@principles/core 1.242.0 → 1.243.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/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.d.ts +12 -0
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.d.ts.map +1 -0
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.js +114 -0
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.js.map +1 -0
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.d.ts +8 -0
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.d.ts.map +1 -0
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.js +56 -0
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.js.map +1 -0
- package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js +14 -0
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.d.ts +12 -0
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.js +176 -0
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.d.ts +11 -0
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.js +154 -0
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.d.ts +12 -0
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.js +254 -0
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.d.ts +15 -0
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.js +150 -0
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.js.map +1 -0
- package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.js +12 -0
- package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/context-manifest.d.ts +117 -0
- package/dist/runtime-v2/internalization/context-manifest.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/context-manifest.js +156 -0
- package/dist/runtime-v2/internalization/context-manifest.js.map +1 -0
- package/dist/runtime-v2/internalization/context-manifests.d.ts +74 -0
- package/dist/runtime-v2/internalization/context-manifests.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/context-manifests.js +192 -0
- package/dist/runtime-v2/internalization/context-manifests.js.map +1 -0
- package/dist/runtime-v2/internalization/dimension-coverage-policy.d.ts +54 -0
- package/dist/runtime-v2/internalization/dimension-coverage-policy.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/dimension-coverage-policy.js +70 -0
- package/dist/runtime-v2/internalization/dimension-coverage-policy.js.map +1 -0
- package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-runner.js +13 -1
- package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-output.d.ts +26 -0
- package/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-output.js +7 -1
- package/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +13 -0
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/progressive-evaluator.d.ts +115 -0
- package/dist/runtime-v2/internalization/progressive-evaluator.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/progressive-evaluator.js +248 -0
- package/dist/runtime-v2/internalization/progressive-evaluator.js.map +1 -0
- package/dist/runtime-v2/internalization/prompt-budget-manager.d.ts +90 -0
- package/dist/runtime-v2/internalization/prompt-budget-manager.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/prompt-budget-manager.js +149 -0
- package/dist/runtime-v2/internalization/prompt-budget-manager.js.map +1 -0
- package/dist/runtime-v2/internalization/resolve-injection.d.ts +62 -0
- package/dist/runtime-v2/internalization/resolve-injection.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/resolve-injection.js +78 -0
- package/dist/runtime-v2/internalization/resolve-injection.js.map +1 -0
- package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.js +10 -0
- package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/summary-field-reader.d.ts +38 -0
- package/dist/runtime-v2/internalization/summary-field-reader.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/summary-field-reader.js +108 -0
- package/dist/runtime-v2/internalization/summary-field-reader.js.map +1 -0
- package/dist/runtime-v2/runner/base-peer-runner.d.ts +36 -0
- package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.js +71 -0
- package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 1 — PromptBudgetManager: budgeted context allocation (design §6.3).
|
|
3
|
+
*
|
|
4
|
+
* Pure logic only (Core vs Plugin boundary, `antipattern-core-io`).
|
|
5
|
+
*
|
|
6
|
+
* `allocateContext` takes a manifest + the available field values (as a
|
|
7
|
+
* `ReadonlyMap<string, unknown>`, rc-1) and produces an `AllocatedContext`:
|
|
8
|
+
* which fields fit the budget, which were truncated, which were dropped, and
|
|
9
|
+
* which were absent. It is a PURE allocation function — it does NOT decide
|
|
10
|
+
* whether to fall back to full-predecessor injection; that decision lives in
|
|
11
|
+
* `resolveInjection` (resolve-injection.ts, task 5.10).
|
|
12
|
+
*
|
|
13
|
+
* Key correctness properties (design §6.3 postconditions):
|
|
14
|
+
* - `usedTokens <= budgetTokens`
|
|
15
|
+
* - every dropped/truncated field has a TruncationRecord AND emits a
|
|
16
|
+
* `context_truncated` event (rc-9 — never silently lose a field; the base
|
|
17
|
+
* proposal `break`ed on budget exhaustion, dropping remaining fields
|
|
18
|
+
* without record — ERR-002)
|
|
19
|
+
* - identical input always yields identical output (total order by
|
|
20
|
+
* (rank ASC, path ASC), no randomness, no time dependency)
|
|
21
|
+
* - unknown values go through `safeStringifyPreview` (rc-8) before token
|
|
22
|
+
* estimation
|
|
23
|
+
*
|
|
24
|
+
* budgetTokens scope (design §6.2.1 / §6.3 — MUST be reflected in comments):
|
|
25
|
+
* covers ONLY manifest-declared injection fields (tier0/tier1/tier2). Does NOT
|
|
26
|
+
* include core grounding, runner base instructions, or output-schema
|
|
27
|
+
* descriptions. `usedTokens <= budgetTokens` is an injection-field budget
|
|
28
|
+
* ceiling, NOT a prompt-total-length hard cap.
|
|
29
|
+
*/
|
|
30
|
+
import { rankOf, declaredFields } from './context-manifest.js';
|
|
31
|
+
import { safeStringifyPreview } from '../adapter/output-repair-contract.js';
|
|
32
|
+
/** char/4 heuristic; no tokenizer dependency. Monotonically non-decreasing, pure. */
|
|
33
|
+
export function estimateTokens(text) {
|
|
34
|
+
return Math.ceil(text.length / 4);
|
|
35
|
+
}
|
|
36
|
+
/** Max chars of a single field's serialized preview before token estimation. */
|
|
37
|
+
export const FIELD_PREVIEW_MAX_CHARS = 600;
|
|
38
|
+
/**
|
|
39
|
+
* Below this remaining budget, a field is dropped whole rather than
|
|
40
|
+
* partially truncated — a partial slice shorter than this carries too little
|
|
41
|
+
* signal to be worth the slot. Expressed in tokens (≈ 4 chars each).
|
|
42
|
+
*/
|
|
43
|
+
export const MIN_USEFUL_TOKENS = 8;
|
|
44
|
+
/** Appended to partially-truncated field text so truncation is explicit (rc-9). */
|
|
45
|
+
export const TRUNCATION_MARKER = '…[budget-truncated]';
|
|
46
|
+
/**
|
|
47
|
+
* Allocate manifest-declared fields into the token budget (design §6.3).
|
|
48
|
+
*
|
|
49
|
+
* Preconditions: `manifest.budgetTokens > 0`; `available` values are `unknown`
|
|
50
|
+
* (rc-1) and are narrowed only via `safeStringifyPreview`.
|
|
51
|
+
*
|
|
52
|
+
* Postconditions:
|
|
53
|
+
* - `usedTokens <= budgetTokens`
|
|
54
|
+
* - every dropped/truncated field has a TruncationRecord and emitted a
|
|
55
|
+
* `context_truncated` event (rc-9)
|
|
56
|
+
* - identical input → identical output (total order, deterministic)
|
|
57
|
+
*
|
|
58
|
+
* Loop invariant while traversing: `usedTokens + remainingBudget === budgetTokens`
|
|
59
|
+
* (until a partial truncate zeroes remaining).
|
|
60
|
+
*
|
|
61
|
+
* NOTE: this function does NOT perform the information-floor fallback (design
|
|
62
|
+
* §6.2.2). The fallback is decided by `resolveInjection` after reading this
|
|
63
|
+
* function's `absent` array.
|
|
64
|
+
*/
|
|
65
|
+
export function allocateContext(manifest, available, emit) {
|
|
66
|
+
const paths = declaredFields(manifest);
|
|
67
|
+
const scored = [];
|
|
68
|
+
const absent = [];
|
|
69
|
+
// Score every present path; record absent ones.
|
|
70
|
+
for (const p of paths) {
|
|
71
|
+
if (!available.has(p)) {
|
|
72
|
+
absent.push(p);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const text = safeStringifyPreview(available.get(p), FIELD_PREVIEW_MAX_CHARS);
|
|
76
|
+
scored.push({
|
|
77
|
+
path: p,
|
|
78
|
+
text,
|
|
79
|
+
tokens: estimateTokens(text),
|
|
80
|
+
rank: rankOf(p, manifest),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// Total order: (rank ASC, path ASC). Deterministic regardless of map
|
|
84
|
+
// insertion order or tier declaration order.
|
|
85
|
+
scored.sort((a, b) => a.rank - b.rank || (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
|
|
86
|
+
const fields = {};
|
|
87
|
+
const truncated = [];
|
|
88
|
+
let remaining = manifest.budgetTokens;
|
|
89
|
+
for (const f of scored) {
|
|
90
|
+
if (f.tokens <= remaining) {
|
|
91
|
+
// Fits fully.
|
|
92
|
+
fields[f.path] = f.text;
|
|
93
|
+
remaining -= f.tokens;
|
|
94
|
+
}
|
|
95
|
+
else if (remaining > MIN_USEFUL_TOKENS) {
|
|
96
|
+
// Partial truncate: keep a prefix that fits, mark explicitly.
|
|
97
|
+
const keptChars = Math.max(0, remaining * 4 - TRUNCATION_MARKER.length);
|
|
98
|
+
const kept = f.text.slice(0, keptChars) + TRUNCATION_MARKER;
|
|
99
|
+
fields[f.path] = kept;
|
|
100
|
+
const rec = {
|
|
101
|
+
fieldPath: f.path,
|
|
102
|
+
reason: 'partially_truncated',
|
|
103
|
+
remainingBudgetTokens: remaining,
|
|
104
|
+
keptChars: kept.length,
|
|
105
|
+
droppedChars: f.text.length - kept.length,
|
|
106
|
+
};
|
|
107
|
+
truncated.push(rec);
|
|
108
|
+
emit({
|
|
109
|
+
type: 'context_truncated',
|
|
110
|
+
runnerKind: manifest.runnerKind,
|
|
111
|
+
manifestId: manifest.manifestId,
|
|
112
|
+
fieldPath: f.path,
|
|
113
|
+
reason: rec.reason,
|
|
114
|
+
remainingBudgetTokens: remaining,
|
|
115
|
+
});
|
|
116
|
+
remaining = 0;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Drop whole: remaining budget too small for a useful partial. Do NOT
|
|
120
|
+
// break — keep traversing so every remaining field is recorded (rc-9 /
|
|
121
|
+
// ERR-002: the base proposal broke here, silently losing the rest).
|
|
122
|
+
const rec = {
|
|
123
|
+
fieldPath: f.path,
|
|
124
|
+
reason: 'budget_exceeded',
|
|
125
|
+
remainingBudgetTokens: remaining,
|
|
126
|
+
keptChars: 0,
|
|
127
|
+
droppedChars: f.text.length,
|
|
128
|
+
};
|
|
129
|
+
truncated.push(rec);
|
|
130
|
+
emit({
|
|
131
|
+
type: 'context_truncated',
|
|
132
|
+
runnerKind: manifest.runnerKind,
|
|
133
|
+
manifestId: manifest.manifestId,
|
|
134
|
+
fieldPath: f.path,
|
|
135
|
+
reason: rec.reason,
|
|
136
|
+
remainingBudgetTokens: remaining,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
manifestId: manifest.manifestId,
|
|
142
|
+
fields,
|
|
143
|
+
truncated,
|
|
144
|
+
absent,
|
|
145
|
+
usedTokens: manifest.budgetTokens - remaining,
|
|
146
|
+
budgetTokens: manifest.budgetTokens,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=prompt-budget-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-budget-manager.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/prompt-budget-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 1 — information-floor fallback wrapper (design §6.2.2).
|
|
3
|
+
*
|
|
4
|
+
* Pure logic only (Core vs Plugin boundary).
|
|
5
|
+
*
|
|
6
|
+
* Layer 1's semantics are "focus + budget control WITHOUT going below the
|
|
7
|
+
* information level of the flag-off baseline" (INV-FLOOR). Today dreamer
|
|
8
|
+
* already receives the predecessor's FULL contentJson (F13). Switching to a
|
|
9
|
+
* manifest-selected subset could make the prompt thinner — the opposite of the
|
|
10
|
+
* goal. So `resolveInjection` runs `allocateContext` first, then decides
|
|
11
|
+
* whether the resolved context is too sparse to use; if so it falls back to
|
|
12
|
+
* the legacy full-predecessor injection (NOT a thinner prompt) and emits a
|
|
13
|
+
* structured `manifest_resolution_insufficient` event (rc-9).
|
|
14
|
+
*
|
|
15
|
+
* The fallback decision lives HERE (the caller), not inside `allocateContext`
|
|
16
|
+
* — `allocateContext` stays a pure allocation function. The `absent` array
|
|
17
|
+
* `allocateContext` returns doubles as the fallback-judgement input.
|
|
18
|
+
*/
|
|
19
|
+
import type { ContextManifest } from './context-manifest.js';
|
|
20
|
+
import { type AllocatedContext, type ContextTruncatedEvent } from './prompt-budget-manager.js';
|
|
21
|
+
/** Initial value; dogfood-tunable (design §6.2.2). */
|
|
22
|
+
export declare const MANIFEST_ABSENT_RATIO_THRESHOLD = 0.5;
|
|
23
|
+
export interface ManifestResolutionInsufficientEvent {
|
|
24
|
+
readonly type: 'manifest_resolution_insufficient';
|
|
25
|
+
readonly runnerKind: ContextManifest['runnerKind'];
|
|
26
|
+
readonly manifestId: string;
|
|
27
|
+
readonly absentCount: number;
|
|
28
|
+
readonly declaredCount: number;
|
|
29
|
+
readonly absentRatio: number;
|
|
30
|
+
readonly fallback: 'full_predecessor_injection';
|
|
31
|
+
}
|
|
32
|
+
export type ResolveInjectionEmit = ContextTruncatedEvent | ManifestResolutionInsufficientEvent;
|
|
33
|
+
export type ResolveInjectionResult = {
|
|
34
|
+
readonly kind: 'focused';
|
|
35
|
+
readonly allocated: AllocatedContext;
|
|
36
|
+
readonly fellBack: false;
|
|
37
|
+
} | {
|
|
38
|
+
readonly kind: 'fallback';
|
|
39
|
+
readonly allocated: AllocatedContext;
|
|
40
|
+
readonly fellBack: true;
|
|
41
|
+
readonly reason: 'empty_allocation' | 'tier1_all_absent' | 'absent_ratio_exceeded';
|
|
42
|
+
readonly absentRatio: number;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Resolve the injection for a runner: allocate per the manifest, then decide
|
|
46
|
+
* whether to fall back to the legacy full-predecessor injection (design §6.2.2).
|
|
47
|
+
*
|
|
48
|
+
* The caller is responsible for:
|
|
49
|
+
* - providing the `available` map (built from the loaded predecessor's
|
|
50
|
+
* summary/predecessorSummary — Layer 0)
|
|
51
|
+
* - acting on `result.kind`: 'focused' → use `allocated.fields`;
|
|
52
|
+
* 'fallback' → use the legacy `predecessorOutput` (F13) instead
|
|
53
|
+
* - passing through ALL events (both `context_truncated` from the allocation
|
|
54
|
+
* attempt AND `manifest_resolution_insufficient` when fallback fires)
|
|
55
|
+
*
|
|
56
|
+
* When the fallback fires, the `allocated` is still returned (with its
|
|
57
|
+
* `context_truncated` events already emitted) so Layer 3 can surface "what
|
|
58
|
+
* would have been truncated if we'd used the manifest" alongside the
|
|
59
|
+
* `manifest_resolution_insufficient` degradation.
|
|
60
|
+
*/
|
|
61
|
+
export declare function resolveInjection(manifest: ContextManifest, available: ReadonlyMap<string, unknown>, emit: (event: ResolveInjectionEmit) => void): ResolveInjectionResult;
|
|
62
|
+
//# sourceMappingURL=resolve-injection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-injection.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/resolve-injection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAEpC,sDAAsD;AACtD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,IAAI,EAAE,kCAAkC,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,mCAAmC,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,uBAAuB,CAAC;IACnF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEN;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,IAAI,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAC1C,sBAAsB,CA0CxB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 1 — information-floor fallback wrapper (design §6.2.2).
|
|
3
|
+
*
|
|
4
|
+
* Pure logic only (Core vs Plugin boundary).
|
|
5
|
+
*
|
|
6
|
+
* Layer 1's semantics are "focus + budget control WITHOUT going below the
|
|
7
|
+
* information level of the flag-off baseline" (INV-FLOOR). Today dreamer
|
|
8
|
+
* already receives the predecessor's FULL contentJson (F13). Switching to a
|
|
9
|
+
* manifest-selected subset could make the prompt thinner — the opposite of the
|
|
10
|
+
* goal. So `resolveInjection` runs `allocateContext` first, then decides
|
|
11
|
+
* whether the resolved context is too sparse to use; if so it falls back to
|
|
12
|
+
* the legacy full-predecessor injection (NOT a thinner prompt) and emits a
|
|
13
|
+
* structured `manifest_resolution_insufficient` event (rc-9).
|
|
14
|
+
*
|
|
15
|
+
* The fallback decision lives HERE (the caller), not inside `allocateContext`
|
|
16
|
+
* — `allocateContext` stays a pure allocation function. The `absent` array
|
|
17
|
+
* `allocateContext` returns doubles as the fallback-judgement input.
|
|
18
|
+
*/
|
|
19
|
+
import { declaredFields } from './context-manifest.js';
|
|
20
|
+
import { allocateContext, } from './prompt-budget-manager.js';
|
|
21
|
+
/** Initial value; dogfood-tunable (design §6.2.2). */
|
|
22
|
+
export const MANIFEST_ABSENT_RATIO_THRESHOLD = 0.5;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve the injection for a runner: allocate per the manifest, then decide
|
|
25
|
+
* whether to fall back to the legacy full-predecessor injection (design §6.2.2).
|
|
26
|
+
*
|
|
27
|
+
* The caller is responsible for:
|
|
28
|
+
* - providing the `available` map (built from the loaded predecessor's
|
|
29
|
+
* summary/predecessorSummary — Layer 0)
|
|
30
|
+
* - acting on `result.kind`: 'focused' → use `allocated.fields`;
|
|
31
|
+
* 'fallback' → use the legacy `predecessorOutput` (F13) instead
|
|
32
|
+
* - passing through ALL events (both `context_truncated` from the allocation
|
|
33
|
+
* attempt AND `manifest_resolution_insufficient` when fallback fires)
|
|
34
|
+
*
|
|
35
|
+
* When the fallback fires, the `allocated` is still returned (with its
|
|
36
|
+
* `context_truncated` events already emitted) so Layer 3 can surface "what
|
|
37
|
+
* would have been truncated if we'd used the manifest" alongside the
|
|
38
|
+
* `manifest_resolution_insufficient` degradation.
|
|
39
|
+
*/
|
|
40
|
+
export function resolveInjection(manifest, available, emit) {
|
|
41
|
+
const allocated = allocateContext(manifest, available, (e) => emit(e));
|
|
42
|
+
const declared = declaredFields(manifest);
|
|
43
|
+
const declaredCount = declared.length;
|
|
44
|
+
const absentCount = allocated.absent.length;
|
|
45
|
+
// Guard against divide-by-zero: a manifest with no declared fields is itself
|
|
46
|
+
// malformed (validateManifest requires budget>0 but not non-empty tiers); we
|
|
47
|
+
// treat an empty declaration as an empty-allocation fallback.
|
|
48
|
+
const absentRatio = declaredCount > 0 ? absentCount / declaredCount : 1;
|
|
49
|
+
const fallbackEvent = () => ({
|
|
50
|
+
type: 'manifest_resolution_insufficient',
|
|
51
|
+
runnerKind: manifest.runnerKind,
|
|
52
|
+
manifestId: manifest.manifestId,
|
|
53
|
+
absentCount,
|
|
54
|
+
declaredCount,
|
|
55
|
+
absentRatio,
|
|
56
|
+
fallback: 'full_predecessor_injection',
|
|
57
|
+
});
|
|
58
|
+
// Fallback trigger 1: nothing was allocated (empty allocation).
|
|
59
|
+
if (Object.keys(allocated.fields).length === 0) {
|
|
60
|
+
emit(fallbackEvent());
|
|
61
|
+
return { kind: 'fallback', allocated, fellBack: true, reason: 'empty_allocation', absentRatio };
|
|
62
|
+
}
|
|
63
|
+
// Fallback trigger 2: all tier1-declared fields are absent. tier1 holds the
|
|
64
|
+
// bulk of the structured context; if none of it resolved, the focused
|
|
65
|
+
// context is too thin to beat the legacy full-predecessor injection.
|
|
66
|
+
const tier1AllAbsent = manifest.tier1.length > 0 && manifest.tier1.every((p) => allocated.absent.includes(p));
|
|
67
|
+
if (tier1AllAbsent) {
|
|
68
|
+
emit(fallbackEvent());
|
|
69
|
+
return { kind: 'fallback', allocated, fellBack: true, reason: 'tier1_all_absent', absentRatio };
|
|
70
|
+
}
|
|
71
|
+
// Fallback trigger 3: absent ratio exceeds the threshold.
|
|
72
|
+
if (absentRatio > MANIFEST_ABSENT_RATIO_THRESHOLD) {
|
|
73
|
+
emit(fallbackEvent());
|
|
74
|
+
return { kind: 'fallback', allocated, fellBack: true, reason: 'absent_ratio_exceeded', absentRatio };
|
|
75
|
+
}
|
|
76
|
+
return { kind: 'focused', allocated, fellBack: false };
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=resolve-injection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-injection.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/resolve-injection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AAEpC,sDAAsD;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AA8BnD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAyB,EACzB,SAAuC,EACvC,IAA2C;IAE3C,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,GAAwC,EAAE,CAAC,CAAC;QAChE,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,WAAW;QACX,aAAa;QACb,WAAW;QACX,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IAEH,gEAAgE;IAChE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,4EAA4E;IAC5E,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,cAAc,GAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,0DAA0D;IAC1D,IAAI,WAAW,GAAG,+BAA+B,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAC;IACvG,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAkB,KAAK,eAAe,EAAqB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"scribe-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PDRuntimeError, isPDErrorCategory } from '../error-categories.js';
|
|
2
2
|
import { hydratePITaskRecord } from './pitask-metadata.js';
|
|
3
3
|
import { ScribePromptBuilder } from './scribe-prompt-builder.js';
|
|
4
|
+
import { SCRIBE_MANIFEST } from './context-manifests.js';
|
|
4
5
|
import { injectRunnerLineageIfAbsent } from './peer-runner-contracts.js';
|
|
5
6
|
import { BasePeerRunner } from '../runner/base-peer-runner.js';
|
|
6
7
|
/**
|
|
@@ -106,6 +107,15 @@ export class ScribeRunner extends BasePeerRunner {
|
|
|
106
107
|
catch {
|
|
107
108
|
parsedPhilosopherArtifact = context.philosopherArtifact;
|
|
108
109
|
}
|
|
110
|
+
// Layer 1 (design §6.2/§6.3, task 5.9): resolve the scribe manifest against
|
|
111
|
+
// the loaded philosopher predecessor (carries dreamer 5-dim via its
|
|
112
|
+
// predecessorSummary). Focused → inject only allocated summary fields;
|
|
113
|
+
// fallback → legacy full philosopherArtifact; disabled → unchanged.
|
|
114
|
+
const philosopherPred = toPhilosopherPredecessor(context);
|
|
115
|
+
const resolved = this.resolveContextInjection(taskId, SCRIBE_MANIFEST, philosopherPred.contentJson);
|
|
116
|
+
if (resolved.mode === 'focused') {
|
|
117
|
+
parsedPhilosopherArtifact = resolved.fields;
|
|
118
|
+
}
|
|
109
119
|
const builder = new ScribePromptBuilder({ coreGrounding, outputLanguage: this.resolvedOptions.outputLanguage });
|
|
110
120
|
const { message } = builder.buildPrompt({
|
|
111
121
|
taskId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scribe-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scribe-runner.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/scribe-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 1 — summary field reader (design §6.6 read-side convention).
|
|
3
|
+
*
|
|
4
|
+
* Pure logic only (Core vs Plugin boundary). Builds the `available` map that
|
|
5
|
+
* `allocateContext` / `resolveInjection` consume, from a runner's loaded
|
|
6
|
+
* predecessor contentJson (which carries the Layer 0 `summary` /
|
|
7
|
+
* `predecessorSummary` envelope).
|
|
8
|
+
*
|
|
9
|
+
* Path convention (design §6.6):
|
|
10
|
+
* `<stage>.summary.headline` → contentJson.summary.headline
|
|
11
|
+
* `<stage>.summary.<key>` → contentJson.summary.fields[key]
|
|
12
|
+
* `<stage>.predecessorSummary.headline` → contentJson.predecessorSummary.summary.headline
|
|
13
|
+
* `<stage>.predecessorSummary.<key>` → contentJson.predecessorSummary.summary.fields[key]
|
|
14
|
+
*
|
|
15
|
+
* The leading `<stage>.` segment is a logical namespace (pain / dreamer /
|
|
16
|
+
* philosopher / scribe / artificer / diagnosis); the reader does NOT look up
|
|
17
|
+
* the stage by name — it resolves `summary.*` / `predecessorSummary.*` against
|
|
18
|
+
* whatever predecessor contentJson the caller loaded. This is correct because
|
|
19
|
+
* each runner's manifest only references paths whose stage maps to that
|
|
20
|
+
* runner's actual loaded predecessor (e.g. dreamer's manifest references
|
|
21
|
+
* pain.summary.* / diagnosis.summary.* which arrive via the diag_router
|
|
22
|
+
* predecessor's summary + its forwarded predecessorSummary).
|
|
23
|
+
*
|
|
24
|
+
* rc-1 / rc-5: contentJson is `unknown`; all reads use `Object.hasOwn` and
|
|
25
|
+
* typeof guards, never `as` casts.
|
|
26
|
+
*/
|
|
27
|
+
/** Read a value nested under `summary` or `predecessorSummary` from contentJson. */
|
|
28
|
+
export declare function readSummaryField(fieldPath: string, predecessorContentJson: unknown): unknown | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Build the `available` map for allocateContext/resolveInjection from the
|
|
31
|
+
* manifest's declared paths and a single loaded predecessor contentJson.
|
|
32
|
+
*
|
|
33
|
+
* Paths not resolvable from this predecessor (including tier2 `raw.*` and
|
|
34
|
+
* stages not represented in the loaded object) are simply omitted from the
|
|
35
|
+
* map — allocateContext then records them in `absent`.
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildAvailableMap(manifestPaths: readonly string[], predecessorContentJson: unknown): ReadonlyMap<string, unknown>;
|
|
38
|
+
//# sourceMappingURL=summary-field-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-field-reader.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/summary-field-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuCH,oFAAoF;AACpF,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,OAAO,GAC9B,OAAO,GAAG,SAAS,CA0BrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,sBAAsB,EAAE,OAAO,GAC9B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAS9B"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer 1 — summary field reader (design §6.6 read-side convention).
|
|
3
|
+
*
|
|
4
|
+
* Pure logic only (Core vs Plugin boundary). Builds the `available` map that
|
|
5
|
+
* `allocateContext` / `resolveInjection` consume, from a runner's loaded
|
|
6
|
+
* predecessor contentJson (which carries the Layer 0 `summary` /
|
|
7
|
+
* `predecessorSummary` envelope).
|
|
8
|
+
*
|
|
9
|
+
* Path convention (design §6.6):
|
|
10
|
+
* `<stage>.summary.headline` → contentJson.summary.headline
|
|
11
|
+
* `<stage>.summary.<key>` → contentJson.summary.fields[key]
|
|
12
|
+
* `<stage>.predecessorSummary.headline` → contentJson.predecessorSummary.summary.headline
|
|
13
|
+
* `<stage>.predecessorSummary.<key>` → contentJson.predecessorSummary.summary.fields[key]
|
|
14
|
+
*
|
|
15
|
+
* The leading `<stage>.` segment is a logical namespace (pain / dreamer /
|
|
16
|
+
* philosopher / scribe / artificer / diagnosis); the reader does NOT look up
|
|
17
|
+
* the stage by name — it resolves `summary.*` / `predecessorSummary.*` against
|
|
18
|
+
* whatever predecessor contentJson the caller loaded. This is correct because
|
|
19
|
+
* each runner's manifest only references paths whose stage maps to that
|
|
20
|
+
* runner's actual loaded predecessor (e.g. dreamer's manifest references
|
|
21
|
+
* pain.summary.* / diagnosis.summary.* which arrive via the diag_router
|
|
22
|
+
* predecessor's summary + its forwarded predecessorSummary).
|
|
23
|
+
*
|
|
24
|
+
* rc-1 / rc-5: contentJson is `unknown`; all reads use `Object.hasOwn` and
|
|
25
|
+
* typeof guards, never `as` casts.
|
|
26
|
+
*/
|
|
27
|
+
function isRecord(value) {
|
|
28
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
29
|
+
}
|
|
30
|
+
/** Read `headline` or `<key>` from contentJson.summary. */
|
|
31
|
+
function readFromSummary(contentJson, subPath) {
|
|
32
|
+
if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'summary'))
|
|
33
|
+
return undefined;
|
|
34
|
+
const { summary } = contentJson;
|
|
35
|
+
if (!isRecord(summary))
|
|
36
|
+
return undefined;
|
|
37
|
+
// subPath is a bare field key (e.g. 'riskLevel') or 'headline'. The summary
|
|
38
|
+
// envelope (Layer 0 ArtifactSummary) stores structured fields on `summary.fields`
|
|
39
|
+
// and headline on `summary.headline`. Manifest paths use `<stage>.summary.<key>`
|
|
40
|
+
// WITHOUT a `fields.` prefix (design §6.6), so read `fields.<subPath>` first,
|
|
41
|
+
// then fall back to `summary.<subPath>` (covers headline + any flat values).
|
|
42
|
+
if (subPath === 'headline') {
|
|
43
|
+
return Object.hasOwn(summary, 'headline') ? summary.headline : undefined;
|
|
44
|
+
}
|
|
45
|
+
const fields = Object.hasOwn(summary, 'fields') ? summary.fields : undefined;
|
|
46
|
+
if (isRecord(fields) && Object.hasOwn(fields, subPath)) {
|
|
47
|
+
return fields[subPath];
|
|
48
|
+
}
|
|
49
|
+
if (Object.hasOwn(summary, subPath)) {
|
|
50
|
+
return summary[subPath];
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
/** Read `headline` or `<key>` from contentJson.predecessorSummary.summary. */
|
|
55
|
+
function readFromPredecessorSummary(contentJson, subPath) {
|
|
56
|
+
if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'predecessorSummary'))
|
|
57
|
+
return undefined;
|
|
58
|
+
const { predecessorSummary: pred } = contentJson;
|
|
59
|
+
if (!isRecord(pred) || !Object.hasOwn(pred, 'summary'))
|
|
60
|
+
return undefined;
|
|
61
|
+
// Delegate to readFromSummary on the predecessorSummary's own summary.
|
|
62
|
+
return readFromSummary(pred, subPath);
|
|
63
|
+
}
|
|
64
|
+
/** Read a value nested under `summary` or `predecessorSummary` from contentJson. */
|
|
65
|
+
export function readSummaryField(fieldPath, predecessorContentJson) {
|
|
66
|
+
// Strip the leading `<stage>.` namespace segment(s). A path like
|
|
67
|
+
// `pain.summary.rootSymptom` becomes `summary.rootSymptom`; a path like
|
|
68
|
+
// `philosopher.predecessorSummary.betterDecision` becomes
|
|
69
|
+
// `predecessorSummary.betterDecision`. The namespace can be multi-segment
|
|
70
|
+
// (e.g. `dreamer.raw.candidates`), so strip everything up to and including
|
|
71
|
+
// the first occurrence of `summary.` or `predecessorSummary.` or `raw.`.
|
|
72
|
+
const summaryIdx = fieldPath.indexOf('summary.');
|
|
73
|
+
const predIdx = fieldPath.indexOf('predecessorSummary.');
|
|
74
|
+
const rawIdx = fieldPath.indexOf('raw.');
|
|
75
|
+
// tier2 raw.* paths are NOT resolvable at Layer 1 (they need Layer 2
|
|
76
|
+
// CandidateLineage). Return undefined → the path enters `absent`.
|
|
77
|
+
if (rawIdx >= 0 && (summaryIdx < 0 || rawIdx < summaryIdx) && (predIdx < 0 || rawIdx < predIdx)) {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
if (predIdx >= 0 && (summaryIdx < 0 || predIdx < summaryIdx)) {
|
|
81
|
+
const subPath = fieldPath.slice(predIdx + 'predecessorSummary.'.length);
|
|
82
|
+
return readFromPredecessorSummary(predecessorContentJson, subPath);
|
|
83
|
+
}
|
|
84
|
+
if (summaryIdx >= 0) {
|
|
85
|
+
const subPath = fieldPath.slice(summaryIdx + 'summary.'.length);
|
|
86
|
+
return readFromSummary(predecessorContentJson, subPath);
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Build the `available` map for allocateContext/resolveInjection from the
|
|
92
|
+
* manifest's declared paths and a single loaded predecessor contentJson.
|
|
93
|
+
*
|
|
94
|
+
* Paths not resolvable from this predecessor (including tier2 `raw.*` and
|
|
95
|
+
* stages not represented in the loaded object) are simply omitted from the
|
|
96
|
+
* map — allocateContext then records them in `absent`.
|
|
97
|
+
*/
|
|
98
|
+
export function buildAvailableMap(manifestPaths, predecessorContentJson) {
|
|
99
|
+
const map = new Map();
|
|
100
|
+
for (const path of manifestPaths) {
|
|
101
|
+
const value = readSummaryField(path, predecessorContentJson);
|
|
102
|
+
if (value !== undefined) {
|
|
103
|
+
map.set(path, value);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return map;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=summary-field-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-field-reader.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/summary-field-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ import { RunnerPhase } from './runner-phase.js';
|
|
|
28
28
|
import type { PeerRunnerOptions, ResolvedPeerRunnerOptions, PeerRunnerDeps, PeerRunnerConfig, PeerRunnerResult, PeerRunnerValidationResult, FailureContext } from './peer-runner-types.js';
|
|
29
29
|
import type { SummaryRunnerKind } from '../internalization/artifact-summary.js';
|
|
30
30
|
import { type LoadedPredecessorArtifact } from '../internalization/attach-summary-envelope.js';
|
|
31
|
+
import type { ContextManifest } from '../internalization/context-manifest.js';
|
|
31
32
|
/**
|
|
32
33
|
* Abstract base class for peer runners.
|
|
33
34
|
*
|
|
@@ -166,6 +167,41 @@ export declare abstract class BasePeerRunner<TContext extends {
|
|
|
166
167
|
* already loaded — this method performs zero artifact-store reads (F3).
|
|
167
168
|
*/
|
|
168
169
|
protected buildArtifactContentJson(taskId: string, runnerKind: SummaryRunnerKind, output: unknown, loadedPredecessor: LoadedPredecessorArtifact | null): string;
|
|
170
|
+
/**
|
|
171
|
+
* Whether the Layer 1 `context_manifest_budget` flag is on. Returns false
|
|
172
|
+
* when effectiveConfig is absent (legacy: existing buildContext assembly).
|
|
173
|
+
*/
|
|
174
|
+
protected isContextManifestBudgetEnabled(): boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Resolve the cross-level context injection for a runner via the Layer 1
|
|
177
|
+
* manifest + budget path (design §6.2/§6.3/§6.2.2).
|
|
178
|
+
*
|
|
179
|
+
* Single wiring point shared by the 4 peer runners (task 5.9). Returns:
|
|
180
|
+
* - `{ mode: 'focused', fields }` — use the manifest-allocated fields as
|
|
181
|
+
* the focused context (a `Record<string,string>` of path → preview text)
|
|
182
|
+
* - `{ mode: 'fallback' }` — resolution was too sparse; the caller MUST
|
|
183
|
+
* fall back to the legacy full-predecessor injection (F13). The fallback
|
|
184
|
+
* emits exactly one `manifest_resolution_insufficient` event (rc-9).
|
|
185
|
+
* - `{ mode: 'disabled' }` — flag off; caller uses the existing assembly.
|
|
186
|
+
*
|
|
187
|
+
* `predecessorContentJson` is the loaded predecessor artifact's contentJson
|
|
188
|
+
* (the same object buildContext already holds — zero extra store reads, F3).
|
|
189
|
+
* It carries the Layer 0 `summary` / `predecessorSummary` envelope; the
|
|
190
|
+
* summary-field-reader extracts the manifest-declared paths from it.
|
|
191
|
+
*
|
|
192
|
+
* budgetTokens scope (design §6.2.1): covers ONLY manifest-declared fields.
|
|
193
|
+
*
|
|
194
|
+
* `taskId` is used for telemetry event attribution (runnerKind comes from
|
|
195
|
+
* the manifest itself via event.runnerKind).
|
|
196
|
+
*/
|
|
197
|
+
protected resolveContextInjection(taskId: string, manifest: ContextManifest, predecessorContentJson: unknown): {
|
|
198
|
+
mode: 'focused';
|
|
199
|
+
fields: Readonly<Record<string, string>>;
|
|
200
|
+
} | {
|
|
201
|
+
mode: 'fallback';
|
|
202
|
+
} | {
|
|
203
|
+
mode: 'disabled';
|
|
204
|
+
};
|
|
169
205
|
/**
|
|
170
206
|
* Task 12: Construct an AgentDraftPayload from the permanent-failure
|
|
171
207
|
* context and write it to pending_agent_drafts via the injected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-peer-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/runner/base-peer-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EACV,gBAAgB,EAChB,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,EACf,MAAM,wBAAwB,CAAC;AAUhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"base-peer-runner.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/runner/base-peer-runner.ts"],"names":[],"mappings":"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"}
|