@sema-agent/client-core 0.107.0 → 0.109.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.
Files changed (165) hide show
  1. package/CHANGELOG.md +239 -0
  2. package/README.md +54 -36
  3. package/dist/adapt/arms.js +23 -8
  4. package/dist/adapt/textStream.d.ts +2 -0
  5. package/dist/adapt/textStream.js +37 -16
  6. package/dist/adapter/activeRunSelfHeal.d.ts +2 -0
  7. package/dist/adapter/activeRunSelfHeal.js +21 -4
  8. package/dist/adapter/downstream/eventToSdkMessage.js +2 -1
  9. package/dist/agentSession/engineAgentRegistryRead.js +2 -0
  10. package/dist/bashExitReading.d.ts +12 -0
  11. package/dist/bashExitReading.js +44 -0
  12. package/dist/checkpointRowVerdict.d.ts +6 -1
  13. package/dist/checkpointRowVerdict.js +30 -2
  14. package/dist/cloudConfigWireCaps.d.ts +10 -0
  15. package/dist/cloudConfigWireCaps.js +33 -0
  16. package/dist/compensations.js +1 -1
  17. package/dist/coreValuePorts.d.ts +17 -1
  18. package/dist/coreValuePorts.js +5 -0
  19. package/dist/decideReceipt.js +2 -1
  20. package/dist/engineAgentAbsence.d.ts +2 -0
  21. package/dist/engineAgentAbsence.js +28 -0
  22. package/dist/engineErrorCodes.d.ts +9 -0
  23. package/dist/engineErrorCodes.js +9 -0
  24. package/dist/engineHealthFacts.d.ts +17 -0
  25. package/dist/engineHealthFacts.js +42 -3
  26. package/dist/engineNoticeCodes.d.ts +147 -1
  27. package/dist/engineNoticeCodes.js +694 -57
  28. package/dist/engineTargetSeat.js +1 -0
  29. package/dist/errorSupplementRoles.js +6 -1
  30. package/dist/eventLeg.js +1 -1
  31. package/dist/executionLaneWords.js +2 -1
  32. package/dist/fleetTaskDesc.js +3 -3
  33. package/dist/gateOutcome.d.ts +10 -1
  34. package/dist/gateOutcome.js +48 -1
  35. package/dist/generated/engineFactTables.d.ts +2 -0
  36. package/dist/generated/engineFactTables.js +11 -0
  37. package/dist/generated/engineNoticeTables.js +6 -0
  38. package/dist/generated/settingsSchemaFns.d.ts +4 -2
  39. package/dist/generated/settingsSchemaFns.js +9 -3
  40. package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -1
  41. package/dist/generated/settingsSchemaMcpRequestEntry.js +9 -18
  42. package/dist/generated/settingsSchemaReservedMemberName.d.ts +1 -0
  43. package/dist/generated/settingsSchemaReservedMemberName.js +7 -0
  44. package/dist/generated/settingsSchemaTables.d.ts +2 -0
  45. package/dist/generated/settingsSchemaTables.js +10 -0
  46. package/dist/generated/settingsSchemaWireName.d.ts +1 -0
  47. package/dist/generated/settingsSchemaWireName.js +8 -0
  48. package/dist/headlessReconnectWire.js +12 -7
  49. package/dist/hitl/approvalAskers.d.ts +13 -0
  50. package/dist/hitl/approvalAskers.js +79 -0
  51. package/dist/hitl/approvalCardReasons.js +22 -4
  52. package/dist/hitl/approvalRequestFrameReading.d.ts +14 -0
  53. package/dist/hitl/approvalRequestFrameReading.js +79 -0
  54. package/dist/hitl/approvalResolution.d.ts +3 -0
  55. package/dist/hitl/approvalResolution.js +22 -4
  56. package/dist/hitl/approvalsFeed.js +4 -13
  57. package/dist/hitl/askParkRowRouting.js +10 -3
  58. package/dist/hitl/automaticAnswerVerdict.d.ts +5 -2
  59. package/dist/hitl/automaticAnswerVerdict.js +16 -2
  60. package/dist/hitl/decisionConflict.d.ts +2 -1
  61. package/dist/hitl/decisionConflict.js +4 -1
  62. package/dist/hitl/decisionRefusal.d.ts +1 -0
  63. package/dist/hitl/decisionRefusal.js +5 -2
  64. package/dist/hitl/decisionSend.js +2 -6
  65. package/dist/hitl/frameRouter.d.ts +3 -2
  66. package/dist/hitl/frameRouter.js +37 -7
  67. package/dist/hitl/gateLedger.d.ts +2 -0
  68. package/dist/hitl/gateLedger.js +3 -1
  69. package/dist/hitl/hitlBridge.d.ts +4 -0
  70. package/dist/hitl/hitlBridge.js +11 -8
  71. package/dist/hitl/livePendingAsk.js +17 -16
  72. package/dist/hitl/localAllowRule.js +2 -1
  73. package/dist/hitl/noAllowCause.d.ts +1 -1
  74. package/dist/hitl/noAllowCause.js +4 -2
  75. package/dist/hitl/parkExpiryJudgements.js +26 -1
  76. package/dist/hitl/parkOwnership.d.ts +2 -0
  77. package/dist/hitl/parkOwnership.js +48 -8
  78. package/dist/hitl/parkResolver.js +39 -30
  79. package/dist/hitl/parkRowBirthWait.d.ts +2 -0
  80. package/dist/hitl/parkRowBirthWait.js +8 -1
  81. package/dist/hitl/parkedUnresumable.d.ts +13 -0
  82. package/dist/hitl/parkedUnresumable.js +80 -0
  83. package/dist/hitl/permissionRuleScope.d.ts +4 -0
  84. package/dist/hitl/permissionRuleScope.js +31 -0
  85. package/dist/hitl/persistedRulesWire.d.ts +7 -1
  86. package/dist/hitl/persistedRulesWire.js +25 -8
  87. package/dist/hitl/planReviewWire.js +12 -16
  88. package/dist/hitl/policyDenyCause.d.ts +3 -0
  89. package/dist/hitl/policyDenyCause.js +16 -0
  90. package/dist/hitl/sessionAllowRoute.js +5 -4
  91. package/dist/hitl/sessionPolicyDeliverable.js +1 -1
  92. package/dist/hitl/standingRows.d.ts +1 -5
  93. package/dist/hitl/standingRows.js +15 -14
  94. package/dist/hitl/toolApprovalWire.d.ts +16 -4
  95. package/dist/hitl/toolApprovalWire.js +57 -17
  96. package/dist/hooksReaderGenerations.d.ts +1 -0
  97. package/dist/hooksReaderGenerations.js +12 -0
  98. package/dist/hooksWireCaps.js +12 -7
  99. package/dist/hostSettingsSource.js +2 -0
  100. package/dist/i18n/messages.en.d.ts +206 -1
  101. package/dist/i18n/messages.en.js +209 -4
  102. package/dist/i18n/messages.zh.js +214 -4
  103. package/dist/index.d.ts +35 -8
  104. package/dist/index.js +20 -5
  105. package/dist/liveModelCatalog.d.ts +4 -2
  106. package/dist/liveModelCatalog.js +164 -26
  107. package/dist/localEngineJudge.d.ts +75 -0
  108. package/dist/localEngineJudge.js +242 -0
  109. package/dist/localEngineOccupancy.d.ts +88 -0
  110. package/dist/localEngineOccupancy.js +269 -0
  111. package/dist/localEngineSeatReading.d.ts +29 -0
  112. package/dist/localEngineSeatReading.js +294 -0
  113. package/dist/localEngineSpawn.d.ts +113 -0
  114. package/dist/localEngineSpawn.js +486 -0
  115. package/dist/localEngineStep.d.ts +286 -0
  116. package/dist/localEngineStep.js +1086 -0
  117. package/dist/localEngineStopLadder.d.ts +29 -0
  118. package/dist/localEngineStopLadder.js +139 -0
  119. package/dist/localEngineSwapCard.d.ts +43 -0
  120. package/dist/localEngineSwapCard.js +205 -0
  121. package/dist/localEngineTiming.d.ts +8 -0
  122. package/dist/localEngineTiming.js +8 -0
  123. package/dist/mcpReconnect.js +12 -5
  124. package/dist/mcpWireCaps.js +2 -2
  125. package/dist/memoryEntriesWire.d.ts +1 -1
  126. package/dist/memoryEntriesWire.js +5 -0
  127. package/dist/model/catalogDefault.d.ts +25 -0
  128. package/dist/model/catalogDefault.js +44 -0
  129. package/dist/noticePresentation.d.ts +2 -0
  130. package/dist/noticePresentation.js +79 -1
  131. package/dist/ownKey.d.ts +10 -0
  132. package/dist/ownKey.js +15 -1
  133. package/dist/permissionWireCaps.d.ts +1 -0
  134. package/dist/permissionWireCaps.js +11 -0
  135. package/dist/pluginHooksWire.d.ts +5 -3
  136. package/dist/pluginHooksWire.js +116 -7
  137. package/dist/queuedDelivery.d.ts +1 -0
  138. package/dist/queuedDelivery.js +12 -0
  139. package/dist/resultFrameKeys.js +4 -2
  140. package/dist/resumeRefusalCopy.js +15 -8
  141. package/dist/ruleReadings.js +1 -1
  142. package/dist/runPermissionModeSwitch.d.ts +2 -1
  143. package/dist/runPermissionModeSwitch.js +16 -6
  144. package/dist/seam.d.ts +13 -2
  145. package/dist/seam.js +8 -1
  146. package/dist/seatContract.d.ts +103 -12
  147. package/dist/seatContract.js +344 -14
  148. package/dist/sessionBackground.js +2 -0
  149. package/dist/sessionEngine.d.ts +2 -1
  150. package/dist/sessionEngine.js +5 -0
  151. package/dist/settingsHooksSalvage.d.ts +5 -0
  152. package/dist/settingsHooksSalvage.js +54 -0
  153. package/dist/subagentContentStore.d.ts +12 -0
  154. package/dist/subagentContentStore.js +73 -12
  155. package/dist/supportFloor.js +2 -0
  156. package/dist/taskNotificationAdmission.d.ts +19 -0
  157. package/dist/taskNotificationAdmission.js +84 -0
  158. package/dist/toolResult.js +20 -6
  159. package/dist/webSearchWireCaps.js +9 -4
  160. package/dist/wireFailureShape.d.ts +20 -0
  161. package/dist/wireFailureShape.js +37 -6
  162. package/dist/wireRefusalCopy.d.ts +23 -2
  163. package/dist/wireRefusalCopy.js +93 -4
  164. package/docs/INTEGRATION-CLIENTS.md +1959 -15
  165. package/package.json +4 -4
