@songsid/agend 2.2.0-alpha.9 → 2.2.0-beta.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.
Files changed (173) hide show
  1. package/README.md +1 -1
  2. package/README.zh-TW.md +1 -1
  3. package/dist/agent-cli-instructions.md +10 -7
  4. package/dist/agent-endpoint.js +21 -9
  5. package/dist/agent-endpoint.js.map +1 -1
  6. package/dist/agent-whats-new.d.ts +47 -0
  7. package/dist/agent-whats-new.js +141 -0
  8. package/dist/agent-whats-new.js.map +1 -0
  9. package/dist/auth-api.d.ts +2 -2
  10. package/dist/auth-api.js +2 -2
  11. package/dist/auth-api.js.map +1 -1
  12. package/dist/backend/kiro-engine-ledger.d.ts +5 -0
  13. package/dist/backend/kiro-engine-ledger.js +20 -0
  14. package/dist/backend/kiro-engine-ledger.js.map +1 -1
  15. package/dist/backend/kiro-identity.d.ts +6 -0
  16. package/dist/backend/kiro-identity.js +19 -5
  17. package/dist/backend/kiro-identity.js.map +1 -1
  18. package/dist/backend/kiro.d.ts +14 -2
  19. package/dist/backend/kiro.js +84 -9
  20. package/dist/backend/kiro.js.map +1 -1
  21. package/dist/backend/types.d.ts +4 -2
  22. package/dist/backend/types.js.map +1 -1
  23. package/dist/channel/adapters/discord.d.ts +13 -1
  24. package/dist/channel/adapters/discord.js +34 -2
  25. package/dist/channel/adapters/discord.js.map +1 -1
  26. package/dist/channel/adapters/telegram.d.ts +11 -1
  27. package/dist/channel/adapters/telegram.js +28 -2
  28. package/dist/channel/adapters/telegram.js.map +1 -1
  29. package/dist/channel/mcp-server.js +9 -1
  30. package/dist/channel/mcp-server.js.map +1 -1
  31. package/dist/channel/mcp-tools.d.ts +11 -0
  32. package/dist/channel/mcp-tools.js +23 -12
  33. package/dist/channel/mcp-tools.js.map +1 -1
  34. package/dist/channel/tool-router.js +7 -2
  35. package/dist/channel/tool-router.js.map +1 -1
  36. package/dist/channel/types.d.ts +13 -1
  37. package/dist/cli.js +55 -16
  38. package/dist/cli.js.map +1 -1
  39. package/dist/command-table.js +1 -1
  40. package/dist/command-table.js.map +1 -1
  41. package/dist/config-validator.js +48 -0
  42. package/dist/config-validator.js.map +1 -1
  43. package/dist/cross-instance-envelope.d.ts +15 -2
  44. package/dist/cross-instance-envelope.js +27 -5
  45. package/dist/cross-instance-envelope.js.map +1 -1
  46. package/dist/daemon.d.ts +36 -0
  47. package/dist/daemon.js +157 -6
  48. package/dist/daemon.js.map +1 -1
  49. package/dist/delivery-outbox.d.ts +6 -0
  50. package/dist/delivery-outbox.js.map +1 -1
  51. package/dist/fleet-manager.d.ts +48 -0
  52. package/dist/fleet-manager.js +275 -6
  53. package/dist/fleet-manager.js.map +1 -1
  54. package/dist/general-knowledge/skills/backend-providers/SKILL.md +1 -1
  55. package/dist/general-knowledge/skills/credential-profiles/SKILL.md +9 -6
  56. package/dist/general-knowledge/skills/cross-instance-messaging/SKILL.md +11 -2
  57. package/dist/general-knowledge/skills/delegation-playbook/SKILL.md +8 -8
  58. package/dist/general-knowledge/skills/fleet-config/SKILL.md +5 -5
  59. package/dist/general-knowledge/skills/fleet-health/SKILL.md +4 -4
  60. package/dist/general-knowledge/skills/fleet-restart/SKILL.md +13 -13
  61. package/dist/general-knowledge/skills/instance-lifecycle/SKILL.md +3 -2
  62. package/dist/general-knowledge/skills/kiro-engine-migration/SKILL.md +6 -0
  63. package/dist/general-knowledge/skills/model-discovery/SKILL.md +9 -9
  64. package/dist/general-knowledge/skills/multi-channel/SKILL.md +8 -2
  65. package/dist/general-knowledge/skills/scheduling/SKILL.md +5 -3
  66. package/dist/general-knowledge/skills/session-management/SKILL.md +6 -5
  67. package/dist/general-knowledge/skills/tui-effort/SKILL.md +2 -2
  68. package/dist/general-knowledge/skills/worker-collaboration/SKILL.md +4 -3
  69. package/dist/general-knowledge/steering/core-rules.md +8 -7
  70. package/dist/instance-avatar.d.ts +36 -0
  71. package/dist/instance-avatar.js +57 -0
  72. package/dist/instance-avatar.js.map +1 -0
  73. package/dist/instance-config-impact.js +5 -0
  74. package/dist/instance-config-impact.js.map +1 -1
  75. package/dist/instance-lifecycle.d.ts +4 -0
  76. package/dist/instance-lifecycle.js +3 -1
  77. package/dist/instance-lifecycle.js.map +1 -1
  78. package/dist/instructions.d.ts +2 -0
  79. package/dist/instructions.js +10 -7
  80. package/dist/instructions.js.map +1 -1
  81. package/dist/locale.js +36 -26
  82. package/dist/locale.js.map +1 -1
  83. package/dist/next-steps.js +1 -1
  84. package/dist/next-steps.js.map +1 -1
  85. package/dist/outbound-handlers.js +7 -4
  86. package/dist/outbound-handlers.js.map +1 -1
  87. package/dist/outbound-schemas.d.ts +8 -0
  88. package/dist/outbound-schemas.js +15 -5
  89. package/dist/outbound-schemas.js.map +1 -1
  90. package/dist/public-web-gateway.js +3 -0
  91. package/dist/public-web-gateway.js.map +1 -1
  92. package/dist/service-activation.js +4 -3
  93. package/dist/service-activation.js.map +1 -1
  94. package/dist/settings-api.js +71 -21
  95. package/dist/settings-api.js.map +1 -1
  96. package/dist/settings-change.js +70 -1
  97. package/dist/settings-change.js.map +1 -1
  98. package/dist/settings-effect.js +26 -4
  99. package/dist/settings-effect.js.map +1 -1
  100. package/dist/settings-http-confirmation.js +7 -0
  101. package/dist/settings-http-confirmation.js.map +1 -1
  102. package/dist/setup-form.d.ts +1 -1
  103. package/dist/setup-form.js +1 -1
  104. package/dist/status-emojis.d.ts +10 -3
  105. package/dist/status-emojis.js +11 -2
  106. package/dist/status-emojis.js.map +1 -1
  107. package/dist/tips.js +4 -4
  108. package/dist/tips.js.map +1 -1
  109. package/dist/transcript-monitor.d.ts +8 -0
  110. package/dist/transcript-monitor.js +26 -2
  111. package/dist/transcript-monitor.js.map +1 -1
  112. package/dist/transcript-sources.d.ts +54 -0
  113. package/dist/transcript-sources.js +188 -27
  114. package/dist/transcript-sources.js.map +1 -1
  115. package/dist/transcript-turns.d.ts +15 -2
  116. package/dist/transcript-turns.js +15 -2
  117. package/dist/transcript-turns.js.map +1 -1
  118. package/dist/types.d.ts +11 -0
  119. package/dist/ui/chat-emojis.js +33 -0
  120. package/dist/ui/chat-render.js +12 -0
  121. package/dist/ui/chat-thread.js +1 -1
  122. package/dist/ui/panel-chat.js +13 -3
  123. package/dist/ui/panel-needs.js +5 -2
  124. package/dist/ui/panel-settings.js +117 -26
  125. package/dist/ui/settings-dialogs.js +7 -2
  126. package/dist/ui/settings-model.js +2 -1
  127. package/dist/ui/settings-strings.js +38 -2
  128. package/dist/ui/shared/app-i18n.js +2 -2
  129. package/dist/ui/shared/app-route.js +1 -1
  130. package/dist/ui/shared/app.css +29 -1
  131. package/dist/ui/shared/instance-nav.js +77 -8
  132. package/dist/ui/shared/signin.js +7 -7
  133. package/dist/ui/shared/tokens.css +9 -0
  134. package/dist/ui/shared/view-strings.js +2 -2
  135. package/dist/ui/signin.html +1 -1
  136. package/dist/update-install.d.ts +15 -1
  137. package/dist/update-install.js +6 -0
  138. package/dist/update-install.js.map +1 -1
  139. package/dist/update-preflight.d.ts +100 -0
  140. package/dist/update-preflight.js +264 -0
  141. package/dist/update-preflight.js.map +1 -0
  142. package/dist/updater-caller.d.ts +31 -0
  143. package/dist/updater-caller.js +109 -0
  144. package/dist/updater-caller.js.map +1 -0
  145. package/dist/view-api.d.ts +1 -1
  146. package/dist/view-api.js +33 -8
  147. package/dist/view-api.js.map +1 -1
  148. package/dist/wake-coordinator.d.ts +11 -0
  149. package/dist/wake-coordinator.js +38 -4
  150. package/dist/wake-coordinator.js.map +1 -1
  151. package/dist/web-api.d.ts +11 -0
  152. package/dist/web-api.js +54 -0
  153. package/dist/web-api.js.map +1 -1
  154. package/dist/web-auth.d.ts +2 -2
  155. package/dist/web-auth.js +5 -3
  156. package/dist/web-auth.js.map +1 -1
  157. package/dist/web-host-guard.d.ts +3 -11
  158. package/dist/web-host-guard.js +3 -12
  159. package/dist/web-host-guard.js.map +1 -1
  160. package/dist/web-images.d.ts +47 -0
  161. package/dist/web-images.js +169 -0
  162. package/dist/web-images.js.map +1 -0
  163. package/dist/web-session.d.ts +36 -1
  164. package/dist/web-session.js +52 -5
  165. package/dist/web-session.js.map +1 -1
  166. package/dist/web-settings-patch.d.ts +21 -0
  167. package/dist/web-settings-patch.js +74 -0
  168. package/dist/web-settings-patch.js.map +1 -0
  169. package/dist/web-shell-routes.d.ts +1 -1
  170. package/dist/web-shell-routes.js +1 -1
  171. package/dist/web-shell-routes.js.map +1 -1
  172. package/dist/workflow-templates/default.md +1 -1
  173. package/package.json +1 -1
