@aeolus-fleet/trierarch 0.28.0 → 0.31.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 (114) hide show
  1. package/README.md +5 -3
  2. package/dist/adapters/appended-lines.d.ts +14 -0
  3. package/dist/adapters/appended-lines.js +30 -0
  4. package/dist/adapters/appended-lines.js.map +1 -0
  5. package/dist/adapters/claude-code-usage.d.ts +23 -0
  6. package/dist/adapters/claude-code-usage.js +123 -0
  7. package/dist/adapters/claude-code-usage.js.map +1 -0
  8. package/dist/adapters/claude-code.d.ts +2 -0
  9. package/dist/adapters/claude-code.js +6 -2
  10. package/dist/adapters/claude-code.js.map +1 -1
  11. package/dist/adapters/clone-workspace.d.ts +2 -0
  12. package/dist/adapters/clone-workspace.js +10 -4
  13. package/dist/adapters/clone-workspace.js.map +1 -1
  14. package/dist/adapters/codex-usage.d.ts +14 -0
  15. package/dist/adapters/codex-usage.js +119 -0
  16. package/dist/adapters/codex-usage.js.map +1 -0
  17. package/dist/adapters/codex.js +3 -2
  18. package/dist/adapters/codex.js.map +1 -1
  19. package/dist/adapters/container.js +3 -1
  20. package/dist/adapters/container.js.map +1 -1
  21. package/dist/adapters/core-version.d.ts +1 -1
  22. package/dist/adapters/core-version.js +1 -1
  23. package/dist/adapters/files.d.ts +41 -6
  24. package/dist/adapters/files.js +37 -3
  25. package/dist/adapters/files.js.map +1 -1
  26. package/dist/adapters/folder-processes.d.ts +22 -0
  27. package/dist/adapters/folder-processes.js +90 -0
  28. package/dist/adapters/folder-processes.js.map +1 -0
  29. package/dist/adapters/git-checkouts.d.ts +6 -0
  30. package/dist/adapters/git-checkouts.js +100 -0
  31. package/dist/adapters/git-checkouts.js.map +1 -0
  32. package/dist/adapters/git-workspace.d.ts +2 -0
  33. package/dist/adapters/git-workspace.js +12 -4
  34. package/dist/adapters/git-workspace.js.map +1 -1
  35. package/dist/adapters/json-state.js +4 -0
  36. package/dist/adapters/json-state.js.map +1 -1
  37. package/dist/adapters/machine.d.ts +27 -0
  38. package/dist/adapters/machine.js +74 -0
  39. package/dist/adapters/machine.js.map +1 -0
  40. package/dist/adapters/paths.d.ts +6 -0
  41. package/dist/adapters/paths.js +3 -0
  42. package/dist/adapters/paths.js.map +1 -1
  43. package/dist/adapters/plugin-identity.js +13 -1
  44. package/dist/adapters/plugin-identity.js.map +1 -1
  45. package/dist/adapters/plugin-update.js +4 -0
  46. package/dist/adapters/plugin-update.js.map +1 -1
  47. package/dist/adapters/rest-fleet.js +9 -0
  48. package/dist/adapters/rest-fleet.js.map +1 -1
  49. package/dist/adapters/runtime-adapters.d.ts +3 -0
  50. package/dist/adapters/runtime-adapters.js +3 -3
  51. package/dist/adapters/runtime-adapters.js.map +1 -1
  52. package/dist/adapters/ship-sockets.d.ts +6 -1
  53. package/dist/adapters/ship-sockets.js +21 -2
  54. package/dist/adapters/ship-sockets.js.map +1 -1
  55. package/dist/adapters/trusted-clones.d.ts +14 -0
  56. package/dist/adapters/trusted-clones.js +45 -0
  57. package/dist/adapters/trusted-clones.js.map +1 -0
  58. package/dist/adapters/trusted-repositories-file.d.ts +36 -0
  59. package/dist/adapters/trusted-repositories-file.js +52 -0
  60. package/dist/adapters/trusted-repositories-file.js.map +1 -0
  61. package/dist/adapters/usage.d.ts +14 -0
  62. package/dist/adapters/usage.js +14 -0
  63. package/dist/adapters/usage.js.map +1 -0
  64. package/dist/cli/init.d.ts +2 -0
  65. package/dist/cli/init.js +26 -2
  66. package/dist/cli/init.js.map +1 -1
  67. package/dist/cli/main.js +4 -3
  68. package/dist/cli/main.js.map +1 -1
  69. package/dist/cli/run.d.ts +1 -1
  70. package/dist/cli/run.js +65 -6
  71. package/dist/cli/run.js.map +1 -1
  72. package/dist/cli/status.d.ts +3 -1
  73. package/dist/cli/status.js +2 -0
  74. package/dist/cli/status.js.map +1 -1
  75. package/dist/core/argo-reports.d.ts +6 -0
  76. package/dist/core/argo-reports.js +20 -0
  77. package/dist/core/argo-reports.js.map +1 -1
  78. package/dist/core/ask-for-trusted-repositories.d.ts +17 -0
  79. package/dist/core/ask-for-trusted-repositories.js +24 -0
  80. package/dist/core/ask-for-trusted-repositories.js.map +1 -0
  81. package/dist/core/check-settings.d.ts +2 -0
  82. package/dist/core/check-settings.js +5 -1
  83. package/dist/core/check-settings.js.map +1 -1
  84. package/dist/core/entry.d.ts +12 -0
  85. package/dist/core/entry.js.map +1 -1
  86. package/dist/core/handle-delivery.d.ts +8 -2
  87. package/dist/core/handle-delivery.js +23 -0
  88. package/dist/core/handle-delivery.js.map +1 -1
  89. package/dist/core/machine-load.d.ts +25 -0
  90. package/dist/core/machine-load.js +36 -0
  91. package/dist/core/machine-load.js.map +1 -0
  92. package/dist/core/ports.d.ts +82 -0
  93. package/dist/core/read-load.d.ts +21 -0
  94. package/dist/core/read-load.js +45 -0
  95. package/dist/core/read-load.js.map +1 -0
  96. package/dist/core/read-usage.d.ts +28 -0
  97. package/dist/core/read-usage.js +77 -0
  98. package/dist/core/read-usage.js.map +1 -0
  99. package/dist/core/reconciler.d.ts +9 -1
  100. package/dist/core/reconciler.js +18 -4
  101. package/dist/core/reconciler.js.map +1 -1
  102. package/dist/core/report-self.d.ts +8 -2
  103. package/dist/core/report-self.js +21 -7
  104. package/dist/core/report-self.js.map +1 -1
  105. package/dist/core/run-pass.d.ts +5 -1
  106. package/dist/core/run-pass.js +72 -9
  107. package/dist/core/run-pass.js.map +1 -1
  108. package/dist/core/token-cost.d.ts +15 -0
  109. package/dist/core/token-cost.js +38 -0
  110. package/dist/core/token-cost.js.map +1 -0
  111. package/dist/core/trusted-repositories.d.ts +28 -0
  112. package/dist/core/trusted-repositories.js +97 -0
  113. package/dist/core/trusted-repositories.js.map +1 -0
  114. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { LowResource, MachineLoad } from './machine-load.js';
