@graphrefly/graphrefly 0.33.0 → 0.34.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/dist/chunk-3Y4BXFFR.js +1 -0
- package/dist/chunk-65WWQ5CB.js +43 -0
- package/dist/chunk-A3GDELMY.js +61 -0
- package/dist/chunk-KN2UMFT6.js +5 -0
- package/dist/{index--BTb6HUO.d.ts → index-3L3RC3VJ.d.ts} +250 -4
- package/dist/{index-C_cXlbu0.d.cts → index-CQtnGFrZ.d.cts} +250 -4
- package/dist/{index-DDf8PoPO.d.ts → index-CbCNoogR.d.ts} +71 -16
- package/dist/{index-Dgcd59CJ.d.cts → index-IxinNgAH.d.cts} +71 -16
- package/dist/index.cjs +57 -57
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/patterns/ai/browser.cjs +5 -5
- package/dist/patterns/ai/browser.js +1 -1
- package/dist/patterns/ai/index.cjs +19 -19
- package/dist/patterns/ai/index.d.cts +1 -1
- package/dist/patterns/ai/index.d.ts +1 -1
- package/dist/patterns/ai/index.js +1 -1
- package/dist/patterns/harness/index.cjs +10 -10
- package/dist/patterns/harness/index.d.cts +3 -3
- package/dist/patterns/harness/index.d.ts +3 -3
- package/dist/patterns/harness/index.js +1 -1
- package/dist/patterns/orchestration/index.cjs +7 -7
- package/dist/patterns/orchestration/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-DUK7LTJO.js +0 -43
- package/dist/chunk-HIJ2RKVP.js +0 -1
- package/dist/chunk-O2WY22L7.js +0 -5
- package/dist/chunk-Z4GXBOWO.js +0 -61
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { NodeInput } from './extra/sources.js';
|
|
1
2
|
import { a as Node } from './node-8qx0kgYt.js';
|
|
2
|
-
import { T as TopicGraph, M as MessagingHubGraph } from './index-Bi4ZP6Hc.js';
|
|
3
3
|
import { L as LLMAdapter } from './types-B2LfBvNc.js';
|
|
4
|
+
import { T as TopicGraph, M as MessagingHubGraph } from './index-Bi4ZP6Hc.js';
|
|
4
5
|
import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-BUtCR0k6.js';
|
|
5
6
|
import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-BROUZPG9.js';
|
|
6
7
|
import { G as GateController } from './index-HvJ90_tX.js';
|
|
@@ -349,6 +350,226 @@ interface HarnessLoopOptions<A = unknown> {
|
|
|
349
350
|
retainedLimit?: number;
|
|
350
351
|
}
|
|
351
352
|
|
|
353
|
+
/**
|
|
354
|
+
* actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
|
|
355
|
+
*
|
|
356
|
+
* `refineExecutor` covers the artifact-typed case (refine a candidate
|
|
357
|
+
* `T` against an evaluator); `actuatorExecutor` covers the side-effecting
|
|
358
|
+
* case (write a catalog entry, mutate a template registry, edit a doc on
|
|
359
|
+
* disk). The user's `apply` callback owns the side effect; the executor
|
|
360
|
+
* wraps it in the per-item lifecycle that makes the four
|
|
361
|
+
* {@link HarnessExecutor} contract rules structurally unreachable:
|
|
362
|
+
*
|
|
363
|
+
* 1. **One DATA per actuation.** The inner producer captures the first
|
|
364
|
+
* DATA from the bridged `apply` result, emits a single
|
|
365
|
+
* `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
|
|
366
|
+
* completes. Subsequent inner DATAs are ignored.
|
|
367
|
+
* 2. **Cancel-on-supersede.** A new triaged item supersedes via
|
|
368
|
+
* `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
|
|
369
|
+
* propagates into `apply`'s `signal` (and through `fromAny`'s
|
|
370
|
+
* internal cancellation hooks) so signal-aware actuators stop
|
|
371
|
+
* in-flight work instead of double-writing.
|
|
372
|
+
* 3. **Item via deps, not closure mirror.** The triaged item is captured
|
|
373
|
+
* in the `switchMap` callback's lexical scope, not mirrored to a
|
|
374
|
+
* side-state node — same shape as `refineExecutor`.
|
|
375
|
+
* 4. **Fires on result, not input.** The producer emits exactly when
|
|
376
|
+
* `apply`'s bridged node settles (or fails). Input-arrival waves
|
|
377
|
+
* never produce an `ExecuteOutput`.
|
|
378
|
+
*
|
|
379
|
+
* **What `apply` may return.** Anything `fromAny` accepts: a
|
|
380
|
+
* `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
|
|
381
|
+
* or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
|
|
382
|
+
* `fetch`, `db.execute`); reactive composition through `Node<R>` is the
|
|
383
|
+
* escape hatch when the actuator itself wants to surface intermediate
|
|
384
|
+
* progress before settling.
|
|
385
|
+
*
|
|
386
|
+
* **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
|
|
387
|
+
* the actuation record; an `evalVerifier<R>` whose `extractArtifact`
|
|
388
|
+
* returns the record (or a transform of it — typically the post-apply
|
|
389
|
+
* world state needed by the evaluator) closes the EXECUTE → VERIFY loop
|
|
390
|
+
* with consistent typing end-to-end.
|
|
391
|
+
*
|
|
392
|
+
* @module
|
|
393
|
+
*/
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
|
|
397
|
+
* raw `R` for synchronous side effects, so callers can write the most
|
|
398
|
+
* direct shape for their case (Promise for async I/O, raw record for
|
|
399
|
+
* pure in-memory mutation).
|
|
400
|
+
*/
|
|
401
|
+
type ActuatorResult<R> = NodeInput<R>;
|
|
402
|
+
/** Configuration for {@link actuatorExecutor}. */
|
|
403
|
+
interface ActuatorExecutorConfig<R> {
|
|
404
|
+
/**
|
|
405
|
+
* Apply the side effect for this triaged item. Receives the abort
|
|
406
|
+
* signal — actuators that own real I/O should thread `signal` into
|
|
407
|
+
* `fetch`, `fs.writeFile`, child-process kills, etc. so that
|
|
408
|
+
* `switchMap` supersede actually cancels in-flight work.
|
|
409
|
+
*
|
|
410
|
+
* The first DATA emitted by the bridged result wins; later DATAs are
|
|
411
|
+
* discarded. ERROR (or a synchronous throw) is mapped via `onError`.
|
|
412
|
+
*/
|
|
413
|
+
apply: (item: TriagedItem, opts: {
|
|
414
|
+
signal: AbortSignal;
|
|
415
|
+
}) => ActuatorResult<R>;
|
|
416
|
+
/**
|
|
417
|
+
* Optional gate — when provided and returning `false`, the actuator
|
|
418
|
+
* is skipped and the executor emits an `ExecuteOutput` with
|
|
419
|
+
* `outcome: "failure"` and detail from `skipDetail` (default
|
|
420
|
+
* `"actuator skipped (shouldApply returned false)"`). Use this to
|
|
421
|
+
* route interventions the actuator can't handle (e.g. `intervention:
|
|
422
|
+
* "investigate"` items) into the failure path so the verifier sees
|
|
423
|
+
* them.
|
|
424
|
+
*/
|
|
425
|
+
shouldApply?: (item: TriagedItem) => boolean;
|
|
426
|
+
/** Detail string for the skip path. Default: includes intervention name. */
|
|
427
|
+
skipDetail?: (item: TriagedItem) => string;
|
|
428
|
+
/**
|
|
429
|
+
* Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
|
|
430
|
+
* Default: `outcome: "success"`, `detail` references the intervention
|
|
431
|
+
* + summary, `artifact: record`.
|
|
432
|
+
*/
|
|
433
|
+
toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
|
|
434
|
+
/**
|
|
435
|
+
* Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
|
|
436
|
+
* `outcome: "failure"`, `detail` carries the error message,
|
|
437
|
+
* `artifact: undefined`.
|
|
438
|
+
*/
|
|
439
|
+
onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
|
|
440
|
+
/** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
|
|
441
|
+
name?: string;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Build a {@link HarnessExecutor} backed by a side-effecting actuator.
|
|
445
|
+
*
|
|
446
|
+
* @example File-system actuator that writes a catalog entry and emits the diff.
|
|
447
|
+
* ```ts
|
|
448
|
+
* const harness = harnessLoop("repair", {
|
|
449
|
+
* adapter,
|
|
450
|
+
* executor: actuatorExecutor<CatalogPatch>({
|
|
451
|
+
* async apply(item, { signal }) {
|
|
452
|
+
* const patch = patchFromItem(item);
|
|
453
|
+
* await fs.writeFile(patch.path, patch.contents, { signal });
|
|
454
|
+
* return patch;
|
|
455
|
+
* },
|
|
456
|
+
* shouldApply: (item) => item.intervention === "catalog-fn",
|
|
457
|
+
* }),
|
|
458
|
+
* verifier: evalVerifier<CatalogPatch>({
|
|
459
|
+
* evaluator,
|
|
460
|
+
* datasetFor,
|
|
461
|
+
* extractArtifact: (exec) => exec.artifact ?? null,
|
|
462
|
+
* }),
|
|
463
|
+
* });
|
|
464
|
+
* ```
|
|
465
|
+
*/
|
|
466
|
+
declare function actuatorExecutor<R>(config: ActuatorExecutorConfig<R>): HarnessExecutor<R>;
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* autoSolidify — promote successful VERIFY runs into a durable artifact
|
|
470
|
+
* (catalog entry, skill, template, doc edit, …).
|
|
471
|
+
*
|
|
472
|
+
* Closes the dogfood retrospective loop: when the harness's VERIFY
|
|
473
|
+
* stage reports `verified: true`, the validated intervention should
|
|
474
|
+
* become an authoring artifact the next loop run can rely on. This
|
|
475
|
+
* primitive is the generic substrate — pass a `write` callback that
|
|
476
|
+
* does the actual promotion (e.g. `overlay.upsertTemplate` for the
|
|
477
|
+
* dogfood catalog overlay; `fs.writeFile` for a doc edit; `ctx.skill`
|
|
478
|
+
* for a Hermes-style skill registry).
|
|
479
|
+
*
|
|
480
|
+
* @example Wire the catalog overlay as the solidify target.
|
|
481
|
+
* ```ts
|
|
482
|
+
* const solidified = autoSolidify({
|
|
483
|
+
* verifyResults: harness.verifyResults.latest,
|
|
484
|
+
* extract: (vr) => vr.execution.artifact ?? null,
|
|
485
|
+
* write: (entry, vr) => overlay.upsertFn(`learned-${vr.item.summary}`, entry),
|
|
486
|
+
* });
|
|
487
|
+
* solidified.subscribe(() => {}); // keep alive for log
|
|
488
|
+
* ```
|
|
489
|
+
*
|
|
490
|
+
* **Why a node and not just an effect.** The returned `Node<R>` emits
|
|
491
|
+
* each promoted artifact, so callers can pipe solidifications through
|
|
492
|
+
* the standard reactive surface (`describe()`, `observe()`, replay
|
|
493
|
+
* buffers) instead of side-channel logging. An audit / dashboard that
|
|
494
|
+
* wants "what was learned this run?" subscribes to the returned node;
|
|
495
|
+
* the `write` callback owns the durable side effect.
|
|
496
|
+
*
|
|
497
|
+
* **Idempotency is the caller's responsibility.** The primitive
|
|
498
|
+
* promotes every `verified: true` wave that passes the predicate. If
|
|
499
|
+
* the harness re-verifies the same item (e.g. via reingestion), the
|
|
500
|
+
* `write` callback is invoked again. Wrap your write fn with a
|
|
501
|
+
* dedup-by-key guard if your target store would otherwise bloat. The
|
|
502
|
+
* inner `seen` set inside this factory is intentionally absent — the
|
|
503
|
+
* harness already retains via topic logs and the user may want
|
|
504
|
+
* re-promotion semantics that are domain-specific.
|
|
505
|
+
*
|
|
506
|
+
* @module
|
|
507
|
+
*/
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Configuration for {@link autoSolidify}.
|
|
511
|
+
*
|
|
512
|
+
* `R` is the artifact type the upstream EXECUTE stage produced (and
|
|
513
|
+
* `evalVerifier` carries through `execution.artifact`). `T` is the
|
|
514
|
+
* promotion shape — what `write` consumes and what the returned node
|
|
515
|
+
* emits. Often `T = R`, but they diverge when the actuator's raw
|
|
516
|
+
* artifact needs a transform before storing (e.g. wrap a `CatalogPatch`
|
|
517
|
+
* into a `CatalogEntry` with effectiveness metadata).
|
|
518
|
+
*/
|
|
519
|
+
interface AutoSolidifyConfig<R, T = R> {
|
|
520
|
+
/** Reactive verify-result stream. Typically `harness.verifyResults.latest`. */
|
|
521
|
+
verifyResults: Node<VerifyResult<R> | null>;
|
|
522
|
+
/**
|
|
523
|
+
* Pull the value-to-promote out of a verified VerifyResult.
|
|
524
|
+
* Default: `(vr) => vr.execution.artifact as T | null`. Return `null`
|
|
525
|
+
* to skip a particular VerifyResult even when `verified: true` (e.g.
|
|
526
|
+
* an LLM-default executor produces no artifact and there's nothing to
|
|
527
|
+
* solidify).
|
|
528
|
+
*/
|
|
529
|
+
extract?: (vr: VerifyResult<R>) => T | null;
|
|
530
|
+
/**
|
|
531
|
+
* Optional gate beyond `verified === true`. When provided, the
|
|
532
|
+
* primitive only promotes when this returns `true`. Default: pass
|
|
533
|
+
* everything verified.
|
|
534
|
+
*
|
|
535
|
+
* Useful predicates:
|
|
536
|
+
* - `(vr) => vr.item.intervention === "catalog-fn"` — only catalog work.
|
|
537
|
+
* - `(vr) => (vr.findings ?? []).every(f => !/regression/i.test(f))` —
|
|
538
|
+
* skip even-passes that mention regressions.
|
|
539
|
+
*/
|
|
540
|
+
predicate?: (vr: VerifyResult<R>) => boolean;
|
|
541
|
+
/**
|
|
542
|
+
* Promote — usually a side effect (write to overlay, fs, KG, etc.).
|
|
543
|
+
* Receives the extracted artifact AND the originating VerifyResult so
|
|
544
|
+
* the writer can use any context it needs (item summary, eval task
|
|
545
|
+
* IDs, finding text, …) when shaping the durable record.
|
|
546
|
+
*/
|
|
547
|
+
write: (artifact: T, vr: VerifyResult<R>) => void;
|
|
548
|
+
/** Node name for `describe()` introspection. Default `"auto-solidify"`. */
|
|
549
|
+
name?: string;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Build a `Node<T>` that subscribes to `verifyResults`, filters to
|
|
553
|
+
* verified passes that produced an extractable artifact, runs `write`,
|
|
554
|
+
* and emits the artifact. Use the returned node as a subscription
|
|
555
|
+
* point for audit / dashboard / log pipelines.
|
|
556
|
+
*
|
|
557
|
+
* **Terminal-on-error semantics.** A throw from `predicate`, `extract`,
|
|
558
|
+
* or `write` surfaces as `[[ERROR]]` on the returned node and
|
|
559
|
+
* **terminates** it — the upstream subscription tears down and no
|
|
560
|
+
* further DATA is emitted. This matches the spec's terminal-frame
|
|
561
|
+
* contract for ERROR. If you want the solidify node to stay live
|
|
562
|
+
* across user-callback throws, wrap your callbacks with try/catch
|
|
563
|
+
* internally and emit a sentinel value or no-op on failure. A future
|
|
564
|
+
* non-terminal `errors: Node<unknown>` companion may surface failures
|
|
565
|
+
* without terminating the success stream — flagged as a follow-up.
|
|
566
|
+
*
|
|
567
|
+
* @returns A `Node<T>` that emits one DATA per promoted artifact.
|
|
568
|
+
* Stays live as long as `verifyResults` is live AND no user callback
|
|
569
|
+
* has thrown.
|
|
570
|
+
*/
|
|
571
|
+
declare function autoSolidify<R, T = R>(config: AutoSolidifyConfig<R, T>): Node<T>;
|
|
572
|
+
|
|
352
573
|
/**
|
|
353
574
|
* Harness bridge factories (roadmap §9.0).
|
|
354
575
|
*
|
|
@@ -759,6 +980,26 @@ declare class HarnessGraph<A = unknown> extends Graph {
|
|
|
759
980
|
readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
|
|
760
981
|
/** Per-route gate controllers (only for gated queues). */
|
|
761
982
|
readonly gates: ReadonlyMap<QueueRoute, GateController<TriagedItem>>;
|
|
983
|
+
/**
|
|
984
|
+
* Per-route queue topics — typed accessor for the four
|
|
985
|
+
* {@link QUEUE_NAMES} entries (`auto-fix`, `needs-decision`,
|
|
986
|
+
* `investigation`, `backlog`). Mirrors the `gates` / `jobs` map
|
|
987
|
+
* shape so callers can iterate `[route, topic]` pairs without
|
|
988
|
+
* hand-rolling `harness.queues.topicNames()` + meta-topic exclusion.
|
|
989
|
+
*
|
|
990
|
+
* Excludes the meta topics that share the hub:
|
|
991
|
+
* `intake` (use {@link intake}), `verify-results` (use
|
|
992
|
+
* {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
|
|
993
|
+
* (use {@link unrouted}), and the internal `triage-output` fan-in.
|
|
994
|
+
*
|
|
995
|
+
* **Why this exists.** `for (const [, topic] of harness.queues)`
|
|
996
|
+
* appears to iterate via `Graph[Symbol.iterator]`, but that yields
|
|
997
|
+
* locally-registered nodes only — and `MessagingHubGraph` mounts
|
|
998
|
+
* topics as child graphs rather than registering them locally, so
|
|
999
|
+
* the loop yields nothing. This map gives a typed, working
|
|
1000
|
+
* iteration path.
|
|
1001
|
+
*/
|
|
1002
|
+
readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
|
|
762
1003
|
/** Strategy model bundle — record outcomes, lookup effectiveness. */
|
|
763
1004
|
readonly strategy: StrategyModelBundle;
|
|
764
1005
|
/** Global retry count across all items (circuit breaker). Reactive — subscribable. */
|
|
@@ -773,7 +1014,7 @@ declare class HarnessGraph<A = unknown> extends Graph {
|
|
|
773
1014
|
* in to priority scoring.
|
|
774
1015
|
*/
|
|
775
1016
|
readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
|
|
776
|
-
constructor(name: string, queues: MessagingHubGraph, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
|
|
1017
|
+
constructor(name: string, queues: MessagingHubGraph, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
|
|
777
1018
|
/** Intake topic — publish items here to enter the loop. */
|
|
778
1019
|
get intake(): TopicGraph<IntakeItem>;
|
|
779
1020
|
/** Verify results topic — subscribe to see verification outcomes. */
|
|
@@ -1011,6 +1252,9 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
|
|
|
1011
1252
|
* @module
|
|
1012
1253
|
*/
|
|
1013
1254
|
|
|
1255
|
+
type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
|
|
1256
|
+
type index_ActuatorResult<R> = ActuatorResult<R>;
|
|
1257
|
+
type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
|
|
1014
1258
|
type index_CodeChange = CodeChange;
|
|
1015
1259
|
type index_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
|
|
1016
1260
|
declare const index_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
|
|
@@ -1070,7 +1314,9 @@ type index_TriagedItem = TriagedItem;
|
|
|
1070
1314
|
type index_VerifyOutput = VerifyOutput;
|
|
1071
1315
|
type index_VerifyPromptFn<A = unknown> = VerifyPromptFn<A>;
|
|
1072
1316
|
type index_VerifyResult<A = unknown> = VerifyResult<A>;
|
|
1317
|
+
declare const index_actuatorExecutor: typeof actuatorExecutor;
|
|
1073
1318
|
declare const index_affectedTaskFilter: typeof affectedTaskFilter;
|
|
1319
|
+
declare const index_autoSolidify: typeof autoSolidify;
|
|
1074
1320
|
declare const index_beforeAfterCompare: typeof beforeAfterCompare;
|
|
1075
1321
|
declare const index_codeChangeBridge: typeof codeChangeBridge;
|
|
1076
1322
|
declare const index_createIntakeBridge: typeof createIntakeBridge;
|
|
@@ -1091,7 +1337,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
|
|
|
1091
1337
|
declare const index_strategyKey: typeof strategyKey;
|
|
1092
1338
|
declare const index_strategyModel: typeof strategyModel;
|
|
1093
1339
|
declare namespace index {
|
|
1094
|
-
export { type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_affectedTaskFilter as affectedTaskFilter, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
|
|
1340
|
+
export { type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
|
|
1095
1341
|
}
|
|
1096
1342
|
|
|
1097
|
-
export { type
|
|
1343
|
+
export { type TestFailure as $, type ActuatorExecutorConfig as A, type HarnessTraceOptions as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessVerifier as F, type IntakeItem as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type IntakeSource as J, type Intervention as K, type KnownIntakeSource as L, type LintError as M, type NotifyEffectOptions as N, type NotifyTransport as O, type PrioritySignals as P, QUEUE_NAMES as Q, type QueueConfig as R, type QueueRoute as S, type RefineExecutorConfig as T, type RefineExecutorResult as U, type RootCause as V, type Severity as W, type StrategyEntry as X, type StrategyKey as Y, type StrategyModelBundle as Z, type StrategySnapshot as _, type ActuatorResult as a, type TraceDetail as a0, type TraceEvent as a1, type TraceEventType as a2, type TriagePromptFn as a3, type TriagedItem as a4, type VerifyOutput as a5, type VerifyPromptFn as a6, type VerifyResult as a7, actuatorExecutor as a8, affectedTaskFilter as a9, autoSolidify as aa, beforeAfterCompare as ab, codeChangeBridge as ac, createIntakeBridge as ad, defaultErrorClassifier as ae, defaultLlmExecutor as af, defaultLlmVerifier as ag, evalIntakeBridge as ah, evalSource as ai, evalVerifier as aj, harnessEvalPair as ak, harnessLoop as al, harnessProfile as am, harnessTrace as an, notifyEffect as ao, priorityScore as ap, refineExecutor as aq, resolvePromptFn as ar, strategyKey as as, strategyModel as at, type AutoSolidifyConfig as b, type CodeChangeBridgeOptions as c, DEFAULT_EXECUTE_PROMPT as d, DEFAULT_QUEUE_CONFIGS as e, DEFAULT_SEVERITY_WEIGHTS as f, DEFAULT_TRIAGE_PROMPT as g, DEFAULT_VERIFY_PROMPT as h, index as i, type ErrorClassifier as j, type EvalDelta as k, type EvalIntakeBridgeOptions as l, type EvalJudgeScore as m, type EvalResult as n, type EvalTaskDelta as o, type EvalTaskResult as p, type EvalVerifierConfig as q, type EvalVerifierSummary as r, type ExecuteOutput as s, type ExecutePromptFn as t, type ExecutionResult as u, type HarnessExecutor as v, HarnessGraph as w, type HarnessLoopOptions as x, type HarnessProfileResult as y, type HarnessTraceHandle as z };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { NodeInput } from './extra/sources.cjs';
|
|
1
2
|
import { a as Node } from './node-8qx0kgYt.cjs';
|
|
2
|
-
import { T as TopicGraph, M as MessagingHubGraph } from './index-Ccv_61jG.cjs';
|
|
3
3
|
import { L as LLMAdapter } from './types-Cp_4coR_.cjs';
|
|
4
|
+
import { T as TopicGraph, M as MessagingHubGraph } from './index-Ccv_61jG.cjs';
|
|
4
5
|
import { E as Evaluator, D as DatasetItem, a as EvalResult$1, R as RefineStrategy, b as RefineLoopOptions, c as RefineStatus } from './index-ChZvMC4M.cjs';
|
|
5
6
|
import { G as Graph, s as GraphProfileResult, r as GraphProfileOptions } from './graph-DaoydJ_u.cjs';
|
|
6
7
|
import { G as GateController } from './index-C2Dey3L-.cjs';
|
|
@@ -349,6 +350,226 @@ interface HarnessLoopOptions<A = unknown> {
|
|
|
349
350
|
retainedLimit?: number;
|
|
350
351
|
}
|
|
351
352
|
|
|
353
|
+
/**
|
|
354
|
+
* actuatorExecutor — bridge a side-effecting actuator into the harness EXECUTE slot.
|
|
355
|
+
*
|
|
356
|
+
* `refineExecutor` covers the artifact-typed case (refine a candidate
|
|
357
|
+
* `T` against an evaluator); `actuatorExecutor` covers the side-effecting
|
|
358
|
+
* case (write a catalog entry, mutate a template registry, edit a doc on
|
|
359
|
+
* disk). The user's `apply` callback owns the side effect; the executor
|
|
360
|
+
* wraps it in the per-item lifecycle that makes the four
|
|
361
|
+
* {@link HarnessExecutor} contract rules structurally unreachable:
|
|
362
|
+
*
|
|
363
|
+
* 1. **One DATA per actuation.** The inner producer captures the first
|
|
364
|
+
* DATA from the bridged `apply` result, emits a single
|
|
365
|
+
* `ExecuteOutput<R>` carrying the actuation record as `artifact`, and
|
|
366
|
+
* completes. Subsequent inner DATAs are ignored.
|
|
367
|
+
* 2. **Cancel-on-supersede.** A new triaged item supersedes via
|
|
368
|
+
* `switchMap`; the prior producer's cleanup fires `ac.abort()`, which
|
|
369
|
+
* propagates into `apply`'s `signal` (and through `fromAny`'s
|
|
370
|
+
* internal cancellation hooks) so signal-aware actuators stop
|
|
371
|
+
* in-flight work instead of double-writing.
|
|
372
|
+
* 3. **Item via deps, not closure mirror.** The triaged item is captured
|
|
373
|
+
* in the `switchMap` callback's lexical scope, not mirrored to a
|
|
374
|
+
* side-state node — same shape as `refineExecutor`.
|
|
375
|
+
* 4. **Fires on result, not input.** The producer emits exactly when
|
|
376
|
+
* `apply`'s bridged node settles (or fails). Input-arrival waves
|
|
377
|
+
* never produce an `ExecuteOutput`.
|
|
378
|
+
*
|
|
379
|
+
* **What `apply` may return.** Anything `fromAny` accepts: a
|
|
380
|
+
* `Promise<R>`, a `Node<R>`, an `AsyncIterable<R>`, an `Iterable<R>`,
|
|
381
|
+
* or a synchronous `R`. `Promise<R>` is the typical shape (`writeFile`,
|
|
382
|
+
* `fetch`, `db.execute`); reactive composition through `Node<R>` is the
|
|
383
|
+
* escape hatch when the actuator itself wants to surface intermediate
|
|
384
|
+
* progress before settling.
|
|
385
|
+
*
|
|
386
|
+
* **Pairing with `evalVerifier`.** `ExecuteOutput.artifact` is set to
|
|
387
|
+
* the actuation record; an `evalVerifier<R>` whose `extractArtifact`
|
|
388
|
+
* returns the record (or a transform of it — typically the post-apply
|
|
389
|
+
* world state needed by the evaluator) closes the EXECUTE → VERIFY loop
|
|
390
|
+
* with consistent typing end-to-end.
|
|
391
|
+
*
|
|
392
|
+
* @module
|
|
393
|
+
*/
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* What an actuator's `apply` may return. Mirrors `NodeInput<R>` plus a
|
|
397
|
+
* raw `R` for synchronous side effects, so callers can write the most
|
|
398
|
+
* direct shape for their case (Promise for async I/O, raw record for
|
|
399
|
+
* pure in-memory mutation).
|
|
400
|
+
*/
|
|
401
|
+
type ActuatorResult<R> = NodeInput<R>;
|
|
402
|
+
/** Configuration for {@link actuatorExecutor}. */
|
|
403
|
+
interface ActuatorExecutorConfig<R> {
|
|
404
|
+
/**
|
|
405
|
+
* Apply the side effect for this triaged item. Receives the abort
|
|
406
|
+
* signal — actuators that own real I/O should thread `signal` into
|
|
407
|
+
* `fetch`, `fs.writeFile`, child-process kills, etc. so that
|
|
408
|
+
* `switchMap` supersede actually cancels in-flight work.
|
|
409
|
+
*
|
|
410
|
+
* The first DATA emitted by the bridged result wins; later DATAs are
|
|
411
|
+
* discarded. ERROR (or a synchronous throw) is mapped via `onError`.
|
|
412
|
+
*/
|
|
413
|
+
apply: (item: TriagedItem, opts: {
|
|
414
|
+
signal: AbortSignal;
|
|
415
|
+
}) => ActuatorResult<R>;
|
|
416
|
+
/**
|
|
417
|
+
* Optional gate — when provided and returning `false`, the actuator
|
|
418
|
+
* is skipped and the executor emits an `ExecuteOutput` with
|
|
419
|
+
* `outcome: "failure"` and detail from `skipDetail` (default
|
|
420
|
+
* `"actuator skipped (shouldApply returned false)"`). Use this to
|
|
421
|
+
* route interventions the actuator can't handle (e.g. `intervention:
|
|
422
|
+
* "investigate"` items) into the failure path so the verifier sees
|
|
423
|
+
* them.
|
|
424
|
+
*/
|
|
425
|
+
shouldApply?: (item: TriagedItem) => boolean;
|
|
426
|
+
/** Detail string for the skip path. Default: includes intervention name. */
|
|
427
|
+
skipDetail?: (item: TriagedItem) => string;
|
|
428
|
+
/**
|
|
429
|
+
* Map a successfully-applied actuation record into an `ExecuteOutput<R>`.
|
|
430
|
+
* Default: `outcome: "success"`, `detail` references the intervention
|
|
431
|
+
* + summary, `artifact: record`.
|
|
432
|
+
*/
|
|
433
|
+
toOutput?: (record: R, item: TriagedItem) => ExecuteOutput<R>;
|
|
434
|
+
/**
|
|
435
|
+
* Map a thrown / ERROR result into an `ExecuteOutput<R>`. Default:
|
|
436
|
+
* `outcome: "failure"`, `detail` carries the error message,
|
|
437
|
+
* `artifact: undefined`.
|
|
438
|
+
*/
|
|
439
|
+
onError?: (err: unknown, item: TriagedItem) => ExecuteOutput<R>;
|
|
440
|
+
/** Node name prefix for `describe()` introspection. Default `"actuator-executor"`. */
|
|
441
|
+
name?: string;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Build a {@link HarnessExecutor} backed by a side-effecting actuator.
|
|
445
|
+
*
|
|
446
|
+
* @example File-system actuator that writes a catalog entry and emits the diff.
|
|
447
|
+
* ```ts
|
|
448
|
+
* const harness = harnessLoop("repair", {
|
|
449
|
+
* adapter,
|
|
450
|
+
* executor: actuatorExecutor<CatalogPatch>({
|
|
451
|
+
* async apply(item, { signal }) {
|
|
452
|
+
* const patch = patchFromItem(item);
|
|
453
|
+
* await fs.writeFile(patch.path, patch.contents, { signal });
|
|
454
|
+
* return patch;
|
|
455
|
+
* },
|
|
456
|
+
* shouldApply: (item) => item.intervention === "catalog-fn",
|
|
457
|
+
* }),
|
|
458
|
+
* verifier: evalVerifier<CatalogPatch>({
|
|
459
|
+
* evaluator,
|
|
460
|
+
* datasetFor,
|
|
461
|
+
* extractArtifact: (exec) => exec.artifact ?? null,
|
|
462
|
+
* }),
|
|
463
|
+
* });
|
|
464
|
+
* ```
|
|
465
|
+
*/
|
|
466
|
+
declare function actuatorExecutor<R>(config: ActuatorExecutorConfig<R>): HarnessExecutor<R>;
|
|
467
|
+
|
|
468
|
+
/**
|
|
469
|
+
* autoSolidify — promote successful VERIFY runs into a durable artifact
|
|
470
|
+
* (catalog entry, skill, template, doc edit, …).
|
|
471
|
+
*
|
|
472
|
+
* Closes the dogfood retrospective loop: when the harness's VERIFY
|
|
473
|
+
* stage reports `verified: true`, the validated intervention should
|
|
474
|
+
* become an authoring artifact the next loop run can rely on. This
|
|
475
|
+
* primitive is the generic substrate — pass a `write` callback that
|
|
476
|
+
* does the actual promotion (e.g. `overlay.upsertTemplate` for the
|
|
477
|
+
* dogfood catalog overlay; `fs.writeFile` for a doc edit; `ctx.skill`
|
|
478
|
+
* for a Hermes-style skill registry).
|
|
479
|
+
*
|
|
480
|
+
* @example Wire the catalog overlay as the solidify target.
|
|
481
|
+
* ```ts
|
|
482
|
+
* const solidified = autoSolidify({
|
|
483
|
+
* verifyResults: harness.verifyResults.latest,
|
|
484
|
+
* extract: (vr) => vr.execution.artifact ?? null,
|
|
485
|
+
* write: (entry, vr) => overlay.upsertFn(`learned-${vr.item.summary}`, entry),
|
|
486
|
+
* });
|
|
487
|
+
* solidified.subscribe(() => {}); // keep alive for log
|
|
488
|
+
* ```
|
|
489
|
+
*
|
|
490
|
+
* **Why a node and not just an effect.** The returned `Node<R>` emits
|
|
491
|
+
* each promoted artifact, so callers can pipe solidifications through
|
|
492
|
+
* the standard reactive surface (`describe()`, `observe()`, replay
|
|
493
|
+
* buffers) instead of side-channel logging. An audit / dashboard that
|
|
494
|
+
* wants "what was learned this run?" subscribes to the returned node;
|
|
495
|
+
* the `write` callback owns the durable side effect.
|
|
496
|
+
*
|
|
497
|
+
* **Idempotency is the caller's responsibility.** The primitive
|
|
498
|
+
* promotes every `verified: true` wave that passes the predicate. If
|
|
499
|
+
* the harness re-verifies the same item (e.g. via reingestion), the
|
|
500
|
+
* `write` callback is invoked again. Wrap your write fn with a
|
|
501
|
+
* dedup-by-key guard if your target store would otherwise bloat. The
|
|
502
|
+
* inner `seen` set inside this factory is intentionally absent — the
|
|
503
|
+
* harness already retains via topic logs and the user may want
|
|
504
|
+
* re-promotion semantics that are domain-specific.
|
|
505
|
+
*
|
|
506
|
+
* @module
|
|
507
|
+
*/
|
|
508
|
+
|
|
509
|
+
/**
|
|
510
|
+
* Configuration for {@link autoSolidify}.
|
|
511
|
+
*
|
|
512
|
+
* `R` is the artifact type the upstream EXECUTE stage produced (and
|
|
513
|
+
* `evalVerifier` carries through `execution.artifact`). `T` is the
|
|
514
|
+
* promotion shape — what `write` consumes and what the returned node
|
|
515
|
+
* emits. Often `T = R`, but they diverge when the actuator's raw
|
|
516
|
+
* artifact needs a transform before storing (e.g. wrap a `CatalogPatch`
|
|
517
|
+
* into a `CatalogEntry` with effectiveness metadata).
|
|
518
|
+
*/
|
|
519
|
+
interface AutoSolidifyConfig<R, T = R> {
|
|
520
|
+
/** Reactive verify-result stream. Typically `harness.verifyResults.latest`. */
|
|
521
|
+
verifyResults: Node<VerifyResult<R> | null>;
|
|
522
|
+
/**
|
|
523
|
+
* Pull the value-to-promote out of a verified VerifyResult.
|
|
524
|
+
* Default: `(vr) => vr.execution.artifact as T | null`. Return `null`
|
|
525
|
+
* to skip a particular VerifyResult even when `verified: true` (e.g.
|
|
526
|
+
* an LLM-default executor produces no artifact and there's nothing to
|
|
527
|
+
* solidify).
|
|
528
|
+
*/
|
|
529
|
+
extract?: (vr: VerifyResult<R>) => T | null;
|
|
530
|
+
/**
|
|
531
|
+
* Optional gate beyond `verified === true`. When provided, the
|
|
532
|
+
* primitive only promotes when this returns `true`. Default: pass
|
|
533
|
+
* everything verified.
|
|
534
|
+
*
|
|
535
|
+
* Useful predicates:
|
|
536
|
+
* - `(vr) => vr.item.intervention === "catalog-fn"` — only catalog work.
|
|
537
|
+
* - `(vr) => (vr.findings ?? []).every(f => !/regression/i.test(f))` —
|
|
538
|
+
* skip even-passes that mention regressions.
|
|
539
|
+
*/
|
|
540
|
+
predicate?: (vr: VerifyResult<R>) => boolean;
|
|
541
|
+
/**
|
|
542
|
+
* Promote — usually a side effect (write to overlay, fs, KG, etc.).
|
|
543
|
+
* Receives the extracted artifact AND the originating VerifyResult so
|
|
544
|
+
* the writer can use any context it needs (item summary, eval task
|
|
545
|
+
* IDs, finding text, …) when shaping the durable record.
|
|
546
|
+
*/
|
|
547
|
+
write: (artifact: T, vr: VerifyResult<R>) => void;
|
|
548
|
+
/** Node name for `describe()` introspection. Default `"auto-solidify"`. */
|
|
549
|
+
name?: string;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Build a `Node<T>` that subscribes to `verifyResults`, filters to
|
|
553
|
+
* verified passes that produced an extractable artifact, runs `write`,
|
|
554
|
+
* and emits the artifact. Use the returned node as a subscription
|
|
555
|
+
* point for audit / dashboard / log pipelines.
|
|
556
|
+
*
|
|
557
|
+
* **Terminal-on-error semantics.** A throw from `predicate`, `extract`,
|
|
558
|
+
* or `write` surfaces as `[[ERROR]]` on the returned node and
|
|
559
|
+
* **terminates** it — the upstream subscription tears down and no
|
|
560
|
+
* further DATA is emitted. This matches the spec's terminal-frame
|
|
561
|
+
* contract for ERROR. If you want the solidify node to stay live
|
|
562
|
+
* across user-callback throws, wrap your callbacks with try/catch
|
|
563
|
+
* internally and emit a sentinel value or no-op on failure. A future
|
|
564
|
+
* non-terminal `errors: Node<unknown>` companion may surface failures
|
|
565
|
+
* without terminating the success stream — flagged as a follow-up.
|
|
566
|
+
*
|
|
567
|
+
* @returns A `Node<T>` that emits one DATA per promoted artifact.
|
|
568
|
+
* Stays live as long as `verifyResults` is live AND no user callback
|
|
569
|
+
* has thrown.
|
|
570
|
+
*/
|
|
571
|
+
declare function autoSolidify<R, T = R>(config: AutoSolidifyConfig<R, T>): Node<T>;
|
|
572
|
+
|
|
352
573
|
/**
|
|
353
574
|
* Harness bridge factories (roadmap §9.0).
|
|
354
575
|
*
|
|
@@ -759,6 +980,26 @@ declare class HarnessGraph<A = unknown> extends Graph {
|
|
|
759
980
|
readonly jobs: ReadonlyMap<QueueRoute, JobQueueGraph<TriagedItem>>;
|
|
760
981
|
/** Per-route gate controllers (only for gated queues). */
|
|
761
982
|
readonly gates: ReadonlyMap<QueueRoute, GateController<TriagedItem>>;
|
|
983
|
+
/**
|
|
984
|
+
* Per-route queue topics — typed accessor for the four
|
|
985
|
+
* {@link QUEUE_NAMES} entries (`auto-fix`, `needs-decision`,
|
|
986
|
+
* `investigation`, `backlog`). Mirrors the `gates` / `jobs` map
|
|
987
|
+
* shape so callers can iterate `[route, topic]` pairs without
|
|
988
|
+
* hand-rolling `harness.queues.topicNames()` + meta-topic exclusion.
|
|
989
|
+
*
|
|
990
|
+
* Excludes the meta topics that share the hub:
|
|
991
|
+
* `intake` (use {@link intake}), `verify-results` (use
|
|
992
|
+
* {@link verifyResults}), `retry` (use {@link retry}), `__unrouted`
|
|
993
|
+
* (use {@link unrouted}), and the internal `triage-output` fan-in.
|
|
994
|
+
*
|
|
995
|
+
* **Why this exists.** `for (const [, topic] of harness.queues)`
|
|
996
|
+
* appears to iterate via `Graph[Symbol.iterator]`, but that yields
|
|
997
|
+
* locally-registered nodes only — and `MessagingHubGraph` mounts
|
|
998
|
+
* topics as child graphs rather than registering them locally, so
|
|
999
|
+
* the loop yields nothing. This map gives a typed, working
|
|
1000
|
+
* iteration path.
|
|
1001
|
+
*/
|
|
1002
|
+
readonly queueTopics: ReadonlyMap<QueueRoute, TopicGraph<TriagedItem>>;
|
|
762
1003
|
/** Strategy model bundle — record outcomes, lookup effectiveness. */
|
|
763
1004
|
readonly strategy: StrategyModelBundle;
|
|
764
1005
|
/** Global retry count across all items (circuit breaker). Reactive — subscribable. */
|
|
@@ -773,7 +1014,7 @@ declare class HarnessGraph<A = unknown> extends Graph {
|
|
|
773
1014
|
* in to priority scoring.
|
|
774
1015
|
*/
|
|
775
1016
|
readonly priorityScores?: ReadonlyMap<QueueRoute, Node<number>>;
|
|
776
|
-
constructor(name: string, queues: MessagingHubGraph, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
|
|
1017
|
+
constructor(name: string, queues: MessagingHubGraph, queueTopics: Map<QueueRoute, TopicGraph<TriagedItem>>, jobs: Map<QueueRoute, JobQueueGraph<TriagedItem>>, gates: Map<QueueRoute, GateController<TriagedItem>>, strategy: StrategyModelBundle, totalRetries: Node<number>, totalReingestions: Node<number>, priorityScores?: Map<QueueRoute, Node<number>>);
|
|
777
1018
|
/** Intake topic — publish items here to enter the loop. */
|
|
778
1019
|
get intake(): TopicGraph<IntakeItem>;
|
|
779
1020
|
/** Verify results topic — subscribe to see verification outcomes. */
|
|
@@ -1011,6 +1252,9 @@ declare function harnessTrace(harness: HarnessGraph, opts?: HarnessTraceOptions)
|
|
|
1011
1252
|
* @module
|
|
1012
1253
|
*/
|
|
1013
1254
|
|
|
1255
|
+
type index_ActuatorExecutorConfig<R> = ActuatorExecutorConfig<R>;
|
|
1256
|
+
type index_ActuatorResult<R> = ActuatorResult<R>;
|
|
1257
|
+
type index_AutoSolidifyConfig<R, T = R> = AutoSolidifyConfig<R, T>;
|
|
1014
1258
|
type index_CodeChange = CodeChange;
|
|
1015
1259
|
type index_CodeChangeBridgeOptions = CodeChangeBridgeOptions;
|
|
1016
1260
|
declare const index_DEFAULT_DECAY_RATE: typeof DEFAULT_DECAY_RATE;
|
|
@@ -1070,7 +1314,9 @@ type index_TriagedItem = TriagedItem;
|
|
|
1070
1314
|
type index_VerifyOutput = VerifyOutput;
|
|
1071
1315
|
type index_VerifyPromptFn<A = unknown> = VerifyPromptFn<A>;
|
|
1072
1316
|
type index_VerifyResult<A = unknown> = VerifyResult<A>;
|
|
1317
|
+
declare const index_actuatorExecutor: typeof actuatorExecutor;
|
|
1073
1318
|
declare const index_affectedTaskFilter: typeof affectedTaskFilter;
|
|
1319
|
+
declare const index_autoSolidify: typeof autoSolidify;
|
|
1074
1320
|
declare const index_beforeAfterCompare: typeof beforeAfterCompare;
|
|
1075
1321
|
declare const index_codeChangeBridge: typeof codeChangeBridge;
|
|
1076
1322
|
declare const index_createIntakeBridge: typeof createIntakeBridge;
|
|
@@ -1091,7 +1337,7 @@ declare const index_resolvePromptFn: typeof resolvePromptFn;
|
|
|
1091
1337
|
declare const index_strategyKey: typeof strategyKey;
|
|
1092
1338
|
declare const index_strategyModel: typeof strategyModel;
|
|
1093
1339
|
declare namespace index {
|
|
1094
|
-
export { type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_affectedTaskFilter as affectedTaskFilter, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
|
|
1340
|
+
export { type index_ActuatorExecutorConfig as ActuatorExecutorConfig, type index_ActuatorResult as ActuatorResult, type index_AutoSolidifyConfig as AutoSolidifyConfig, type index_CodeChange as CodeChange, type index_CodeChangeBridgeOptions as CodeChangeBridgeOptions, index_DEFAULT_DECAY_RATE as DEFAULT_DECAY_RATE, index_DEFAULT_EXECUTE_PROMPT as DEFAULT_EXECUTE_PROMPT, index_DEFAULT_QUEUE_CONFIGS as DEFAULT_QUEUE_CONFIGS, index_DEFAULT_SEVERITY_WEIGHTS as DEFAULT_SEVERITY_WEIGHTS, index_DEFAULT_TRIAGE_PROMPT as DEFAULT_TRIAGE_PROMPT, index_DEFAULT_VERIFY_PROMPT as DEFAULT_VERIFY_PROMPT, type index_ErrorClass as ErrorClass, type index_ErrorClassifier as ErrorClassifier, type index_EvalDelta as EvalDelta, type index_EvalIntakeBridgeOptions as EvalIntakeBridgeOptions, type index_EvalJudgeScore as EvalJudgeScore, type index_EvalResult as EvalResult, type index_EvalTaskDelta as EvalTaskDelta, type index_EvalTaskResult as EvalTaskResult, type index_EvalVerifierConfig as EvalVerifierConfig, type index_EvalVerifierSummary as EvalVerifierSummary, type index_ExecuteOutput as ExecuteOutput, type index_ExecutePromptFn as ExecutePromptFn, type index_ExecutionResult as ExecutionResult, type index_HarnessEvalPairConfig as HarnessEvalPairConfig, type index_HarnessExecutor as HarnessExecutor, index_HarnessGraph as HarnessGraph, type index_HarnessLoopOptions as HarnessLoopOptions, type index_HarnessProfileResult as HarnessProfileResult, type index_HarnessTraceHandle as HarnessTraceHandle, type index_HarnessTraceOptions as HarnessTraceOptions, type index_HarnessVerifier as HarnessVerifier, type index_IntakeBridgeOptions as IntakeBridgeOptions, type index_IntakeItem as IntakeItem, type index_IntakeSource as IntakeSource, type index_Intervention as Intervention, type index_KnownIntakeSource as KnownIntakeSource, type index_LintError as LintError, type index_NotifyEffectOptions as NotifyEffectOptions, type index_NotifyTransport as NotifyTransport, type index_PrioritySignals as PrioritySignals, index_QUEUE_NAMES as QUEUE_NAMES, type index_QueueConfig as QueueConfig, type index_QueueRoute as QueueRoute, type index_RefineExecutorConfig as RefineExecutorConfig, type index_RefineExecutorResult as RefineExecutorResult, type index_RootCause as RootCause, type index_Severity as Severity, type index_StrategyEntry as StrategyEntry, type index_StrategyKey as StrategyKey, type index_StrategyModelBundle as StrategyModelBundle, type index_StrategySnapshot as StrategySnapshot, type index_TestFailure as TestFailure, type index_TraceDetail as TraceDetail, type index_TraceEvent as TraceEvent, type index_TraceEventType as TraceEventType, type index_TriagePromptFn as TriagePromptFn, type index_TriagedItem as TriagedItem, type index_VerifyOutput as VerifyOutput, type index_VerifyPromptFn as VerifyPromptFn, type index_VerifyResult as VerifyResult, index_actuatorExecutor as actuatorExecutor, index_affectedTaskFilter as affectedTaskFilter, index_autoSolidify as autoSolidify, index_beforeAfterCompare as beforeAfterCompare, index_codeChangeBridge as codeChangeBridge, index_createIntakeBridge as createIntakeBridge, index_defaultErrorClassifier as defaultErrorClassifier, index_defaultLlmExecutor as defaultLlmExecutor, index_defaultLlmVerifier as defaultLlmVerifier, index_evalIntakeBridge as evalIntakeBridge, index_evalSource as evalSource, index_evalVerifier as evalVerifier, index_harnessEvalPair as harnessEvalPair, index_harnessLoop as harnessLoop, index_harnessProfile as harnessProfile, index_harnessTrace as harnessTrace, index_notifyEffect as notifyEffect, index_priorityScore as priorityScore, index_refineExecutor as refineExecutor, index_resolvePromptFn as resolvePromptFn, index_strategyKey as strategyKey, index_strategyModel as strategyModel };
|
|
1095
1341
|
}
|
|
1096
1342
|
|
|
1097
|
-
export { type
|
|
1343
|
+
export { type TestFailure as $, type ActuatorExecutorConfig as A, type HarnessTraceOptions as B, type CodeChange as C, DEFAULT_DECAY_RATE as D, type ErrorClass as E, type HarnessVerifier as F, type IntakeItem as G, type HarnessEvalPairConfig as H, type IntakeBridgeOptions as I, type IntakeSource as J, type Intervention as K, type KnownIntakeSource as L, type LintError as M, type NotifyEffectOptions as N, type NotifyTransport as O, type PrioritySignals as P, QUEUE_NAMES as Q, type QueueConfig as R, type QueueRoute as S, type RefineExecutorConfig as T, type RefineExecutorResult as U, type RootCause as V, type Severity as W, type StrategyEntry as X, type StrategyKey as Y, type StrategyModelBundle as Z, type StrategySnapshot as _, type ActuatorResult as a, type TraceDetail as a0, type TraceEvent as a1, type TraceEventType as a2, type TriagePromptFn as a3, type TriagedItem as a4, type VerifyOutput as a5, type VerifyPromptFn as a6, type VerifyResult as a7, actuatorExecutor as a8, affectedTaskFilter as a9, autoSolidify as aa, beforeAfterCompare as ab, codeChangeBridge as ac, createIntakeBridge as ad, defaultErrorClassifier as ae, defaultLlmExecutor as af, defaultLlmVerifier as ag, evalIntakeBridge as ah, evalSource as ai, evalVerifier as aj, harnessEvalPair as ak, harnessLoop as al, harnessProfile as am, harnessTrace as an, notifyEffect as ao, priorityScore as ap, refineExecutor as aq, resolvePromptFn as ar, strategyKey as as, strategyModel as at, type AutoSolidifyConfig as b, type CodeChangeBridgeOptions as c, DEFAULT_EXECUTE_PROMPT as d, DEFAULT_QUEUE_CONFIGS as e, DEFAULT_SEVERITY_WEIGHTS as f, DEFAULT_TRIAGE_PROMPT as g, DEFAULT_VERIFY_PROMPT as h, index as i, type ErrorClassifier as j, type EvalDelta as k, type EvalIntakeBridgeOptions as l, type EvalJudgeScore as m, type EvalResult as n, type EvalTaskDelta as o, type EvalTaskResult as p, type EvalVerifierConfig as q, type EvalVerifierSummary as r, type ExecuteOutput as s, type ExecutePromptFn as t, type ExecutionResult as u, type HarnessExecutor as v, HarnessGraph as w, type HarnessLoopOptions as x, type HarnessProfileResult as y, type HarnessTraceHandle as z };
|