@ccdd/project 6.5.0 → 6.6.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 -1
- package/dist/monitor-ui/assets/GraphView-CWg0z0L3.js +27 -0
- package/dist/monitor-ui/assets/{ValidationView-qhnNfj00.js → ValidationView-Dq6NgwD-.js} +1 -1
- package/dist/monitor-ui/assets/{elk-api-D1k8qsLm.js → elk-api-BIhtWFHB.js} +1 -1
- package/dist/monitor-ui/assets/{elk.bundled-DgeQWR_s.js → elk.bundled-Cf9Rsjxd.js} +1 -1
- package/dist/monitor-ui/assets/{index-CRKnM9pk.css → index-BIkHFM-U.css} +1 -1
- package/dist/monitor-ui/assets/{index-beXagC6U.js → index-Dokf3fef.js} +2 -2
- package/dist/monitor-ui/index.html +2 -2
- package/dist/src/artifact-scope.js +6 -0
- package/dist/src/artifact-scope.js.map +1 -1
- package/dist/src/broker/config.d.ts +1 -0
- package/dist/src/broker/config.js +189 -19
- package/dist/src/broker/config.js.map +1 -1
- package/dist/src/broker/graph.d.ts +2 -0
- package/dist/src/broker/graph.js +1 -1
- package/dist/src/broker/graph.js.map +1 -1
- package/dist/src/broker/index.js +19 -1
- package/dist/src/broker/index.js.map +1 -1
- package/dist/src/broker/storage.js +14 -1
- package/dist/src/broker/storage.js.map +1 -1
- package/dist/src/contracts.d.ts +2 -0
- package/dist/src/definitions.d.ts +33 -1
- package/dist/src/executors/index.js +3 -3
- package/dist/src/executors/index.js.map +1 -1
- package/dist/src/executors/pi.js +15 -13
- package/dist/src/executors/pi.js.map +1 -1
- package/dist/src/executors/result-check.d.ts +4 -2
- package/dist/src/executors/result-check.js +3 -2
- package/dist/src/executors/result-check.js.map +1 -1
- package/dist/src/monitor/ui/family-groups.d.ts +17 -0
- package/dist/src/monitor/ui/family-groups.js +46 -0
- package/dist/src/monitor/ui/family-groups.js.map +1 -0
- package/dist/src/project/cli.js +9 -2
- package/dist/src/project/cli.js.map +1 -1
- package/dist/src/project/identity.js +62 -10
- package/dist/src/project/identity.js.map +1 -1
- package/dist/src/project/owner-identity.d.ts +6 -3
- package/dist/src/project/owner-identity.js +6 -2
- package/dist/src/project/owner-identity.js.map +1 -1
- package/dist/src/project/query.d.ts +2 -0
- package/dist/src/project/query.js +14 -4
- package/dist/src/project/query.js.map +1 -1
- package/dist/src/project/store.d.ts +2 -0
- package/dist/src/project/store.js +12 -0
- package/dist/src/project/store.js.map +1 -1
- package/dist/src/tools/runner.js +1 -0
- package/dist/src/tools/runner.js.map +1 -1
- package/dist/src/tools/schema.js +10 -1
- package/dist/src/tools/schema.js.map +1 -1
- package/package.json +3 -3
- package/dist/monitor-ui/assets/GraphView-Dvqux-3b.js +0 -27
|
@@ -10,6 +10,10 @@ import { instructionReferences } from '../artifacts/instruction.js';
|
|
|
10
10
|
export const identifier = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
|
|
11
11
|
export const criticIdentifier = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}\/[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
|
|
12
12
|
const hash = (value) => createHash('sha256').update(value).digest('hex');
|
|
13
|
+
const sorted = (value) => Array.isArray(value) ? value.map(sorted)
|
|
14
|
+
: object(value) ? Object.fromEntries(Object.keys(value).sort().map(key => [key, sorted(value[key])])) : value;
|
|
15
|
+
export const MAX_FAMILY_INSTANCES = 10000;
|
|
16
|
+
const parsedLists = new Map();
|
|
13
17
|
const ownMap = () => Object.create(null);
|
|
14
18
|
export function validateRelativePath(value) { projectInputPath(value); return value; }
|
|
15
19
|
function fields(value, allowed, label) {
|
|
@@ -158,18 +162,154 @@ function manifest(value) {
|
|
|
158
162
|
...(value.basis === undefined ? {} : { basis: value.basis }), ...(value.stale === undefined ? {} : { stale: structuredClone(value.stale) }),
|
|
159
163
|
...(value.envRequirements === undefined ? {} : { envRequirements: environmentRequirements(value.envRequirements) }) };
|
|
160
164
|
}
|
|
165
|
+
/** Resolve an RFC 6901 pointer inside one instance's params. */
|
|
166
|
+
function parameter(params, pointer, instance) {
|
|
167
|
+
if (pointer === '')
|
|
168
|
+
return params;
|
|
169
|
+
if (!pointer.startsWith('/') || /~(?![01])/.test(pointer))
|
|
170
|
+
throw new Error(`$param must be a JSON Pointer such as "/schema", not ${JSON.stringify(pointer)}.`);
|
|
171
|
+
let current = params;
|
|
172
|
+
for (const token of pointer.slice(1).split('/').map(part => part.replace(/~1/g, '/').replace(/~0/g, '~'))) {
|
|
173
|
+
if (Array.isArray(current) && /^(?:0|[1-9][0-9]*)$/.test(token) && Number(token) < current.length)
|
|
174
|
+
current = current[Number(token)];
|
|
175
|
+
else if (object(current) && Object.hasOwn(current, token))
|
|
176
|
+
current = current[token];
|
|
177
|
+
else
|
|
178
|
+
throw new Error(`Instance ${instance} has no parameter at ${pointer}.`);
|
|
179
|
+
}
|
|
180
|
+
return current;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Replace every {"$param": pointer} value with that parameter. Nothing is evaluated. The result may
|
|
184
|
+
* share parameter values; manifest validation copies every declaration it keeps.
|
|
185
|
+
*/
|
|
186
|
+
function substitute(value, params, instance) {
|
|
187
|
+
if (Array.isArray(value))
|
|
188
|
+
return value.map(item => substitute(item, params, instance));
|
|
189
|
+
if (!object(value))
|
|
190
|
+
return value;
|
|
191
|
+
if (Object.hasOwn(value, '$param')) {
|
|
192
|
+
if (Object.keys(value).length !== 1 || typeof value.$param !== 'string')
|
|
193
|
+
throw new Error('A parameter reference must be exactly {"$param": "/json/pointer"}.');
|
|
194
|
+
return parameter(params, value.$param, instance);
|
|
195
|
+
}
|
|
196
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, substitute(item, params, instance)]));
|
|
197
|
+
}
|
|
198
|
+
const parameterized = (value) => Array.isArray(value) ? value.some(parameterized)
|
|
199
|
+
: object(value) && (Object.hasOwn(value, '$param') || Object.values(value).some(parameterized));
|
|
200
|
+
/**
|
|
201
|
+
* Expand a family declaration into its statically listed instance Artifacts. `expand` limits
|
|
202
|
+
* substitution and validation to recorded instances when a scope is reconnected.
|
|
203
|
+
*/
|
|
204
|
+
async function familyInstances(root, relative, value, expand = () => true) {
|
|
205
|
+
const { family, ...template } = value;
|
|
206
|
+
if (!relative)
|
|
207
|
+
throw new Error('An Artifact family cannot be the workspace root; place it in a subfolder.');
|
|
208
|
+
if (typeof template.name !== 'string' || !identifier.test(template.name))
|
|
209
|
+
throw new Error('Artifact family name must be a safe identifier.');
|
|
210
|
+
if (template.reviewPolicy !== undefined)
|
|
211
|
+
throw new Error('reviewPolicy belongs only to the repository root ccdd.json.');
|
|
212
|
+
if (!object(family))
|
|
213
|
+
throw new Error('family must be an object.');
|
|
214
|
+
fields(family, ['instances', 'params', 'variants'], 'family');
|
|
215
|
+
if (family.params !== undefined && !object(family.params))
|
|
216
|
+
throw new Error('family.params must be an object of default parameters.');
|
|
217
|
+
if (family.variants !== undefined && (!object(family.variants) || Object.entries(family.variants).some(([name, params]) => !identifier.test(name) || !object(params))))
|
|
218
|
+
throw new Error('family.variants must map safe names to parameter objects.');
|
|
219
|
+
const defaults = (family.params ?? {}), variants = (family.variants ?? {});
|
|
220
|
+
let instances = family.instances, file, list;
|
|
221
|
+
if (typeof instances === 'string') {
|
|
222
|
+
file = instances;
|
|
223
|
+
try {
|
|
224
|
+
projectInputPath(file);
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
throw new Error('family.instances must be an owner-relative JSON file or an inline object.');
|
|
228
|
+
}
|
|
229
|
+
if (file === 'ccdd.json')
|
|
230
|
+
throw new Error('family.instances must name a file other than ccdd.json.');
|
|
231
|
+
const location = await scopedPath(root, path.posix.join(relative, file));
|
|
232
|
+
if (!(await lstat(location).catch(() => null))?.isFile())
|
|
233
|
+
throw new Error(`Instance list ${file} must be a regular file.`);
|
|
234
|
+
const text = await readFile(location, 'utf8');
|
|
235
|
+
list = { path: path.posix.join(relative, file), hash: hash(text) };
|
|
236
|
+
instances = parsedLists.get(list.hash);
|
|
237
|
+
if (instances === undefined) {
|
|
238
|
+
try {
|
|
239
|
+
instances = JSON.parse(text);
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
throw new Error(`Instance list ${file} must contain JSON.`);
|
|
243
|
+
}
|
|
244
|
+
// Repeated reconnections in one process reuse the parsed list; entries are never mutated.
|
|
245
|
+
parsedLists.set(list.hash, instances);
|
|
246
|
+
if (parsedLists.size > 8)
|
|
247
|
+
parsedLists.delete(parsedLists.keys().next().value);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
if (!object(instances) || !Object.keys(instances).length || Object.keys(instances).length > MAX_FAMILY_INSTANCES)
|
|
251
|
+
throw new Error(`family.instances must list 1–${MAX_FAMILY_INSTANCES} instances by Artifact name.`);
|
|
252
|
+
const entries = instances, names = Object.keys(entries).sort();
|
|
253
|
+
// A parent addresses instances as <family folder>/<name>; a physical entry there would be shadowed.
|
|
254
|
+
const physical = new Set(await readdir(path.join(root, relative)));
|
|
255
|
+
const members = await Promise.all(names.map(async (name) => {
|
|
256
|
+
const entry = entries[name];
|
|
257
|
+
if (!identifier.test(name))
|
|
258
|
+
throw new Error(`Instance name ${JSON.stringify(name)} must be a safe Artifact identifier.`);
|
|
259
|
+
if (name === template.name)
|
|
260
|
+
throw new Error(`Instance ${name} cannot reuse its family name.`);
|
|
261
|
+
if (physical.has(name))
|
|
262
|
+
throw new Error(`Instance ${name} conflicts with a physical entry in its family folder.`);
|
|
263
|
+
if (!expand(name))
|
|
264
|
+
return { name };
|
|
265
|
+
if (!object(entry))
|
|
266
|
+
throw new Error(`Instance ${name} must be an object with optional variant, params and material.`);
|
|
267
|
+
fields(entry, ['variant', 'params', 'material'], 'instance');
|
|
268
|
+
if (entry.params !== undefined && !object(entry.params))
|
|
269
|
+
throw new Error(`Instance ${name} params must be an object.`);
|
|
270
|
+
if (entry.variant !== undefined && (typeof entry.variant !== 'string' || !Object.hasOwn(variants, entry.variant)))
|
|
271
|
+
throw new Error(`Instance ${name} names an unknown variant.`);
|
|
272
|
+
const material = entry.material ?? [];
|
|
273
|
+
if (!Array.isArray(material) || material.length > 64 || new Set(material).size !== material.length)
|
|
274
|
+
throw new Error(`Instance ${name} material must contain at most 64 unique owner-relative paths.`);
|
|
275
|
+
for (const item of material) {
|
|
276
|
+
try {
|
|
277
|
+
projectInputPath(item);
|
|
278
|
+
}
|
|
279
|
+
catch {
|
|
280
|
+
throw new Error(`Instance ${name} material must contain owner-relative paths.`);
|
|
281
|
+
}
|
|
282
|
+
if (item === 'ccdd.json' || item === file)
|
|
283
|
+
throw new Error(`Instance ${name} material cannot claim the family declaration.`);
|
|
284
|
+
// Like identity inputs, listed material must exist inside the folder without symlinks.
|
|
285
|
+
await scopedPath(root, path.posix.join(relative, item)).catch(() => { throw new Error(`Instance ${name} material ${item} must exist inside its family folder without symlinks.`); });
|
|
286
|
+
}
|
|
287
|
+
// A shallow merge: an instance or variant replaces whole top-level parameters.
|
|
288
|
+
const params = { ...defaults, ...(entry.variant === undefined ? {} : variants[entry.variant]), ...(entry.params ?? {}) }, own = [...material].sort();
|
|
289
|
+
let declared;
|
|
290
|
+
try {
|
|
291
|
+
declared = manifest({ ...template, name, ...(template.views === undefined ? {} : { views: substitute(template.views, params, name) }),
|
|
292
|
+
...(template.critics === undefined ? {} : { critics: substitute(template.critics, params, name) }) });
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
throw new Error(`instance ${name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
296
|
+
}
|
|
297
|
+
return { name, manifest: declared, family: { name: template.name, ...(file === undefined ? {} : { instances: file }), material: own, entry: hash(JSON.stringify(sorted({ params, material: own }))) } };
|
|
298
|
+
}));
|
|
299
|
+
return { members, ...(list ? { list } : {}) };
|
|
300
|
+
}
|
|
161
301
|
/** Discover static per-folder declarations. No imports, generators, tools, or Providers run here. */
|
|
162
302
|
export async function readWorkspaceConfig(repoPath, signal) {
|
|
163
303
|
return readConfig(repoPath, signal);
|
|
164
304
|
}
|
|
165
305
|
/** Reconnect only recorded scope folders; discovery still detects new nearest children. */
|
|
166
306
|
export async function readArtifactConfig(repoPath, artifacts, criticId, signal) {
|
|
167
|
-
return readConfig(repoPath, signal, { paths: Object.values(artifacts).map(artifact => artifact.path), criticId });
|
|
307
|
+
return readConfig(repoPath, signal, { paths: Object.values(artifacts).map(artifact => artifact.path), names: new Set(Object.keys(artifacts)), criticId });
|
|
168
308
|
}
|
|
169
309
|
async function readConfig(repoPath, signal, scope) {
|
|
170
310
|
const root = await realpath(repoPath), artifacts = ownMap(), declarations = [];
|
|
171
|
-
const localCritics = ownMap();
|
|
172
|
-
const walk = async (relative, parent) => {
|
|
311
|
+
const localCritics = ownMap(), families = ownMap();
|
|
312
|
+
const walk = async (relative, parent, family) => {
|
|
173
313
|
signal?.throwIfAborted();
|
|
174
314
|
const absolute = path.join(root, relative), entries = await readdir(absolute, { withFileTypes: true });
|
|
175
315
|
entries.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
|
|
@@ -178,31 +318,57 @@ async function readConfig(repoPath, signal, scope) {
|
|
|
178
318
|
if (marker) {
|
|
179
319
|
if (!marker.isFile())
|
|
180
320
|
throw new Error(`ccdd.json must be a regular file: ${relative || '.'}`);
|
|
181
|
-
const file = path.posix.join(relative, 'ccdd.json')
|
|
182
|
-
|
|
321
|
+
const file = path.posix.join(relative, 'ccdd.json');
|
|
322
|
+
if (family !== undefined)
|
|
323
|
+
throw new Error(`${file}: Artifact family ${family} cannot contain nested ccdd.json markers.`);
|
|
324
|
+
const text = await readFile(path.join(root, file), 'utf8');
|
|
325
|
+
let members, list;
|
|
183
326
|
try {
|
|
184
|
-
|
|
327
|
+
const value = JSON.parse(text);
|
|
328
|
+
// Reconnecting a recorded scope expands only its recorded instances; a new instance still changes its parent.
|
|
329
|
+
if (object(value) && value.family !== undefined) {
|
|
330
|
+
({ members, list } = await familyInstances(root, relative, value, scope ? name => scope.names.has(name) : undefined));
|
|
331
|
+
family = value.name;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
if (object(value) && (parameterized(value.views) || parameterized(value.critics)))
|
|
335
|
+
throw new Error('$param references are allowed only in an Artifact family declaration.');
|
|
336
|
+
const declared = manifest(value);
|
|
337
|
+
members = [{ name: declared.name, manifest: declared }];
|
|
338
|
+
}
|
|
185
339
|
}
|
|
186
340
|
catch (error) {
|
|
187
341
|
throw new Error(`${file}: ${error instanceof Error ? error.message : String(error)}`);
|
|
188
342
|
}
|
|
189
|
-
if (
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
artifacts[declared.name] = { ...definition, path: relative, views: definition.views ?? {}, mounts: definition.mounts ?? {}, children: ownMap() };
|
|
195
|
-
localCritics[declared.name] = critics;
|
|
343
|
+
if (family !== undefined) {
|
|
344
|
+
if (Object.hasOwn(artifacts, family) || Object.hasOwn(families, family))
|
|
345
|
+
throw new Error(`Duplicate Artifact name: ${family}`);
|
|
346
|
+
families[family] = relative;
|
|
347
|
+
}
|
|
196
348
|
declarations.push({ path: file, hash: hash(text) });
|
|
197
|
-
if (
|
|
198
|
-
|
|
199
|
-
|
|
349
|
+
if (list)
|
|
350
|
+
declarations.push(list);
|
|
351
|
+
for (const { name, manifest: declared, family: membership } of members) {
|
|
352
|
+
if (Object.hasOwn(artifacts, name) || Object.hasOwn(families, name))
|
|
353
|
+
throw new Error(`Duplicate Artifact name: ${name}`);
|
|
354
|
+
if (relative && declared?.reviewPolicy !== undefined)
|
|
355
|
+
throw new Error('reviewPolicy belongs only to the repository root ccdd.json.');
|
|
356
|
+
// One family folder holds every instance; a parent sees each instance as a logical child below that folder.
|
|
357
|
+
if (parent !== undefined) {
|
|
358
|
+
const childPath = path.posix.relative(artifacts[parent].path || '.', relative);
|
|
359
|
+
artifacts[parent].children[family === undefined ? childPath : path.posix.join(childPath, name)] = name;
|
|
360
|
+
}
|
|
361
|
+
if (!declared)
|
|
362
|
+
continue;
|
|
363
|
+
const { critics = [], ...definition } = declared;
|
|
364
|
+
artifacts[declared.name] = { ...definition, path: relative, views: definition.views ?? {}, mounts: definition.mounts ?? {}, children: ownMap(), ...(membership ? { family: membership } : {}) };
|
|
365
|
+
localCritics[declared.name] = critics;
|
|
200
366
|
}
|
|
201
|
-
owner =
|
|
367
|
+
owner = family === undefined ? members[0].name : parent;
|
|
202
368
|
}
|
|
203
369
|
for (const entry of entries)
|
|
204
370
|
if (entry.isDirectory() && !['.git', 'node_modules'].includes(entry.name))
|
|
205
|
-
await walk(path.posix.join(relative, entry.name), owner);
|
|
371
|
+
await walk(path.posix.join(relative, entry.name), owner, family);
|
|
206
372
|
};
|
|
207
373
|
if (scope) {
|
|
208
374
|
const roots = [...new Set(scope.paths)].sort();
|
|
@@ -224,9 +390,11 @@ async function readConfig(repoPath, signal, scope) {
|
|
|
224
390
|
for (const [name, source] of Object.entries(artifact.children))
|
|
225
391
|
relations.push({ source, target: id, kind: 'child', name });
|
|
226
392
|
for (const [alias, source] of Object.entries(artifact.mounts)) {
|
|
393
|
+
if (Object.hasOwn(families, source))
|
|
394
|
+
throw new Error(`Mount target ${source} in ${id} is an Artifact family; mount one of its instances.`);
|
|
227
395
|
if (!Object.hasOwn(artifacts, source))
|
|
228
396
|
throw new Error(`Unknown mount target ${source} in ${id}.`);
|
|
229
|
-
if (alias === id && source !== id || Object.hasOwn(artifacts, alias) && alias !== source)
|
|
397
|
+
if (alias === id && source !== id || (Object.hasOwn(artifacts, alias) || Object.hasOwn(families, alias)) && alias !== source)
|
|
230
398
|
throw new Error(`Ambiguous mount alias ${alias} in ${id}.`);
|
|
231
399
|
if (await lstat(path.join(root, artifact.path, alias)).catch(error => { if (error.code === 'ENOENT')
|
|
232
400
|
return null; throw error; }))
|
|
@@ -239,6 +407,8 @@ async function readConfig(repoPath, signal, scope) {
|
|
|
239
407
|
const qualifiedId = `${id}/${declared.id}`, references = ownMap();
|
|
240
408
|
for (const name of instructionReferences(declared.payload.instruction)) {
|
|
241
409
|
const resolved = Object.hasOwn(artifact.mounts, name) ? artifact.mounts[name] : name;
|
|
410
|
+
if (Object.hasOwn(families, resolved))
|
|
411
|
+
throw new Error(`Reference {${name}} in ${qualifiedId} names an Artifact family; reference one of its instances.`);
|
|
242
412
|
if (!Object.hasOwn(artifacts, resolved))
|
|
243
413
|
throw new Error(`Unknown Artifact reference {${name}} in ${qualifiedId}. Escape literal braces with a backslash.`);
|
|
244
414
|
references[name] = resolved;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/broker/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/broker/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,8 @@ export interface GraphArtifactState {
|
|
|
28
28
|
status: ArtifactStatus;
|
|
29
29
|
mounts: Record<string, string>;
|
|
30
30
|
children: Record<string, string>;
|
|
31
|
+
/** The family whose shared declaration defines this instance. */
|
|
32
|
+
family?: string;
|
|
31
33
|
criticIds: string[];
|
|
32
34
|
passed: number;
|
|
33
35
|
total: number;
|
package/dist/src/broker/graph.js
CHANGED
|
@@ -75,7 +75,7 @@ export function projectGraph(graph, requests) {
|
|
|
75
75
|
const own = critics.filter(critic => critic.target === id), passed = own.filter(critic => critic.status === 'GREEN').length;
|
|
76
76
|
const status = artifact.basis ? 'BASIS' : own.length && passed === own.length ? 'GREEN' :
|
|
77
77
|
['ERROR', 'RED', 'RUNNING', 'WAITING_HUMAN', 'QUEUED'].find(candidate => own.some(critic => critic.status === candidate)) ?? 'UNREVIEWED';
|
|
78
|
-
return { id, path: artifact.path, children: artifact.children, mounts: artifact.mounts, basis: artifact.basis === true, status,
|
|
78
|
+
return { id, path: artifact.path, children: artifact.children, mounts: artifact.mounts, basis: artifact.basis === true, status, ...(artifact.family ? { family: artifact.family.name } : {}),
|
|
79
79
|
criticIds: own.map(critic => critic.id), passed, total: own.length, included: own.filter(critic => critic.requestId !== null).length };
|
|
80
80
|
});
|
|
81
81
|
const components = stronglyConnectedComponents(Object.keys(graph.artifacts), graph.relations), componentOf = new Map(components.flatMap((members, index) => members.map(id => [id, index])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/broker/graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/broker/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/src/broker/index.js
CHANGED
|
@@ -235,6 +235,18 @@ export function createBroker({ detail, repoPath, stateDir, repoId = 'demo', coal
|
|
|
235
235
|
}
|
|
236
236
|
catch { }
|
|
237
237
|
} };
|
|
238
|
+
/**
|
|
239
|
+
* Usage of one attempt, keyed like its tool-call record by the lease token that becomes the request's
|
|
240
|
+
* attemptId, independent of the latest-500 event window. Callers write it in the same transaction as
|
|
241
|
+
* its executor.usage event, so the sum always equals the stored events.
|
|
242
|
+
*/
|
|
243
|
+
const addUsage = (requestId, attemptId, usage) => {
|
|
244
|
+
const row = db.prepare('SELECT data FROM request_usage WHERE request_id=? AND attempt_id=?').get(requestId, attemptId);
|
|
245
|
+
const total = row ? JSON.parse(String(row.data)) : {};
|
|
246
|
+
for (const [key, count] of Object.entries(usage))
|
|
247
|
+
total[key] = (total[key] ?? 0) + count;
|
|
248
|
+
db.prepare('INSERT INTO request_usage(request_id,attempt_id,data) VALUES (?,?,?) ON CONFLICT(request_id,attempt_id) DO UPDATE SET data=excluded.data').run(requestId, attemptId, JSON.stringify(total));
|
|
249
|
+
};
|
|
238
250
|
const humanClaims = createHumanClaims({ transaction, read: requestData, save: saveRequest, changed,
|
|
239
251
|
event: (request, type, message) => appendEvent(request.runId, request.id, type, message),
|
|
240
252
|
assertWaiting: request => {
|
|
@@ -472,7 +484,12 @@ export function createBroker({ detail, repoPath, stateDir, repoId = 'demo', coal
|
|
|
472
484
|
}
|
|
473
485
|
if (Array.isArray(event.tools))
|
|
474
486
|
safe.tools = event.tools.slice(0, 32).map(tool => typeof tool === 'string' ? tool : tool?.name).filter(value => typeof value === 'string');
|
|
475
|
-
|
|
487
|
+
const message = event.type === 'executor.telemetry.failed' ? 'Some optional execution diagnostics could not be recorded.' : String(event.message ?? event.type).slice(0, 2000);
|
|
488
|
+
// A usage event and its attempt sum commit together or not at all.
|
|
489
|
+
if (event.type === 'executor.usage')
|
|
490
|
+
transaction(() => { appendEvent(runId, requestId, event.type, message, safe); addUsage(requestId, lease.token, safe.usage); });
|
|
491
|
+
else
|
|
492
|
+
appendEvent(runId, requestId, event.type, message, safe);
|
|
476
493
|
if (event.type === 'artifact.tool.called')
|
|
477
494
|
recordToolCall(safe, event);
|
|
478
495
|
changed();
|
|
@@ -983,6 +1000,7 @@ export function createBroker({ detail, repoPath, stateDir, repoId = 'demo', coal
|
|
|
983
1000
|
saveHeader(request);
|
|
984
1001
|
// The new attempt starts without a record; the failed one is no longer shown.
|
|
985
1002
|
db.prepare('DELETE FROM tool_call_records WHERE request_id=?').run(request.id);
|
|
1003
|
+
db.prepare('DELETE FROM request_usage WHERE request_id=?').run(request.id);
|
|
986
1004
|
appendEvent(run.id, request.id, 'request.retried', 'Retry requested against the same immutable input.');
|
|
987
1005
|
});
|
|
988
1006
|
changed();
|