@sema-agent/core 7.34.0 → 7.35.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 +123 -3
- package/dist/brain/errors.d.ts +23 -1
- package/dist/brain/errors.js +19 -2
- package/dist/brain/status-sink.d.ts +7 -1
- package/dist/brain/stream-shared.d.ts +3 -1
- package/dist/brain/stream-shared.js +16 -4
- package/dist/core/ask-origin.d.ts +34 -6
- package/dist/core/ask-origin.js +24 -23
- package/dist/core/ask-question.js +2 -1
- package/dist/core/checkpoint-store.d.ts +4 -0
- package/dist/core/gate-fold.js +2 -2
- package/dist/core/gate-lanes.js +5 -4
- package/dist/core/governance-codes.d.ts +17 -1
- package/dist/core/governance-codes.js +11 -1
- package/dist/core/hooks.d.ts +3 -0
- package/dist/core/message-utils.d.ts +2 -1
- package/dist/core/message-utils.js +2 -1
- package/dist/core/mode-policy.d.ts +3 -0
- package/dist/core/mode-policy.js +5 -0
- package/dist/core/permission-rule-model.d.ts +4 -0
- package/dist/core/permission-rule-model.js +4 -0
- package/dist/core/permission-rules.js +21 -1
- package/dist/core/persisted-rule-arms.d.ts +4 -1
- package/dist/core/persisted-rule-arms.js +4 -0
- package/dist/core/retired-keys.js +1 -1
- package/dist/core/runner/active-skill-scope.js +5 -4
- package/dist/core/runner/assemble-result.js +2 -2
- package/dist/core/runner/contracts.d.ts +25 -3
- package/dist/core/runner/denial-limit-arms.d.ts +6 -1
- package/dist/core/runner/denial-limit-arms.js +4 -4
- package/dist/core/runner/file-history-request.d.ts +26 -0
- package/dist/core/runner/file-history-request.js +90 -0
- package/dist/core/runner/permission-rule-lanes.d.ts +2 -1
- package/dist/core/runner/permission-rule-lanes.js +14 -11
- package/dist/core/runner/prepare-ask-lane.d.ts +1 -1
- package/dist/core/runner/prepare-ask-lane.js +2 -2
- package/dist/core/runner/prepare-file-history.d.ts +9 -3
- package/dist/core/runner/prepare-file-history.js +4 -90
- package/dist/core/runner/prepare-gate-stations.d.ts +4 -3
- package/dist/core/runner/prepare-gate-stations.js +15 -11
- package/dist/core/runner/prepare-inherited-gate.d.ts +8 -1
- package/dist/core/runner/prepare-inherited-gate.js +10 -4
- package/dist/core/runner/prepare-park-ask.d.ts +4 -2
- package/dist/core/runner/prepare-park-ask.js +5 -4
- package/dist/core/runner/prepare-policy-chain.d.ts +3 -2
- package/dist/core/runner/prepare-policy-chain.js +171 -175
- package/dist/core/runner/prepare-task.js +7 -4
- package/dist/core/runner/run-brain-sinks.js +3 -1
- package/dist/core/runner/run-leg.js +5 -3
- package/dist/core/runner/run-notification-lane.d.ts +3 -0
- package/dist/core/runner/run-notification-lane.js +2 -1
- package/dist/core/runner/runtask.d.ts +1 -0
- package/dist/core/runner/runtask.js +5 -11
- package/dist/core/runner/session-mode-seats.d.ts +48 -0
- package/dist/core/runner/session-mode-seats.js +73 -0
- package/dist/core/runner/session-rule-policy.js +3 -2
- package/dist/core/secret-env.d.ts +30 -58
- package/dist/core/secret-env.js +149 -586
- package/dist/core/sensitive-path-policy.js +2 -1
- package/dist/core/store-contracts/checkpoint-store-contract.js +2 -1
- package/dist/core/tool-policy.d.ts +31 -6
- package/dist/core/tool-policy.js +35 -16
- package/dist/core/tool-registry.d.ts +36 -0
- package/dist/core/tool-registry.js +22 -1
- package/dist/core/tool-roster.d.ts +17 -2
- package/dist/core/tool-roster.js +11 -1
- package/dist/core/trace.d.ts +11 -0
- package/dist/engine/execution-env/node-execution-env.d.ts +3 -1
- package/dist/engine/execution-env/node-execution-env.js +5 -2
- package/dist/engine/harness/agent-harness.js +2 -1
- package/dist/engine/lsp/node-lsp-manager.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/stores/file/index.d.ts +5 -3
- package/dist/stores/file/session-store.d.ts +8 -2
- package/dist/stores/file/session-store.js +5 -5
- package/dist/tools/fs/file-read-check.d.ts +2 -1
- package/dist/tools/fs/file-read-check.js +15 -7
- package/dist/tools/fs/shell-read-check.d.ts +10 -2
- package/dist/tools/fs/shell-read-check.js +12 -8
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +15 -1
- package/wire-changes/core@7.35.0.json +584 -0
|
@@ -14,8 +14,14 @@ export interface FileSessionRepoOptions {
|
|
|
14
14
|
* Never fires on plain ENOENT / `not_found` — that is honest absence, and the torn TAIL stays silent
|
|
15
15
|
* too (dying mid-write is the append log's documented crash-recovery shape, not corruption).
|
|
16
16
|
* Swallow-guarded: a throwing sink cannot re-introduce the fault the fail-open avoids.
|
|
17
|
+
*
|
|
18
|
+
* `sessionId` rides every disclosure about ONE session — its log's skipped records and tally, and its log
|
|
19
|
+
* skipped from a listing — naming the session the repo was reading (on a listing, the id its file name
|
|
20
|
+
* spells); a disclosure about the sessions directory itself carries none.
|
|
17
21
|
*/
|
|
18
|
-
onCorruptRead?: (info: CorruptReadInfo
|
|
22
|
+
onCorruptRead?: (info: CorruptReadInfo & {
|
|
23
|
+
sessionId?: string;
|
|
24
|
+
}) => void;
|
|
19
25
|
}
|
|
20
26
|
export declare class FileSessionRepo implements SessionRepo {
|
|
21
27
|
private readonly dir;
|
|
@@ -26,7 +32,7 @@ export declare class FileSessionRepo implements SessionRepo {
|
|
|
26
32
|
* check on the way out possible without pinning a storage the table itself only holds weakly. */
|
|
27
33
|
private readonly joined;
|
|
28
34
|
constructor(root: string, opts?: FileSessionRepoOptions);
|
|
29
|
-
/** The one delivery point for {@link FileSessionRepoOptions.onCorruptRead}. */
|
|
35
|
+
/** The one delivery point for {@link FileSessionRepoOptions.onCorruptRead}'s whole-file level; `sessionId` when the file is one session's log. */
|
|
30
36
|
private disclose;
|
|
31
37
|
private pathFor;
|
|
32
38
|
/**
|
|
@@ -74,8 +74,8 @@ export class FileSessionRepo {
|
|
|
74
74
|
ensureDir(this.tmpDir);
|
|
75
75
|
this.onCorruptRead = guardCorruptSink(opts?.onCorruptRead);
|
|
76
76
|
}
|
|
77
|
-
disclose(path, reason) {
|
|
78
|
-
this.onCorruptRead?.({ kind: "file", path, reason });
|
|
77
|
+
disclose(path, reason, sessionId) {
|
|
78
|
+
this.onCorruptRead?.({ kind: "file", path, reason, ...(sessionId !== undefined ? { sessionId } : {}) });
|
|
79
79
|
}
|
|
80
80
|
pathFor(id) {
|
|
81
81
|
return join(this.dir, `${sanitizePathComponent(id)}${SUFFIX}`);
|
|
@@ -89,7 +89,7 @@ export class FileSessionRepo {
|
|
|
89
89
|
const lines = readJsonlRecords(path, (info) => {
|
|
90
90
|
if (info.kind === "replay")
|
|
91
91
|
tally = info;
|
|
92
|
-
this.onCorruptRead?.(info);
|
|
92
|
+
this.onCorruptRead?.({ ...info, sessionId: id });
|
|
93
93
|
}, SESSION_LINE_JUDGE);
|
|
94
94
|
let meta;
|
|
95
95
|
const entries = [];
|
|
@@ -174,7 +174,7 @@ export class FileSessionRepo {
|
|
|
174
174
|
}
|
|
175
175
|
catch (err) {
|
|
176
176
|
if (!(err instanceof SessionError && err.code === "not_found")) {
|
|
177
|
-
this.disclose(this.pathFor(id), `session log unreadable (${thrownText(err)}) — skipped from the listing
|
|
177
|
+
this.disclose(this.pathFor(id), `session log unreadable (${thrownText(err)}) — skipped from the listing`, id);
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
}
|
|
@@ -203,7 +203,7 @@ export class FileSessionRepo {
|
|
|
203
203
|
}
|
|
204
204
|
catch (err) {
|
|
205
205
|
if (!(err instanceof SessionError && err.code === "not_found")) {
|
|
206
|
-
this.disclose(this.pathFor(id), `session log unreadable (${thrownText(err)}) — skipped from the placed listing
|
|
206
|
+
this.disclose(this.pathFor(id), `session log unreadable (${thrownText(err)}) — skipped from the placed listing`, id);
|
|
207
207
|
}
|
|
208
208
|
continue;
|
|
209
209
|
}
|
|
@@ -42,7 +42,8 @@ export interface FileReadStationOptions {
|
|
|
42
42
|
readonly exempt?: (canonicalKey: string) => boolean;
|
|
43
43
|
}
|
|
44
44
|
export declare function createFileReadStation(opts: FileReadStationOptions): FileReadStation;
|
|
45
|
-
/** One gate input over the leg's read stations: each call is judged by the station whose membership holds
|
|
45
|
+
/** One gate input over the leg's read stations: each call is judged by the station whose membership holds the first of
|
|
46
|
+
* its names any station holds (the spelling first). */
|
|
46
47
|
export declare function composeReadChecks(stations: ReadonlyArray<{
|
|
47
48
|
readonly check: ShellReadCheck;
|
|
48
49
|
readonly tools: ReadonlySet<string>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { effectivePathSpellingOf } from "../../core/effective-path-target.js";
|
|
2
|
-
import { pathTargetOf } from "../../core/tool-registry.js";
|
|
2
|
+
import { firstNamed, pathTargetOf, ruleNamesOf } from "../../core/tool-registry.js";
|
|
3
3
|
import { fitMiddle, READ_DENY_SENTENCE_PART_MAX } from "./read-deny.js";
|
|
4
4
|
import { resolveKey, violationDetails } from "./safety.js";
|
|
5
5
|
import { grantOfferFor, parentDirLexically } from "./shell-read-judge.js";
|
|
@@ -16,10 +16,12 @@ export function createFileReadStation(opts) {
|
|
|
16
16
|
admissions.set(toolCallId, key);
|
|
17
17
|
};
|
|
18
18
|
const check = {
|
|
19
|
-
judge(
|
|
20
|
-
|
|
19
|
+
judge(call, args, cwd, signal, callOpts) {
|
|
20
|
+
const member = ruleNamesOf(call).find((n) => opts.tools.has(n));
|
|
21
|
+
if (member === undefined)
|
|
21
22
|
return null;
|
|
22
|
-
const
|
|
23
|
+
const toolName = call.toolName;
|
|
24
|
+
const selection = effectivePathSpellingOf({ toolName, args }, pathTargetOf(member), { root: opts.rootCanonical, cwd });
|
|
23
25
|
if (selection === undefined || "refused" in selection || selection.spelled === undefined)
|
|
24
26
|
return null;
|
|
25
27
|
const spelled = selection.spelled;
|
|
@@ -36,7 +38,7 @@ export function createFileReadStation(opts) {
|
|
|
36
38
|
if (callOpts.seat === "rejudge") {
|
|
37
39
|
return { disposition: "refuse", finding: "outside_roots", sentence: `Error (${toolName}): the approved edit reads "${fitMiddle(target, READ_DENY_SENTENCE_PART_MAX)}", outside the directories allowed for this session (${allowed}) — re-submit it as a fresh call and answer its card.`, details };
|
|
38
40
|
}
|
|
39
|
-
const info = pathTargetOf(
|
|
41
|
+
const info = pathTargetOf(member)?.absent === "base" ? await opts.env.fileInfo(target, signal) : undefined;
|
|
40
42
|
const readsDirectory = info?.ok === true && info.value.kind === "directory";
|
|
41
43
|
const offer = grantOfferFor(readsDirectory ? target : parentDirLexically(target), target, { roots, ...(opts.homeDir !== undefined ? { homeDir: opts.homeDir } : {}) });
|
|
42
44
|
return {
|
|
@@ -64,8 +66,14 @@ export function composeReadChecks(stations) {
|
|
|
64
66
|
return undefined;
|
|
65
67
|
if (stations.length === 1)
|
|
66
68
|
return stations[0].check;
|
|
69
|
+
const byName = new Map();
|
|
70
|
+
for (const s of stations)
|
|
71
|
+
for (const n of s.tools)
|
|
72
|
+
if (!byName.has(n))
|
|
73
|
+
byName.set(n, s);
|
|
74
|
+
const stationOf = (call) => firstNamed(byName, ruleNamesOf(call))?.value;
|
|
67
75
|
return {
|
|
68
|
-
judge: (
|
|
69
|
-
unanswered: (
|
|
76
|
+
judge: (call, args, cwd, signal, callOpts) => stationOf(call)?.check.judge(call, args, cwd, signal, callOpts) ?? null,
|
|
77
|
+
unanswered: (call, cause) => (stationOf(call) ?? stations[0]).check.unanswered(call, cause),
|
|
70
78
|
};
|
|
71
79
|
}
|
|
@@ -22,6 +22,7 @@ import { violationDetails } from "./safety.js";
|
|
|
22
22
|
import { type ShellReadPlan } from "./shell-read-plan.js";
|
|
23
23
|
import { type EstablishedRead, type ShellReadBoundary, type ShellReadDisposition, type ShellReadFinding, type ShellReadSeat } from "./shell-read-judge.js";
|
|
24
24
|
import type { ReadRootGrantCandidate } from "../../core/tool-spec.js";
|
|
25
|
+
import { type ToolCallLike } from "../../core/tool-registry.js";
|
|
25
26
|
/** The ONE mint of the containment card — the targets a finding established OUTSIDE the roots (an out-of-root read, a
|
|
26
27
|
* target that resolves elsewhere by the spawn). */
|
|
27
28
|
declare function containmentDetails(paths: readonly string[]): {
|
|
@@ -89,14 +90,21 @@ export type ShellReadStationSeat = Exclude<ShellReadSeat, "rejudge">;
|
|
|
89
90
|
* is load-bearing for the gate: a call the station does not cover must not cost the fold a suspension
|
|
90
91
|
* point. `unanswered` is the verdict the fold substitutes when the wait elapsed or threw — fail-closed as
|
|
91
92
|
* `unestablishable` on the call's own seat.
|
|
93
|
+
*
|
|
94
|
+
* Both take the CALL (`{ toolName, face }`), not a name: a station is a tighten keyed on the engine's own tool names,
|
|
95
|
+
* so it holds a call made under ANY of the call's names (`ruleNamesOf` — a tool that answers to `Bash` under another
|
|
96
|
+
* wire name is judged as `Bash`). The first of the names the station's membership holds keys its seat, its boundary
|
|
97
|
+
* and the admission the engine's tool reads before it spawns; the sentences name the call's wire name.
|
|
92
98
|
*/
|
|
93
99
|
export interface ShellReadCheck {
|
|
94
|
-
judge(
|
|
100
|
+
judge(call: ReadStationCall, args: unknown, cwd: string | undefined, signal: AbortSignal | undefined, opts: {
|
|
95
101
|
readonly toolCallId?: string;
|
|
96
102
|
readonly seat?: "rejudge";
|
|
97
103
|
}): Promise<ShellReadVerdict> | null;
|
|
98
|
-
unanswered(
|
|
104
|
+
unanswered(call: ReadStationCall, cause: string): ShellReadVerdict;
|
|
99
105
|
}
|
|
106
|
+
/** The call a read station judges: its wire name and the face the gate stamped (whose `names` the station reads). */
|
|
107
|
+
export type ReadStationCall = Pick<ToolCallLike, "toolName" | "face">;
|
|
100
108
|
/** The pre-spawn admission the shell tools call: re-establishes what the station established for this
|
|
101
109
|
* call and refuses when any canonical target moved. `undefined` ⇒ spawn. A call the station never judged
|
|
102
110
|
* (no gate ran) has nothing to re-establish and spawns. */
|
|
@@ -8,6 +8,7 @@ import { planShellReads } from "./shell-read-plan.js";
|
|
|
8
8
|
import { createShellReadEstablisher, establishShellReadsLexically } from "./shell-read-establish.js";
|
|
9
9
|
import { programArgs, spellsOption } from "./shell-read-write-targets.js";
|
|
10
10
|
import { allFindings, decideShellRead, denyRowAtOrBelow, foldShellReadFindings, judgeEstablishedPlan, readRootGrantCandidateOf, } from "./shell-read-judge.js";
|
|
11
|
+
import { ruleNamesOf } from "../../core/tool-registry.js";
|
|
11
12
|
import { normalizeReadRootCandidate } from "../../core/read-root-candidate.js";
|
|
12
13
|
import { argvOf, lexShellText } from "../../shell/lex.js";
|
|
13
14
|
function containmentDetails(paths) {
|
|
@@ -359,26 +360,29 @@ export function createShellReadStation(opts) {
|
|
|
359
360
|
}
|
|
360
361
|
admissions.set(toolCallId, a);
|
|
361
362
|
};
|
|
363
|
+
const memberOf = (call) => ruleNamesOf(call).find((n) => opts.tools.has(n));
|
|
362
364
|
const check = {
|
|
363
|
-
judge(
|
|
364
|
-
|
|
365
|
+
judge(call, args, cwd, signal, callOpts) {
|
|
366
|
+
const member = memberOf(call);
|
|
367
|
+
if (member === undefined)
|
|
365
368
|
return null;
|
|
366
369
|
const command = shellCommandOf(args);
|
|
367
370
|
if (command === undefined)
|
|
368
371
|
return null;
|
|
369
|
-
const boundary = opts.boundaryOf(
|
|
372
|
+
const boundary = opts.boundaryOf(member, cwd);
|
|
370
373
|
if (boundary === undefined)
|
|
371
374
|
return null;
|
|
372
|
-
const seat = callOpts.seat ?? opts.seatOf(
|
|
375
|
+
const seat = callOpts.seat ?? opts.seatOf(member);
|
|
373
376
|
return (async () => {
|
|
374
|
-
const run = await runShellReadStation(toolName, command, boundary, seat, readers, establisherFor(boundary.roots), opts.env, signal);
|
|
377
|
+
const run = await runShellReadStation(call.toolName, command, boundary, seat, readers, establisherFor(boundary.roots), opts.env, signal);
|
|
375
378
|
if (run.verdict.disposition !== "refuse" && callOpts.toolCallId !== undefined)
|
|
376
|
-
remember(callOpts.toolCallId, { toolName, boundary: run.boundary, established: run.established, command });
|
|
379
|
+
remember(callOpts.toolCallId, { toolName: member, boundary: run.boundary, established: run.established, command });
|
|
377
380
|
return run.verdict;
|
|
378
381
|
})();
|
|
379
382
|
},
|
|
380
|
-
unanswered(
|
|
381
|
-
const
|
|
383
|
+
unanswered(call, cause) {
|
|
384
|
+
const toolName = call.toolName;
|
|
385
|
+
const seat = opts.seatOf(memberOf(call) ?? toolName);
|
|
382
386
|
const fold = { finding: "unestablishable" };
|
|
383
387
|
const disposition = decideShellRead("unestablishable", seat);
|
|
384
388
|
const account = `${cause}, so where this command reads could not be established ${NOT_AUTO_ALLOWED}`;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
3
|
"_tierComment": "#435 v1 — machine-readable layering of the public surface: stable = demonstrated by README.md / src/examples; internal = an `Internal`-marked name or a runner/engine deep-subtree declaration (the model seam src/engine/llm is excluded — it is the BYOM contract, not an engine internal); advanced = a supported export the front door does not walk you through. THIS IS AN INITIAL HEURISTIC, derived mechanically and expected to be refined ticket by ticket: no human reviewed these 1700+ entries one by one, and nothing here claims otherwise. Known bias: a short or English-word export name (ok, err, Result, Usage) can match ordinary prose in README.md and land `stable` on a coincidence. Every export MUST carry a tier — a new export with no row fails the gate in export-surface.test.ts.",
|
|
4
|
-
"count":
|
|
4
|
+
"count": 2537,
|
|
5
5
|
"exports": {
|
|
6
6
|
"A2ATaskState": "type",
|
|
7
7
|
"A2ATaskStateReversal": "type",
|
|
@@ -940,6 +940,7 @@
|
|
|
940
940
|
"PROJECT_ID_REGEX": "variable",
|
|
941
941
|
"PROJECT_MARKER_PATH": "variable",
|
|
942
942
|
"PROTOCOL_TABLE": "variable",
|
|
943
|
+
"PROVIDER_ECHO_SHAPE": "variable",
|
|
943
944
|
"PackSectionDeclaration": "interface",
|
|
944
945
|
"ParentSpecSeat": "interface",
|
|
945
946
|
"ParentSpecSeatFields": "type",
|
|
@@ -1487,6 +1488,7 @@
|
|
|
1487
1488
|
"TOOL_CARD_ID_MAX_CHARS": "variable",
|
|
1488
1489
|
"TOOL_CONFORMANCE_VECTORS": "variable",
|
|
1489
1490
|
"TOOL_CONTRACT_MAX_CHARS": "variable",
|
|
1491
|
+
"TOOL_DECLARATION_CODES": "variable",
|
|
1490
1492
|
"TOOL_FAMILIES": "variable",
|
|
1491
1493
|
"TOOL_KEYS_MAX": "variable",
|
|
1492
1494
|
"TOOL_KEY_MAX_CHARS": "variable",
|
|
@@ -1550,6 +1552,7 @@
|
|
|
1550
1552
|
"ToolConformanceVector": "interface",
|
|
1551
1553
|
"ToolContentOrigin": "type",
|
|
1552
1554
|
"ToolContractDescriptor": "interface",
|
|
1555
|
+
"ToolDeclarationCode": "type",
|
|
1553
1556
|
"ToolDisclosureManifest": "interface",
|
|
1554
1557
|
"ToolDisclosureSnapshot": "interface",
|
|
1555
1558
|
"ToolEffect": "type",
|
|
@@ -2105,6 +2108,7 @@
|
|
|
2105
2108
|
"isPersonalScope": "function",
|
|
2106
2109
|
"isProcessLive": "function",
|
|
2107
2110
|
"isProtectedWrite": "function",
|
|
2111
|
+
"isProviderEchoShape": "function",
|
|
2108
2112
|
"isQuestionUnavailable": "function",
|
|
2109
2113
|
"isRemoteExecutionEnv": "function",
|
|
2110
2114
|
"isRetryableRemoteErrorCode": "function",
|
|
@@ -2385,6 +2389,7 @@
|
|
|
2385
2389
|
"retryBackoffMs": "function",
|
|
2386
2390
|
"riskSeverity": "function",
|
|
2387
2391
|
"rosterMemberBoundProblem": "function",
|
|
2392
|
+
"rosterToolName": "function",
|
|
2388
2393
|
"routeKeyOf": "function",
|
|
2389
2394
|
"routePairingStatus": "function",
|
|
2390
2395
|
"routePeerDeliveryReceipt": "function",
|
|
@@ -2395,6 +2400,7 @@
|
|
|
2395
2400
|
"ruleBasesNeeded": "function",
|
|
2396
2401
|
"ruleFaceOfInstance": "function",
|
|
2397
2402
|
"ruleFacesFromRoster": "function",
|
|
2403
|
+
"ruleNamesOf": "function",
|
|
2398
2404
|
"ruleOffersOfRecord": "function",
|
|
2399
2405
|
"ruleReachesProgramRun": "function",
|
|
2400
2406
|
"ruleSourceOf": "function",
|
|
@@ -2529,6 +2535,7 @@
|
|
|
2529
2535
|
"workflowWhenToUseText": "function",
|
|
2530
2536
|
"workflowsCapability": "function",
|
|
2531
2537
|
"worldStillMatchesMint": "function",
|
|
2538
|
+
"wrapToolPolicy": "function",
|
|
2532
2539
|
"writableRootOf": "function",
|
|
2533
2540
|
"writeRootAdoptionFile": "function",
|
|
2534
2541
|
"writeThenLink": "function",
|
|
@@ -3472,6 +3479,7 @@
|
|
|
3472
3479
|
"PROJECT_ID_REGEX": "advanced",
|
|
3473
3480
|
"PROJECT_MARKER_PATH": "advanced",
|
|
3474
3481
|
"PROTOCOL_TABLE": "advanced",
|
|
3482
|
+
"PROVIDER_ECHO_SHAPE": "advanced",
|
|
3475
3483
|
"PackSectionDeclaration": "advanced",
|
|
3476
3484
|
"ParentSpecSeat": "advanced",
|
|
3477
3485
|
"ParentSpecSeatFields": "advanced",
|
|
@@ -4019,6 +4027,7 @@
|
|
|
4019
4027
|
"TOOL_CARD_ID_MAX_CHARS": "advanced",
|
|
4020
4028
|
"TOOL_CONFORMANCE_VECTORS": "advanced",
|
|
4021
4029
|
"TOOL_CONTRACT_MAX_CHARS": "advanced",
|
|
4030
|
+
"TOOL_DECLARATION_CODES": "advanced",
|
|
4022
4031
|
"TOOL_FAMILIES": "advanced",
|
|
4023
4032
|
"TOOL_KEYS_MAX": "advanced",
|
|
4024
4033
|
"TOOL_KEY_MAX_CHARS": "advanced",
|
|
@@ -4082,6 +4091,7 @@
|
|
|
4082
4091
|
"ToolConformanceVector": "advanced",
|
|
4083
4092
|
"ToolContentOrigin": "advanced",
|
|
4084
4093
|
"ToolContractDescriptor": "advanced",
|
|
4094
|
+
"ToolDeclarationCode": "advanced",
|
|
4085
4095
|
"ToolDisclosureManifest": "advanced",
|
|
4086
4096
|
"ToolDisclosureSnapshot": "internal",
|
|
4087
4097
|
"ToolEffect": "advanced",
|
|
@@ -4637,6 +4647,7 @@
|
|
|
4637
4647
|
"isPersonalScope": "advanced",
|
|
4638
4648
|
"isProcessLive": "advanced",
|
|
4639
4649
|
"isProtectedWrite": "advanced",
|
|
4650
|
+
"isProviderEchoShape": "advanced",
|
|
4640
4651
|
"isQuestionUnavailable": "advanced",
|
|
4641
4652
|
"isRemoteExecutionEnv": "advanced",
|
|
4642
4653
|
"isRetryableRemoteErrorCode": "advanced",
|
|
@@ -4917,6 +4928,7 @@
|
|
|
4917
4928
|
"retryBackoffMs": "advanced",
|
|
4918
4929
|
"riskSeverity": "advanced",
|
|
4919
4930
|
"rosterMemberBoundProblem": "advanced",
|
|
4931
|
+
"rosterToolName": "advanced",
|
|
4920
4932
|
"routeKeyOf": "advanced",
|
|
4921
4933
|
"routePairingStatus": "advanced",
|
|
4922
4934
|
"routePeerDeliveryReceipt": "advanced",
|
|
@@ -4927,6 +4939,7 @@
|
|
|
4927
4939
|
"ruleBasesNeeded": "advanced",
|
|
4928
4940
|
"ruleFaceOfInstance": "advanced",
|
|
4929
4941
|
"ruleFacesFromRoster": "advanced",
|
|
4942
|
+
"ruleNamesOf": "advanced",
|
|
4930
4943
|
"ruleOffersOfRecord": "advanced",
|
|
4931
4944
|
"ruleReachesProgramRun": "advanced",
|
|
4932
4945
|
"ruleSourceOf": "advanced",
|
|
@@ -5061,6 +5074,7 @@
|
|
|
5061
5074
|
"workflowWhenToUseText": "advanced",
|
|
5062
5075
|
"workflowsCapability": "advanced",
|
|
5063
5076
|
"worldStillMatchesMint": "advanced",
|
|
5077
|
+
"wrapToolPolicy": "advanced",
|
|
5064
5078
|
"writableRootOf": "advanced",
|
|
5065
5079
|
"writeRootAdoptionFile": "advanced",
|
|
5066
5080
|
"writeThenLink": "advanced",
|