@@ -49,6 +49,20 @@ export interface UpdateInstallPlan {
49
49
  * on that exact selection, never on a fresh `nvm use 22` that could pick another Node 22 in between (#1472 review).
50
50
  */
51
51
  nvmBin?: string;
52
+ /**
53
+ * #1441 B: decide whether the target can run, in the install environment, before the lock and npm — called once the
54
+ * install environment is fixed (for an nvm install: after the exact Node 22 is selected). `run` runs argv there, the
55
+ * way the install does; `npm` is the npm binary the install invokes. A refusal stops the update with nothing changed.
56
+ */
57
+ preflight?(env: {
58
+ run(argv: string[], timeoutMs: number): CommandResult;
59
+ npm: string;
60
+ }): {
61
+ ok: true;
62
+ } | {
63
+ ok: false;
64
+ message: string;
65
+ };
52
66
  }
53
67
  export type UpdateInstallOutcome = {
54
68
  ok: true;
@@ -67,7 +81,7 @@ export type UpdateInstallOutcome = {
67
81
  npmPath?: string;
68
82
  } | {
69
83
  ok: false;
70
- stage: "lock" | "install" | "verify";
84
+ stage: "preflight" | "lock" | "install" | "verify";
71
85
  message: string;
72
86
  };
73
87
  /**
@@ -197,6 +197,12 @@ export function runUpdateInstall(plan, runner) {
197
197
  // The npm binary to invoke: for nvm installs, the absolute path from nvmBin so that
198
198
  // every npm call uses the same binary that will be recorded in the outcome.
199
199
  const npmBin = resolvedNpmPath ?? "npm";
200
+ if (plan.preflight) {
201
+ const fixed = plan;
202
+ const verdict = plan.preflight({ run: (argv, timeoutMs) => inInstallEnv(runner, fixed, argv, { timeoutMs }), npm: npmBin });
203
+ if (!verdict.ok)
204
+ return { ok: false, stage: "preflight", message: verdict.message };
205
+ }
200
206
  // C1: lock the prefix npm is about to change — read in the install environment, as npm itself sees it — before npm.
201
207
  // #1487: this updater never unlinks first, so a refused install keeps the previous one; the install hooks read this to
202
208
  // tell that apart from AgEnD 2.1's updater, which removes it before installing (launcher/old-updater-note.cjs).
@@ -1 +1 @@
1
- {"version":3,"file":"update-install.js","sourceRoot":"","sources":["../src/update-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-install.js","sourceRoot":"","sources":["../src/update-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAwB,MAAM,uBAAuB,CAAC;AAwD1G;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,oFAAoF,CAAC;AACnH,yGAAyG;AACzG,MAAM,CAAC,MAAM,kBAAkB,GAAG,yCAAyC,CAAC;AAC5E,gGAAgG;AAChG,MAAM,CAAC,MAAM,iBAAiB,GAAG,wFAAwF,CAAC;AAC1H,iGAAiG;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,sDAAsD,CAAC;AAErF;;;GAGG;AACH,SAAS,YAAY,CAAC,MAAqB,EAAE,IAAuB,EAAE,IAAc,EAAE,UAAmF,EAAE;IACzK,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1G,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAiD,EAAE,SAAiB;IACrG,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;AAC1F,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,iBAAiB,CAAC,cAAuB,EAAE,UAAkB;IAC3E,OAAO,cAAc,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,6DAA6D;IAC7D,8BAA8B;IAC9B,gFAAgF;IAChF,sEAAsE;IACtE,sFAAsF;IACtF,oMAAoM;CACrM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,oDAAoD;IACpD,yIAAyI;IACzI,iHAAiH;IACjH,mDAAmD;IACnD,4LAA4L;IAC5L,iGAAiG;IACjG,uCAAuC;CACxC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAKZ,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAElF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAuB,EAAE,MAAqB,EAAE,MAAM,GAAG,KAAK;IACnG,MAAM,IAAI,GAAG,CAAC,OAAe,EAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,CAAC,IAAc,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACpG,MAAM,GAAG,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAElF,gHAAgH;IAChH,qGAAqG;IACrG,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,4EAA4E,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,IAAI,QAAQ,GAAkG,EAAE,CAAC;IACjH,IAAI,CAAC;QAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7I,OAAO,IAAI,CAAC,4BAA4B,MAAM,8CAA8C,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,2CAA2C,OAAO,OAAO,MAAM,UAAU,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,4BAA4B,SAAS,4CAA4C,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IACjH,CAAC;IACD,iGAAiG;IACjG,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC,2CAA2C,OAAO,OAAO,MAAM,8BAA8B,MAAM,IAAI,SAAS,GAAG,UAAU,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,2DAA2D,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtU,CAAC;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,8BAA8B,SAAS,uBAAuB,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAClJ,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC,8BAA8B,SAAS,wBAAwB,GAAG,CAAC,UAAU,CAAC,mCAAmC,OAAO,GAAG,CAAC,CAAC;IAC3I,CAAC;IACD,sHAAsH;IACtH,iGAAiG;IACjG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxH,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,GAAc,EAAE,CAAC;QAC3B,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAc,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,qEAAqE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,0CAA0C,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChQ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,4DAA4D,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,+BAA+B,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QACzJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACxG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,kGAAkG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,IAAI,QAAQ,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACrO,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1H,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,yFAAyF,MAAM,CAAC,MAAM,IAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/M,CAAC;IAED,mHAAmH;IACnH,2EAA2E;IAC3E,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,OAAO,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACpG,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAuB,EAAE,MAAqB;IAC7E,8GAA8G;IAC9G,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,MAAM,CAAC,GAAG,CAAC,+CAA+C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,qCAAqC,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,2EAA2E,EAAE,CAAC;IAC/H,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,wGAAwG;QACxG,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1G,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,wFAAwF,EAAE,CAAC;QAC9L,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5C,CAAC;IACD,kFAAkF;IAClF,sFAAsF;IACtF,oFAAoF;IACpF,sFAAsF;IACtF,2EAA2E;IAC3E,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,+DAA+D,EAAE,CAAC;QACnI,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,oFAAoF;IACpF,4EAA4E;IAC5E,MAAM,MAAM,GAAG,eAAe,IAAI,KAAK,CAAC;IACxC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5H,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IACtF,CAAC;IAED,oHAAoH;IACpH,uHAAuH;IACvH,gHAAgH;IAChH,MAAM,GAAG,GAA2B,EAAE,2BAA2B,EAAE,GAAG,EAAE,CAAC;IACzE,IAAI,QAAwF,CAAC;IAC7F,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,2EAA2E,EAAE,CAAC;QAC7J,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,IAAI,CAAC,MAAM,wBAAwB,EAAE,CAAC;QACrH,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,wEAAwE,EAAE,CAAC;YAC1J,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;YAC3E,IAAI,CAAC,KAAK,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,KAAK,CAAC,MAAM,wBAAwB,EAAE,CAAC;YACvH,QAAQ,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACxG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,2DAA2D;QAC3D,IAAI,QAAQ,EAAE,QAAQ;YAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,OAAO;YACL,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS;YAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,mEAAmE;gBACxF,CAAC,CAAC,gFAAgF,IAAI,CAAC,GAAG,EAAE;SAC/F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACzC,iHAAiH;QACjH,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QACnC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,SAAS,QAAQ,CAAC,MAAM,iDAAiD,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACjL,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClG,OAAO;YACL,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ;YAC1B,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,yBAAyB,QAAQ,CAAC,OAAO,sDAAsD;gBACnI,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,UAAU,QAAQ,CAAC,OAAO,6CAA6C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gDAAgD,QAAQ,CAAC,OAAO,EAAE;SACpL,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ;QAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,mHAAmH;IACnH,sGAAsG;IACtG,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,IAAI,SAAS,EAAE,CAAC,CAAC;IAC5G,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA4E,EAC5E,OAAkD;IAElD,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,OAAO,CAAC,GAAG,KAAK,oBAAoB,IAAI,OAAO,KAAK,WAAW,CAAC;AACzE,CAAC;AAUD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAqB,EAAE,OAAgB;IACtE,MAAM,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACxE,+EAA+E;IAC/E,kFAAkF;IAClF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,2BAA2B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,4FAA4F,CAAC;QAC9J,MAAM,CAAC,GAAG,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9H,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,qCAAqC,MAAM,CAAC,MAAM,GAAG,CAAC;QACrE,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,wCAAwC,CAAC,CAAC;QACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,100 @@
1
+ export interface RuntimeHost {
2
+ platform: string;
3
+ arch: string;
4
+ id: string;
5
+ glibc: string | null;
6
+ darwinRelease: string | null;
7
+ }
8
+ export interface RuntimePlatform {
9
+ hostPlatform(probe?: Partial<RuntimeHost>): RuntimeHost;
10
+ runtimeSupport(host: RuntimeHost): {
11
+ supported: boolean;
12
+ reason: string | null;
13
+ };
14
+ }
15
+ /** The one answer to "can this host run AgEnD's bundled Node?", shared with preinstall, postinstall and the launcher. */
16
+ export declare const runtimePlatform: RuntimePlatform;
17
+ /** What the release about to be installed asks for: its Node range, and the runtime it pins per host id. */
18
+ export interface TargetManifest {
19
+ version: string;
20
+ engines: string | null;
21
+ runtimePins: Record<string, string>;
22
+ }
23
+ /** The npm arguments that read a release's requirements; the caller runs them with the npm that installs it. */
24
+ export declare function manifestQuery(spec: string): string[];
25
+ /**
26
+ * The target's own requirements, read by `read` — which runs `npm <manifestQuery(spec)>` with the npm, environment and
27
+ * registry the install uses and returns its stdout, or null when it fails. The spec must be the one npm installs, and
28
+ * it must name the exact version (`@songsid/agend@<version>`); the answer must be that version. Otherwise: null.
29
+ */
30
+ export declare function lookupTargetManifest(spec: string, version: string, read: (args: string[]) => string | null): TargetManifest | null;
31
+ /** The Node the release would run on when its bundled runtime does not apply. */
32
+ export type SystemNode = {
33
+ kind: "version";
34
+ version: string;
35
+ path?: string | null;
36
+ label: string;
37
+ } | {
38
+ kind: "none";
39
+ } | {
40
+ kind: "unknown";
41
+ note: string;
42
+ };
43
+ export type UpdateTargetVerdict = {
44
+ kind: "runtime";
45
+ host: string;
46
+ pin: string;
47
+ } | {
48
+ kind: "system";
49
+ node: string;
50
+ label: string;
51
+ } | {
52
+ kind: "refuse";
53
+ message: string;
54
+ summary: string;
55
+ } | {
56
+ kind: "unknown";
57
+ note: string;
58
+ };
59
+ /** Which Node the target will run on here, and whether that Node satisfies the target's engines. */
60
+ export declare function evaluateUpdateTarget(input: {
61
+ manifest: TargetManifest | null;
62
+ host: RuntimeHost;
63
+ platform?: RuntimePlatform;
64
+ system: SystemNode;
65
+ }): UpdateTargetVerdict;
66
+ /** Where the update runs its commands: the install environment (`run`) and the npm binary the install invokes. */
67
+ export interface PreflightEnv {
68
+ run(argv: string[], timeoutMs: number): {
69
+ status: number | null;
70
+ stdout: string;
71
+ };
72
+ npm: string;
73
+ }
74
+ /** The version and path of the `node` the environment resolves; exit 127 when there is none. */
75
+ export declare const NODE_PROBE_SCRIPT = "command -v node >/dev/null 2>&1 || exit 127; exec node -p \"process.versions.node + ' ' + process.execPath\"";
76
+ /** The Node the release's `#!/usr/bin/env node` resolves to in `env` (`label` names it in messages). */
77
+ export declare function probeSystemNode(env: PreflightEnv, label: string): SystemNode;
78
+ /**
79
+ * The whole check, run where the install runs: the requirements of `spec` (which must be `@songsid/agend@<version>`)
80
+ * from `env.npm`, and the Node `env` resolves — both read the way the install that follows reads them.
81
+ */
82
+ export declare function preflightUpdate(env: PreflightEnv, spec: string, version: string, label: string, host?: RuntimeHost): UpdateTargetVerdict;
83
+ /**
84
+ * The check an nvm install runs once nvm has selected its Node 22 (UpdateInstallPlan.preflight): on that Node, with that
85
+ * Node's npm. A refusal is printed in full and returned as the update's outcome; unknown is a note and the install goes on.
86
+ */
87
+ export declare function installPreflight(spec: string, version: string, label: string, out: {
88
+ log(message: string): void;
89
+ error(message: string): void;
90
+ }, host?: RuntimeHost): (env: PreflightEnv) => {
91
+ ok: true;
92
+ } | {
93
+ ok: false;
94
+ message: string;
95
+ };
96
+ /**
97
+ * Does Node `version` (stable x.y.z) satisfy npm range `range`? true/false as semver would answer, or null when the
98
+ * version or the range is outside what this parser reads exactly.
99
+ */
100
+ export declare function satisfiesNodeRange(version: string, range: string): boolean | null;
@@ -0,0 +1,264 @@
1
+ /**
2
+ * #1441 part B: before `agend update` installs a release, decide whether that release can run on this host — on the
3
+ * Node it will actually run on. That is the target's bundled runtime where the target pins one for this host and the
4
+ * host can run it (#1450: then the system Node does not matter), and otherwise the system Node: the `node` on PATH for a
5
+ * direct install, or the exact Node 22 nvm selected for an nvm install. Which host can run the bundled runtime comes from
6
+ * the helper the preinstall guard, the postinstall and the launcher share (launcher/runtime-platform.cjs).
7
+ *
8
+ * Design baseline: #1441 issuecomment-6108441160. Every input to a definite verdict is read from what the install will
9
+ * actually run (#1623 review): the release's requirements from the npm that installs it, for the exact spec it
10
+ * installs, and the Node version from the interpreter the release will start on. Anything that cannot be read or
11
+ * proven — an unreadable requirement, a range this parser does not understand, a Node not chosen yet — is "unknown":
12
+ * never "compatible" and never invented into a refusal. The update then goes on, and the target's own preinstall guard
13
+ * still refuses inside npm (the previous package stays).
14
+ */
15
+ import { createRequire } from "node:module";
16
+ const require = createRequire(import.meta.url);
17
+ /** The one answer to "can this host run AgEnD's bundled Node?", shared with preinstall, postinstall and the launcher. */
18
+ export const runtimePlatform = require("../launcher/runtime-platform.cjs");
19
+ /** A published package version (semver 2.0, no leading zeros). */
20
+ const PACKAGE_VERSION = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/;
21
+ /** A runtime pin as the launcher and postinstall accept it (launcher/runtime-select.cjs): Node x.y.z, optionally -agend.N. */
22
+ const RUNTIME_PIN = /^(\d+\.\d+\.\d+)(-agend\.\d+)?$/;
23
+ /** The npm arguments that read a release's requirements; the caller runs them with the npm that installs it. */
24
+ export function manifestQuery(spec) {
25
+ return ["view", spec, "version", "engines", "optionalDependencies", "--json"];
26
+ }
27
+ /**
28
+ * The target's own requirements, read by `read` — which runs `npm <manifestQuery(spec)>` with the npm, environment and
29
+ * registry the install uses and returns its stdout, or null when it fails. The spec must be the one npm installs, and
30
+ * it must name the exact version (`@songsid/agend@<version>`); the answer must be that version. Otherwise: null.
31
+ */
32
+ export function lookupTargetManifest(spec, version, read) {
33
+ if (!PACKAGE_VERSION.test(version) || spec !== `@songsid/agend@${version}`)
34
+ return null;
35
+ const raw = read(manifestQuery(spec));
36
+ if (raw === null)
37
+ return null;
38
+ let parsed;
39
+ try {
40
+ parsed = JSON.parse(raw);
41
+ }
42
+ catch {
43
+ return null;
44
+ }
45
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
46
+ return null;
47
+ const m = parsed;
48
+ // The registry answered for another version (or with something that is not one): it says nothing about this one.
49
+ if (typeof m.version !== "string" || m.version !== version)
50
+ return null;
51
+ const engines = m.engines && typeof m.engines === "object" && typeof m.engines.node === "string"
52
+ ? m.engines.node : null;
53
+ const runtimePins = Object.create(null);
54
+ if (m.optionalDependencies && typeof m.optionalDependencies === "object") {
55
+ for (const [name, pin] of Object.entries(m.optionalDependencies)) {
56
+ const id = /^@songsid\/agend-node-(.+)$/.exec(name)?.[1];
57
+ if (id && typeof pin === "string")
58
+ runtimePins[id] = pin;
59
+ }
60
+ }
61
+ return { version: m.version, engines, runtimePins };
62
+ }
63
+ const UNREADABLE = " Note: the release's Node requirements could not be read; its own install check still applies (a refusal there keeps this version installed).";
64
+ const unparsed = (range) => ` Note: the release asks for Node ${range}, which this check cannot evaluate; its own install check still applies (a refusal there keeps this version installed).`;
65
+ /** Which Node the target will run on here, and whether that Node satisfies the target's engines. */
66
+ export function evaluateUpdateTarget(input) {
67
+ const p = input.platform ?? runtimePlatform;
68
+ const m = input.manifest;
69
+ if (!m || !m.engines)
70
+ return { kind: "unknown", note: UNREADABLE };
71
+ const pin = Object.prototype.hasOwnProperty.call(m.runtimePins, input.host.id) ? m.runtimePins[input.host.id] : null;
72
+ const support = p.runtimeSupport(input.host);
73
+ if (pin && support.supported) {
74
+ // The pin keeps its identity (22.23.3-agend.1); the Node it installs is the one judged (postinstall: 22.23.3).
75
+ const node = RUNTIME_PIN.exec(pin)?.[1];
76
+ if (!node)
77
+ return { kind: "unknown", note: ` Note: the release pins its bundled Node as ${JSON.stringify(pin)}, which this check cannot read; its own install check still applies.` };
78
+ const fits = satisfiesNodeRange(node, m.engines);
79
+ if (fits === null)
80
+ return { kind: "unknown", note: unparsed(m.engines) };
81
+ if (fits)
82
+ return { kind: "runtime", host: input.host.id, pin };
83
+ const summary = `v${m.version} pins Node ${pin} for ${input.host.id}, which is outside its own range ${m.engines}`;
84
+ return { kind: "refuse", summary, message: refusal(m, `${summary}.`, false) };
85
+ }
86
+ const why = !pin ? `v${m.version} ships no bundled Node for ${input.host.id}` : `this host cannot use AgEnD's bundled Node: ${support.reason}`;
87
+ const s = input.system;
88
+ if (s.kind === "unknown")
89
+ return { kind: "unknown", note: s.note };
90
+ if (s.kind === "version") {
91
+ const fits = satisfiesNodeRange(s.version, m.engines);
92
+ if (fits === null)
93
+ return { kind: "unknown", note: unparsed(m.engines) };
94
+ if (fits)
95
+ return { kind: "system", node: s.version, label: s.label };
96
+ }
97
+ const runsOn = s.kind === "none" ? "there is no usable `node` on PATH" : `it would run on ${s.label} (Node ${s.version}${s.path ? `, ${s.path}` : ""})`;
98
+ const summary = `v${m.version} needs Node ${m.engines}; ${why}, and ${runsOn}`;
99
+ return { kind: "refuse", summary, message: refusal(m, `${why}, and ${runsOn}.`, true) };
100
+ }
101
+ /** The version and path of the `node` the environment resolves; exit 127 when there is none. */
102
+ export const NODE_PROBE_SCRIPT = `command -v node >/dev/null 2>&1 || exit 127; exec node -p "process.versions.node + ' ' + process.execPath"`;
103
+ /** The Node the release's `#!/usr/bin/env node` resolves to in `env` (`label` names it in messages). */
104
+ export function probeSystemNode(env, label) {
105
+ const r = env.run(["sh", "-c", NODE_PROBE_SCRIPT], 10_000);
106
+ if (r.status === 127)
107
+ return { kind: "none" };
108
+ const m = r.status === 0 ? /^(\d+\.\d+\.\d+) (\/.*)$/.exec(r.stdout.trim().split("\n").pop()?.trim() ?? "") : null;
109
+ if (!m)
110
+ return { kind: "unknown", note: ` Note: could not read the version of ${label}; the release's own install check still applies (a refusal there keeps this version installed).` };
111
+ return { kind: "version", version: m[1], path: m[2], label };
112
+ }
113
+ /**
114
+ * The whole check, run where the install runs: the requirements of `spec` (which must be `@songsid/agend@<version>`)
115
+ * from `env.npm`, and the Node `env` resolves — both read the way the install that follows reads them.
116
+ */
117
+ export function preflightUpdate(env, spec, version, label, host = runtimePlatform.hostPlatform()) {
118
+ const manifest = lookupTargetManifest(spec, version, args => {
119
+ const r = env.run([env.npm, ...args], 15_000);
120
+ return r.status === 0 ? r.stdout : null;
121
+ });
122
+ if (!manifest)
123
+ return { kind: "unknown", note: UNREADABLE };
124
+ return evaluateUpdateTarget({ manifest, host, system: probeSystemNode(env, label) });
125
+ }
126
+ /**
127
+ * The check an nvm install runs once nvm has selected its Node 22 (UpdateInstallPlan.preflight): on that Node, with that
128
+ * Node's npm. A refusal is printed in full and returned as the update's outcome; unknown is a note and the install goes on.
129
+ */
130
+ export function installPreflight(spec, version, label, out, host) {
131
+ return (env) => {
132
+ const verdict = preflightUpdate(env, spec, version, label, host);
133
+ if (verdict.kind === "unknown")
134
+ out.log(verdict.note);
135
+ if (verdict.kind !== "refuse")
136
+ return { ok: true };
137
+ out.error(`\n${verdict.message}\n`);
138
+ return { ok: false, message: ` Not updated: ${verdict.summary}. The installed AgEnD was not changed.` };
139
+ };
140
+ }
141
+ function refusal(m, why, installable) {
142
+ return [
143
+ ` ✗ AgEnD v${m.version} cannot run on this host's Node — AgEnD was not changed.`,
144
+ "",
145
+ ` v${m.version} needs Node ${m.engines}.`,
146
+ ` ${why}`,
147
+ "",
148
+ installable
149
+ ? ` Install a Node that satisfies ${m.engines} and put it first on PATH, then run: agend update`
150
+ : " This release cannot be installed here; wait for the next one.",
151
+ ].join("\n");
152
+ }
153
+ const NUM = "(?:0|[1-9]\\d*)";
154
+ const PART = `(?:${NUM}|[xX*])`;
155
+ const PARTIAL = new RegExp(`^v?(${PART})(?:\\.(${PART})(?:\\.(${PART}))?)?$`);
156
+ /** Matches nothing: no stable version is below 0.0.0. */
157
+ const NEVER = [{ op: "<", v: [0, 0, 0] }];
158
+ /** `[major, minor, patch]` with null for a wildcard or missing part; null when it is not a partial version. */
159
+ function partial(text) {
160
+ const m = PARTIAL.exec(text);
161
+ if (!m)
162
+ return null;
163
+ const parts = [m[1], m[2], m[3]].map(x => (x === undefined || /^[xX*]$/.test(x) ? null : Number(x)));
164
+ // `1.x.3`: a number after a wildcard is not something this check guesses at.
165
+ for (let i = 1; i < 3; i++)
166
+ if (parts[i] !== null && parts[i - 1] === null)
167
+ return null;
168
+ return parts;
169
+ }
170
+ function comparators(op, text) {
171
+ const pv = partial(text);
172
+ if (!pv)
173
+ return null;
174
+ const [M, m, pt] = pv;
175
+ if (M === null)
176
+ return op === "<" || op === ">" ? NEVER : [];
177
+ const lo = [M, m ?? 0, pt ?? 0];
178
+ const nextMajor = [M + 1, 0, 0];
179
+ const next = m === null ? nextMajor : pt === null ? [M, m + 1, 0] : [M, m, pt];
180
+ switch (op) {
181
+ case "":
182
+ case "=":
183
+ return m === null || pt === null ? [{ op: ">=", v: lo }, { op: "<", v: next }] : [{ op: ">=", v: lo }, { op: "<=", v: lo }];
184
+ case ">": return m === null || pt === null ? [{ op: ">=", v: next }] : [{ op: ">", v: lo }];
185
+ case ">=": return [{ op: ">=", v: lo }];
186
+ case "<": return [{ op: "<", v: lo }];
187
+ case "<=": return m === null || pt === null ? [{ op: "<", v: next }] : [{ op: "<=", v: lo }];
188
+ case "~": return [{ op: ">=", v: lo }, { op: "<", v: m === null ? nextMajor : [M, m + 1, 0] }];
189
+ case "^": {
190
+ if (m === null)
191
+ return [{ op: ">=", v: lo }, { op: "<", v: nextMajor }];
192
+ const upper = M > 0 ? nextMajor : pt === null || m > 0 ? [0, m + 1, 0] : [0, 0, pt + 1];
193
+ return [{ op: ">=", v: lo }, { op: "<", v: upper }];
194
+ }
195
+ default: return null;
196
+ }
197
+ }
198
+ function hyphen(from, to) {
199
+ const a = partial(from), b = partial(to);
200
+ if (!a || !b)
201
+ return null;
202
+ const out = [];
203
+ if (a[0] !== null)
204
+ out.push({ op: ">=", v: [a[0], a[1] ?? 0, a[2] ?? 0] });
205
+ if (b[0] !== null) {
206
+ if (b[1] === null)
207
+ out.push({ op: "<", v: [b[0] + 1, 0, 0] });
208
+ else if (b[2] === null)
209
+ out.push({ op: "<", v: [b[0], b[1] + 1, 0] });
210
+ else
211
+ out.push({ op: "<=", v: [b[0], b[1], b[2]] });
212
+ }
213
+ return out;
214
+ }
215
+ function compare(a, b) {
216
+ return a[0] - b[0] || a[1] - b[1] || a[2] - b[2];
217
+ }
218
+ /**
219
+ * Does Node `version` (stable x.y.z) satisfy npm range `range`? true/false as semver would answer, or null when the
220
+ * version or the range is outside what this parser reads exactly.
221
+ */
222
+ export function satisfiesNodeRange(version, range) {
223
+ const vm = /^v?(\d+)\.(\d+)\.(\d+)$/.exec(version.trim());
224
+ if (!vm)
225
+ return null;
226
+ const v = [Number(vm[1]), Number(vm[2]), Number(vm[3])];
227
+ if (v.some(n => !Number.isSafeInteger(n)))
228
+ return null;
229
+ const alternatives = range.trim().split("||").map(a => a.trim());
230
+ if (alternatives.length === 1 && alternatives[0] === "")
231
+ return true;
232
+ let any = false;
233
+ for (const alt of alternatives) {
234
+ if (alt === "")
235
+ return null;
236
+ let set;
237
+ const h = /^(\S+)\s+-\s+(\S+)$/.exec(alt);
238
+ if (h)
239
+ set = hyphen(h[1], h[2]);
240
+ else {
241
+ set = [];
242
+ for (const token of alt.replace(/(<=|>=|<|>|=|~|\^)\s+/g, "$1").split(/\s+/)) {
243
+ const t = /^(<=|>=|<|>|=|~|\^)?(.*)$/.exec(token);
244
+ const c = comparators(t[1] ?? "", t[2]);
245
+ if (!c) {
246
+ set = null;
247
+ break;
248
+ }
249
+ set.push(...c);
250
+ }
251
+ }
252
+ // semver refuses any version part above Number.MAX_SAFE_INTEGER — written, or produced by expanding x/~/^/hyphen
253
+ // upper bounds (`^9007199254740991` → <9007199254740992.0.0) — so such a range has no npm meaning: cannot tell.
254
+ if (!set || set.some(c => c.v.some(n => !Number.isSafeInteger(n))))
255
+ return null;
256
+ if (set.every(c => {
257
+ const d = compare(v, c.v);
258
+ return c.op === "<" ? d < 0 : c.op === "<=" ? d <= 0 : c.op === ">" ? d > 0 : d >= 0;
259
+ }))
260
+ any = true;
261
+ }
262
+ return any;
263
+ }
264
+ //# sourceMappingURL=update-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-preflight.js","sourceRoot":"","sources":["../src/update-preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** How far up the process tree the updater may be: updater → (bash for nvm) → launcher sh/exec → this process. */
2
+ export declare const UPDATER_ANCESTOR_DEPTH = 3;
3
+ export interface UpdaterCallerProbe {
4
+ now(): number;
5
+ /** mtime of update-in-progress.json, or null when it is absent or unreadable. */
6
+ markerMtimeMs(): number | null;
7
+ /** Its parsed content, or null. */
8
+ marker(): {
9
+ pid?: unknown;
10
+ progress?: {
11
+ version?: unknown;
12
+ };
13
+ [field: string]: unknown;
14
+ } | null;
15
+ /** The parent pid of `pid`, or null when it cannot be read. */
16
+ parentOf(pid: number): number | null;
17
+ alive(pid: number): boolean;
18
+ /** When `pid` started (ms since the epoch), or null. */
19
+ startMs(pid: number): number | null;
20
+ selfPid: number;
21
+ selfVersion: string;
22
+ }
23
+ export type UpdaterCallerVerdict = {
24
+ updater: true;
25
+ pid: number;
26
+ } | {
27
+ updater: false;
28
+ reason: string;
29
+ };
30
+ export declare function startedByUpdater(p: UpdaterCallerProbe): UpdaterCallerVerdict;
31
+ export declare function systemUpdaterCallerProbe(dataDir: string, selfVersion: string): UpdaterCallerProbe;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * #1631 part B: is this `agend install --no-activate` the activation refresh of an `agend update` in flight — the
3
+ * updater of an OLDER version (2.2.0-beta.1 and before), which still refreshes a hand-started fleet's service and so
4
+ * would create a unit or plist where none existed? Then the install writes nothing (see the install command).
5
+ *
6
+ * The answer is "yes" only when it is certain; any doubt or failed probe is "no", and a manual install creates the
7
+ * service as always. Certain means all of:
8
+ * - update-in-progress.json is readable and fresh: its mtime is within the update marker's own budget
9
+ * (UPDATE_MARKER_MAX_AGE_MS), never in the future — a marker left by a crashed update does not count;
10
+ * - its pid (markUpdateInProgress writes the updater's own pid) is alive, is this process's parent, grandparent or
11
+ * great-grandparent (an nvm install adds a `bash` layer), and started no later than the marker was written — a
12
+ * reused pid started after it;
13
+ * - if the marker records a target version, it is the version doing the install.
14
+ */
15
+ import { execFileSync } from "node:child_process";
16
+ import { readFileSync, statSync } from "node:fs";
17
+ import { join } from "node:path";
18
+ import { UPDATE_MARKER_MAX_AGE_MS } from "./update-marker.js";
19
+ import { processStartMs } from "./update-check.js";
20
+ /** How far up the process tree the updater may be: updater → (bash for nvm) → launcher sh/exec → this process. */
21
+ export const UPDATER_ANCESTOR_DEPTH = 3;
22
+ /** `ps -o lstart=` has one-second resolution. */
23
+ const START_SLACK_MS = 1_000;
24
+ export function startedByUpdater(p) {
25
+ const no = (reason) => ({ updater: false, reason });
26
+ const mtime = p.markerMtimeMs();
27
+ if (mtime === null)
28
+ return no("no update marker");
29
+ const age = p.now() - mtime;
30
+ if (!(age >= 0 && age < UPDATE_MARKER_MAX_AGE_MS))
31
+ return no("the update marker is not fresh");
32
+ const marker = p.marker();
33
+ const pid = marker?.pid;
34
+ if (typeof pid !== "number" || !Number.isInteger(pid) || pid <= 1)
35
+ return no("the update marker names no updater pid");
36
+ const version = marker?.progress?.version;
37
+ if (version !== undefined && version !== p.selfVersion)
38
+ return no("the update marker names another version");
39
+ if (!p.alive(pid))
40
+ return no("the marker's updater is not running");
41
+ let at = p.selfPid;
42
+ let found = false;
43
+ for (let depth = 0; depth < UPDATER_ANCESTOR_DEPTH; depth++) {
44
+ const parent = p.parentOf(at);
45
+ if (parent === null || parent <= 1 || parent === at)
46
+ break;
47
+ if (parent === pid) {
48
+ found = true;
49
+ break;
50
+ }
51
+ at = parent;
52
+ }
53
+ if (!found)
54
+ return no("the marker's updater is not an ancestor of this process");
55
+ const started = p.startMs(pid);
56
+ if (started === null || started > mtime + START_SLACK_MS)
57
+ return no("the marker's pid started after the marker was written (reused)");
58
+ return { updater: true, pid };
59
+ }
60
+ /** Parent pid: /proc on Linux, `ps -o ppid=` elsewhere (macOS). */
61
+ function parentOf(pid) {
62
+ try {
63
+ if (process.platform === "linux") {
64
+ const stat = readFileSync(`/proc/${pid}/stat`, "utf8");
65
+ const rest = stat.slice(stat.lastIndexOf(")") + 2).split(" ");
66
+ const ppid = Number.parseInt(rest[1] ?? "", 10);
67
+ return Number.isInteger(ppid) ? ppid : null;
68
+ }
69
+ const out = execFileSync("ps", ["-o", "ppid=", "-p", String(pid)], { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], timeout: 5_000 }).trim();
70
+ const ppid = Number.parseInt(out, 10);
71
+ return Number.isInteger(ppid) ? ppid : null;
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ }
77
+ function alive(pid) {
78
+ try {
79
+ process.kill(pid, 0);
80
+ return true;
81
+ }
82
+ catch (error) {
83
+ return error.code === "EPERM";
84
+ }
85
+ }
86
+ export function systemUpdaterCallerProbe(dataDir, selfVersion) {
87
+ const path = join(dataDir, "update-in-progress.json");
88
+ return {
89
+ now: () => Date.now(),
90
+ markerMtimeMs: () => { try {
91
+ return statSync(path).mtimeMs;
92
+ }
93
+ catch {
94
+ return null;
95
+ } },
96
+ marker: () => { try {
97
+ return JSON.parse(readFileSync(path, "utf8"));
98
+ }
99
+ catch {
100
+ return null;
101
+ } },
102
+ parentOf,
103
+ alive,
104
+ startMs: pid => processStartMs(pid),
105
+ selfPid: process.pid,
106
+ selfVersion,
107
+ };
108
+ }
109
+ //# sourceMappingURL=updater-caller.js.map