@noodleseed/one 0.10.0 → 0.12.0

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 (153) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +16 -4
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/archive-ops.d.ts +3 -0
  5. package/dist/commands/archive-ops.d.ts.map +1 -0
  6. package/dist/commands/archive-ops.js +168 -0
  7. package/dist/commands/archive-ops.js.map +1 -0
  8. package/dist/commands/org-admin.d.ts +17 -0
  9. package/dist/commands/org-admin.d.ts.map +1 -0
  10. package/dist/commands/org-admin.js +241 -0
  11. package/dist/commands/org-admin.js.map +1 -0
  12. package/dist/commands/policy-ops.d.ts.map +1 -1
  13. package/dist/commands/policy-ops.js +123 -1
  14. package/dist/commands/policy-ops.js.map +1 -1
  15. package/dist/commands/session.d.ts +1 -15
  16. package/dist/commands/session.d.ts.map +1 -1
  17. package/dist/commands/session.js +15 -170
  18. package/dist/commands/session.js.map +1 -1
  19. package/dist/commands/shared.d.ts.map +1 -1
  20. package/dist/commands/shared.js +13 -5
  21. package/dist/commands/shared.js.map +1 -1
  22. package/dist/commands/update-ops.d.ts +29 -0
  23. package/dist/commands/update-ops.d.ts.map +1 -0
  24. package/dist/commands/update-ops.js +315 -0
  25. package/dist/commands/update-ops.js.map +1 -0
  26. package/dist/config.d.ts +2 -0
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js.map +1 -1
  29. package/dist/update-binary.d.ts +38 -0
  30. package/dist/update-binary.d.ts.map +1 -0
  31. package/dist/update-binary.js +144 -0
  32. package/dist/update-binary.js.map +1 -0
  33. package/dist/update-check.d.ts +40 -0
  34. package/dist/update-check.d.ts.map +1 -0
  35. package/dist/update-check.js +212 -0
  36. package/dist/update-check.js.map +1 -0
  37. package/dist/update-render.d.ts +17 -0
  38. package/dist/update-render.d.ts.map +1 -0
  39. package/dist/update-render.js +39 -0
  40. package/dist/update-render.js.map +1 -0
  41. package/dist/update.d.ts +10 -9
  42. package/dist/update.d.ts.map +1 -1
  43. package/dist/update.js +21 -89
  44. package/dist/update.js.map +1 -1
  45. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  46. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +13 -1
  47. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  48. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  49. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +2 -0
  50. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  51. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  52. package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts +43 -0
  53. package/node_modules/@noodle-borg/service/dist/archive-sweeper.d.ts.map +1 -0
  54. package/node_modules/@noodle-borg/service/dist/archive-sweeper.js +122 -0
  55. package/node_modules/@noodle-borg/service/dist/archive-sweeper.js.map +1 -0
  56. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts +11 -0
  57. package/node_modules/@noodle-borg/service/dist/commercial-plans.d.ts.map +1 -0
  58. package/node_modules/@noodle-borg/service/dist/commercial-plans.js +119 -0
  59. package/node_modules/@noodle-borg/service/dist/commercial-plans.js.map +1 -0
  60. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts +2 -0
  61. package/node_modules/@noodle-borg/service/dist/deployment-versioning.d.ts.map +1 -1
  62. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js +1 -1
  63. package/node_modules/@noodle-borg/service/dist/deployment-versioning.js.map +1 -1
  64. package/node_modules/@noodle-borg/service/dist/index.d.ts +3 -1
  65. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  66. package/node_modules/@noodle-borg/service/dist/index.js +2 -0
  67. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  68. package/node_modules/@noodle-borg/service/dist/options.d.ts +9 -0
  69. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/policy.d.ts +3 -0
  71. package/node_modules/@noodle-borg/service/dist/policy.d.ts.map +1 -1
  72. package/node_modules/@noodle-borg/service/dist/policy.js +32 -0
  73. package/node_modules/@noodle-borg/service/dist/policy.js.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts +25 -0
  75. package/node_modules/@noodle-borg/service/dist/registry-state.d.ts.map +1 -0
  76. package/node_modules/@noodle-borg/service/dist/registry-state.js +119 -0
  77. package/node_modules/@noodle-borg/service/dist/registry-state.js.map +1 -0
  78. package/node_modules/@noodle-borg/service/dist/registry.d.ts +7 -6
  79. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  80. package/node_modules/@noodle-borg/service/dist/registry.js +44 -44
  81. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  82. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts +16 -0
  83. package/node_modules/@noodle-borg/service/dist/routes/archive.d.ts.map +1 -0
  84. package/node_modules/@noodle-borg/service/dist/routes/archive.js +83 -0
  85. package/node_modules/@noodle-borg/service/dist/routes/archive.js.map +1 -0
  86. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +1 -18
  87. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +18 -260
  89. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  90. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts +17 -0
  91. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -0
  92. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +88 -0
  93. package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -0
  94. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts +40 -0
  95. package/node_modules/@noodle-borg/service/dist/routes/org-admin.d.ts.map +1 -0
  96. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js +353 -0
  97. package/node_modules/@noodle-borg/service/dist/routes/org-admin.js.map +1 -0
  98. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +15 -0
  99. package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
  100. package/node_modules/@noodle-borg/service/dist/routes/paths.js +47 -0
  101. package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
  102. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts +20 -0
  103. package/node_modules/@noodle-borg/service/dist/routes/plans.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/service/dist/routes/plans.js +217 -0
  105. package/node_modules/@noodle-borg/service/dist/routes/plans.js.map +1 -0
  106. package/node_modules/@noodle-borg/service/dist/routes/policies.d.ts.map +1 -1
  107. package/node_modules/@noodle-borg/service/dist/routes/policies.js +7 -0
  108. package/node_modules/@noodle-borg/service/dist/routes/policies.js.map +1 -1
  109. package/node_modules/@noodle-borg/service/dist/routes/rollback.d.ts.map +1 -1
  110. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +19 -1
  111. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  112. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  113. package/node_modules/@noodle-borg/service/dist/service.js +107 -4
  114. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  115. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts +14 -0
  116. package/node_modules/@noodle-borg/service/dist/store/control-plane.d.ts.map +1 -1
  117. package/node_modules/@noodle-borg/service/dist/store/control-plane.js +38 -0
  118. package/node_modules/@noodle-borg/service/dist/store/control-plane.js.map +1 -1
  119. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts +25 -0
  120. package/node_modules/@noodle-borg/service/dist/store/json-file.d.ts.map +1 -0
  121. package/node_modules/@noodle-borg/service/dist/store/json-file.js +163 -0
  122. package/node_modules/@noodle-borg/service/dist/store/json-file.js.map +1 -0
  123. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts +14 -0
  124. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.d.ts.map +1 -1
  125. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js +16 -0
  126. package/node_modules/@noodle-borg/service/dist/store/postgres-control-plane.js.map +1 -1
  127. package/node_modules/@noodle-borg/service/dist/store/postgres-policy.d.ts.map +1 -1
  128. package/node_modules/@noodle-borg/service/dist/store/postgres-policy.js +10 -4
  129. package/node_modules/@noodle-borg/service/dist/store/postgres-policy.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +60 -0
  131. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -0
  132. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +101 -0
  133. package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -0
  134. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +10 -0
  136. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  137. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts +20 -6
  138. package/node_modules/@noodle-borg/service/dist/store/postgres.d.ts.map +1 -1
  139. package/node_modules/@noodle-borg/service/dist/store/postgres.js +74 -122
  140. package/node_modules/@noodle-borg/service/dist/store/postgres.js.map +1 -1
  141. package/node_modules/@noodle-borg/service/dist/store/records.d.ts +35 -0
  142. package/node_modules/@noodle-borg/service/dist/store/records.d.ts.map +1 -0
  143. package/node_modules/@noodle-borg/service/dist/store/records.js +87 -0
  144. package/node_modules/@noodle-borg/service/dist/store/records.js.map +1 -0
  145. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts +19 -0
  146. package/node_modules/@noodle-borg/service/dist/store/validate.d.ts.map +1 -0
  147. package/node_modules/@noodle-borg/service/dist/store/validate.js +61 -0
  148. package/node_modules/@noodle-borg/service/dist/store/validate.js.map +1 -0
  149. package/node_modules/@noodle-borg/service/dist/store.d.ts +68 -44
  150. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  151. package/node_modules/@noodle-borg/service/dist/store.js +48 -213
  152. package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
  153. package/package.json +2 -2