@@ -49,6 +49,10 @@ export declare const ATTACHMENT_BUNDLE_SEED_FIXED = "attachment.bundle_seed_fixe
49
49
  export declare const ATTACHMENT_BOUND_ELSEWHERE = "attachment.bound_elsewhere";
50
50
  export declare const CONFLICT_SESSION_MEMORY_UNOBSERVED = "conflict.session_memory_unobserved";
51
51
  export declare const CONFLICT_SESSION_ARCHIVE_STAMPED = "conflict.session_archive_stamped";
52
+ export declare const REQUEST_ENV_CREDENTIAL_REFUSED = "request.env_credential_refused";
53
+ export declare const CONFLICT_SESSION_ID_RETIRED = "conflict.session_id_retired";
54
+ export declare const LIMIT_RATE_EXCEEDED = "limit.rate_exceeded";
55
+ export declare const RATE_EXCEEDED_RUN_CONCURRENCY_CAP = "run_concurrency_cap";
52
56
  export declare const GATE_PARKED_ERROR_CODE = "gate.parked";
53
57
  export declare const ACTIVE_RUN_BUSY_ERROR_CODE = "conflict.session_active_run";
54
58
  export declare const CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH = "conflict.idempotency_payload_mismatch";
@@ -99,6 +103,11 @@ export declare function refusalSaysStillPending(err: object): boolean;
99
103
  export declare function refusalRetriableReading(err: object): boolean | undefined;
