@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.
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js +236 -93
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/bundles.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js +4 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/operate.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime-version.js +22 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/runtime-version.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.js +19 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/status.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.d.ts +12 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.js +21 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/commands/upgrade.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/index.d.ts +11 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/index.js +95 -8
- package/node_modules/@aui.io/apollo-cli/dist/src/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-cli/dist/src/update-refresh.d.ts +1 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/update-refresh.js +21 -0
- package/node_modules/@aui.io/apollo-cli/dist/src/update-refresh.js.map +1 -0
- package/node_modules/@aui.io/apollo-cli/package.json +3 -3
- package/node_modules/@aui.io/apollo-core/dist/src/api/agent-settings.d.ts +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.d.ts +117 -41
- package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js +26 -25
- package/node_modules/@aui.io/apollo-core/dist/src/api/builder-api.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.d.ts +0 -18
- package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js +0 -8
- package/node_modules/@aui.io/apollo-core/dist/src/api/runtime-api.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/config/store.d.ts +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/config/store.js +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/config/store.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/config/types.d.ts +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/errors/index.d.ts +30 -0
- package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js +47 -0
- package/node_modules/@aui.io/apollo-core/dist/src/errors/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/index.d.ts +6 -4
- package/node_modules/@aui.io/apollo-core/dist/src/index.js +4 -2
- package/node_modules/@aui.io/apollo-core/dist/src/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/output/index.d.ts +31 -5
- package/node_modules/@aui.io/apollo-core/dist/src/output/index.js +36 -5
- package/node_modules/@aui.io/apollo-core/dist/src/output/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/availability.d.ts +81 -0
- package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/availability.js +260 -0
- package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/availability.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/index.d.ts +7 -0
- package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/index.js +2 -1
- package/node_modules/@aui.io/apollo-core/dist/src/runtime-version/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/builds.d.ts +5 -8
- package/node_modules/@aui.io/apollo-core/dist/src/services/builds.js +5 -7
- package/node_modules/@aui.io/apollo-core/dist/src/services/builds.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.d.ts +7 -11
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js +22 -18
- package/node_modules/@aui.io/apollo-core/dist/src/services/bundles.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/clients.d.ts +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/doctor.js +64 -2
- package/node_modules/@aui.io/apollo-core/dist/src/services/doctor.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/runs.d.ts +84 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/runs.js +186 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/runs.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.d.ts +8 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.js +15 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/status.service.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/dist/src/services/update-check.d.ts +105 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/update-check.js +265 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/update-check.js.map +1 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.d.ts +11 -0
- package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.js +6 -2
- package/node_modules/@aui.io/apollo-core/dist/src/services/upgrade.js.map +1 -1
- package/node_modules/@aui.io/apollo-core/package.json +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/index.d.ts +2 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/index.js +2 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/index.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.d.ts +10 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.js +58 -12
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/actions.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.d.ts +3 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.js +2 -2
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/commands.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/update.d.ts +16 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/update.js +21 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/lib/update.js.map +1 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js +37 -19
- package/node_modules/@aui.io/apollo-tui/dist/src/opentui-app.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/FooterHints.d.ts +24 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/FooterHints.js +41 -4
- package/node_modules/@aui.io/apollo-tui/dist/src/shell/FooterHints.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/glyphs.d.ts +2 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/glyphs.js +2 -0
- package/node_modules/@aui.io/apollo-tui/dist/src/theme/glyphs.js.map +1 -1
- package/node_modules/@aui.io/apollo-tui/package.json +2 -2
- package/package.json +4 -4
- package/node_modules/@aui.io/apollo-core/dist/src/services/evaluations.d.ts +0 -42
- package/node_modules/@aui.io/apollo-core/dist/src/services/evaluations.js +0 -106
- package/node_modules/@aui.io/apollo-core/dist/src/services/evaluations.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aui.io/apollo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.66",
|
|
4
4
|
"description": "Apollo operator console — CLI + interactive TUI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"postpack": "node ./scripts/clean-bundle.mjs"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@aui.io/apollo-core": "0.1.
|
|
35
|
-
"@aui.io/apollo-cli": "0.1.
|
|
36
|
-
"@aui.io/apollo-tui": "0.1.
|
|
34
|
+
"@aui.io/apollo-core": "0.1.66",
|
|
35
|
+
"@aui.io/apollo-cli": "0.1.66",
|
|
36
|
+
"@aui.io/apollo-tui": "0.1.66",
|
|
37
37
|
"picocolors": "^1.1.1",
|
|
38
38
|
"yaml": "^2.9.0",
|
|
39
39
|
"commander": "^14.0.3",
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { BuilderApiClient, EvaluationReceipt, EvaluationView } from "../api/builder-api.js";
|
|
2
|
-
import type { Context } from "../config/index.js";
|
|
3
|
-
/** A full run is `scenario × k` real conversations plus a judge call each —
|
|
4
|
-
* hours-scale like a build, so the poll loop's own deadline is generous;
|
|
5
|
-
* each poll request stays cheap. */
|
|
6
|
-
export declare const EVALUATE_DEADLINE_MS: number;
|
|
7
|
-
export interface EvaluationState {
|
|
8
|
-
evaluation_id: string;
|
|
9
|
-
}
|
|
10
|
-
/** The saved run handle, or nothing — a missing or corrupt file simply
|
|
11
|
-
* means there is no run to name. */
|
|
12
|
-
export declare function readEvaluationState(root: string): Promise<EvaluationState | undefined>;
|
|
13
|
-
export declare function writeEvaluationState(root: string, state: EvaluationState): Promise<void>;
|
|
14
|
-
export interface EvaluateStartOptions {
|
|
15
|
-
/** Checkout root (defaults to the bound checkout). */
|
|
16
|
-
root?: string;
|
|
17
|
-
/** A note on the run — shows up on the scoreboard. */
|
|
18
|
-
message?: string;
|
|
19
|
-
/** Scope the run to named scenario codes (a fixing-loop tool — a scoped
|
|
20
|
-
* run never promotes). */
|
|
21
|
-
scenarios?: string[];
|
|
22
|
-
/** The tag stamped on the minted trial threads (defaults to the
|
|
23
|
-
* checkout's pin, then the agent's active tag). */
|
|
24
|
-
versionTag?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Start one detached run over this checkout and save its id. The tree is
|
|
28
|
-
* frozen at accept — keep editing, the run's bytes do not move. The receipt
|
|
29
|
-
* sizes the run (`total_trials`, `scenarios`) before a single trial starts.
|
|
30
|
-
*/
|
|
31
|
-
export declare function startEvaluation(context: Context, builder: BuilderApiClient, options?: EvaluateStartOptions): Promise<EvaluationReceipt>;
|
|
32
|
-
export interface EvaluatePollOptions {
|
|
33
|
-
pollIntervalMs?: number;
|
|
34
|
-
deadlineMs?: number;
|
|
35
|
-
/** Injectable for tests — real callers get a plain setTimeout sleep. */
|
|
36
|
-
sleep?: (ms: number) => Promise<void>;
|
|
37
|
-
}
|
|
38
|
-
/** Poll one run to its terminal view (completed, failed or cancelled). */
|
|
39
|
-
export declare function awaitEvaluation(builder: BuilderApiClient, evaluationId: string, options?: EvaluatePollOptions): Promise<EvaluationView>;
|
|
40
|
-
/** The run the caller means: the explicit id, else the checkout's saved
|
|
41
|
-
* last run — no run at all is a config story, not a 404. */
|
|
42
|
-
export declare function resolveEvaluationId(context: Context, explicit: string | undefined, root?: string): Promise<string>;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { readBuildFiles } from "../bundle/build-area.js";
|
|
4
|
-
import { CliError, ConfigError } from "../errors/index.js";
|
|
5
|
-
import { agentRoot, readCheckoutTree, requireAgent } from "./bundles.js";
|
|
6
|
-
/**
|
|
7
|
-
* The live-exam lane's console half (docs/headless-authoring-design.md §4.3):
|
|
8
|
-
* ship the checkout's current tree — the program under `src/**`, the suite
|
|
9
|
-
* pair under `build/**` — and the server runs the whole fleet (simulated
|
|
10
|
-
* callers, a judge) against the shipped snapshot. No session exists; polling
|
|
11
|
-
* IS the progress surface. The last run's id is a LOCAL fact in the
|
|
12
|
-
* checkout's `.apollo/evaluation.json`, so `--status` and `--cancel` name
|
|
13
|
-
* nothing and still find their run.
|
|
14
|
-
*/
|
|
15
|
-
/** Run statuses that are still moving — everything else is the verdict. */
|
|
16
|
-
const RUN_LIVE = new Set(["queued", "running", "cancelling"]);
|
|
17
|
-
/** A full run is `scenario × k` real conversations plus a judge call each —
|
|
18
|
-
* hours-scale like a build, so the poll loop's own deadline is generous;
|
|
19
|
-
* each poll request stays cheap. */
|
|
20
|
-
export const EVALUATE_DEADLINE_MS = 2 * 3600_000;
|
|
21
|
-
const EVALUATE_POLL_MS = 5_000;
|
|
22
|
-
function evaluationStateFile(root) {
|
|
23
|
-
return path.join(root, ".apollo", "evaluation.json");
|
|
24
|
-
}
|
|
25
|
-
/** The saved run handle, or nothing — a missing or corrupt file simply
|
|
26
|
-
* means there is no run to name. */
|
|
27
|
-
export async function readEvaluationState(root) {
|
|
28
|
-
try {
|
|
29
|
-
const parsed = JSON.parse(await readFile(evaluationStateFile(root), "utf8"));
|
|
30
|
-
return typeof parsed.evaluation_id === "string"
|
|
31
|
-
? { evaluation_id: parsed.evaluation_id }
|
|
32
|
-
: undefined;
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export async function writeEvaluationState(root, state) {
|
|
39
|
-
const file = evaluationStateFile(root);
|
|
40
|
-
await mkdir(path.dirname(file), { recursive: true });
|
|
41
|
-
await writeFile(file, `${JSON.stringify(state, null, 2)}\n`, "utf8");
|
|
42
|
-
}
|
|
43
|
-
/** Every file under `<root>/bundle/build/**` as `build/**` wire paths — the
|
|
44
|
-
* suite pair (`evaluation.yaml`, `world.yaml`) and whatever else the build
|
|
45
|
-
* lane holds. Absent directory reads as an empty map: the server names the
|
|
46
|
-
* missing suite (422 `no_evaluation_suite`), which teaches more than a
|
|
47
|
-
* local guess. */
|
|
48
|
-
async function readBuildTree(buildDir) {
|
|
49
|
-
const { files } = await readBuildFiles(buildDir);
|
|
50
|
-
return Object.fromEntries(Object.entries(files).map(([relativePath, content]) => [
|
|
51
|
-
`build/${relativePath}`,
|
|
52
|
-
content.toString("utf8"),
|
|
53
|
-
]));
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Start one detached run over this checkout and save its id. The tree is
|
|
57
|
-
* frozen at accept — keep editing, the run's bytes do not move. The receipt
|
|
58
|
-
* sizes the run (`total_trials`, `scenarios`) before a single trial starts.
|
|
59
|
-
*/
|
|
60
|
-
export async function startEvaluation(context, builder, options = {}) {
|
|
61
|
-
const root = options.root ?? agentRoot(context);
|
|
62
|
-
const files = {
|
|
63
|
-
...(await readCheckoutTree(path.join(root, "bundle", "src"))),
|
|
64
|
-
...(await readBuildTree(path.join(root, "bundle", "build"))),
|
|
65
|
-
};
|
|
66
|
-
const versionTag = options.versionTag ?? context.versionTag;
|
|
67
|
-
const receipt = await builder.startEvaluation({
|
|
68
|
-
agent_id: requireAgent(context),
|
|
69
|
-
files,
|
|
70
|
-
...(options.message ? { message: options.message } : {}),
|
|
71
|
-
...(options.scenarios?.length ? { scenarios: options.scenarios } : {}),
|
|
72
|
-
...(versionTag ? { version_tag: versionTag } : {}),
|
|
73
|
-
});
|
|
74
|
-
await writeEvaluationState(root, { evaluation_id: receipt.evaluation_id });
|
|
75
|
-
return receipt;
|
|
76
|
-
}
|
|
77
|
-
/** Poll one run to its terminal view (completed, failed or cancelled). */
|
|
78
|
-
export async function awaitEvaluation(builder, evaluationId, options = {}) {
|
|
79
|
-
const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
80
|
-
const interval = options.pollIntervalMs ?? EVALUATE_POLL_MS;
|
|
81
|
-
const deadline = Date.now() + (options.deadlineMs ?? EVALUATE_DEADLINE_MS);
|
|
82
|
-
for (;;) {
|
|
83
|
-
const view = await builder.evaluationView(evaluationId);
|
|
84
|
-
if (!RUN_LIVE.has(view.status))
|
|
85
|
-
return view;
|
|
86
|
-
if (Date.now() >= deadline) {
|
|
87
|
-
// The run keeps executing server-side; the saved id still names it.
|
|
88
|
-
throw new CliError(`The evaluation is still running (${evaluationId}).`, {
|
|
89
|
-
suggestion: "`apollo evaluate --status` picks the scoreboard up later.",
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
await sleep(interval);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/** The run the caller means: the explicit id, else the checkout's saved
|
|
96
|
-
* last run — no run at all is a config story, not a 404. */
|
|
97
|
-
export async function resolveEvaluationId(context, explicit, root) {
|
|
98
|
-
if (explicit)
|
|
99
|
-
return explicit;
|
|
100
|
-
const saved = await readEvaluationState(root ?? agentRoot(context));
|
|
101
|
-
if (!saved) {
|
|
102
|
-
throw new ConfigError("No evaluation to name — this checkout has not started one.", "Run `apollo evaluate` first, or pass --id.");
|
|
103
|
-
}
|
|
104
|
-
return saved.evaluation_id;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=evaluations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluations.js","sourceRoot":"","sources":["../../../src/services/evaluations.ts"],"names":[],"mappings":"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"}
|