@aui.io/apollo 0.1.60 → 0.1.66

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 (91) hide show
  1. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js +236 -93
  2. package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js.map +1 -1
  3. package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js +4 -1
  4. package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js.map +1 -1
  5. package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime-version.js +22 -1
  6. package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime-version.js.map +1 -1
  7. package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.js +19 -1
  8. package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.js.map +1 -1
  9. package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.d.ts +12 -0
  10. package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.js +21 -0
  11. package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.js.map +1 -1
  12. package/node_modules/@aui.io/apollo-cli/dist/src/index.d.ts +11 -1
  13. package/node_modules/@aui.io/apollo-cli/dist/src/index.js +95 -8
  14. package/node_modules/@aui.io/apollo-cli/dist/src/index.js.map +1 -1
  15. package/node_modules/@aui.io/apollo-cli/dist/src/update-refresh.d.ts +1 -0
  16. package/node_modules/@aui.io/apollo-cli/dist/src/update-refresh.js +21 -0
  17. package/node_modules/@aui.io/apollo-cli/dist/src/update-refresh.js.map +1 -0
  18. package/node_modules/@aui.io/apollo-cli/package.json +3 -3
  19. package/node_modules/@aui.io/apollo-core/dist/src/api/agent-settings.d.ts +1 -1
  20. package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.d.ts +117 -41
  21. package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js +26 -25
  22. package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js.map +1 -1
  23. package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.d.ts +0 -18
  24. package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js +0 -8
  25. package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js.map +1 -1
  26. package/node_modules/@aui.io/apollo-core/dist/src/config/store.d.ts +1 -0
  27. package/node_modules/@aui.io/apollo-core/dist/src/config/store.js +1 -1
  28. package/node_modules/@aui.io/apollo-core/dist/src/config/store.js.map +1 -1
  29. package/node_modules/@aui.io/apollo-core/dist/src/config/types.d.ts +1 -1
  30. package/node_modules/@aui.io/apollo-core/dist/src/errors/index.d.ts +30 -0
  31. package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js +47 -0
  32. package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js.map +1 -1
  33. package/node_modules/@aui.io/apollo-core/dist/src/index.d.ts +6 -4
  34. package/node_modules/@aui.io/apollo-core/dist/src/index.js +4 -2
  35. package/node_modules/@aui.io/apollo-core/dist/src/index.js.map +1 -1
  36. package/node_modules/@aui.io/apollo-core/dist/src/output/index.d.ts +31 -5
  37. package/node_modules/@aui.io/apollo-core/dist/src/output/index.js +36 -5
  38. package/node_modules/@aui.io/apollo-core/dist/src/output/index.js.map +1 -1
  39. package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/availability.d.ts +81 -0
  40. package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/availability.js +260 -0
  41. package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/availability.js.map +1 -0
  42. package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/index.d.ts +7 -0
  43. package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/index.js +2 -1
  44. package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/index.js.map +1 -1
  45. package/node_modules/@aui.io/apollo-core/dist/src/services/builds.d.ts +5 -8
  46. package/node_modules/@aui.io/apollo-core/dist/src/services/builds.js +5 -7
  47. package/node_modules/@aui.io/apollo-core/dist/src/services/builds.js.map +1 -1
  48. package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.d.ts +7 -11
  49. package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js +22 -18
  50. package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js.map +1 -1
  51. package/node_modules/@aui.io/apollo-core/dist/src/services/clients.d.ts +1 -1
  52. package/node_modules/@aui.io/apollo-core/dist/src/services/doctor.js +64 -2
  53. package/node_modules/@aui.io/apollo-core/dist/src/services/doctor.js.map +1 -1
  54. package/node_modules/@aui.io/apollo-core/dist/src/services/runs.d.ts +84 -0
  55. package/node_modules/@aui.io/apollo-core/dist/src/services/runs.js +186 -0
  56. package/node_modules/@aui.io/apollo-core/dist/src/services/runs.js.map +1 -0
  57. package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.d.ts +8 -0
  58. package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.js +15 -0
  59. package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.js.map +1 -1
  60. package/node_modules/@aui.io/apollo-core/dist/src/services/update-check.d.ts +105 -0
  61. package/node_modules/@aui.io/apollo-core/dist/src/services/update-check.js +265 -0
  62. package/node_modules/@aui.io/apollo-core/dist/src/services/update-check.js.map +1 -0
  63. package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.d.ts +11 -0
  64. package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.js +6 -2
  65. package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.js.map +1 -1
  66. package/node_modules/@aui.io/apollo-core/package.json +1 -1
  67. package/node_modules/@aui.io/apollo-tui/dist/src/index.d.ts +2 -0
  68. package/node_modules/@aui.io/apollo-tui/dist/src/index.js +2 -0
  69. package/node_modules/@aui.io/apollo-tui/dist/src/index.js.map +1 -1
  70. package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.d.ts +10 -1
  71. package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.js +58 -12
  72. package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.js.map +1 -1
  73. package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.d.ts +3 -1
  74. package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.js +2 -2
  75. package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.js.map +1 -1
  76. package/node_modules/@aui.io/apollo-tui/dist/src/lib/update.d.ts +16 -0
  77. package/node_modules/@aui.io/apollo-tui/dist/src/lib/update.js +21 -0
  78. package/node_modules/@aui.io/apollo-tui/dist/src/lib/update.js.map +1 -0
  79. package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js +37 -19
  80. package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js.map +1 -1
  81. package/node_modules/@aui.io/apollo-tui/dist/src/shell/FooterHints.d.ts +24 -1
  82. package/node_modules/@aui.io/apollo-tui/dist/src/shell/FooterHints.js +41 -4
  83. package/node_modules/@aui.io/apollo-tui/dist/src/shell/FooterHints.js.map +1 -1
  84. package/node_modules/@aui.io/apollo-tui/dist/src/theme/glyphs.d.ts +2 -0
  85. package/node_modules/@aui.io/apollo-tui/dist/src/theme/glyphs.js +2 -0
  86. package/node_modules/@aui.io/apollo-tui/dist/src/theme/glyphs.js.map +1 -1
  87. package/node_modules/@aui.io/apollo-tui/package.json +2 -2
  88. package/package.json +4 -4
  89. package/node_modules/@aui.io/apollo-core/dist/src/services/evaluations.d.ts +0 -42
  90. package/node_modules/@aui.io/apollo-core/dist/src/services/evaluations.js +0 -106
  91. package/node_modules/@aui.io/apollo-core/dist/src/services/evaluations.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