100
104
  export type StatusDerivedCoarseCode = (typeof SDK_STATUS_DERIVED_COARSE_CODES)[number];
101
105
  export declare const RESUME_PLACEMENT_MISMATCH = "resume.placement_mismatch";
106
+ export declare const RESUME_PRINCIPAL_MISMATCH = "resume.principal_mismatch";
107
+ export declare const RESUME_COMPOSITION_MISMATCH = "resume.composition_mismatch";
108
+ export declare const RESUME_PARENT_CONSTRAINT_MISSING = "resume.parent_constraint_missing";
109
+ export declare const RESUME_PARENT_CONSTRAINT_MISMATCH = "resume.parent_constraint_mismatch";
110
+ export declare const RESUME_CONSTRAINT_UNPROJECTABLE = "resume.constraint_unprojectable";
102
111
  export declare const RESUME_CONTEXT_UNAVAILABLE = "conflict.resume_context_unavailable";
103
112
  export declare const RESUME_RETRY_LATER_CODES: readonly string[];
104
113
  export declare const RESUME_ENV_FAILED = "resume.env_failed";
@@ -73,6 +73,10 @@ export const ATTACHMENT_BUNDLE_SEED_FIXED = 'attachment.bundle_seed_fixed';
73
73
  export const ATTACHMENT_BOUND_ELSEWHERE = 'attachment.bound_elsewhere';
74
74
  export const CONFLICT_SESSION_MEMORY_UNOBSERVED = 'conflict.session_memory_unobserved';
75
75
  export const CONFLICT_SESSION_ARCHIVE_STAMPED = 'conflict.session_archive_stamped';
