@sema-agent/client-core 0.76.2 → 0.77.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/CHANGELOG.md +29 -0
- package/README.md +4 -1
- package/dist/approvalsStreamLiveCapability.js +5 -1
- package/dist/deviceExecutorManagementCapability.js +2 -2
- package/dist/executionLaneCapability.js +5 -1
- package/dist/hitl/persistedRulesWire.d.ts +221 -1
- package/dist/hitl/persistedRulesWire.js +324 -18
- package/dist/hitl/sessionPolicyWire.d.ts +275 -0
- package/dist/hitl/sessionPolicyWire.js +464 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +12 -0
- package/dist/memoryEntriesWire.js +7 -0
- package/dist/peerLaneCapability.js +5 -1
- package/dist/permissionRulesWriteCapability.js +5 -1
- package/dist/request/taskRequest.d.ts +101 -1
- package/dist/request/taskRequest.js +457 -80
- package/dist/sessionPolicyCapability.d.ts +68 -0
- package/dist/sessionPolicyCapability.js +103 -0
- package/dist/sqlEngineCapability.js +5 -1
- package/dist/webSearchBackendCapability.js +5 -1
- package/dist/writeProtectionCapability.js +5 -1
- package/docs/INTEGRATION-CLIENTS.md +68 -8
- package/package.json +1 -1
|
@@ -70,7 +70,6 @@ export interface TaskRequestInput {
|
|
|
70
70
|
images?: readonly unknown[];
|
|
71
71
|
skills?: unknown;
|
|
72
72
|
mcpServers?: unknown;
|
|
73
|
-
agents?: unknown;
|
|
74
73
|
clientContext?: Record<string, unknown>;
|
|
75
74
|
scratchpadDir?: string;
|
|
76
75
|
sandboxImageProfile?: string;
|
|
@@ -90,6 +89,19 @@ export interface TaskRequestInput {
|
|
|
90
89
|
interactiveTools?: false;
|
|
91
90
|
/** 一次性提交声明(`true|undefined` 型:opt-out=不传,绝不发 false——wire 上与缺席同义,发小的那个)。 */
|
|
92
91
|
oneShot?: true;
|
|
92
|
+
/** 结构化输出约束(0.77.0;形 = sdk `TaskRequest.outputSchema` 本尊,原样透传;print 车道有座,见矩阵行)。 */
|
|
93
|
+
outputSchema?: NonNullable<TaskRequest['outputSchema']>;
|
|
94
|
+
/**
|
|
95
|
+
* 花费上限声明(0.77.0;美元,请求体顶层位;print 车道有座)。
|
|
96
|
+
* 🔴 只接受**有限正数**或缺席:别的值(数字串 / `NaN` / `0` / 负数 / `Infinity`)构造器响亮拒,理由见 `refuseBadMaxCostUsd`。
|
|
97
|
+
*/
|
|
98
|
+
maxCostUsd?: number;
|
|
99
|
+
/** 整任务 token 预算(`--task-budget <tokens>` 一类旗的意图)。上游无对位 ⇒ 恒不发,回执答 `upstream_absent`。 */
|
|
100
|
+
taskBudget?: number;
|
|
101
|
+
/** 主模型过载时的后备模型(`--fallback-model <model>` 一类旗的意图)。上游无对位 ⇒ 恒不发,回执答 `upstream_absent`。 */
|
|
102
|
+
fallbackModel?: string;
|
|
103
|
+
/** 思考 token 数上限(`--max-thinking-tokens <tokens>` 一类旗的意图)。上游只有档位词(`reasoningEffort`),没有 token 数这一位 ⇒ 恒不发。 */
|
|
104
|
+
maxThinkingTokens?: number;
|
|
93
105
|
/**
|
|
94
106
|
* 「本会话永远不进长期记忆」的**声明形**([7226] ⑤;server §12.4)。
|
|
95
107
|
* 🔴 型面就写成 `'off'`:上游是**单成员闭集**(没有 `"on"`),给它一个宽串型等于邀请调用方发
|
|
@@ -123,6 +135,73 @@ export interface TaskRequestInput {
|
|
|
123
135
|
outputStyle?: string;
|
|
124
136
|
};
|
|
125
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* 「入参里在场、却没上请求体」的**成因词表**(冻结)。🔴 词序就是判定序(先中先得),判定逐词走
|
|
140
|
+
* {@link OMISSION_JUDGES} —— 那张判官表的键型就是本词表的成员型:加词不加判官 / 加判官不加词,编译当场红。
|
|
141
|
+
*
|
|
142
|
+
* · `upstream_absent` —— 本包认识这个意图,但上游没有对位(sdk 型面无具名位,提交体与引擎 spec 也不读)。
|
|
143
|
+
* 见 {@link UPSTREAM_ABSENT_REQUEST_INTENTS}。恒不发,与车道 / live 无关。
|
|
144
|
+
* · `other_channel` —— 是请求体上的真位,但**不归本构造器**盖:归 live 兜底层({@link LIVE_DEFAULT_FIELDS},
|
|
145
|
+
* 端在构造之后经 {@link applyLiveRequestDefaults} 落位)。塞进本构造器的入参 = 没发出去。
|
|
146
|
+
* · `off_lane` —— 在车道表里,但本车道不在那一行的 `lanes` 里(理由读那一行的 `why`)。
|
|
147
|
+
* · `not_live` —— 本车道有座,但那一行是 live 门后的位,而这一次 `input.live` 为假(mock / fixture 车道)。
|
|
148
|
+
*
|
|
149
|
+
* 🔴 本词表只答「**本构造器**这一次带没带」。带了 ≠ 引擎兑现了:老版本上游静默忽略新键、部署策略拒、
|
|
150
|
+
* 能力位没开,那些只有引擎知道 —— 端不许拿「回执里没有这一键」去渲一句「已生效」。
|
|
151
|
+
* ⚠️ **值级等价缺席不入回执**:空数组 / `council:false` / `oneShot` 非 `true` 这类值在 wire 上与缺席同义
|
|
152
|
+
* (构造器发小的那个),没有意图被丢,报它们只是噪音。
|
|
153
|
+
*/
|
|
154
|
+
export declare const TASK_REQUEST_OMISSION_CAUSES: readonly ["upstream_absent", "other_channel", "off_lane", "not_live"];
|
|
155
|
+
export type TaskRequestOmissionCause = (typeof TASK_REQUEST_OMISSION_CAUSES)[number];
|
|
156
|
+
/** 回执的一行:入参键名(不是 wire 键名 —— `rewind` / `settings.resolved` 这类入参键在 wire 上是摊开的)+ 成因。 */
|
|
157
|
+
export interface TaskRequestOmission {
|
|
158
|
+
readonly key: string;
|
|
159
|
+
readonly cause: TaskRequestOmissionCause;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* {@link assembleTaskRequest} 的产物:请求体与回执出自**同一次装配、同一只判官**。
|
|
163
|
+
* · `request` —— 与 {@link buildTaskRequest} 逐字节同一份(刻意**不冻结**:端在构造之后还要经 live 兜底层落位)。
|
|
164
|
+
* · `omitted` —— 冻结;序 = 入参型的声明序(不是调用方的书写序),其后才是入参型之外的 live 兜底键。
|
|
165
|
+
* `[]` 是**肯定断言**(看过了,在场的键全上了请求体),不是「没算」。
|
|
166
|
+
*/
|
|
167
|
+
export interface TaskRequestAssembly {
|
|
168
|
+
readonly request: TaskRequestLike;
|
|
169
|
+
readonly omitted: readonly TaskRequestOmission[];
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* 一个入参键在一条车道上的**座位读数** —— 三个答案,刻意分开:
|
|
173
|
+
* · `seated` —— 有座;`liveGated` 为真 ⇒ 还要 `input.live` 为真才上请求体;
|
|
174
|
+
* · `none` —— 明确没座,带成因(`not_live` 是逐次请求的事实,不属于座位读数,故型上排除);
|
|
175
|
+
* · `unknown` —— 本包的表里**没有这一键**:不知道它是什么,也就不知道上游有没有对位。
|
|
176
|
+
* 🔴 它不是 `none` 的一种 —— 装配口对这一档是响亮拒,不是给一行回执。
|
|
177
|
+
* ⚠️ `live` 是装配控制位(决定 live 门)不是请求键:读数答 `seated`(装配恒按它行事),它永不进回执。
|
|
178
|
+
*/
|
|
179
|
+
export type TaskRequestSeatReading = {
|
|
180
|
+
readonly seat: 'seated';
|
|
181
|
+
readonly liveGated: boolean;
|
|
182
|
+
} | {
|
|
183
|
+
readonly seat: 'none';
|
|
184
|
+
readonly cause: Exclude<TaskRequestOmissionCause, 'not_live'>;
|
|
185
|
+
} | {
|
|
186
|
+
readonly seat: 'unknown';
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* 上游今天**没有对位**的请求意图(由 {@link INPUT_KEY_ROUTES} 派生,不另抄一份)。
|
|
190
|
+
*
|
|
191
|
+
* 🔴 每一行都是一条**核过的否定事实**,不是「还没做」:登记判据 = 装着的 sdk `TaskRequest` 型面上没有这一键的
|
|
192
|
+
* 具名声明(包侧门直读盘上的 `.d.ts` 钉住;哪天上游铸了同名位,门当场红,提示重核三层再加座)。
|
|
193
|
+
* 🔴 核不出的键**不进本表** —— 它们在装配口是「不认识」那一档(响亮拒),不许借本表的成因词冒充「明确不带」。
|
|
194
|
+
*/
|
|
195
|
+
export interface UpstreamAbsentRequestIntent {
|
|
196
|
+
readonly key: string;
|
|
197
|
+
readonly why: string;
|
|
198
|
+
}
|
|
199
|
+
export declare const UPSTREAM_ABSENT_REQUEST_INTENTS: readonly UpstreamAbsentRequestIntent[];
|
|
200
|
+
/**
|
|
201
|
+
* 座位读数(静态口:不装配请求就能问「这一键在这条车道上有没有座」)。`key` 是**入参键名**
|
|
202
|
+
* (`settings` 的子键写点分名 `settings.ultracode`);与装配口同读一张路由表、同一只判官。
|
|
203
|
+
*/
|
|
204
|
+
export declare function taskRequestSeatOf(key: string, lane: RequestLane): TaskRequestSeatReading;
|
|
126
205
|
/**
|
|
127
206
|
* 合一后的请求构造器 —— **按车道出两形**,字段集差异全部由 `REQUEST_FIELD_MATRIX` 决定。
|
|
128
207
|
*
|
|
@@ -202,6 +281,27 @@ export declare function memoryOffDeclared(input: {
|
|
|
202
281
|
flag?: unknown;
|
|
203
282
|
settingsMemory?: unknown;
|
|
204
283
|
} | null | undefined): boolean;
|
|
284
|
+
/**
|
|
285
|
+
* **装配口**(0.77.0):请求体 + 逐键回执,同一次装配、同一只判官。
|
|
286
|
+
*
|
|
287
|
+
* 与 {@link buildTaskRequest} 的关系:后者**就是**本函数的 `.request`(一行转调)—— 两个口不可能装出两份
|
|
288
|
+
* 不同的请求体。要知道「我给的键这一次到底发没发」的端用本口;只要请求体的端两个口随意。
|
|
289
|
+
*
|
|
290
|
+
* 🔴 两个口的**拒绝面完全相同**(拒绝发生在装配里,不在回执里):
|
|
291
|
+
* · 表外的车道词 ⇒ `TypeError`;
|
|
292
|
+
* · 入参(或 `settings`)上**在场**的、本包不认识的键 ⇒ `TypeError`,点名键名(值为 `undefined` / `null` 的键
|
|
293
|
+
* = 缺席,不算);
|
|
294
|
+
* · `settings` 在场却不是对象 ⇒ `TypeError`;
|
|
295
|
+
* · `memoryCapture` / `memory` 坏拼写、`maxCostUsd` 坏值、畸形权限快照 ⇒ `TypeError`(各见其注)。
|
|
296
|
+
* 🔴 入参的每个已知键**恰读一次**,装配与回执共用那一份快照:带 getter / proxy 的入参在两次读取之间可以变值,
|
|
297
|
+
* 那样回执说的与请求体带的就可以不是同一件事(`memoryCapture` 那条「校验与 stamp 共用同一次读取」的推广)。
|
|
298
|
+
*/
|
|
299
|
+
export declare function assembleTaskRequest(input: TaskRequestInput, lane: RequestLane): TaskRequestAssembly;
|
|
300
|
+
/**
|
|
301
|
+
* 只要请求体的口 —— **就是** {@link assembleTaskRequest} 的 `.request`(拒绝面完全相同,见那里的头注)。
|
|
302
|
+
* ⚠️ 本口没有回执通道:认识而没带的键(车道不符 / live 门没开 / 上游无对位)在这里照旧没有信号。要逐键答案
|
|
303
|
+
* 用装配口;要在不装配的情况下问一个键有没有座用 {@link taskRequestSeatOf}。
|
|
304
|
+
*/
|
|
205
305
|
export declare function buildTaskRequest(input: TaskRequestInput, lane: RequestLane): TaskRequestLike;
|
|
206
306
|
/** `applyLiveRequestDefaults` 的宿主输入(端解析好的值,同样零取值方式)。 */
|
|
207
307
|
export interface LiveDefaultsInput {
|