@duetso/agent 0.1.191 → 0.1.193
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/dist/package.json +1 -1
- package/dist/src/cli/help.d.ts.map +1 -1
- package/dist/src/cli/help.js +22 -0
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/memory-db.d.ts +15 -0
- package/dist/src/cli/memory-db.d.ts.map +1 -1
- package/dist/src/cli/memory-db.js +47 -1
- package/dist/src/cli/memory-db.js.map +1 -1
- package/dist/src/cli/train.d.ts +8 -0
- package/dist/src/cli/train.d.ts.map +1 -1
- package/dist/src/cli/train.js +211 -2
- package/dist/src/cli/train.js.map +1 -1
- package/dist/src/train/archive.d.ts +6 -0
- package/dist/src/train/archive.d.ts.map +1 -1
- package/dist/src/train/archive.js +14 -0
- package/dist/src/train/archive.js.map +1 -1
- package/dist/src/train/tags.d.ts +17 -0
- package/dist/src/train/tags.d.ts.map +1 -0
- package/dist/src/train/tags.js +24 -0
- package/dist/src/train/tags.js.map +1 -0
- package/dist/src/train/types.d.ts +32 -0
- package/dist/src/train/types.d.ts.map +1 -1
- package/dist/src/turn-runner/wire-shaping.d.ts +15 -2
- package/dist/src/turn-runner/wire-shaping.d.ts.map +1 -1
- package/dist/src/turn-runner/wire-shaping.js +32 -6
- package/dist/src/turn-runner/wire-shaping.js.map +1 -1
- package/package.json +1 -1
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAqFtD;AAED,wBAAgB,cAAc,IAAI,IAAI,CA0BrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAsBnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CA2BtC;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAuC7C;AAED,wBAAgB,cAAc,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAqFtD;AAED,wBAAgB,cAAc,IAAI,IAAI,CA0BrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAsBnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CA2BtC;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAuC7C;AAED,wBAAgB,cAAc,IAAI,IAAI,CA+DrC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe1D"}
|
package/dist/src/cli/help.js
CHANGED
|
@@ -238,6 +238,10 @@ duet train — Ingest a project corpus into one durable memory observation
|
|
|
238
238
|
|
|
239
239
|
USAGE
|
|
240
240
|
duet train <folder> [--slug <name>] [--model <name>] [--db <path>] [--wait <seconds>]
|
|
241
|
+
duet train list [--db <path>] [--json]
|
|
242
|
+
duet train show <slug> [--db <path>] [--json]
|
|
243
|
+
duet train update <slug> --content-file <path> [--db <path>] [--json]
|
|
244
|
+
duet train delete <slug> [--db <path>] [--json]
|
|
241
245
|
|
|
242
246
|
DESCRIPTION
|
|
243
247
|
Launches a duet agent with the corpus folder as its working directory.
|
|
@@ -254,6 +258,19 @@ DESCRIPTION
|
|
|
254
258
|
prints the observation content to stdout so what you see is what landed
|
|
255
259
|
in memory.
|
|
256
260
|
|
|
261
|
+
The management subcommands all key on the user-facing <slug> (resolved
|
|
262
|
+
to the underlying row internally):
|
|
263
|
+
list — every training (one row per slug), joined to its archive
|
|
264
|
+
manifest to show slug, headline, model, file count, date,
|
|
265
|
+
and memory id.
|
|
266
|
+
show — the same metadata plus the full synthesized observation text.
|
|
267
|
+
update — replace just the observation text from --content-file, in
|
|
268
|
+
place; the corpus archive is preserved untouched. Use this to
|
|
269
|
+
hand-correct a memory without re-running synthesis (re-running
|
|
270
|
+
'duet train <folder> --slug <slug>' is the re-synthesis path).
|
|
271
|
+
delete — permanently remove the row and its corpus archive.
|
|
272
|
+
Pass --json to any of them for machine-readable output.
|
|
273
|
+
|
|
257
274
|
Subsequent runs against the same slug replace the prior row in place,
|
|
258
275
|
so the memory pool does not bloat. Writing the row as a manual row
|
|
259
276
|
earns it a ranking boost in the memory pack (via manualBias) and exempts
|
|
@@ -272,6 +289,11 @@ OPTIONS
|
|
|
272
289
|
EXAMPLES
|
|
273
290
|
duet train ./docs/my-project
|
|
274
291
|
duet train ./research --slug acme-research --model sonnet-4.6
|
|
292
|
+
duet train list
|
|
293
|
+
duet train list --json
|
|
294
|
+
duet train show acme-research
|
|
295
|
+
duet train update acme-research --content-file ./edited.md
|
|
296
|
+
duet train delete acme-research
|
|
275
297
|
`);
|
|
276
298
|
}
|
|
277
299
|
export function printSendFeedbackHelp() {
|
package/dist/src/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;gDAmBkC,WAAW;;;;;;;;;;;;;gHAaqD,+BAA+B;;;;;oFAK3D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CxG,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;wEAW0D,qBAAqB;;;;;;;;;;;;;CAa5F,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;yDAa2C,qBAAqB;;;;;;IAM1E,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;gDAmBkC,WAAW;;;;;;;;;;;;;gHAaqD,+BAA+B;;;;;oFAK3D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CxG,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;wEAW0D,qBAAqB;;;;;;;;;;;;;CAa5F,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;yDAa2C,qBAAqB;;;;;;IAM1E,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Db,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,CAAC,GAAG,CAAC;oCACsB,WAAW;;;;;;;;;;;;CAY9C,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TrainListEntry, TrainRecord } from "../train/types.js";
|
|
1
2
|
import type { Observation } from "../types/memory.js";
|
|
2
3
|
/** Rows fetched per page by the ranked, lazily-paginated TUI list. */
|
|
3
4
|
export declare const MEMORY_PAGE_SIZE = 25;
|
|
@@ -50,6 +51,20 @@ export declare class MemoryDb {
|
|
|
50
51
|
offset: number;
|
|
51
52
|
now?: number;
|
|
52
53
|
}): Promise<Observation[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Every `duet train` row (those tagged `train`), newest-first, joined to its
|
|
56
|
+
* archive manifest for headline/model/provenance. Backs `duet train list`.
|
|
57
|
+
*/
|
|
58
|
+
listTrainings(): Promise<TrainListEntry[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve a slug to its single training row plus the synthesized content,
|
|
61
|
+
* or `undefined` when no row carries `train:<slug>`. Backs `duet train
|
|
62
|
+
* show`, `update`, and `delete`, which all key on the user-facing slug
|
|
63
|
+
* rather than the internal observation id.
|
|
64
|
+
*/
|
|
65
|
+
findTrainingBySlug(slug: string): Promise<TrainRecord | undefined>;
|
|
66
|
+
private readTrainObservations;
|
|
67
|
+
private toTrainEntry;
|
|
53
68
|
/** Replace just the `content` of an observation, preserving everything else. */
|
|
54
69
|
updateContent(id: string, content: string): Promise<void>;
|
|
55
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-db.d.ts","sourceRoot":"","sources":["../../../src/cli/memory-db.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-db.d.ts","sourceRoot":"","sources":["../../../src/cli/memory-db.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,CAK3F;AAED;;;;GAIG;AACH,qBAAa,QAAQ;IACC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAvC,OAAO;IAEP;;;;;;;;;OASG;WACU,IAAI,CACf,IAAI,EAAE,MAAM,EACZ,EAAE,YAA+C,EAAE,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,GAClF,OAAO,CAAC,QAAQ,CAAC;IAiBpB,yDAAyD;IACnD,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B;;;;;;;;;;;;OAYG;IACG,UAAU,CAAC,EACf,KAAK,EACL,MAAM,EACN,GAAgB,GACjB,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6B1B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAOhD;;;;;OAKG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;YAO1D,qBAAqB;YAWrB,YAAY;IAe1B,gFAAgF;IAC1E,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D;;;;;OAKG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -2,7 +2,8 @@ import { observationScore, PRIORITY_WEIGHT } from "../memory/loader.js";
|
|
|
2
2
|
import { runMigrations } from "../memory/migrations.js";
|
|
3
3
|
import { DEFAULT_RECENCY_HALF_LIFE_MS, DEFAULT_REFLECTION_BIAS } from "../memory/observational.js";
|
|
4
4
|
import { DEFAULT_OPEN_LOCK_WAIT_BUDGET_MS, openPGliteWaitingForLock } from "../memory/pglite.js";
|
|
5
|
-
import { removeArchive } from "../train/archive.js";
|
|
5
|
+
import { readArchiveManifest, removeArchive } from "../train/archive.js";
|
|
6
|
+
import { isTrainTagged, slugFromTags } from "../train/tags.js";
|
|
6
7
|
/** Rows fetched per page by the ranked, lazily-paginated TUI list. */
|
|
7
8
|
export const MEMORY_PAGE_SIZE = 25;
|
|
8
9
|
/**
|
|
@@ -93,6 +94,51 @@ export class MemoryDb {
|
|
|
93
94
|
]);
|
|
94
95
|
return result.rows.map(rowToObservation);
|
|
95
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Every `duet train` row (those tagged `train`), newest-first, joined to its
|
|
99
|
+
* archive manifest for headline/model/provenance. Backs `duet train list`.
|
|
100
|
+
*/
|
|
101
|
+
async listTrainings() {
|
|
102
|
+
const observations = await this.readTrainObservations();
|
|
103
|
+
const entries = await Promise.all(observations.map((row) => this.toTrainEntry(row)));
|
|
104
|
+
entries.sort((a, b) => b.createdAt - a.createdAt);
|
|
105
|
+
return entries;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Resolve a slug to its single training row plus the synthesized content,
|
|
109
|
+
* or `undefined` when no row carries `train:<slug>`. Backs `duet train
|
|
110
|
+
* show`, `update`, and `delete`, which all key on the user-facing slug
|
|
111
|
+
* rather than the internal observation id.
|
|
112
|
+
*/
|
|
113
|
+
async findTrainingBySlug(slug) {
|
|
114
|
+
const observations = await this.readTrainObservations();
|
|
115
|
+
const row = observations.find((observation) => slugFromTags(observation.tags) === slug);
|
|
116
|
+
if (!row)
|
|
117
|
+
return undefined;
|
|
118
|
+
return { ...(await this.toTrainEntry(row)), content: row.content };
|
|
119
|
+
}
|
|
120
|
+
async readTrainObservations() {
|
|
121
|
+
const result = await this.db.query(`SELECT id, created_at, last_used_at, session_id, kind, observed_date, referenced_date,
|
|
122
|
+
relative_date, time_of_day, priority, source_json, content, tags_json
|
|
123
|
+
FROM observations`);
|
|
124
|
+
return result.rows
|
|
125
|
+
.map(rowToObservation)
|
|
126
|
+
.filter((observation) => isTrainTagged(observation.tags));
|
|
127
|
+
}
|
|
128
|
+
async toTrainEntry(observation) {
|
|
129
|
+
const manifest = await readArchiveManifest(observation.id);
|
|
130
|
+
return {
|
|
131
|
+
slug: slugFromTags(observation.tags) ?? "(unknown)",
|
|
132
|
+
memoryId: observation.id,
|
|
133
|
+
createdAt: observation.createdAt,
|
|
134
|
+
observedDate: observation.observedDate,
|
|
135
|
+
headline: manifest?.headline,
|
|
136
|
+
model: manifest?.model,
|
|
137
|
+
sourceFolder: manifest?.sourceFolder,
|
|
138
|
+
fileCount: manifest?.files.length,
|
|
139
|
+
hasArchive: manifest !== undefined,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
96
142
|
/** Replace just the `content` of an observation, preserving everything else. */
|
|
97
143
|
async updateContent(id, content) {
|
|
98
144
|
await this.db.query(`UPDATE observations SET content = $1 WHERE id = $2`, [content, id]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-db.js","sourceRoot":"","sources":["../../../src/cli/memory-db.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAE,gCAAgC,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-db.js","sourceRoot":"","sources":["../../../src/cli/memory-db.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/train.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TrainListEntry } from "../train/types.js";
|
|
1
2
|
export interface TrainCommandOptions {
|
|
2
3
|
folder: string;
|
|
3
4
|
slug: string;
|
|
@@ -19,5 +20,12 @@ export declare function parseTrainArgs(args: string[]): TrainCommandOptions | un
|
|
|
19
20
|
* and verify both side effects landed.
|
|
20
21
|
*/
|
|
21
22
|
export declare function runTrainCommand(args: string[], io?: TrainCommandIO): Promise<void>;
|
|
23
|
+
/** Render the list as an aligned text table. Pure so it is unit-testable
|
|
24
|
+
* without a database. */
|
|
25
|
+
export declare function formatTrainList(entries: TrainListEntry[]): string;
|
|
26
|
+
export declare function runTrainListCommand(args: string[], io: TrainCommandIO): Promise<void>;
|
|
27
|
+
export declare function runTrainShowCommand(args: string[], io: TrainCommandIO): Promise<void>;
|
|
28
|
+
export declare function runTrainUpdateCommand(args: string[], io: TrainCommandIO): Promise<void>;
|
|
29
|
+
export declare function runTrainDeleteCommand(args: string[], io: TrainCommandIO): Promise<void>;
|
|
22
30
|
export {};
|
|
23
31
|
//# sourceMappingURL=train.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../../src/cli/train.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../../src/cli/train.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAEV,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAO3B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC/B;AAcD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,GAAG,SAAS,CA0D9E;AA8ID;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,GAAE,cAAmE,GACtE,OAAO,CAAC,IAAI,CAAC,CAwKf;AAMD;0BAC0B;AAC1B,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAwCjE;AA4FD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3F;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAU3F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB7F;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB7F"}
|
package/dist/src/cli/train.js
CHANGED
|
@@ -8,7 +8,9 @@ import { appendObservation } from "../memory/storage.js";
|
|
|
8
8
|
import { resolveCliModel } from "../model-resolution/resolver.js";
|
|
9
9
|
import { DEFAULT_MEMORY_DB_PATH, SessionManager } from "../session/session-manager.js";
|
|
10
10
|
import { collectArchiveFiles, removeArchive, writeArchive } from "../train/archive.js";
|
|
11
|
+
import { TRAIN_TAG, trainSlugTag } from "../train/tags.js";
|
|
11
12
|
import { printTrainHelp } from "./help.js";
|
|
13
|
+
import { MemoryDb } from "./memory-db.js";
|
|
12
14
|
import { fail, loadCliEnvFiles, resolveUserPath } from "./shared.js";
|
|
13
15
|
import { installShutdownHandlers } from "./shutdown.js";
|
|
14
16
|
/**
|
|
@@ -218,6 +220,20 @@ async function runAgentSynthesis(options, io) {
|
|
|
218
220
|
* and verify both side effects landed.
|
|
219
221
|
*/
|
|
220
222
|
export async function runTrainCommand(args, io = { stdout: process.stdout, stderr: process.stderr }) {
|
|
223
|
+
// The management subcommands are read/edit/delete siblings of the synthesis
|
|
224
|
+
// command. They route before the synthesis arg parser, which would otherwise
|
|
225
|
+
// treat the subcommand word as a corpus folder. Everything else falls
|
|
226
|
+
// through to the default `train <folder>` create flow.
|
|
227
|
+
switch (args[0]) {
|
|
228
|
+
case "list":
|
|
229
|
+
return runTrainListCommand(args.slice(1), io);
|
|
230
|
+
case "show":
|
|
231
|
+
return runTrainShowCommand(args.slice(1), io);
|
|
232
|
+
case "update":
|
|
233
|
+
return runTrainUpdateCommand(args.slice(1), io);
|
|
234
|
+
case "delete":
|
|
235
|
+
return runTrainDeleteCommand(args.slice(1), io);
|
|
236
|
+
}
|
|
221
237
|
const options = parseTrainArgs(args);
|
|
222
238
|
if (!options)
|
|
223
239
|
return;
|
|
@@ -257,14 +273,14 @@ export async function runTrainCommand(args, io = { stdout: process.stdout, stder
|
|
|
257
273
|
// matches a live session, so it lands in the global pack via the
|
|
258
274
|
// loader's NULL-session handling), and `duet memory reflect`'s prune
|
|
259
275
|
// preserves it by kind regardless of age.
|
|
260
|
-
const trainTag =
|
|
276
|
+
const trainTag = trainSlugTag(options.slug);
|
|
261
277
|
const observedDate = new Date().toISOString().slice(0, 10);
|
|
262
278
|
const observation = await appendObservation(session, {
|
|
263
279
|
kind: "manual",
|
|
264
280
|
priority: "high",
|
|
265
281
|
source: { kind: "system" },
|
|
266
282
|
content: synthesis.observationContent,
|
|
267
|
-
tags: [
|
|
283
|
+
tags: [TRAIN_TAG, trainTag],
|
|
268
284
|
observedDate,
|
|
269
285
|
});
|
|
270
286
|
if (!observation) {
|
|
@@ -353,4 +369,197 @@ export async function runTrainCommand(args, io = { stdout: process.stdout, stder
|
|
|
353
369
|
await session.dispose();
|
|
354
370
|
}
|
|
355
371
|
}
|
|
372
|
+
function truncate(value, max) {
|
|
373
|
+
return value.length <= max ? value : `${value.slice(0, max - 1)}…`;
|
|
374
|
+
}
|
|
375
|
+
/** Render the list as an aligned text table. Pure so it is unit-testable
|
|
376
|
+
* without a database. */
|
|
377
|
+
export function formatTrainList(entries) {
|
|
378
|
+
if (entries.length === 0) {
|
|
379
|
+
return "No trainings found. Run `duet train <folder>` to create one.";
|
|
380
|
+
}
|
|
381
|
+
const rows = entries.map((entry) => ({
|
|
382
|
+
slug: entry.slug,
|
|
383
|
+
headline: entry.headline ?? (entry.hasArchive ? "—" : "(archive missing)"),
|
|
384
|
+
model: entry.model ?? "—",
|
|
385
|
+
files: entry.fileCount === undefined ? "—" : String(entry.fileCount),
|
|
386
|
+
trained: entry.observedDate,
|
|
387
|
+
id: entry.memoryId,
|
|
388
|
+
}));
|
|
389
|
+
const headers = {
|
|
390
|
+
slug: "SLUG",
|
|
391
|
+
headline: "HEADLINE",
|
|
392
|
+
model: "MODEL",
|
|
393
|
+
files: "FILES",
|
|
394
|
+
trained: "TRAINED",
|
|
395
|
+
id: "MEMORY ID",
|
|
396
|
+
};
|
|
397
|
+
const width = (key, cap) => Math.min(cap, Math.max(headers[key].length, ...rows.map((row) => row[key].length)));
|
|
398
|
+
const w = {
|
|
399
|
+
slug: width("slug", 24),
|
|
400
|
+
headline: width("headline", 48),
|
|
401
|
+
model: width("model", 18),
|
|
402
|
+
files: width("files", 5),
|
|
403
|
+
trained: width("trained", 10),
|
|
404
|
+
id: width("id", 20),
|
|
405
|
+
};
|
|
406
|
+
const line = (cells) => [
|
|
407
|
+
truncate(cells.slug, w.slug).padEnd(w.slug),
|
|
408
|
+
truncate(cells.headline, w.headline).padEnd(w.headline),
|
|
409
|
+
truncate(cells.model, w.model).padEnd(w.model),
|
|
410
|
+
cells.files.padStart(w.files),
|
|
411
|
+
cells.trained.padEnd(w.trained),
|
|
412
|
+
cells.id,
|
|
413
|
+
].join(" ");
|
|
414
|
+
return [line(headers), ...rows.map(line)].join("\n");
|
|
415
|
+
}
|
|
416
|
+
/** Multi-line detail view for a single training (`duet train show`). */
|
|
417
|
+
function formatTrainRecord(record) {
|
|
418
|
+
return [
|
|
419
|
+
`slug : ${record.slug}`,
|
|
420
|
+
`headline : ${record.headline ?? "—"}`,
|
|
421
|
+
`memory id : ${record.memoryId}`,
|
|
422
|
+
`model : ${record.model ?? "—"}`,
|
|
423
|
+
`files : ${record.fileCount ?? "—"}`,
|
|
424
|
+
`source : ${record.sourceFolder ?? "—"}`,
|
|
425
|
+
`trained : ${record.observedDate}`,
|
|
426
|
+
`archive : ${record.hasArchive ? "present" : "missing"}`,
|
|
427
|
+
"",
|
|
428
|
+
record.content,
|
|
429
|
+
].join("\n");
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Shared arg parser for the management subcommands. Each command validates
|
|
433
|
+
* which fields it actually requires (e.g. `show` needs a slug, `update` also
|
|
434
|
+
* needs `--content-file`); this only does the lexing.
|
|
435
|
+
*/
|
|
436
|
+
function parseTrainSubArgs(args) {
|
|
437
|
+
let slug;
|
|
438
|
+
let dbPath = DEFAULT_MEMORY_DB_PATH;
|
|
439
|
+
let json = false;
|
|
440
|
+
let contentFile;
|
|
441
|
+
for (let i = 0; i < args.length; i++) {
|
|
442
|
+
const arg = args[i];
|
|
443
|
+
switch (arg) {
|
|
444
|
+
case "--db":
|
|
445
|
+
if (!args[i + 1] || args[i + 1]?.startsWith("-"))
|
|
446
|
+
fail(`Missing value for ${arg}`);
|
|
447
|
+
dbPath = resolveUserPath(args[++i]);
|
|
448
|
+
break;
|
|
449
|
+
case "--content-file":
|
|
450
|
+
if (!args[i + 1] || args[i + 1]?.startsWith("-"))
|
|
451
|
+
fail(`Missing value for ${arg}`);
|
|
452
|
+
contentFile = resolveUserPath(args[++i]);
|
|
453
|
+
break;
|
|
454
|
+
case "--json":
|
|
455
|
+
json = true;
|
|
456
|
+
break;
|
|
457
|
+
case "--help":
|
|
458
|
+
case "-h":
|
|
459
|
+
printTrainHelp();
|
|
460
|
+
return undefined;
|
|
461
|
+
default:
|
|
462
|
+
if (arg.startsWith("-"))
|
|
463
|
+
fail(`Unknown train option: ${arg}`);
|
|
464
|
+
if (slug !== undefined)
|
|
465
|
+
fail(`Unexpected extra argument: ${arg}`);
|
|
466
|
+
slug = arg;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
return { slug, dbPath, json, contentFile };
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Open the memory database for a management subcommand, run `fn`, and always
|
|
473
|
+
* close it. Lock contention surfaces as a friendly message (the same one the
|
|
474
|
+
* create flow uses) rather than a raw error.
|
|
475
|
+
*/
|
|
476
|
+
async function withTrainMemoryDb(dbPath, fn) {
|
|
477
|
+
let db;
|
|
478
|
+
try {
|
|
479
|
+
db = await MemoryDb.open(dbPath);
|
|
480
|
+
}
|
|
481
|
+
catch (error) {
|
|
482
|
+
if (error instanceof MemoryLockTimeoutError) {
|
|
483
|
+
fail(`Memory database at ${error.dataDir} is still locked by duet pid ${error.holderPid} after ${error.budgetMs / 1000}s. Stop that process (or pass --wait <seconds> to wait longer) and retry.`);
|
|
484
|
+
}
|
|
485
|
+
throw error;
|
|
486
|
+
}
|
|
487
|
+
const removeShutdownHandlers = installShutdownHandlers(() => db.close());
|
|
488
|
+
try {
|
|
489
|
+
return await fn(db);
|
|
490
|
+
}
|
|
491
|
+
finally {
|
|
492
|
+
removeShutdownHandlers();
|
|
493
|
+
await db.close();
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
export async function runTrainListCommand(args, io) {
|
|
497
|
+
const options = parseTrainSubArgs(args);
|
|
498
|
+
if (!options)
|
|
499
|
+
return;
|
|
500
|
+
if (options.slug !== undefined)
|
|
501
|
+
fail(`Unexpected argument for train list: ${options.slug}`);
|
|
502
|
+
const entries = await withTrainMemoryDb(options.dbPath, (db) => db.listTrainings());
|
|
503
|
+
io.stdout.write(options.json ? `${JSON.stringify(entries, null, 2)}\n` : `${formatTrainList(entries)}\n`);
|
|
504
|
+
}
|
|
505
|
+
export async function runTrainShowCommand(args, io) {
|
|
506
|
+
const options = parseTrainSubArgs(args);
|
|
507
|
+
if (!options)
|
|
508
|
+
return;
|
|
509
|
+
if (!options.slug)
|
|
510
|
+
fail("duet train show requires a <slug> argument");
|
|
511
|
+
const slug = options.slug;
|
|
512
|
+
const record = await withTrainMemoryDb(options.dbPath, (db) => db.findTrainingBySlug(slug));
|
|
513
|
+
if (!record)
|
|
514
|
+
fail(`No training found for slug "${slug}".`);
|
|
515
|
+
io.stdout.write(options.json ? `${JSON.stringify(record, null, 2)}\n` : `${formatTrainRecord(record)}\n`);
|
|
516
|
+
}
|
|
517
|
+
export async function runTrainUpdateCommand(args, io) {
|
|
518
|
+
const options = parseTrainSubArgs(args);
|
|
519
|
+
if (!options)
|
|
520
|
+
return;
|
|
521
|
+
if (!options.slug)
|
|
522
|
+
fail("duet train update requires a <slug> argument");
|
|
523
|
+
if (!options.contentFile)
|
|
524
|
+
fail("duet train update requires --content-file <path>");
|
|
525
|
+
const slug = options.slug;
|
|
526
|
+
const content = await readFile(options.contentFile, "utf8");
|
|
527
|
+
if (content.trim().length === 0) {
|
|
528
|
+
fail(`Refusing to write empty content from ${options.contentFile}.`);
|
|
529
|
+
}
|
|
530
|
+
const updated = await withTrainMemoryDb(options.dbPath, async (db) => {
|
|
531
|
+
const record = await db.findTrainingBySlug(slug);
|
|
532
|
+
if (!record)
|
|
533
|
+
fail(`No training found for slug "${slug}".`);
|
|
534
|
+
await db.updateContent(record.memoryId, content);
|
|
535
|
+
// updateContent only touches `content`, so the stored row is the prior
|
|
536
|
+
// record with the new text.
|
|
537
|
+
return { ...record, content };
|
|
538
|
+
});
|
|
539
|
+
if (options.json) {
|
|
540
|
+
io.stdout.write(`${JSON.stringify(updated, null, 2)}\n`);
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
543
|
+
io.stdout.write(`Updated "${slug}" (memory id ${updated.memoryId}).\n`);
|
|
544
|
+
}
|
|
545
|
+
export async function runTrainDeleteCommand(args, io) {
|
|
546
|
+
const options = parseTrainSubArgs(args);
|
|
547
|
+
if (!options)
|
|
548
|
+
return;
|
|
549
|
+
if (!options.slug)
|
|
550
|
+
fail("duet train delete requires a <slug> argument");
|
|
551
|
+
const slug = options.slug;
|
|
552
|
+
const deleted = await withTrainMemoryDb(options.dbPath, async (db) => {
|
|
553
|
+
const record = await db.findTrainingBySlug(slug);
|
|
554
|
+
if (!record)
|
|
555
|
+
fail(`No training found for slug "${slug}".`);
|
|
556
|
+
await db.delete(record.memoryId);
|
|
557
|
+
return record;
|
|
558
|
+
});
|
|
559
|
+
if (options.json) {
|
|
560
|
+
io.stdout.write(`${JSON.stringify({ deleted: true, slug: deleted.slug, memoryId: deleted.memoryId }, null, 2)}\n`);
|
|
561
|
+
return;
|
|
562
|
+
}
|
|
563
|
+
io.stdout.write(`Deleted "${deleted.slug}" (memory id ${deleted.memoryId}) and its archive.\n`);
|
|
564
|
+
}
|
|
356
565
|
//# sourceMappingURL=train.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.js","sourceRoot":"","sources":["../../../src/cli/train.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"train.js","sourceRoot":"","sources":["../../../src/cli/train.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQ3D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAgBxD;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,IAAI,MAA0B,CAAC;IAC/B,IAAI,YAAgC,CAAC;IACrC,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,KAAyB,CAAC;IAC9B,IAAI,MAAM,GAAG,sBAAsB,CAAC;IACpC,IAAI,YAAgC,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ;gBACX,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBACnF,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;gBAC1B,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBACnF,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;gBACnB,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBACnF,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,yBAAyB,GAAG,4CAA4C,CAAC,CAAC;gBACjF,CAAC;gBACD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;gBAC1C,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,cAAc,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC;YACnB;gBACE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;gBAC9D,IAAI,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;gBACpE,MAAM,GAAG,GAAG,CAAC;QACjB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,yCAAyC,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,iCAAiC,MAAM,uBAAuB,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,IAAI;QACJ,KAAK;QACL,MAAM;QACN,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAOD;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCjC,CAAC;AAEF;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAC9B,OAAwD,EACxD,EAAkB;IAElB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClE,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAqB;QAC/B,GAAG,EAAE,OAAO,CAAC,MAAM;QACnB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,mEAAmE;QACnE,iEAAiE;QACjE,YAAY,EAAE,KAAK;QACnB,kEAAkE;QAClE,iEAAiE;QACjE,iBAAiB,EAAE,EAAE;QACrB,oEAAoE;QACpE,cAAc,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE;QAC1C,kBAAkB,EAAE,mBAAmB;QACvC,IAAI,EAAE,OAAO;KACd,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;IAE3C,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QAClD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC3D,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;YAChD,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,MAAM,EAAE,kDAAkD,OAAO,CAAC,IAAI,GAAG;SAC1E,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;QACjD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;YAAS,CAAC;QACT,WAAW,EAAE,CAAC;QACd,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACzD,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,mEAAmE,CAC/G,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAAgD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,sDAAsD,OAAO,MAAM,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAiC,CAAC;IAC3E,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,OAAO,kBAAkB,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;QACzB,kBAAkB,EAAE,kBAAkB,CAAC,IAAI,EAAE;KAC9C,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAc,EACd,KAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;IAEvE,4EAA4E;IAC5E,6EAA6E;IAC7E,sEAAsE;IACtE,uDAAuD;IACvD,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClD,KAAK,QAAQ;YACX,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,uEAAuE;IACvE,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,mEAAmE;IACnE,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,eAAe,CAAC,SAAS,CAAC;IAEhD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,WAAW,EAAE;YACX,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;gBACjB,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;SACF;QACD,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;QAErC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,aAAa,IAAI,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CACvC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,EACpE,EAAE,CACH,CAAC;QAEF,iEAAiE;QACjE,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,iEAAiE;QACjE,qEAAqE;QACrE,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE;YACnD,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,OAAO,EAAE,SAAS,CAAC,kBAAkB;YACrC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;YAC3B,YAAY;SACb,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAC7F,CAAC;QAED,mEAAmE;QACnE,+DAA+D;QAC/D,mEAAmE;QACnE,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAa,wCAAwC,CAAC,CAAC;YACpF,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE;oBAAE,SAAS;gBACxC,IAAI,IAAa,CAAC;gBAClB,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,6CAA6C,OAAO,CAAC,MAAM,sBAAsB;gBAC/E,eAAe,WAAW,CAAC,EAAE,uDAAuD,CACvF,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,QAAQ,CAAC,MAAM,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,WAAW,CAAC,EAAE,GAAG,cAAc,IAAI,CAAC,CAAC;QAE5E,8DAA8D;QAC9D,0CAA0C;QAC1C,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAkB;YAC9B,QAAQ,EAAE,WAAW,CAAC,EAAE;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;SACJ,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC;YACrC,QAAQ,EAAE,WAAW,CAAC,EAAE;YACxB,KAAK,EAAE,aAAa;YACpB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CACnD,EAAE,CAAC,KAAK,CAAsB,gDAAgD,EAAE;YAC9E,WAAW,CAAC,EAAE;SACf,CAAC,CACH,CAAC;QACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,CAAC,kBAAkB,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,oCAAoC,WAAW,CAAC,EAAE,qCAAqC,CACxF,CAAC;QACJ,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC;QACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,WAAW,IAAI,CAAC,CAAC;QACnD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,aAAa,CAAC,MAAM,YAAY,CAAC,CAAC;QACpE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,aAAa,IAAI,CAAC,CAAC;QACrD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,kBAAkB,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,CAAC,OAAO,gCAAgC,KAAK,CAAC,SAAS,UAChF,KAAK,CAAC,QAAQ,GAAG,IACnB,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,sBAAsB,EAAE,CAAC;QACzB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW;IAC1C,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AACrE,CAAC;AAED;0BAC0B;AAC1B,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,8DAA8D,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC1E,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG;QACzB,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;QACpE,OAAO,EAAE,KAAK,CAAC,YAAY;QAC3B,EAAE,EAAE,KAAK,CAAC,QAAQ;KACnB,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,SAAS;QAClB,EAAE,EAAE,WAAW;KAChB,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,GAAyB,EAAE,GAAW,EAAE,EAAE,CACvD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG;QACR,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACvB,QAAQ,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC;QAC/B,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACzB,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxB,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;QAC7B,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;KACpB,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,KAAqB,EAAE,EAAE,CACrC;QACE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3C,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9C,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/B,KAAK,CAAC,EAAE;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,OAAO;QACL,gBAAgB,MAAM,CAAC,IAAI,EAAE;QAC7B,gBAAgB,MAAM,CAAC,QAAQ,IAAI,GAAG,EAAE;QACxC,gBAAgB,MAAM,CAAC,QAAQ,EAAE;QACjC,gBAAgB,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;QACrC,gBAAgB,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE;QACzC,gBAAgB,MAAM,CAAC,YAAY,IAAI,GAAG,EAAE;QAC5C,gBAAgB,MAAM,CAAC,YAAY,EAAE;QACrC,gBAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;QAC3D,EAAE;QACF,MAAM,CAAC,OAAO;KACf,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAWD;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,IAAc;IACvC,IAAI,IAAwB,CAAC;IAC7B,IAAI,MAAM,GAAG,sBAAsB,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,WAA+B,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACrB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM;gBACT,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBACnF,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;gBACnF,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,cAAc,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC;YACnB;gBACE,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;gBAC9D,IAAI,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;gBAClE,IAAI,GAAG,GAAG,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAI,MAAc,EAAE,EAAgC;IAClF,IAAI,EAAY,CAAC;IACjB,IAAI,CAAC;QACH,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAsB,EAAE,CAAC;YAC5C,IAAI,CACF,sBAAsB,KAAK,CAAC,OAAO,gCAAgC,KAAK,CAAC,SAAS,UAChF,KAAK,CAAC,QAAQ,GAAG,IACnB,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,sBAAsB,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAc,EAAE,EAAkB;IAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,uCAAuC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IACpF,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CACzF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAc,EAAE,EAAkB;IAC1E,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,+BAA+B,IAAI,IAAI,CAAC,CAAC;IAC3D,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CACzF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAc,EAAE,EAAkB;IAC5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACxE,IAAI,CAAC,OAAO,CAAC,WAAW;QAAE,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,wCAAwC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAwB,EAAE;QACzF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,+BAA+B,IAAI,IAAI,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,uEAAuE;QACvE,4BAA4B;QAC5B,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,gBAAgB,OAAO,CAAC,QAAQ,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAc,EAAE,EAAkB;IAC5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,CAAC,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAwB,EAAE;QACzF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,+BAA+B,IAAI,IAAI,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,EAAE,CAAC,MAAM,CAAC,KAAK,CACb,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAClG,CAAC;QACF,OAAO;IACT,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,gBAAgB,OAAO,CAAC,QAAQ,sBAAsB,CAAC,CAAC;AAClG,CAAC"}
|
|
@@ -10,6 +10,12 @@ export interface WriteArchiveInput {
|
|
|
10
10
|
*/
|
|
11
11
|
export declare function writeArchive(input: WriteArchiveInput): Promise<string>;
|
|
12
12
|
export declare function removeArchive(memoryId: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Read the manifest for an archived training, or `undefined` when the
|
|
15
|
+
* archive is absent or unreadable (e.g. it was pruned out of band). Keeps
|
|
16
|
+
* the archive-root layout owned here alongside `writeArchive`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readArchiveManifest(memoryId: string): Promise<TrainManifest | undefined>;
|
|
13
19
|
/**
|
|
14
20
|
* Walk the corpus folder and produce the manifest rows for the archive.
|
|
15
21
|
* Purely a provenance walker — no text extraction, no MIME dispatch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa5E;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AA+BD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBjF"}
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW9D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa5E;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAO9F;AA+BD;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgBjF"}
|
|
@@ -29,6 +29,20 @@ export async function writeArchive(input) {
|
|
|
29
29
|
export async function removeArchive(memoryId) {
|
|
30
30
|
await rm(archiveRootForMemoryId(memoryId), { recursive: true, force: true });
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Read the manifest for an archived training, or `undefined` when the
|
|
34
|
+
* archive is absent or unreadable (e.g. it was pruned out of band). Keeps
|
|
35
|
+
* the archive-root layout owned here alongside `writeArchive`.
|
|
36
|
+
*/
|
|
37
|
+
export async function readArchiveManifest(memoryId) {
|
|
38
|
+
try {
|
|
39
|
+
const raw = await readFile(join(archiveRootForMemoryId(memoryId), "manifest.json"), "utf8");
|
|
40
|
+
return JSON.parse(raw);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
32
46
|
/**
|
|
33
47
|
* Skip rules for the corpus walk. We omit dotfiles/dirs, version control
|
|
34
48
|
* and dependency caches, and the JSON handoff file the sub-agent uses to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/train/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tag scheme every `duet train` row carries, owned in one place so the
|
|
3
|
+
* create/replace path and the list/show/update/delete commands agree on it.
|
|
4
|
+
*
|
|
5
|
+
* Each trained observation is tagged with both `TRAIN_TAG` (marks the row as
|
|
6
|
+
* train-managed) and `trainSlugTag(slug)` (the per-corpus identity). The slug
|
|
7
|
+
* is the stable, user-facing handle: the CRUD commands resolve a slug to its
|
|
8
|
+
* row via these helpers rather than exposing the internal `mem_…` id.
|
|
9
|
+
*/
|
|
10
|
+
export declare const TRAIN_TAG = "train";
|
|
11
|
+
/** The per-corpus identity tag, e.g. `train:acme-research`. */
|
|
12
|
+
export declare function trainSlugTag(slug: string): string;
|
|
13
|
+
/** True when the observation is a `duet train` row. */
|
|
14
|
+
export declare function isTrainTagged(tags: readonly string[]): boolean;
|
|
15
|
+
/** Extract the slug from a train row's tags, or `undefined` if none is present. */
|
|
16
|
+
export declare function slugFromTags(tags: readonly string[]): string | undefined;
|
|
17
|
+
//# sourceMappingURL=tags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/train/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,UAAU,CAAC;AAIjC,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAE9D;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAExE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The tag scheme every `duet train` row carries, owned in one place so the
|
|
3
|
+
* create/replace path and the list/show/update/delete commands agree on it.
|
|
4
|
+
*
|
|
5
|
+
* Each trained observation is tagged with both `TRAIN_TAG` (marks the row as
|
|
6
|
+
* train-managed) and `trainSlugTag(slug)` (the per-corpus identity). The slug
|
|
7
|
+
* is the stable, user-facing handle: the CRUD commands resolve a slug to its
|
|
8
|
+
* row via these helpers rather than exposing the internal `mem_…` id.
|
|
9
|
+
*/
|
|
10
|
+
export const TRAIN_TAG = "train";
|
|
11
|
+
const TRAIN_SLUG_PREFIX = "train:";
|
|
12
|
+
/** The per-corpus identity tag, e.g. `train:acme-research`. */
|
|
13
|
+
export function trainSlugTag(slug) {
|
|
14
|
+
return `${TRAIN_SLUG_PREFIX}${slug}`;
|
|
15
|
+
}
|
|
16
|
+
/** True when the observation is a `duet train` row. */
|
|
17
|
+
export function isTrainTagged(tags) {
|
|
18
|
+
return tags.includes(TRAIN_TAG);
|
|
19
|
+
}
|
|
20
|
+
/** Extract the slug from a train row's tags, or `undefined` if none is present. */
|
|
21
|
+
export function slugFromTags(tags) {
|
|
22
|
+
return tags.find((tag) => tag.startsWith(TRAIN_SLUG_PREFIX))?.slice(TRAIN_SLUG_PREFIX.length);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=tags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/train/tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAC;AAEjC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,GAAG,iBAAiB,GAAG,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,aAAa,CAAC,IAAuB;IACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,YAAY,CAAC,IAAuB;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAChG,CAAC"}
|
|
@@ -14,6 +14,38 @@ export interface SynthesisResult {
|
|
|
14
14
|
/** Durable memory text inserted as one high-priority observation. */
|
|
15
15
|
observationContent: string;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* One training as surfaced by `duet train list` / `show`. The DB row is the
|
|
19
|
+
* source of truth for which trainings are live (replace-by-slug keeps one row
|
|
20
|
+
* per slug); the archive manifest enriches it with headline/model/provenance
|
|
21
|
+
* and may be absent if the archive was removed out of band.
|
|
22
|
+
*/
|
|
23
|
+
export interface TrainListEntry {
|
|
24
|
+
/** Slug parsed from the `train:<slug>` tag; the stable training identity. */
|
|
25
|
+
slug: string;
|
|
26
|
+
/** Observation row id; also the archive folder name under ~/.duet/train/. */
|
|
27
|
+
memoryId: string;
|
|
28
|
+
/** Unix ms the row was written; lists are sorted newest-first by this. */
|
|
29
|
+
createdAt: number;
|
|
30
|
+
/** YYYY-MM-DD the training was recorded. */
|
|
31
|
+
observedDate: string;
|
|
32
|
+
/** Headline from the archive manifest, when the archive is present. */
|
|
33
|
+
headline?: string;
|
|
34
|
+
/** Synthesis model id from the manifest, when present. */
|
|
35
|
+
model?: string;
|
|
36
|
+
/** Absolute corpus folder passed to `duet train`, from the manifest. */
|
|
37
|
+
sourceFolder?: string;
|
|
38
|
+
/** Number of archived source files, from the manifest. */
|
|
39
|
+
fileCount?: number;
|
|
40
|
+
/** False when the manifest could not be read (archive deleted/moved). */
|
|
41
|
+
hasArchive: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** A {@link TrainListEntry} plus the full synthesized observation text, as
|
|
44
|
+
* returned by a single-row lookup (`duet train show` / `update`). */
|
|
45
|
+
export interface TrainRecord extends TrainListEntry {
|
|
46
|
+
/** The durable memory text stored in the observation row. */
|
|
47
|
+
content: string;
|
|
48
|
+
}
|
|
17
49
|
export interface TrainManifest {
|
|
18
50
|
/** Matches the inserted observation row's id; also the archive folder name. */
|
|
19
51
|
memoryId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/train/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;CAClE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/train/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;sEACsE;AACtE,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;CAClE"}
|
|
@@ -50,8 +50,21 @@ export declare function calculateWireBytes(messages: AgentMessage[]): number;
|
|
|
50
50
|
export declare function calculateWireTokens(messages: AgentMessage[]): number;
|
|
51
51
|
/**
|
|
52
52
|
* Drop messages whose timestamp is at or before the eviction horizon, then
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* pick a provider-valid head for the surviving tail.
|
|
54
|
+
*
|
|
55
|
+
* Preferred anchor is the next real `user` turn: the cleanest head and the
|
|
56
|
+
* strongest context anchor. But a long autonomous run (a tool loop with no
|
|
57
|
+
* intervening user input) can leave a post-horizon tail with NO user turn
|
|
58
|
+
* at all. Skipping to a user message then would walk off the end and return
|
|
59
|
+
* an empty list — which starves the wire and lets the model loop forever,
|
|
60
|
+
* re-planning identically from durable memory every turn because it never
|
|
61
|
+
* sees its own recent work (see session_rUjMi_pUNzhB). When no user turn
|
|
62
|
+
* survives, fall back to keeping the recent tail anchored on the first
|
|
63
|
+
* non-orphan message: drop only leading `toolResult` messages, since a tool
|
|
64
|
+
* result whose matching tool call was evicted is the one head shape the
|
|
65
|
+
* provider rejects. The budget walk in {@link findEvictionHorizon} still
|
|
66
|
+
* bounds how much of that tail rides the wire, so this never reintroduces
|
|
67
|
+
* unbounded context growth — it only guarantees a non-empty, valid payload.
|
|
55
68
|
*/
|
|
56
69
|
export declare function applyEvictionHorizon(messages: AgentMessage[], horizon: number): AgentMessage[];
|
|
57
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-shaping.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/wire-shaping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAsC,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAU/C;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAEvD;AA+DD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAInE;AA+BD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAIpE;AAED
|
|
1
|
+
{"version":3,"file":"wire-shaping.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/wire-shaping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,QAAsC,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAU/C;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAEvD;AA+DD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAInE;AA+BD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAIpE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAwB9F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,OAAO,GACtD,MAAM,CASR"}
|
|
@@ -149,8 +149,21 @@ export function calculateWireTokens(messages) {
|
|
|
149
149
|
}
|
|
150
150
|
/**
|
|
151
151
|
* Drop messages whose timestamp is at or before the eviction horizon, then
|
|
152
|
-
*
|
|
153
|
-
*
|
|
152
|
+
* pick a provider-valid head for the surviving tail.
|
|
153
|
+
*
|
|
154
|
+
* Preferred anchor is the next real `user` turn: the cleanest head and the
|
|
155
|
+
* strongest context anchor. But a long autonomous run (a tool loop with no
|
|
156
|
+
* intervening user input) can leave a post-horizon tail with NO user turn
|
|
157
|
+
* at all. Skipping to a user message then would walk off the end and return
|
|
158
|
+
* an empty list — which starves the wire and lets the model loop forever,
|
|
159
|
+
* re-planning identically from durable memory every turn because it never
|
|
160
|
+
* sees its own recent work (see session_rUjMi_pUNzhB). When no user turn
|
|
161
|
+
* survives, fall back to keeping the recent tail anchored on the first
|
|
162
|
+
* non-orphan message: drop only leading `toolResult` messages, since a tool
|
|
163
|
+
* result whose matching tool call was evicted is the one head shape the
|
|
164
|
+
* provider rejects. The budget walk in {@link findEvictionHorizon} still
|
|
165
|
+
* bounds how much of that tail rides the wire, so this never reintroduces
|
|
166
|
+
* unbounded context growth — it only guarantees a non-empty, valid payload.
|
|
154
167
|
*/
|
|
155
168
|
export function applyEvictionHorizon(messages, horizon) {
|
|
156
169
|
if (horizon <= 0)
|
|
@@ -159,12 +172,25 @@ export function applyEvictionHorizon(messages, horizon) {
|
|
|
159
172
|
while (firstKept < messages.length && messageTimestamp(messages[firstKept]) <= horizon) {
|
|
160
173
|
firstKept += 1;
|
|
161
174
|
}
|
|
162
|
-
while (firstKept < messages.length && messages[firstKept].role !== "user") {
|
|
163
|
-
firstKept += 1;
|
|
164
|
-
}
|
|
165
175
|
if (firstKept === 0)
|
|
166
176
|
return messages;
|
|
167
|
-
|
|
177
|
+
let userAnchor = firstKept;
|
|
178
|
+
while (userAnchor < messages.length && messages[userAnchor].role !== "user") {
|
|
179
|
+
userAnchor += 1;
|
|
180
|
+
}
|
|
181
|
+
if (userAnchor < messages.length)
|
|
182
|
+
return messages.slice(userAnchor);
|
|
183
|
+
let nonOrphan = firstKept;
|
|
184
|
+
while (nonOrphan < messages.length && messages[nonOrphan].role === "toolResult") {
|
|
185
|
+
nonOrphan += 1;
|
|
186
|
+
}
|
|
187
|
+
// Degenerate tail of nothing but orphan tool results: empty-after-skip and
|
|
188
|
+
// provider-invalid both lose, so keep the raw post-horizon slice — a
|
|
189
|
+
// non-empty payload is the lesser evil and effectively never happens in
|
|
190
|
+
// practice (tool results sit adjacent to the call that produced them).
|
|
191
|
+
if (nonOrphan >= messages.length)
|
|
192
|
+
return messages.slice(firstKept);
|
|
193
|
+
return messages.slice(nonOrphan);
|
|
168
194
|
}
|
|
169
195
|
/**
|
|
170
196
|
* Walk oldest-first, advance the horizon past each message in turn, and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-shaping.js","sourceRoot":"","sources":["../../../src/turn-runner/wire-shaping.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wire-shaping.js","sourceRoot":"","sources":["../../../src/turn-runner/wire-shaping.ts"],"names":[],"mappings":"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"}
|