76
+ export const REQUEST_ENV_CREDENTIAL_REFUSED = 'request.env_credential_refused';
77
+ export const CONFLICT_SESSION_ID_RETIRED = 'conflict.session_id_retired';
78
+ export const LIMIT_RATE_EXCEEDED = 'limit.rate_exceeded';
79
+ export const RATE_EXCEEDED_RUN_CONCURRENCY_CAP = 'run_concurrency_cap';
76
80
  export const GATE_PARKED_ERROR_CODE = 'gate.parked';
77
81
  export const ACTIVE_RUN_BUSY_ERROR_CODE = 'conflict.session_active_run';
78
82
  export const CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH = 'conflict.idempotency_payload_mismatch';
@@ -177,6 +181,11 @@ export function refusalRetriableReading(err) {
177
181
  }
178
182
  }
179
183
  export const RESUME_PLACEMENT_MISMATCH = 'resume.placement_mismatch';
184
+ export const RESUME_PRINCIPAL_MISMATCH = 'resume.principal_mismatch';
185
+ export const RESUME_COMPOSITION_MISMATCH = 'resume.composition_mismatch';
186
+ export const RESUME_PARENT_CONSTRAINT_MISSING = 'resume.parent_constraint_missing';
187
+ export const RESUME_PARENT_CONSTRAINT_MISMATCH = 'resume.parent_constraint_mismatch';
188
+ export const RESUME_CONSTRAINT_UNPROJECTABLE = 'resume.constraint_unprojectable';
180
189
  export const RESUME_CONTEXT_UNAVAILABLE = 'conflict.resume_context_unavailable';
