@openclawbrain/openclaw 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -147,7 +147,7 @@ pnpm exec openclawbrain rollback --activation-root /var/openclawbrain/activation
147
147
  - `openclawbrain-ops` remains available as the same CLI entrypoint if you already scripted against the older name
148
148
  - `bootstrapRuntimeAttach()` resolves the activation root, stamps the attach as a `current_profile` action, returns the canonical current-profile answer immediately, and includes copy-paste-ready next steps for the attached root that prefer the primary `openclawbrain` CLI while matching the current `npm`/`pnpm` invocation style when it is detectable; those hints now cover `status`, canonical `status --json`, and `rollback --dry-run`
149
149
  - `formatBootstrapRuntimeAttachReport()` prints the shipped attach handoff as a current-profile action instead of dropping callers straight into lower-level proof fields
150
- - plain `status` is the human answer to “How's the brain?” for the current profile on that activation root; `status --json` emits the canonical `current_profile_brain_status.v1` answer from that same boundary
150
+ - plain `status` is the human answer to “How's the brain?” for the current profile on that activation root; it now keeps principal backlog/downstream truth and active structural-graph evolution visible in the compact text summary, while `status --json` still emits the canonical `current_profile_brain_status.v1` answer from that same boundary
151
151
  - `describeCurrentProfileBrainStatus()` freezes the current-profile `Host / Profile / Brain / Attachment` answer shape instead of widening to a second report payload
152
152
  - `rollback --dry-run` previews the exact `active <- previous` and `active -> candidate` move before you apply rollback for real
153
153
  - `--event-export` accepts either a runtime event-export bundle root or a normalized-export JSON payload
package/dist/src/cli.js CHANGED
@@ -153,6 +153,16 @@ function yesNo(value) {
153
153
  }
154
154
  return value ? "yes" : "no";
155
155
  }
