@phamvuhoang/otto-core 0.13.0 → 0.15.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/cli-help.d.ts +10 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +18 -1
- package/dist/cli-help.js.map +1 -1
- package/dist/context-budget.d.ts +78 -0
- package/dist/context-budget.d.ts.map +1 -0
- package/dist/context-budget.js +114 -0
- package/dist/context-budget.js.map +1 -0
- package/dist/context-report-cli.d.ts +36 -0
- package/dist/context-report-cli.d.ts.map +1 -0
- package/dist/context-report-cli.js +81 -0
- package/dist/context-report-cli.js.map +1 -0
- package/dist/context-report.d.ts +40 -0
- package/dist/context-report.d.ts.map +1 -0
- package/dist/context-report.js +88 -0
- package/dist/context-report.js.map +1 -0
- package/dist/eval-run.d.ts +16 -0
- package/dist/eval-run.d.ts.map +1 -1
- package/dist/eval-run.js +66 -1
- package/dist/eval-run.js.map +1 -1
- package/dist/eval.d.ts +2 -0
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +5 -0
- package/dist/eval.js.map +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/iteration-compaction.d.ts +73 -0
- package/dist/iteration-compaction.d.ts.map +1 -0
- package/dist/iteration-compaction.js +105 -0
- package/dist/iteration-compaction.js.map +1 -0
- package/dist/loop.d.ts +4 -0
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +25 -6
- package/dist/loop.js.map +1 -1
- package/dist/memory.d.ts +56 -0
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +0 -0
- package/dist/memory.js.map +1 -1
- package/dist/read-dedup.d.ts +84 -0
- package/dist/read-dedup.d.ts.map +1 -0
- package/dist/read-dedup.js +96 -0
- package/dist/read-dedup.js.map +1 -0
- package/dist/risk.d.ts +7 -0
- package/dist/risk.d.ts.map +1 -1
- package/dist/risk.js +17 -0
- package/dist/risk.js.map +1 -1
- package/dist/run-bin.d.ts.map +1 -1
- package/dist/run-bin.js +17 -0
- package/dist/run-bin.js.map +1 -1
- package/dist/run-report.d.ts +25 -0
- package/dist/run-report.d.ts.map +1 -1
- package/dist/run-report.js.map +1 -1
- package/dist/runner.d.ts +4 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/runs-cli.d.ts +43 -0
- package/dist/runs-cli.d.ts.map +1 -0
- package/dist/runs-cli.js +96 -0
- package/dist/runs-cli.js.map +1 -0
- package/dist/skills-cli.d.ts +39 -0
- package/dist/skills-cli.d.ts.map +1 -0
- package/dist/skills-cli.js +137 -0
- package/dist/skills-cli.js.map +1 -0
- package/dist/skills.d.ts +195 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +320 -0
- package/dist/skills.js.map +1 -0
- package/dist/stage-exec.d.ts.map +1 -1
- package/dist/stage-exec.js +10 -3
- package/dist/stage-exec.js.map +1 -1
- package/dist/tokens.d.ts +21 -0
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +20 -0
- package/dist/tokens.js.map +1 -1
- package/package.json +1 -1
package/dist/cli-help.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ export type CliFlags = {
|
|
|
4
4
|
help: boolean;
|
|
5
5
|
version: boolean;
|
|
6
6
|
printConfig: boolean;
|
|
7
|
+
/** `--context-report` toggle (default false; issue #62 P7). Prints the latest
|
|
8
|
+
* run's per-stage context composition + token slope, then exits. */
|
|
9
|
+
contextReport: boolean;
|
|
7
10
|
noKeepAlive: boolean;
|
|
8
11
|
maxRetries?: number;
|
|
9
12
|
detach: boolean;
|
|
@@ -30,6 +33,9 @@ export type CliFlags = {
|
|
|
30
33
|
reviewPanel: boolean;
|
|
31
34
|
/** `--adaptive-router` toggle (default false; opt-in, issue #41 P2). */
|
|
32
35
|
adaptiveRouter: boolean;
|
|
36
|
+
/** `--explain-routing` toggle (default false; issue #45 P6). Prints the
|
|
37
|
+
* adaptive router's per-iteration reasoning; no effect without the router. */
|
|
38
|
+
explainRouting: boolean;
|
|
33
39
|
watch: boolean;
|
|
34
40
|
watchIntervalSec?: number;
|
|
35
41
|
/**
|
|
@@ -147,6 +153,10 @@ export type PrintConfigOptions = {
|
|
|
147
153
|
fallbackError?: string;
|
|
148
154
|
/** Resolved review lenses (empty array = single reviewer). */
|
|
149
155
|
reviewLenses?: string[];
|
|
156
|
+
/** Adaptive router enabled (issue #41 P2). */
|
|
157
|
+
adaptiveRouter?: boolean;
|
|
158
|
+
/** Explain-routing enabled (issue #45 P6); no effect without the router. */
|
|
159
|
+
explainRouting?: boolean;
|
|
150
160
|
watch?: boolean;
|
|
151
161
|
watchIntervalSec?: number;
|
|
152
162
|
/**
|
package/dist/cli-help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,6EAA6E;IAC7E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;+EAC2E;IAC3E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmBjD;AAED,sCAAsC;AACtC,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;CAC/C,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,iBAAsB,GAC3B,QAAQ,
|
|
1
|
+
{"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-help.js
CHANGED
|
@@ -52,6 +52,7 @@ export function parseFlags(argv, opts = {}) {
|
|
|
52
52
|
let help = false;
|
|
53
53
|
let version = false;
|
|
54
54
|
let printConfig = false;
|
|
55
|
+
let contextReport = false;
|
|
55
56
|
let noKeepAlive = false;
|
|
56
57
|
let maxRetries;
|
|
57
58
|
let expectingMaxRetries = false;
|
|
@@ -72,6 +73,7 @@ export function parseFlags(argv, opts = {}) {
|
|
|
72
73
|
let autoSwitchOnLimit = false;
|
|
73
74
|
let reviewPanel = false;
|
|
74
75
|
let adaptiveRouter = false;
|
|
76
|
+
let explainRouting = false;
|
|
75
77
|
let watch = false;
|
|
76
78
|
let watchIntervalSec;
|
|
77
79
|
let expectingWatchInterval = false;
|
|
@@ -198,6 +200,8 @@ export function parseFlags(argv, opts = {}) {
|
|
|
198
200
|
version = true;
|
|
199
201
|
else if (a === "--print-config")
|
|
200
202
|
printConfig = true;
|
|
203
|
+
else if (a === "--context-report")
|
|
204
|
+
contextReport = true;
|
|
201
205
|
else if (a === "--no-keep-alive")
|
|
202
206
|
noKeepAlive = true;
|
|
203
207
|
else if (a === "--max-retries")
|
|
@@ -224,6 +228,8 @@ export function parseFlags(argv, opts = {}) {
|
|
|
224
228
|
reviewPanel = true;
|
|
225
229
|
else if (a === "--adaptive-router")
|
|
226
230
|
adaptiveRouter = true;
|
|
231
|
+
else if (a === "--explain-routing")
|
|
232
|
+
explainRouting = true;
|
|
227
233
|
else if (a === "--watch")
|
|
228
234
|
watch = true;
|
|
229
235
|
else if (a === "--watch-interval")
|
|
@@ -308,6 +314,7 @@ export function parseFlags(argv, opts = {}) {
|
|
|
308
314
|
help,
|
|
309
315
|
version,
|
|
310
316
|
printConfig,
|
|
317
|
+
contextReport,
|
|
311
318
|
noKeepAlive,
|
|
312
319
|
maxRetries,
|
|
313
320
|
detach,
|
|
@@ -321,6 +328,7 @@ export function parseFlags(argv, opts = {}) {
|
|
|
321
328
|
autoSwitchOnLimit,
|
|
322
329
|
reviewPanel,
|
|
323
330
|
adaptiveRouter,
|
|
331
|
+
explainRouting,
|
|
324
332
|
watch,
|
|
325
333
|
watchIntervalSec,
|
|
326
334
|
issue,
|
|
@@ -374,6 +382,7 @@ Flags:
|
|
|
374
382
|
-h, --help show this help and exit
|
|
375
383
|
-V, --version print bin + core version and exit
|
|
376
384
|
--print-config print resolved config + a preflight check of run prerequisites, then exit
|
|
385
|
+
--context-report print the latest run's per-stage context composition + token slope (from .otto/runs/), then exit
|
|
377
386
|
--no-keep-alive skip OS wake-lock acquisition (default: acquire system-sleep inhibitor for loop lifetime)
|
|
378
387
|
--max-retries <N> per-stage retry budget on transient failure (default: 3; 0 disables retries)
|
|
379
388
|
--detach fork the loop into a background process, print pid + log path, and exit (parent returns 0)
|
|
@@ -387,6 +396,7 @@ Flags:
|
|
|
387
396
|
--auto-switch-on-limit switch to the fallback runtime when the active one hits a limit (or OTTO_AUTO_SWITCH_ON_LIMIT=1 / config "autoSwitchOnLimit"; default: off)
|
|
388
397
|
--review-panel replace the single reviewer stage with correctness/security/tests lens reviewers + one synth commit (default: off)
|
|
389
398
|
--adaptive-router route review depth by per-iteration change risk: single reviewer (low) / lens subset (medium) / full panel (high) (or OTTO_ADAPTIVE_ROUTER=1; default: off)
|
|
399
|
+
--explain-routing print the adaptive router's per-iteration reasoning (change class, risk, chosen depth/lenses); requires --adaptive-router (or OTTO_EXPLAIN_ROUTING=1; default: off)
|
|
390
400
|
--branch <mode> where Otto commits: current (default) | branch (new branch) | worktree (isolated checkout)
|
|
391
401
|
--branch-prefix <p> branch name prefix for branch/worktree modes (default: otto/)
|
|
392
402
|
--branch-convention <c> validated branch namespace <c>/<task-key> (e.g. feat, feature, fix); normalizes a trailing slash; overrides --branch-prefix (or OTTO_BRANCH_CONVENTION; default: otto)
|
|
@@ -420,6 +430,7 @@ Environment variables:
|
|
|
420
430
|
OTTO_AUTO_SWITCH_ON_LIMIT switch to the fallback runtime on a limit when truthy (1/true/yes/on); same as --auto-switch-on-limit (default: off).
|
|
421
431
|
OTTO_REVIEW_LENSES comma-separated lens list for --review-panel (default: correctness,security,tests).
|
|
422
432
|
OTTO_ADAPTIVE_ROUTER route review depth by change risk when truthy (1/true/yes/on); same as --adaptive-router (default: off).
|
|
433
|
+
OTTO_EXPLAIN_ROUTING print the adaptive router's per-iteration reasoning when truthy (1/true/yes/on); same as --explain-routing (default: off).
|
|
423
434
|
OTTO_WATCH_LABEL issue label to poll for in watch mode (default: "otto").
|
|
424
435
|
OTTO_INCLUDE_SUB_ISSUES set to 1/true/yes to enable --include-sub-issues without the flag.
|
|
425
436
|
OTTO_GITHUB_REPO scope otto-ghafk to a single GitHub repo ("owner/name"); same as --repo.
|
|
@@ -433,7 +444,7 @@ Environment variables:
|
|
|
433
444
|
`);
|
|
434
445
|
}
|
|
435
446
|
export function printConfig(bin, workspaceDir, packageDir, opts = {}) {
|
|
436
|
-
const { cliVersion, noKeepAlive = false, maxRetries = DEFAULT_MAX_RETRIES, detach = false, detachLogPath, notify = false, budget, cooldownMs, tokenMode = "off", tokenModeError, agentId = "claude", agentDisplayName = "Claude Code", agentSource = "default", agentError, fallbackAgentId, fallbackAgentDisplayName, fallbackSource, autoSwitchOnLimit = false, fallbackError, reviewLenses = [], watch = false, watchIntervalSec, watchLabel = process.env.OTTO_WATCH_LABEL?.trim() || "otto", watchScope, issue, includeSubIssues = false, maxWaitMs, mode, branchStrategy, branchPrefix, branchConvention, } = opts;
|
|
447
|
+
const { cliVersion, noKeepAlive = false, maxRetries = DEFAULT_MAX_RETRIES, detach = false, detachLogPath, notify = false, budget, cooldownMs, tokenMode = "off", tokenModeError, agentId = "claude", agentDisplayName = "Claude Code", agentSource = "default", agentError, fallbackAgentId, fallbackAgentDisplayName, fallbackSource, autoSwitchOnLimit = false, fallbackError, reviewLenses = [], adaptiveRouter = false, explainRouting = false, watch = false, watchIntervalSec, watchLabel = process.env.OTTO_WATCH_LABEL?.trim() || "otto", watchScope, issue, includeSubIssues = false, maxWaitMs, mode, branchStrategy, branchPrefix, branchConvention, } = opts;
|
|
437
448
|
const core = readCoreVersion();
|
|
438
449
|
const cli = cliVersion ?? "?";
|
|
439
450
|
const runner = process.env.OTTO_RUNNER?.trim() === "host" ? "host" : "sandbox";
|
|
@@ -471,6 +482,11 @@ export function printConfig(bin, workspaceDir, packageDir, opts = {}) {
|
|
|
471
482
|
const reviewStatus = reviewLenses.length
|
|
472
483
|
? `panel: ${reviewLenses.join(", ")}`
|
|
473
484
|
: "single reviewer";
|
|
485
|
+
const routingStatus = adaptiveRouter
|
|
486
|
+
? `adaptive${explainRouting ? " · explain on" : ""}`
|
|
487
|
+
: explainRouting
|
|
488
|
+
? "off (--explain-routing needs --adaptive-router)"
|
|
489
|
+
: "off";
|
|
474
490
|
const watchStatus = watch
|
|
475
491
|
? `on (every ${watchIntervalSec ?? 300}s, label "${watchLabel}")`
|
|
476
492
|
: "off";
|
|
@@ -502,6 +518,7 @@ export function printConfig(bin, workspaceDir, packageDir, opts = {}) {
|
|
|
502
518
|
token mode ${tokenModeStatus}
|
|
503
519
|
max-wait ${maxWaitMs != null ? `${Math.round(maxWaitMs / 60000)}m` : "6h (default)"}
|
|
504
520
|
review ${reviewStatus}
|
|
521
|
+
routing ${routingStatus}
|
|
505
522
|
branch ${branchStatus}
|
|
506
523
|
watch ${watchStatus}
|
|
507
524
|
scope ${scopeStatus}
|
package/dist/cli-help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-help.js","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-stage context budget (issue #62 P7, slice 8 — the final P7 substrate).
|
|
3
|
+
*
|
|
4
|
+
* A soft, model-aware ceiling on the *inline rendered prompt*: it compares a
|
|
5
|
+
* stage's estimated context footprint (slice 1's {@link ContextBreakdown}) to a
|
|
6
|
+
* fraction of the active model's context window, and — when the prompt exceeds
|
|
7
|
+
* the ceiling — recommends which compaction lever to pull. The recommendation
|
|
8
|
+
* points at the largest *reducible* filler: the commits block (slice 6's
|
|
9
|
+
* `compactCommits`) or the learnings block (slice 5's `boundLearnings`); the
|
|
10
|
+
* task source (`inputs`) and the workflow `playbook` are not P7-reducible.
|
|
11
|
+
*
|
|
12
|
+
* Soft, not a gate: exceeding the budget warns and recommends; it never blocks a
|
|
13
|
+
* run. Pure + INERT on the loop — nothing here runs a stage, renders a prompt,
|
|
14
|
+
* or compacts anything. Wiring this assessment into the loop (warn + trigger the
|
|
15
|
+
* slice-5/6 levers when over budget) is a later slice; this is the measurement
|
|
16
|
+
* substrate, mirroring how slices 1 and 4–7 shipped pure-then-wired.
|
|
17
|
+
*/
|
|
18
|
+
import type { ContextBreakdown, ContextCategory } from "./context-report.js";
|
|
19
|
+
/** Conservative window for an unrecognized or unset model spec. */
|
|
20
|
+
export declare const DEFAULT_CONTEXT_WINDOW_TOKENS = 200000;
|
|
21
|
+
/**
|
|
22
|
+
* Fraction of the model window the inline rendered prompt should stay under,
|
|
23
|
+
* leaving headroom for the agent's own tool reads and generated output. The
|
|
24
|
+
* ceiling is soft: crossing it warns and recommends compaction, never blocks.
|
|
25
|
+
*/
|
|
26
|
+
export declare const DEFAULT_CONTEXT_BUDGET_FRACTION = 0.25;
|
|
27
|
+
/** The model's total context window in tokens (loose match; default on miss). */
|
|
28
|
+
export declare function modelContextWindow(model: string | undefined): number;
|
|
29
|
+
/** The soft inline-prompt budget: a fraction of the model's context window. */
|
|
30
|
+
export declare function modelContextBudget(model: string | undefined, fraction?: number): number;
|
|
31
|
+
/** What to compact when a stage is over budget — the largest reducible filler. */
|
|
32
|
+
export type BudgetRecommendation = {
|
|
33
|
+
category: ContextCategory;
|
|
34
|
+
/** Chars that category currently occupies in the rendered prompt. */
|
|
35
|
+
chars: number;
|
|
36
|
+
/** The P7 lever that shrinks it. */
|
|
37
|
+
lever: string;
|
|
38
|
+
};
|
|
39
|
+
export type ContextBudgetAssessment = {
|
|
40
|
+
/** Estimated tokens of the rendered prompt (from the breakdown). */
|
|
41
|
+
estimatedTokens: number;
|
|
42
|
+
/** The soft ceiling applied (explicit `maxTokens` or model-derived). */
|
|
43
|
+
budgetTokens: number;
|
|
44
|
+
/** The model's full context window the budget is a fraction of. */
|
|
45
|
+
windowTokens: number;
|
|
46
|
+
overBudget: boolean;
|
|
47
|
+
/** Tokens over the budget; 0 when within budget. */
|
|
48
|
+
overByTokens: number;
|
|
49
|
+
/** Tokens of headroom left; 0 when over budget. */
|
|
50
|
+
headroomTokens: number;
|
|
51
|
+
/** estimatedTokens / budgetTokens; 0 when the budget is 0. */
|
|
52
|
+
ratio: number;
|
|
53
|
+
/** Present only when over budget AND a reducible category exists to compact. */
|
|
54
|
+
recommendation?: BudgetRecommendation;
|
|
55
|
+
};
|
|
56
|
+
/** Inputs that drive a context-budget assessment (issue #62 P7 slice 8). */
|
|
57
|
+
export type ContextBudgetContext = {
|
|
58
|
+
/** Active model spec; selects the window. Ignored when `maxTokens` is set. */
|
|
59
|
+
model?: string;
|
|
60
|
+
/** Explicit token ceiling; overrides the model-derived budget. */
|
|
61
|
+
maxTokens?: number;
|
|
62
|
+
/** Fraction of the window for the model-derived budget; default 0.25. */
|
|
63
|
+
fraction?: number;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Assess a stage's rendered-prompt footprint against the soft, model-aware
|
|
67
|
+
* budget, and — when over — recommend compacting the largest reducible filler
|
|
68
|
+
* (commits/learnings). Pure: takes the breakdown, returns the verdict; triggers
|
|
69
|
+
* nothing. The "warn + trigger compaction" wiring is a later slice.
|
|
70
|
+
*/
|
|
71
|
+
export declare function assessContextBudget(breakdown: ContextBreakdown, ctx?: ContextBudgetContext): ContextBudgetAssessment;
|
|
72
|
+
/**
|
|
73
|
+
* Render a budget assessment as a short, human-readable line. The `~` prefix
|
|
74
|
+
* marks the estimated-token figures (the budget itself is exact). When over
|
|
75
|
+
* budget with a reducible filler, the line names the category and lever to pull.
|
|
76
|
+
*/
|
|
77
|
+
export declare function formatContextBudget(a: ContextBudgetAssessment): string;
|
|
78
|
+
//# sourceMappingURL=context-budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-budget.d.ts","sourceRoot":"","sources":["../src/context-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiB7E,mEAAmE;AACnE,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQpE;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,QAAQ,GAAE,MAAwC,GACjD,MAAM,CAER;AAQD,kFAAkF;AAClF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,oEAAoE;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,oBAAoB,GAAG;IACjC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,GAAG,GAAE,oBAAyB,GAC7B,uBAAuB,CA+BzB;AAKD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,uBAAuB,GAAG,MAAM,CAWtE"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-stage context budget (issue #62 P7, slice 8 — the final P7 substrate).
|
|
3
|
+
*
|
|
4
|
+
* A soft, model-aware ceiling on the *inline rendered prompt*: it compares a
|
|
5
|
+
* stage's estimated context footprint (slice 1's {@link ContextBreakdown}) to a
|
|
6
|
+
* fraction of the active model's context window, and — when the prompt exceeds
|
|
7
|
+
* the ceiling — recommends which compaction lever to pull. The recommendation
|
|
8
|
+
* points at the largest *reducible* filler: the commits block (slice 6's
|
|
9
|
+
* `compactCommits`) or the learnings block (slice 5's `boundLearnings`); the
|
|
10
|
+
* task source (`inputs`) and the workflow `playbook` are not P7-reducible.
|
|
11
|
+
*
|
|
12
|
+
* Soft, not a gate: exceeding the budget warns and recommends; it never blocks a
|
|
13
|
+
* run. Pure + INERT on the loop — nothing here runs a stage, renders a prompt,
|
|
14
|
+
* or compacts anything. Wiring this assessment into the loop (warn + trigger the
|
|
15
|
+
* slice-5/6 levers when over budget) is a later slice; this is the measurement
|
|
16
|
+
* substrate, mirroring how slices 1 and 4–7 shipped pure-then-wired.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Known model context windows (tokens), matched by a lowercased substring of the
|
|
20
|
+
* model spec. Otto passes the spec opaquely to the CLI (see `resolveModelArgs`),
|
|
21
|
+
* so specs vary ("claude-opus-4-8", "sonnet", aliases); we match loosely and the
|
|
22
|
+
* 1M-context marker wins over the family default. Order matters: most specific
|
|
23
|
+
* (the 1M markers) first.
|
|
24
|
+
*/
|
|
25
|
+
const MODEL_CONTEXT_WINDOWS = [
|
|
26
|
+
["[1m]", 1_000_000],
|
|
27
|
+
["-1m", 1_000_000],
|
|
28
|
+
["opus", 200_000],
|
|
29
|
+
["sonnet", 200_000],
|
|
30
|
+
["haiku", 200_000],
|
|
31
|
+
];
|
|
32
|
+
/** Conservative window for an unrecognized or unset model spec. */
|
|
33
|
+
export const DEFAULT_CONTEXT_WINDOW_TOKENS = 200_000;
|
|
34
|
+
/**
|
|
35
|
+
* Fraction of the model window the inline rendered prompt should stay under,
|
|
36
|
+
* leaving headroom for the agent's own tool reads and generated output. The
|
|
37
|
+
* ceiling is soft: crossing it warns and recommends compaction, never blocks.
|
|
38
|
+
*/
|
|
39
|
+
export const DEFAULT_CONTEXT_BUDGET_FRACTION = 0.25;
|
|
40
|
+
/** The model's total context window in tokens (loose match; default on miss). */
|
|
41
|
+
export function modelContextWindow(model) {
|
|
42
|
+
const spec = (model ?? "").toLowerCase();
|
|
43
|
+
if (spec !== "") {
|
|
44
|
+
for (const [needle, window] of MODEL_CONTEXT_WINDOWS) {
|
|
45
|
+
if (spec.includes(needle))
|
|
46
|
+
return window;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return DEFAULT_CONTEXT_WINDOW_TOKENS;
|
|
50
|
+
}
|
|
51
|
+
/** The soft inline-prompt budget: a fraction of the model's context window. */
|
|
52
|
+
export function modelContextBudget(model, fraction = DEFAULT_CONTEXT_BUDGET_FRACTION) {
|
|
53
|
+
return Math.round(modelContextWindow(model) * fraction);
|
|
54
|
+
}
|
|
55
|
+
/** Categories a P7 lever can shrink, mapped to the lever that does it. */
|
|
56
|
+
const REDUCIBLE_LEVERS = {
|
|
57
|
+
commits: "inter-iteration commit compaction (compactCommits, slice 6)",
|
|
58
|
+
learnings: "bounded learnings injection (boundLearnings, slice 5)",
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Assess a stage's rendered-prompt footprint against the soft, model-aware
|
|
62
|
+
* budget, and — when over — recommend compacting the largest reducible filler
|
|
63
|
+
* (commits/learnings). Pure: takes the breakdown, returns the verdict; triggers
|
|
64
|
+
* nothing. The "warn + trigger compaction" wiring is a later slice.
|
|
65
|
+
*/
|
|
66
|
+
export function assessContextBudget(breakdown, ctx = {}) {
|
|
67
|
+
const windowTokens = modelContextWindow(ctx.model);
|
|
68
|
+
const budgetTokens = ctx.maxTokens ?? modelContextBudget(ctx.model, ctx.fraction);
|
|
69
|
+
const estimatedTokens = breakdown.estimatedTokens;
|
|
70
|
+
const overBudget = estimatedTokens > budgetTokens;
|
|
71
|
+
let recommendation;
|
|
72
|
+
if (overBudget) {
|
|
73
|
+
// Segments arrive sorted by chars descending (analyzeContext), so the first
|
|
74
|
+
// reducible one is the largest filler a P7 lever can shrink.
|
|
75
|
+
const top = breakdown.segments.find((s) => s.category in REDUCIBLE_LEVERS);
|
|
76
|
+
if (top) {
|
|
77
|
+
recommendation = {
|
|
78
|
+
category: top.category,
|
|
79
|
+
chars: top.chars,
|
|
80
|
+
lever: REDUCIBLE_LEVERS[top.category],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
estimatedTokens,
|
|
86
|
+
budgetTokens,
|
|
87
|
+
windowTokens,
|
|
88
|
+
overBudget,
|
|
89
|
+
overByTokens: Math.max(0, estimatedTokens - budgetTokens),
|
|
90
|
+
headroomTokens: Math.max(0, budgetTokens - estimatedTokens),
|
|
91
|
+
ratio: budgetTokens > 0 ? estimatedTokens / budgetTokens : 0,
|
|
92
|
+
recommendation,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const num = new Intl.NumberFormat("en-US");
|
|
96
|
+
const pct = new Intl.NumberFormat("en-US", { maximumFractionDigits: 1 });
|
|
97
|
+
/**
|
|
98
|
+
* Render a budget assessment as a short, human-readable line. The `~` prefix
|
|
99
|
+
* marks the estimated-token figures (the budget itself is exact). When over
|
|
100
|
+
* budget with a reducible filler, the line names the category and lever to pull.
|
|
101
|
+
*/
|
|
102
|
+
export function formatContextBudget(a) {
|
|
103
|
+
const head = `context budget: ~${num.format(a.estimatedTokens)} tokens / ` +
|
|
104
|
+
`${num.format(a.budgetTokens)} budget ` +
|
|
105
|
+
`(${pct.format(a.ratio * 100)}% of budget, ` +
|
|
106
|
+
`${num.format(a.windowTokens)}-token window)`;
|
|
107
|
+
if (!a.overBudget)
|
|
108
|
+
return `${head} — within budget`;
|
|
109
|
+
const tail = a.recommendation
|
|
110
|
+
? ` — compact ${a.recommendation.category} via ${a.recommendation.lever}`
|
|
111
|
+
: " — no P7-reducible filler to compact (inputs/playbook dominate)";
|
|
112
|
+
return `${head} — EXCEEDS by ${num.format(a.overByTokens)} tokens${tail}`;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=context-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../src/context-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type StageRecord } from "./run-report.js";
|
|
2
|
+
/**
|
|
3
|
+
* `otto-afk --context-report` read-only surface (issue #62 P7, slice 3).
|
|
4
|
+
*
|
|
5
|
+
* A pure formatter over the latest run bundle's per-stage context breakdowns
|
|
6
|
+
* (captured in slice 2 — {@link StageRecord.contextBreakdown}), mirroring
|
|
7
|
+
* `otto-runs` / `otto-inspect`: it answers "what filled the window each
|
|
8
|
+
* iteration, and is per-iteration token cost staying bounded?" — the
|
|
9
|
+
* measurement P7's later optimizations are judged against. Read-only; records
|
|
10
|
+
* nothing and runs no stage.
|
|
11
|
+
*/
|
|
12
|
+
/** Injectable host surface so the bin stays unit-testable (mirrors `RunsDeps`). */
|
|
13
|
+
export type ContextReportDeps = {
|
|
14
|
+
env: NodeJS.ProcessEnv;
|
|
15
|
+
cwd: string;
|
|
16
|
+
out: (msg: string) => void;
|
|
17
|
+
err: (msg: string) => void;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Render one run's per-stage context breakdowns into a compact composition +
|
|
21
|
+
* slope report. Pure: takes the already-read stage records, returns the string.
|
|
22
|
+
*
|
|
23
|
+
* - Per measured stage: its estimated tokens and per-category share (largest
|
|
24
|
+
* first, the order `analyzeContext` already sorts segments by).
|
|
25
|
+
* - Slope: first-third vs last-third average estimated tokens, with a
|
|
26
|
+
* growing/flat/shrinking label (±10% band) — the "is per-iteration cost
|
|
27
|
+
* bounded?" signal P7's success metric tracks. `n/a` until ≥2 stages measured.
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatContextReportRun(runId: string, stages: StageRecord[]): string;
|
|
30
|
+
/**
|
|
31
|
+
* Drive `--context-report`: read the latest run's stage records under
|
|
32
|
+
* `.otto/runs/` and print the composition + slope report. Read-only; resolves
|
|
33
|
+
* to the process exit code (1 only when there is no run to report on).
|
|
34
|
+
*/
|
|
35
|
+
export declare function runContextReport(deps?: ContextReportDeps): Promise<number>;
|
|
36
|
+
//# sourceMappingURL=context-report-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-report-cli.d.ts","sourceRoot":"","sources":["../src/context-report-cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGjF;;;;;;;;;GASG;AAEH,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,CAAC;AAgBF;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EAAE,GACpB,MAAM,CAyDR;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,GAAE,iBAA+B,GACpC,OAAO,CAAC,MAAM,CAAC,CAajB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { listRunIds, readStageRecords } from "./run-report.js";
|
|
3
|
+
import { formatCacheEfficiency, summarizeCacheEfficiency } from "./tokens.js";
|
|
4
|
+
const defaultDeps = {
|
|
5
|
+
env: process.env,
|
|
6
|
+
cwd: process.cwd(),
|
|
7
|
+
out: (m) => process.stdout.write(`${m}\n`),
|
|
8
|
+
err: (m) => process.stderr.write(`${m}\n`),
|
|
9
|
+
};
|
|
10
|
+
const num = new Intl.NumberFormat("en-US");
|
|
11
|
+
const pct = new Intl.NumberFormat("en-US", { maximumFractionDigits: 1 });
|
|
12
|
+
function avg(ns) {
|
|
13
|
+
return ns.reduce((a, b) => a + b, 0) / ns.length;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Render one run's per-stage context breakdowns into a compact composition +
|
|
17
|
+
* slope report. Pure: takes the already-read stage records, returns the string.
|
|
18
|
+
*
|
|
19
|
+
* - Per measured stage: its estimated tokens and per-category share (largest
|
|
20
|
+
* first, the order `analyzeContext` already sorts segments by).
|
|
21
|
+
* - Slope: first-third vs last-third average estimated tokens, with a
|
|
22
|
+
* growing/flat/shrinking label (±10% band) — the "is per-iteration cost
|
|
23
|
+
* bounded?" signal P7's success metric tracks. `n/a` until ≥2 stages measured.
|
|
24
|
+
*/
|
|
25
|
+
export function formatContextReportRun(runId, stages) {
|
|
26
|
+
const lines = [`Context report — run ${runId}`];
|
|
27
|
+
const measured = stages.filter((s) => s.contextBreakdown != null);
|
|
28
|
+
if (measured.length === 0) {
|
|
29
|
+
lines.push(" No context breakdown recorded for this run. Breakdowns are captured");
|
|
30
|
+
lines.push(" per stage from the P7 slice-2 build onward; older runs have none.");
|
|
31
|
+
return lines.join("\n");
|
|
32
|
+
}
|
|
33
|
+
lines.push(` ${measured.length} stage(s) measured`, "");
|
|
34
|
+
for (const s of measured) {
|
|
35
|
+
const b = s.contextBreakdown;
|
|
36
|
+
const shares = b.segments
|
|
37
|
+
.map((seg) => `${seg.category} ${pct.format(b.totalChars > 0 ? (seg.chars / b.totalChars) * 100 : 0)}%`)
|
|
38
|
+
.join(" · ");
|
|
39
|
+
lines.push(` iter${s.iteration} ${s.stage} ~${num.format(b.estimatedTokens)} tokens` +
|
|
40
|
+
(shares ? ` ${shares}` : ""));
|
|
41
|
+
}
|
|
42
|
+
lines.push("");
|
|
43
|
+
const toks = measured.map((s) => s.contextBreakdown.estimatedTokens);
|
|
44
|
+
if (toks.length < 2) {
|
|
45
|
+
lines.push(" Slope: n/a (need ≥2 measured stages)");
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const third = Math.max(1, Math.floor(toks.length / 3));
|
|
49
|
+
const firstAvg = avg(toks.slice(0, third));
|
|
50
|
+
const lastAvg = avg(toks.slice(-third));
|
|
51
|
+
const deltaPct = firstAvg > 0 ? ((lastAvg - firstAvg) / firstAvg) * 100 : 0;
|
|
52
|
+
const trend = deltaPct > 10 ? "growing" : deltaPct < -10 ? "shrinking" : "flat";
|
|
53
|
+
lines.push(` Slope (~tokens/stage): first-third avg ~${num.format(Math.round(firstAvg))} → last-third avg ~${num.format(Math.round(lastAvg))} (${deltaPct >= 0 ? "+" : ""}${pct.format(deltaPct)}%, ${trend})`);
|
|
54
|
+
}
|
|
55
|
+
// Cache efficiency (slice 4) — authoritative provider usage, independent of
|
|
56
|
+
// the estimated-token composition above. Drawn from EVERY stage's usage (not
|
|
57
|
+
// just measured ones); omitted when no input tokens were billed.
|
|
58
|
+
const cache = summarizeCacheEfficiency(stages.map((s) => s.usage));
|
|
59
|
+
if (cache.totalInputTokens > 0) {
|
|
60
|
+
lines.push("", ` ${formatCacheEfficiency(cache)}`);
|
|
61
|
+
}
|
|
62
|
+
return lines.join("\n");
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Drive `--context-report`: read the latest run's stage records under
|
|
66
|
+
* `.otto/runs/` and print the composition + slope report. Read-only; resolves
|
|
67
|
+
* to the process exit code (1 only when there is no run to report on).
|
|
68
|
+
*/
|
|
69
|
+
export async function runContextReport(deps = defaultDeps) {
|
|
70
|
+
const workspaceDir = resolve(deps.env.OTTO_WORKSPACE ?? deps.cwd);
|
|
71
|
+
const ids = listRunIds(workspaceDir);
|
|
72
|
+
if (ids.length === 0) {
|
|
73
|
+
deps.err(`No runs found under ${workspaceDir}/.otto/runs/. ` +
|
|
74
|
+
"Run Otto first, then re-run with --context-report.");
|
|
75
|
+
return 1;
|
|
76
|
+
}
|
|
77
|
+
const runId = ids[ids.length - 1];
|
|
78
|
+
deps.out(formatContextReportRun(runId, readStageRecords(workspaceDir, runId)));
|
|
79
|
+
return 0;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=context-report-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-report-cli.js","sourceRoot":"","sources":["../src/context-report-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoB,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAqB9E,MAAM,WAAW,GAAsB;IACrC,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzE,SAAS,GAAG,CAAC,EAAY;IACvB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EACb,MAAqB;IAErB,MAAM,KAAK,GAAa,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CACR,uEAAuE,CACxE,CAAC;QACF,KAAK,CAAC,IAAI,CACR,qEAAqE,CACtE,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,CAAC,gBAAiB,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ;aACtB,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAC3B,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CACxD,GAAG,CACP;aACA,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,SAAS,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS;YACzE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAiB,CAAC,eAAe,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QAChF,KAAK,CAAC,IAAI,CACR,6CAA6C,GAAG,CAAC,MAAM,CACrD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CACrB,sBAAsB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MACpD,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CACtC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,iEAAiE;IACjE,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA0B,WAAW;IAErC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CACN,uBAAuB,YAAY,gBAAgB;YACjD,oDAAoD,CACvD,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context telemetry (issue #62 P7, slice 1 — "measure before optimizing").
|
|
3
|
+
*
|
|
4
|
+
* A pure analyzer over a *rendered* stage prompt: it attributes the inline
|
|
5
|
+
* window footprint to the sections that actually fill it, so a later P7 slice
|
|
6
|
+
* (prefix caching, bounded learnings, compaction, read-dedup, budget) can prove
|
|
7
|
+
* it shrank the right thing. INERT on the loop — nothing here runs a stage or
|
|
8
|
+
* changes behavior; it only describes a string.
|
|
9
|
+
*
|
|
10
|
+
* Token counts are an estimate (`ceil(chars/4)`), labelled as such. The
|
|
11
|
+
* authoritative per-stage usage comes from the provider via `tokens.ts`; this
|
|
12
|
+
* module answers the orthogonal *composition* question ("which section is the
|
|
13
|
+
* prompt made of") that a single usage total cannot.
|
|
14
|
+
*/
|
|
15
|
+
export type ContextCategory = "commits" | "learnings" | "inputs" | "playbook";
|
|
16
|
+
export type ContextSegment = {
|
|
17
|
+
category: ContextCategory;
|
|
18
|
+
chars: number;
|
|
19
|
+
estimatedTokens: number;
|
|
20
|
+
};
|
|
21
|
+
export type ContextBreakdown = {
|
|
22
|
+
totalChars: number;
|
|
23
|
+
estimatedTokens: number;
|
|
24
|
+
/** Per-category footprint, sorted by chars descending; empty categories omitted. */
|
|
25
|
+
segments: ContextSegment[];
|
|
26
|
+
};
|
|
27
|
+
/** Standard rough token estimate: ~4 chars per token, rounded up. */
|
|
28
|
+
export declare function estimateTokens(chars: number): number;
|
|
29
|
+
/**
|
|
30
|
+
* Segment a rendered stage prompt into its context categories. The category
|
|
31
|
+
* char counts sum to the whole prompt: recognized blocks are attributed to
|
|
32
|
+
* their category, all remaining text falls to `playbook`.
|
|
33
|
+
*/
|
|
34
|
+
export declare function analyzeContext(prompt: string): ContextBreakdown;
|
|
35
|
+
/**
|
|
36
|
+
* Render a breakdown as a short, human-readable composition report. The `~`
|
|
37
|
+
* prefix marks the token figures as estimates, not authoritative billing.
|
|
38
|
+
*/
|
|
39
|
+
export declare function formatContextReport(b: ContextBreakdown): string;
|
|
40
|
+
//# sourceMappingURL=context-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-report.d.ts","sourceRoot":"","sources":["../src/context-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9E,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B,CAAC;AAEF,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AA8BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAwB/D;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAa/D"}
|