181
190
  export const RESUME_RETRY_LATER_CODES = Object.freeze([
182
191
  RESUME_USAGE_WINDOW_EXHAUSTED,
@@ -8,6 +8,7 @@ export interface EngineHealthAuthFacts {
8
8
  readonly required: boolean;
9
9
  readonly kinds: readonly (HealthAuthKind | (string & {}))[];
10
10
  readonly identityAttach: 'available' | 'unavailable';
11
+ readonly serviceTokenActsForDeployment?: boolean;
11
12
  }
12
13
  export interface EngineHealthDrainingFacts {
13
14
  readonly actionId: string;
@@ -17,6 +18,19 @@ export interface EngineHealthDrainingFacts {
17
18
  export interface EngineHealthLeaseFacts {
18
19
  readonly lingerMs: number;
19
20
  readonly tickMs: number;
21
+ readonly firstAttach?: EngineHealthFirstAttachFacts;
22
+ }
23
+ export interface EngineHealthFirstAttachFacts {
24
+ readonly windowMs: number;
25
+ readonly since: number;
26
+ readonly attachedAt: number | null;
27
+ }
28
+ export interface EngineHealthInflightFacts {
29
+ readonly total: number;
30
+ readonly http?: number;
31
+ readonly leader?: number;
32
+ readonly sessionResident?: number;
33
+ readonly backgroundAgents?: number;
20
34
  }
21
35
  export interface EngineHealthFacts {
22
36
  readonly center?: EngineHealthCenterFacts;
@@ -24,5 +38,8 @@ export interface EngineHealthFacts {
24
38
  readonly operator?: 'present' | 'absent';
25
39
  readonly draining?: EngineHealthDrainingFacts;
26
40
  readonly engineLease?: EngineHealthLeaseFacts;
41
+ readonly inflight?: EngineHealthInflightFacts;
42
+ readonly version?: string;
43
+ readonly dataRoot?: string;
27
44
  }
28
45
  export declare function readEngineHealthFacts(health: object | null | undefined): EngineHealthFacts;
@@ -1,5 +1,5 @@
1
1
  import { readOwnDataValue } from './ownKey.js';
2
- const _healthFactsMatchSdk = [true, true, true, true, true, true];
2
+ const _healthFactsMatchSdk = [true, true, true, true, true, true, true, true, true, true];
3
3
  void _healthFactsMatchSdk;
4
4
  const ENGINE_SIGNAL_KEY = 'engineSignal';
5
5
  function isObject(v) {
@@ -51,7 +51,10 @@ function authOf(raw) {
51
51
  return undefined;
52
52
  kinds.push(word);
53
53
  }
54
- return Object.freeze({ required, kinds: Object.freeze(kinds), identityAttach });
54
+ const actsRaw = readOwnDataValue(raw, 'serviceTokenActsForDeployment');
55
+ if (actsRaw !== undefined && typeof actsRaw !== 'boolean')
56
+ return undefined;
57
+ return Object.freeze({ required, kinds: Object.freeze(kinds), identityAttach, ...(typeof actsRaw === 'boolean' ? { serviceTokenActsForDeployment: actsRaw } : {}) });
55
58
  }
56
59
  function drainingOf(health) {
57
60
  const signal = readOwnDataValue(health, ENGINE_SIGNAL_KEY);
@@ -67,6 +70,17 @@ function drainingOf(health) {
67
70
  return undefined;
68
71
  return Object.freeze({ actionId, since, deadlineAt });
69
72
  }
73
+ function firstAttachOf(raw) {
74
+ if (!isObject(raw))
75
+ return undefined;
76
+ const windowMs = epochMs(readOwnDataValue(raw, 'windowMs'));
77
+ const since = epochMs(readOwnDataValue(raw, 'since'));
78
+ const attachedRaw = readOwnDataValue(raw, 'attachedAt');
79
+ const attachedAt = attachedRaw === null ? null : epochMs(attachedRaw);
80
+ if (windowMs === undefined || since === undefined || attachedAt === undefined)
81
+ return undefined;
82
+ return Object.freeze({ windowMs, since, attachedAt });
83
+ }
70
84
  function leaseOf(raw) {
71
85
  if (!isObject(raw))
72
86
  return undefined;
@@ -74,7 +88,26 @@ function leaseOf(raw) {
74
88
  const tickMs = epochMs(readOwnDataValue(raw, 'tickMs'));
75
89
  if (lingerMs === undefined || tickMs === undefined)
76
90
  return undefined;
77
- return Object.freeze({ lingerMs, tickMs });
91
+ const firstRaw = readOwnDataValue(raw, 'firstAttach');
92
+ const firstAttach = firstRaw === undefined ? undefined : firstAttachOf(firstRaw);
93
+ if (firstRaw !== undefined && firstAttach === undefined)
94
+ return undefined;
95
+ return Object.freeze({ lingerMs, tickMs, ...(firstAttach !== undefined ? { firstAttach } : {}) });
96
+ }
97
+ function inflightOf(health) {
98
+ const total = epochMs(readOwnDataValue(health, 'inflight'));
99
+ if (total === undefined)
100
+ return undefined;
101
+ const raw = guarded(() => readOwnDataValue(health, 'inflightBreakdown'));
102
+ const parts = {};
103
+ if (isObject(raw)) {
104
+ for (const key of ['http', 'leader', 'sessionResident', 'backgroundAgents']) {
105
+ const v = guarded(() => epochMs(readOwnDataValue(raw, key)));
106
+ if (v !== undefined)
107
+ parts[key] = v;
108
+ }
109
+ }
110
+ return Object.freeze({ total, ...parts });
78
111
  }
79
112
  function guarded(read) {
80
113
  try {
@@ -93,11 +126,17 @@ export function readEngineHealthFacts(health) {
93
126
  const operator = operatorRaw === 'present' || operatorRaw === 'absent' ? operatorRaw : undefined;
94
127
  const draining = guarded(() => drainingOf(health));
95
128
  const engineLease = guarded(() => leaseOf(readOwnDataValue(health, 'engineLease')));
129
+ const inflight = guarded(() => inflightOf(health));
130
+ const version = guarded(() => nonEmptyString(readOwnDataValue(health, 'version')));
131
+ const dataRoot = guarded(() => nonEmptyString(readOwnDataValue(health, 'dataRoot')));
96
132
  return Object.freeze({
97
133
  ...(center !== undefined ? { center } : {}),
98
134
  ...(auth !== undefined ? { auth } : {}),
99
135
  ...(operator !== undefined ? { operator } : {}),
100
136
  ...(draining !== undefined ? { draining } : {}),
101
137
  ...(engineLease !== undefined ? { engineLease } : {}),
138
+ ...(inflight !== undefined ? { inflight } : {}),
139
+ ...(version !== undefined ? { version } : {}),
140
+ ...(dataRoot !== undefined ? { dataRoot } : {}),
102
141
  });
103
142
  }
@@ -1,5 +1,6 @@
1
1
  import type { FinishReasonUnknownDetail } from '@sema-agent/sdk';
2
2
  import { CORE_TOOL_TURN_INCOMPLETE_CAUSES, CORE_USER_INPUT_UNDRAINED_CAUSES, CORE_USER_INPUT_UNDRAINED_FAMILIES } from './generated/engineNoticeTables.js';
3
+ import { CORE_DISCARDED_DELIVERY_PATHS } from './generated/engineFactTables.js';
3
4
  import type { UiLanguage } from './env/uiLanguage.js';
4
5
  export type NoticeAudience = 'user' | 'operator';
5
6
  export declare const ENGINE_NOTICE_CODES: readonly string[];
@@ -14,9 +15,23 @@ export interface McpInjectionDropFactsView {
14
15
  field?: string;
15
16
  }
16
17
  export declare function readMcpInjectionDrop(notice: unknown): McpInjectionDropFactsView | undefined;
18
+ export type NoticeLegView = {
19
+ readonly kind: 'self';
20
+ } | {
21
+ readonly kind: 'delegated';
22
+ readonly sourceSessionId: string;
23
+ readonly agentId?: string;
24
+ } | {
25
+ readonly kind: 'unreadable';
26
+ };
27
+ export declare function noticeCallSessionOf(facts: {
28
+ readonly sessionId?: string | undefined;
29
+ readonly leg: NoticeLegView;
30
+ }): string | undefined;
17
31
  export declare const ASK_UNRESOLVABLE_CAUSES: readonly string[];
18
32
  export interface AskUnresolvableFactsView {
19
33
  sessionId: string;
34
+ leg: NoticeLegView;
20
35
  toolName: string;
21
36
  toolCallId: string;
22
37
  cause: string;
@@ -108,6 +123,7 @@ export interface ClassifierUnavailableFactsView {
108
123
  disposition: ClassifierUnavailableDispositionWord;
109
124
  sessionId?: string;
110
125
  runId?: string;
126
+ leg: NoticeLegView;
111
127
  }
112
128
  export declare function readClassifierUnavailable(notice: unknown): ClassifierUnavailableFactsView | undefined;
113
129
  export declare const PERMISSION_MODE_FOLD_REASONS: readonly string[];
@@ -129,6 +145,7 @@ export interface AskReleasedByModeFactsView {
129
145
  firstToolCallId: string;
130
146
  sessionId?: string;
131
147
  runId?: string;
148
+ leg: NoticeLegView;
132
149
  }
133
150
  export declare function readAskReleasedByMode(notice: unknown): AskReleasedByModeFactsView | undefined;
134
151
  export interface ReadDenyUnappliedFactsView {
@@ -139,6 +156,7 @@ export interface ReadDenyUnappliedFactsView {
139
156
  rowCount: number;
140
157
  sessionId: string;
141
158
  runId: string;
159
+ leg: NoticeLegView;
142
160
  }
143
161
  export declare function readReadDenyUnapplied(notice: unknown): ReadDenyUnappliedFactsView | undefined;
144
162
  export interface ToolTurnRepairView {
@@ -198,6 +216,7 @@ export interface UserInputUndrainedFactsView {
198
216
  runId?: string;
199
217
  childSessionId?: string;
200
218
  inputIds?: readonly string[];
219
+ inputKind?: 'steer' | 'approval_feedback';
201
220
  }
202
221
  export declare function readUserInputUndrained(notice: unknown): UserInputUndrainedFactsView | undefined;
203
222
  export interface UndrainedInputsLedger {
@@ -210,7 +229,7 @@ export interface UndrainedInputsVerdict {
210
229
  readonly unattributed: number;
211
230
  }
212
231
  export declare function undrainedInputsVerdict(facts: Pick<UserInputUndrainedFactsView, 'count' | 'cause' | 'inputIds' | 'childSessionId'> | null | undefined, ledger: UndrainedInputsLedger | null | undefined): UndrainedInputsVerdict | undefined;
213
- export declare function userInputUndrainedNotice(facts: Pick<UserInputUndrainedFactsView, 'kind' | 'count' | 'cause' | 'childSessionId'>): string | undefined;
232
+ export declare function userInputUndrainedNotice(facts: Pick<UserInputUndrainedFactsView, 'kind' | 'count' | 'cause' | 'childSessionId' | 'inputKind'>, lang?: UiLanguage): string | undefined;
214
233
  export interface TurnInterruptedFactsView {
215
234
  lane: 'input_now' | 'user_halt' | 'unrecognized';
216
235
  inputId?: string;
@@ -270,6 +289,120 @@ interface SessionLineageRerootedBroken extends SessionLineageRerootedCommon {
270
289
  }
271
290
  export type SessionLineageRerootedFactsView = SessionLineageRerootedWhole | SessionLineageRerootedBroken;
272
291
  export declare function readSessionLineageRerooted(notice: {} | null | undefined): SessionLineageRerootedFactsView | undefined;
292
+ export interface MemorySessionPollutedFactsView {
293
+ reason: string;
294
+ sessionId?: string;
295
+ }
296
+ export declare function readMemorySessionPolluted(notice: {} | null | undefined): MemorySessionPollutedFactsView | undefined;
297
+ export interface MemoryHarvestQuarantinedFactsView {
298
+ count: number;
299
+ moved: number;
300
+ escalated: number;
301
+ indexRolledBack?: true;
302
+ reportId?: string;
303
+ sessionId?: string;
304
+ }
305
+ export declare function readMemoryHarvestQuarantined(notice: {} | null | undefined): MemoryHarvestQuarantinedFactsView | undefined;
306
+ export interface MemoryDelegationStaticMarkWaivedFactsView {
307
+ reason: string;
308
+ subagentType?: string;
309
+ sessionId?: string;
310
+ runId: string;
311
+ }
312
+ export declare function readMemoryDelegationStaticMarkWaived(notice: {} | null | undefined): MemoryDelegationStaticMarkWaivedFactsView | undefined;
313
+ export interface MemoryCaptureOptedOutFactsView {
314
+ sessionId: string;
315
+ origin: string;
316
+ }
317
+ export declare function readMemoryCaptureOptedOut(notice: {} | null | undefined): MemoryCaptureOptedOutFactsView | undefined;
318
+ export interface MemoryCaptureOptoutUnpersistedFactsView {
319
+ sessionId: string;
320
+ ingress?: string;
321
+ }
322
+ export declare function readMemoryCaptureOptoutUnpersisted(notice: {} | null | undefined): MemoryCaptureOptoutUnpersistedFactsView | undefined;
323
+ export interface PeerInboundDispositionFactsView {
324
+ disposition: string;
325
+ cause: string;
326
+ seq: number;
327
+ box: string;
328
+ fromSession?: string;
329
+ sessionId: string;
330
+ runId: string;
331
+ }
332
+ export declare function readPeerInboundDisposition(notice: {} | null | undefined): PeerInboundDispositionFactsView | undefined;
333
+ export interface PeerHeldSettledFactsView {
334
+ settlement: string;
335
+ reason: string;
336
+ seq: number;
337
+ box: string;
338
+ fromSession?: string;
339
+ heldCount: number;
340
+ sessionId: string;
341
+ runId: string;
342
+ }
343
+ export declare function readPeerHeldSettled(notice: {} | null | undefined): PeerHeldSettledFactsView | undefined;
344
+ export interface PeerIdleSubscriptionFactsView {
345
+ outcome: string;
346
+ fromSession: string;
347
+ live?: number;
348
+ seq: number;
349
+ box: string;
350
+ sessionId: string;
351
+ runId: string;
352
+ }
353
+ export declare function readPeerIdleSubscription(notice: {} | null | undefined): PeerIdleSubscriptionFactsView | undefined;
354
+ export interface ClassifierDenialLimitFactsView {
355
+ sessionId: string;
356
+ runId: string;
357
+ toolName: string;
358
+ toolCallId: string;
359
+ consecutive: number;
360
+ total: number;
361
+ limit: string;
362
+ }
363
+ export declare function readClassifierDenialLimit(notice: {} | null | undefined): ClassifierDenialLimitFactsView | undefined;
364
+ export interface TaskLateApprovalFactsView {
365
+ toolName: string;
366
+ toolCallId: string;
367
+ sessionId: string;
368
+ runId: string;
369
+ taskId?: string;
370
+ }
371
+ export declare function readTaskLateApproval(notice: {} | null | undefined): TaskLateApprovalFactsView | undefined;
372
+ export interface TaskHaltUnconsumedFactsView {
373
+ sessionId: string;
374
+ runId: string;
375
+ taskId?: string;
376
+ }
377
+ export declare function readTaskHaltUnconsumed(notice: {} | null | undefined): TaskHaltUnconsumedFactsView | undefined;
378
+ export interface SteeringParkedInputBlockedFactsView {
379
+ inputId?: string;
380
+ sessionId: string;
381
+ runId: string;
382
+ taskId?: string;
383
+ }
384
+ export declare function readSteeringParkedInputBlocked(notice: {} | null | undefined): SteeringParkedInputBlockedFactsView | undefined;
385
+ export declare function memorySessionPollutedSentence(facts: Pick<MemorySessionPollutedFactsView, 'reason'>, lang?: UiLanguage): string | undefined;
386
+ export declare function memoryHarvestQuarantinedSentence(facts: Pick<MemoryHarvestQuarantinedFactsView, 'count' | 'moved' | 'escalated' | 'indexRolledBack'>, lang?: UiLanguage): string | undefined;
387
+ export declare function memoryDelegationStaticMarkWaivedSentence(facts: Pick<MemoryDelegationStaticMarkWaivedFactsView, 'reason' | 'subagentType'>, lang?: UiLanguage): string | undefined;
388
+ export declare function memoryCaptureOptedOutSentence(facts: Pick<MemoryCaptureOptedOutFactsView, 'origin'>, lang?: UiLanguage): string | undefined;
389
+ export declare function memoryCaptureOptoutUnpersistedSentence(facts: Pick<MemoryCaptureOptoutUnpersistedFactsView, 'sessionId' | 'ingress'>, lang?: UiLanguage): string | undefined;
390
+ export declare function peerInboundDispositionSentence(facts: Pick<PeerInboundDispositionFactsView, 'disposition' | 'cause' | 'seq' | 'fromSession'>, lang?: UiLanguage): string | undefined;
391
+ export declare function peerHeldSettledSentence(facts: Pick<PeerHeldSettledFactsView, 'settlement' | 'reason' | 'seq' | 'fromSession' | 'heldCount'>, lang?: UiLanguage): string | undefined;
392
+ export declare function peerIdleSubscriptionSentence(facts: Pick<PeerIdleSubscriptionFactsView, 'outcome' | 'fromSession' | 'live'>, lang?: UiLanguage): string | undefined;
393
+ export declare function classifierDenialLimitSentence(facts: Pick<ClassifierDenialLimitFactsView, 'toolName' | 'consecutive' | 'total' | 'limit'>, lang?: UiLanguage): string | undefined;
394
+ export declare function taskLateApprovalSentence(facts: Pick<TaskLateApprovalFactsView, 'toolName'>, lang?: UiLanguage): string | undefined;
395
+ export declare function taskHaltUnconsumedSentence(facts: Pick<TaskHaltUnconsumedFactsView, 'sessionId' | 'runId'>, lang?: UiLanguage): string | undefined;
396
+ export declare function steeringParkedInputBlockedSentence(facts: Pick<SteeringParkedInputBlockedFactsView, 'sessionId' | 'runId'>, lang?: UiLanguage): string | undefined;
397
+ export declare function durableGateUnavailableSentence(facts: Pick<DurableGateUnavailableFactsView, 'source' | 'cause' | 'liveApprover' | 'liveQuestionFace'>, lang?: UiLanguage): string | undefined;
398
+ export type DiscardedDeliveryPathWord = (typeof CORE_DISCARDED_DELIVERY_PATHS)[number];
399
+ export interface DeliveryDiscardedFactsView {
400
+ taskId: string;
401
+ taskType: string;
402
+ sessionId: string;
403
+ path?: DiscardedDeliveryPathWord;
404
+ }
405
+ export declare function readDeliveryDiscarded(notice: {} | null | undefined): DeliveryDiscardedFactsView | undefined;
273
406
  export declare const ENGINE_NOTICE_FACT_READERS: Readonly<{
274
407
  readonly 'mcp.injection_dropped': typeof readMcpInjectionDrop;
275
408
  readonly 'delegation.ask_unresolvable': typeof readAskUnresolvable;
@@ -298,6 +431,19 @@ export declare const ENGINE_NOTICE_FACT_READERS: Readonly<{
298
431
  readonly 'context.media_removed': typeof readContextMediaRemoved;
299
432
  readonly 'context.image_removed': typeof readContextMediaRemoved;
300
433
  readonly 'session.lineage_rerooted': typeof readSessionLineageRerooted;
434
+ readonly 'memory.session_polluted': typeof readMemorySessionPolluted;
435
+ readonly 'memory.harvest_quarantined': typeof readMemoryHarvestQuarantined;
436
+ readonly 'memory.delegation_static_mark_waived': typeof readMemoryDelegationStaticMarkWaived;
437
+ readonly 'memory.capture_opted_out': typeof readMemoryCaptureOptedOut;
438
+ readonly 'memory.capture_optout_unpersisted': typeof readMemoryCaptureOptoutUnpersisted;
439
+ readonly 'peer.inbound_disposition': typeof readPeerInboundDisposition;
440
+ readonly 'peer.held_settled': typeof readPeerHeldSettled;
441
+ readonly 'peer.idle_subscription': typeof readPeerIdleSubscription;
442
+ readonly 'classifier.denial_limit': typeof readClassifierDenialLimit;
443
+ readonly 'task.late_approval': typeof readTaskLateApproval;
444
+ readonly 'task.halt_unconsumed': typeof readTaskHaltUnconsumed;
445
+ readonly 'steering.parked_input_blocked': typeof readSteeringParkedInputBlocked;
446
+ readonly 'delegation.delivery_discarded': typeof readDeliveryDiscarded;
301
447
  }>;
302
448
  type FactReaderTable = typeof ENGINE_NOTICE_FACT_READERS;
303
449
  export type EngineNoticeFactsCode = keyof FactReaderTable;