1
  import type { CliError } from "../errors/index.js";
2
+ import type { UpdateNotice } from "../services/update-check.js";
2
3
  export interface OutputOptions {
3
4
  json: boolean;
4
5
  quiet: boolean;
5
6
  verbose: boolean;
6
7
  }
8
+ export interface SuccessEnvelope {
9
+ success: true;
10
+ data: unknown;
11
+ /** A newer console is published. Additive: absent unless one is known,
12
+ * so consumers that never look for it see the envelope they always did. */
13
+ update?: UpdateNotice;
14
+ }
7
15
  export interface ErrorEnvelope {
8
16
  success: false;
9
17
  error: {
@@ -13,19 +21,37 @@ export interface ErrorEnvelope {
13
21
  /** The upstream response body (or other context) behind the failure. */
14
22
  detail?: unknown;
15
23
  };
24
+ /** Same as on success — a failing run is exactly when the fix may be
25
+ * "upgrade", so the notice rides the error envelope too. */
26
+ update?: UpdateNotice;
16
27
  }
17
- export declare function successEnvelope(data: unknown): {
18
- success: true;
19
- data: unknown;
20
- };
21
- export declare function errorEnvelope(error: CliError): ErrorEnvelope;
28
+ export declare function successEnvelope(data: unknown, update?: UpdateNotice): SuccessEnvelope;
29
+ export declare function errorEnvelope(error: CliError, update?: UpdateNotice): ErrorEnvelope;
22
30
  export declare class Output {
23
31
  readonly options: OutputOptions;
24
32
  private readonly stdout;
25
33
  private readonly stderr;
34
+ private update;
26
35
  constructor(options: OutputOptions, stdout?: NodeJS.WritableStream, stderr?: NodeJS.WritableStream);
36
+ /** The newer-version notice every envelope this Output emits will carry
37
+ * (and the trailing stderr line reports). Undefined clears it — the
38
+ * `upgrade` command does that, being the update surface itself. */
39
+ setUpdateNotice(update: UpdateNotice | undefined): void;
40
+ get updateNotice(): UpdateNotice | undefined;
27
41
  result(data: unknown, renderHuman: (value: unknown) => string): void;
28
42
  error(error: CliError): void;
43
+ /** A non-fatal caution — the command went through, but something the user
44
+ * should know about did not hold. Stderr in every mode (stdout stays the
45
+ * result envelope), silenced only by `--quiet`. */
46
+ warn(message: string): void;
47
+ /**
48
+ * A one-line advisory on stderr — the update banner. Unlike `progress()`
49
+ * it does not need a TTY: a coding agent driving plain commands reads
50
+ * stderr and must see it. JSON runs stay silent here because the
51
+ * envelope's `update` field already carries the same fact; `--quiet`
52
+ * mutes it like every other advisory.
53
+ */
54
+ notice(message: string): void;
29
55
  progress(message: string): void;
30
56
  debug(message: string): void;
31
57
  }
@@ -1,8 +1,8 @@
1
1
  import pc from "picocolors";
2
- export function successEnvelope(data) {
3
- return { success: true, data };
2
+ export function successEnvelope(data, update) {
3
+ return { success: true, data, ...(update === undefined ? {} : { update }) };
4
4
  }
5
- export function errorEnvelope(error) {
5
+ export function errorEnvelope(error, update) {
6
6
  return {
7
7
  success: false,
8
8
  error: {
@@ -11,6 +11,7 @@ export function errorEnvelope(error) {
11
11
  ...(error.suggestion === undefined ? {} : { suggestion: error.suggestion }),
12
12
  ...(error.detail === undefined ? {} : { detail: error.detail }),
13
13
  },
14
+ ...(update === undefined ? {} : { update }),
14
15
  };
15
16
  }
16
17
  /** How much of an upstream error body the default (non-verbose) human
@@ -26,26 +27,56 @@ export class Output {
26
27
  options;
27
28
  stdout;
28
29
  stderr;
30
+ update;
29
31
  constructor(options, stdout = process.stdout, stderr = process.stderr) {
30
32
  this.options = options;
31
33
  this.stdout = stdout;
32
34
  this.stderr = stderr;
33
35
  }
36
+ /** The newer-version notice every envelope this Output emits will carry
37
+ * (and the trailing stderr line reports). Undefined clears it — the
38
+ * `upgrade` command does that, being the update surface itself. */
39
+ setUpdateNotice(update) {
40
+ this.update = update;
41
+ }
42
+ get updateNotice() {
43
+ return this.update;
44
+ }
34
45
  result(data, renderHuman) {
35
46
  const value = this.options.json
36
- ? JSON.stringify(successEnvelope(data))
47
+ ? JSON.stringify(successEnvelope(data, this.update))
37
48
  : renderHuman(data);
38
49
  this.stdout.write(`${value}\n`);
39
50
  }
40
51
  error(error) {
41
52
  const value = this.options.json
42
- ? JSON.stringify(errorEnvelope(error))
53
+ ? JSON.stringify(errorEnvelope(error, this.update))
43
54
  : `${pc.red("Error:")} ${error.message}${error.detail === undefined
44
55
  ? ""
45
56
  : `\n${pc.dim(renderDetail(error.detail, this.options.verbose))}`}${error.suggestion === undefined ? "" : `\n${pc.dim(error.suggestion)}`}`;
46
57
  const target = this.options.json ? this.stdout : this.stderr;
47
58
  target.write(`${value}\n`);
48
59
  }
60
+ /** A non-fatal caution — the command went through, but something the user
61
+ * should know about did not hold. Stderr in every mode (stdout stays the
62
+ * result envelope), silenced only by `--quiet`. */
63
+ warn(message) {
64
+ if (!this.options.quiet) {
65
+ this.stderr.write(`${pc.yellow("Warning:")} ${message}\n`);
66
+ }
67
+ }
68
+ /**
69
+ * A one-line advisory on stderr — the update banner. Unlike `progress()`
70
+ * it does not need a TTY: a coding agent driving plain commands reads
71
+ * stderr and must see it. JSON runs stay silent here because the
72
+ * envelope's `update` field already carries the same fact; `--quiet`
73
+ * mutes it like every other advisory.
74
+ */
75
+ notice(message) {
76
+ if (this.options.quiet || this.options.json)
77
+ return;
78
+ this.stderr.write(`${pc.yellow(message)}\n`);
79
+ }
49
80
  progress(message) {
50
81
  const isTTY = "isTTY" in this.stderr && this.stderr.isTTY === true;
51
82
  if (!this.options.quiet && !this.options.json && isTTY) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAiC5B,MAAM,UAAU,eAAe,CAC7B,IAAa,EACb,MAAqB;IAErB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAe,EACf,MAAqB;IAErB,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3E,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;SAChE;QACD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;6EAC6E;AAC7E,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,SAAS,YAAY,CAAC,MAAe,EAAE,OAAgB;IACrD,MAAM,IAAI,GACR,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/D,IAAI,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,4CAA4C,CAAC;AAC5F,CAAC;AAED,MAAM,OAAO,MAAM;IAIN;IACQ;IACA;IALX,MAAM,CAA2B;IAEzC,YACW,OAAsB,EACd,SAAgC,OAAO,CAAC,MAAM,EAC9C,SAAgC,OAAO,CAAC,MAAM;QAFtD,YAAO,GAAP,OAAO,CAAe;QACd,WAAM,GAAN,MAAM,CAAwC;QAC9C,WAAM,GAAN,MAAM,CAAwC;IAC9D,CAAC;IAEJ;;wEAEoE;IACpE,eAAe,CAAC,MAAgC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAAa,EAAE,WAAuC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAe;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,GAClC,KAAK,CAAC,MAAM,KAAK,SAAS;gBACxB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EACnE,GACE,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EACrE,EAAE,CAAC;QACP,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7D,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;wDAEoD;IACpD,IAAI,CAAC,OAAe;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAe;QACpB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,MAAM,KAAK,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,81 @@
1
+ import type { AgentSettingsClient } from "../api/agent-settings.js";
2
+ import type { Context } from "../config/types.js";
3
+ import { type RuntimeUnavailableReason } from "../errors/index.js";
4
+ import { familyOf, type RuntimeVersionOption } from "./index.js";
5
+ export { familyOf };
6
+ /** One try of the health probe. */
7
+ export declare const PROBE_TIMEOUT_MS = 5000;
8
+ export declare const PROBE_ATTEMPTS = 3;
9
+ /** Waits between tries — 1 s after the first failure, 2 s after the second. */
10
+ export declare const PROBE_BACKOFF_MS: readonly number[];
11
+ export declare const AVAILABILITY_CACHE_TTL_MS: number;
12
+ export declare const AVAILABILITY_CACHE_FILE = "runtime-availability.json";
13
+ export interface RuntimeAvailability {
14
+ available: boolean;
15
+ reason?: RuntimeUnavailableReason;
16
+ /** The engine the deployment reported, when it answered. */
17
+ engine?: string;
18
+ }
19
+ /** What `/health` says — only `engine` matters here. */
20
+ export interface RuntimeHealth {
21
+ status?: string;
22
+ build?: string;
23
+ engine?: string;
24
+ }
25
+ /**
26
+ * The verdict for one health answer. Pure: status code + parsed body in,
27
+ * verdict out. Retryable failures (5xx, no answer) come back `unreachable` —
28
+ * the probe loop decides whether to try again.
29
+ */
30
+ export declare function verdictFromHealth(option: RuntimeVersionOption, status: number, body: unknown): RuntimeAvailability;
31
+ /**
32
+ * Probe the deployment behind one catalog entry. Published entries go
33
+ * through the gateway with the routed build as the header; custom entries
34
+ * are probed at their own link. Unauthenticated: `/health` is public.
35
+ */
36
+ export declare function probeRuntimeAvailability(context: Pick<Context, "baseUrls">, option: RuntimeVersionOption, fetchImpl?: typeof globalThis.fetch): Promise<RuntimeAvailability>;
37
+ export declare function availabilityCachePath(homeDir: string): string;
38
+ export interface RuntimePinCheck {
39
+ /** The pin as the context carries it (flag, env, or `.apollorc`). */
40
+ version: string;
41
+ available: boolean;
42
+ reason?: RuntimeUnavailableReason;
43
+ /** The engine the deployment reported, when it answered. */
44
+ engine?: string;
45
+ /** Catalog display name of the pinned family, when the catalog knows it. */
46
+ label?: string;
47
+ /** The catalog's newest published build — the re-pin target. */
48
+ latest?: string;
49
+ /** The catalog could not be read; see `withoutCatalog`. */
50
+ catalogError?: string;
51
+ /** The verdict came from the on-disk cache, not a fresh probe. */
52
+ cached?: boolean;
53
+ }
54
+ export interface AvailabilityOptions {
55
+ fetch?: typeof globalThis.fetch;
56
+ /** `false` bypasses the on-disk verdict cache (neither read nor written). */
57
+ cache?: boolean;
58
+ homeDir?: string;
59
+ /**
60
+ * With the catalog unreachable: `skip` (default) trusts the pin — a
61
+ * catalog outage must never fail a command; `probe` still probes the pin
62
+ * as-is so a report can say what is served.
63
+ */
64
+ withoutCatalog?: "skip" | "probe";
65
+ }
66
+ /**
67
+ * The full rule for the context's pin, as a report. `undefined` when the
68
+ * checkout is unpinned (the gateway default is always served).
69
+ */
70
+ export declare function checkRuntimeAvailability(context: Context, clients: {
71
+ agentSettings: Pick<AgentSettingsClient, "listRuntimeVersions">;
72
+ }, options?: AvailabilityOptions): Promise<RuntimePinCheck | undefined>;
73
+ /**
74
+ * The gate every engine-needing verb runs first. Throws
75
+ * `RuntimeUnavailableError` (code `RUNTIME_UNAVAILABLE`) when the pin is no
76
+ * longer served; returns quietly when unpinned, when the pin is served, or
77
+ * when the catalog cannot be read.
78
+ */
79
+ export declare function assertRuntimeAvailable(context: Context, clients: {
80
+ agentSettings: Pick<AgentSettingsClient, "listRuntimeVersions">;
81
+ }, options?: AvailabilityOptions): Promise<void>;
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Is the runtime a checkout is pinned to still SERVED?
3
+ *
4
+ * A pin names a family whose deployment can be retired: the catalog record
5
+ * disappears, the gateway route is deleted, or the route falls through to
6
+ * the default deployment — which answers 200 with an engine that is NOT the
7
+ * one asked for. None of that surfaces on its own; chat, builds and runs
8
+ * simply fail or, worse, run on the wrong engine. So every engine-needing
9
+ * verb asks here first, and `status --check` / `doctor` report the answer.
10
+ *
11
+ * The rule (shared with the playground and admin apps — keep them aligned):
12
+ * 1. No pin → nothing to check; the gateway default is always served.
13
+ * 2. A pin the catalog cannot match → unavailable (`not-in-catalog`).
14
+ * 3. Otherwise probe `GET {runtime}/health` with the pin's routed build as
15
+ * the `runtime-version` header (a custom build: its own link, no header).
16
+ * 2xx whose `engine` shares the pin's major.minor → available; a
17
+ * different (or missing) engine → `routed-elsewhere`. 4xx means the
18
+ * deployment exists but refused → available (never block on auth).
19
+ * Connection failures, timeouts and 5xx retry 3× with 1 s / 2 s backoff;
20
+ * exhausted → `unreachable`.
21
+ * 4. `available` verdicts are cached on disk for five minutes; an
22
+ * unavailable verdict is never cached, so recovery is immediate.
23
+ *
24
+ * A catalog outage never fails a command (the existing rule for everything
25
+ * runtime-version): the gate lets the command through.
26
+ */
27
+ import { mkdir, readFile, rename, writeFile } from "node:fs/promises";
28
+ import { homedir } from "node:os";
29
+ import { dirname, join } from "node:path";
30
+ import { Transport } from "../api/transport.js";
31
+ import { apolloDir } from "../config/store.js";
32
+ import { ApiError, RuntimeUnavailableError, } from "../errors/index.js";
33
+ import { familyOf, matchRuntimeVersion, resolveRuntimeVersion, RUNTIME_VERSION_HEADER, } from "./index.js";
34
+ export { familyOf };
35
+ /** One try of the health probe. */
36
+ export const PROBE_TIMEOUT_MS = 5_000;
37
+ export const PROBE_ATTEMPTS = 3;
38
+ /** Waits between tries — 1 s after the first failure, 2 s after the second. */
39
+ export const PROBE_BACKOFF_MS = [1_000, 2_000];
40
+ export const AVAILABILITY_CACHE_TTL_MS = 5 * 60_000;
41
+ export const AVAILABILITY_CACHE_FILE = "runtime-availability.json";
42
+ /**
43
+ * The verdict for one health answer. Pure: status code + parsed body in,
44
+ * verdict out. Retryable failures (5xx, no answer) come back `unreachable` —
45
+ * the probe loop decides whether to try again.
46
+ */
47
+ export function verdictFromHealth(option, status, body) {
48
+ const engine = engineOf(body);
49
+ if (status >= 200 && status < 300) {
50
+ const wanted = familyOf(option.runtime_version);
51
+ // A custom build carries whatever version string its branch has — a
52
+ // 2xx from its own deployment is the whole answer. Same for a published
53
+ // record whose id is not semver: there is no family to compare.
54
+ if (option.type === "custom" || wanted === undefined) {
55
+ return { available: true, ...(engine ? { engine } : {}) };
56
+ }
57
+ if (engine !== undefined && familyOf(engine) === wanted) {
58
+ return { available: true, engine };
59
+ }
60
+ // The gateway answered from another deployment (or a deployment that
61
+ // does not report its engine — a real one always does).
62
+ return {
63
+ available: false,
64
+ reason: "routed-elsewhere",
65
+ ...(engine ? { engine } : {}),
66
+ };
67
+ }
68
+ if (status >= 400 && status < 500) {
69
+ // The deployment exists but refused or does not serve /health — not a
70
+ // reason to block. A custom link that 404s has nothing behind it.
71
+ if (option.type === "custom" && status === 404) {
72
+ return { available: false, reason: "unreachable" };
73
+ }
74
+ return { available: true };
75
+ }
76
+ return { available: false, reason: "unreachable" };
77
+ }
78
+ function engineOf(body) {
79
+ if (typeof body !== "object" || body === null)
80
+ return undefined;
81
+ const engine = body.engine;
82
+ return typeof engine === "string" && engine.trim() !== ""
83
+ ? engine.trim()
84
+ : undefined;
85
+ }
86
+ /** 5xx and "no answer at all" are worth another try; anything else is final. */
87
+ function retryable(status) {
88
+ return status === 0 || status >= 500;
89
+ }
90
+ const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
91
+ /**
92
+ * Probe the deployment behind one catalog entry. Published entries go
93
+ * through the gateway with the routed build as the header; custom entries
94
+ * are probed at their own link. Unauthenticated: `/health` is public.
95
+ */
96
+ export async function probeRuntimeAvailability(context, option, fetchImpl) {
97
+ const custom = option.type === "custom" && option.custom_link;
98
+ const transport = new Transport({
99
+ service: "runtime-api",
100
+ baseUrl: custom ? option.custom_link : context.baseUrls.runtime,
101
+ timeoutMs: PROBE_TIMEOUT_MS,
102
+ ...(custom
103
+ ? {}
104
+ : { headers: { [RUNTIME_VERSION_HEADER]: option.latest_version } }),
105
+ ...(fetchImpl ? { fetch: fetchImpl } : {}),
106
+ });
107
+ let verdict = { available: false, reason: "unreachable" };
108
+ for (let attempt = 0; attempt < PROBE_ATTEMPTS; attempt += 1) {
109
+ if (attempt > 0) {
110
+ await wait(PROBE_BACKOFF_MS[attempt - 1] ?? PROBE_BACKOFF_MS.at(-1) ?? 0);
111
+ }
112
+ try {
113
+ const body = await transport.request("/health", {
114
+ authenticated: false,
115
+ });
116
+ return verdictFromHealth(option, 200, body);
117
+ }
118
+ catch (error) {
119
+ if (error instanceof ApiError) {
120
+ if (!retryable(error.status)) {
121
+ return verdictFromHealth(option, error.status, error.detail);
122
+ }
123
+ verdict = verdictFromHealth(option, error.status, error.detail);
124
+ continue;
125
+ }
126
+ // Timeout or connection failure — no status to judge; try again.
127
+ verdict = { available: false, reason: "unreachable" };
128
+ }
129
+ }
130
+ return verdict;
131
+ }
132
+ export function availabilityCachePath(homeDir) {
133
+ return join(apolloDir(homeDir), AVAILABILITY_CACHE_FILE);
134
+ }
135
+ async function readCache(path) {
136
+ try {
137
+ const parsed = JSON.parse(await readFile(path, "utf8"));
138
+ return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
139
+ ? parsed
140
+ : {};
141
+ }
142
+ catch {
143
+ // Missing or corrupt — a cache miss either way.
144
+ return {};
145
+ }
146
+ }
147
+ async function writeCache(path, file) {
148
+ try {
149
+ await mkdir(dirname(path), { recursive: true, mode: 0o700 });
150
+ const temporary = `${path}.${process.pid}.tmp`;
151
+ await writeFile(temporary, `${JSON.stringify(file, null, 2)}\n`, {
152
+ mode: 0o644,
153
+ });
154
+ await rename(temporary, path);
155
+ }
156
+ catch {
157
+ // The cache is an optimisation; a read-only home must not fail a command.
158
+ }
159
+ }
160
+ function cacheKey(option) {
161
+ return option.type === "custom" && option.custom_link
162
+ ? option.custom_link
163
+ : option.latest_version;
164
+ }
165
+ function fresh(entry, now) {
166
+ if (entry?.verdict !== "available")
167
+ return false;
168
+ const at = Date.parse(entry.at);
169
+ return !Number.isNaN(at) && now - at < AVAILABILITY_CACHE_TTL_MS;
170
+ }
171
+ /**
172
+ * The full rule for the context's pin, as a report. `undefined` when the
173
+ * checkout is unpinned (the gateway default is always served).
174
+ */
175
+ export async function checkRuntimeAvailability(context, clients, options = {}) {
176
+ const pin = context.runtimeVersion;
177
+ if (!pin)
178
+ return undefined;
179
+ const resolved = await resolveRuntimeVersion(clients.agentSettings);
180
+ let option;
181
+ if (resolved.error !== undefined) {
182
+ if (options.withoutCatalog !== "probe") {
183
+ return { version: pin, available: true, catalogError: resolved.error };
184
+ }
185
+ // No catalog to translate the pin; probe it as the header value it is.
186
+ option = {
187
+ runtime_version: pin,
188
+ latest_version: pin,
189
+ display_name: pin,
190
+ type: familyOf(pin) ? "published" : "custom",
191
+ };
192
+ }
193
+ else {
194
+ option = matchRuntimeVersion(resolved.options, pin);
195
+ if (!option) {
196
+ return {
197
+ version: pin,
198
+ available: false,
199
+ reason: "not-in-catalog",
200
+ ...(resolved.version ? { latest: resolved.version } : {}),
201
+ };
202
+ }
203
+ }
204
+ const summary = {
205
+ version: pin,
206
+ available: false,
207
+ ...(resolved.error === undefined ? { label: option.display_name } : {}),
208
+ ...(resolved.version ? { latest: resolved.version } : {}),
209
+ ...(resolved.error === undefined ? {} : { catalogError: resolved.error }),
210
+ };
211
+ const useCache = options.cache !== false;
212
+ const cachePath = availabilityCachePath(options.homeDir ?? homedir());
213
+ const key = cacheKey(option);
214
+ if (useCache) {
215
+ const entry = (await readCache(cachePath))[key];
216
+ if (fresh(entry, Date.now())) {
217
+ return {
218
+ ...summary,
219
+ available: true,
220
+ cached: true,
221
+ ...(entry?.engine ? { engine: entry.engine } : {}),
222
+ };
223
+ }
224
+ }
225
+ const verdict = await probeRuntimeAvailability(context, option, options.fetch);
226
+ if (verdict.available && useCache) {
227
+ const file = await readCache(cachePath);
228
+ file[key] = {
229
+ verdict: "available",
230
+ at: new Date().toISOString(),
231
+ ...(verdict.engine ? { engine: verdict.engine } : {}),
232
+ };
233
+ await writeCache(cachePath, file);
234
+ }
235
+ return { ...summary, ...verdict };
236
+ }
237
+ /**
238
+ * The gate every engine-needing verb runs first. Throws
239
+ * `RuntimeUnavailableError` (code `RUNTIME_UNAVAILABLE`) when the pin is no
240
+ * longer served; returns quietly when unpinned, when the pin is served, or
241
+ * when the catalog cannot be read.
242
+ */
243
+ export async function assertRuntimeAvailable(context, clients, options = {}) {
244
+ const check = await checkRuntimeAvailability(context, clients, {
245
+ ...options,
246
+ withoutCatalog: "skip",
247
+ });
248
+ if (check === undefined || check.available)
249
+ return;
250
+ throw new RuntimeUnavailableError({
251
+ pinned: check.version,
252
+ reason: check.reason ?? "unreachable",
253
+ ...(check.label !== undefined ? { label: check.label } : {}),
254
+ ...(check.latest !== undefined ? { latest: check.latest } : {}),
255
+ ...(check.engine !== undefined
256
+ ? { detail: `The gateway is serving engine ${check.engine} for this pin.` }
257
+ : {}),
258
+ });
259
+ }
260
+ //# sourceMappingURL=availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"availability.js","sourceRoot":"","sources":["../../../src/runtime-version/availability.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,14 @@ export interface RuntimeVersionOption {
25
25
  latest_version: string;
26
26
  display_name: string;
27
27
  type: "published" | "custom";
28
+ /** A custom build's own deployment — probed directly, never via the gateway. */
29
+ custom_link?: string;
28
30
  }
31
+ /**
32
+ * A semantic version's family — major.minor with the patch dropped
33
+ * ("0.2.5" → "0.2"). Undefined for non-semver values (custom runtime names).
34
+ */
35
+ export declare function familyOf(value: string): string | undefined;
29
36
  /**
30
37
  * True when the record names the LEGACY (schema-1) engine — the 1.x family,
31
38
  * labelled "v1.0". It only ever serves schema-1 agent versions, so a
@@ -4,7 +4,7 @@ export const RUNTIME_VERSION_HEADER = "runtime-version";
4
4
  * A semantic version's family — major.minor with the patch dropped
5
5
  * ("0.2.5" → "0.2"). Undefined for non-semver values (custom runtime names).
6
6
  */
7
- function familyOf(value) {
7
+ export function familyOf(value) {
8
8
  const match = /^(\d+)\.(\d+)(?:\.\S*)?$/.exec(value.trim());
9
9
  return match ? `${match[1]}.${match[2]}` : undefined;
10
10
  }
@@ -28,6 +28,7 @@ export function runtimeVersionOptions(records) {
28
28
  latest_version: record.latest_version,
29
29
  display_name: record.display_name,
30
30
  type: record.type,
31
+ ...(record.custom_link ? { custom_link: record.custom_link } : {}),
31
32
  }));
32
33
  }
33
34
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-version/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime-version/index.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,11 @@ import type { Context } from "../config/index.js";
3
3
  /**
4
4
  * The shipping lane's console half (docs/headless-authoring-design.md §4.5):
5
5
  * one instruction against the checkout's PUSHED agent — no files travel, the
6
- * service pulls the bundle itself — then poll the whole story (turn, certify,
7
- * optional evaluation, push, optional publish) to its terminal verdict.
6
+ * service pulls the bundle itself — then poll the whole story (turn, push,
7
+ * optional publish) to its terminal verdict.
8
8
  */
9
- /** A build turn edits, validates and repairs; certify replays the suite; an
10
- * evaluation runs real conversations. Hours-scale, so the poll loop's own
11
- * deadline is generous — each poll request stays cheap. */
9
+ /** A build turn edits, validates, repairs and pushes. Hours-scale, so the
10
+ * poll loop's own deadline is generous — each poll request stays cheap. */
12
11
  export declare const BUILD_DEADLINE_MS: number;
13
12
  export interface BuildOptions {
14
13
  /** The base to build from — a pushed version's tag (defaults to the pin). */
@@ -17,8 +16,6 @@ export interface BuildOptions {
17
16
  message?: string;
18
17
  model?: string;
19
18
  maxUsd?: number;
20
- /** Run the evaluation suite on the settled tree before approving. */
21
- evaluate?: boolean;
22
19
  /** Flip the agent's active pointer to the pushed revision. */
23
20
  publish?: boolean;
24
21
  pollIntervalMs?: number;
@@ -30,7 +27,7 @@ export interface BuildOptions {
30
27
  * Run one build to its verdict. The POST rides a fresh idempotency key, so a
31
28
  * retried request replays the SAME build; the returned view is terminal —
32
29
  * `completed` (pushed), `refused` (a gate said no: the turn answered instead
33
- * of completing, or certify came back red) or `failed` (infra story). The
30
+ * of completing) or `failed` (infra story). The
34
31
  * caller decides what each verdict is worth; this function only refuses to
35
32
  * return a non-terminal view.
36
33
  */