@@ -65,8 +65,9 @@ export function usage(write = console.error) {
65
65
  ' three-pane widget preview: tool list, live in-iframe render, MCP call log',
66
66
  ' audit status|events [--service <url>] [--auth-token <t>] [--json]',
67
67
  ' operator governance audit status and event queries',
68
- ' policy status|list|show|effective|simulate|suspend|resume|deny|quota|rate|usage|apply|delete',
68
+ ' policy status|list|show|effective|simulate|suspend|resume|deny|quota|rate|usage|apply|delete|plan',
69
69
  ' [--org <slug>] [--service <url>] [--auth-token <t>] [--json]',
70
+ ' policy plan show|set|suspend --org <slug> [free|pro|scale|enterprise] [--reason <text>]',
70
71
  ' deploy <server.ts> [--org <slug>] [--app <slug>] [--env <slug>]',
71
72
  ' [--version <version>] [--private]',
72
73
  ' [--access <owner-only|org-members|authenticated|customers>]',
@@ -78,20 +79,27 @@ export function usage(write = console.error) {
78
79
  ' smoke [--org <slug>] [--app <slug>] [--env <slug>] [--service <url>] [--json]',
79
80
  ' run hosted readiness diagnostics and print external smoke commands',
80
81
  ' rollback <deploymentId> [--org <slug>] [--app <slug>] [--env <slug>] [--reason <text>] [--json]',
82
+ ' archive <app> [--org <slug>] [--yes] [--json]',
83
+ ' archive the whole app: endpoints answer 410 Gone; hard-deleted after the retention window',
84
+ ' restore <app> [--org <slug>] [--json]',
85
+ ' restore an archived app within the retention window',
81
86
  ' access set owner-only|org-members|authenticated|customers [--org <slug>] [--app <slug>] [--env <slug>] [--version <version>] [--json]',
82
87
  ' service capabilities [--service <url>] [--json] [--advanced]',
83
88
  ' login [--service <url>] [--auth-token <token>] [--env <name>]',
84
89
  ' logout',
85
90
  ' whoami [--service <url>] [--auth-token <t>]',
86
- ' list [--org <slug>] [--app <slug>] [--env <slug>] [--service <url>] [--auth-token <t>]',
87
- ' orgs list|create <slug> [--display-name <name>]',
88
- ' members list|add|remove --org <slug> [--subject <sub>] [--email <email>] [--role owner|developer]',
91
+ ' list [--org <slug>] [--app <slug>] [--env <slug>] [--archived] [--service <url>] [--auth-token <t>]',
92
+ ' orgs list|create <slug> [--display-name <name>]|rename <slug> --name <displayName>',
93
+ ' members list|add|remove|set-role --org <slug> [--subject <sub>] [--email <email>] [--role owner|developer]',
94
+ ' members invitations --org <slug> [--all]',
95
+ ' members revoke --org <slug> --email <email>',
89
96
  ' target show|set [--runtime local|cloud|other] [--service <url>] [--org <slug>]',
90
97
  ' [--app <slug>] [--env <slug>]',
91
98
  ' secrets set|list|delete|resolve [name] --scope org|app|env [--value <v>]',
92
99
  ' [--from-env <var>] [--from-file <path>] [--from-stdin]',
93
100
  ' variables set|list|delete|resolve [name] --scope org|app|env [--value <v>]',
94
- ' update [--yes] show or run the global npm update command',
101
+ ' update [--check] [--yes] [--repair] [--json]',
102
+ ' check for, install, or safely repair the global CLI install',
95
103
  ' --version print the installed CLI version',
96
104
  '',
97
105
  'Resolution: flag > env (NOODLE_SERVICE_URL / NOODLE_AUTH_TOKEN) > ~/.noodle/config.json > default',
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,EAAE,CAAC;IACT,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,QAAmC,OAAO,CAAC,KAAK;IACpE,KAAK,CACH;QACE,yBAAyB;QACzB,EAAE;QACF,sFAAsF;QACtF,oGAAoG;QACpG,6EAA6E;QAC7E,8DAA8D;QAC9D,kEAAkE;QAClE,6EAA6E;QAC7E,mFAAmF;QACnF,qEAAqE;QACrE,oHAAoH;QACpH,sFAAsF;QACtF,6EAA6E;QAC7E,4FAA4F;QAC5F,0FAA0F;QAC1F,0EAA0E;QAC1E,mFAAmF;QACnF,uDAAuD;QACvD,kFAAkF;QAClF,+CAA+C;QAC/C,6FAA6F;QAC7F,iFAAiF;QACjF,uFAAuF;QACvF,mEAAmE;QACnE,wGAAwG;QACxG,8CAA8C;QAC9C,gFAAgF;QAChF,+DAA+D;QAC/D,0EAA0E;QAC1E,sBAAsB;QACtB,yGAAyG;QACzG,yGAAyG;QACzG,sGAAsG;QACtG,uHAAuH;QACvH,iGAAiG;QACjG,sGAAsG;QACtG,qCAAqC;QACrC,6FAA6F;QAC7F,8GAA8G;QAC9G,sEAAsE;QACtE,uFAAuF;QACvF,gGAAgG;QAChG,iGAAiG;QACjG,mEAAmE;QACnE,sEAAsE;QACtE,gGAAgG;QAChG,8FAA8F;QAC9F,kFAAkF;QAClF,wGAAwG;QACxG,mFAAmF;QACnF,+FAA+F;QAC/F,iFAAiF;QACjF,uGAAuG;QACvG,mGAAmG;QACnG,yIAAyI;QACzI,gEAAgE;QAChE,kEAAkE;QAClE,UAAU;QACV,+CAA+C;QAC/C,4FAA4F;QAC5F,qDAAqD;QACrD,qGAAqG;QACrG,kFAAkF;QAClF,iDAAiD;QACjD,4EAA4E;QAC5E,0FAA0F;QAC1F,8EAA8E;QAC9E,+EAA+E;QAC/E,qEAAqE;QACrE,EAAE;QACF,mGAAmG;KACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,aAAa,CAAC;QACZ,OAAO;QACP,KAAK,EAAE,8BAA8B;QACrC,GAAG,EAAE,4EAA4E;QACjF,IAAI,EAAE,gDAAgD;KACvD,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,OAAO,CACL,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,eAAe;QACzB,KAAK,KAAK,WAAW,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,aAAa,CAAC;QACZ,OAAO;QACP,KAAK,EAAE,4CAA4C;QACnD,GAAG,EAAE,0DAA0D;QAC/D,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAYD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAmB,EAAE,IAAI,GAAG,KAAK;IAChF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CACX,IAAI,CAAC,SAAS,CAAC;YACb,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E;SACF,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,aAAa,CAAC;YACZ,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,KAAc,EAAE,IAAY;IAC3E,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;QAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe;YAC9E,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,GAAG,EAAE,IAAI;gBACP,CAAC,CAAC,uCAAuC;gBACzC,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,+CAA+C;oBACjD,CAAC,CAAC,uCAAuC;YAC7C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;YAClC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;QAC1B,GAAG,EAAE,iCAAiC;QACtC,IAAI;QACJ,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAuB;IAS5D,IAAI,GAAuB,CAAC;IAC5B,IAAI,GAAuB,CAAC;IAC5B,IAAI,SAA6B,CAAC;IAClC,IAAI,aAAiC,CAAC;IACtC,IAAI,OAA2B,CAAC;IAChC,IAAI,SAA6B,CAAC;IAClC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAChC,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACrC,IAAI,GAAG,KAAK,OAAO;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3C,IAAI,GAAG,KAAK,WAAW;YAAE,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACnD,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7C,IAAI,GAAG,KAAK,cAAc;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAClD,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC;IACzC,CAAC;IACD,OAAO;QACL,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAKC,EACD,IAAY;IAUZ,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAChF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,0BAA0B;gBACnC,KAAK,EAAE,0CAA0C;gBACjD,GAAG,EAAE,2CAA2C;gBAChD,IAAI,EAAE,qCAAqC;gBAC3C,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,GAAG;QACH,GAAG;QACH,GAAG,EAAE,SAAS;QACd,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YAC5D,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE;YAC1E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,EAAE,CAAC;IACT,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,QAAmC,OAAO,CAAC,KAAK;IACpE,KAAK,CACH;QACE,yBAAyB;QACzB,EAAE;QACF,sFAAsF;QACtF,oGAAoG;QACpG,6EAA6E;QAC7E,8DAA8D;QAC9D,kEAAkE;QAClE,6EAA6E;QAC7E,mFAAmF;QACnF,qEAAqE;QACrE,oHAAoH;QACpH,sFAAsF;QACtF,6EAA6E;QAC7E,4FAA4F;QAC5F,0FAA0F;QAC1F,0EAA0E;QAC1E,mFAAmF;QACnF,uDAAuD;QACvD,kFAAkF;QAClF,+CAA+C;QAC/C,6FAA6F;QAC7F,iFAAiF;QACjF,uFAAuF;QACvF,mEAAmE;QACnE,wGAAwG;QACxG,8CAA8C;QAC9C,gFAAgF;QAChF,+DAA+D;QAC/D,0EAA0E;QAC1E,sBAAsB;QACtB,yGAAyG;QACzG,yGAAyG;QACzG,sGAAsG;QACtG,uHAAuH;QACvH,iGAAiG;QACjG,sGAAsG;QACtG,qCAAqC;QACrC,6FAA6F;QAC7F,8GAA8G;QAC9G,sEAAsE;QACtE,uFAAuF;QACvF,qGAAqG;QACrG,iGAAiG;QACjG,2FAA2F;QAC3F,mEAAmE;QACnE,sEAAsE;QACtE,gGAAgG;QAChG,8FAA8F;QAC9F,kFAAkF;QAClF,wGAAwG;QACxG,mFAAmF;QACnF,+FAA+F;QAC/F,iFAAiF;QACjF,uGAAuG;QACvG,mGAAmG;QACnG,iDAAiD;QACjD,8HAA8H;QAC9H,yCAAyC;QACzC,wFAAwF;QACxF,yIAAyI;QACzI,gEAAgE;QAChE,kEAAkE;QAClE,UAAU;QACV,+CAA+C;QAC/C,yGAAyG;QACzG,wFAAwF;QACxF,8GAA8G;QAC9G,4CAA4C;QAC5C,+CAA+C;QAC/C,kFAAkF;QAClF,iDAAiD;QACjD,4EAA4E;QAC5E,0FAA0F;QAC1F,8EAA8E;QAC9E,gDAAgD;QAChD,gGAAgG;QAChG,qEAAqE;QACrE,EAAE;QACF,mGAAmG;KACpG,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,aAAa,CAAC;QACZ,OAAO;QACP,KAAK,EAAE,8BAA8B;QACrC,GAAG,EAAE,4EAA4E;QACjF,IAAI,EAAE,gDAAgD;KACvD,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAyB;IACpD,OAAO,CACL,KAAK,KAAK,YAAY;QACtB,KAAK,KAAK,aAAa;QACvB,KAAK,KAAK,eAAe;QACzB,KAAK,KAAK,WAAW,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,aAAa,CAAC;QACZ,OAAO;QACP,KAAK,EAAE,4CAA4C;QACnD,GAAG,EAAE,0DAA0D;QAC/D,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;IACH,OAAO,CAAC,CAAC;AACX,CAAC;AAYD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAmB,EAAE,IAAI,GAAG,KAAK;IAChF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CACX,IAAI,CAAC,SAAS,CAAC;YACb,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E;SACF,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,aAAa,CAAC;YACZ,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,KAAc,EAAE,IAAY;IAC3E,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC;QAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe;YAC9E,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,GAAG,EAAE,IAAI;gBACP,CAAC,CAAC,uCAAuC;gBACzC,CAAC,CAAC,OAAO;oBACP,CAAC,CAAC,+CAA+C;oBACjD,CAAC,CAAC,uCAAuC;YAC7C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;YAClC,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;QAC1B,GAAG,EAAE,iCAAiC;QACtC,IAAI;QACJ,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAuB;IAS5D,IAAI,GAAuB,CAAC;IAC5B,IAAI,GAAuB,CAAC;IAC5B,IAAI,SAA6B,CAAC;IAClC,IAAI,aAAiC,CAAC;IACtC,IAAI,OAA2B,CAAC;IAChC,IAAI,SAA6B,CAAC;IAClC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAChC,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACrC,IAAI,GAAG,KAAK,OAAO;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3C,IAAI,GAAG,KAAK,WAAW;YAAE,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACnD,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC7C,IAAI,GAAG,KAAK,cAAc;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAClD,IAAI,GAAG,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC;IACzC,CAAC;IACD,OAAO;QACL,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAKC,EACD,IAAY;IAUZ,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAChF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,0BAA0B;gBACnC,KAAK,EAAE,0CAA0C;gBACjD,GAAG,EAAE,2CAA2C;gBAChD,IAAI,EAAE,qCAAqC;gBAC3C,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,IAAI;QACR,GAAG;QACH,GAAG;QACH,GAAG,EAAE,SAAS;QACd,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;YAC5D,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,UAAU,EAAE;YAC1E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { type ColorMode } from '../gradient.js';
2
+ import { type NoodleBinaryInspection } from '../update-binary.js';
3
+ export declare const UPDATE_EXIT: {
4
+ readonly ok: 0;
5
+ readonly updateAvailable: 10;
6
+ readonly updateFailed: 11;
7
+ readonly repairRequired: 12;
8
+ readonly unsafeBinary: 13;
9
+ readonly networkInconclusive: 14;
10
+ };
11
+ export interface UpdateCommandDeps {
12
+ readonly env?: NodeJS.ProcessEnv;
13
+ readonly fetchImpl?: typeof fetch;
14
+ readonly inspectImpl?: () => NoodleBinaryInspection;
15
+ readonly installImpl?: (opts: {
16
+ readonly json: boolean;
17
+ readonly colorMode?: ColorMode;
18
+ }) => Promise<number>;
19
+ readonly unlinkImpl?: (path: string) => void;
20
+ readonly confirmImpl?: (message: string) => Promise<boolean>;
21
+ /** Base prompt capability; defaults to stdin+stdout TTY outside CI. */
22
+ readonly interactive?: boolean;
23
+ readonly log?: (line: string) => void;
24
+ readonly logError?: (line: string) => void;
25
+ /** Rich-output mode; defaults to stdout detection ('none' in tests/CI/pipes). */
26
+ readonly colorMode?: ColorMode;
27
+ }
28
+ export declare function runUpdateCommand(rest: readonly string[], deps?: UpdateCommandDeps): Promise<number>;
29
+ //# sourceMappingURL=update-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-ops.d.ts","sourceRoot":"","sources":["../../src/commands/update-ops.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAWjE,OAAO,EAAuB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAQvF,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAMX,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,sBAAsB,CAAC;IACpD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;KAChC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAsOjB"}
@@ -0,0 +1,315 @@
1
+ /**
2
+ * `noodle update` — the canonical install/update/repair command (#242, ADR 0118).
3
+ *
4
+ * `npm install -g` fails with `EEXIST` before any of our code runs when a stale or
5
+ * foreign `noodle` binary occupies the global bin path, so this command detects the
6
+ * conflict first (via `update-binary.ts`), repairs it only when the binary is provably
7
+ * ours, and otherwise prints the exact manual commands. The repair unlink is the only
8
+ * destructive filesystem operation in the update system, runs only on a SAFE-classified
9
+ * path, and is always logged plainly.
10
+ *
11
+ * Stable exit codes (explicit `noodle update` paths only, never plain commands):
12
+ * 0 ok / already current / updated
13
+ * 10 update available (--check)
14
+ * 11 update or repair failed
15
+ * 12 repair required (safe, but --repair not authorized / not confirmable)
16
+ * 13 unsafe conflicting binary
17
+ * 14 network inconclusive
18
+ */
19
+ import { spawn } from 'node:child_process';
20
+ import { unlinkSync } from 'node:fs';
21
+ import { detectColorMode } from '../gradient.js';
22
+ import { confirm } from '../prompts.js';
23
+ import { startSpinner } from '../status.js';
24
+ import { CLI_PACKAGE_NAME, compareVersions, currentCliVersion, fetchLatestVersion, GLOBAL_UPDATE_COMMAND, truthyEnv, } from '../update.js';
25
+ import { inspectNoodleBinary } from '../update-binary.js';
26
+ import { renderRepairNotice, renderUpdateAvailable, renderUpdated, renderUpToDate, } from '../update-render.js';
27
+ export const UPDATE_EXIT = {
28
+ ok: 0,
29
+ updateAvailable: 10,
30
+ updateFailed: 11,
31
+ repairRequired: 12,
32
+ unsafeBinary: 13,
33
+ networkInconclusive: 14,
34
+ };
35
+ const RECOMMENDED_UPDATE = 'noodle update --yes --json';
36
+ const RECOMMENDED_REPAIR = 'noodle update --yes --repair --json';
37
+ const UNSAFE_REASON = `Existing noodle binary is not known to be owned by ${CLI_PACKAGE_NAME}.`;
38
+ export async function runUpdateCommand(rest, deps = {}) {
39
+ const env = deps.env ?? process.env;
40
+ const yes = rest.includes('--yes') || rest.includes('-y');
41
+ const check = rest.includes('--check');
42
+ const json = rest.includes('--json');
43
+ const repair = rest.includes('--repair');
44
+ const log = deps.log ?? console.log;
45
+ const logError = deps.logError ?? console.error;
46
+ const canPrompt = (deps.interactive ?? defaultInteractive(env)) &&
47
+ !truthyEnv(env.NOODLE_NO_PROMPT) &&
48
+ !yes &&
49
+ !json &&
50
+ !check;
51
+ const colorMode = deps.colorMode ?? detectColorMode(process.stdout);
52
+ const installed = currentCliVersion();
53
+ // The check moment: a live spinner on rich TTYs; nothing extra anywhere else.
54
+ const spin = colorMode !== 'none' && !json ? startSpinner('checking for updates') : undefined;
55
+ const latest = await fetchLatestVersion(deps.fetchImpl ?? fetch, 5000).catch(() => undefined);
56
+ if (latest === undefined) {
57
+ spin?.warn('could not reach the npm registry');
58
+ if (json) {
59
+ log(JSON.stringify({
60
+ ok: false,
61
+ error: 'network_inconclusive',
62
+ package: CLI_PACKAGE_NAME,
63
+ installed,
64
+ reason: 'Could not reach the npm registry to determine the latest version.',
65
+ }));
66
+ }
67
+ else if (spin === undefined) {
68
+ logError('update: could not reach the npm registry to determine the latest version.');
69
+ }
70
+ return UPDATE_EXIT.networkInconclusive;
71
+ }
72
+ spin?.stop();
73
+ const updateAvailable = compareVersions(latest, installed) > 0;
74
+ const inspection = (deps.inspectImpl ?? inspectNoodleBinary)();
75
+ const status = inspection.status;
76
+ const repairRequired = status.kind === 'safe-repair' || status.kind === 'unsafe';
77
+ const repairSafe = status.kind === 'safe-repair';
78
+ const checkShape = () => ({
79
+ ok: true,
80
+ package: CLI_PACKAGE_NAME,
81
+ installed,
82
+ latest,
83
+ updateAvailable,
84
+ // Never recommend a command guaranteed to exit 13: an UNSAFE binary gets
85
+ // the manual path at check time instead of a doomed --yes suggestion.
86
+ ...(updateAvailable && status.kind !== 'unsafe'
87
+ ? { recommendedCommand: repairSafe ? RECOMMENDED_REPAIR : RECOMMENDED_UPDATE }
88
+ : {}),
89
+ repairRequired,
90
+ repairSafe,
91
+ ...(status.kind === 'unsafe'
92
+ ? {
93
+ path: inspection.binPath,
94
+ manualCommands: [`rm ${inspection.binPath}`, GLOBAL_UPDATE_COMMAND],
95
+ }
96
+ : {}),
97
+ });
98
+ if (check) {
99
+ if (json)
100
+ log(JSON.stringify(checkShape()));
101
+ else
102
+ printPlan({ log, logError, installed, latest, updateAvailable, inspection, colorMode });
103
+ return updateAvailable ? UPDATE_EXIT.updateAvailable : UPDATE_EXIT.ok;
104
+ }
105
+ if (!updateAvailable) {
106
+ if (json)
107
+ log(JSON.stringify(checkShape()));
108
+ else
109
+ log(renderUpToDate(installed, colorMode));
110
+ return UPDATE_EXIT.ok;
111
+ }
112
+ const install = async (repairedPath) => {
113
+ const code = await (deps.installImpl ?? defaultInstall)({ json, colorMode });
114
+ if (code !== 0) {
115
+ if (json) {
116
+ log(JSON.stringify({
117
+ ok: false,
118
+ error: 'update_failed',
119
+ package: CLI_PACKAGE_NAME,
120
+ installedBefore: installed,
121
+ command: GLOBAL_UPDATE_COMMAND,
122
+ exitCode: code,
123
+ }));
124
+ }
125
+ else {
126
+ logError(`update: \`${GLOBAL_UPDATE_COMMAND}\` exited with code ${code}.`);
127
+ }
128
+ return UPDATE_EXIT.updateFailed;
129
+ }
130
+ if (json) {
131
+ log(JSON.stringify({
132
+ ok: true,
133
+ package: CLI_PACKAGE_NAME,
134
+ installedBefore: installed,
135
+ installedAfter: latest,
136
+ command: GLOBAL_UPDATE_COMMAND,
137
+ ...(repairedPath !== undefined ? { repairPerformed: true, repairedPath } : {}),
138
+ }));
139
+ }
140
+ else {
141
+ log(renderUpdated(installed, latest, colorMode));
142
+ }
143
+ return UPDATE_EXIT.ok;
144
+ };
145
+ const repairAndInstall = async () => {
146
+ const reason = status.kind === 'safe-repair' ? status.reason : '';
147
+ // The one destructive operation in the update system: unlink a SAFE-classified
148
+ // path, logged plainly before it happens.
149
+ logError(`Removing blocked binary: ${inspection.binPath} (${reason})`);
150
+ try {
151
+ (deps.unlinkImpl ?? unlinkSync)(inspection.binPath);
152
+ }
153
+ catch (error) {
154
+ const message = error instanceof Error ? error.message : String(error);
155
+ if (json) {
156
+ log(JSON.stringify({
157
+ ok: false,
158
+ error: 'repair_failed',
159
+ package: CLI_PACKAGE_NAME,
160
+ path: inspection.binPath,
161
+ reason: message,
162
+ }));
163
+ }
164
+ else {
165
+ logError(`update: could not remove ${inspection.binPath}: ${message}`);
166
+ }
167
+ return UPDATE_EXIT.updateFailed;
168
+ }
169
+ return install(inspection.binPath);
170
+ };
171
+ const reportUnsafe = () => {
172
+ if (json) {
173
+ log(JSON.stringify({
174
+ ok: false,
175
+ error: 'conflicting_binary',
176
+ package: CLI_PACKAGE_NAME,
177
+ path: inspection.binPath,
178
+ reason: UNSAFE_REASON,
179
+ repairRequired: true,
180
+ repairSafe: false,
181
+ manualCommands: [`rm ${inspection.binPath}`, GLOBAL_UPDATE_COMMAND],
182
+ }));
183
+ }
184
+ else {
185
+ logError('The existing `noodle` binary is not owned by this install, so I will not overwrite it automatically.');
186
+ logError(` binary: ${inspection.binPath}`);
187
+ logError('Verify that file yourself, then update manually:');
188
+ logError(` rm ${inspection.binPath}`);
189
+ logError(` ${GLOBAL_UPDATE_COMMAND}`);
190
+ }
191
+ return UPDATE_EXIT.unsafeBinary;
192
+ };
193
+ const reportRepairRequired = () => {
194
+ if (json) {
195
+ log(JSON.stringify({
196
+ ok: false,
197
+ error: 'repair_required',
198
+ package: CLI_PACKAGE_NAME,
199
+ path: inspection.binPath,
200
+ reason: 'A previous Noodle CLI binary is blocking npm; it is safe to remove.',
201
+ repairRequired: true,
202
+ repairSafe: true,
203
+ recommendedCommand: RECOMMENDED_REPAIR,
204
+ }));
205
+ }
206
+ else {
207
+ logError(`update: an old Noodle CLI binary at ${inspection.binPath} is blocking npm.`);
208
+ logError('Run `noodle update --yes --repair` to remove it safely and update.');
209
+ }
210
+ return UPDATE_EXIT.repairRequired;
211
+ };
212
+ // Headless or explicitly-flagged action paths (--yes and/or --repair).
213
+ if (yes || repair) {
214
+ if (status.kind === 'unsafe')
215
+ return reportUnsafe();
216
+ if (repairSafe) {
217
+ if (repair && yes)
218
+ return repairAndInstall();
219
+ if (repair && canPrompt) {
220
+ printPlan({ log, logError, installed, latest, updateAvailable, inspection, colorMode });
221
+ const go = await promptConfirm(deps, 'Repair and update now?');
222
+ return go ? repairAndInstall() : UPDATE_EXIT.ok;
223
+ }
224
+ // --yes without --repair, or --repair without a way to confirm.
225
+ return reportRepairRequired();
226
+ }
227
+ // No blocking binary (or the active install's own symlink).
228
+ if (yes)
229
+ return install();
230
+ // --repair with nothing to repair, interactive: fall through to the normal prompt.
231
+ }
232
+ // Interactive default: show the plan, then ask.
233
+ if (canPrompt) {
234
+ log(renderUpdateAvailable(installed, latest, colorMode));
235
+ if (status.kind === 'unsafe')
236
+ return reportUnsafe();
237
+ if (repairSafe) {
238
+ logError(renderRepairNotice(`An old \`noodle\` binary at ${inspection.binPath} is blocking npm.`, colorMode));
239
+ logError('It is provably a Noodle CLI install, so it can be removed safely.');
240
+ const go = await promptConfirm(deps, 'Repair and update now?');
241
+ return go ? repairAndInstall() : UPDATE_EXIT.ok;
242
+ }
243
+ const go = await promptConfirm(deps, 'Update now?');
244
+ return go ? install() : UPDATE_EXIT.ok;
245
+ }
246
+ // Non-interactive without an action flag: report the plan and change nothing.
247
+ if (json)
248
+ log(JSON.stringify(checkShape()));
249
+ else
250
+ printPlan({ log, logError, installed, latest, updateAvailable, inspection, colorMode });
251
+ return UPDATE_EXIT.ok;
252
+ }
253
+ function printPlan(input) {
254
+ const { log, installed, latest, updateAvailable, inspection, colorMode } = input;
255
+ if (!updateAvailable) {
256
+ log(renderUpToDate(installed, colorMode));
257
+ return;
258
+ }
259
+ log(renderUpdateAvailable(installed, latest, colorMode));
260
+ const status = inspection.status;
261
+ if (status.kind === 'safe-repair') {
262
+ log(`An old \`noodle\` binary at ${inspection.binPath} will block npm; it is safe to remove.`);
263
+ log('Run `noodle update --yes --repair` to repair and update now.');
264
+ return;
265
+ }
266
+ if (status.kind === 'unsafe') {
267
+ log(`An existing \`noodle\` binary at ${inspection.binPath} blocks npm and is not owned by`);
268
+ log('this install. Verify and remove it yourself, then update:');
269
+ log(` rm ${inspection.binPath}`);
270
+ log(` ${GLOBAL_UPDATE_COMMAND}`);
271
+ return;
272
+ }
273
+ log('Run `noodle update --yes` to update now.');
274
+ }
275
+ async function promptConfirm(deps, message) {
276
+ const ask = deps.confirmImpl ?? ((m) => confirm(m));
277
+ return ask(message).catch(() => false);
278
+ }
279
+ function defaultInteractive(env) {
280
+ return (process.stdin.isTTY === true && process.stdout.isTTY === true && !truthyEnv(env.CI ?? undefined));
281
+ }
282
+ function defaultInstall(opts) {
283
+ const rich = !opts.json && (opts.colorMode ?? 'none') !== 'none';
284
+ // Rich TTYs get a spinner and captured npm output (shown only on failure);
285
+ // --json keeps stdout machine-readable; plain mode inherits npm's own output.
286
+ const spin = rich ? startSpinner(`updating ${CLI_PACKAGE_NAME}`) : undefined;
287
+ return new Promise((resolve) => {
288
+ const child = spawn('npm', ['install', '-g', `${CLI_PACKAGE_NAME}@latest`], {
289
+ stdio: rich ? ['ignore', 'pipe', 'pipe'] : opts.json ? ['ignore', 2, 2] : 'inherit',
290
+ });
291
+ let captured = '';
292
+ child.stdout?.on('data', (chunk) => {
293
+ captured = (captured + chunk.toString()).slice(-65536);
294
+ });
295
+ child.stderr?.on('data', (chunk) => {
296
+ captured = (captured + chunk.toString()).slice(-65536);
297
+ });
298
+ child.on('error', (error) => {
299
+ spin?.fail(`updating ${CLI_PACKAGE_NAME}`);
300
+ console.error(`update: ${error.message}`);
301
+ resolve(1);
302
+ });
303
+ child.on('close', (code) => {
304
+ if ((code ?? 1) === 0)
305
+ spin?.stop();
306
+ else {
307
+ spin?.fail(`updating ${CLI_PACKAGE_NAME}`);
308
+ if (captured.length > 0)
309
+ process.stderr.write(`${captured}\n`);
310
+ }
311
+ resolve(code ?? 1);
312
+ });
313
+ });
314
+ }
315
+ //# sourceMappingURL=update-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-ops.js","sourceRoot":"","sources":["../../src/commands/update-ops.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -39,6 +39,8 @@ export interface NoodleConfig {
39
39
  readonly checkedAt: string;
40
40
  readonly latestVersion?: string;
41
41
  readonly skillsLatestVersion?: string;
42
+ /** Prompt snooze deadline (ISO): the default update prompt stays quiet until then. */
43
+ readonly snoozedUntil?: string;
42
44
  };
43
45
  }
