@sema-agent/client-core 0.108.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 (103) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/README.md +37 -24
  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.js +1 -1
  7. package/dist/adapter/downstream/eventToSdkMessage.js +2 -1
  8. package/dist/agentSession/engineAgentRegistryRead.js +2 -0
  9. package/dist/bashExitReading.d.ts +12 -0
  10. package/dist/bashExitReading.js +44 -0
  11. package/dist/checkpointRowVerdict.d.ts +1 -1
  12. package/dist/checkpointRowVerdict.js +4 -2
  13. package/dist/compensations.js +1 -1
  14. package/dist/engineAgentAbsence.d.ts +2 -0
  15. package/dist/engineAgentAbsence.js +28 -0
  16. package/dist/engineErrorCodes.d.ts +4 -0
  17. package/dist/engineErrorCodes.js +4 -0
  18. package/dist/engineHealthFacts.d.ts +17 -0
  19. package/dist/engineHealthFacts.js +42 -3
  20. package/dist/engineNoticeCodes.d.ts +128 -0
  21. package/dist/engineNoticeCodes.js +630 -55
  22. package/dist/errorSupplementRoles.js +4 -1
  23. package/dist/fleetTaskDesc.js +3 -3
  24. package/dist/generated/engineFactTables.d.ts +1 -0
  25. package/dist/generated/engineFactTables.js +6 -0
  26. package/dist/generated/engineNoticeTables.js +3 -0
  27. package/dist/hitl/approvalCardReasons.js +22 -4
  28. package/dist/hitl/approvalRequestFrameReading.d.ts +14 -0
  29. package/dist/hitl/approvalRequestFrameReading.js +79 -0
  30. package/dist/hitl/approvalsFeed.js +1 -1
  31. package/dist/hitl/askParkRowRouting.js +5 -2
  32. package/dist/hitl/automaticAnswerVerdict.d.ts +5 -2
  33. package/dist/hitl/automaticAnswerVerdict.js +16 -2
  34. package/dist/hitl/decisionConflict.d.ts +2 -1
  35. package/dist/hitl/decisionConflict.js +4 -1
  36. package/dist/hitl/frameRouter.js +9 -1
  37. package/dist/hitl/hitlBridge.d.ts +4 -0
  38. package/dist/hitl/hitlBridge.js +9 -5
  39. package/dist/hitl/livePendingAsk.js +17 -16
  40. package/dist/hitl/localAllowRule.js +2 -1
  41. package/dist/hitl/noAllowCause.d.ts +1 -1
  42. package/dist/hitl/noAllowCause.js +4 -2
  43. package/dist/hitl/parkExpiryJudgements.js +26 -1
  44. package/dist/hitl/parkOwnership.d.ts +2 -0
  45. package/dist/hitl/parkOwnership.js +48 -8
  46. package/dist/hitl/parkResolver.js +7 -7
  47. package/dist/hitl/parkedUnresumable.d.ts +13 -0
  48. package/dist/hitl/parkedUnresumable.js +80 -0
  49. package/dist/hitl/permissionRuleScope.d.ts +4 -0
  50. package/dist/hitl/permissionRuleScope.js +31 -0
  51. package/dist/hitl/persistedRulesWire.d.ts +2 -0
  52. package/dist/hitl/persistedRulesWire.js +11 -10
  53. package/dist/hitl/sessionAllowRoute.js +5 -4
  54. package/dist/hitl/standingRows.d.ts +1 -5
  55. package/dist/hitl/standingRows.js +15 -14
  56. package/dist/hitl/toolApprovalWire.d.ts +8 -2
  57. package/dist/hitl/toolApprovalWire.js +35 -14
  58. package/dist/hooksWireCaps.js +4 -3
  59. package/dist/hostSettingsSource.js +2 -0
  60. package/dist/i18n/messages.en.d.ts +168 -0
  61. package/dist/i18n/messages.en.js +169 -1
  62. package/dist/i18n/messages.zh.js +169 -1
  63. package/dist/index.d.ts +29 -7
  64. package/dist/index.js +16 -4
  65. package/dist/localEngineJudge.d.ts +75 -0
  66. package/dist/localEngineJudge.js +242 -0
  67. package/dist/localEngineOccupancy.d.ts +88 -0
  68. package/dist/localEngineOccupancy.js +269 -0
  69. package/dist/localEngineSeatReading.d.ts +29 -0
  70. package/dist/localEngineSeatReading.js +294 -0
  71. package/dist/localEngineSpawn.d.ts +113 -0
  72. package/dist/localEngineSpawn.js +486 -0
  73. package/dist/localEngineStep.d.ts +286 -0
  74. package/dist/localEngineStep.js +1086 -0
  75. package/dist/localEngineStopLadder.d.ts +29 -0
  76. package/dist/localEngineStopLadder.js +139 -0
  77. package/dist/localEngineSwapCard.d.ts +43 -0
  78. package/dist/localEngineSwapCard.js +205 -0
  79. package/dist/localEngineTiming.d.ts +8 -0
  80. package/dist/localEngineTiming.js +8 -0
  81. package/dist/mcpReconnect.js +12 -5
  82. package/dist/mcpWireCaps.js +2 -2
  83. package/dist/memoryEntriesWire.d.ts +1 -1
  84. package/dist/memoryEntriesWire.js +5 -0
  85. package/dist/noticePresentation.d.ts +2 -0
  86. package/dist/noticePresentation.js +79 -1
  87. package/dist/ownKey.d.ts +10 -0
  88. package/dist/ownKey.js +15 -1
  89. package/dist/ruleReadings.js +1 -1
  90. package/dist/seam.d.ts +13 -2
  91. package/dist/seam.js +8 -1
  92. package/dist/seatContract.d.ts +42 -4
  93. package/dist/seatContract.js +180 -3
  94. package/dist/sessionBackground.js +2 -0
  95. package/dist/subagentContentStore.d.ts +12 -0
  96. package/dist/subagentContentStore.js +72 -11
  97. package/dist/toolResult.js +18 -5
  98. package/dist/wireFailureShape.d.ts +20 -0
  99. package/dist/wireFailureShape.js +37 -6
  100. package/dist/wireRefusalCopy.d.ts +21 -1
  101. package/dist/wireRefusalCopy.js +91 -2
  102. package/docs/INTEGRATION-CLIENTS.md +1152 -10
  103. package/package.json +3 -3
