chopin-ai 0.2.0 → 0.3.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.
- package/README.md +1 -2
- package/dist/agent.d.ts +5 -5
- package/dist/agent.js +7 -11
- package/dist/agent.js.map +1 -1
- package/dist/bin.js +7 -2
- package/dist/bin.js.map +1 -1
- package/dist/chat.js +7 -0
- package/dist/chat.js.map +1 -1
- package/dist/credentials.d.ts +5 -1
- package/dist/credentials.js +18 -0
- package/dist/credentials.js.map +1 -1
- package/dist/header.d.ts +1 -0
- package/dist/header.js +7 -1
- package/dist/header.js.map +1 -1
- package/dist/home.d.ts +22 -3
- package/dist/home.js +11 -3
- package/dist/home.js.map +1 -1
- package/dist/project.d.ts +19 -2
- package/dist/project.js +111 -26
- package/dist/project.js.map +1 -1
- package/dist/rsi/control.d.ts +34 -0
- package/dist/rsi/control.js +142 -0
- package/dist/rsi/control.js.map +1 -0
- package/dist/rsi/evolve.d.ts +15 -0
- package/dist/rsi/evolve.js +314 -0
- package/dist/rsi/evolve.js.map +1 -0
- package/dist/rsi/export.d.ts +6 -0
- package/dist/rsi/export.js +25 -0
- package/dist/rsi/export.js.map +1 -0
- package/dist/rsi/harvest.d.ts +87 -0
- package/dist/rsi/harvest.js +274 -0
- package/dist/rsi/harvest.js.map +1 -0
- package/dist/rsi/held.d.ts +29 -0
- package/dist/rsi/held.js +45 -0
- package/dist/rsi/held.js.map +1 -0
- package/dist/rsi/lifecycle.d.ts +8 -0
- package/dist/rsi/lifecycle.js +25 -0
- package/dist/rsi/lifecycle.js.map +1 -0
- package/dist/rsi/models.d.ts +25 -0
- package/dist/rsi/models.js +71 -0
- package/dist/rsi/models.js.map +1 -0
- package/dist/rsi/records.d.ts +14 -0
- package/dist/rsi/records.js +20 -0
- package/dist/rsi/records.js.map +1 -0
- package/dist/rsi/round.d.ts +62 -0
- package/dist/rsi/round.js +333 -0
- package/dist/rsi/round.js.map +1 -0
- package/dist/rsi/schedule.d.ts +14 -0
- package/dist/rsi/schedule.js +42 -0
- package/dist/rsi/schedule.js.map +1 -0
- package/dist/rsi/summary.d.ts +5 -0
- package/dist/rsi/summary.js +41 -0
- package/dist/rsi/summary.js.map +1 -0
- package/dist/serve.js +52 -29
- package/dist/serve.js.map +1 -1
- package/dist/transcript.js +6 -1
- package/dist/transcript.js.map +1 -1
- package/package.json +11 -12
- package/dist/browser.d.ts +0 -2
- package/dist/browser.js +0 -9
- package/dist/browser.js.map +0 -1
- package/dist/web.d.ts +0 -3
- package/dist/web.js +0 -20
- package/dist/web.js.map +0 -1
package/dist/project.js
CHANGED
|
@@ -1,23 +1,41 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { createHash, randomBytes } from "node:crypto";
|
|
3
|
+
import { once } from "node:events";
|
|
3
4
|
import { chmod, mkdir, open, readdir, readFile, realpath, rm, stat } from "node:fs/promises";
|
|
4
|
-
import { basename, dirname, join } from "node:path";
|
|
5
|
+
import { basename, dirname, extname, join } from "node:path";
|
|
5
6
|
import { setTimeout as sleep } from "node:timers/promises";
|
|
6
7
|
import { fileURLToPath } from "node:url";
|
|
7
8
|
import { BACKGROUND_CONTEXT } from "@earendil-works/chord/context";
|
|
9
|
+
import { InMemoryCredentialStore } from "@earendil-works/pi-ai";
|
|
8
10
|
import { localDaemon } from "@earendil-works/pi-env";
|
|
9
|
-
import { AgentService, launchToken, listen } from "@chopin-ai/harness-pi";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import { AgentService, DAEMON_PATH, launchToken, listen } from "@chopin-ai/harness-pi";
|
|
12
|
+
import { LayerVersions } from "@chopin-ai/core";
|
|
13
|
+
import { DirectoryWorkspaceProvider, LoopbackWorkspaceProvider } from "@chopin-ai/workspace";
|
|
14
|
+
import { agentSetup } from "./agent.js";
|
|
15
|
+
import { chopinHome, rsiDirectory, writeWhole } from "./home.js";
|
|
13
16
|
import { exclusive } from "./lock.js";
|
|
14
|
-
import { chopinModels } from "./credentials.js";
|
|
17
|
+
import { chopinCredentials, chopinModels } from "./credentials.js";
|
|
15
18
|
import { resolveModel } from "./model.js";
|
|
19
|
+
import { loopControl } from "./rsi/control.js";
|
|
20
|
+
import { evolving } from "./rsi/evolve.js";
|
|
21
|
+
import { exportTranscripts } from "./rsi/export.js";
|
|
22
|
+
import { evolveIfDue } from "./rsi/schedule.js";
|
|
16
23
|
import { errorChain } from "@chopin-ai/harness-pi/protocol";
|
|
24
|
+
/** How often a running service writes out the conversations the loop learns from, and checks whether the loop is due. */
|
|
25
|
+
const EXPORT_MS = 60_000;
|
|
26
|
+
const EVOLVE_CHECK_MS = 10 * 60_000;
|
|
17
27
|
/** The signal that asks a project's service to hand over once its agent has nothing left to do. */
|
|
18
28
|
export const HAND_OVER = "SIGUSR2";
|
|
19
|
-
/**
|
|
20
|
-
|
|
29
|
+
/**
|
|
30
|
+
* The source hooks' URL, which they record in a process they run from the sources. Tests load the sources their own
|
|
31
|
+
* way, so their daemons run the build.
|
|
32
|
+
*/
|
|
33
|
+
const SOURCE_HOOKS = Reflect.get(globalThis, Symbol.for("chopin-ai.source-hooks"));
|
|
34
|
+
const FROM_SOURCES = typeof SOURCE_HOOKS === "string";
|
|
35
|
+
/** The entry that runs the daemon and the loop, from the sources or the build as this process runs. */
|
|
36
|
+
const BIN = fileURLToPath(new URL(FROM_SOURCES ? "bin.ts" : "../dist/bin.js", import.meta.url));
|
|
37
|
+
/** The node arguments that start that entry: the source hooks alone, never this process's other options. */
|
|
38
|
+
const CHOPIN = [...(FROM_SOURCES ? ["--import", SOURCE_HOOKS] : []), BIN];
|
|
21
39
|
const IDLE_MS = 5 * 60_000;
|
|
22
40
|
const LEAVE_GRACE_MS = 10_000;
|
|
23
41
|
/**
|
|
@@ -91,10 +109,14 @@ export async function runDaemon(directory, options = {}) {
|
|
|
91
109
|
for (const name of await readdir(home))
|
|
92
110
|
if (name.startsWith(`${basename(paths.record)}.`))
|
|
93
111
|
await rm(join(home, name), { force: true });
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
112
|
+
const token = randomBytes(32).toString("base64url");
|
|
113
|
+
// Credentials, conversations and the RSI evaluator's records stay out of the agent's reach.
|
|
114
|
+
const workspace = {
|
|
115
|
+
workspaces: new DirectoryWorkspaceProvider(paths.root, { hidden: [await realpath(chopinHome())] }),
|
|
116
|
+
daemon: localDaemon(),
|
|
117
|
+
credentials: chopinCredentials(),
|
|
118
|
+
};
|
|
119
|
+
await serveProject(paths, workspace, { authenticate: launchToken(token) }, async (server, service) => {
|
|
98
120
|
try {
|
|
99
121
|
await writeRecord(paths.record, { pid: process.pid, url: `ws://127.0.0.1:${server.port}/`, token, build: options.build ?? await buildId() });
|
|
100
122
|
for (;;) {
|
|
@@ -111,23 +133,82 @@ export async function runDaemon(directory, options = {}) {
|
|
|
111
133
|
}
|
|
112
134
|
finally {
|
|
113
135
|
await rm(paths.record, { force: true });
|
|
114
|
-
await server.close();
|
|
115
136
|
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
lock.close();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Serves one owner whose workspace someone else runs beside it, reached on a loopback port, until `signal` aborts:
|
|
145
|
+
* the project service of local use, with the workspace started and stopped by whoever runs it.
|
|
146
|
+
*/
|
|
147
|
+
export async function serveWorkspace(options) {
|
|
148
|
+
const paths = await pathsOf(options.root);
|
|
149
|
+
const lock = exclusive(paths.lock);
|
|
150
|
+
if (lock === undefined)
|
|
151
|
+
throw new Error(`another service holds the store of ${options.root}`);
|
|
152
|
+
try {
|
|
153
|
+
const workspace = {
|
|
154
|
+
workspaces: new LoopbackWorkspaceProvider({ port: options.workspacePort, root: options.root, daemon: DAEMON_PATH }),
|
|
155
|
+
// Credentials its clients hand over live in memory alone, never on any volume.
|
|
156
|
+
credentials: new InMemoryCredentialStore(),
|
|
157
|
+
inMemory: true,
|
|
158
|
+
};
|
|
159
|
+
const listening = { authenticate: launchToken(options.token), ...(options.hostname !== undefined && { hostname: options.hostname }), ...(options.port !== undefined && { port: options.port }) };
|
|
160
|
+
await serveProject(paths, workspace, listening, async (server) => {
|
|
161
|
+
options.listening?.(server.port);
|
|
162
|
+
if (!options.signal.aborted)
|
|
163
|
+
await once(options.signal, "abort");
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
lock.close();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Runs the project's service while `during` runs, and writes out what the loop learns from as it goes, so the loop
|
|
172
|
+
* never opens the store itself; the loop runs now and then while the agent has nothing in hand, and its own lock
|
|
173
|
+
* keeps it to one at a time.
|
|
174
|
+
*/
|
|
175
|
+
async function serveProject(paths, workspace, listening, during) {
|
|
176
|
+
const service = await agentService(paths, workspace);
|
|
177
|
+
try {
|
|
178
|
+
const server = await listen(service, { ...listening, busy: async () => (await service.working()).length > 0 || (await evolving()), loop: loopControl });
|
|
179
|
+
const exportNow = () => exportTranscripts(service, join(paths.rsi, "transcripts")).catch((error) => console.error(`chopin: ${errorChain(error)}`));
|
|
180
|
+
const exporting = setInterval(exportNow, EXPORT_MS);
|
|
181
|
+
exporting.unref();
|
|
182
|
+
// Credentials held in this process alone are handed to the loop; a home's own the loop reads, and keeps refreshed.
|
|
183
|
+
const loop = workspace.inMemory === true ? { credentials: workspace.credentials } : {};
|
|
184
|
+
const scheduling = setInterval(() => void evolveIfDue(CHOPIN, paths.home, async () => (await service.working()).length === 0, loop)
|
|
185
|
+
.catch((error) => console.error(`chopin: ${errorChain(error)}`)), EVOLVE_CHECK_MS);
|
|
186
|
+
scheduling.unref();
|
|
187
|
+
try {
|
|
188
|
+
await during(server, service);
|
|
116
189
|
}
|
|
117
190
|
finally {
|
|
118
|
-
|
|
191
|
+
clearInterval(exporting);
|
|
192
|
+
clearInterval(scheduling);
|
|
193
|
+
await exportNow();
|
|
194
|
+
await server.close();
|
|
119
195
|
}
|
|
120
196
|
}
|
|
121
197
|
finally {
|
|
122
|
-
|
|
198
|
+
await service.close(BACKGROUND_CONTEXT);
|
|
123
199
|
}
|
|
124
200
|
}
|
|
125
|
-
async function agentService(paths) {
|
|
201
|
+
async function agentService(paths, { credentials, ...workspace }) {
|
|
126
202
|
return new AgentService({
|
|
127
|
-
...await agentSetup(),
|
|
203
|
+
...await agentSetup(credentials),
|
|
204
|
+
credentials: () => credentials,
|
|
205
|
+
layerVersions: {
|
|
206
|
+
global: new LayerVersions(join(rsiDirectory(), "layer")),
|
|
207
|
+
project: new LayerVersions(join(paths.rsi, "layer")),
|
|
208
|
+
anyModel: true,
|
|
209
|
+
},
|
|
128
210
|
dataDir: paths.data,
|
|
129
|
-
|
|
130
|
-
daemon: localDaemon(),
|
|
211
|
+
...workspace,
|
|
131
212
|
report: (error) => console.error(`chopin: ${errorChain(error)}`),
|
|
132
213
|
});
|
|
133
214
|
}
|
|
@@ -183,10 +264,13 @@ function buildId() {
|
|
|
183
264
|
for (const root of roots) {
|
|
184
265
|
versions.push(JSON.parse(await readFile(join(root, "..", "package.json"), "utf8")).version);
|
|
185
266
|
for (const entry of await readdir(root, { recursive: true, withFileTypes: true })) {
|
|
186
|
-
if (entry.isFile() && entry.name
|
|
267
|
+
if (entry.isFile() && extname(entry.name) === extname(BIN))
|
|
187
268
|
newest = Math.max(newest, (await stat(join(entry.parentPath, entry.name))).mtimeMs);
|
|
188
269
|
}
|
|
189
270
|
}
|
|
271
|
+
// From the sources, the hooks that load them are part of the build too.
|
|
272
|
+
if (FROM_SOURCES)
|
|
273
|
+
newest = Math.max(newest, (await stat(fileURLToPath(SOURCE_HOOKS))).mtimeMs);
|
|
190
274
|
return `${versions.join(",")}:${Math.round(newest)}`;
|
|
191
275
|
})();
|
|
192
276
|
return build;
|
|
@@ -205,7 +289,7 @@ export function laterBuild(a, b) {
|
|
|
205
289
|
async function spawnDaemon(paths) {
|
|
206
290
|
const log = await open(paths.log, "a");
|
|
207
291
|
try {
|
|
208
|
-
const child = spawn(process.execPath, [
|
|
292
|
+
const child = spawn(process.execPath, [...CHOPIN, "daemon", paths.root], {
|
|
209
293
|
cwd: paths.root,
|
|
210
294
|
detached: true,
|
|
211
295
|
stdio: ["ignore", log.fd, log.fd],
|
|
@@ -222,14 +306,17 @@ async function spawnDaemon(paths) {
|
|
|
222
306
|
}
|
|
223
307
|
}
|
|
224
308
|
async function projectPaths(directory) {
|
|
225
|
-
|
|
309
|
+
return pathsOf(await realpath(directory));
|
|
310
|
+
}
|
|
311
|
+
/** Where the service of the project at `root`, a path as the project's workspace sees it, keeps its records. */
|
|
312
|
+
async function pathsOf(root) {
|
|
226
313
|
const chopin = chopinHome();
|
|
227
314
|
const home = join(chopin, "projects", createHash("sha256").update(root).digest("hex").slice(0, 16));
|
|
228
315
|
// The project's store and log hold its conversations; nobody else on the machine reads them.
|
|
229
316
|
await mkdir(home, { recursive: true });
|
|
230
317
|
await chmod(home, 0o700);
|
|
231
318
|
const at = (name) => join(home, name);
|
|
232
|
-
return { home: chopin, root, record: at("service.json"), lock: at("service.lock"), log: at("service.log"), data: at("data") };
|
|
319
|
+
return { home: chopin, root, record: at("service.json"), lock: at("service.lock"), log: at("service.log"), data: at("data"), rsi: at("rsi") };
|
|
233
320
|
}
|
|
234
321
|
/**
|
|
235
322
|
* The running service's record. The lock is the authority: a record nobody holds the lock for is left over, and one
|
|
@@ -250,9 +337,7 @@ async function writeRecord(file, record) {
|
|
|
250
337
|
await writeWhole(file, JSON.stringify(record), 0o600);
|
|
251
338
|
}
|
|
252
339
|
function joined(record) {
|
|
253
|
-
|
|
254
|
-
page.searchParams.set("token", record.token);
|
|
255
|
-
return { url: new URL(record.url), token: record.token, page };
|
|
340
|
+
return { url: new URL(record.url), token: record.token };
|
|
256
341
|
}
|
|
257
342
|
function alive(pid) {
|
|
258
343
|
try {
|
package/dist/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type LayerItem } from "@chopin-ai/core";
|
|
2
|
+
import type { CorrectionKind, HeldChange, LoopChange, LoopControl, LoopSettings, LoopStanding } from "@chopin-ai/harness-pi/protocol";
|
|
3
|
+
/** Where the loop stands: the layer version in use, the failures it knows, what waits for the user, what it spent. */
|
|
4
|
+
export declare function loopStanding(): Promise<LoopStanding>;
|
|
5
|
+
/** The changes the loop kept, newest first. */
|
|
6
|
+
export declare function loopChanges(): Promise<LoopChange[]>;
|
|
7
|
+
/**
|
|
8
|
+
* Archives the change in use whose id `id` begins, so new conversations run without it; else why it cannot be. The
|
|
9
|
+
* failure it answered is taken up again, and its proposer is told this change was undone.
|
|
10
|
+
*/
|
|
11
|
+
export declare function undoChange(id: string): Promise<{
|
|
12
|
+
undone: LayerItem;
|
|
13
|
+
version: number;
|
|
14
|
+
} | string>;
|
|
15
|
+
/** The kinds of correction the user is asked about, those found in enough sessions, and how many corrections wait for more. */
|
|
16
|
+
export declare function correctionsAsked(): Promise<{
|
|
17
|
+
asking: CorrectionKind[];
|
|
18
|
+
later: number;
|
|
19
|
+
}>;
|
|
20
|
+
/** Learns from every correction of the kind `key`, or dismisses them all; else why it cannot. */
|
|
21
|
+
export declare function answerCorrections(key: string, learn: boolean): Promise<string | undefined>;
|
|
22
|
+
/** The changes the audit held for the user, waiting for a decision. */
|
|
23
|
+
export declare function heldChanges(): Promise<HeldChange[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Approves a held change, which the next round still tests before keeping it, or refuses it, which counts against
|
|
26
|
+
* its kind; else why it cannot.
|
|
27
|
+
*/
|
|
28
|
+
export declare function decideHeld(id: string, approve: boolean): Promise<string | undefined>;
|
|
29
|
+
/** How the loop runs, as the settings have it. */
|
|
30
|
+
export declare function loopSettings(): Promise<LoopSettings>;
|
|
31
|
+
/** Changes the loop settings given, a null clearing one, leaving the rest; answers with all of them. */
|
|
32
|
+
export declare function changeLoopSettings(change: Partial<LoopSettings>): Promise<LoopSettings>;
|
|
33
|
+
/** The loop as a service answers its owner's clients from it. */
|
|
34
|
+
export declare const loopControl: LoopControl;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { TRIGGER_SESSIONS, triggered } from "@chopin-ai/core";
|
|
2
|
+
import { changeSettings, readSettings } from "../home.js";
|
|
3
|
+
import { Budget } from "./models.js";
|
|
4
|
+
import { records } from "./records.js";
|
|
5
|
+
/** How many of a kind's corrections the user is shown when asked about it. */
|
|
6
|
+
const CORRECTION_EXAMPLES = 3;
|
|
7
|
+
/** Where the loop stands: the layer version in use, the failures it knows, what waits for the user, what it spent. */
|
|
8
|
+
export async function loopStanding() {
|
|
9
|
+
const kept = records();
|
|
10
|
+
const version = await kept.versions.current();
|
|
11
|
+
const items = await kept.versions.items(version);
|
|
12
|
+
const kinds = await kept.evidence.kinds();
|
|
13
|
+
const settings = await readSettings();
|
|
14
|
+
let shelved = 0;
|
|
15
|
+
for (const found of kinds)
|
|
16
|
+
if (await kept.rejections.shelved(found.key, settings.model ?? "", found.failures.length, await kept.evidence.criteria(found)))
|
|
17
|
+
shelved += 1;
|
|
18
|
+
const corrections = (await kept.evidence.correctionKinds()).filter((kind) => kind.sessions.length >= TRIGGER_SESSIONS).length;
|
|
19
|
+
const weeklyBudgetUsd = settings.rsi?.weeklyBudgetUsd ?? null;
|
|
20
|
+
return {
|
|
21
|
+
version,
|
|
22
|
+
inUse: items.filter((item) => !item.archived).length,
|
|
23
|
+
archived: items.filter((item) => item.archived).length,
|
|
24
|
+
kinds: kinds.length,
|
|
25
|
+
recurring: triggered(kinds).length,
|
|
26
|
+
shelved,
|
|
27
|
+
corrections,
|
|
28
|
+
held: (await kept.held.waiting()).length,
|
|
29
|
+
spentUsd: await new Budget(kept.spend, weeklyBudgetUsd ?? 0).spent(),
|
|
30
|
+
weeklyBudgetUsd,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/** The changes the loop kept, newest first. */
|
|
34
|
+
export async function loopChanges() {
|
|
35
|
+
const kept = records();
|
|
36
|
+
return (await kept.versions.items(await kept.versions.current())).toReversed()
|
|
37
|
+
.map((item) => ({ id: item.id, added: item.added, kind: item.kind, archived: item.archived, text: item.text ?? `skill ${item.skill}` }));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Archives the change in use whose id `id` begins, so new conversations run without it; else why it cannot be. The
|
|
41
|
+
* failure it answered is taken up again, and its proposer is told this change was undone.
|
|
42
|
+
*/
|
|
43
|
+
export async function undoChange(id) {
|
|
44
|
+
const kept = records();
|
|
45
|
+
const matches = (await kept.versions.items(await kept.versions.current())).filter((item) => item.id.startsWith(id) && !item.archived);
|
|
46
|
+
const [undone] = matches;
|
|
47
|
+
if (undone === undefined)
|
|
48
|
+
return `no change in use starts with ${id}`;
|
|
49
|
+
if (matches.length > 1)
|
|
50
|
+
return `${id} names more than one change; give more of it`;
|
|
51
|
+
const version = await kept.versions.commit((all) => all.map((item) => (item.id === undone.id ? { ...item, archived: true } : item)));
|
|
52
|
+
if (undone.source.failure !== undefined) {
|
|
53
|
+
await kept.rejections.record({
|
|
54
|
+
failure: undone.source.failure, candidate: undone.id, text: undone.text ?? `the skill ${undone.skill}`, reason: "the user undid it after it was kept",
|
|
55
|
+
});
|
|
56
|
+
await kept.evidence.reopen(undone.source.failure);
|
|
57
|
+
}
|
|
58
|
+
return { undone, version };
|
|
59
|
+
}
|
|
60
|
+
/** The kinds of correction the user is asked about, those found in enough sessions, and how many corrections wait for more. */
|
|
61
|
+
export async function correctionsAsked() {
|
|
62
|
+
const kinds = await records().evidence.correctionKinds();
|
|
63
|
+
const asking = kinds.filter((kind) => kind.sessions.length >= TRIGGER_SESSIONS);
|
|
64
|
+
return {
|
|
65
|
+
asking: asking.map((kind) => ({
|
|
66
|
+
key: kind.key, sessions: kind.sessions.length, examples: kind.corrections.slice(0, CORRECTION_EXAMPLES).map((correction) => correction.summary),
|
|
67
|
+
})),
|
|
68
|
+
later: kinds.filter((kind) => !asking.includes(kind)).reduce((sum, kind) => sum + kind.corrections.length, 0),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/** Learns from every correction of the kind `key`, or dismisses them all; else why it cannot. */
|
|
72
|
+
export async function answerCorrections(key, learn) {
|
|
73
|
+
const evidence = records().evidence;
|
|
74
|
+
const kind = (await evidence.correctionKinds()).find((each) => each.key === key && each.sessions.length >= TRIGGER_SESSIONS);
|
|
75
|
+
if (kind === undefined)
|
|
76
|
+
return `no kind of correction ${key} waits for an answer`;
|
|
77
|
+
await evidence.answerKind(kind, learn);
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
/** The changes the audit held for the user, waiting for a decision. */
|
|
81
|
+
export async function heldChanges() {
|
|
82
|
+
return (await records().held.waiting()).map(({ id, failure, proposal, reasons }) => ({
|
|
83
|
+
id, failure, kind: proposal.candidate.kind, ...(proposal.skill !== undefined && { skill: proposal.skill }),
|
|
84
|
+
text: proposal.candidate.text, prediction: proposal.prediction, reasons,
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Approves a held change, which the next round still tests before keeping it, or refuses it, which counts against
|
|
89
|
+
* its kind; else why it cannot.
|
|
90
|
+
*/
|
|
91
|
+
export async function decideHeld(id, approve) {
|
|
92
|
+
const kept = records();
|
|
93
|
+
const held = (await kept.held.waiting()).find((each) => each.id === id);
|
|
94
|
+
if (held === undefined)
|
|
95
|
+
return `no change ${id} waits for your review`;
|
|
96
|
+
await kept.held.decide(held, approve ? "approved" : "refused");
|
|
97
|
+
if (!approve) {
|
|
98
|
+
const { candidate, prediction } = held.proposal;
|
|
99
|
+
await kept.rejections.record({ failure: held.failure, candidate: held.id, text: candidate.text, reason: "you refused it on review", prediction });
|
|
100
|
+
}
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
/** How the loop runs, as the settings have it. */
|
|
104
|
+
export async function loopSettings() {
|
|
105
|
+
const rsi = (await readSettings()).rsi ?? {};
|
|
106
|
+
return {
|
|
107
|
+
weeklyBudgetUsd: rsi.weeklyBudgetUsd ?? null,
|
|
108
|
+
regularModel: rsi.regularModel ?? null,
|
|
109
|
+
strongModel: rsi.strongModel ?? null,
|
|
110
|
+
holdForReview: rsi.holdForReview === true,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/** Changes the loop settings given, a null clearing one, leaving the rest; answers with all of them. */
|
|
114
|
+
export async function changeLoopSettings(change) {
|
|
115
|
+
await changeSettings((current) => {
|
|
116
|
+
const rsi = { ...current.rsi };
|
|
117
|
+
for (const [key, value] of Object.entries(change)) {
|
|
118
|
+
if (value === null)
|
|
119
|
+
delete rsi[key];
|
|
120
|
+
else if (value !== undefined)
|
|
121
|
+
rsi[key] = value;
|
|
122
|
+
}
|
|
123
|
+
return { rsi: rsi };
|
|
124
|
+
});
|
|
125
|
+
return loopSettings();
|
|
126
|
+
}
|
|
127
|
+
/** The loop as a service answers its owner's clients from it. */
|
|
128
|
+
export const loopControl = {
|
|
129
|
+
standing: loopStanding,
|
|
130
|
+
changes: loopChanges,
|
|
131
|
+
undo: async (id) => {
|
|
132
|
+
const undone = await undoChange(id);
|
|
133
|
+
return typeof undone === "string" ? undone : undefined;
|
|
134
|
+
},
|
|
135
|
+
corrections: async () => (await correctionsAsked()).asking,
|
|
136
|
+
answer: answerCorrections,
|
|
137
|
+
held: heldChanges,
|
|
138
|
+
decide: decideHeld,
|
|
139
|
+
settings: loopSettings,
|
|
140
|
+
setSettings: changeLoopSettings,
|
|
141
|
+
};
|
|
142
|
+
//# sourceMappingURL=control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/rsi/control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Command } from "@chopin-ai/core";
|
|
2
|
+
/** Runs the loop once now: calibrates the judges if they were not today, gathers evidence, and runs due rounds. */
|
|
3
|
+
export declare const evolveCommand: Command;
|
|
4
|
+
/** Whether the loop is running now, in this process or another. */
|
|
5
|
+
export declare function evolving(): Promise<boolean>;
|
|
6
|
+
/** What the loop holds now. */
|
|
7
|
+
export declare const evolveStatusCommand: Command;
|
|
8
|
+
/** Asks the user about each change the audit held; an approved one is tested in the next round, a refused one counts against its kind. */
|
|
9
|
+
export declare const evolveReviewCommand: Command;
|
|
10
|
+
/** The loop's changes, newest first. */
|
|
11
|
+
export declare const evolveLogCommand: Command;
|
|
12
|
+
/** Takes a change back out; it stays in the history and can be restored by a later version. */
|
|
13
|
+
export declare const evolveUndoCommand: Command;
|
|
14
|
+
/** Asks the user about each correction the loop found; a confirmed one becomes a failure to learn from. */
|
|
15
|
+
export declare const evolveCorrectionsCommand: Command;
|