@sema-agent/client-core 0.93.0 → 0.94.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 +261 -0
- package/README.md +31 -18
- package/dist/adapt/arms.js +8 -5
- package/dist/adapter/downstream/terminalToSdkResult.js +2 -3
- package/dist/agentSession/engineSessionBackgroundStop.js +2 -1
- package/dist/agentsWireCaps.d.ts +15 -0
- package/dist/agentsWireCaps.js +111 -1
- package/dist/approvalReachWire.d.ts +18 -0
- package/dist/approvalReachWire.js +58 -0
- package/dist/approvalsStreamLiveCapability.js +16 -11
- package/dist/callerCwdCapability.d.ts +16 -0
- package/dist/callerCwdCapability.js +47 -0
- package/dist/controlRouter.js +3 -10
- package/dist/coreValuePorts.d.ts +64 -1
- package/dist/coreValuePorts.js +30 -0
- package/dist/detachWire.d.ts +1 -4
- package/dist/detachWire.js +1 -1
- package/dist/deviceExecutorManagementCapability.js +39 -34
- package/dist/deviceFlowPolling.d.ts +5 -0
- package/dist/deviceFlowPolling.js +28 -0
- package/dist/displayUntrusted.js +652 -21
- package/dist/engineErrorCodes.d.ts +5 -1
- package/dist/engineErrorCodes.js +9 -12
- package/dist/engineNoticeCodes.d.ts +22 -2
- package/dist/engineNoticeCodes.js +73 -6
- package/dist/engineRefusedToolName.d.ts +1 -0
- package/dist/engineRefusedToolName.js +8 -0
- package/dist/executionLaneCapability.js +14 -9
- package/dist/fileHistoryCaptureCapability.js +14 -9
- package/dist/fileHistoryLegNotice.d.ts +11 -0
- package/dist/fileHistoryLegNotice.js +50 -13
- package/dist/fleet/fleetLedger.js +5 -0
- package/dist/gateOutcome.d.ts +2 -1
- package/dist/gateOutcome.js +3 -0
- package/dist/gateVocabulary.js +1 -1
- package/dist/generated/engineAskFaceTables.d.ts +3 -0
- package/dist/generated/engineAskFaceTables.js +12 -0
- package/dist/generated/engineFactTables.d.ts +4 -2
- package/dist/generated/engineFactTables.js +13 -0
- package/dist/generated/engineNoticeTables.d.ts +5 -0
- package/dist/generated/engineNoticeTables.js +7 -0
- package/dist/generated/sdkFactTables.d.ts +3 -0
- package/dist/generated/sdkFactTables.js +17 -0
- package/dist/generated/settingsSchemaTables.d.ts +3 -0
- package/dist/generated/settingsSchemaTables.js +3 -0
- package/dist/headlessPermissionModeWire.d.ts +2 -2
- package/dist/headlessPermissionModeWire.js +11 -21
- package/dist/hitl/approvalHolds.d.ts +36 -0
- package/dist/hitl/approvalHolds.js +89 -0
- package/dist/hitl/approvalOutcomeNote.js +2 -1
- package/dist/hitl/approvalResolution.d.ts +3 -2
- package/dist/hitl/approvalResolution.js +21 -0
- package/dist/hitl/approvalsFeed.js +5 -0
- package/dist/hitl/askGateWire.js +3 -0
- package/dist/hitl/automaticAnswerVerdict.d.ts +8 -2
- package/dist/hitl/automaticAnswerVerdict.js +69 -21
- package/dist/hitl/decisionRefusal.d.ts +19 -0
- package/dist/hitl/decisionRefusal.js +63 -0
- package/dist/hitl/frameRouter.d.ts +10 -0
- package/dist/hitl/frameRouter.js +59 -3
- package/dist/hitl/gateLedger.d.ts +3 -0
- package/dist/hitl/gateLedger.js +17 -0
- package/dist/hitl/hitlBridge.d.ts +2 -2
- package/dist/hitl/hitlBridge.js +8 -10
- package/dist/hitl/hitlHostSurface.d.ts +6 -0
- package/dist/hitl/hitlHostSurface.js +25 -4
- package/dist/hitl/localAllowRule.js +2 -1
- package/dist/hitl/noAllowCause.d.ts +9 -0
- package/dist/hitl/noAllowCause.js +26 -0
- package/dist/hitl/parkResolver.js +6 -3
- package/dist/hitl/parkRowBirthWait.js +2 -1
- package/dist/hitl/persistedRulesWire.d.ts +6 -1
- package/dist/hitl/persistedRulesWire.js +12 -4
- package/dist/hitl/planReviewWire.d.ts +0 -1
- package/dist/hitl/planReviewWire.js +30 -9
- package/dist/hitl/sessionPolicyDeliverable.d.ts +1 -1
- package/dist/hitl/sessionPolicyDeliverable.js +3 -8
- package/dist/hitl/sessionPolicyWire.js +1 -1
- package/dist/hitl/toolApprovalWire.d.ts +37 -2
- package/dist/hitl/toolApprovalWire.js +392 -13
- package/dist/humanTurnRead.d.ts +15 -1
- package/dist/humanTurnRead.js +28 -2
- package/dist/index.d.ts +18 -6
- package/dist/index.js +14 -5
- package/dist/limitsWire.d.ts +0 -1
- package/dist/limitsWire.js +2 -10
- package/dist/liveModelCatalog.d.ts +14 -0
- package/dist/liveModelCatalog.js +61 -0
- package/dist/mcpProbeCapability.js +14 -9
- package/dist/mcpReconnect.js +13 -8
- package/dist/memoryComplianceCapability.js +15 -10
- package/dist/memoryOriginCapability.js +15 -10
- package/dist/modelIdentityResolvability.d.ts +4 -2
- package/dist/modelIdentityResolvability.js +31 -4
- package/dist/outputStyleSeatCapability.d.ts +16 -0
- package/dist/outputStyleSeatCapability.js +47 -0
- package/dist/ownKey.d.ts +1 -0
- package/dist/ownKey.js +10 -0
- package/dist/peerLaneCapability.js +16 -11
- package/dist/permissionRuleIssue.js +1 -1
- package/dist/permissionRulesWriteCapability.js +16 -11
- package/dist/permissionsAllowGrantCapability.d.ts +2 -0
- package/dist/permissionsAllowGrantCapability.js +38 -16
- package/dist/permissionsDeclaration.d.ts +10 -1
- package/dist/permissionsDeclaration.js +97 -15
- package/dist/protocolSegment.d.ts +1 -0
- package/dist/protocolSegment.js +13 -1
- package/dist/request/taskRequest.d.ts +11 -3
- package/dist/request/taskRequest.js +13 -1
- package/dist/resultFrameKeys.d.ts +4 -0
- package/dist/resultFrameKeys.js +13 -0
- package/dist/resumeRefusalCopy.js +6 -16
- package/dist/retryStatus.js +6 -4
- package/dist/rewindArchiveCapability.js +13 -8
- package/dist/{hitl/rosterMountedNames.d.ts → rosterMountedNames.d.ts} +1 -1
- package/dist/runCancelContext.js +2 -1
- package/dist/sealedKeyCapability.js +19 -14
- package/dist/seatContract.d.ts +33 -5
- package/dist/seatContract.js +143 -2
- package/dist/sessionPolicyCapability.js +15 -10
- package/dist/sessionReadRedactionCapability.d.ts +16 -0
- package/dist/sessionReadRedactionCapability.js +47 -0
- package/dist/sessionSyncFileHistoryCapability.js +14 -9
- package/dist/skillToolListsCapability.js +14 -9
- package/dist/sqlEngineCapability.js +18 -13
- package/dist/steerPriorityCapability.js +21 -16
- package/dist/subagent/agentStateDetail.d.ts +1 -0
- package/dist/subagent/agentStateDetail.js +41 -0
- package/dist/subagent/engineCompactWire.d.ts +15 -0
- package/dist/subagent/engineCompactWire.js +75 -13
- package/dist/supportFloor.js +1 -1
- package/dist/taskRequestWords.d.ts +2 -4
- package/dist/taskRequestWords.js +3 -2
- package/dist/types/engineState.d.ts +1 -1
- package/dist/userAttachmentEnvelope.d.ts +22 -1
- package/dist/userAttachmentEnvelope.js +90 -2
- package/dist/userInvokedSkillsCapability.js +14 -9
- package/dist/webSearchBackendCapability.js +21 -16
- package/dist/wireErrorTriage.d.ts +11 -0
- package/dist/wireErrorTriage.js +35 -0
- package/dist/wireFailureShape.d.ts +6 -0
- package/dist/wireFailureShape.js +30 -3
- package/dist/wireRefusalCopy.d.ts +6 -1
- package/dist/wireRefusalCopy.js +22 -8
- package/dist/wiringInstructionsAttribution.d.ts +10 -0
- package/dist/wiringInstructionsAttribution.js +67 -0
- package/dist/workflowClient.js +22 -1
- package/dist/workflowsJournalCapability.js +14 -9
- package/dist/writeProtectionCapability.js +28 -23
- package/docs/INTEGRATION-CLIENTS.md +817 -45
- package/package.json +5 -5
- package/dist/askSurvivesStandingAnswer.d.ts +0 -13
- package/dist/askSurvivesStandingAnswer.js +0 -53
- package/dist/hitl/askSurvivesPosture.d.ts +0 -20
- package/dist/hitl/askSurvivesPosture.js +0 -48
- /package/dist/{hitl/rosterMountedNames.js → rosterMountedNames.js} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -57,6 +57,8 @@ export * from './skillToolListsCapability.js';
|
|
|
57
57
|
export * from './steerPriorityCapability.js';
|
|
58
58
|
export * from './permissionModesCapability.js';
|
|
59
59
|
export * from './approvalDecidedByCapability.js';
|
|
60
|
+
export * from './sessionReadRedactionCapability.js';
|
|
61
|
+
export * from './outputStyleSeatCapability.js';
|
|
60
62
|
export * from './mcpProbeWire.js';
|
|
61
63
|
export * from './effectiveFacts.js';
|
|
62
64
|
export * from './gateOutcome.js';
|
|
@@ -86,7 +88,7 @@ export * from './engineWireSdk.js';
|
|
|
86
88
|
export * from './classifierVerdictWire.js';
|
|
87
89
|
export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminderTag.js';
|
|
88
90
|
export { findSystemReminderOpenTag, type SystemReminderOpenTagSpan } from './systemReminderTag.js';
|
|
89
|
-
export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED, CAPABILITY_SELF_ORCHESTRATION_REQUIRED, CONFIG_DELEGATION_ENTRY_CAPS, CONFIG_IMAGE_INVALID, CONFIG_LEGACY_TOOL_NAME, CONFIG_LIMIT_INVALID, CONFIG_LIMIT_UNKNOWN_KEY, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_REFUSAL_CODES, CONFIG_STRATEGY_FIND_LIMIT_INVALID, CONFIG_STRATEGY_MAX_SIZE_INVALID, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_WORKFLOW_HOST_UNKNOWN, DECIDE_WORKFLOW_LANE_CODES, DECIDE_WORKFLOW_PARK_FORKED, DECIDE_WORKFLOW_PARKS_UNREADABLE, DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED, DELEGATION_CAP_CODES, DELEGATION_CONCURRENCY_CAP, DELEGATION_SESSION_CAP, delegationCapDispositionOf, DRAINING_ERROR_CODE, ENGINE_STOP_REASONS, engineStopReasonToCc, ENV_LIFETIME_EXPIRED, FLEET_LEASE_UNAVAILABLE, GATE_PARKED_ERROR_CODE, imageInvalidFailureNoteOf, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDelegationCapCode, isInterruptedToolEndCode, isLimitsExceededCode, isRewindFamilyCode, isRulesRefusalCode, isStatusDerivedCoarseCode, isWorkflowParkRefusalCode, LIMITS_MAX_COST_EXCEEDED, LIMITS_MAX_TOKENS_EXCEEDED, LIMITS_MAX_TURNS_EXCEEDED, LIMITS_MAX_WALLTIME_EXCEEDED, MCP_SERVER_REVOKED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, RESUME_AT_ERROR_CODE_PREFIX, RESUME_CONTEXT_UNAVAILABLE, RESUME_ENV_FAILED, RESUME_PLACEMENT_MISMATCH, RESUME_POLICY_FOLD_CODE, RESUME_PREFLIGHT_REJECTED, RESUME_REOPEN_CODES, RESUME_RETRY_LATER_CODES, RESUME_TOOL_CONTRACT_MISMATCH, RESUME_TOOL_UNAVAILABLE, RESUME_USAGE_WINDOW_EXHAUSTED, REWIND_ERROR_CODE_PREFIXES, RULES_LEGACY_TOOL_NAME, RUN_DEATH_VERDICT_CODES, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STATUS_DERIVED_COARSE_CODES, STOP_CONFLICT_CODES, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, WORKFLOW_PARK_REFUSAL_CODES, } from './engineErrorCodes.js';
|
|
91
|
+
export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED, CAPABILITY_SELF_ORCHESTRATION_REQUIRED, CONFIG_AGENT_UNKNOWN_TOOL, CONFIG_DELEGATION_ENTRY_CAPS, CONFIG_IMAGE_INVALID, CONFIG_LEGACY_TOOL_NAME, CONFIG_LIMIT_INVALID, CONFIG_LIMIT_UNKNOWN_KEY, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_OUTPUT_STYLE_INVALID, CONFIG_REFUSAL_CODES, CONFIG_STRATEGY_FIND_LIMIT_INVALID, CONFIG_STRATEGY_MAX_SIZE_INVALID, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_WORKFLOW_HOST_UNKNOWN, DECIDE_WORKFLOW_LANE_CODES, DECIDE_WORKFLOW_PARK_FORKED, DECIDE_WORKFLOW_PARKS_UNREADABLE, DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED, DELEGATION_CAP_CODES, DELEGATION_CONCURRENCY_CAP, DELEGATION_SESSION_CAP, delegationCapDispositionOf, DRAINING_ERROR_CODE, ENGINE_STOP_REASONS, engineStopReasonToCc, ENV_LIFETIME_EXPIRED, FLEET_LEASE_UNAVAILABLE, GATE_PARKED_ERROR_CODE, imageInvalidFailureNoteOf, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDelegationCapCode, isInterruptedToolEndCode, isLimitsExceededCode, isRewindFamilyCode, isRulesRefusalCode, isStatusDerivedCoarseCode, isWorkflowParkRefusalCode, LIMITS_MAX_COST_EXCEEDED, LIMITS_MAX_TOKENS_EXCEEDED, LIMITS_MAX_TURNS_EXCEEDED, LIMITS_MAX_WALLTIME_EXCEEDED, MCP_SERVER_REVOKED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, REQUEST_AUTONOMY_LANE_REFUSED, RESUME_AT_ERROR_CODE_PREFIX, RESUME_CONTEXT_UNAVAILABLE, RESUME_ENV_FAILED, RESUME_PLACEMENT_MISMATCH, RESUME_POLICY_FOLD_CODE, RESUME_PREFLIGHT_REJECTED, RESUME_REOPEN_CODES, RESUME_RETRY_LATER_CODES, RESUME_TOOL_CONTRACT_MISMATCH, RESUME_TOOL_UNAVAILABLE, RESUME_USAGE_WINDOW_EXHAUSTED, REWIND_ERROR_CODE_PREFIXES, RULES_LEGACY_TOOL_NAME, RUN_DEATH_VERDICT_CODES, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STATUS_DERIVED_COARSE_CODES, STOP_CONFLICT_CODES, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, WORKFLOW_PARK_REFUSAL_CODES, } from './engineErrorCodes.js';
|
|
90
92
|
export type { DelegationCapDisposition, ModelFallbackReason, OperatorGateRefusal, RunDeathVerdictCode, } from './engineErrorCodes.js';
|
|
91
93
|
export * from './agentsWireCaps.js';
|
|
92
94
|
export * from './attachmentsWireCaps.js';
|
|
@@ -105,6 +107,9 @@ export * from './rewindArchiveCapability.js';
|
|
|
105
107
|
export * from './fileHistoryCaptureCapability.js';
|
|
106
108
|
export { FILE_HISTORY_LEG_VERDICTS, fileHistoryLegNoticeVerdict, fileHistoryLegNoticeSentence, fileHistoryDeclarationOfBody, createFileHistoryDeclarationLedger, } from './fileHistoryLegNotice.js';
|
|
107
109
|
export type { FileHistoryDeclarationFact, FileHistoryLegNoticeVerdict, FileHistoryLegNoticeInput, FileHistoryDeclarationLedger } from './fileHistoryLegNotice.js';
|
|
110
|
+
export * from './callerCwdCapability.js';
|
|
111
|
+
export { legCwdOfBody, engineSelectedInstructionsFile } from './wiringInstructionsAttribution.js';
|
|
112
|
+
export type { InstructionsAttributionInput } from './wiringInstructionsAttribution.js';
|
|
108
113
|
export * from './sealedKeyCapability.js';
|
|
109
114
|
export * from './storePostureCapability.js';
|
|
110
115
|
export * from './centerWiringCapability.js';
|
|
@@ -124,13 +129,16 @@ export * from './adapter/downstream/turnUsageToModelUsage.js';
|
|
|
124
129
|
export * from './adapter/downstream/eventToSdkMessage.js';
|
|
125
130
|
export type { WiringManifestView, WiringManifestSections, WiringManifestFleetView } from './adapter/downstream/wiringManifestView.js';
|
|
126
131
|
export * from './adapter/downstream/terminalToSdkResult.js';
|
|
132
|
+
export { resultErrorCodeOf, resultSelectedModelOf, resultSalvagedResultOf, resultParkFailedReasonOf } from './resultFrameKeys.js';
|
|
127
133
|
export * from './adapter/runStream.js';
|
|
128
134
|
export * from './adapter/activeRunSelfHeal.js';
|
|
129
135
|
export * from './request/taskRequest.js';
|
|
130
136
|
export { disableSkillsDeclaration, disableSkillsDeclarationSettled } from './disableSkillsWire.js';
|
|
137
|
+
export { approvalReachDeclaration, approvalReachDeclarationSettled } from './approvalReachWire.js';
|
|
138
|
+
export type { ApprovalReachDeclaration, ApprovalReachWithheldCause, ApprovalReachWord } from './approvalReachWire.js';
|
|
131
139
|
export type { DisableSkillsDeclaration } from './disableSkillsWire.js';
|
|
132
|
-
export { PERMISSIONS_KEPT_REASONS, permissionsDeclaration, permissionsDeclarationReport } from './permissionsDeclaration.js';
|
|
133
|
-
export type { PermissionsDeclaration, PermissionsDeclarationBuckets, PermissionsDeclarationInput, PermissionsDeclarationReport, PermissionsKeptReason, PermissionsKeptRule, PermissionsRewrittenRule, PermissionsUncheckedRule, PermissionsUnreachableRule, WireRuleOrigin, WireRuleOrigins, } from './permissionsDeclaration.js';
|
|
140
|
+
export { PERMISSIONS_KEPT_REASONS, WIRE_RULE_TRUST_ORDER, permissionsDeclaration, permissionsDeclarationReport } from './permissionsDeclaration.js';
|
|
141
|
+
export type { PermissionsClientOwnedStatement, PermissionsDeclaration, PermissionsDeclarationBuckets, PermissionsDeclarationInput, PermissionsDeclarationReport, PermissionsKeptReason, PermissionsKeptRule, PermissionsRewrittenRule, PermissionsUncheckedRule, PermissionsUnreachableRule, WireRuleOrigin, WireRuleOrigins, } from './permissionsDeclaration.js';
|
|
134
142
|
export * from './clientSlice.js';
|
|
135
143
|
export * from './host.js';
|
|
136
144
|
export { abortableSleep } from './abortableSleep.js';
|
|
@@ -158,6 +166,7 @@ export type { RetainWithoutWakeInput, RetainWithoutWakeVerdict, SubagentOwnerCon
|
|
|
158
166
|
export * from './subagent/engineTaskHandleWire.js';
|
|
159
167
|
export * from './subagent/engineCompactWire.js';
|
|
160
168
|
export * from './subagent/engineSubagentTail.js';
|
|
169
|
+
export { subagentStateDetail } from './subagent/agentStateDetail.js';
|
|
161
170
|
export { __resetBgOwnerAbsenceForTests, } from './subagent/subagentOwnerAbsence.js';
|
|
162
171
|
export * from './engineSessionParam.js';
|
|
163
172
|
export { engineWireTarget, engineWireTargetFor, installEngineWireTarget, installEngineWireTargetFor, } from './engineWireTarget.js';
|
|
@@ -171,6 +180,8 @@ export type { ToolHistoryMismatchRowKey } from './toolHistoryMismatch.js';
|
|
|
171
180
|
export { toolHistoryBadTurnSentence } from './toolHistoryBadTurn.js';
|
|
172
181
|
export { classifyRegistryConflict, isScopeGoneError } from './registryConflict.js';
|
|
173
182
|
export type { RegistryConflictClass } from './registryConflict.js';
|
|
183
|
+
export { deviceFlowPollingPlan } from './deviceFlowPolling.js';
|
|
184
|
+
export type { DeviceFlowPollingPlan } from './deviceFlowPolling.js';
|
|
174
185
|
export { createPromptDeliveryLedger, promptKnownUndelivered, withoutUndeliveredPrompts } from './promptDelivery.js';
|
|
175
186
|
export type { PromptDeliveryLedger, PromptDeliveryRecord } from './promptDelivery.js';
|
|
176
187
|
export { mintUserAttachmentEnvelope } from './userAttachmentEnvelope.js';
|
|
@@ -196,7 +207,6 @@ export { hookMatcherVerdict } from './hookMatcherVerdict.js';
|
|
|
196
207
|
export type { HookMatcherVerdict, HookMatcherUnjudgedReason } from './hookMatcherVerdict.js';
|
|
197
208
|
export { ASK_EVIDENCE_ABSENCE_VALUES, SYSTEM_INJECTION_PRIORITIES } from './engineClosedSets.js';
|
|
198
209
|
export { READ_DENY_BUILTIN_TIERS, READ_DENY_DEFAULT_TIERS, parseReadDenyBuiltinTiers, type ReadDenyBuiltinTiersParse } from './readDenyTiers.js';
|
|
199
|
-
export { MODE_ARBITRATION, askSurvivesStandingAnswer, type StandingAnswerVerdict } from './askSurvivesStandingAnswer.js';
|
|
200
210
|
export * from './liveInitToolFace.js';
|
|
201
211
|
export * from './printInitToolFace.js';
|
|
202
212
|
export * from './model/providerPresets.js';
|
|
@@ -228,8 +238,10 @@ export * from './hitl/approvalsFeed.js';
|
|
|
228
238
|
export * from './hitl/livePendingAsk.js';
|
|
229
239
|
export { replayedApprovalDisposition } from './hitl/replayedApproval.js';
|
|
230
240
|
export type { ReplayedApprovalDisposition, ReplayPendingBasis } from './hitl/replayedApproval.js';
|
|
231
|
-
export
|
|
232
|
-
export {
|
|
241
|
+
export { MODE_ARBITRATION, automaticAnswerVerdict, mandatedApprovalDetailOf, permissionRequestHookScope, type AutomaticAnswerLane, type AutomaticAnswerAskFace, type AutomaticAnswerFacts, type AutomaticAnswerRoad, type AutomaticAnswerUnknownWhy, type AutomaticAnswerVerdict, type PermissionRequestHookScope, } from './hitl/automaticAnswerVerdict.js';
|
|
242
|
+
export { classifyDecisionRefusal, liveAskPendingReading, decisionRefusalClosesOut, undeliverableDecisionContent, type DecisionRefusalStanding, type DecisionRefusalClassified, type LiveAskPendingReading, type UndeliverableDecisionEnd, type UndeliverableDecisionFacts, } from './hitl/decisionRefusal.js';
|
|
243
|
+
export { noAllowCauseOf, type NoAllowCause, type RuleLadderNoAllowFacts } from './hitl/noAllowCause.js';
|
|
244
|
+
export { policyDenyReason, type PolicyDenyLane, type PolicyDenyReasonFacts } from './hitl/frameRouter.js';
|
|
233
245
|
export { readApprovalAllowRuleShadow, approvalAllowRuleShadowed, type ApprovalAllowRuleShadow, type ApprovalAllowRuleShadowMember, type AllowRuleShadowedWireMember, } from './hitl/allowRuleShadow.js';
|
|
234
246
|
export { projectCrashConverged } from './hitl/crashConverged.js';
|
|
235
247
|
export type { ApprovalsListEnvelope, CrashConvergedOrphanState, CrashConvergedProjection, CrashConvergedRow } from './hitl/crashConverged.js';
|
package/dist/index.js
CHANGED
|
@@ -51,6 +51,8 @@ export * from './skillToolListsCapability.js';
|
|
|
51
51
|
export * from './steerPriorityCapability.js';
|
|
52
52
|
export * from './permissionModesCapability.js';
|
|
53
53
|
export * from './approvalDecidedByCapability.js';
|
|
54
|
+
export * from './sessionReadRedactionCapability.js';
|
|
55
|
+
export * from './outputStyleSeatCapability.js';
|
|
54
56
|
export * from './mcpProbeWire.js';
|
|
55
57
|
export * from './effectiveFacts.js';
|
|
56
58
|
export * from './gateOutcome.js';
|
|
@@ -77,7 +79,7 @@ export * from './engineWireSdk.js';
|
|
|
77
79
|
export * from './classifierVerdictWire.js';
|
|
78
80
|
export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminderTag.js';
|
|
79
81
|
export { findSystemReminderOpenTag } from './systemReminderTag.js';
|
|
80
|
-
export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED, CAPABILITY_SELF_ORCHESTRATION_REQUIRED, CONFIG_DELEGATION_ENTRY_CAPS, CONFIG_IMAGE_INVALID, CONFIG_LEGACY_TOOL_NAME, CONFIG_LIMIT_INVALID, CONFIG_LIMIT_UNKNOWN_KEY, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_REFUSAL_CODES, CONFIG_STRATEGY_FIND_LIMIT_INVALID, CONFIG_STRATEGY_MAX_SIZE_INVALID, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_WORKFLOW_HOST_UNKNOWN, DECIDE_WORKFLOW_LANE_CODES, DECIDE_WORKFLOW_PARK_FORKED, DECIDE_WORKFLOW_PARKS_UNREADABLE, DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED, DELEGATION_CAP_CODES, DELEGATION_CONCURRENCY_CAP, DELEGATION_SESSION_CAP, delegationCapDispositionOf, DRAINING_ERROR_CODE, ENGINE_STOP_REASONS, engineStopReasonToCc, ENV_LIFETIME_EXPIRED, FLEET_LEASE_UNAVAILABLE, GATE_PARKED_ERROR_CODE, imageInvalidFailureNoteOf, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDelegationCapCode, isInterruptedToolEndCode, isLimitsExceededCode, isRewindFamilyCode, isRulesRefusalCode, isStatusDerivedCoarseCode, isWorkflowParkRefusalCode, LIMITS_MAX_COST_EXCEEDED, LIMITS_MAX_TOKENS_EXCEEDED, LIMITS_MAX_TURNS_EXCEEDED, LIMITS_MAX_WALLTIME_EXCEEDED, MCP_SERVER_REVOKED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, RESUME_AT_ERROR_CODE_PREFIX, RESUME_CONTEXT_UNAVAILABLE, RESUME_ENV_FAILED, RESUME_PLACEMENT_MISMATCH, RESUME_POLICY_FOLD_CODE, RESUME_PREFLIGHT_REJECTED, RESUME_REOPEN_CODES, RESUME_RETRY_LATER_CODES, RESUME_TOOL_CONTRACT_MISMATCH, RESUME_TOOL_UNAVAILABLE, RESUME_USAGE_WINDOW_EXHAUSTED, REWIND_ERROR_CODE_PREFIXES, RULES_LEGACY_TOOL_NAME, RUN_DEATH_VERDICT_CODES, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STATUS_DERIVED_COARSE_CODES, STOP_CONFLICT_CODES, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, WORKFLOW_PARK_REFUSAL_CODES, } from './engineErrorCodes.js';
|
|
82
|
+
export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_OPERATOR_PRINCIPALS_REQUIRED, CAPABILITY_SELF_ORCHESTRATION_REQUIRED, CONFIG_AGENT_UNKNOWN_TOOL, CONFIG_DELEGATION_ENTRY_CAPS, CONFIG_IMAGE_INVALID, CONFIG_LEGACY_TOOL_NAME, CONFIG_LIMIT_INVALID, CONFIG_LIMIT_UNKNOWN_KEY, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_OUTPUT_STYLE_INVALID, CONFIG_REFUSAL_CODES, CONFIG_STRATEGY_FIND_LIMIT_INVALID, CONFIG_STRATEGY_MAX_SIZE_INVALID, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_WORKFLOW_HOST_UNKNOWN, DECIDE_WORKFLOW_LANE_CODES, DECIDE_WORKFLOW_PARK_FORKED, DECIDE_WORKFLOW_PARKS_UNREADABLE, DECIDE_WORKFLOW_REMEMBER_UNSUPPORTED, DELEGATION_CAP_CODES, DELEGATION_CONCURRENCY_CAP, DELEGATION_SESSION_CAP, delegationCapDispositionOf, DRAINING_ERROR_CODE, ENGINE_STOP_REASONS, engineStopReasonToCc, ENV_LIFETIME_EXPIRED, FLEET_LEASE_UNAVAILABLE, GATE_PARKED_ERROR_CODE, imageInvalidFailureNoteOf, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDelegationCapCode, isInterruptedToolEndCode, isLimitsExceededCode, isRewindFamilyCode, isRulesRefusalCode, isStatusDerivedCoarseCode, isWorkflowParkRefusalCode, LIMITS_MAX_COST_EXCEEDED, LIMITS_MAX_TOKENS_EXCEEDED, LIMITS_MAX_TURNS_EXCEEDED, LIMITS_MAX_WALLTIME_EXCEEDED, MCP_SERVER_REVOKED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, REQUEST_AUTONOMY_LANE_REFUSED, RESUME_AT_ERROR_CODE_PREFIX, RESUME_CONTEXT_UNAVAILABLE, RESUME_ENV_FAILED, RESUME_PLACEMENT_MISMATCH, RESUME_POLICY_FOLD_CODE, RESUME_PREFLIGHT_REJECTED, RESUME_REOPEN_CODES, RESUME_RETRY_LATER_CODES, RESUME_TOOL_CONTRACT_MISMATCH, RESUME_TOOL_UNAVAILABLE, RESUME_USAGE_WINDOW_EXHAUSTED, REWIND_ERROR_CODE_PREFIXES, RULES_LEGACY_TOOL_NAME, RUN_DEATH_VERDICT_CODES, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STATUS_DERIVED_COARSE_CODES, STOP_CONFLICT_CODES, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, WORKFLOW_PARK_REFUSAL_CODES, } from './engineErrorCodes.js';
|
|
81
83
|
export * from './agentsWireCaps.js';
|
|
82
84
|
export * from './attachmentsWireCaps.js';
|
|
83
85
|
export * from './clientContextWireCaps.js';
|
|
@@ -94,6 +96,8 @@ export * from './rewindWireCaps.js';
|
|
|
94
96
|
export * from './rewindArchiveCapability.js';
|
|
95
97
|
export * from './fileHistoryCaptureCapability.js';
|
|
96
98
|
export { FILE_HISTORY_LEG_VERDICTS, fileHistoryLegNoticeVerdict, fileHistoryLegNoticeSentence, fileHistoryDeclarationOfBody, createFileHistoryDeclarationLedger, } from './fileHistoryLegNotice.js';
|
|
99
|
+
export * from './callerCwdCapability.js';
|
|
100
|
+
export { legCwdOfBody, engineSelectedInstructionsFile } from './wiringInstructionsAttribution.js';
|
|
97
101
|
export * from './sealedKeyCapability.js';
|
|
98
102
|
export * from './storePostureCapability.js';
|
|
99
103
|
export * from './centerWiringCapability.js';
|
|
@@ -112,11 +116,13 @@ export * from './adapter/types.js';
|
|
|
112
116
|
export * from './adapter/downstream/turnUsageToModelUsage.js';
|
|
113
117
|
export * from './adapter/downstream/eventToSdkMessage.js';
|
|
114
118
|
export * from './adapter/downstream/terminalToSdkResult.js';
|
|
119
|
+
export { resultErrorCodeOf, resultSelectedModelOf, resultSalvagedResultOf, resultParkFailedReasonOf } from './resultFrameKeys.js';
|
|
115
120
|
export * from './adapter/runStream.js';
|
|
116
121
|
export * from './adapter/activeRunSelfHeal.js';
|
|
117
122
|
export * from './request/taskRequest.js';
|
|
118
123
|
export { disableSkillsDeclaration, disableSkillsDeclarationSettled } from './disableSkillsWire.js';
|
|
119
|
-
export {
|
|
124
|
+
export { approvalReachDeclaration, approvalReachDeclarationSettled } from './approvalReachWire.js';
|
|
125
|
+
export { PERMISSIONS_KEPT_REASONS, WIRE_RULE_TRUST_ORDER, permissionsDeclaration, permissionsDeclarationReport } from './permissionsDeclaration.js';
|
|
120
126
|
export * from './clientSlice.js';
|
|
121
127
|
export * from './host.js';
|
|
122
128
|
export { abortableSleep } from './abortableSleep.js';
|
|
@@ -142,6 +148,7 @@ export { __resetRetainWithoutWakeWarningForTests, auditRetainWithoutWake, classi
|
|
|
142
148
|
export * from './subagent/engineTaskHandleWire.js';
|
|
143
149
|
export * from './subagent/engineCompactWire.js';
|
|
144
150
|
export * from './subagent/engineSubagentTail.js';
|
|
151
|
+
export { subagentStateDetail } from './subagent/agentStateDetail.js';
|
|
145
152
|
export { __resetBgOwnerAbsenceForTests, } from './subagent/subagentOwnerAbsence.js';
|
|
146
153
|
export * from './engineSessionParam.js';
|
|
147
154
|
export { engineWireTarget, engineWireTargetFor, installEngineWireTarget, installEngineWireTargetFor, } from './engineWireTarget.js';
|
|
@@ -152,6 +159,7 @@ export * from './corruptSessionCopy.js';
|
|
|
152
159
|
export { classifyToolHistoryMismatch, readToolHistoryMismatchKey, resolveToolHistoryRewindTarget } from './toolHistoryMismatch.js';
|
|
153
160
|
export { toolHistoryBadTurnSentence } from './toolHistoryBadTurn.js';
|
|
154
161
|
export { classifyRegistryConflict, isScopeGoneError } from './registryConflict.js';
|
|
162
|
+
export { deviceFlowPollingPlan } from './deviceFlowPolling.js';
|
|
155
163
|
export { createPromptDeliveryLedger, promptKnownUndelivered, withoutUndeliveredPrompts } from './promptDelivery.js';
|
|
156
164
|
export { mintUserAttachmentEnvelope } from './userAttachmentEnvelope.js';
|
|
157
165
|
export { encodeHumanTurn, deliveredUuidsOf } from './humanTurn.js';
|
|
@@ -171,7 +179,6 @@ export { hookToolAliasesOf, canonicalHookToolName } from './hookToolAliases.js';
|
|
|
171
179
|
export { hookMatcherVerdict } from './hookMatcherVerdict.js';
|
|
172
180
|
export { ASK_EVIDENCE_ABSENCE_VALUES, SYSTEM_INJECTION_PRIORITIES } from './engineClosedSets.js';
|
|
173
181
|
export { READ_DENY_BUILTIN_TIERS, READ_DENY_DEFAULT_TIERS, parseReadDenyBuiltinTiers } from './readDenyTiers.js';
|
|
174
|
-
export { MODE_ARBITRATION, askSurvivesStandingAnswer } from './askSurvivesStandingAnswer.js';
|
|
175
182
|
export * from './liveInitToolFace.js';
|
|
176
183
|
export * from './printInitToolFace.js';
|
|
177
184
|
export * from './model/providerPresets.js';
|
|
@@ -200,8 +207,10 @@ export * from './hitl/sessionPolicyDeliverable.js';
|
|
|
200
207
|
export * from './hitl/approvalsFeed.js';
|
|
201
208
|
export * from './hitl/livePendingAsk.js';
|
|
202
209
|
export { replayedApprovalDisposition } from './hitl/replayedApproval.js';
|
|
203
|
-
export
|
|
204
|
-
export {
|
|
210
|
+
export { MODE_ARBITRATION, automaticAnswerVerdict, mandatedApprovalDetailOf, permissionRequestHookScope, } from './hitl/automaticAnswerVerdict.js';
|
|
211
|
+
export { classifyDecisionRefusal, liveAskPendingReading, decisionRefusalClosesOut, undeliverableDecisionContent, } from './hitl/decisionRefusal.js';
|
|
212
|
+
export { noAllowCauseOf } from './hitl/noAllowCause.js';
|
|
213
|
+
export { policyDenyReason } from './hitl/frameRouter.js';
|
|
205
214
|
export { readApprovalAllowRuleShadow, approvalAllowRuleShadowed, } from './hitl/allowRuleShadow.js';
|
|
206
215
|
export { projectCrashConverged } from './hitl/crashConverged.js';
|
|
207
216
|
export * from './hitl/crashConvergedNotice.js';
|
package/dist/limitsWire.d.ts
CHANGED
package/dist/limitsWire.js
CHANGED
|
@@ -39,14 +39,12 @@ function hasAnyLimit(l) {
|
|
|
39
39
|
}
|
|
40
40
|
export function parseLimitsArgv(argv) {
|
|
41
41
|
const limits = {};
|
|
42
|
-
const flaggedFlags = [];
|
|
43
42
|
const dl = lastFlagValue(argv, '--deadline');
|
|
44
43
|
if (dl.present) {
|
|
45
44
|
const n = dl.raw !== undefined ? parseIntInDomain(dl.raw, DEADLINE_SEC_MIN, DEADLINE_SEC_MAX) : null;
|
|
46
45
|
if (n === null)
|
|
47
46
|
return { ok: false, error: DEADLINE_USAGE };
|
|
48
47
|
limits.maxWalltimeMs = n * SEC_TO_MS;
|
|
49
|
-
flaggedFlags.push('--deadline');
|
|
50
48
|
}
|
|
51
49
|
const mt = lastFlagValue(argv, '--max-turns');
|
|
52
50
|
if (mt.present) {
|
|
@@ -54,7 +52,6 @@ export function parseLimitsArgv(argv) {
|
|
|
54
52
|
if (n === null)
|
|
55
53
|
return { ok: false, error: MAX_TURNS_USAGE };
|
|
56
54
|
limits.maxTurns = n;
|
|
57
|
-
flaggedFlags.push('--max-turns');
|
|
58
55
|
}
|
|
59
56
|
const mk = lastFlagValue(argv, '--max-tokens');
|
|
60
57
|
if (mk.present) {
|
|
@@ -62,13 +59,8 @@ export function parseLimitsArgv(argv) {
|
|
|
62
59
|
if (n === null)
|
|
63
60
|
return { ok: false, error: MAX_TOKENS_USAGE };
|
|
64
61
|
limits.maxOutputTokens = n;
|
|
65
|
-
flaggedFlags.push('--max-tokens');
|
|
66
62
|
}
|
|
67
|
-
return {
|
|
68
|
-
ok: true,
|
|
69
|
-
...(flaggedFlags.length > 0 ? { limits } : {}),
|
|
70
|
-
flaggedFlags,
|
|
71
|
-
};
|
|
63
|
+
return { ok: true, ...(hasAnyLimit(limits) ? { limits } : {}) };
|
|
72
64
|
}
|
|
73
65
|
export function headlessLimitsFromEnv(env = hostEnv()) {
|
|
74
66
|
const out = {};
|
|
@@ -109,5 +101,5 @@ export function limitsForPrint(argv, env = hostEnv()) {
|
|
|
109
101
|
if (!fromEnv.ok)
|
|
110
102
|
return { ok: false, error: fromEnv.error };
|
|
111
103
|
const merged = { ...(fromEnv.limits ?? {}), ...(parsed.limits ?? {}) };
|
|
112
|
-
return { ok: true, ...(hasAnyLimit(merged) ? { limits: merged } : {})
|
|
104
|
+
return { ok: true, ...(hasAnyLimit(merged) ? { limits: merged } : {}) };
|
|
113
105
|
}
|
|
@@ -5,6 +5,7 @@ export interface LiveModelInfo {
|
|
|
5
5
|
reasoning?: boolean;
|
|
6
6
|
vision?: boolean;
|
|
7
7
|
routePairing?: string;
|
|
8
|
+
supportedEffortLevels?: string[];
|
|
8
9
|
[k: string]: unknown;
|
|
9
10
|
}
|
|
10
11
|
export interface LiveModelCatalog {
|
|
@@ -18,6 +19,19 @@ export declare function getLiveModelCatalog(): LiveModelCatalog | null;
|
|
|
18
19
|
export declare function normalizeLiveModelRef(ref: string): string;
|
|
19
20
|
export type ImageVision = 'yes' | 'no' | 'unknown';
|
|
20
21
|
export declare function imageVisionOf(model: string | undefined, catalog?: LiveModelCatalog | null): ImageVision;
|
|
22
|
+
export type EffortLevelsReading = {
|
|
23
|
+
readonly kind: 'clamped';
|
|
24
|
+
readonly levels: readonly string[];
|
|
25
|
+
} | {
|
|
26
|
+
readonly kind: 'not_clamped';
|
|
27
|
+
} | {
|
|
28
|
+
readonly kind: 'not_applicable';
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: 'unknown';
|
|
31
|
+
readonly why: 'no_catalog' | 'model_not_listed' | 'reasoning_unreported' | 'levels_malformed' | 'unreadable';
|
|
32
|
+
};
|
|
33
|
+
export declare function effortLevelsOf(model: string | undefined, catalog?: LiveModelCatalog | null): EffortLevelsReading;
|
|
34
|
+
export declare function effortLevelHonored(reading: EffortLevelsReading, level: string): 'yes' | 'no' | 'unknown';
|
|
21
35
|
export declare function liveDefaultModelName(): string | null;
|
|
22
36
|
export interface RoutePairingVerdict {
|
|
23
37
|
verdict: 'ok' | 'broken' | 'unknown';
|
package/dist/liveModelCatalog.js
CHANGED
|
@@ -79,6 +79,67 @@ export function imageVisionOf(model, catalog = getLiveModelCatalog()) {
|
|
|
79
79
|
return 'unknown';
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
const NOT_CLAMPED = Object.freeze({ kind: 'not_clamped' });
|
|
83
|
+
const NOT_APPLICABLE = Object.freeze({ kind: 'not_applicable' });
|
|
84
|
+
const unknownEffort = (why) => Object.freeze({ kind: 'unknown', why });
|
|
85
|
+
export function effortLevelsOf(model, catalog = getLiveModelCatalog()) {
|
|
86
|
+
try {
|
|
87
|
+
if (model !== undefined && typeof model !== 'string')
|
|
88
|
+
return unknownEffort('unreadable');
|
|
89
|
+
if (catalog === null || typeof catalog !== 'object' || Array.isArray(catalog))
|
|
90
|
+
return unknownEffort('no_catalog');
|
|
91
|
+
let target = model !== undefined && model.length > 0 ? model : undefined;
|
|
92
|
+
if (target === undefined) {
|
|
93
|
+
const def = ownDataOf(catalog, 'default');
|
|
94
|
+
target = typeof def === 'string' && def.length > 0 ? def : undefined;
|
|
95
|
+
}
|
|
96
|
+
if (target === undefined)
|
|
97
|
+
return unknownEffort('model_not_listed');
|
|
98
|
+
const row = liveModelRowOf(catalog, target);
|
|
99
|
+
if (row === undefined)
|
|
100
|
+
return unknownEffort('model_not_listed');
|
|
101
|
+
const levels = ownDataOf(row, 'supportedEffortLevels');
|
|
102
|
+
if (levels !== undefined) {
|
|
103
|
+
if (!Array.isArray(levels))
|
|
104
|
+
return unknownEffort('levels_malformed');
|
|
105
|
+
const n = ownDataOf(levels, 'length');
|
|
106
|
+
if (typeof n !== 'number' || !Number.isSafeInteger(n) || n <= 0)
|
|
107
|
+
return unknownEffort('levels_malformed');
|
|
108
|
+
const out = [];
|
|
109
|
+
for (let i = 0; i < n; i += 1) {
|
|
110
|
+
const w = ownDataOf(levels, String(i));
|
|
111
|
+
if (typeof w !== 'string' || w.length === 0)
|
|
112
|
+
return unknownEffort('levels_malformed');
|
|
113
|
+
if (!out.includes(w))
|
|
114
|
+
out.push(w);
|
|
115
|
+
}
|
|
116
|
+
return Object.freeze({ kind: 'clamped', levels: Object.freeze(out) });
|
|
117
|
+
}
|
|
118
|
+
const reasoning = ownDataOf(row, 'reasoning');
|
|
119
|
+
if (reasoning === true)
|
|
120
|
+
return NOT_CLAMPED;
|
|
121
|
+
if (reasoning === false)
|
|
122
|
+
return NOT_APPLICABLE;
|
|
123
|
+
return unknownEffort('reasoning_unreported');
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return unknownEffort('unreadable');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export function effortLevelHonored(reading, level) {
|
|
130
|
+
if (typeof level !== 'string' || level.length === 0)
|
|
131
|
+
return 'unknown';
|
|
132
|
+
switch (reading?.kind) {
|
|
133
|
+
case 'clamped':
|
|
134
|
+
return Array.isArray(reading.levels) && reading.levels.includes(level) ? 'yes' : 'no';
|
|
135
|
+
case 'not_clamped':
|
|
136
|
+
return 'yes';
|
|
137
|
+
case 'not_applicable':
|
|
138
|
+
return 'no';
|
|
139
|
+
default:
|
|
140
|
+
return 'unknown';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
82
143
|
export function liveDefaultModelName() {
|
|
83
144
|
if (!catalog?.default)
|
|
84
145
|
return null;
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { engineWireTarget } from './engineWireTarget.js';
|
|
2
2
|
import { createEngineCapReader } from './engineCapReader.js';
|
|
3
3
|
export function projectMcpProbeCapability(caps) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
try {
|
|
5
|
+
if (caps === null || typeof caps !== 'object' || Array.isArray(caps))
|
|
6
|
+
return undefined;
|
|
7
|
+
if (!Object.hasOwn(caps, 'mcpProbe'))
|
|
8
|
+
return { kind: 'not_reported' };
|
|
9
|
+
const v = caps.mcpProbe;
|
|
10
|
+
if (v === undefined)
|
|
11
|
+
return { kind: 'not_reported' };
|
|
12
|
+
if (typeof v !== 'boolean')
|
|
13
|
+
return undefined;
|
|
14
|
+
return v ? { kind: 'present' } : { kind: 'absent' };
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
12
17
|
return undefined;
|
|
13
|
-
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
20
|
const reader = createEngineCapReader({
|
|
16
21
|
name: 'mcpProbe',
|
package/dist/mcpReconnect.js
CHANGED
|
@@ -163,15 +163,20 @@ export async function reconnectMcpServer(client, sessionId, server, opts) {
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
export function projectMcpReconnectCapability(caps) {
|
|
166
|
-
|
|
166
|
+
try {
|
|
167
|
+
if (!isRecord(caps))
|
|
168
|
+
return undefined;
|
|
169
|
+
if (!Object.hasOwn(caps, 'mcpReconnect') || caps.mcpReconnect === undefined)
|
|
170
|
+
return 'not_reported';
|
|
171
|
+
if (caps.mcpReconnect === true)
|
|
172
|
+
return 'available';
|
|
173
|
+
if (caps.mcpReconnect === false)
|
|
174
|
+
return 'unavailable';
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
catch {
|
|
167
178
|
return undefined;
|
|
168
|
-
|
|
169
|
-
return 'not_reported';
|
|
170
|
-
if (caps.mcpReconnect === true)
|
|
171
|
-
return 'available';
|
|
172
|
-
if (caps.mcpReconnect === false)
|
|
173
|
-
return 'unavailable';
|
|
174
|
-
return undefined;
|
|
179
|
+
}
|
|
175
180
|
}
|
|
176
181
|
export function mcpReconnectOutcomeDetail(view) {
|
|
177
182
|
const name = capForDisplay(view.server, RECONNECT_WORD_MAX);
|
|
@@ -2,17 +2,22 @@ import { engineWireTarget } from './engineWireTarget.js';
|
|
|
2
2
|
import { createEngineCapReader } from './engineCapReader.js';
|
|
3
3
|
export const MEMORY_ENGINE_REQUIRED_CODE = 'capability.memory_engine_required';
|
|
4
4
|
export function projectMemoryComplianceCapability(caps) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
try {
|
|
6
|
+
if (caps === null || typeof caps !== 'object' || Array.isArray(caps))
|
|
7
|
+
return undefined;
|
|
8
|
+
const c = caps;
|
|
9
|
+
if (!Object.hasOwn(c, 'memoryCompliance'))
|
|
10
|
+
return { kind: 'not_reported' };
|
|
11
|
+
const v = c.memoryCompliance;
|
|
12
|
+
if (v === undefined)
|
|
13
|
+
return { kind: 'not_reported' };
|
|
14
|
+
if (typeof v !== 'boolean')
|
|
15
|
+
return undefined;
|
|
16
|
+
return v ? { kind: 'present' } : { kind: 'absent' };
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
14
19
|
return undefined;
|
|
15
|
-
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
22
|
const reader = createEngineCapReader({
|
|
18
23
|
name: 'memoryCompliance',
|
|
@@ -2,17 +2,22 @@ import { engineWireTarget } from './engineWireTarget.js';
|
|
|
2
2
|
import { createEngineCapReader } from './engineCapReader.js';
|
|
3
3
|
import { MEMORY_ENGINE_REQUIRED_CODE } from './memoryComplianceCapability.js';
|
|
4
4
|
export function projectMemoryOriginCapability(caps) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
try {
|
|
6
|
+
if (caps === null || typeof caps !== 'object' || Array.isArray(caps))
|
|
7
|
+
return undefined;
|
|
8
|
+
const c = caps;
|
|
9
|
+
if (!Object.hasOwn(c, 'memoryOrigin'))
|
|
10
|
+
return { kind: 'not_reported' };
|
|
11
|
+
const v = c.memoryOrigin;
|
|
12
|
+
if (v === undefined)
|
|
13
|
+
return { kind: 'not_reported' };
|
|
14
|
+
if (typeof v !== 'boolean')
|
|
15
|
+
return undefined;
|
|
16
|
+
return v ? { kind: 'present' } : { kind: 'absent' };
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
14
19
|
return undefined;
|
|
15
|
-
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
22
|
const reader = createEngineCapReader({
|
|
18
23
|
name: 'memoryOrigin',
|
|
@@ -16,17 +16,19 @@ export interface LocalEngineModelIdentityReading {
|
|
|
16
16
|
lanes: ModelIdentityLanes;
|
|
17
17
|
engineAnswer?: EngineAnswerObservation;
|
|
18
18
|
engineAcceptsCatalogDefault?: boolean;
|
|
19
|
+
routeGap?: ModelRouteGapReading;
|
|
19
20
|
}
|
|
21
|
+
export type ModelRouteGapReading = 'endpoint_missing' | 'lane_credential_missing' | 'none';
|
|
20
22
|
export interface RemoteEngineModelIdentityReading {
|
|
21
23
|
engine: 'remote';
|
|
22
24
|
engineAnswer: EngineAnswerObservation;
|
|
23
25
|
}
|
|
24
26
|
export type ModelIdentityReading = LocalEngineModelIdentityReading | RemoteEngineModelIdentityReading;
|
|
25
27
|
export type ModelIdentityResolvability = 'resolvable' | 'not_resolvable' | 'unknown';
|
|
26
|
-
export type ModelSetupDecision = 'offer_setup' | 'explain_unconfigured' | 'proceed';
|
|
28
|
+
export type ModelSetupDecision = 'offer_setup' | 'explain_unconfigured' | 'explain_route_gap' | 'proceed';
|
|
27
29
|
export declare function modelIdentityResolvability(reading: ModelIdentityReading): ModelIdentityResolvability;
|
|
28
30
|
export declare function modelIdentityDetail(reading: ModelIdentityReading): string;
|
|
29
|
-
export declare function modelSetupDecision(identity: ModelIdentityResolvability, hostCanConfigureModel: boolean): ModelSetupDecision;
|
|
31
|
+
export declare function modelSetupDecision(identity: ModelIdentityResolvability | ModelIdentityReading, hostCanConfigureModel: boolean): ModelSetupDecision;
|
|
30
32
|
export declare function modelSetupNotice(decision: ModelSetupDecision): string | null;
|
|
31
33
|
export declare function observedEngineAnswer(baseUrl?: string | undefined): EngineAnswerObservation;
|
|
32
34
|
export {};
|
|
@@ -26,6 +26,10 @@ function catalogDefaultEvidence(catalog, accepts) {
|
|
|
26
26
|
void _evidencePin;
|
|
27
27
|
return catalog === 'complete' && accepts === true ? { catalog, engineAccepts: accepts } : undefined;
|
|
28
28
|
}
|
|
29
|
+
function routeGapOf(reading) {
|
|
30
|
+
const v = own(reading, 'routeGap')?.v;
|
|
31
|
+
return v === 'endpoint_missing' || v === 'lane_credential_missing' || v === 'none' ? v : undefined;
|
|
32
|
+
}
|
|
29
33
|
function analyse(reading) {
|
|
30
34
|
try {
|
|
31
35
|
if (!isPlainObject(reading))
|
|
@@ -69,7 +73,10 @@ function analyse(reading) {
|
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
else if (s === 'complete') {
|
|
72
|
-
|
|
76
|
+
const route = routeGapOf(reading);
|
|
77
|
+
if (route === 'endpoint_missing' || route === 'lane_credential_missing')
|
|
78
|
+
return { verdict: 'not_resolvable', why: 'route_gap', lane, gap: route };
|
|
79
|
+
return { verdict: 'resolvable', why: 'lane', lane, route: route === 'none' ? 'none' : 'unreported' };
|
|
73
80
|
}
|
|
74
81
|
if (s === 'partial')
|
|
75
82
|
partial.push(lane);
|
|
@@ -83,7 +90,7 @@ function analyse(reading) {
|
|
|
83
90
|
if (unreadable.length > 0 || unreported.length > 0 || unusable.length > 0 || catalogUnconfirmed !== null) {
|
|
84
91
|
return { verdict: 'unknown', why: 'lanes', unreadable, unreported, unusable, catalogUnconfirmed, catalogRefused };
|
|
85
92
|
}
|
|
86
|
-
return { verdict: 'not_resolvable', partial, catalogRefused };
|
|
93
|
+
return { verdict: 'not_resolvable', why: 'lanes', partial, catalogRefused };
|
|
87
94
|
}
|
|
88
95
|
catch {
|
|
89
96
|
return malformed();
|
|
@@ -121,8 +128,16 @@ export function modelIdentityDetail(reading) {
|
|
|
121
128
|
if (a.why === 'catalog_default') {
|
|
122
129
|
return `${laneLabel('modelCatalogFile')} supplies a model name as its default, and the local engine accepts a catalog default in place of a startup model name, so it can start with it — whether its gateway accepts that name is a separate check`;
|
|
123
130
|
}
|
|
124
|
-
|
|
131
|
+
if (a.route === 'none') {
|
|
132
|
+
return `${laneLabel(a.lane)} supplies a model name and the local engine has a route to reach it, so it can start with it — whether its gateway accepts that name is a separate check`;
|
|
133
|
+
}
|
|
134
|
+
return `${laneLabel(a.lane)} supplies a model name for the local engine — whether the engine also has a route to reach that model (an endpoint, or credentials for the channel it names) and whether its gateway accepts the name are separate checks`;
|
|
125
135
|
case 'not_resolvable': {
|
|
136
|
+
if (a.why === 'route_gap') {
|
|
137
|
+
return a.gap === 'endpoint_missing'
|
|
138
|
+
? `${laneLabel(a.lane)} supplies a model name, but the local engine has no route to reach it — the model rides the OpenAI-compatible route and no gateway address (MODEL_GATEWAY_BASEURL) is set, and the engine refuses to start without one`
|
|
139
|
+
: `${laneLabel(a.lane)} supplies a model name, but the local engine has no route to reach it — the anthropic channel is selected (MODEL_PROVIDER=anthropic), neither ANTHROPIC_API_KEY nor ANTHROPIC_AUTH_TOKEN is set, and there is no gateway address (MODEL_GATEWAY_BASEURL) to fall back to, so the engine cannot start on any route`;
|
|
140
|
+
}
|
|
126
141
|
const others = a.catalogRefused ? a.partial.filter((l) => l !== 'modelCatalogFile') : a.partial;
|
|
127
142
|
const partialClause = others.length > 0
|
|
128
143
|
? `${joinPhrases(others.map(laneLabel))} ${others.length > 1 ? 'carry' : 'carries'} part of a model configuration (such as a gateway address or a credential) but no model name`
|
|
@@ -164,7 +179,17 @@ export function modelIdentityDetail(reading) {
|
|
|
164
179
|
}
|
|
165
180
|
}
|
|
166
181
|
export function modelSetupDecision(identity, hostCanConfigureModel) {
|
|
167
|
-
|
|
182
|
+
let verdict;
|
|
183
|
+
if (typeof identity === 'string') {
|
|
184
|
+
verdict = identity;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
const a = analyse(identity);
|
|
188
|
+
if (a.verdict === 'not_resolvable' && a.why === 'route_gap')
|
|
189
|
+
return 'explain_route_gap';
|
|
190
|
+
verdict = a.verdict;
|
|
191
|
+
}
|
|
192
|
+
if (verdict !== 'not_resolvable')
|
|
168
193
|
return 'proceed';
|
|
169
194
|
if (hostCanConfigureModel === true)
|
|
170
195
|
return 'offer_setup';
|
|
@@ -178,6 +203,8 @@ export function modelSetupNotice(decision) {
|
|
|
178
203
|
return 'no model name is configured for the engine, and it does not start without one — opening model setup';
|
|
179
204
|
case 'explain_unconfigured':
|
|
180
205
|
return 'this engine has no model configured, and it cannot be configured from this client — ask whoever runs the engine to set one up';
|
|
206
|
+
case 'explain_route_gap':
|
|
207
|
+
return 'a model name is configured, but the engine has no route to reach that model (a gateway address, or credentials for the channel it names), so it does not start — fix the route; model setup will not help';
|
|
181
208
|
default:
|
|
182
209
|
return null;
|
|
183
210
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type OutputStyleSeatReading = {
|
|
2
|
+
kind: 'unobserved';
|
|
3
|
+
} | {
|
|
4
|
+
kind: 'not_reported';
|
|
5
|
+
} | {
|
|
6
|
+
kind: 'present';
|
|
7
|
+
value: true;
|
|
8
|
+
};
|
|
9
|
+
export declare function projectOutputStyleSeatCapability(caps: unknown): OutputStyleSeatReading | undefined;
|
|
10
|
+
export declare function noteEngineCapsForOutputStyleSeat(baseUrl: string, caps: unknown, opts?: {
|
|
11
|
+
generation?: number;
|
|
12
|
+
}): void;
|
|
13
|
+
export declare function observedOutputStyleSeat(baseUrl?: string | undefined): OutputStyleSeatReading;
|
|
14
|
+
export declare function outputStyleSeatAdmitted(reading: OutputStyleSeatReading | undefined): boolean;
|
|
15
|
+
export declare function forgetOutputStyleSeatReading(baseUrl: string | undefined): void;
|
|
16
|
+
export declare function __resetOutputStyleSeatReadingsForTests(): void;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { engineWireTarget } from './engineWireTarget.js';
|
|
2
|
+
import { createEngineCapReader } from './engineCapReader.js';
|
|
3
|
+
import { readOwnDataValue } from './ownKey.js';
|
|
4
|
+
export function projectOutputStyleSeatCapability(caps) {
|
|
5
|
+
try {
|
|
6
|
+
if (caps === null || typeof caps !== 'object' || Array.isArray(caps))
|
|
7
|
+
return undefined;
|
|
8
|
+
if (!Object.hasOwn(caps, 'outputStyle'))
|
|
9
|
+
return { kind: 'not_reported' };
|
|
10
|
+
const v = caps.outputStyle;
|
|
11
|
+
if (v === undefined)
|
|
12
|
+
return { kind: 'not_reported' };
|
|
13
|
+
return v === true ? { kind: 'present', value: true } : undefined;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const reader = createEngineCapReader({
|
|
20
|
+
name: 'outputStyleSeat',
|
|
21
|
+
project: projectOutputStyleSeatCapability,
|
|
22
|
+
makeUnobserved: () => ({ kind: 'unobserved' }),
|
|
23
|
+
});
|
|
24
|
+
export function noteEngineCapsForOutputStyleSeat(baseUrl, caps, opts) {
|
|
25
|
+
reader.note(baseUrl, caps, opts);
|
|
26
|
+
}
|
|
27
|
+
export function observedOutputStyleSeat(baseUrl = engineWireTarget()?.baseUrl) {
|
|
28
|
+
return reader.observed(baseUrl);
|
|
29
|
+
}
|
|
30
|
+
export function outputStyleSeatAdmitted(reading) {
|
|
31
|
+
try {
|
|
32
|
+
if (reading === null || reading === undefined || typeof reading !== 'object' || Array.isArray(reading))
|
|
33
|
+
return false;
|
|
34
|
+
if (readOwnDataValue(reading, 'kind') !== 'present')
|
|
35
|
+
return false;
|
|
36
|
+
return readOwnDataValue(reading, 'value') === true;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function forgetOutputStyleSeatReading(baseUrl) {
|
|
43
|
+
reader.forget(baseUrl);
|
|
44
|
+
}
|
|
45
|
+
export function __resetOutputStyleSeatReadingsForTests() {
|
|
46
|
+
reader.__resetForTests();
|
|
47
|
+
}
|
package/dist/ownKey.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ export declare function putOwnKey<T>(table: Record<string, T>, key: string, valu
|
|
|
2
2
|
export declare function readOwnNonEmptyString(v: object | null | undefined, key: string): string | undefined;
|
|
3
3
|
export declare function readOwnDataNonEmptyString(v: object | null | undefined, key: string): string | undefined;
|
|
4
4
|
export declare function readOwnDataValue<T>(v: object | null | undefined, key: string): T | undefined;
|
|
5
|
+
export declare function readFrameStringKey(frame: unknown, key: string): string | undefined;
|