@@ -0,0 +1,286 @@
1
+ import { type EngineIdentityView } from './engineIdentity.js';
2
+ import type { LocalEngineRef, LocalEngineVerdict } from './localEngineJudge.js';
3
+ import { type LocalEngineOccupancy } from './localEngineOccupancy.js';
4
+ import { type EngineSwapCard, type EngineSwapCardTarget, type LocalEngineSwapCause } from './localEngineSwapCard.js';
5
+ import { type StopLadderState } from './localEngineStopLadder.js';
6
+ import type { RequestLane } from './request/taskRequest.js';
7
+ import type { LocalEngineBudgets } from './localEngineSpawn.js';
8
+ export interface LocalEnginePolicy {
9
+ readonly lane: Exclude<RequestLane, 'utility'>;
10
+ readonly credentialAuto: boolean;
11
+ readonly budgets: LocalEngineBudgets;
12
+ }
13
+ export interface LocalEngineStepOccupancy extends LocalEngineOccupancy {
14
+ readonly bgIds: readonly string[] | null;
15
+ }
16
+ export type LocalEngineTarget = EngineSwapCardTarget;
17
+ export type LocalEngineStateDownReason = 'lock-unavailable' | 'spawn-failed' | 'spawn-refused' | 'stop-failed' | 'crash-loop' | 'high-water-unreadable';
18
+ export interface LocalEngineCauseEntry {
19
+ readonly cause: LocalEngineSwapCause;
20
+ readonly fingerprint: string;
21
+ }
22
+ export interface LocalEngineAutoTry {
23
+ readonly cause: LocalEngineSwapCause;
24
+ readonly target: EngineIdentityView;
25
+ }
26
+ export interface LocalEngineCtx {
27
+ readonly causes: readonly LocalEngineCauseEntry[];
28
+ readonly autoTried: readonly LocalEngineAutoTry[];
29
+ readonly opSeq: number;
30
+ readonly lockRetry: 0 | 1;
31
+ readonly attached: {
32
+ readonly instance: EngineIdentityView;
33
+ readonly at: number;
34
+ } | null;
35
+ readonly demand: boolean;
36
+ readonly deaths: readonly number[];
37
+ readonly cooldown: number;
38
+ }
39
+ export interface LocalEngineCardHold {
40
+ readonly cause: LocalEngineSwapCause;
41
+ readonly target: LocalEngineTarget;
42
+ readonly running?: string;
43
+ readonly own?: string;
44
+ readonly occupancy: LocalEngineStepOccupancy | null;
45
+ }
46
+ export type LocalEngineLockIntent = {
47
+ readonly kind: 'spawn';
48
+ } | {
49
+ readonly kind: 'stop';
50
+ readonly mode: 'idle' | 'forced';
51
+ readonly serving: boolean;
52
+ };
53
+ export type LocalEnginePlan = {
54
+ readonly kind: 'spawn';
55
+ } | {
56
+ readonly kind: 'stop';
57
+ readonly target: LocalEngineTarget;
58
+ readonly mode: 'idle' | 'forced';
59
+ };
60
+ export type LocalEngineRelation = 'attach' | 'version-unknown' | 'ahead';
61
+ export type LocalEngineState = {
62
+ readonly kind: 'unbound';
63
+ readonly ctx: LocalEngineCtx;
64
+ } | {
65
+ readonly kind: 'attached';
66
+ readonly engine: LocalEngineRef;
67
+ readonly relation: LocalEngineRelation;
68
+ readonly since: number;
69
+ readonly ctx: LocalEngineCtx;
70
+ } | {
71
+ readonly kind: 'pending';
72
+ readonly target: LocalEngineTarget | null;
73
+ readonly serving: boolean;
74
+ readonly relation?: LocalEngineRelation;
75
+ readonly card: 'shown' | 'hidden';
76
+ readonly hold?: LocalEngineCardHold;
77
+ readonly ctx: LocalEngineCtx;
78
+ } | {
79
+ readonly kind: 'draining-wait';
80
+ readonly engine: LocalEngineRef;
81
+ readonly deadlineAt: number;
82
+ readonly overdue: boolean;
83
+ readonly ctx: LocalEngineCtx;
84
+ } | {
85
+ readonly kind: 'unanswered';
86
+ readonly pid: number;
87
+ readonly startedAt?: number;
88
+ readonly reason: 'no-answer' | 'unverifiable';
89
+ readonly since: number;
90
+ readonly ctx: LocalEngineCtx;
91
+ } | {
92
+ readonly kind: 'down';
93
+ readonly reason: LocalEngineStateDownReason;
94
+ readonly since: number;
95
+ readonly ctx: LocalEngineCtx;
96
+ } | {
97
+ readonly kind: 'locking';
98
+ readonly intent: LocalEngineLockIntent;
99
+ readonly held: boolean;
100
+ readonly entry: LocalEngineTarget | null;
101
+ readonly op: number;
102
+ readonly since: number;
103
+ readonly plan: LocalEnginePlan | null;
104
+ readonly ctx: LocalEngineCtx;
105
+ } | {
106
+ readonly kind: 'stopping';
107
+ readonly target: LocalEngineTarget;
108
+ readonly mode: 'idle' | 'forced';
109
+ readonly ladder: StopLadderState;
110
+ readonly op: number;
111
+ readonly ctx: LocalEngineCtx;
112
+ } | {
113
+ readonly kind: 'spawning';
114
+ readonly forced: boolean;
115
+ readonly deferred: readonly LocalEngineCauseEntry[];
116
+ readonly op: number;
117
+ readonly since: number;
118
+ readonly ctx: LocalEngineCtx;
119
+ } | {
120
+ readonly kind: 'behind';
121
+ readonly running: string;
122
+ readonly own: string;
123
+ readonly source: 'running' | 'high-water';
124
+ };
125
+ export type LocalEngineEvent = {
126
+ readonly kind: 'observed';
127
+ readonly verdict: LocalEngineVerdict;
128
+ readonly occupancy?: LocalEngineStepOccupancy;
129
+ readonly demand: boolean;
130
+ readonly nowMs: number;
131
+ } | {
132
+ readonly kind: 'relooked';
133
+ readonly verdict: LocalEngineVerdict;
134
+ readonly occupancy?: LocalEngineStepOccupancy;
135
+ readonly nowMs: number;
136
+ readonly op: number;
137
+ } | {
138
+ readonly kind: 'lock';
139
+ readonly held: boolean;
140
+ readonly op: number;
141
+ readonly nowMs: number;
142
+ } | {
143
+ readonly kind: 'lock-lost';
144
+ readonly op: number;
145
+ readonly nowMs: number;
146
+ } | {
147
+ readonly kind: 'prepared';
148
+ readonly ok: boolean;
149
+ readonly reason?: string;
150
+ readonly occupancy?: LocalEngineStepOccupancy;
151
+ readonly nowMs: number;
152
+ readonly op: number;
153
+ } | {
154
+ readonly kind: 'tick';
155
+ readonly nowMs: number;
156
+ readonly alive?: 'alive' | 'gone' | 'unknown';
157
+ readonly health?: object | null;
158
+ readonly occupancy?: LocalEngineStepOccupancy;
159
+ } | {
160
+ readonly kind: 'cause';
161
+ readonly cause: LocalEngineSwapCause;
162
+ readonly fingerprint: string;
163
+ readonly occupancy?: LocalEngineStepOccupancy;
164
+ readonly nowMs: number;
165
+ } | {
166
+ readonly kind: 'cause-resolved';
167
+ readonly cause: LocalEngineSwapCause;
168
+ readonly fingerprint: string;
169
+ readonly nowMs: number;
170
+ } | {
171
+ readonly kind: 'answer';
172
+ readonly choice: 'force' | 'wait';
173
+ readonly fingerprint: string;
174
+ readonly occupancy?: LocalEngineStepOccupancy;
175
+ readonly nowMs: number;
176
+ } | {
177
+ readonly kind: 'spawned';
178
+ readonly verdict: LocalEngineVerdict;
179
+ readonly op: number;
180
+ readonly nowMs: number;
181
+ } | {
182
+ readonly kind: 'spawn-failed';
183
+ readonly reason?: string;
184
+ readonly op: number;
185
+ readonly nowMs: number;
186
+ } | {
187
+ readonly kind: 'gone';
188
+ readonly instance: EngineIdentityView;
189
+ readonly clean: boolean | 'unknown';
190
+ readonly nowMs: number;
191
+ };
192
+ export declare const LOCAL_ENGINE_FAIL_CODES: readonly ["local_engine.behind", "local_engine.legacy_below_floor", "local_engine.unresponsive", "local_engine.swap_pending", "local_engine.drain_overdue", "local_engine.unanswered_unverifiable", "local_engine.lock_unavailable", "local_engine.spawn_failed", "local_engine.spawn_refused", "local_engine.stop_failed", "local_engine.crash_loop", "local_engine.high_water_unreadable", "local_engine.principal_unknown"];
193
+ export type LocalEngineFailCode = (typeof LOCAL_ENGINE_FAIL_CODES)[number];
194
+ export type LocalEngineNotice = {
195
+ readonly key: 'versionUnknown';
196
+ } | {
197
+ readonly key: 'highWaterUnreadable';
198
+ } | {
199
+ readonly key: 'crashLoop';
200
+ readonly retryInMs: number | null;
201
+ } | {
202
+ readonly key: 'crashLoopRetry';
203
+ } | {
204
+ readonly key: 'drainOverdue';
205
+ } | {
206
+ readonly key: 'engineExited';
207
+ readonly counted: boolean;
208
+ readonly crashLoopNext: boolean;
209
+ } | {
210
+ readonly key: 'cannotVerifyEngine';
211
+ } | {
212
+ readonly key: 'lockUnavailable';
213
+ } | {
214
+ readonly key: 'prepareFailed';
215
+ readonly reason: string;
216
+ } | {
217
+ readonly key: 'stopFailed';
218
+ } | {
219
+ readonly key: 'spawnFailed';
220
+ readonly timeout: boolean;
221
+ } | {
222
+ readonly key: 'lockLost';
223
+ } | {
224
+ readonly key: 'forcedLine';
225
+ };
226
+ export type LocalEngineEffect = {
227
+ readonly kind: 'attach';
228
+ readonly engine: LocalEngineRef;
229
+ } | {
230
+ readonly kind: 'submits';
231
+ readonly open: boolean;
232
+ readonly sentence?: 'legacyBelowFloor' | 'behind';
233
+ } | {
234
+ readonly kind: 'card';
235
+ readonly show: EngineSwapCard | null;
236
+ } | {
237
+ readonly kind: 'banner';
238
+ readonly key: 'pending' | null;
239
+ } | {
240
+ readonly kind: 'acquire-lock';
241
+ readonly op: number;
242
+ } | {
243
+ readonly kind: 'cancel-lock';
244
+ readonly op: number;
245
+ } | {
246
+ readonly kind: 'release-lock';
247
+ readonly op: number;
248
+ } | {
249
+ readonly kind: 'reread';
250
+ } | {
251
+ readonly kind: 'prepare';
252
+ readonly plan: LocalEnginePlan;
253
+ readonly op: number;
254
+ } | {
255
+ readonly kind: 'signal';
256
+ readonly pid: number;
257
+ readonly startedAt?: number;
258
+ readonly sig: 'term' | 'kill';
259
+ } | {
260
+ readonly kind: 'spawn';
261
+ readonly op: number;
262
+ } | {
263
+ readonly kind: 'abandon-spawn';
264
+ readonly op: number;
265
+ } | {
266
+ readonly kind: 'hand-off';
267
+ } | {
268
+ readonly kind: 'prompt-upgrade';
269
+ readonly running: string;
270
+ readonly own: string;
271
+ readonly source: 'running' | 'high-water';
272
+ } | {
273
+ readonly kind: 'fail';
274
+ readonly code: LocalEngineFailCode;
275
+ } | {
276
+ readonly kind: 'notice';
277
+ readonly notice: LocalEngineNotice;
278
+ };
279
+ export interface LocalEngineStepResult {
280
+ readonly state: LocalEngineState;
281
+ readonly effects: readonly LocalEngineEffect[];
282
+ }
283
+ export declare const LOCAL_ENGINE_INITIAL_STATE: LocalEngineState;
284
+ export declare function localEngineCurrentCard(s: LocalEngineState): EngineSwapCard | undefined;
285
+ export declare function localEngineStep(state: LocalEngineState, event: LocalEngineEvent, policy: LocalEnginePolicy): LocalEngineStepResult;
286
+ export declare function engineSwapAnswerOutcomeOf(before: LocalEngineState, event: LocalEngineEvent, policy: LocalEnginePolicy): 'started' | 'stale-card' | 'nothing-pending';