1
2
  /**
2
3
  * What the trierarch tells argo or a ship's owner, in the shape the ship
3
4
  * protocol gives a message to argo: a headline naming the ship, then short facts in markdown.
@@ -44,4 +45,9 @@ export declare function detectionProblemText(at: {
44
45
  version: string;
45
46
  problem: string;
46
47
  }): string;
48
+ /**
49
+ * The machine is low on memory or disk (#400). The trierarch stops nothing
50
+ * for it: freeing memory or disk is the operator's.
51
+ */
52
+ export declare function lowResourceText(resource: LowResource, load: MachineLoad): string;
47
53
  export {};
@@ -52,6 +52,26 @@ export function settingsRefusedText(ship, at) {
52
52
  export function detectionProblemText(at) {
53
53
  return argoMessage({ headline: `${at.harness} ${at.version}: detection found a problem`, body: at.problem });
54
54
  }
55
+ const GIB = 1024 ** 3;
56
+ const GB = 1000 ** 3;
57
+ const PERCENT = 100;
58
+ /** Bytes as a reader counts them: memory in GiB, as the machine names it, a disk in GB, as its maker does. */
59
+ const gibOf = (bytes) => (bytes / GIB).toFixed(1);
60
+ const gbOf = (bytes) => (bytes / GB).toFixed(1);
61
+ /**
62
+ * The machine is low on memory or disk (#400). The trierarch stops nothing
63
+ * for it: freeing memory or disk is the operator's.
64
+ */
65
+ export function lowResourceText(resource, load) {
66
+ const { memory, disk } = load;
67
+ const headline = resource === 'memory'
68
+ ? `Low on memory: ${String(Math.round((memory.availableBytes / memory.totalBytes) * PERCENT))} % available`
69
+ : `Low on disk: ${String(Math.round((disk.freeBytes / disk.totalBytes) * PERCENT))} % free`;
70
+ return argoMessage({
71
+ headline,
72
+ body: paragraphs([`- Memory: ${gibOf(memory.availableBytes)} of ${gibOf(memory.totalBytes)} GiB available`, `- Disk: ${gbOf(disk.freeBytes)} of ${gbOf(disk.totalBytes)} GB free`].join('\n'), 'The trierarch stops no session for it.'),
73
+ });
74
+ }
55
75
  /** The kinds of discarded lines, in the order the counts name them. */
56
76
  const KINDS = ['deleted', 'changed', 'renamed', 'new', 'commit'];
57
77
  const COMMIT_PREFIX = 'commit ';
@@ -1 +1 @@
1
- {"version":3,"file":"argo-reports.js","sourceRoot":"","sources":["../../src/core/argo-reports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argo-reports.js","sourceRoot":"","sources":["../../src/core/argo-reports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ShipId } from '@aeolus-fleet/common';
2
+ import type { FleetPort, Logger } from './ports.js';
3
+ /** Asks the trierarch plugin's ship for the trusted repositories, until one ask is sent; then nothing. */
4
+ export type AskForTrustedRepositories = () => Promise<void>;
5
+ /**
6
+ * Use case: as it starts knowing the trierarch plugin's ship, the trierarch
7
+ * asks it for the trusted repositories (aeolus-fleet#384), so a machine set
8
+ * up before, which dropped the list until init kept that ship, gets it on
9
+ * the trierarch plugin's next pass. It asks once per process; an ask the
10
+ * fleet does not take is asked again on the next pass. A machine that does
11
+ * not know the ship asks nothing.
12
+ */
13
+ export declare function createAskForTrustedRepositories(deps: {
14
+ fleet: Pick<FleetPort, 'askForTrustedRepositories'>;
15
+ logger: Logger;
16
+ pluginShipId?: ShipId;
17
+ }): AskForTrustedRepositories;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Use case: as it starts knowing the trierarch plugin's ship, the trierarch
3
+ * asks it for the trusted repositories (aeolus-fleet#384), so a machine set
4
+ * up before, which dropped the list until init kept that ship, gets it on
5
+ * the trierarch plugin's next pass. It asks once per process; an ask the
6
+ * fleet does not take is asked again on the next pass. A machine that does
7
+ * not know the ship asks nothing.
8
+ */
9
+ export function createAskForTrustedRepositories(deps) {
10
+ let isAsked = false;
11
+ return async () => {
12
+ if (isAsked || deps.pluginShipId === undefined) {
13
+ return;
14
+ }
15
+ try {
16
+ await deps.fleet.askForTrustedRepositories(deps.pluginShipId);
17
+ isAsked = true;
18
+ }
19
+ catch (error) {
20
+ deps.logger.warn(`Could not ask the trierarch plugin's ship for the trusted repositories: ${error instanceof Error ? error.message : String(error)}; the next pass asks again`);
21
+ }
22
+ };
23
+ }
24
+ //# sourceMappingURL=ask-for-trusted-repositories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-for-trusted-repositories.js","sourceRoot":"","sources":["../../src/core/ask-for-trusted-repositories.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAoG;IAClJ,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9D,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2EAA2E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -43,6 +43,7 @@ export declare function unacceptedRefusal(at: {
43
43
  export declare function launchMarkerRefusal(at: {
44
44
  harness: string;
45
45
  marksLaunches: Readonly<Record<string, boolean>>;
46
+ missingPlugins: ReadonlySet<string>;
46
47
  }): Refusal | undefined;
47
48
  /**
48
49
  * Checks a crew request's settings again before crewing (decision 0027):
@@ -58,4 +59,5 @@ export declare function checkSettings(raw: unknown, context: {
58
59
  state: TrierarchState;
59
60
  trusted: TrustedPlaces;
60
61
  marksLaunches: Readonly<Record<string, boolean>>;
62
+ missingPlugins: ReadonlySet<string>;
61
63
  }): Result<CheckedSettings, Refusal>;
@@ -31,6 +31,10 @@ export function unacceptedRefusal(at) {
31
31
  * session. Upgrade updates the plugin, so the reason says to run it.
32
32
  */
33
33
  export function launchMarkerRefusal(at) {
34
+ if (at.missingPlugins.has(at.harness)) {
35
+ // Its plugin could not be found at all (#1212), so it is not known what it marks: only that it must be installed.
36
+ return { field: 'harness', reason: `${at.harness}'s aeolus plugin is not installed: run aeolus-trierarch upgrade` };
37
+ }
34
38
  return at.marksLaunches[at.harness] === false ? { field: 'harness', reason: `${at.harness}'s aeolus plugin marks no launches: run aeolus-trierarch upgrade` } : undefined;
35
39
  }
36
40
  /** The field an issue names, as `options.model`, when it names one. */
@@ -87,7 +91,7 @@ export function checkSettings(raw, context) {
87
91
  }
88
92
  options[name] = value;
89
93
  }
90
- const unaccepted = unacceptedRefusal({ harness: harnessName, configuration, options, trusted }) ?? launchMarkerRefusal({ harness: harnessName, marksLaunches: context.marksLaunches });
94
+ const unaccepted = unacceptedRefusal({ harness: harnessName, configuration, options, trusted }) ?? launchMarkerRefusal({ harness: harnessName, marksLaunches: context.marksLaunches, missingPlugins: context.missingPlugins });
91
95
  if (unaccepted !== undefined) {
92
96
  return err(unaccepted);
93
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-settings.js","sourceRoot":"","sources":["../../src/core/check-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA+D,MAAM,sBAAsB,CAAC;AAEvH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,oBAAoB,CAAC;AAgB1D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAqF;IAChH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAC/B,SAAS,CAAC,IAAI,KAAK,UAAU;QAC3B,CAAC,CAAE,CAAC,sBAAsB,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,CAAW;QAC/G,CAAC,CAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,EAAE,CAAW,CAAC;IAC/F,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,uBAAuB,IAAI,IAAI,IAAI,sDAAsD,EAAE,CAAC;AACpK,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAiI;IACjK,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9H,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,yBAAyB,IAAI,wCAAwC,EAAE,CAAC;AACxJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAyE;IAC3G,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,kEAAkE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5K,CAAC;AAED,uEAAuE;AACvE,SAAS,OAAO,CAAC,IAA4B;IAC3C,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAY,EACZ,OAAmK;IAEnK,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,2BAA2B,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7F,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,oCAAoC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzK,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3F,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,uCAAuC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,mCAAmC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QACtK,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,SAAS,CAAC,IAAI,UAAU,OAAO,CAAC,MAAM,qCAAqC,EAAE,CAAC,CAAC;QAC7I,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,iFAAiF;YACjF,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,mBAAmB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvL,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"check-settings.js","sourceRoot":"","sources":["../../src/core/check-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA+D,MAAM,sBAAsB,CAAC;AAEvH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,oBAAoB,CAAC;AAgB1D;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,EAAqF;IAChH,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,GAC/B,SAAS,CAAC,IAAI,KAAK,UAAU;QAC3B,CAAC,CAAE,CAAC,sBAAsB,EAAE,YAAY,EAAE,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,EAAE,CAAW;QAC/G,CAAC,CAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,EAAE,CAAW,CAAC;IAC/F,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,uBAAuB,IAAI,IAAI,IAAI,sDAAsD,EAAE,CAAC;AACpK,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAiI;IACjK,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,IAAI,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9H,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,yBAAyB,IAAI,wCAAwC,EAAE,CAAC;AACxJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAA8G;IAChJ,IAAI,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,kHAAkH;QAClH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,iEAAiE,EAAE,CAAC;IACtH,CAAC;IACD,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,kEAAkE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5K,CAAC;AAED,uEAAuE;AACvE,SAAS,OAAO,CAAC,IAA4B;IAC3C,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACxE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAY,EACZ,OAAwM;IAExM,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACpC,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,2BAA2B,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7F,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,oCAAoC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzK,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;IAC/B,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3F,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,uCAAuC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,mCAAmC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QACtK,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,SAAS,CAAC,IAAI,UAAU,OAAO,CAAC,MAAM,qCAAqC,EAAE,CAAC,CAAC;QAC7I,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,iFAAiF;YACjF,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,mBAAmB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,IAAI,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/N,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ShipId, TrierarchWorkspace } from '@aeolus-fleet/common';
2
+ import type { LowResource } from './machine-load.js';
2
3
  /**
3
4
  * The trierarch's saved state (docs/trierarch.md): an entry per ship it
4
5
  * crews, by ship id, the worktrees it kept, the orphans it found, and the
@@ -13,6 +14,17 @@ export interface TrierarchState {
13
14
  readonly orphans: readonly Orphan[];
14
15
  /** By ship id: the settings version argo was told this trierarch cannot crew, so it is told once. */
15
16
  readonly refused: Readonly<Record<string, number>>;
17
+ /** What the machine is low on, as argo was told (#400), so it is told once per drop, a restart too; none while it is low on nothing. */
18
+ readonly lowResources?: readonly LowResource[];
19
+ /** Why the last pass failed and since when (#1212); none while passes succeed. */
20
+ readonly passFailure?: PassFailure;
21
+ /** The harnesses whose aeolus plugin the last pass could not find (#1212): not offered in its report until it is back; none while every plugin is found. */
22
+ readonly missingPlugins?: readonly string[];
23
+ }
24
+ /** A failing pass: the reason of the latest failure, and when the passes began to fail. */
25
+ export interface PassFailure {
26
+ readonly reason: string;
27
+ readonly since: string;
16
28
  }
17
29
  /** Where an entry stands: the crew statuses the trierarch writes, and releasing while it ends. */
18
30
  export declare const ENTRY_STATES: readonly ["crewing", "running", "restarting", "crashed", "releasing"];
@@ -1 +1 @@
1
- {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/core/entry.ts"],"names":[],"mappings":"AAkBA,kGAAkG;AAClG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AAwDlG,MAAM,CAAC,MAAM,WAAW,GAAmB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAE/F,0CAA0C;AAC1C,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,MAAwC;IAC9E,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,QAAQ,CAAC,KAAqB,EAAE,KAAY;IAC1D,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,KAAqB,EAAE,MAAc;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;IAClG,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/core/entry.ts"],"names":[],"mappings":"AAgCA,kGAAkG;AAClG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AAwDlG,MAAM,CAAC,MAAM,WAAW,GAAmB,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAE/F,0CAA0C;AAC1C,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,MAAwC;IAC9E,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,QAAQ,CAAC,KAAqB,EAAE,KAAY;IAC1D,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,KAAqB,EAAE,MAAc;IAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC;IAClG,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,14 +1,20 @@
1
- import type { Delivery, FleetPort, Logger } from './ports.js';
1
+ import { type ShipId } from '@aeolus-fleet/common';
2
+ import type { Delivery, FleetPort, Logger, TrustedRepositoriesPort } from './ports.js';
2
3
  /**
3
4
  * Use case: a message arrives at the trierarch's own ship. Its ship stays a
4
5
  * normal ship (docs/trierarch.md): a ping gets pong. A trierarch takes work
5
6
  * only through the crew requests assigned to it, never from a message, so
6
7
  * any other delivery is acknowledged, logged as not handled, and acted on
7
8
  * never: no ship can start or stop a session on the machine by messaging it
8
- * (#301).
9
+ * (#301). The one message it takes is the trusted repositories
10
+ * (aeolus-fleet#384), and only from the trierarch plugin's ship init kept: a
11
+ * sender's type is any ship's to pick, so no other ship can make the machine
12
+ * clone a repository.
9
13
  */
10
14
  export type HandleDelivery = (delivery: Delivery) => Promise<void>;
11
15
  export declare function createHandleDelivery(deps: {
12
16
  fleet: FleetPort;
13
17
  logger: Logger;
18
+ trustedRepositories: TrustedRepositoriesPort;
19
+ pluginShipId?: ShipId;
14
20
  }): HandleDelivery;
@@ -1,10 +1,33 @@
1
1
  import { isPingContentType } from '@aeolus-fleet/common';
2
+ import { readTrustedRepositories, TRUSTED_REPOSITORIES_CONTENT_TYPE } from './trusted-repositories.js';
2
3
  export function createHandleDelivery(deps) {
4
+ const takeTrustedRepositories = async (delivery) => {
5
+ const from = `Not handled: trusted repositories from ${delivery.senderShipId}.`;
6
+ if (deps.pluginShipId === undefined) {
7
+ deps.logger.warn(`${from} This machine does not know the trierarch plugin's ship: run aeolus-trierarch init --plugin-ship-id <its ship id>.`);
8
+ return;
9
+ }
10
+ if (delivery.senderShipId !== deps.pluginShipId) {
11
+ deps.logger.warn(`${from} The trierarch takes them only from the trierarch plugin's ship ${deps.pluginShipId}.`);
12
+ return;
13
+ }
14
+ const read = readTrustedRepositories(delivery.payload);
15
+ if (!read.isOk) {
16
+ deps.logger.warn(`Not handled: trusted repositories that do not fit (${read.error.reason}). The trierarch keeps the list it holds.`);
17
+ return;
18
+ }
19
+ await deps.trustedRepositories.accept(read.value);
20
+ };
3
21
  return async (delivery) => {
4
22
  if (isPingContentType(delivery.contentType)) {
5
23
  await deps.fleet.pong(delivery.deliveryId);
6
24
  return;
7
25
  }
26
+ if (delivery.contentType === TRUSTED_REPOSITORIES_CONTENT_TYPE) {
27
+ await takeTrustedRepositories(delivery);
28
+ await deps.fleet.ack(delivery.deliveryId);
29
+ return;
30
+ }
8
31
  await deps.fleet.ack(delivery.deliveryId);
9
32
  deps.logger.warn(`Not handled: ${delivery.contentType} from ${delivery.senderShipId}. A trierarch takes work only through the crew requests assigned to it.`);
10
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"handle-delivery.js","sourceRoot":"","sources":["../../src/core/handle-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAczD,MAAM,UAAU,oBAAoB,CAAC,IAA0C;IAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,WAAW,SAAS,QAAQ,CAAC,YAAY,yEAAyE,CAAC,CAAC;IAChK,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"handle-delivery.js","sourceRoot":"","sources":["../../src/core/handle-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAe,MAAM,sBAAsB,CAAC;AAGtE,OAAO,EAAE,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAevG,MAAM,UAAU,oBAAoB,CAAC,IAA+G;IAClJ,MAAM,uBAAuB,GAAG,KAAK,EAAE,QAAkB,EAAiB,EAAE;QAC1E,MAAM,IAAI,GAAG,0CAA0C,QAAQ,CAAC,YAAY,GAAG,CAAC;QAChF,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,oHAAoH,CAAC,CAAC;YAC9I,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,mEAAmE,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACjH,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,IAAI,CAAC,KAAK,CAAC,MAAM,2CAA2C,CAAC,CAAC;YACrI,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,OAAO,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,iCAAiC,EAAE,CAAC;YAC/D,MAAM,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,WAAW,SAAS,QAAQ,CAAC,YAAY,yEAAyE,CAAC,CAAC;IAChK,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { TrierarchReportDetails } from '@aeolus-fleet/common';
2
+ /** The machine's load as a trierarch reports it (#400): memory, swap, CPU and the disk of its worktree root, machine totals only. */
3
+ export type MachineLoad = NonNullable<TrierarchReportDetails['load']>;
4
+ /** What a machine can run low on, as argo is told (#400). */
5
+ export declare const LOW_RESOURCES: readonly ["memory", "disk"];
6
+ export type LowResource = (typeof LOW_RESOURCES)[number];
7
+ /** Below this share of memory available, the machine is low on memory: sessions and their watchers start to be stopped (the mac mini of 2026-10-08). */
8
+ export declare const LOW_MEMORY_PERCENT = 10;
9
+ /** Below this share of its worktree root's disk free, the machine is low on disk. */
10
+ export declare const LOW_DISK_PERCENT = 5;
11
+ /**
12
+ * Policy: what the machine is low on (#400): memory below 10 % available,
13
+ * the disk below 5 % free. A machine that says it has none of one is not
14
+ * low on it.
15
+ */
16
+ export declare function lowResourcesOf(load: MachineLoad): readonly LowResource[];
17
+ /** The steps a load is in: the trierarch reports its load again only once one of them moves, so a load that always moves does not flood the fleet (#400). */
18
+ export interface LoadSteps {
19
+ readonly memory: number;
20
+ readonly swap: number;
21
+ readonly cpu: number;
22
+ readonly disk: number;
23
+ }
24
+ /** Policy: the steps of a load, in 5 points of use for memory, swap and disk, and half a load per core for CPU. */
25
+ export declare function loadStepsOf(load: MachineLoad): LoadSteps;
@@ -0,0 +1,36 @@
1
+ /** What a machine can run low on, as argo is told (#400). */
2
+ export const LOW_RESOURCES = ['memory', 'disk'];
3
+ /** Below this share of memory available, the machine is low on memory: sessions and their watchers start to be stopped (the mac mini of 2026-10-08). */
4
+ export const LOW_MEMORY_PERCENT = 10;
5
+ /** Below this share of its worktree root's disk free, the machine is low on disk. */
6
+ export const LOW_DISK_PERCENT = 5;
7
+ /** Memory, swap and disk are reported again each time their use moves this many points. */
8
+ const USE_STEP_PERCENT = 5;
9
+ /** CPU is reported again each time its load per core moves this much. */
10
+ const LOAD_PER_CORE_STEP = 0.5;
11
+ const PERCENT = 100;
12
+ /** The share of a whole, in percent; none of a whole of nothing. */
13
+ function percentOf(part, whole) {
14
+ return whole > 0 ? (part / whole) * PERCENT : undefined;
15
+ }
16
+ /**
17
+ * Policy: what the machine is low on (#400): memory below 10 % available,
18
+ * the disk below 5 % free. A machine that says it has none of one is not
19
+ * low on it.
20
+ */
21
+ export function lowResourcesOf(load) {
22
+ const memory = percentOf(load.memory.availableBytes, load.memory.totalBytes);
23
+ const disk = percentOf(load.disk.freeBytes, load.disk.totalBytes);
24
+ return [...(memory !== undefined && memory < LOW_MEMORY_PERCENT ? ['memory'] : []), ...(disk !== undefined && disk < LOW_DISK_PERCENT ? ['disk'] : [])];
25
+ }
26
+ const stepOf = (value, step) => Math.floor((value ?? 0) / step);
27
+ /** Policy: the steps of a load, in 5 points of use for memory, swap and disk, and half a load per core for CPU. */
28
+ export function loadStepsOf(load) {
29
+ return {
30
+ memory: stepOf(percentOf(load.memory.totalBytes - load.memory.availableBytes, load.memory.totalBytes), USE_STEP_PERCENT),
31
+ swap: stepOf(load.swap === undefined ? undefined : percentOf(load.swap.usedBytes, load.swap.totalBytes), USE_STEP_PERCENT),
32
+ cpu: stepOf(load.cpu.loadAverage / load.cpu.cores, LOAD_PER_CORE_STEP),
33
+ disk: stepOf(percentOf(load.disk.totalBytes - load.disk.freeBytes, load.disk.totalBytes), USE_STEP_PERCENT),
34
+ };
35
+ }
36
+ //# sourceMappingURL=machine-load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine-load.js","sourceRoot":"","sources":["../../src/core/machine-load.ts"],"names":[],"mappings":"AAKA,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;AAIzD,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC,2FAA2F;AAC3F,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,yEAAyE;AACzE,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAM,OAAO,GAAG,GAAG,CAAC;AAEpB,oEAAoE;AACpE,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAE,CAAC,MAAM,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChL,CAAC;AAUD,MAAM,MAAM,GAAG,CAAC,KAAyB,EAAE,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAEpG,mHAAmH;AACnH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;QACxH,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;QAC1H,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACtE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC5G,CAAC;AACJ,CAAC"}
@@ -1,7 +1,10 @@
1
1
  import type { ClearOutcome, CrewStatus, ShipId, TrierarchConfiguration, TrierarchReportDetails, TrierarchWorkspace } from '@aeolus-fleet/common';
2
2
  import type { TrierarchState } from './entry.js';
3
3
  import type { Machine } from './machine.js';
4
+ import type { MachineLoad } from './machine-load.js';
5
+ import type { TokenCounts } from './token-cost.js';
4
6
  import type { Action } from './reconciler.js';
7
+ import type { TrustedRepository } from './trusted-repositories.js';
5
8
  /**
6
9
  * The trierarch's ports (docs/architecture.md, "The trierarch"). Adapters
7
10
  * implement them in D2b: REST for the fleet, tmux for the sessions, git worktree
@@ -139,6 +142,8 @@ export interface FleetPort {
139
142
  confirmCleared(cleared: ClearRequestToMe & {
140
143
  outcome: ClearOutcome;
141
144
  }): Promise<void>;
145
+ /** Asks the trierarch plugin's ship for the trusted repositories again, as the trierarch's own ship (aeolus-fleet#384). */
146
+ askForTrustedRepositories(pluginShipId: ShipId): Promise<void>;
142
147
  /** Sends argo a report, as the trierarch's own ship. */
143
148
  reportToArgo(report: ArgoReport): Promise<void>;
144
149
  /** Sends a ship's owner a report, as the trierarch's own ship. A refusal is answered, not thrown. */
@@ -167,6 +172,8 @@ export interface Identity {
167
172
  readonly shipName: string;
168
173
  readonly socket: string;
169
174
  readonly squadron?: string;
175
+ /** The session's read-only checkouts (#1182), which its start context names; none when it has none. */
176
+ readonly checkouts?: readonly Checkout[];
170
177
  }
171
178
  /**
172
179
  * The socket of each ship the trierarch crews (decision 0026): its session's
@@ -208,6 +215,8 @@ export interface HarnessPort {
208
215
  shipName: string;
209
216
  folder: string;
210
217
  workspace: TrierarchWorkspace;
218
+ /** The session's read-only checkouts (#1182), which it may read beside its folder. */
219
+ checkouts: readonly Checkout[];
211
220
  harness: string;
212
221
  options: Readonly<Record<string, string>>;
213
222
  isFirstStart: boolean;
@@ -285,11 +294,13 @@ export interface SessionRuntime {
285
294
  list(): Promise<readonly ObservedSession[]>;
286
295
  stop(shipId: ShipId): Promise<void>;
287
296
  /** Starts the command in the folder, with the environment given, in a new session for the ship; an exited one is replaced. */
297
+ /** Starts the session in its folder; `readOnly` names its read-only checkouts (#1182), which a container mounts read-only and the host leaves as they are. */
288
298
  start(session: {
289
299
  shipId: ShipId;
290
300
  folder: string;
291
301
  command: readonly string[];
292
302
  env?: Readonly<Record<string, string>>;
303
+ readOnly?: readonly string[];
293
304
  }): Promise<void>;
294
305
  /** Types the text into the ship's session and presses Enter, after `settleMs` when given. */
295
306
  type(at: {
@@ -302,6 +313,11 @@ export interface SessionRuntime {
302
313
  /** What the ship's session shows: its last lines, wrapped ones joined; empty with no session. */
303
314
  screen(shipId: ShipId): Promise<string>;
304
315
  }
316
+ /** The processes running in a folder, whatever started them: a dev server a session left behind. */
317
+ export interface FolderProcessesPort {
318
+ /** Stops every process whose working folder is the folder or inside it, and answers how many it stopped. */
319
+ stopIn(folder: string): Promise<number>;
320
+ }
305
321
  /** A worktree under the trierarch's root (`<root>/<repository>/<name>`), with the ship it is named after when it is one. */
306
322
  export interface ObservedWorktree {
307
323
  readonly path: string;
@@ -357,6 +373,35 @@ export interface WorkspacePort {
357
373
  remove(folder: string): Promise<void>;
358
374
  worktrees(): Promise<readonly ObservedWorktree[]>;
359
375
  }
376
+ /** A read-only checkout a session gets beside its working folder (#1182): the configured repository it is of, and where it is. */
377
+ export interface Checkout {
378
+ readonly repository: string;
379
+ readonly path: string;
380
+ }
381
+ /** What refreshing a checkout came to: the revision it now holds, or why it could not, as one line. */
382
+ export type RefreshedCheckout = {
383
+ readonly repository: string;
384
+ readonly revision: string;
385
+ } | {
386
+ readonly repository: string;
387
+ readonly problem: string;
388
+ };
389
+ /**
390
+ * The read-only checkouts of each ship (#1182): the repositories the
391
+ * configuration names for its working repository, at the latest main, one
392
+ * folder per ship. The session can change, commit and push nothing in them.
393
+ */
394
+ export interface CheckoutsPort {
395
+ /** Makes the ship's checkouts its working repository names, keeping those it has; answers each, none for a repository that names none. */
396
+ prepare(at: {
397
+ shipId: ShipId;
398
+ repository: string;
399
+ }): Promise<readonly Checkout[]>;
400
+ /** Brings each of the ship's checkouts to the latest main of its repository; one that cannot be refreshed says why and holds what it held. */
401
+ refresh(shipId: ShipId): Promise<readonly RefreshedCheckout[]>;
402
+ /** Removes every checkout of the ship. */
403
+ remove(shipId: ShipId): Promise<void>;
404
+ }
360
405
  export interface StatePort {
361
406
  load(): Promise<TrierarchState>;
362
407
  save(state: TrierarchState): Promise<void>;
@@ -434,3 +479,40 @@ export interface TrierarchSetup {
434
479
  /** What detection found per harness (#365), for the version and confirmed time the report gives. */
435
480
  readonly detected?: Detected;
436
481
  }
482
+ /**
483
+ * The trusted repositories the trierarch received last from the trierarch
484
+ * plugin (aeolus-fleet#384), kept across restarts: each one it offers and
485
+ * clones on its first workspace.
486
+ */
487
+ export interface TrustedRepositoriesPort {
488
+ /** The list as last accepted; none before the first. */
489
+ current(): readonly TrustedRepository[];
490
+ /** Keeps the list, and trusts each one's clone for every configured harness, so a session may start in it (#381). */
491
+ accept(list: readonly TrustedRepository[]): Promise<void>;
492
+ }
493
+ /** The machine the trierarch runs on, as it reads its load (#400): memory, swap, CPU, and the disk its worktree root is on. */
494
+ export interface MachinePort {
495
+ load(): Promise<MachineLoad>;
496
+ }
497
+ /** The tokens of one model a ship's sessions used (#353). */
498
+ export interface ModelTokens {
499
+ readonly model: string;
500
+ readonly tokens: TokenCounts;
501
+ }
502
+ /** One window of a harness's subscription (#353): how long it is, how much of it is used, and when it starts again. */
503
+ export interface SubscriptionWindow {
504
+ readonly windowMinutes: number;
505
+ readonly usedPercent: number;
506
+ readonly resetsAt: Date;
507
+ }
508
+ /** What the harnesses say of their usage (#353), from their own files and CLIs. */
509
+ export interface UsagePort {
510
+ /** The tokens the ship's sessions used since its folder was made, per model, from its harness's transcripts. */
511
+ tokensOf(ship: {
512
+ shipId: ShipId;
513
+ harness: string;
514
+ folder: string;
515
+ }): Promise<readonly ModelTokens[]>;
516
+ /** How much of the harness's subscription is used now, per window; none when the harness cannot say. */
517
+ subscriptionOf(harness: string): Promise<readonly SubscriptionWindow[] | undefined>;
518
+ }
@@ -0,0 +1,21 @@
1
+ import { type MachineLoad } from './machine-load.js';
2
+ import type { FleetPort, Logger, MachinePort, StatePort } from './ports.js';
3
+ import type { Clock } from './shared/clock.js';
4
+ /** The machine's load, read at most once a minute: the last one read, or none before any could be. */
5
+ export type ReadLoad = () => Promise<MachineLoad | undefined>;
6
+ /** How often the machine's load is read: often enough to see memory run out, rarely enough that a report on it does not flood the fleet. */
7
+ export declare const LOAD_READ_INTERVAL_MS = 60000;
8
+ /**
9
+ * Use case: the trierarch reads its machine's load (#400), at most once a
10
+ * minute, keeping the last one when the machine cannot be read. Each time
11
+ * the machine starts to be low on memory or disk, argo is told once: again
12
+ * only after it recovered and dropped again. What argo was told is kept in
13
+ * the state, so a restart while it stays low tells nothing again.
14
+ */
15
+ export declare function createReadLoad(deps: {
16
+ machine: MachinePort;
17
+ fleet: Pick<FleetPort, 'reportToArgo'>;
18
+ state: StatePort;
19
+ clock: Clock;
20
+ logger: Pick<Logger, 'warn'>;
21
+ }): ReadLoad;
@@ -0,0 +1,45 @@
1
+ import { lowResourceText } from './argo-reports.js';
2
+ import { lowResourcesOf } from './machine-load.js';
3
+ const messageOf = (error) => (error instanceof Error ? error.message : String(error));
4
+ /** How often the machine's load is read: often enough to see memory run out, rarely enough that a report on it does not flood the fleet. */
5
+ export const LOAD_READ_INTERVAL_MS = 60_000;
6
+ /**
7
+ * Use case: the trierarch reads its machine's load (#400), at most once a
8
+ * minute, keeping the last one when the machine cannot be read. Each time
9
+ * the machine starts to be low on memory or disk, argo is told once: again
10
+ * only after it recovered and dropped again. What argo was told is kept in
11
+ * the state, so a restart while it stays low tells nothing again.
12
+ */
13
+ export function createReadLoad(deps) {
14
+ let last;
15
+ const tellArgo = async (load, now) => {
16
+ const state = await deps.state.load();
17
+ const told = state.lowResources ?? [];
18
+ const low = lowResourcesOf(load);
19
+ for (const resource of low.filter((each) => !told.includes(each))) {
20
+ await deps.fleet.reportToArgo({ text: lowResourceText(resource, load), idempotencyKey: `low-${resource}-${now.toISOString()}` });
21
+ }
22
+ if (low.length !== told.length || low.some((each) => !told.includes(each))) {
23
+ await deps.state.save({ ...state, lowResources: low.length > 0 ? low : undefined });
24
+ }
25
+ };
26
+ return async () => {
27
+ const now = deps.clock.now();
28
+ if (last !== undefined && now.getTime() - last.at < LOAD_READ_INTERVAL_MS) {
29
+ return last.load;
30
+ }
31
+ const read = await deps.machine.load().catch((error) => {
32
+ deps.logger.warn(`Could not read the machine load: ${messageOf(error)}`);
33
+ return undefined;
34
+ });
35
+ if (read === undefined) {
36
+ return last?.load;
37
+ }
38
+ last = { load: read, at: now.getTime() };
39
+ await tellArgo(read, now).catch((error) => {
40
+ deps.logger.warn(`Could not tell argo the machine is low: ${messageOf(error)}`);
41
+ });
42
+ return read;
43
+ };
44
+ }
45
+ //# sourceMappingURL=read-load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-load.js","sourceRoot":"","sources":["../../src/core/read-load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAIrE,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAKvG,4IAA4I;AAC5I,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAoI;IACjK,IAAI,IAAmD,CAAC;IAExD,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAiB,EAAE,GAAS,EAAiB,EAAE;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,cAAc,EAAE,OAAO,QAAQ,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACnI,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,qBAAqB,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACzE,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,EAAE,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { TrierarchReportDetails } from '@aeolus-fleet/common';
2
+ import type { Logger, StatePort, UsagePort } from './ports.js';
3
+ import type { Clock } from './shared/clock.js';
4
+ import { type PriceTable } from './token-cost.js';
5
+ /** The harnesses' usage as a trierarch reports it (#353): each harness's subscription windows, and each crewed ship's tokens per model with their estimated cost. */
6
+ export type HarnessUsage = NonNullable<TrierarchReportDetails['usage']>;
7
+ /** The harnesses' usage, each part read on its own interval: the last read between. */
8
+ export type ReadUsage = () => Promise<HarnessUsage>;
9
+ /** How often the ships' tokens are read from their transcripts: a report on them at most this often. */
10
+ export declare const TOKENS_READ_INTERVAL_MS: number;
11
+ /** How often a harness's subscription is read at most: Claude Code's costs a short turn of its own. */
12
+ export declare const SUBSCRIPTION_READ_INTERVAL_MS: number;
13
+ /**
14
+ * Use case: the trierarch reads its harnesses' usage (#353). Every 5 minutes
15
+ * it reads the tokens each ship it crews used per model, since its folder was
16
+ * made, and estimates their cost from the price table. A harness's
17
+ * subscription is read at start, then again only once 30 minutes passed and
18
+ * the harness's ships did work since: Claude Code's read is a turn of its own.
19
+ * A read that fails keeps what was read before.
20
+ */
21
+ export declare function createReadUsage(deps: {
22
+ usage: UsagePort;
23
+ state: StatePort;
24
+ clock: Clock;
25
+ logger: Pick<Logger, 'warn'>;
26
+ harnesses: readonly string[];
27
+ prices: PriceTable;
28
+ }): ReadUsage;