@sema-agent/core 1.345.0 → 1.346.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.
@@ -0,0 +1,164 @@
1
+ import { DEFAULT_MAX_TURNS } from "../core/runner/runtask.js";
2
+ import { FORK_DEFAULT_MAX_TURNS, SESSION_BG_DEFAULT_TIMEOUT_SEC, RETAIN_DEFAULT_TTL_MS, RETAIN_DEFAULT_MAX } from "../agents/subagent.js";
3
+ import { SESSION_DEFAULT_TTL_DAYS } from "../core/session-store.js";
4
+ export const CONFIG_CATALOG_VERSION = "sema-config@1";
5
+ export function describeConfigCatalog() {
6
+ const knobs = [
7
+ {
8
+ key: "limits.maxTurns",
9
+ recommended: DEFAULT_MAX_TURNS,
10
+ unit: "turns",
11
+ kind: "safety-net",
12
+ summary: "Runaway net, NOT the long-run knob: catches a wedged tool-call loop before it burns budget. A genuinely long task sets its own explicit bound. 0 = unbounded.",
13
+ precedence: "spec.limits.maxTurns > engine default",
14
+ },
15
+ {
16
+ key: "limits.timeoutSec",
17
+ recommended: null,
18
+ unit: "seconds",
19
+ kind: "budget",
20
+ summary: "Hard wall-clock budget for the task. Unset = unbounded. Setting it arms the deadline family (nudges, call caps, graceful finalize) by default.",
21
+ precedence: "spec.limits.timeoutSec > unset",
22
+ },
23
+ {
24
+ key: "limits.maxOutputTokens",
25
+ recommended: null,
26
+ unit: "tokens",
27
+ kind: "budget",
28
+ summary: "Per-REQUEST output cap (provider max_tokens). Unset = model default. Distinct from the cumulative budget maxTokens.",
29
+ precedence: "spec.limits.maxOutputTokens > model.maxTokens > provider default",
30
+ },
31
+ {
32
+ key: "limits.deadlineNudge",
33
+ recommended: true,
34
+ kind: "behavior",
35
+ summary: "Two one-shot convergence reminders (~80%/~95% of timeoutSec). Auto-ON when timeoutSec is set; no effect without it.",
36
+ precedence: "spec.limits.deadlineNudge > derived(timeoutSec set)",
37
+ },
38
+ {
39
+ key: "limits.callCapByDeadline",
40
+ recommended: true,
41
+ kind: "behavior",
42
+ summary: "Shrink each call's max_tokens to what remaining wall-clock can absorb (shrink-only). Auto-ON when timeoutSec is set.",
43
+ precedence: "spec.limits.callCapByDeadline > derived(timeoutSec set)",
44
+ },
45
+ {
46
+ key: "limits.gracefulFinalize",
47
+ recommended: true,
48
+ kind: "behavior",
49
+ summary: "One-shot finalize turn + write-out cushion + soft execution deadline when remaining time no longer fits a full cycle. Auto-ON when timeoutSec is set.",
50
+ precedence: "spec.limits.gracefulFinalize > derived(timeoutSec set)",
51
+ },
52
+ {
53
+ key: "budget.maxCostUsd",
54
+ recommended: null,
55
+ unit: "usd",
56
+ kind: "budget",
57
+ summary: "Cumulative spend cap for the task (hard-cancels the in-flight stream by default when crossed). Unset = unbounded.",
58
+ precedence: "spec.maxCostUsd > unset",
59
+ },
60
+ {
61
+ key: "budget.maxTokens",
62
+ recommended: null,
63
+ unit: "tokens",
64
+ kind: "budget",
65
+ summary: "Cumulative token budget for the task. Unset = unbounded.",
66
+ precedence: "spec.maxTokens > unset",
67
+ },
68
+ {
69
+ key: "budget.totalWalltimeSec",
70
+ recommended: null,
71
+ unit: "seconds",
72
+ kind: "budget",
73
+ summary: "Cross-slice wall-clock allocation for resource-suspend tasks (RB-21). First slice only; later slices read the frozen ledger. Unset = per-slice budgets only.",
74
+ precedence: "spec.resources.totalWalltimeSec (first slice) > unset",
75
+ },
76
+ {
77
+ key: "delegation.forkMaxTurns",
78
+ recommended: FORK_DEFAULT_MAX_TURNS,
79
+ unit: "turns",
80
+ kind: "safety-net",
81
+ summary: "Default turn cap for the Agent fork arm (child inherits the parent's world; tighter net than the global default).",
82
+ precedence: "agent definition limits > fork default",
83
+ },
84
+ {
85
+ key: "delegation.sessionBgTimeoutSec",
86
+ recommended: SESSION_BG_DEFAULT_TIMEOUT_SEC,
87
+ unit: "seconds",
88
+ kind: "safety-net",
89
+ summary: "Default wall-clock budget for a session-scoped background child.",
90
+ precedence: "spawn args > default",
91
+ },
92
+ {
93
+ key: "delegation.retainTtlMs",
94
+ recommended: RETAIN_DEFAULT_TTL_MS,
95
+ unit: "ms",
96
+ kind: "retention",
97
+ summary: "Retained child session TTL (settled-at based) within the parent run's retain ledger.",
98
+ precedence: "TaskSpec.retainSubagentSessions.ttlMs > default",
99
+ },
100
+ {
101
+ key: "delegation.retainMax",
102
+ recommended: RETAIN_DEFAULT_MAX,
103
+ unit: "count",
104
+ kind: "retention",
105
+ summary: "Max retained children per parent run (oldest settled idle evicted beyond it).",
106
+ precedence: "TaskSpec.retainSubagentSessions.max > default",
107
+ },
108
+ {
109
+ key: "session.idleTtlDays",
110
+ recommended: SESSION_DEFAULT_TTL_DAYS,
111
+ unit: "days",
112
+ kind: "retention",
113
+ summary: "Idle TTL before a cached session is evicted from the session store.",
114
+ precedence: "TtlSessionStoreOptions.defaultTtlDays > default",
115
+ },
116
+ ];
117
+ return { version: CONFIG_CATALOG_VERSION, knobs };
118
+ }
119
+ export const MAX_OVERRIDE_DECLARATIONS = 32;
120
+ const MAX_DECLARATION_CHARS = 200;
121
+ const sanitizeDeclarationText = (s) => s.replace(/[\u0000-\u0008\u000b-\u001f\u007f]/g, "").slice(0, MAX_DECLARATION_CHARS);
122
+ export function resolveEffectiveConfig(spec, ctx) {
123
+ const l = spec.limits;
124
+ const hasDeadline = l?.timeoutSec !== undefined;
125
+ const pick = (key, specVal, dflt) => specVal !== undefined ? { key, value: specVal, provenance: "spec" } : { key, value: dflt, provenance: "default" };
126
+ const deadlineSwitch = (key, v) => v === false
127
+ ? { key, value: false, provenance: "spec" }
128
+ : v !== undefined
129
+ ? { key, value: hasDeadline, provenance: "spec" }
130
+ : { key, value: hasDeadline, provenance: "derived" };
131
+ const maxOutputTokens = l?.maxOutputTokens !== undefined
132
+ ? { key: "limits.maxOutputTokens", value: l.maxOutputTokens, provenance: "spec" }
133
+ : ctx?.modelMaxTokens !== undefined
134
+ ? { key: "limits.maxOutputTokens", value: ctx.modelMaxTokens, provenance: "derived" }
135
+ : { key: "limits.maxOutputTokens", value: null, provenance: "default" };
136
+ const fields = [
137
+ pick("limits.maxTurns", l?.maxTurns, DEFAULT_MAX_TURNS),
138
+ pick("limits.timeoutSec", l?.timeoutSec, null),
139
+ maxOutputTokens,
140
+ deadlineSwitch("limits.deadlineNudge", l?.deadlineNudge),
141
+ deadlineSwitch("limits.callCapByDeadline", l?.callCapByDeadline),
142
+ deadlineSwitch("limits.gracefulFinalize", l?.gracefulFinalize),
143
+ pick("budget.maxCostUsd", spec.maxCostUsd, null),
144
+ pick("budget.maxTokens", spec.maxTokens, null),
145
+ pick("budget.totalWalltimeSec", spec.resourceSuspend?.totalWalltimeSec, null),
146
+ pick("budget.totalBudgetUsd", spec.resourceSuspend?.totalBudgetUsd, null),
147
+ ];
148
+ for (const d of (spec.configOverrides ?? []).slice(0, MAX_OVERRIDE_DECLARATIONS)) {
149
+ fields.push({
150
+ key: sanitizeDeclarationText(d.key),
151
+ value: typeof d.value === "string" ? sanitizeDeclarationText(d.value) : d.value,
152
+ provenance: "host-declared",
153
+ });
154
+ }
155
+ return fields;
156
+ }
157
+ export function declarationReasons(declarations) {
158
+ const reasons = {};
159
+ for (const d of (declarations ?? []).slice(0, MAX_OVERRIDE_DECLARATIONS)) {
160
+ reasons[sanitizeDeclarationText(d.key)] = sanitizeDeclarationText(d.reason);
161
+ }
162
+ return reasons;
163
+ }
164
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/config/catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtask.d.ts","sourceRoot":"","sources":["../../../src/core/runner/runtask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtask.d.ts","sourceRoot":"","sources":["../../../src/core/runner/runtask.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { AgentHarness, DEFAULT_COMPACTION_SETTINGS, uuidv7 } from "../../interna
2
2
  import { CheckpointError, BINDING_CHECKPOINT_VERSION, checkpointVersionOf, MAX_SUPPORTED_CHECKPOINT_VERSION, remainingBudgetMicroUsd, remainingWalltimeMs, validatePendingSteer, winnerFromOutcome, } from "../checkpoint-store.js";