156
+ function formatPrincipalLatest(report) {
157
+ const latest = report.principal.latestFeedback;
158
+ return latest === null ? "none" : `${latest.teacherIdentity}/${latest.kind}`;
159
+ }
160
+ function formatStructuralOps(report) {
161
+ const structuralOps = report.graph.structuralOps;
162
+ return structuralOps === null
163
+ ? "none"
164
+ : `split:${structuralOps.split},merge:${structuralOps.merge},prune:${structuralOps.prune},connect:${structuralOps.connect}`;
165
+ }
156
166
  function formatCurrentProfileStatusSummary(status, report) {
157
167
  return [
158
168
  `STATUS ${status.brainStatus.status}`,
@@ -162,6 +172,9 @@ function formatCurrentProfileStatusSummary(status, report) {
162
172
  `brain pack=${status.brain.activePackId ?? "none"} state=${status.brain.state} init=${status.brain.initMode ?? "unknown"} routeFreshness=${status.brain.routeFreshness} lastPromotion=${status.brain.lastPromotionAt ?? "none"} router=${status.brain.routerIdentity ?? "none"}`,
163
173
  `serve state=${status.brainStatus.serveState} failOpen=${yesNo(status.brainStatus.failOpen)} hardFail=${yesNo(report.servePath.hardRequirementViolated)} usedRouteFn=${yesNo(status.brainStatus.usedLearnedRouteFn)} awaitingFirstExport=${yesNo(status.brainStatus.awaitingFirstExport)} detail=${status.brainStatus.detail}`,
164
174
  `route router=${report.servePath.routerIdentity ?? status.brain.routerIdentity ?? "none"} supervision=${report.servePath.refreshStatus ?? status.brain.routeFreshness} freshness=${report.servePath.freshnessChecksum ?? "none"}`,
175
+ `budget requested=${report.servePath.requestedBudgetStrategy ?? "none"} resolved=${report.servePath.resolvedBudgetStrategy ?? "none"} maxBlocks=${report.servePath.resolvedMaxContextBlocks ?? "none"} source=${report.servePath.structuralBudgetSource ?? "none"}`,
176
+ `principal latest=${formatPrincipalLatest(report)} pending=${report.principal.pendingCount ?? "none"} downstream=${yesNo(report.principal.servingDownstreamOfLatestCorrection)} lag=${report.learning.principalLagToPromotion.sequenceLag ?? "none"}`,
177
+ `graph source=${report.graph.runtimePlasticitySource ?? "none"} ops=${formatStructuralOps(report)} changed=${yesNo(report.graph.changed)} pruned=${report.graph.prunedBlockCount ?? "none"} strongest=${report.graph.strongestBlockId ?? "none"} summary=${report.graph.operatorSummary ?? report.graph.detail}`,
165
178
  `learning bootstrapped=${yesNo(report.learning.bootstrapped)} mode=${report.learning.mode} next=${report.learning.nextPriorityLane} lastPack=${report.learning.lastMaterializedPackId ?? "none"}`,
166
179
  `rollback ready=${yesNo(report.rollback.allowed)} state=${report.rollback.state} previous=${report.rollback.previousPackId ?? "none"}`,
167
180
  `proof lastExport=${status.brain.lastExportAt ?? "none"} lastLearningUpdate=${status.brain.lastLearningUpdateAt ?? "none"} lastPromotion=${status.brain.lastPromotionAt ?? "none"}`,
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { CONTRACT_IDS, type ArtifactManifestV1, type ActivationPointerRecordV1, type ActivationPointerSlot, type RuntimeTurnBrainAttachmentPolicyV1, type ContextCompactionMode, type ContextContributionEvidenceStateV1, type CurrentProfileBrainStatusAnswerV1, type FeedbackEventKind, type FeedbackEventV1, type KernelSurfaceValidationResultV1, type LearningBootProfile, type InteractionEventV1, type NormalizedEventExportV1, type NormalizedEventV1, type RouteMode, type RuntimeCompileResponseV1, type RuntimeCompileTargetV1, type RuntimeGraphPlasticityStateV1, type RuntimePlasticitySourceV1, type SparseFeedbackPolicyV1, type TeacherSupervisionArtifactV1, type WorkspaceInjectionSurfaceV1 } from "@openclawbrain/contracts";
1
+ import { CONTRACT_IDS, type ArtifactManifestV1, type ActivationPointerRecordV1, type ActivationPointerSlot, type RuntimeTurnBrainAttachmentPolicyV1, type ContextCompactionMode, type ContextContributionEvidenceStateV1, type CurrentProfileBrainStatusAnswerV1, type FeedbackEventKind, type PackGraphEvolutionV1, type FeedbackEventV1, type KernelSurfaceValidationResultV1, type LearningBootProfile, type InteractionEventV1, type NormalizedEventExportV1, type NormalizedEventV1, type RouteMode, type RuntimeCompileResponseV1, type RuntimeCompileStructuralSignalsV1, type RuntimeCompileTargetV1, type RuntimeGraphPlasticityStateV1, type RuntimePlasticitySourceV1, type SparseFeedbackPolicyV1, type TeacherSupervisionArtifactV1, type WorkspaceInjectionSurfaceV1 } from "@openclawbrain/contracts";
2
2
  import { type AdvanceAlwaysOnLearningRuntimeInput, type AlwaysOnLearningCadenceV1, type AlwaysOnLearningMaterializationJobV1, type AlwaysOnLearningRuntimePlanV1, type AlwaysOnLearningRuntimeStateV1, type PendingPrincipalEventV1, type PrincipalLearningCheckpointV1 } from "@openclawbrain/learner";
3
- import { type ActivationInspection, type ActivationObservabilityReport, type ActivationSlotInspection, type InitHandoffState } from "@openclawbrain/pack-format";
3
+ import { type ActivationInspection, type ActivationObservabilityReport, type GraphEvolutionLogV1, type ActivationSlotInspection, type InitHandoffState } from "@openclawbrain/pack-format";
4
4
  export declare const DEFAULT_ASYNC_TEACHER_QUEUE_CAPACITY = 8;
5
5
  declare const RECORDED_SESSION_TRACE_CONTRACT: "recorded_session_trace.v1";
6
6
  declare const RECORDED_SESSION_FIXTURE_CONTRACT: "recorded_session_replay_fixture.v1";
@@ -35,11 +35,13 @@ export interface RuntimeEventExportBundleDescriptor {
35
35
  manifest: RuntimeEventExportBundleManifestV1;
36
36
  normalizedEventExport: NormalizedEventExportV1;
37
37
  }
38
+ export type CompileRuntimeBudgetStrategy = "fixed_v1" | "empirical_v1";
38
39
  export interface CompileRuntimeContextInput {
39
40
  activationRoot: string;
40
41
  message: string;
41
42
  agentId?: string;
42
43
  maxContextBlocks?: number;
44
+ budgetStrategy?: CompileRuntimeBudgetStrategy;
43
45
  maxContextChars?: number;
44
46
  mode?: RouteMode;
45
47
  compactionMode?: ContextCompactionMode;
@@ -253,6 +255,7 @@ export interface OpenClawRuntimeTurnInput {
253
255
  createdAt?: string | null;
254
256
  sequenceStart?: number | null;
255
257
  maxContextBlocks?: number;
258
+ budgetStrategy?: CompileRuntimeBudgetStrategy;
256
259
  mode?: RouteMode;
257
260
  runtimeHints?: readonly string[];
258
261
  brainAttachmentPolicy?: RuntimeTurnBrainAttachmentPolicyV1 | null;
@@ -476,6 +479,43 @@ export declare function validateRuntimeEventExportBundleManifest(value: RuntimeE
476
479
  export declare function loadRuntimeEventExportBundle(rootDir: string): RuntimeEventExportBundleDescriptor;
477
480
  export declare function classifyFeedbackKind(content: string): FeedbackEventKind;
478
481
  export declare function formatPromptContext(compileResponse: RuntimeCompileResponseV1): string;
482
+ export interface EmpiricalStructuralBudgetEvidenceV1 {
483
+ split: number;
484
+ merge: number;
485
+ prune: number;
486
+ connect: number;
487
+ }
488
+ export interface ResolvedCompileBudgetV1 {
489
+ requestedStrategy: CompileRuntimeBudgetStrategy;
490
+ effectiveStrategy: CompileRuntimeBudgetStrategy;
491
+ maxContextBlocks: number;
492
+ defaultMaxContextBlocks: number;
493
+ evidence: EmpiricalStructuralBudgetEvidenceV1;
494
+ evidenceTotal: number;
495
+ tendencies: EmpiricalStructuralBudgetEvidenceV1;
496
+ notes: string[];
497
+ }
498
+ export interface CompileStructuralBudgetSignalEvidenceV1 {
499
+ expansionCandidates: number;
500
+ traversalActivations: number;
501
+ overlapPruned: number;
502
+ }
503
+ export declare function deriveEmpiricalStructuralBudget(input: {
504
+ requestedStrategy?: CompileRuntimeBudgetStrategy;
505
+ requestedMaxContextBlocks?: number;
506
+ evolution?: Pick<PackGraphEvolutionV1, "structuralOps" | "prunedBlockIds"> | null;
507
+ defaultMaxContextBlocks?: number;
508
+ minimumMaxContextBlocks?: number;
509
+ maximumMaxContextBlocks?: number;
510
+ }): ResolvedCompileBudgetV1;
511
+ export declare function deriveEmpiricalStructuralBudgetFromCompileSignals(input: {
512
+ requestedStrategy?: CompileRuntimeBudgetStrategy;
513
+ requestedMaxContextBlocks?: number;
514
+ structuralSignals?: Pick<RuntimeCompileStructuralSignalsV1, "matchedCandidateCount" | "selectedMatchedCount" | "overlapPrunedCount" | "traversalActivatedCount"> | null;
515
+ defaultMaxContextBlocks?: number;
516
+ minimumMaxContextBlocks?: number;
517
+ maximumMaxContextBlocks?: number;
518
+ }): ResolvedCompileBudgetV1;
479
519
  export declare function resolveActivePackForCompile(activationRoot: string): ActiveCompileTarget;
480
520
  export declare function compileRuntimeContext(input: CompileRuntimeContextInput): RuntimeCompileResult;
481
521
  export declare function describeAttachStatus(input: AttachStatusInput): AttachStatusSnapshotV1;
@@ -777,6 +817,19 @@ export interface OperatorBrainStateSummary {
777
817
  activeEventExportDigest: string | null;
778
818
  detail: string;
779
819
  }
820
+ export interface OperatorGraphSummary {
821
+ available: boolean;
822
+ runtimePlasticitySource: RuntimePlasticitySourceV1 | null;
823
+ structuralOps: GraphEvolutionLogV1["structuralOps"] | null;
824
+ changed: boolean | null;
825
+ operationsApplied: GraphEvolutionLogV1["structuralEvolutionSummary"]["operationsApplied"];
826
+ liveBlockCount: number | null;
827
+ prunedBlockCount: number | null;
828
+ prePruneBlockCount: number | null;
829
+ strongestBlockId: string | null;
830
+ operatorSummary: string | null;
831
+ detail: string;
832
+ }
780
833
  export interface OperatorServePathSummary {
781
834
  state: OperatorServePathState;
782
835
  fallbackToStaticContext: boolean;
@@ -787,6 +840,12 @@ export interface OperatorServePathSummary {
787
840
  selectionMode: string | null;
788
841
  refreshStatus: string | null;
789
842
  freshnessChecksum: string | null;
843
+ requestedBudgetStrategy: string | null;
844
+ resolvedBudgetStrategy: string | null;
845
+ resolvedMaxContextBlocks: number | null;
846
+ structuralBudgetSource: string | null;
847
+ structuralBudgetEvidence: string | null;
848
+ structuralBudgetPressures: string | null;
790
849
  contextAttribution: ContextAttributionSummaryV1;
791
850
  error: string | null;
792
851
  }
@@ -902,6 +961,7 @@ interface OperatorSurfaceReport {
902
961
  candidateAheadBy: string[];
903
962
  };
904
963
  brain: OperatorBrainStateSummary;
964
+ graph: OperatorGraphSummary;
905
965
  learnedRouting: {
906
966
  required: boolean;
907
967
  available: boolean;
package/dist/src/index.js CHANGED
@@ -910,6 +910,216 @@ function classifyCompileFailure(error, activationRoot) {
910
910
  }
911
911
  return failOpenCompileResult(error, resolvedActivationRoot);
912
912
  }
913
+ function uniqueNotes(notes) {
914
+ return [...new Set(notes.filter((note) => note.length > 0))];
915
+ }
916
+ function clampInteger(value, minimum, maximum) {
917
+ return Math.min(maximum, Math.max(minimum, Math.round(value)));
918
+ }
919
+ export function deriveEmpiricalStructuralBudget(input) {
920
+ const requestedStrategy = input.requestedStrategy ?? "fixed_v1";
921
+ const defaultMaxContextBlocks = input.defaultMaxContextBlocks ?? 4;
922
+ const minimumMaxContextBlocks = input.minimumMaxContextBlocks ?? 2;
923
+ const maximumMaxContextBlocks = input.maximumMaxContextBlocks ?? 6;
924
+ if (input.requestedMaxContextBlocks !== undefined) {
925
+ const maxContextBlocks = clampInteger(input.requestedMaxContextBlocks, 0, Number.MAX_SAFE_INTEGER);
926
+ return {
927
+ requestedStrategy,
928
+ effectiveStrategy: requestedStrategy,
929
+ maxContextBlocks,
930
+ defaultMaxContextBlocks,
931
+ evidence: { split: 0, merge: 0, prune: 0, connect: 0 },
932
+ evidenceTotal: 0,
933
+ tendencies: { split: 0, merge: 0, prune: 0, connect: 0 },
934
+ notes: [
935
+ `requested_budget_strategy=${requestedStrategy}`,
936
+ `requested_max_context_blocks=${maxContextBlocks}`,
937
+ `resolved_budget_strategy=${requestedStrategy}`,
938
+ `resolved_max_context_blocks=${maxContextBlocks}`,
939
+ "structural_budget_source=caller_override"
940
+ ]
941
+ };
942
+ }
943
+ if (requestedStrategy !== "empirical_v1") {
944
+ return {
945
+ requestedStrategy,
946
+ effectiveStrategy: requestedStrategy,
947
+ maxContextBlocks: defaultMaxContextBlocks,
948
+ defaultMaxContextBlocks,
949
+ evidence: { split: 0, merge: 0, prune: 0, connect: 0 },
950
+ evidenceTotal: 0,
951
+ tendencies: { split: 0, merge: 0, prune: 0, connect: 0 },
952
+ notes: [
953
+ `requested_budget_strategy=${requestedStrategy}`,
954
+ `resolved_budget_strategy=${requestedStrategy}`,
955
+ `resolved_max_context_blocks=${defaultMaxContextBlocks}`,
956
+ `structural_budget_source=${requestedStrategy === "fixed_v1" ? "fixed_default" : "fixed_fallback"}`
957
+ ]
958
+ };
959
+ }
960
+ const evidence = {
961
+ split: Math.max(0, input.evolution?.structuralOps.split ?? 0),
962
+ merge: Math.max(0, input.evolution?.structuralOps.merge ?? 0),
963
+ prune: Math.max(0, Math.max(input.evolution?.structuralOps.prune ?? 0, input.evolution?.prunedBlockIds.length ?? 0)),
964
+ connect: Math.max(0, input.evolution?.structuralOps.connect ?? 0)
965
+ };
966
+ const evidenceTotal = evidence.split + evidence.merge + evidence.prune + evidence.connect;
967
+ if (evidenceTotal === 0) {
968
+ return {
969
+ requestedStrategy,
970
+ effectiveStrategy: "fixed_v1",
971
+ maxContextBlocks: defaultMaxContextBlocks,
972
+ defaultMaxContextBlocks,
973
+ evidence,
974
+ evidenceTotal,
975
+ tendencies: { split: 0, merge: 0, prune: 0, connect: 0 },
976
+ notes: [
977
+ `requested_budget_strategy=${requestedStrategy}`,
978
+ "resolved_budget_strategy=fixed_v1",
979
+ `resolved_max_context_blocks=${defaultMaxContextBlocks}`,
980
+ "structural_budget_source=no_evidence_fallback"
981
+ ]
982
+ };
983
+ }
984
+ const tendencies = {
985
+ split: evidence.split / evidenceTotal,
986
+ merge: evidence.merge / evidenceTotal,
987
+ prune: evidence.prune / evidenceTotal,
988
+ connect: evidence.connect / evidenceTotal
989
+ };
990
+ const expansionPressure = tendencies.split + tendencies.connect;
991
+ const contractionPressure = tendencies.merge + tendencies.prune;
992
+ const directionalPressure = expansionPressure - contractionPressure;
993
+ const maxContextBlocks = clampInteger(defaultMaxContextBlocks + directionalPressure * 2, minimumMaxContextBlocks, maximumMaxContextBlocks);
994
+ return {
995
+ requestedStrategy,
996
+ effectiveStrategy: requestedStrategy,
997
+ maxContextBlocks,
998
+ defaultMaxContextBlocks,
999
+ evidence,
1000
+ evidenceTotal,
1001
+ tendencies,
1002
+ notes: [
1003
+ `requested_budget_strategy=${requestedStrategy}`,
1004
+ `resolved_budget_strategy=${requestedStrategy}`,
1005
+ `resolved_max_context_blocks=${maxContextBlocks}`,
1006
+ "structural_budget_source=graph_evolution_empirical_v1",
1007
+ `structural_budget_evidence=split:${evidence.split},merge:${evidence.merge},prune:${evidence.prune},connect:${evidence.connect},total:${evidenceTotal}`,
1008
+ `structural_budget_tendencies=split:${tendencies.split.toFixed(4)},merge:${tendencies.merge.toFixed(4)},prune:${tendencies.prune.toFixed(4)},connect:${tendencies.connect.toFixed(4)}`,
1009
+ `structural_budget_pressures=expand:${expansionPressure.toFixed(4)},contract:${contractionPressure.toFixed(4)},directional:${directionalPressure.toFixed(4)}`
1010
+ ]
1011
+ };
1012
+ }
1013
+ export function deriveEmpiricalStructuralBudgetFromCompileSignals(input) {
1014
+ const requestedStrategy = input.requestedStrategy ?? "fixed_v1";
1015
+ const defaultMaxContextBlocks = input.defaultMaxContextBlocks ?? 4;
1016
+ const minimumMaxContextBlocks = input.minimumMaxContextBlocks ?? 2;
1017
+ const maximumMaxContextBlocks = input.maximumMaxContextBlocks ?? 6;
1018
+ if (input.requestedMaxContextBlocks !== undefined) {
1019
+ const maxContextBlocks = clampInteger(input.requestedMaxContextBlocks, 0, Number.MAX_SAFE_INTEGER);
1020
+ return {
1021
+ requestedStrategy,
1022
+ effectiveStrategy: requestedStrategy,
1023
+ maxContextBlocks,
1024
+ defaultMaxContextBlocks,
1025
+ evidence: { split: 0, merge: 0, prune: 0, connect: 0 },
1026
+ evidenceTotal: 0,
1027
+ tendencies: { split: 0, merge: 0, prune: 0, connect: 0 },
1028
+ notes: [
1029
+ `requested_budget_strategy=${requestedStrategy}`,
1030
+ `requested_max_context_blocks=${maxContextBlocks}`,
1031
+ `resolved_budget_strategy=${requestedStrategy}`,
1032
+ `resolved_max_context_blocks=${maxContextBlocks}`,
1033
+ "structural_budget_source=caller_override"
1034
+ ]
1035
+ };
1036
+ }
1037
+ if (requestedStrategy !== "empirical_v1") {
1038
+ return {
1039
+ requestedStrategy,
1040
+ effectiveStrategy: requestedStrategy,
1041
+ maxContextBlocks: defaultMaxContextBlocks,
1042
+ defaultMaxContextBlocks,
1043
+ evidence: { split: 0, merge: 0, prune: 0, connect: 0 },
1044
+ evidenceTotal: 0,
1045
+ tendencies: { split: 0, merge: 0, prune: 0, connect: 0 },
1046
+ notes: [
1047
+ `requested_budget_strategy=${requestedStrategy}`,
1048
+ `resolved_budget_strategy=${requestedStrategy}`,
1049
+ `resolved_max_context_blocks=${defaultMaxContextBlocks}`,
1050
+ `structural_budget_source=${requestedStrategy === "fixed_v1" ? "fixed_default" : "fixed_fallback"}`
1051
+ ]
1052
+ };
1053
+ }
1054
+ const compileEvidence = {
1055
+ expansionCandidates: Math.max(0, (input.structuralSignals?.matchedCandidateCount ?? 0) - (input.structuralSignals?.selectedMatchedCount ?? 0)),
1056
+ traversalActivations: Math.max(0, input.structuralSignals?.traversalActivatedCount ?? 0),
1057
+ overlapPruned: Math.max(0, input.structuralSignals?.overlapPrunedCount ?? 0)
1058
+ };
1059
+ const evidence = {
1060
+ split: compileEvidence.expansionCandidates,
1061
+ merge: 0,
1062
+ prune: compileEvidence.overlapPruned,
1063
+ connect: compileEvidence.traversalActivations
1064
+ };
1065
+ const evidenceTotal = evidence.split + evidence.merge + evidence.prune + evidence.connect;
1066
+ if (evidenceTotal === 0) {
1067
+ return {
1068
+ requestedStrategy,
1069
+ effectiveStrategy: "fixed_v1",
1070
+ maxContextBlocks: defaultMaxContextBlocks,
1071
+ defaultMaxContextBlocks,
1072
+ evidence,
1073
+ evidenceTotal,
1074
+ tendencies: { split: 0, merge: 0, prune: 0, connect: 0 },
1075
+ notes: [
1076
+ `requested_budget_strategy=${requestedStrategy}`,
1077
+ "resolved_budget_strategy=fixed_v1",
1078
+ `resolved_max_context_blocks=${defaultMaxContextBlocks}`,
1079
+ "structural_budget_source=no_compile_signal_evidence_fallback"
1080
+ ]
1081
+ };
1082
+ }
1083
+ const tendencies = {
1084
+ split: evidence.split / evidenceTotal,
1085
+ merge: 0,
1086
+ prune: evidence.prune / evidenceTotal,
1087
+ connect: evidence.connect / evidenceTotal
1088
+ };
1089
+ const expansionPressure = tendencies.split + tendencies.connect;
1090
+ const contractionPressure = tendencies.prune;
1091
+ const directionalPressure = expansionPressure - contractionPressure;
1092
+ const maxContextBlocks = clampInteger(defaultMaxContextBlocks + directionalPressure * 2, minimumMaxContextBlocks, maximumMaxContextBlocks);
1093
+ return {
1094
+ requestedStrategy,
1095
+ effectiveStrategy: requestedStrategy,
1096
+ maxContextBlocks,
1097
+ defaultMaxContextBlocks,
1098
+ evidence,
1099
+ evidenceTotal,
1100
+ tendencies,
1101
+ notes: [
1102
+ `requested_budget_strategy=${requestedStrategy}`,
1103
+ `resolved_budget_strategy=${requestedStrategy}`,
1104
+ `resolved_max_context_blocks=${maxContextBlocks}`,
1105
+ "structural_budget_source=compile_structural_signals_empirical_v1",
1106
+ `structural_budget_compile_evidence=matched_unselected:${compileEvidence.expansionCandidates},traversal:${compileEvidence.traversalActivations},overlap_pruned:${compileEvidence.overlapPruned},total:${evidenceTotal}`,
1107
+ `structural_budget_tendencies=split:${tendencies.split.toFixed(4)},merge:${tendencies.merge.toFixed(4)},prune:${tendencies.prune.toFixed(4)},connect:${tendencies.connect.toFixed(4)}`,
1108
+ `structural_budget_pressures=expand:${expansionPressure.toFixed(4)},contract:${contractionPressure.toFixed(4)},directional:${directionalPressure.toFixed(4)}`
1109
+ ]
1110
+ };
1111
+ }
1112
+ function resolveCompileBudget(target, input) {
1113
+ const pack = loadPackFromActivation(target.activationRoot, "active");
1114
+ return deriveEmpiricalStructuralBudget({
1115
+ requestedStrategy: input.budgetStrategy ?? "empirical_v1",
1116
+ ...(input.maxContextBlocks !== undefined ? { requestedMaxContextBlocks: input.maxContextBlocks } : {}),
1117
+ ...(pack?.graph.evolution !== undefined ? { evolution: pack.graph.evolution } : {}),
1118
+ defaultMaxContextBlocks: 4,
1119
+ minimumMaxContextBlocks: 2,
1120
+ maximumMaxContextBlocks: 6
1121
+ });
1122
+ }
913
1123
  export function resolveActivePackForCompile(activationRoot) {
914
1124
  const resolvedActivationRoot = path.resolve(normalizeNonEmptyString(activationRoot, "activationRoot"));
915
1125
  const inspection = inspectActivationState(resolvedActivationRoot);
@@ -932,11 +1142,12 @@ export function compileRuntimeContext(input) {
932
1142
  const runtimeHints = normalizeRuntimeHints(input.runtimeHints);
933
1143
  try {
934
1144
  const target = resolveActivePackForCompile(activationRoot);
1145
+ const resolvedBudget = resolveCompileBudget(target, input);
935
1146
  const compile = compileRuntimeFromActivation(activationRoot, {
936
1147
  contract: CONTRACT_IDS.runtimeCompile,
937
1148
  agentId,
938
1149
  userMessage: normalizeNonEmptyString(input.message, "message"),
939
- maxContextBlocks: normalizeNonNegativeInteger(input.maxContextBlocks, "maxContextBlocks", 4),
1150
+ maxContextBlocks: resolvedBudget.maxContextBlocks,
940
1151
  ...(input.maxContextChars !== undefined
941
1152
  ? { maxContextChars: normalizeNonNegativeInteger(input.maxContextChars, "maxContextChars", input.maxContextChars) }
942
1153
  : {}),
@@ -949,7 +1160,7 @@ export function compileRuntimeContext(input) {
949
1160
  ...compile.response,
950
1161
  diagnostics: {
951
1162
  ...compile.response.diagnostics,
952
- notes: [...compile.response.diagnostics.notes, "OpenClaw remains the runtime owner"]
1163
+ notes: uniqueNotes([...compile.response.diagnostics.notes, ...resolvedBudget.notes, "OpenClaw remains the runtime owner"])
953
1164
  }
954
1165
  };
955
1166
  return {
@@ -1147,6 +1358,7 @@ function buildAttachStatusCompileInput(activationRoot, compile) {
1147
1358
  agentId: normalizeOptionalString(compile?.agentId) ?? `${DEFAULT_AGENT_ID}-attach-status`,
1148
1359
  message: normalizeOptionalString(compile?.message) ?? DEFAULT_ATTACH_STATUS_MESSAGE,
1149
1360
  ...(compile?.maxContextBlocks !== undefined ? { maxContextBlocks: compile.maxContextBlocks } : {}),
1361
+ ...(compile?.budgetStrategy !== undefined ? { budgetStrategy: compile.budgetStrategy } : {}),
1150
1362
  ...(compile?.maxContextChars !== undefined ? { maxContextChars: compile.maxContextChars } : {}),
1151
1363
  ...(compile?.mode !== undefined ? { mode: compile.mode } : {}),
1152
1364
  ...(compile?.compactionMode !== undefined ? { compactionMode: compile.compactionMode } : {}),
@@ -1589,6 +1801,7 @@ export function runRuntimeTurn(turn, options = {}) {
1589
1801
  message: normalizeNonEmptyString(turn.userMessage, "userMessage"),
1590
1802
  ...(agentId !== undefined ? { agentId } : {}),
1591
1803
  ...(turn.maxContextBlocks !== undefined ? { maxContextBlocks: turn.maxContextBlocks } : {}),
1804
+ ...(turn.budgetStrategy !== undefined ? { budgetStrategy: turn.budgetStrategy } : {}),
1592
1805
  ...(turn.mode !== undefined ? { mode: turn.mode } : {}),
1593
1806
  ...(turn.runtimeHints !== undefined ? { runtimeHints: turn.runtimeHints } : {})
1594
1807
  };
@@ -2571,6 +2784,54 @@ function summarizeBrainState(active, observability) {
2571
2784
  detail
2572
2785
  };
2573
2786
  }
2787
+ function summarizeGraphObservability(active, observability) {
2788
+ if (active === null) {
2789
+ return {
2790
+ available: false,
2791
+ runtimePlasticitySource: null,
2792
+ structuralOps: null,
2793
+ changed: null,
2794
+ operationsApplied: [],
2795
+ liveBlockCount: null,
2796
+ prunedBlockCount: null,
2797
+ prePruneBlockCount: null,
2798
+ strongestBlockId: null,
2799
+ operatorSummary: null,
2800
+ detail: "no active pack is pinned, so there is no structural graph surface to inspect"
2801
+ };
2802
+ }
2803
+ const graphEvolution = observability.graphEvolutionLog;
2804
+ if (graphEvolution === null) {
2805
+ return {
2806
+ available: false,
2807
+ runtimePlasticitySource: observability.graphDynamics.runtimePlasticitySource,
2808
+ structuralOps: null,
2809
+ changed: null,
2810
+ operationsApplied: [],
2811
+ liveBlockCount: null,
2812
+ prunedBlockCount: null,
2813
+ prePruneBlockCount: null,
2814
+ strongestBlockId: null,
2815
+ operatorSummary: null,
2816
+ detail: "active pack is present, but the graph evolution log is missing from activation observability"
2817
+ };
2818
+ }
2819
+ return {
2820
+ available: true,
2821
+ runtimePlasticitySource: observability.graphDynamics.runtimePlasticitySource,
2822
+ structuralOps: { ...graphEvolution.structuralOps },
2823
+ changed: graphEvolution.structuralEvolutionSummary.changed,
2824
+ operationsApplied: [...graphEvolution.structuralEvolutionSummary.operationsApplied],
2825
+ liveBlockCount: graphEvolution.structuralEvolutionSummary.liveBlockCount,
2826
+ prunedBlockCount: graphEvolution.structuralEvolutionSummary.prunedBlockCount,
2827
+ prePruneBlockCount: graphEvolution.structuralEvolutionSummary.prePruneBlockCount,
2828
+ strongestBlockId: graphEvolution.strongestBlockId,
2829
+ operatorSummary: graphEvolution.structuralEvolutionSummary.operatorSummary,
2830
+ detail: graphEvolution.structuralEvolutionSummary.changed
2831
+ ? graphEvolution.structuralEvolutionSummary.operatorSummary
2832
+ : "active pack graph is stable with no structural evolution beyond the current promoted artifact"
2833
+ };
2834
+ }
2574
2835
  function summarizeServePath(compile) {
2575
2836
  if (compile === null) {
2576
2837
  return {
@@ -2583,6 +2844,12 @@ function summarizeServePath(compile) {
2583
2844
  selectionMode: null,
2584
2845
  refreshStatus: null,
2585
2846
  freshnessChecksum: null,
2847
+ requestedBudgetStrategy: null,
2848
+ resolvedBudgetStrategy: null,
2849
+ resolvedMaxContextBlocks: null,
2850
+ structuralBudgetSource: null,
2851
+ structuralBudgetEvidence: null,
2852
+ structuralBudgetPressures: null,
2586
2853
  contextAttribution: buildContextAttributionSummary({
2587
2854
  fallbackToStaticContext: false,
2588
2855
  hardRequirementViolated: false,
@@ -2603,10 +2870,17 @@ function summarizeServePath(compile) {
2603
2870
  selectionMode: null,
2604
2871
  refreshStatus: null,
2605
2872
  freshnessChecksum: null,
2873
+ requestedBudgetStrategy: null,
2874
+ resolvedBudgetStrategy: null,
2875
+ resolvedMaxContextBlocks: null,
2876
+ structuralBudgetSource: null,
2877
+ structuralBudgetEvidence: null,
2878
+ structuralBudgetPressures: null,
2606
2879
  contextAttribution: compile.contextAttribution,
2607
2880
  error: compile.error
2608
2881
  };
2609
2882
  }
2883
+ const resolvedMaxContextBlocksValue = readDiagnosticNoteValue(compile.notes, "resolved_max_context_blocks=");
2610
2884
  return {
2611
2885
  state: "serving_active_pack",
2612
2886
  fallbackToStaticContext: compile.fallbackToStaticContext,
@@ -2617,6 +2891,13 @@ function summarizeServePath(compile) {
2617
2891
  selectionMode: readDiagnosticNoteValue(compile.notes, "selection_mode="),
2618
2892
  refreshStatus: readDiagnosticNoteValue(compile.notes, "router_refresh_status="),
2619
2893
  freshnessChecksum: readDiagnosticNoteValue(compile.notes, "router_freshness_checksum="),
2894
+ requestedBudgetStrategy: readDiagnosticNoteValue(compile.notes, "requested_budget_strategy="),
2895
+ resolvedBudgetStrategy: readDiagnosticNoteValue(compile.notes, "resolved_budget_strategy="),
2896
+ resolvedMaxContextBlocks: resolvedMaxContextBlocksValue === null ? null : Number.parseInt(resolvedMaxContextBlocksValue, 10),
2897
+ structuralBudgetSource: readDiagnosticNoteValue(compile.notes, "structural_budget_source="),
2898
+ structuralBudgetEvidence: readDiagnosticNoteValue(compile.notes, "structural_budget_compile_evidence=") ??
2899
+ readDiagnosticNoteValue(compile.notes, "structural_budget_evidence="),
2900
+ structuralBudgetPressures: readDiagnosticNoteValue(compile.notes, "structural_budget_pressures="),
2620
2901
  contextAttribution: compile.contextAttribution,
2621
2902
  error: compile.error
2622
2903
  };
@@ -2996,6 +3277,7 @@ function buildOperatorFindings(report) {
2996
3277
  }
2997
3278
  if (report.servePath.state === "serving_active_pack") {
2998
3279
  push("pass", "serve_path_verified", `serve path compiles from active pack ${report.servePath.activePackId ?? "unknown-pack"}`, `selection=${report.servePath.selectionMode ?? "unknown"}; tiers=${report.servePath.contextAttribution.selectionTiers ?? "unknown"}; router=${report.servePath.routerIdentity ?? "none"}; routeFreshness=${report.servePath.freshnessChecksum ?? "unknown"}`);
3280
+ push("pass", "structural_budget_visible", `structural budget resolves to ${report.servePath.resolvedMaxContextBlocks ?? "unknown"} blocks`, `requested=${report.servePath.requestedBudgetStrategy ?? "unknown"}; resolved=${report.servePath.resolvedBudgetStrategy ?? "unknown"}; source=${report.servePath.structuralBudgetSource ?? "unknown"}; evidence=${report.servePath.structuralBudgetEvidence ?? "none"}; pressures=${report.servePath.structuralBudgetPressures ?? "none"}`);
2999
3281
  }
3000
3282
  else if (report.servePath.state === "fail_open_static_context") {
3001
3283
  push("warn", "serve_path_fail_open", "serve path would fail open to static context", report.servePath.error ?? "compile probe fell back to static context");
@@ -3249,6 +3531,7 @@ export function buildOperatorSurfaceReport(input) {
3249
3531
  candidateAheadBy: summarizeCandidateAheadBy(observability.promotionFreshness.candidateAheadBy)
3250
3532
  },
3251
3533
  brain: summarizeBrainState(active, observability),
3534
+ graph: summarizeGraphObservability(active, observability),
3252
3535
  learnedRouting: {
3253
3536
  required: observability.learnedRouteFn.required,
3254
3537
  available: observability.learnedRouteFn.available,