@sema-agent/core 7.38.3 → 7.39.1
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 +191 -6
- package/dist/core/ask-origin.d.ts +16 -7
- package/dist/core/ask-origin.js +4 -2
- package/dist/core/auto-mode-directive.d.ts +114 -19
- package/dist/core/auto-mode-directive.js +67 -19
- package/dist/core/checkpoint-store.d.ts +72 -41
- package/dist/core/checkpoint-store.js +28 -48
- package/dist/core/classifier-unavailable-arm.js +2 -2
- package/dist/core/decision-receipt.d.ts +2 -0
- package/dist/core/decision-receipt.js +1 -1
- package/dist/core/engine-notice.d.ts +41 -17
- package/dist/core/engine-notice.js +26 -14
- package/dist/core/gate-outcome.d.ts +80 -42
- package/dist/core/gate-outcome.js +21 -6
- package/dist/core/governance-codes.d.ts +1 -3
- package/dist/core/governance-codes.js +0 -3
- package/dist/core/hooks.d.ts +1 -1
- package/dist/core/hooks.js +2 -2
- package/dist/core/human-input-projection.d.ts +12 -0
- package/dist/core/human-input-projection.js +12 -0
- package/dist/core/memory-engine/engine.js +11 -11
- package/dist/core/memory-engine/layout.d.ts +21 -2
- package/dist/core/memory-engine/layout.js +17 -5
- package/dist/core/mode-policy.d.ts +26 -0
- package/dist/core/mode-policy.js +37 -1
- package/dist/core/output-style.d.ts +21 -0
- package/dist/core/output-style.js +29 -0
- package/dist/core/real-approval.d.ts +25 -0
- package/dist/core/real-approval.js +27 -0
- package/dist/core/reminder-disclosure.d.ts +2 -2
- package/dist/core/reminder-mint.d.ts +6 -9
- package/dist/core/reminder-mint.js +3 -14
- package/dist/core/retired-keys.d.ts +2 -1
- package/dist/core/retired-keys.js +3 -1
- package/dist/core/runner/assemble-result.d.ts +2 -0
- package/dist/core/runner/assemble-result.js +1 -1
- package/dist/core/runner/compaction-restate.d.ts +45 -4
- package/dist/core/runner/compaction-restate.js +89 -11
- package/dist/core/runner/contracts.d.ts +6 -6
- package/dist/core/runner/denial-limit-arms.js +4 -4
- package/dist/core/runner/inherited-ask-grants.d.ts +4 -2
- package/dist/core/runner/inherited-ask-grants.js +0 -3
- package/dist/core/runner/permission-rule-lanes.d.ts +18 -0
- package/dist/core/runner/permission-rule-lanes.js +35 -25
- package/dist/core/runner/prepare-context-lane.d.ts +1 -0
- package/dist/core/runner/prepare-context-lane.js +6 -0
- package/dist/core/runner/prepare-inherited-gate.js +2 -9
- package/dist/core/runner/prepare-task.js +10 -24
- package/dist/core/runner/prepare-wiring-manifest.js +2 -2
- package/dist/core/runner/prompt-block.d.ts +9 -0
- package/dist/core/runner/prompt-block.js +8 -0
- package/dist/core/runner/resume-admission.js +4 -1
- package/dist/core/runner/resume-apply.js +28 -18
- package/dist/core/runner/resume-policy-outcome.js +10 -4
- package/dist/core/runner/run-attachment-seats.js +1 -1
- package/dist/core/runner/run-identity-wiring.js +9 -2
- package/dist/core/runner/run-leg.js +42 -31
- package/dist/core/runner/run-settle-and-teardown.js +4 -3
- package/dist/core/runner/run-turn-boundary.js +4 -3
- package/dist/core/runner/runtask.d.ts +4 -2
- package/dist/core/runner/steer-admission.d.ts +9 -0
- package/dist/core/runner/steer-admission.js +8 -0
- package/dist/core/runner/stream-steer-verb.js +16 -11
- package/dist/core/runner/synthetic-tools.d.ts +4 -0
- package/dist/core/runner/tool-turn-repair-seat.js +1 -1
- package/dist/core/runner/turn-attachments.d.ts +16 -22
- package/dist/core/runner/turn-attachments.js +3 -20
- package/dist/core/runner-deps.d.ts +1 -1
- package/dist/core/store-contracts/checkpoint-store-contract.d.ts +8 -0
- package/dist/core/store-contracts/checkpoint-store-contract.js +23 -0
- package/dist/core/task-event.d.ts +7 -2
- package/dist/core/task-spec.d.ts +29 -7
- package/dist/core/terminal-cause.d.ts +44 -3
- package/dist/core/terminal-cause.js +5 -0
- package/dist/core/tool-policy.d.ts +55 -29
- package/dist/core/tool-policy.js +42 -31
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.js +1 -1
- package/dist/core/wiring-manifest.d.ts +17 -3
- package/dist/core/wiring-manifest.js +8 -3
- package/dist/engine/harness/agent-harness.d.ts +10 -0
- package/dist/engine/harness/agent-harness.js +12 -1
- package/dist/engine/llm/tool-turns.d.ts +15 -2
- package/dist/engine/llm/tool-turns.js +2 -2
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/prompt-assembly/event-registry.js +2 -1
- package/dist/tools/fs/index.d.ts +2 -1
- package/dist/tools/fs/read-deny-home.d.ts +3 -2
- package/dist/tools/fs/read-deny-home.js +6 -4
- package/dist/tools/fs/shell-read-check.d.ts +10 -3
- package/dist/tools/fs/shell-read-check.js +2 -2
- package/package.json +1 -1
- package/test/export-surface.snapshot.json +21 -1
- package/wire-changes/core@7.39.0.json +999 -0
- package/wire-changes/core@7.39.1.json +74 -0
|
@@ -42,7 +42,9 @@ export function resolveSubagentTranscriptTier(agentStoreWired, sessionStore) {
|
|
|
42
42
|
e.code = "config.store_durability_invalid";
|
|
43
43
|
throw e;
|
|
44
44
|
}
|
|
45
|
-
export function deriveAskEffective(form, parkEffective) {
|
|
45
|
+
export function deriveAskEffective(form, parkEffective, mode) {
|
|
46
|
+
if (mode === "dontAsk")
|
|
47
|
+
return "auto_deny";
|
|
46
48
|
switch (form) {
|
|
47
49
|
case "callback":
|
|
48
50
|
return "human_reachable";
|
|
@@ -59,6 +61,9 @@ export function deriveAskEffective(form, parkEffective) {
|
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
}
|
|
64
|
+
export function askSeatEffective(manifest) {
|
|
65
|
+
return deriveAskEffective(manifest.ask.form, manifest.parkLane.effective);
|
|
66
|
+
}
|
|
62
67
|
export function askReachesPerson(ask) {
|
|
63
68
|
const effective = ask.effective ?? "unresolved";
|
|
64
69
|
switch (effective) {
|
|
@@ -148,7 +153,7 @@ export function deriveWiringManifest(facts) {
|
|
|
148
153
|
ask: {
|
|
149
154
|
form: facts.askForm,
|
|
150
155
|
...(facts.askProvenance !== undefined ? { provenance: facts.askProvenance } : {}),
|
|
151
|
-
...(facts.half === "effective" ? { effective: deriveAskEffective(facts.askForm, parkLane.effective) } : {}),
|
|
156
|
+
...(facts.half === "effective" ? { effective: deriveAskEffective(facts.askForm, parkLane.effective, facts.permissionMode?.effective) } : {}),
|
|
152
157
|
},
|
|
153
158
|
question: {
|
|
154
159
|
wired: questionChannel,
|
|
@@ -200,7 +205,7 @@ export function deriveWiringManifest(facts) {
|
|
|
200
205
|
const { provenance: _askSeat, ...askForHash } = assembly.ask;
|
|
201
206
|
const { provenance: _questionSeat, ...questionForHash } = assembly.question;
|
|
202
207
|
manifest.configFingerprint = createHash("sha256")
|
|
203
|
-
.update(canonicalize({ ...assembly, ask: askForHash, question: questionForHash }))
|
|
208
|
+
.update(canonicalize({ ...assembly, ask: { ...askForHash, effective: deriveAskEffective(facts.askForm, parkLane.effective) }, question: questionForHash }))
|
|
204
209
|
.digest("hex")
|
|
205
210
|
.slice(0, 16);
|
|
206
211
|
}
|
|
@@ -194,6 +194,9 @@ export declare class AgentHarness<TSkill extends Skill = Skill, TPromptTemplate
|
|
|
194
194
|
* with every request view that needed one (the transcript is never rewritten, so a broken turn is repaired, and
|
|
195
195
|
* reported, on each request; the sink owns its dedup). Advisory: a throwing sink never breaks the request. */
|
|
196
196
|
onToolTurnRepaired?: (repairs: readonly ToolTurnRepair[]) => void;
|
|
197
|
+
/** The assistant messages standing in the transcript when the current run began — what the request view reads as
|
|
198
|
+
* "before this run" (a message is the run's own unless it is in here). */
|
|
199
|
+
private runHistory?;
|
|
197
200
|
/** backlog #259 — USER-authored queue remnants at agent_end: steers/follow-ups whose receipts said
|
|
198
201
|
* "queued" but that no turn will ever drain (the run ended first). The engine-note sweep above
|
|
199
202
|
* hands ENGINE payloads back for redelivery; user inputs have no redelivery semantics (a steer
|
|
@@ -212,6 +215,13 @@ export declare class AgentHarness<TSkill extends Skill = Skill, TPromptTemplate
|
|
|
212
215
|
* Advisory (swallow-guarded at the call sites via the runner's own closure); never re-entered
|
|
213
216
|
* for the same payload — consumption deletes the sidecar entry in the same step. */
|
|
214
217
|
onEngineNoteConsumed?: (payload: unknown) => void;
|
|
218
|
+
/** backlog #1273 — runner-set sink fired ONCE per CALLER frame at the moment the frame is in the transcript (its
|
|
219
|
+
* `message_end` append — the next request carries it), with the opaque park record the frame rode in on
|
|
220
|
+
* ({@link UserMessageProvenance.parkRecord}). The consumption point of a caller input, deliberately NOT the drain:
|
|
221
|
+
* a drained frame can still be dropped before its turn starts (a halt latched or an abort landing after the drain)
|
|
222
|
+
* and goes back into the park / undrained account, so a drain-time report would announce an input the model never
|
|
223
|
+
* saw. Advisory (swallow-guarded); the record is released in the same step, so a delivered frame reports once. */
|
|
224
|
+
onUserInputConsumed?: (parkRecord: unknown) => void;
|
|
215
225
|
/** #1036 — THE RECEIPT SINK: a frame reached the TRANSCRIPT, reported at the `message_end` append
|
|
216
226
|
* that proves it, with its carrier and entry id. Advisory. */
|
|
217
227
|
onFrameCommitted?: (carrier: CommittedFrameCarrier, entryId: string) => void;
|
|
@@ -212,12 +212,14 @@ export class AgentHarness {
|
|
|
212
212
|
thinkingLevel;
|
|
213
213
|
onUndrainedEngineNotes;
|
|
214
214
|
onToolTurnRepaired;
|
|
215
|
+
runHistory;
|
|
215
216
|
onUndrainedUserInputs;
|
|
216
217
|
onEngineNoteConsumed;
|
|
218
|
+
onUserInputConsumed;
|
|
217
219
|
onFrameCommitted;
|
|
218
220
|
engineInjectionsHeld;
|
|
219
221
|
holdToolTurnLaw(messages) {
|
|
220
|
-
const view = ensureToolTurnInvariants(messages);
|
|
222
|
+
const view = ensureToolTurnInvariants(messages, this.runHistory);
|
|
221
223
|
if (view.repairs.length > 0) {
|
|
222
224
|
try {
|
|
223
225
|
this.onToolTurnRepaired?.(view.repairs);
|
|
@@ -603,7 +605,15 @@ export class AgentHarness {
|
|
|
603
605
|
if (!this.drainedPendingInjection.includes(message))
|
|
604
606
|
return;
|
|
605
607
|
this.unbookInFlight([message]);
|
|
608
|
+
const parkRecord = userInputParkRecords.get(message);
|
|
606
609
|
userInputParkRecords.delete(message);
|
|
610
|
+
if (parkRecord !== undefined) {
|
|
611
|
+
try {
|
|
612
|
+
this.onUserInputConsumed?.(parkRecord);
|
|
613
|
+
}
|
|
614
|
+
catch {
|
|
615
|
+
}
|
|
616
|
+
}
|
|
607
617
|
if (entryId !== undefined) {
|
|
608
618
|
const payload = engineNotePayloads.get(message);
|
|
609
619
|
if (payload !== undefined) {
|
|
@@ -878,6 +888,7 @@ export class AgentHarness {
|
|
|
878
888
|
async executeTurn(turnState, text, options, abortController) {
|
|
879
889
|
let activeTurnState = turnState;
|
|
880
890
|
const userMessage = createUserMessage(text, options?.images, options);
|
|
891
|
+
this.runHistory = new WeakSet(turnState.messages.filter((m) => m.role === "assistant"));
|
|
881
892
|
const beforeResult = await this.emitHook({
|
|
882
893
|
type: "before_agent_start",
|
|
883
894
|
prompt: text,
|
|
@@ -43,6 +43,13 @@
|
|
|
43
43
|
* wording, whatever the tool. (The persisted reconcile refines with the run's tool effects — a read-only or
|
|
44
44
|
* idempotent call's close says it may simply be re-issued — and, on a live abort, with the calls it saw start.)
|
|
45
45
|
* Returns the SAME array when nothing needed restoring.
|
|
46
|
+
*
|
|
47
|
+
* RUN OWNERSHIP. The caller may hand over the assistant messages that stood in its transcript before its run began
|
|
48
|
+
* (`priorMessages`, by object). A `missing_result` repair on one of them is marked `beforeRun`: the call went
|
|
49
|
+
* unanswered before this run started, so closing it on the wire is a fact about the transcript the run inherited, not
|
|
50
|
+
* an event of the run. Membership is by message, never by position — a request projection that inserts, drops or
|
|
51
|
+
* replaces other messages cannot move it. The mark says that and nothing else: the repair, the synthesized result and
|
|
52
|
+
* the operator's account of them are the same with or without it. No `priorMessages` ⇒ no mark.
|
|
46
53
|
*/
|
|
47
54
|
import type { AssertAllKeysHandled } from "../../core/ask-origin.js";
|
|
48
55
|
import type { AssistantMessageDiagnostic } from "./diagnostics.js";
|
|
@@ -97,6 +104,9 @@ export interface ToolTurnRepair {
|
|
|
97
104
|
* ids a later call of the message repeated; for `orphan_result` the ids of the results left out, once each, in
|
|
98
105
|
* transcript order; otherwise the calls whose result was moved up, synthesized, or folded with a second one. */
|
|
99
106
|
readonly toolCallIds: readonly string[];
|
|
107
|
+
/** `missing_result` only, and only when the caller handed over its run's prior messages
|
|
108
|
+
* ({@link ensureToolTurnInvariants}'s `priorMessages`): the message holding these calls is one of them. */
|
|
109
|
+
readonly beforeRun?: true;
|
|
100
110
|
}
|
|
101
111
|
export interface ToolTurnView {
|
|
102
112
|
/** The request view — the input array itself when {@link repairs} is empty. */
|
|
@@ -105,5 +115,8 @@ export interface ToolTurnView {
|
|
|
105
115
|
}
|
|
106
116
|
/** The text standing between two results recorded for one call when the view folds them into one. */
|
|
107
117
|
export declare const SECOND_RESULT_SEPARATOR = "[another result was recorded for this same call:]";
|
|
108
|
-
/** Restore the tool-turn law on a provider-bound message list (see the module header).
|
|
109
|
-
|
|
118
|
+
/** Restore the tool-turn law on a provider-bound message list (see the module header). `priorMessages` = the calling
|
|
119
|
+
* run's inherited assistant messages (module header, RUN OWNERSHIP). */
|
|
120
|
+
export declare function ensureToolTurnInvariants(messages: Message[], priorMessages?: {
|
|
121
|
+
has(message: object): boolean;
|
|
122
|
+
}): ToolTurnView;
|
|
@@ -47,7 +47,7 @@ function callsOf(m) {
|
|
|
47
47
|
return m.role === "assistant" && Array.isArray(m.content) ? m.content.filter((c) => c?.type === "toolCall") : [];
|
|
48
48
|
}
|
|
49
49
|
export const SECOND_RESULT_SEPARATOR = "[another result was recorded for this same call:]";
|
|
50
|
-
export function ensureToolTurnInvariants(messages) {
|
|
50
|
+
export function ensureToolTurnInvariants(messages, priorMessages) {
|
|
51
51
|
const anchor = [];
|
|
52
52
|
messages.forEach((m, i) => anchor.push(m.role === "toolResult" && i > 0 ? anchor[i - 1] : i));
|
|
53
53
|
const sites = new Map();
|
|
@@ -132,7 +132,7 @@ export function ensureToolTurnInvariants(messages) {
|
|
|
132
132
|
if (late.length > 0)
|
|
133
133
|
repairs.push({ form: "late_result", toolCallIds: inCallOrder(late) });
|
|
134
134
|
if (missing.length > 0)
|
|
135
|
-
repairs.push({ form: "missing_result", toolCallIds: missing.map((c) => c.id) });
|
|
135
|
+
repairs.push({ form: "missing_result", toolCallIds: missing.map((c) => c.id), ...(priorMessages?.has(m) === true ? { beforeRun: true } : {}) });
|
|
136
136
|
if (duplicate.length > 0)
|
|
137
137
|
repairs.push({ form: "duplicate_result", toolCallIds: inCallOrder(duplicate) });
|
|
138
138
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export { ASK_UNRESOLVABLE_CAUSES } from "./core/ask-unresolvable-notice.js";
|
|
|
66
66
|
export { USER_STEER_UNDRAINED_CAUSES, type UserSteerUndrainedCause } from "./core/engine-notice.js";
|
|
67
67
|
export { TOOL_TURN_INCOMPLETE_CAUSES, type ToolTurnIncompleteCause } from "./internal/llm.js";
|
|
68
68
|
export { DURABLE_MANDATE_SOURCES } from "./core/tool-policy.js";
|
|
69
|
-
export { TERMINAL_CAUSE_IS_REPLAYABLE, type TerminalFailureDetail } from "./core/terminal-cause.js";
|
|
69
|
+
export { TERMINAL_CAUSE_IS_REPLAYABLE, type TerminalFailureDetail, type TerminalBlockedDetail, PROMPT_BLOCK_CAUSES, type PromptBlockCause, isPromptBlockCause } from "./core/terminal-cause.js";
|
|
70
70
|
export { RESERVED_AGENT_NAMES } from "./agents/subagent.js";
|
|
71
71
|
export { WORKFLOW_SIZE_GUIDELINE_AGENT_CAPS } from "./orchestration/workflow-size-guideline.js";
|
|
72
72
|
export { ENGINE_AUTHORITY_ENVELOPE_TAGS } from "./core/untrusted-text.js";
|
|
@@ -191,14 +191,14 @@ export { createAllowDenyPolicy, createApprovalPolicy,
|
|
|
191
191
|
* members that seat has no lane for (`"unavailable"`, a routing answer; `updatedInput`, an operator edit a
|
|
192
192
|
* policy verdict cannot get re-adjudicated). Exported so a host can NAME it instead of deriving it through
|
|
193
193
|
* `Parameters<typeof createApprovalPolicy>[0]["approve"]`. */
|
|
194
|
-
type ApprovalSeatOutcome, COARSE_SHELL_TOOLS, createCoarseCommandNamePolicy, createTranscriptIntegrityPolicy, createUnverifiableDeletePolicy, findUnverifiableRecursiveDelete, combinePolicies, wrapToolPolicy, decisionText, resolveAsk, toolPolicyNameSets, toolPolicyPathDenyRules, type ToolPolicyNameSets, type NamedToolPolicy, type ToolPolicyProjection, type ToolPolicyProjectionComponent, type ConstraintChainEntry, checkToolPolicyProjection, constraintChainEntryOf, constraintChainDigest, type ToolPolicy, type ToolCallRequest, type PermissionResult, type DecisionReason, screenApproverAttribution, APPROVER_ATTRIBUTION_MAX_CHARS, type OnAsk, type AskOutcome, type ResolvedAsk, type AskRequest, type AskDelegationProvenance, type AskRuleEvidence, type AskEvidenceAbsence, ASK_EVIDENCE_ABSENCE_VALUES, } from "./core/tool-policy.js";
|
|
194
|
+
type ApprovalSeatOutcome, COARSE_SHELL_TOOLS, createCoarseCommandNamePolicy, createTranscriptIntegrityPolicy, createUnverifiableDeletePolicy, findUnverifiableRecursiveDelete, combinePolicies, receiveHookResult, isEngineRefusal, wrapToolPolicy, decisionText, resolveAsk, toolPolicyNameSets, toolPolicyPathDenyRules, type ToolPolicyNameSets, type NamedToolPolicy, type ToolPolicyProjection, type ToolPolicyProjectionComponent, type ConstraintChainEntry, checkToolPolicyProjection, constraintChainEntryOf, constraintChainDigest, type ToolPolicy, type ToolCallRequest, type PermissionResult, type DecisionReason, screenApproverAttribution, APPROVER_ATTRIBUTION_MAX_CHARS, type OnAsk, type AskOutcome, type ResolvedAsk, type AskRequest, type AskDelegationProvenance, type AskRuleEvidence, type AskEvidenceAbsence, ASK_EVIDENCE_ABSENCE_VALUES, } from "./core/tool-policy.js";
|
|
195
195
|
export { type ReadRootGrantScreen } from "./core/read-root-grant-screen.js";
|
|
196
196
|
export { type AskOrigin, ASK_ORIGINS, isAskOrigin, ORIGIN_IMPLIES_REAL_APPROVAL, PERSISTED_RULE_MANDATES, type PersistedRuleMandate, isPersistedRuleMandate, screenAskClassMembers } from "./core/ask-origin.js";
|
|
197
197
|
export { PERMISSION_MODES, type PermissionMode, isPermissionMode, PERMISSION_MODE_RANK, clampPermissionMode, ASK_CLASSES, type AskClass, isAskClass, MODE_ARBITRATION, type ModeArbitrationRow, RELEASABLE_ASK_CLASSES, MODE_RELEASE_REASONS, type ModeReleaseReason, isModeReleaseReason, RRA_EXPLAINERS, classifyAsk, foldArbitrationRow, type AskClassification, type AskClassFacts, type ToolMarkSource, arbitrateByMode, type Arbitration, fileCommandOptionsSentence } from "./core/ask-origin.js";
|
|
198
198
|
export { modePolicyOf, type ModePolicy, PERMISSION_MODE_FOLD_REASONS, type PermissionModeFoldReason, type PermissionModeReceipt, ACCEPT_EDITS_FILE_COMMANDS, modeAcceptsFileCommand } from "./core/mode-policy.js";
|
|
199
199
|
export { readDenyClassifierRules, renderClassifierDenyRules, type DerivedDenyRule } from "./core/auto-mode-prompt.js";
|
|
200
200
|
export { AUTO_MODE_DENY_SOURCES, isAutoModeDenySource, type AutoModeDenySource } from "./core/runtime-caps.js";
|
|
201
|
-
export { SETTLEMENT_KINDS, type SettlementKind, isSettlementKind, type Settlement, SETTLEMENT_IS_REFUSAL, DENIED_BY_VALUES, type DeniedBy, isDeniedBy, DENIED_BY_MAY_VETO, CLASSIFIER_DENY_CAUSES, type ClassifierDenyCause, isClassifierDenyCause, DENIED_BY_MAY_CARRY_CAUSE, type GateDisposition, type GateOutcome, type ModeRelease, type ModeRefusal, screenGateOutcome } from "./core/gate-outcome.js";
|
|
201
|
+
export { SETTLEMENT_KINDS, type SettlementKind, isSettlementKind, type Settlement, SETTLEMENT_PARTIES, type SettlementParty, isSettlementParty, SETTLEMENT_IS_REFUSAL, DENIED_BY_VALUES, type DeniedBy, isDeniedBy, DENIED_BY_MAY_VETO, CLASSIFIER_DENY_CAUSES, type ClassifierDenyCause, isClassifierDenyCause, DENIED_BY_MAY_CARRY_CAUSE, type GateDisposition, type GateOutcome, type ModeRelease, type ModeRefusal, screenGateOutcome } from "./core/gate-outcome.js";
|
|
202
202
|
export { type AskCarry } from "./core/hooks.js";
|
|
203
203
|
export { SWAPPABLE_DEP_SEATS, SWAP_SEAT_NOTICE, isSwappableDepSeat, screenSwappableDeps, type SwappableDepSeat, type SwappableDeps } from "./core/swappable-deps.js";
|
|
204
204
|
export { parseAutoModeResponse, createAutoModeDecider, AUTO_MODE_UNAVAILABLE_CAUSES, isAutoModeUnavailableCause, classifierUnavailableDenyMessage, classifierParseFailureDenyMessage, AUTO_MODE_PARSE_FAILURES, isAutoModeParseFailure, type AutoModeParseFailure, type AutoModeUnavailableCause, AUTO_MODE_CLASSIFIER_FALLBACKS, isAutoModeClassifierFallback, AUTO_MODE_FALLBACK_CAUSES, isAutoModeFallbackCause, type AutoModeClassifierFallback, type AutoModeFallbackCause, type AutoModeClassifierRound, type AutoModeLadderRung, type AutoModeVerdict, type AutoModeDecider, type AutoModeDeciderOptions, type AutoModeClassified, type AutoModeClassifyFn, type AutoModeClassifyInput, createAutoModeDenialTracker, denialLimitFallbackMessage, denialLimitSentence, unarmedWindow, type AutoModeDenialTracker, type AutoModeDenialLimitOptions, type DenialLimitCounts, type DenialLimitFallbackFace, type UnarmedDenialLimitFallback, type DenialLimitFallback, type DenialLimitVerdict, } from "./core/auto-mode.js";
|
|
@@ -264,6 +264,7 @@ export { buildTurnPromptSnapshot, loweringRecordFor, LOWERING_VERSION, PREFIX_IN
|
|
|
264
264
|
export { CenterPromptSource, FilePromptArtifactStore, FilePromptSourceStateStore, MemoryPromptArtifactStore, MemoryPromptSourceStateStore, type PromptArtifactSource, type PromptArtifactStore, type PromptSourceState, type PromptSourceStateStore, } from "./prompt-assembly/artifact-store.js";
|
|
265
265
|
export { stripEngineMetadata } from "./internal/llm.js";
|
|
266
266
|
export { EVENT_PROMPT_REGISTRY, eventDefaultOn, type CompiledEventPrompt, type EventDedupe, type EventDefaultPolicy } from "./prompt-assembly/event-registry.js";
|
|
267
|
+
export { OUTPUT_STYLE_NAME_MAX } from "./core/output-style.js";
|
|
267
268
|
export { contextUsageSections, type ContextUsageSection } from "./prompt-assembly/section-usage.js";
|
|
268
269
|
export type { CompiledSection, ComposedPrompt, PackSectionDeclaration, PromptCacheClass, PromptCarrier, PromptMutability, PromptOwner, PromptPack, PromptRenderCadence, PromptRuntimeFacts, PromptSlot, PromptTrust, SectionRenderInputs, } from "./prompt-assembly/types.js";
|
|
269
270
|
export { type ReasoningIntensity, type ReasoningResolution, type ResolvedReasoning, type ReasoningFormat, DEFAULT_EFFORT_LEVELS, REASONING_BUDGET_SHARE, isThinkingLevel, rankOf, resolveEffort, reasoningEffortLevelsOf, resolveBinary, reasoningBudgetShare, resolveReasoning, thinkingOffSpelled, declaredOffSpelling, type OffCapabilityModel, resolveReasoningProfile, type ReasoningTier, type ReasoningProfileFlags, } from "./brain/reasoning.js";
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ export { ASK_UNRESOLVABLE_CAUSES } from "./core/ask-unresolvable-notice.js";
|
|
|
52
52
|
export { USER_STEER_UNDRAINED_CAUSES } from "./core/engine-notice.js";
|
|
53
53
|
export { TOOL_TURN_INCOMPLETE_CAUSES } from "./internal/llm.js";
|
|
54
54
|
export { DURABLE_MANDATE_SOURCES } from "./core/tool-policy.js";
|
|
55
|
-
export { TERMINAL_CAUSE_IS_REPLAYABLE } from "./core/terminal-cause.js";
|
|
55
|
+
export { TERMINAL_CAUSE_IS_REPLAYABLE, PROMPT_BLOCK_CAUSES, isPromptBlockCause } from "./core/terminal-cause.js";
|
|
56
56
|
export { RESERVED_AGENT_NAMES } from "./agents/subagent.js";
|
|
57
57
|
export { WORKFLOW_SIZE_GUIDELINE_AGENT_CAPS } from "./orchestration/workflow-size-guideline.js";
|
|
58
58
|
export { ENGINE_AUTHORITY_ENVELOPE_TAGS } from "./core/untrusted-text.js";
|
|
@@ -156,14 +156,14 @@ export { hasScheduler, isValidCronExpr, SchedulerError } from "./core/scheduler.
|
|
|
156
156
|
export { createSchedulerTools, SCHEDULE_WAKEUP_TOOL_NAME, AUTONOMOUS_LOOP_SENTINEL, AUTONOMOUS_LOOP_DYNAMIC_SENTINEL, } from "./tools/scheduler-tools.js";
|
|
157
157
|
export { resolveAutonomousLoopPrompt, AUTONOMOUS_LOOP_PREAMBLE, AUTONOMOUS_LOOP_PREAMBLE_PERSISTENT, } from "./tools/loop-tick.js";
|
|
158
158
|
export { tightenTaskSpec, TaskSpecTightenError } from "./core/tighten-task-spec.js";
|
|
159
|
-
export { createAllowDenyPolicy, createApprovalPolicy, COARSE_SHELL_TOOLS, createCoarseCommandNamePolicy, createTranscriptIntegrityPolicy, createUnverifiableDeletePolicy, findUnverifiableRecursiveDelete, combinePolicies, wrapToolPolicy, decisionText, resolveAsk, toolPolicyNameSets, toolPolicyPathDenyRules, checkToolPolicyProjection, constraintChainEntryOf, constraintChainDigest, screenApproverAttribution, APPROVER_ATTRIBUTION_MAX_CHARS, ASK_EVIDENCE_ABSENCE_VALUES, } from "./core/tool-policy.js";
|
|
159
|
+
export { createAllowDenyPolicy, createApprovalPolicy, COARSE_SHELL_TOOLS, createCoarseCommandNamePolicy, createTranscriptIntegrityPolicy, createUnverifiableDeletePolicy, findUnverifiableRecursiveDelete, combinePolicies, receiveHookResult, isEngineRefusal, wrapToolPolicy, decisionText, resolveAsk, toolPolicyNameSets, toolPolicyPathDenyRules, checkToolPolicyProjection, constraintChainEntryOf, constraintChainDigest, screenApproverAttribution, APPROVER_ATTRIBUTION_MAX_CHARS, ASK_EVIDENCE_ABSENCE_VALUES, } from "./core/tool-policy.js";
|
|
160
160
|
export {} from "./core/read-root-grant-screen.js";
|
|
161
161
|
export { ASK_ORIGINS, isAskOrigin, ORIGIN_IMPLIES_REAL_APPROVAL, PERSISTED_RULE_MANDATES, isPersistedRuleMandate, screenAskClassMembers } from "./core/ask-origin.js";
|
|
162
162
|
export { PERMISSION_MODES, isPermissionMode, PERMISSION_MODE_RANK, clampPermissionMode, ASK_CLASSES, isAskClass, MODE_ARBITRATION, RELEASABLE_ASK_CLASSES, MODE_RELEASE_REASONS, isModeReleaseReason, RRA_EXPLAINERS, classifyAsk, foldArbitrationRow, arbitrateByMode, fileCommandOptionsSentence } from "./core/ask-origin.js";
|
|
163
163
|
export { modePolicyOf, PERMISSION_MODE_FOLD_REASONS, ACCEPT_EDITS_FILE_COMMANDS, modeAcceptsFileCommand } from "./core/mode-policy.js";
|
|
164
164
|
export { readDenyClassifierRules, renderClassifierDenyRules } from "./core/auto-mode-prompt.js";
|
|
165
165
|
export { AUTO_MODE_DENY_SOURCES, isAutoModeDenySource } from "./core/runtime-caps.js";
|
|
166
|
-
export { SETTLEMENT_KINDS, isSettlementKind, SETTLEMENT_IS_REFUSAL, DENIED_BY_VALUES, isDeniedBy, DENIED_BY_MAY_VETO, CLASSIFIER_DENY_CAUSES, isClassifierDenyCause, DENIED_BY_MAY_CARRY_CAUSE, screenGateOutcome } from "./core/gate-outcome.js";
|
|
166
|
+
export { SETTLEMENT_KINDS, isSettlementKind, SETTLEMENT_PARTIES, isSettlementParty, SETTLEMENT_IS_REFUSAL, DENIED_BY_VALUES, isDeniedBy, DENIED_BY_MAY_VETO, CLASSIFIER_DENY_CAUSES, isClassifierDenyCause, DENIED_BY_MAY_CARRY_CAUSE, screenGateOutcome } from "./core/gate-outcome.js";
|
|
167
167
|
export {} from "./core/hooks.js";
|
|
168
168
|
export { SWAPPABLE_DEP_SEATS, SWAP_SEAT_NOTICE, isSwappableDepSeat, screenSwappableDeps } from "./core/swappable-deps.js";
|
|
169
169
|
export { parseAutoModeResponse, createAutoModeDecider, AUTO_MODE_UNAVAILABLE_CAUSES, isAutoModeUnavailableCause, classifierUnavailableDenyMessage, classifierParseFailureDenyMessage, AUTO_MODE_PARSE_FAILURES, isAutoModeParseFailure, AUTO_MODE_CLASSIFIER_FALLBACKS, isAutoModeClassifierFallback, AUTO_MODE_FALLBACK_CAUSES, isAutoModeFallbackCause, createAutoModeDenialTracker, denialLimitFallbackMessage, denialLimitSentence, unarmedWindow, } from "./core/auto-mode.js";
|
|
@@ -212,6 +212,7 @@ export { buildTurnPromptSnapshot, loweringRecordFor, LOWERING_VERSION, PREFIX_IN
|
|
|
212
212
|
export { CenterPromptSource, FilePromptArtifactStore, FilePromptSourceStateStore, MemoryPromptArtifactStore, MemoryPromptSourceStateStore, } from "./prompt-assembly/artifact-store.js";
|
|
213
213
|
export { stripEngineMetadata } from "./internal/llm.js";
|
|
214
214
|
export { EVENT_PROMPT_REGISTRY, eventDefaultOn } from "./prompt-assembly/event-registry.js";
|
|
215
|
+
export { OUTPUT_STYLE_NAME_MAX } from "./core/output-style.js";
|
|
215
216
|
export { contextUsageSections } from "./prompt-assembly/section-usage.js";
|
|
216
217
|
export { DEFAULT_EFFORT_LEVELS, REASONING_BUDGET_SHARE, isThinkingLevel, rankOf, resolveEffort, reasoningEffortLevelsOf, resolveBinary, reasoningBudgetShare, resolveReasoning, thinkingOffSpelled, declaredOffSpelling, resolveReasoningProfile, } from "./brain/reasoning.js";
|
|
217
218
|
export { DESIGN_REVIEW_PROMPTS, CODE_REVIEW_PROMPT, SCENARIO_REGISTRY, runScenario, } from "./scenarios/scenario-registry.js";
|
|
@@ -3,7 +3,7 @@ export const EVENT_PROMPT_REGISTRY = new Map([
|
|
|
3
3
|
{ kind: "task_reminder", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", defaultPolicy: "off", rendererRef: "turn-attachments.ts#TASK_REMINDER_BASE" },
|
|
4
4
|
{ kind: "tool_search_usage_reminder", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", defaultPolicy: "off", rendererRef: "turn-attachments.ts#renderToolSearchUsageReminder" },
|
|
5
5
|
{ kind: "changed_files", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", defaultPolicy: "off", rendererRef: "turn-attachments.ts#renderChangedFiles" },
|
|
6
|
-
{ kind: "
|
|
6
|
+
{ kind: "output_style", carrier: "message.user-prefix", trust: "operator", dedupe: "repeat", defaultPolicy: "always", rendererRef: "../output-style.ts#renderOutputStyle" },
|
|
7
7
|
{ kind: "date_change", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", defaultPolicy: "always", rendererRef: "turn-attachments.ts#renderDateChange" },
|
|
8
8
|
{ kind: "instructions_change", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", maxBytes: 512, defaultPolicy: "always", rendererRef: "turn-attachments.ts#collectInstructionsChange" },
|
|
9
9
|
{ kind: "workflow_size_guideline_change", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", defaultPolicy: "always", rendererRef: "run-turn-boundary.ts#workflowSizeGuidelineChangeNotice" },
|
|
@@ -16,6 +16,7 @@ export const EVENT_PROMPT_REGISTRY = new Map([
|
|
|
16
16
|
{ kind: "mcp_instructions", carrier: "message.user-prefix", trust: "external", dedupe: "replace-by-key", defaultPolicy: "off", rendererRef: "turn-attachments.ts#renderMcpInstructionsDelta" },
|
|
17
17
|
{ kind: "mcp_dropped_tools", carrier: "message.user-prefix", trust: "external", dedupe: "replace-by-key", defaultPolicy: "off", rendererRef: "turn-attachments.ts#renderMcpDroppedTools" },
|
|
18
18
|
{ kind: "git_status", carrier: "message.user-prefix", trust: "external", dedupe: "replace-by-key", defaultPolicy: "always", rendererRef: "git-status-frame.ts#renderGitStatusFrameBody" },
|
|
19
|
+
{ kind: "permission_posture", carrier: "message.user-prefix", trust: "operator", dedupe: "replace-by-key", defaultPolicy: "always", rendererRef: "../auto-mode-directive.ts#POSTURE_TABLE" },
|
|
19
20
|
{ kind: "limit_approach_converge", carrier: "message.user-prefix", trust: "operator", dedupe: "once-per-run", defaultPolicy: "always", rendererRef: "run-turn-boundary.ts#limitApproachFrames" },
|
|
20
21
|
{ kind: "limit_approach_deliver", carrier: "message.user-prefix", trust: "operator", dedupe: "once-per-run", defaultPolicy: "always", rendererRef: "run-turn-boundary.ts#limitApproachFrames" },
|
|
21
22
|
{ kind: "final_verification", carrier: "message.user-prefix", trust: "operator", dedupe: "once-per-run", defaultPolicy: "always", rendererRef: "runtask.ts#final-verification" },
|
package/dist/tools/fs/index.d.ts
CHANGED
|
@@ -192,7 +192,8 @@ export interface HandsToolkitOptions {
|
|
|
192
192
|
* not asked and no home is added (each listed home is anchored at its spelling and, where the environment answers one,
|
|
193
193
|
* its canonical spelling), and the band's home views (a path spelled through a firmlink or a bind mount of a home,
|
|
194
194
|
* judged at the home) read this list and the environment's declared home; an entry that is not the declared home is probed once,
|
|
195
|
-
* under a short bound of its own, and a probe of it that fails costs that entry alone.
|
|
195
|
+
* under a short bound of its own, and a probe of it that fails costs that entry alone. The public shell judgment takes the
|
|
196
|
+
* same list as {@link import("./shell-read-check.js").ShellReadJudgeInput.readDenyHomes}. */
|
|
196
197
|
readDenyHomes?: readonly string[];
|
|
197
198
|
/** Where each home-anchored row's literal head leads beyond the home's spellings
|
|
198
199
|
* ({@link import("./read-deny-home.js").readDenyHomeLinksOf}, keyed by the row's pattern) — the Runner passes the
|
|
@@ -100,8 +100,9 @@ export declare function placementViewsOf(homes: readonly string[]): HomeViewSour
|
|
|
100
100
|
* time: no latch). */
|
|
101
101
|
export declare function sayPlacementLost(): void;
|
|
102
102
|
/** The home views over a home list fixed now — a mount that places nothing itself (a toolkit handed its placement, or
|
|
103
|
-
* one whose table has no home-anchored row) and the public shell judgment
|
|
104
|
-
* `homes` that is not the declared home as an auxiliary home,
|
|
103
|
+
* one whose table has no home-anchored row) and the public shell judgment (the `readDenyHomes` its boundary's rows were
|
|
104
|
+
* compiled under): the declared home, and every entry of `homes` that is not the declared home as an auxiliary home,
|
|
105
|
+
* read once, at once. */
|
|
105
106
|
export declare function homeViewsAt(env: HomeViewEnv, homes: readonly string[]): HomeViewSource;
|
|
106
107
|
/** The home views of one judgment, off the judge it judges with: the views of the judge's placement. A judge that
|
|
107
108
|
* carries none (one built outside a mount) reads the declared home alone. */
|
|
@@ -312,10 +312,12 @@ export function sayPlacementLost() {
|
|
|
312
312
|
catch {
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
|
-
|
|
315
|
+
function readAuxiliaryHomes(env, homes, opts, signal) {
|
|
316
316
|
const declared = declaredHomeOf(env);
|
|
317
|
-
|
|
318
|
-
|
|
317
|
+
return [...new Set(homes.filter((h) => isAbsolutePathForm(h) && !isDeclared(declared, h)))].map((home) => readAuxiliaryHome(env, home, opts, signal));
|
|
318
|
+
}
|
|
319
|
+
export function homeViewsAt(env, homes) {
|
|
320
|
+
return homeViewSourceOver(env, readAuxiliaryHomes(env, homes, {}));
|
|
319
321
|
}
|
|
320
322
|
export function homeViewsOf(env, judge, signal) {
|
|
321
323
|
return (judge?.homeViews ?? homeViewsAt(env, [])).views(signal);
|
|
@@ -338,7 +340,7 @@ export async function placeReadDenyAtHome(env, compile, homes, signal) {
|
|
|
338
340
|
return heldAnywhere(false);
|
|
339
341
|
declaredAt = [...new Set([...own, ...ownSpellings.spellings])];
|
|
340
342
|
}
|
|
341
|
-
const auxiliary =
|
|
343
|
+
const auxiliary = readAuxiliaryHomes(env, listed.homes, { entries }, signal);
|
|
342
344
|
const [heads, readings] = await Promise.all([readDenyHomeLinksOf(env, entries, declaredAt, signal), Promise.all(auxiliary)]);
|
|
343
345
|
const at = [...new Set([...declaredAt, ...readings.flatMap((r) => r.place)])];
|
|
344
346
|
const linked = new Map();
|
|
@@ -163,6 +163,12 @@ export interface ShellReadJudgeInput {
|
|
|
163
163
|
readonly readers?: ReadonlySet<string>;
|
|
164
164
|
/** The face named in a refusal sentence. Defaults to `Bash`. */
|
|
165
165
|
readonly tool?: string;
|
|
166
|
+
/** The home list the boundary's deny rows were compiled under (`HandsToolkitOptions.readDenyHomes`'s seat, same list, same
|
|
167
|
+
* meaning: absolute home paths, anything else rejects naming `readDenyHomes`). Present ⇒ the judgment's home views are
|
|
168
|
+
* that table's — the environment's declared home is always among them, every other entry is read once under a short
|
|
169
|
+
* bound of its own — and the account database is not asked and no home is added; `[]` leaves the declared home alone.
|
|
170
|
+
* Absent ⇒ the judgment is its own placement: the declared home and the account's home, asked once for this call. */
|
|
171
|
+
readonly readDenyHomes?: readonly string[];
|
|
166
172
|
/** Handed to the ENVIRONMENT's own primitives (`canonicalPath`, `listDir`) while the reads are
|
|
167
173
|
* established; whether an abort stops one is the adapter's answer, and a walk short enough to finish
|
|
168
174
|
* first finishes. It is NOT a deadline and it does not reach `boundary.alsoInside`, whose signature
|
|
@@ -196,9 +202,10 @@ export interface ShellReadJudgment {
|
|
|
196
202
|
* pattern on its spelling alone, so the two diverge in both directions.
|
|
197
203
|
*
|
|
198
204
|
* A read target is also judged at its HOME VIEW (a path spelled through a firmlink or a bind mount of a home, respelled
|
|
199
|
-
* at the home)
|
|
200
|
-
*
|
|
201
|
-
*
|
|
205
|
+
* at the home). The views read the home list the boundary's rows were compiled under when the input names it
|
|
206
|
+
* ({@link ShellReadJudgeInput.readDenyHomes}); without it this judgment is its own placement — the environment's declared
|
|
207
|
+
* home and the account home the account database answers once, for this call (`readDenyHomesOf`'s homes). Every home
|
|
208
|
+
* beside the declared one waits at most a short bound of its own.
|
|
202
209
|
*
|
|
203
210
|
* It carries NO deadline. Bounding an environment-facing wait and substituting a fail-closed verdict is the
|
|
204
211
|
* gate FOLD's policy on the gate's one deadline seat; the station has never held one on either entry, and a
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { errorResult } from "../../core/tools.js";
|
|
2
2
|
import { BASH_READONLY_CONFINEMENT_NOTE } from "./fs-shared.js";
|
|
3
3
|
import { isAbsoluteForFamily, normalizeAbsPathLexically, pathFamilyOf, violationDetails, withinAnyRoot } from "./safety.js";
|
|
4
|
-
import { fitMiddle, READ_DENY_SENTENCE_PART_MAX, readDenySentence } from "./read-deny.js";
|
|
4
|
+
import { checkedReadDenyHomes, fitMiddle, READ_DENY_SENTENCE_PART_MAX, readDenySentence } from "./read-deny.js";
|
|
5
5
|
import { NOT_AUTO_ALLOWED, programPositionRefusalSentence, readProgramPosition } from "./bash-program-position.js";
|
|
6
6
|
import { bashClassifyDefaultAllow } from "./bash-readonly-classifier.js";
|
|
7
7
|
import { planShellReads } from "./shell-read-plan.js";
|
|
@@ -327,7 +327,7 @@ async function runShellReadStation(tool, command, declared, seat, readers, estab
|
|
|
327
327
|
}
|
|
328
328
|
export async function judgeShellRead(input) {
|
|
329
329
|
const readers = input.readers ?? new Set(bashClassifyDefaultAllow());
|
|
330
|
-
const run = await runShellReadStation(input.tool ?? "Bash", input.command, input.boundary, input.seat, readers, createShellReadEstablisher(input.env, input.boundary.roots, { homeViews: homeViewsAt(input.env, declaredReadDenyHomes(input.env)) }), input.env, input.signal);
|
|
330
|
+
const run = await runShellReadStation(input.tool ?? "Bash", input.command, input.boundary, input.seat, readers, createShellReadEstablisher(input.env, input.boundary.roots, { homeViews: homeViewsAt(input.env, input.readDenyHomes === undefined ? declaredReadDenyHomes(input.env) : checkedReadDenyHomes(input.readDenyHomes)) }), input.env, input.signal);
|
|
331
331
|
const offer = normalizeReadRootCandidate(run.verdict.readRootCandidate);
|
|
332
332
|
return {
|
|
333
333
|
plan: run.plan,
|
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": 2558,
|
|
5
5
|
"exports": {
|
|
6
6
|
"A2ATaskState": "type",
|
|
7
7
|
"A2ATaskStateReversal": "type",
|
|
@@ -860,6 +860,7 @@
|
|
|
860
860
|
"ORG_UNAVAILABLE_DECISION_REASON": "variable",
|
|
861
861
|
"ORIGIN_IMPLIES_REAL_APPROVAL": "variable",
|
|
862
862
|
"OUTPUT_EFFICIENCY": "variable",
|
|
863
|
+
"OUTPUT_STYLE_NAME_MAX": "variable",
|
|
863
864
|
"OffCapabilityModel": "interface",
|
|
864
865
|
"OnAsk": "type",
|
|
865
866
|
"OnElicit": "type",
|
|
@@ -943,6 +944,7 @@
|
|
|
943
944
|
"PROJECT_ID_HINTS_FILE": "variable",
|
|
944
945
|
"PROJECT_ID_REGEX": "variable",
|
|
945
946
|
"PROJECT_MARKER_PATH": "variable",
|
|
947
|
+
"PROMPT_BLOCK_CAUSES": "variable",
|
|
946
948
|
"PROTOCOL_TABLE": "variable",
|
|
947
949
|
"PROVIDER_ECHO_SHAPE": "variable",
|
|
948
950
|
"PackSectionDeclaration": "interface",
|
|
@@ -1075,6 +1077,7 @@
|
|
|
1075
1077
|
"PromptArtifactSource": "interface",
|
|
1076
1078
|
"PromptArtifactStore": "interface",
|
|
1077
1079
|
"PromptBlock": "interface",
|
|
1080
|
+
"PromptBlockCause": "type",
|
|
1078
1081
|
"PromptCacheClass": "type",
|
|
1079
1082
|
"PromptCacheReport": "interface",
|
|
1080
1083
|
"PromptCarrier": "type",
|
|
@@ -1316,6 +1319,7 @@
|
|
|
1316
1319
|
"SESSION_LOG_DIGEST_SCHEME": "variable",
|
|
1317
1320
|
"SETTLEMENT_IS_REFUSAL": "variable",
|
|
1318
1321
|
"SETTLEMENT_KINDS": "variable",
|
|
1322
|
+
"SETTLEMENT_PARTIES": "variable",
|
|
1319
1323
|
"SHARED_MEMORY_LIST_PAGE_SIZE": "variable",
|
|
1320
1324
|
"SHARED_MEMORY_READ_CAP_BYTES": "variable",
|
|
1321
1325
|
"SHELL_READ_DECISION": "variable",
|
|
@@ -1398,6 +1402,7 @@
|
|
|
1398
1402
|
"SessionWriteOptions": "interface",
|
|
1399
1403
|
"Settlement": "type",
|
|
1400
1404
|
"SettlementKind": "type",
|
|
1405
|
+
"SettlementParty": "type",
|
|
1401
1406
|
"SharedAbortScope": "class",
|
|
1402
1407
|
"SharedMemoryDocumentEntry": "interface",
|
|
1403
1408
|
"SharedMemoryFixture": "interface",
|
|
@@ -1538,6 +1543,7 @@
|
|
|
1538
1543
|
"TeamResult": "interface",
|
|
1539
1544
|
"TeamRole": "type",
|
|
1540
1545
|
"TeamTurn": "interface",
|
|
1546
|
+
"TerminalBlockedDetail": "interface",
|
|
1541
1547
|
"TerminalCause": "type",
|
|
1542
1548
|
"TerminalClaimIntent": "type",
|
|
1543
1549
|
"TerminalClaimOutcome": "type",
|
|
@@ -2098,6 +2104,7 @@
|
|
|
2098
2104
|
"isDeclaredWrite": "function",
|
|
2099
2105
|
"isDelegatedAgentTerminal": "function",
|
|
2100
2106
|
"isDeniedBy": "function",
|
|
2107
|
+
"isEngineRefusal": "variable",
|
|
2101
2108
|
"isFreshPeerRow": "function",
|
|
2102
2109
|
"isFullyReadable": "function",
|
|
2103
2110
|
"isGateKind": "function",
|
|
@@ -2117,6 +2124,7 @@
|
|
|
2117
2124
|
"isPersistedRuleMandate": "function",
|
|
2118
2125
|
"isPersonalScope": "function",
|
|
2119
2126
|
"isProcessLive": "function",
|
|
2127
|
+
"isPromptBlockCause": "function",
|
|
2120
2128
|
"isProtectedWrite": "function",
|
|
2121
2129
|
"isProviderEchoShape": "function",
|
|
2122
2130
|
"isQuestionUnavailable": "function",
|
|
@@ -2128,6 +2136,7 @@
|
|
|
2128
2136
|
"isSelfOrchestrationActive": "function",
|
|
2129
2137
|
"isSessionConflict": "function",
|
|
2130
2138
|
"isSettlementKind": "function",
|
|
2139
|
+
"isSettlementParty": "function",
|
|
2131
2140
|
"isSuspendable": "function",
|
|
2132
2141
|
"isSwappableDepSeat": "function",
|
|
2133
2142
|
"isSystemInjectionPriority": "function",
|
|
@@ -2326,6 +2335,7 @@
|
|
|
2326
2335
|
"reasoningEffortLevelsOf": "function",
|
|
2327
2336
|
"rebuildAutoModeDecider": "function",
|
|
2328
2337
|
"rebuildStrictControlPlaneLedger": "function",
|
|
2338
|
+
"receiveHookResult": "function",
|
|
2329
2339
|
"reconcileInterruptedSession": "function",
|
|
2330
2340
|
"reconcileMemoryEntries": "function",
|
|
2331
2341
|
"reconcileParkedAgents": "function",
|
|
@@ -3410,6 +3420,7 @@
|
|
|
3410
3420
|
"ORG_UNAVAILABLE_DECISION_REASON": "advanced",
|
|
3411
3421
|
"ORIGIN_IMPLIES_REAL_APPROVAL": "advanced",
|
|
3412
3422
|
"OUTPUT_EFFICIENCY": "advanced",
|
|
3423
|
+
"OUTPUT_STYLE_NAME_MAX": "advanced",
|
|
3413
3424
|
"OffCapabilityModel": "advanced",
|
|
3414
3425
|
"OnAsk": "advanced",
|
|
3415
3426
|
"OnElicit": "advanced",
|
|
@@ -3493,6 +3504,7 @@
|
|
|
3493
3504
|
"PROJECT_ID_HINTS_FILE": "advanced",
|
|
3494
3505
|
"PROJECT_ID_REGEX": "advanced",
|
|
3495
3506
|
"PROJECT_MARKER_PATH": "advanced",
|
|
3507
|
+
"PROMPT_BLOCK_CAUSES": "advanced",
|
|
3496
3508
|
"PROTOCOL_TABLE": "advanced",
|
|
3497
3509
|
"PROVIDER_ECHO_SHAPE": "advanced",
|
|
3498
3510
|
"PackSectionDeclaration": "advanced",
|
|
@@ -3625,6 +3637,7 @@
|
|
|
3625
3637
|
"PromptArtifactSource": "advanced",
|
|
3626
3638
|
"PromptArtifactStore": "advanced",
|
|
3627
3639
|
"PromptBlock": "advanced",
|
|
3640
|
+
"PromptBlockCause": "advanced",
|
|
3628
3641
|
"PromptCacheClass": "advanced",
|
|
3629
3642
|
"PromptCacheReport": "advanced",
|
|
3630
3643
|
"PromptCarrier": "advanced",
|
|
@@ -3866,6 +3879,7 @@
|
|
|
3866
3879
|
"SESSION_LOG_DIGEST_SCHEME": "internal",
|
|
3867
3880
|
"SETTLEMENT_IS_REFUSAL": "advanced",
|
|
3868
3881
|
"SETTLEMENT_KINDS": "advanced",
|
|
3882
|
+
"SETTLEMENT_PARTIES": "advanced",
|
|
3869
3883
|
"SHARED_MEMORY_LIST_PAGE_SIZE": "advanced",
|
|
3870
3884
|
"SHARED_MEMORY_READ_CAP_BYTES": "advanced",
|
|
3871
3885
|
"SHELL_READ_DECISION": "advanced",
|
|
@@ -3948,6 +3962,7 @@
|
|
|
3948
3962
|
"SessionWriteOptions": "stable",
|
|
3949
3963
|
"Settlement": "advanced",
|
|
3950
3964
|
"SettlementKind": "stable",
|
|
3965
|
+
"SettlementParty": "advanced",
|
|
3951
3966
|
"SharedAbortScope": "advanced",
|
|
3952
3967
|
"SharedMemoryDocumentEntry": "advanced",
|
|
3953
3968
|
"SharedMemoryFixture": "advanced",
|
|
@@ -4088,6 +4103,7 @@
|
|
|
4088
4103
|
"TeamResult": "advanced",
|
|
4089
4104
|
"TeamRole": "advanced",
|
|
4090
4105
|
"TeamTurn": "advanced",
|
|
4106
|
+
"TerminalBlockedDetail": "advanced",
|
|
4091
4107
|
"TerminalCause": "advanced",
|
|
4092
4108
|
"TerminalClaimIntent": "advanced",
|
|
4093
4109
|
"TerminalClaimOutcome": "advanced",
|
|
@@ -4648,6 +4664,7 @@
|
|
|
4648
4664
|
"isDeclaredWrite": "advanced",
|
|
4649
4665
|
"isDelegatedAgentTerminal": "advanced",
|
|
4650
4666
|
"isDeniedBy": "advanced",
|
|
4667
|
+
"isEngineRefusal": "advanced",
|
|
4651
4668
|
"isFreshPeerRow": "advanced",
|
|
4652
4669
|
"isFullyReadable": "advanced",
|
|
4653
4670
|
"isGateKind": "advanced",
|
|
@@ -4667,6 +4684,7 @@
|
|
|
4667
4684
|
"isPersistedRuleMandate": "advanced",
|
|
4668
4685
|
"isPersonalScope": "advanced",
|
|
4669
4686
|
"isProcessLive": "advanced",
|
|
4687
|
+
"isPromptBlockCause": "advanced",
|
|
4670
4688
|
"isProtectedWrite": "advanced",
|
|
4671
4689
|
"isProviderEchoShape": "advanced",
|
|
4672
4690
|
"isQuestionUnavailable": "advanced",
|
|
@@ -4678,6 +4696,7 @@
|
|
|
4678
4696
|
"isSelfOrchestrationActive": "advanced",
|
|
4679
4697
|
"isSessionConflict": "stable",
|
|
4680
4698
|
"isSettlementKind": "advanced",
|
|
4699
|
+
"isSettlementParty": "advanced",
|
|
4681
4700
|
"isSuspendable": "advanced",
|
|
4682
4701
|
"isSwappableDepSeat": "advanced",
|
|
4683
4702
|
"isSystemInjectionPriority": "advanced",
|
|
@@ -4876,6 +4895,7 @@
|
|
|
4876
4895
|
"reasoningEffortLevelsOf": "advanced",
|
|
4877
4896
|
"rebuildAutoModeDecider": "advanced",
|
|
4878
4897
|
"rebuildStrictControlPlaneLedger": "advanced",
|
|
4898
|
+
"receiveHookResult": "advanced",
|
|
4879
4899
|
"reconcileInterruptedSession": "advanced",
|
|
4880
4900
|
"reconcileMemoryEntries": "advanced",
|
|
4881
4901
|
"reconcileParkedAgents": "advanced",
|