3
3
  import { effectiveCushionMs, estimateCycleMs, hasRealContent, minLiveWriteoutWindowMs, recordCallSample, recordToolCycleSample, recordToolSample, recordTtftSample, softExecDeadlineMs, writeoutCushionMs } from "./call-cap.js";
4
4
  import { engineVersion } from "../version.js";
5
+ import { CONFIG_CATALOG_VERSION, declarationReasons, resolveEffectiveConfig } from "../../config/catalog.js";
5
6
  import { eventDefaultOn } from "../../prompt-assembly/event-registry.js";
6
7
  import { DEFAULT_COMPACTION_INSTRUCTIONS, createRapidRefillState, isCompactionManualCancel, isCompactionWalltimeAbort, maybeCompact, nextTrimForceBackoff, recordCompactionAndCheckRapidRefill } from "../auto-compaction.js";
7
8
  import { ASK_USER_QUESTION_TOOL_NAME } from "../ask-question.js";
@@ -1016,6 +1017,18 @@ export class Runner {
1016
1017
  totalChars: prepared.promptManifest.blocks.reduce((n, b) => n + b.chars, 0),
1017
1018
  ts: taskStart,
1018
1019
  }));
1020
+ emitTrace(tracer, () => {
1021
+ const reasons = declarationReasons(spec.configOverrides);
1022
+ return {
1023
+ kind: "config.assembled",
1024
+ version: 1,
1025
+ taskId,
1026
+ catalogVersion: CONFIG_CATALOG_VERSION,
1027
+ fields: resolveEffectiveConfig(spec, { modelMaxTokens: prepared.model.maxTokens }),
1028
+ ...(Object.keys(reasons).length > 0 ? { overrideReasons: reasons } : {}),
1029
+ ts: taskStart,
1030
+ };
1031
+ });
1019
1032
  if (prepared.turnSnapshot !== undefined) {
1020
1033
  prepared.turnSnapshot.onChange = (snap) => emitTrace(tracer, () => ({
1021
1034
  kind: "prompt.snapshot_changed",