44
46
  /** A locally-cached record of a deployed server. Contains metadata only; credentials are not stored here. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAuDjC,MAAM,UAAU,SAAS,CAAC,OAAe,OAAO,EAAE;IAChD,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/B,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,OAAe,OAAO,EAAE;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;AAC9C,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,OAAe,OAAO,EAAE;IAClD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC;AAC/C,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,OAAe,OAAO,EAAE;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAiB,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,WAAW,CAAC,MAAoB,EAAE,OAAe,OAAO,EAAE;IACxE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,WAAW,CAAC,OAAe,OAAO,EAAE;IAClD,MAAM,EACJ,SAAS,EAAE,UAAU,EACrB,kBAAkB,EAAE,mBAAmB,EACvC,WAAW,EAAE,YAAY,EACzB,aAAa,EAAE,cAAc,EAC7B,iBAAiB,EAAE,kBAAkB,EACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,QAAQ,EACjB,gBAAgB,EAAE,iBAAiB,EACnC,QAAQ,EAAE,SAAS,EACnB,cAAc,EAAE,eAAe,EAC/B,GAAG,IAAI,EACR,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,OAAO;IACT,CAAC;IACD,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CAAC,OAAe,OAAO,EAAE;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,MAAmB,EAAE,OAAe,OAAO,EAAE;IACxE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAClB,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAC/B,IAAwB,EACxB,GAAsB,EACtB,MAAoB;IAEpB,OAAO,IAAI,IAAI,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,UAAU,CAAC;AAC7D,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,gBAAgB,CAC9B,IAAwB,EACxB,GAAsB,EACtB,MAAoB;IAEpB,OAAO,IAAI,IAAI,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,SAAS,CAAC,KAAyB;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,6FAA6F;AAC7F,SAAS,WAAW,CAAC,IAAY,EAAE,QAAgB,EAAE,IAAY;IAC/D,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,38 @@
1
+ export type BinaryPathKind = 'file' | 'symlink' | 'dir' | 'other' | 'missing' | 'error';
2
+ export interface BinaryProbeDeps {
3
+ /** The running node executable; the expected global npm bin dir is its directory. */
4
+ readonly execPath: string;
5
+ lstatKind(path: string): BinaryPathKind;
6
+ readlink(path: string): string | undefined;
7
+ realpath(path: string): string | undefined;
8
+ /** First bytes of a file (launcher-shim sniffing). Undefined when unreadable. */
9
+ readFileHead(path: string): string | undefined;
10
+ }
11
+ /** Real-filesystem probes; `execPath` is overridable so tests point at a temp prefix. */
12
+ export declare function realBinaryProbeDeps(overrides?: Partial<Pick<BinaryProbeDeps, 'execPath'>>): BinaryProbeDeps;
13
+ export type BinaryStatus = {
14
+ readonly kind: 'none';
15
+ }
16
+ /** A healthy symlink into the active prefix's own Noodle CLI package — npm updates it in place. */
17
+ | {
18
+ readonly kind: 'active-install';
19
+ readonly target: string;
20
+ }
21
+ /** A blocking binary that is provably a Noodle CLI leftover; removing it is authorized. */
22
+ | {
23
+ readonly kind: 'safe-repair';
24
+ readonly reason: string;
25
+ }
26
+ /** A blocking binary of unknown or foreign ownership; never removed automatically. */
27
+ | {
28
+ readonly kind: 'unsafe';
29
+ readonly reason: string;
30
+ };
31
+ export interface NoodleBinaryInspection {
32
+ readonly expectedBinDir: string;
33
+ readonly binPath: string;
34
+ readonly status: BinaryStatus;
35
+ }
36
+ /** Inspect the expected global `noodle` binary and classify it. Never mutates anything. */
37
+ export declare function inspectNoodleBinary(deps?: BinaryProbeDeps): NoodleBinaryInspection;
38
+ //# sourceMappingURL=update-binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-binary.d.ts","sourceRoot":"","sources":["../src/update-binary.ts"],"names":[],"mappings":"AAoBA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAExF,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,iFAAiF;IACjF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAChD;AAED,yFAAyF;AACzF,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAM,GACzD,eAAe,CAoCjB;AAED,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC3B,mGAAmG;GACjG;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC9D,2FAA2F;GACzF;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC3D,sFAAsF;GACpF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAsBD,2FAA2F;AAC3F,wBAAgB,mBAAmB,CACjC,IAAI,GAAE,eAAuC,GAC5C,sBAAsB,CAIxB"}