@sema-agent/core 5.37.0 → 5.39.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 +151 -0
- package/dist/agents/send-message-tool.d.ts +8 -0
- package/dist/agents/send-message-tool.js +8 -0
- package/dist/agents/subagent.js +6 -0
- package/dist/agents/teacher.js +12 -3
- package/dist/agents/team.d.ts +7 -1
- package/dist/agents/team.js +11 -9
- package/dist/agents/verify.js +12 -3
- package/dist/core/auto-mode-prompt-assets.d.ts +5 -3
- package/dist/core/auto-mode-prompt-assets.js +1 -1
- package/dist/core/checkpoint-store.d.ts +26 -1
- package/dist/core/hooks.d.ts +152 -2
- package/dist/core/hooks.js +65 -7
- package/dist/core/mailbox-store.d.ts +39 -0
- package/dist/core/mailbox-store.js +9 -0
- package/dist/core/permission-rule-consent.d.ts +27 -4
- package/dist/core/permission-rule-consent.js +29 -4
- package/dist/core/permission-rule-model.d.ts +7 -1
- package/dist/core/runner/prepare-config-doors.d.ts +17 -0
- package/dist/core/runner/prepare-config-doors.js +33 -2
- package/dist/core/runner/prepare-task.d.ts +17 -2
- package/dist/core/runner/prepare-task.js +135 -44
- package/dist/core/runner/runtask.js +46 -11
- package/dist/core/sensitive-path-policy.js +3 -3
- package/dist/core/store-contracts/mailbox-store-contract.d.ts +29 -1
- package/dist/core/store-contracts/mailbox-store-contract.js +78 -0
- package/dist/core/tool-model-gate.d.ts +125 -0
- package/dist/core/tool-model-gate.js +303 -0
- package/dist/core/tool-policy.d.ts +1 -1
- package/dist/core/types.d.ts +210 -1
- package/dist/core/types.js +21 -0
- package/dist/core/untrusted-text.d.ts +1 -1
- package/dist/core/write-protect.d.ts +93 -0
- package/dist/core/write-protect.js +194 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +5 -3
- package/dist/orchestration/builtin-workflows.d.ts +68 -6
- package/dist/orchestration/builtin-workflows.js +26 -9
- package/dist/orchestration/governance-baseline-validity.d.ts +44 -0
- package/dist/orchestration/governance-baseline-validity.js +55 -0
- package/dist/orchestration/run-workflow-tool.d.ts +10 -1
- package/dist/orchestration/run-workflow-tool.js +99 -31
- package/dist/orchestration/workflow-script-runner.js +9 -4
- package/dist/orchestration/workflow-script-store.d.ts +8 -3
- package/dist/prompts/coordinator.d.ts +4 -1
- package/dist/prompts/coordinator.js +8 -0
- package/dist/prompts/default.d.ts +14 -4
- package/dist/prompts/default.js +2 -1
- package/dist/scenarios/full-body.d.ts +5 -0
- package/dist/scenarios/full-body.js +8 -4
- package/dist/tools/fs/fs-shared.d.ts +3 -2
- package/dist/tools/fs/fs-shared.js +19 -9
- package/dist/tools/fs/read-deny.d.ts +15 -5
- package/dist/tools/fs/read-deny.js +33 -12
- package/dist/tools/fs/safety.d.ts +4 -1
- package/dist/tools/fs/safety.js +4 -2
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +24 -1
|
@@ -28,6 +28,8 @@ export interface CodeToolsConfig {
|
|
|
28
28
|
* parity: TodoWrite is enabled only when the task list is off). With `taskList` on (the default),
|
|
29
29
|
* TodoWrite is NOT mounted even when `todoWrite: true` is set explicitly — the exclusion gate wins;
|
|
30
30
|
* pass `taskList: false` to get TodoWrite back. `todoWrite: false` always drops it.
|
|
31
|
+
* design/277: the DEFAULT arm (undefined) is model-gated (`modelGate: "task-scaffold"` — trimmed
|
|
32
|
+
* at prepare for gate-table models); an EXPLICIT `true` mounts unstamped (never gated).
|
|
31
33
|
*/
|
|
32
34
|
todoWrite?: boolean;
|
|
33
35
|
/**
|
|
@@ -36,6 +38,9 @@ export interface CodeToolsConfig {
|
|
|
36
38
|
* list is on unless explicitly disabled, and TodoWrite is its off-state fallback — the two families
|
|
37
39
|
* are mutually exclusive, never co-mounted). Only an explicit `taskList: false` reverts to the
|
|
38
40
|
* TodoWrite shape.
|
|
41
|
+
* design/277: the DEFAULT arm (undefined) is model-gated (`modelGate: "task-scaffold"`); an
|
|
42
|
+
* EXPLICIT `true` mounts the family unstamped (never gated). `taskList: false` only selects the
|
|
43
|
+
* TodoWrite family shape — it is NOT an explicit demand for TodoWrite (see `todoWrite`).
|
|
39
44
|
*/
|
|
40
45
|
taskList?: boolean;
|
|
41
46
|
/**
|
|
@@ -10,11 +10,15 @@ export function assembleCodeTools(cfg = {}) {
|
|
|
10
10
|
tools.push(createWebSearchTool(cfg.webSearch));
|
|
11
11
|
if (cfg.subagent)
|
|
12
12
|
tools.push(createSubagentTool({ ...cfg.subagent, systemPrompt: cfg.subagent.systemPrompt ?? CODE_SYSTEM_PROMPT }));
|
|
13
|
+
const stamp = (t) => ({ ...t, modelGate: "task-scaffold" });
|
|
13
14
|
const taskListOn = cfg.taskList !== false;
|
|
14
|
-
if (cfg.todoWrite !== false && !taskListOn)
|
|
15
|
-
tools.push(createTodoWriteTool());
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
if (cfg.todoWrite !== false && !taskListOn) {
|
|
16
|
+
tools.push(cfg.todoWrite === true ? createTodoWriteTool() : stamp(createTodoWriteTool()));
|
|
17
|
+
}
|
|
18
|
+
if (taskListOn) {
|
|
19
|
+
const family = createTaskListTools(cfg.taskListStore);
|
|
20
|
+
tools.push(...(cfg.taskList === true ? family : family.map(stamp)));
|
|
21
|
+
}
|
|
18
22
|
return tools;
|
|
19
23
|
}
|
|
20
24
|
export const CODE_ROLE = { systemPrompt: CODE_SYSTEM_PROMPT, thinking: "high" };
|
|
@@ -232,8 +232,9 @@ export declare function resolveBashTimeoutCaps(opts?: {
|
|
|
232
232
|
defaultMs: number;
|
|
233
233
|
maxMs: number;
|
|
234
234
|
};
|
|
235
|
-
/** Test seam: the announcement de-dupes per process, so a test that asserts
|
|
236
|
-
*
|
|
235
|
+
/** Test seam: the announcement de-dupes per sink (console arm per process), so a test that asserts
|
|
236
|
+
* the line must be able to re-arm the ledger. Re-arms BOTH arms (a WeakMap has no clear — it is
|
|
237
|
+
* re-minted). Never called by production code. */
|
|
237
238
|
export declare function __resetBashTimeoutAnnouncements(): void;
|
|
238
239
|
/** RB-370 ②: the seconds view of a resolved {@link resolveBashTimeoutCaps} pair — the shell's INTERNAL
|
|
239
240
|
* unit stays seconds while every model-facing surface stays ms (design/64 §8.1C posture). One rounding
|
|
@@ -88,8 +88,23 @@ export function envErrorDetail(message) {
|
|
|
88
88
|
const trimmed = (message ?? "").trim();
|
|
89
89
|
return trimmed === "" ? "the execution environment reported no reason" : trimmed;
|
|
90
90
|
}
|
|
91
|
-
|
|
91
|
+
let announcedTimeoutConfigBySink = new WeakMap();
|
|
92
|
+
const announcedTimeoutConfigConsole = new Set();
|
|
93
|
+
function timeoutConfigLedger(onNotice) {
|
|
94
|
+
if (typeof onNotice !== "function")
|
|
95
|
+
return announcedTimeoutConfigConsole;
|
|
96
|
+
let lines = announcedTimeoutConfigBySink.get(onNotice);
|
|
97
|
+
if (lines === undefined) {
|
|
98
|
+
lines = new Set();
|
|
99
|
+
announcedTimeoutConfigBySink.set(onNotice, lines);
|
|
100
|
+
}
|
|
101
|
+
return lines;
|
|
102
|
+
}
|
|
92
103
|
function emitTimeoutDiscardNotice(message, detail, onNotice) {
|
|
104
|
+
const ledger = timeoutConfigLedger(onNotice);
|
|
105
|
+
if (ledger.has(message))
|
|
106
|
+
return;
|
|
107
|
+
ledger.add(message);
|
|
93
108
|
deliverEngineNotice(onNotice, { code: "config.env_timeout_discarded", message, detail });
|
|
94
109
|
}
|
|
95
110
|
function announceDiscardedTimeout(knob, raw, usedMs, onNotice) {
|
|
@@ -106,9 +121,6 @@ function announceDiscardedTimeout(knob, raw, usedMs, onNotice) {
|
|
|
106
121
|
return;
|
|
107
122
|
line = `${knob}=${String(raw)} was ignored — it ${defect}. Using ${usedMs}ms instead.`;
|
|
108
123
|
}
|
|
109
|
-
if (announcedTimeoutConfig.has(line))
|
|
110
|
-
return;
|
|
111
|
-
announcedTimeoutConfig.add(line);
|
|
112
124
|
emitTimeoutDiscardNotice(line, { knob, raw, usedMs }, onNotice);
|
|
113
125
|
}
|
|
114
126
|
export function bashTimeoutParamDescription(caps, withDefault) {
|
|
@@ -147,15 +159,13 @@ export function resolveBashTimeoutCaps(opts) {
|
|
|
147
159
|
if (requestedCap !== undefined && requestedCap < defaultMs) {
|
|
148
160
|
const knob = optsCap !== undefined ? "bashMaxTimeoutMs" : "BASH_MAX_TIMEOUT_MS";
|
|
149
161
|
const line = `${knob}=${requestedCap} is below the resolved default budget (${defaultMs}ms) — the ceiling was raised to ${maxMs}ms (the default always fits under the cap).`;
|
|
150
|
-
|
|
151
|
-
announcedTimeoutConfig.add(line);
|
|
152
|
-
emitTimeoutDiscardNotice(line, { knob, raw: requestedCap, usedMs: maxMs }, opts?.onNotice);
|
|
153
|
-
}
|
|
162
|
+
emitTimeoutDiscardNotice(line, { knob, raw: requestedCap, usedMs: maxMs }, opts?.onNotice);
|
|
154
163
|
}
|
|
155
164
|
return { defaultMs, maxMs };
|
|
156
165
|
}
|
|
157
166
|
export function __resetBashTimeoutAnnouncements() {
|
|
158
|
-
|
|
167
|
+
announcedTimeoutConfigBySink = new WeakMap();
|
|
168
|
+
announcedTimeoutConfigConsole.clear();
|
|
159
169
|
}
|
|
160
170
|
export function bashTimeoutCapsSec(caps) {
|
|
161
171
|
return { defaultSec: Math.max(1, Math.round(caps.defaultMs / 1000)), maxSec: Math.max(1, Math.round(caps.maxMs / 1000)) };
|
|
@@ -40,10 +40,18 @@ export interface ReadDenyMatcher {
|
|
|
40
40
|
/** Normalized entries (built-ins first, then additions; exact duplicates folded). The disclosure /
|
|
41
41
|
* persistence face. */
|
|
42
42
|
readonly entries: readonly NormalizedReadDenyEntry[];
|
|
43
|
-
/** Judge ONE path view (segment-window semantics). Returns the first matching entry, or null.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
/** Judge ONE path view (segment-window semantics). Returns the first matching entry, or null.
|
|
44
|
+
* `aliasResolved` = the key's MINTER reports the real filesystem already collapsed any win32
|
|
45
|
+
* component alias in it (canonicalizeTarget's realpath arm); unset ⇒ both readings are judged,
|
|
46
|
+
* which is the fail-closed default. */
|
|
47
|
+
matchPath(path: string, opts?: {
|
|
48
|
+
readonly aliasResolved?: boolean;
|
|
49
|
+
}): ReadDenyHit | null;
|
|
50
|
+
/** §3.3 target judgment: canonical view + lexical view; EITHER hit decides. `aliasResolved`
|
|
51
|
+
* applies to the CANONICAL arm only — the lexical view is an unresolved spelling. */
|
|
52
|
+
matchTarget(canonicalKey: string, lexicalView?: string, opts?: {
|
|
53
|
+
readonly aliasResolved?: boolean;
|
|
54
|
+
}): ReadDenyHit | null;
|
|
47
55
|
/** Traversal exclusions for the rg legs: `!`-polarity glob pairs — `!**\/<p>` plus `!**\/<p>/…`
|
|
48
56
|
* (the entry itself and its descendants). */
|
|
49
57
|
readonly rgExclusionGlobs: readonly ReadDenyRgGlob[];
|
|
@@ -145,7 +153,9 @@ export declare function compileSegmentPattern(raw: string, fold: "none" | "ascii
|
|
|
145
153
|
* BOTH separator families — win32 canonical keys are backslash-form. Returns the matched raw pattern
|
|
146
154
|
* or null.
|
|
147
155
|
*/
|
|
148
|
-
export declare function matchSegmentPatterns(path: string, compiled: readonly CompiledSegmentPattern[]
|
|
156
|
+
export declare function matchSegmentPatterns(path: string, compiled: readonly CompiledSegmentPattern[], opts?: {
|
|
157
|
+
readonly aliasResolved?: boolean;
|
|
158
|
+
}): string | null;
|
|
149
159
|
/**
|
|
150
160
|
* codex r3 — the PURE validation/canonicality predicate over a PERSISTED deny entry (checkpoint v9
|
|
151
161
|
* face section), for the resume pre-CAS ladder: it must refuse BEFORE the approval CAS everything
|
|
@@ -91,15 +91,36 @@ export function compileSegmentPattern(raw, fold) {
|
|
|
91
91
|
});
|
|
92
92
|
return { raw, segments, foldAscii: fold === "ascii" };
|
|
93
93
|
}
|
|
94
|
-
export function matchSegmentPatterns(path, compiled) {
|
|
95
|
-
const
|
|
96
|
-
|
|
94
|
+
export function matchSegmentPatterns(path, compiled, opts) {
|
|
95
|
+
const literalSegs = path.split(/[\\/]/).filter(Boolean);
|
|
96
|
+
const win32Segs = [];
|
|
97
|
+
for (const raw of literalSegs) {
|
|
98
|
+
const dot = /^\.{1,2}$/.test(raw) ? raw : raw.replace(/ +$/, "");
|
|
99
|
+
if (dot === ".")
|
|
100
|
+
continue;
|
|
101
|
+
if (dot === "..") {
|
|
102
|
+
const last = win32Segs[win32Segs.length - 1];
|
|
103
|
+
if (win32Segs.length > 0 && last !== "..")
|
|
104
|
+
win32Segs.pop();
|
|
105
|
+
else
|
|
106
|
+
win32Segs.push("..");
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const stripped = raw.replace(/[. ]+$/, "");
|
|
110
|
+
win32Segs.push(stripped.length > 0 ? stripped : raw);
|
|
111
|
+
}
|
|
112
|
+
const sameView = opts?.aliasResolved === true ||
|
|
113
|
+
(win32Segs.length === literalSegs.length && win32Segs.every((s, i) => s === literalSegs[i]));
|
|
114
|
+
const views = sameView ? [literalSegs] : [literalSegs, win32Segs];
|
|
115
|
+
const lowered = new Map();
|
|
97
116
|
for (const pat of compiled) {
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
117
|
+
for (const view of views) {
|
|
118
|
+
const segs = pat.foldAscii ? (lowered.get(view) ?? lowered.set(view, view.map(asciiLower)).get(view)) : view;
|
|
119
|
+
const n = pat.segments.length;
|
|
120
|
+
for (let i = 0; i + n <= segs.length; i++) {
|
|
121
|
+
if (pat.segments.every((re, j) => re.test(segs[i + j] ?? "")))
|
|
122
|
+
return pat.raw;
|
|
123
|
+
}
|
|
103
124
|
}
|
|
104
125
|
}
|
|
105
126
|
return null;
|
|
@@ -171,15 +192,15 @@ export function compileReadDeny(additions = [], layer = "additions", builtin) {
|
|
|
171
192
|
rgExclusionGlobs.push({ flag, glob: `!**/${g}` }, { flag, glob: `!**/${g}/**` });
|
|
172
193
|
rgProbeGlobs.push({ flag, glob: `**/${g}` }, { flag, glob: `**/${g}/**` });
|
|
173
194
|
}
|
|
174
|
-
const matchPath = (path) => {
|
|
175
|
-
const hit = matchSegmentPatterns(path, compiled);
|
|
195
|
+
const matchPath = (path, opts) => {
|
|
196
|
+
const hit = matchSegmentPatterns(path, compiled, opts);
|
|
176
197
|
return hit === null ? null : { pattern: hit };
|
|
177
198
|
};
|
|
178
199
|
return {
|
|
179
200
|
entries: normalized,
|
|
180
201
|
matchPath,
|
|
181
|
-
matchTarget(canonicalKey, lexicalView) {
|
|
182
|
-
const canonical = matchPath(canonicalKey);
|
|
202
|
+
matchTarget(canonicalKey, lexicalView, opts) {
|
|
203
|
+
const canonical = matchPath(canonicalKey, opts);
|
|
183
204
|
if (canonical !== null)
|
|
184
205
|
return { ...canonical, matchedView: canonicalKey };
|
|
185
206
|
if (lexicalView !== undefined) {
|
|
@@ -268,7 +268,9 @@ export declare function lexicalViewOf(spelled: string, base: string): string;
|
|
|
268
268
|
* `executionEnv` — see design/44 §5.)
|
|
269
269
|
*/
|
|
270
270
|
export declare function resolveKey(env: ExecutionEnv, rootCanonical: string, path: string, signal?: AbortSignal, baseCwd?: string, additionalRootsCanonical?: readonly string[], exactFileReadExemption?: (canonicalKey: string) => boolean, readDeny?: {
|
|
271
|
-
matchTarget(canonicalKey: string, lexicalView?: string
|
|
271
|
+
matchTarget(canonicalKey: string, lexicalView?: string, opts?: {
|
|
272
|
+
readonly aliasResolved?: boolean;
|
|
273
|
+
}): {
|
|
272
274
|
pattern: string;
|
|
273
275
|
matchedView?: string;
|
|
274
276
|
} | null;
|
|
@@ -291,6 +293,7 @@ export declare function resolveKey(env: ExecutionEnv, rootCanonical: string, pat
|
|
|
291
293
|
export declare function canonicalizeTarget(env: ExecutionEnv, path: string, signal?: AbortSignal, baseCwd?: string): Promise<{
|
|
292
294
|
ok: true;
|
|
293
295
|
key: string;
|
|
296
|
+
aliasResolved?: true;
|
|
294
297
|
} | {
|
|
295
298
|
ok: false;
|
|
296
299
|
message: string;
|
package/dist/tools/fs/safety.js
CHANGED
|
@@ -339,7 +339,9 @@ export async function resolveKey(env, rootCanonical, path, signal, baseCwd, addi
|
|
|
339
339
|
return { ok: false, violation: { code: "invalid", message: `path "${path}" is a blocked device/special file (reading it can hang the process); refused.` } };
|
|
340
340
|
}
|
|
341
341
|
if (readDeny !== undefined) {
|
|
342
|
-
const hit = readDeny.matchTarget(key, lexicalViewOf(path, baseCwd ?? rootCanonical)
|
|
342
|
+
const hit = readDeny.matchTarget(key, lexicalViewOf(path, baseCwd ?? rootCanonical), {
|
|
343
|
+
aliasResolved: canon.aliasResolved === true,
|
|
344
|
+
});
|
|
343
345
|
if (hit !== null) {
|
|
344
346
|
const lexicalHit = hit.matchedView !== undefined && hit.matchedView !== key;
|
|
345
347
|
const judged = lexicalHit
|
|
@@ -419,7 +421,7 @@ export async function canonicalizeTarget(env, path, signal, baseCwd) {
|
|
|
419
421
|
}
|
|
420
422
|
const canon = await env.canonicalPath(abs, signal);
|
|
421
423
|
if (canon.ok)
|
|
422
|
-
return { ok: true, key: canon.value };
|
|
424
|
+
return { ok: true, key: canon.value, aliasResolved: true };
|
|
423
425
|
const info = await env.fileInfo(abs, signal);
|
|
424
426
|
if (!info.ok) {
|
|
425
427
|
return { ok: false, message: `cannot determine whether "${path}" is a symlink: ${info.error.message}`, unresolvedSymlink: true };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_comment": "design/87 L3 — frozen public export surface of src/index.ts (name -> kind). DO NOT edit by hand to silence a red test. A removed/changed entry = a SemVer-BREAKING change; bump MAJOR and update this fixture in the SAME commit (design/87 §4.2 / §5.2). Regenerate via REGEN in test/export-surface.test.ts.",
|
|
3
|
-
"count":
|
|
3
|
+
"count": 1597,
|
|
4
4
|
"exports": {
|
|
5
5
|
"A2ATaskState": "type",
|
|
6
6
|
"A2ATaskStateReversal": "type",
|
|
@@ -226,12 +226,15 @@
|
|
|
226
226
|
"DEFAULT_TOOL_RESULT_THRESHOLD_CHARS": "variable",
|
|
227
227
|
"DEGRADED_DIAGNOSTIC_TYPE": "variable",
|
|
228
228
|
"DESIGN_REVIEW_PROMPTS": "variable",
|
|
229
|
+
"DISCUSSION_SCRIPT": "variable",
|
|
230
|
+
"DISCUSSION_WORKFLOW_NAME": "variable",
|
|
229
231
|
"DURABLE_AGENT_HANDLE_RE": "variable",
|
|
230
232
|
"DecisionReason": "type",
|
|
231
233
|
"DefaultPackDescription": "interface",
|
|
232
234
|
"DegradationInfo": "interface",
|
|
233
235
|
"DegradeReason": "type",
|
|
234
236
|
"DegradingBrainOptions": "type",
|
|
237
|
+
"DelegationLifecycleEvent": "type",
|
|
235
238
|
"DelegationTaskType": "type",
|
|
236
239
|
"DeveloperTaskConfig": "interface",
|
|
237
240
|
"DocumentContent": "interface",
|
|
@@ -336,6 +339,7 @@
|
|
|
336
339
|
"HarvestRejectionCode": "type",
|
|
337
340
|
"HarvestReport": "interface",
|
|
338
341
|
"HookEnvCapabilities": "interface",
|
|
342
|
+
"HookInvocationIdentity": "interface",
|
|
339
343
|
"HookToolContext": "interface",
|
|
340
344
|
"HookToolFailure": "interface",
|
|
341
345
|
"HookToolOutput": "interface",
|
|
@@ -404,6 +408,7 @@
|
|
|
404
408
|
"LspToolOptions": "interface",
|
|
405
409
|
"LspTransport": "interface",
|
|
406
410
|
"MAILBOX_CONTRACT_SCOPE": "variable",
|
|
411
|
+
"MAILBOX_TOMBSTONED_RECIPIENT_CODE": "variable",
|
|
407
412
|
"MASS_DELETION_FUSE_RATIO": "variable",
|
|
408
413
|
"MAX_ACTOR_FIELD_CHARS": "variable",
|
|
409
414
|
"MAX_EDIT_BYTES": "variable",
|
|
@@ -441,6 +446,8 @@
|
|
|
441
446
|
"MailboxLease": "interface",
|
|
442
447
|
"MailboxMessage": "interface",
|
|
443
448
|
"MailboxStore": "interface",
|
|
449
|
+
"MailboxStoreError": "class",
|
|
450
|
+
"MailboxTombstonedRecipientContractHooks": "interface",
|
|
444
451
|
"ManagedRetentionCapability": "interface",
|
|
445
452
|
"ManifestDurability": "type",
|
|
446
453
|
"MaterializedA2a": "interface",
|
|
@@ -617,6 +624,7 @@
|
|
|
617
624
|
"PlatformLimitReason": "type",
|
|
618
625
|
"PostCompactContext": "interface",
|
|
619
626
|
"PostToolBatchCall": "interface",
|
|
627
|
+
"PostToolBatchContext": "interface",
|
|
620
628
|
"PostToolBatchResult": "interface",
|
|
621
629
|
"PostToolUseFailureResult": "interface",
|
|
622
630
|
"PostToolUseResult": "interface",
|
|
@@ -920,6 +928,7 @@
|
|
|
920
928
|
"TEAM_DISCUSSION_SCRIPT": "variable",
|
|
921
929
|
"TEAM_DISCUSSION_WORKFLOW_NAME": "variable",
|
|
922
930
|
"TOKEN_CHECKPOINT_VERSION": "variable",
|
|
931
|
+
"TOOL_MODEL_GATE_CLASSES": "variable",
|
|
923
932
|
"TOOL_RESULT_REF_CONFLICT_CODE": "variable",
|
|
924
933
|
"TSchema": "interface",
|
|
925
934
|
"TaskAccess": "interface",
|
|
@@ -963,6 +972,7 @@
|
|
|
963
972
|
"ToolEffect": "type",
|
|
964
973
|
"ToolExecuteContext": "interface",
|
|
965
974
|
"ToolFingerprintInput": "interface",
|
|
975
|
+
"ToolModelGateRule": "interface",
|
|
966
976
|
"ToolOrigin": "type",
|
|
967
977
|
"ToolPolicy": "interface",
|
|
968
978
|
"ToolPolicyNameSets": "interface",
|
|
@@ -998,6 +1008,7 @@
|
|
|
998
1008
|
"UsageWindowRecord": "interface",
|
|
999
1009
|
"UsageWindowStore": "interface",
|
|
1000
1010
|
"UserMessage": "interface",
|
|
1011
|
+
"UserPromptSubmitContext": "interface",
|
|
1001
1012
|
"UserPromptSubmitResult": "interface",
|
|
1002
1013
|
"UtilityGate": "type",
|
|
1003
1014
|
"V2HeaderHints": "interface",
|
|
@@ -1020,6 +1031,7 @@
|
|
|
1020
1031
|
"WORKFLOW_SUBAGENT_PROMPT": "variable",
|
|
1021
1032
|
"WORKFLOW_SUBAGENT_PROMPT_SCHEMA": "variable",
|
|
1022
1033
|
"WORKTREE_PARENT": "variable",
|
|
1034
|
+
"WRITE_PROTECTED_DEFAULT_TABLE": "variable",
|
|
1023
1035
|
"WebFetchConfig": "interface",
|
|
1024
1036
|
"WebSearchConfig": "interface",
|
|
1025
1037
|
"WiringFacts": "interface",
|
|
@@ -1069,6 +1081,11 @@
|
|
|
1069
1081
|
"WorktreeSessionRef": "interface",
|
|
1070
1082
|
"WorktreeToolsOptions": "interface",
|
|
1071
1083
|
"WritablePermissionRuleStore": "interface",
|
|
1084
|
+
"WriteProtectedEntry": "type",
|
|
1085
|
+
"WriteProtectedHit": "interface",
|
|
1086
|
+
"WriteProtectedKind": "type",
|
|
1087
|
+
"WriteProtectedRow": "interface",
|
|
1088
|
+
"WriteProtectionMatcher": "interface",
|
|
1072
1089
|
"ackAdoptionConfig": "function",
|
|
1073
1090
|
"acquireCcLock": "function",
|
|
1074
1091
|
"addDotsOf": "function",
|
|
@@ -1130,6 +1147,7 @@
|
|
|
1130
1147
|
"callKeyOrdinal": "function",
|
|
1131
1148
|
"canAccessAgentRecord": "function",
|
|
1132
1149
|
"canAccessWorkflowRun": "function",
|
|
1150
|
+
"canonicalWorkflowName": "function",
|
|
1133
1151
|
"capAggregateMediaBytes": "function",
|
|
1134
1152
|
"capAggregateToolResults": "function",
|
|
1135
1153
|
"captureBaseline": "function",
|
|
@@ -1149,6 +1167,7 @@
|
|
|
1149
1167
|
"collectBelowFrontier": "function",
|
|
1150
1168
|
"combinePolicies": "function",
|
|
1151
1169
|
"compileReadDeny": "function",
|
|
1170
|
+
"compileWriteProtection": "function",
|
|
1152
1171
|
"complianceCallDenial": "function",
|
|
1153
1172
|
"compose": "function",
|
|
1154
1173
|
"composeConstitution": "function",
|
|
@@ -1318,6 +1337,7 @@
|
|
|
1318
1337
|
"isApprovalSettledBy": "function",
|
|
1319
1338
|
"isDelegatedAgentTerminal": "function",
|
|
1320
1339
|
"isIsolated": "function",
|
|
1340
|
+
"isModelGatedForClass": "function",
|
|
1321
1341
|
"isPersonalScope": "function",
|
|
1322
1342
|
"isQuestionUnavailable": "function",
|
|
1323
1343
|
"isRemoteExecutionEnv": "function",
|
|
@@ -1352,6 +1372,7 @@
|
|
|
1352
1372
|
"mailboxAckOwnershipContract": "function",
|
|
1353
1373
|
"mailboxBundledOnlyContract": "function",
|
|
1354
1374
|
"mailboxStoreContract": "function",
|
|
1375
|
+
"mailboxTombstonedRecipientContract": "function",
|
|
1355
1376
|
"markTruncated": "function",
|
|
1356
1377
|
"materializeA2aTools": "function",
|
|
1357
1378
|
"materializeEntriesToFiles": "function",
|
|
@@ -1467,8 +1488,10 @@
|
|
|
1467
1488
|
"resolveTaskLimits": "function",
|
|
1468
1489
|
"resolveTaskModel": "function",
|
|
1469
1490
|
"resolveUsageWindows": "function",
|
|
1491
|
+
"resolveWriteProtectedTable": "function",
|
|
1470
1492
|
"restoreFrozenPaths": "function",
|
|
1471
1493
|
"resumeWithVerification": "function",
|
|
1494
|
+
"retiredWorkflowNameAliases": "function",
|
|
1472
1495
|
"retryBackoffMs": "function",
|
|
1473
1496
|
"riskSeverity": "function",
|
|
1474
1497
|
"ruleAdmitsCommand": "function",
|