@sema-agent/client-core 0.107.0 → 0.109.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 +239 -0
- package/README.md +54 -36
- package/dist/adapt/arms.js +23 -8
- package/dist/adapt/textStream.d.ts +2 -0
- package/dist/adapt/textStream.js +37 -16
- package/dist/adapter/activeRunSelfHeal.d.ts +2 -0
- package/dist/adapter/activeRunSelfHeal.js +21 -4
- package/dist/adapter/downstream/eventToSdkMessage.js +2 -1
- package/dist/agentSession/engineAgentRegistryRead.js +2 -0
- package/dist/bashExitReading.d.ts +12 -0
- package/dist/bashExitReading.js +44 -0
- package/dist/checkpointRowVerdict.d.ts +6 -1
- package/dist/checkpointRowVerdict.js +30 -2
- package/dist/cloudConfigWireCaps.d.ts +10 -0
- package/dist/cloudConfigWireCaps.js +33 -0
- package/dist/compensations.js +1 -1
- package/dist/coreValuePorts.d.ts +17 -1
- package/dist/coreValuePorts.js +5 -0
- package/dist/decideReceipt.js +2 -1
- package/dist/engineAgentAbsence.d.ts +2 -0
- package/dist/engineAgentAbsence.js +28 -0
- package/dist/engineErrorCodes.d.ts +9 -0
- package/dist/engineErrorCodes.js +9 -0
- package/dist/engineHealthFacts.d.ts +17 -0
- package/dist/engineHealthFacts.js +42 -3
- package/dist/engineNoticeCodes.d.ts +147 -1
- package/dist/engineNoticeCodes.js +694 -57
- package/dist/engineTargetSeat.js +1 -0
- package/dist/errorSupplementRoles.js +6 -1
- package/dist/eventLeg.js +1 -1
- package/dist/executionLaneWords.js +2 -1
- package/dist/fleetTaskDesc.js +3 -3
- package/dist/gateOutcome.d.ts +10 -1
- package/dist/gateOutcome.js +48 -1
- package/dist/generated/engineFactTables.d.ts +2 -0
- package/dist/generated/engineFactTables.js +11 -0
- package/dist/generated/engineNoticeTables.js +6 -0
- package/dist/generated/settingsSchemaFns.d.ts +4 -2
- package/dist/generated/settingsSchemaFns.js +9 -3
- package/dist/generated/settingsSchemaMcpRequestEntry.d.ts +1 -1
- package/dist/generated/settingsSchemaMcpRequestEntry.js +9 -18
- package/dist/generated/settingsSchemaReservedMemberName.d.ts +1 -0
- package/dist/generated/settingsSchemaReservedMemberName.js +7 -0
- package/dist/generated/settingsSchemaTables.d.ts +2 -0
- package/dist/generated/settingsSchemaTables.js +10 -0
- package/dist/generated/settingsSchemaWireName.d.ts +1 -0
- package/dist/generated/settingsSchemaWireName.js +8 -0
- package/dist/headlessReconnectWire.js +12 -7
- package/dist/hitl/approvalAskers.d.ts +13 -0
- package/dist/hitl/approvalAskers.js +79 -0
- package/dist/hitl/approvalCardReasons.js +22 -4
- package/dist/hitl/approvalRequestFrameReading.d.ts +14 -0
- package/dist/hitl/approvalRequestFrameReading.js +79 -0
- package/dist/hitl/approvalResolution.d.ts +3 -0
- package/dist/hitl/approvalResolution.js +22 -4
- package/dist/hitl/approvalsFeed.js +4 -13
- package/dist/hitl/askParkRowRouting.js +10 -3
- package/dist/hitl/automaticAnswerVerdict.d.ts +5 -2
- package/dist/hitl/automaticAnswerVerdict.js +16 -2
- package/dist/hitl/decisionConflict.d.ts +2 -1
- package/dist/hitl/decisionConflict.js +4 -1
- package/dist/hitl/decisionRefusal.d.ts +1 -0
- package/dist/hitl/decisionRefusal.js +5 -2
- package/dist/hitl/decisionSend.js +2 -6
- package/dist/hitl/frameRouter.d.ts +3 -2
- package/dist/hitl/frameRouter.js +37 -7
- package/dist/hitl/gateLedger.d.ts +2 -0
- package/dist/hitl/gateLedger.js +3 -1
- package/dist/hitl/hitlBridge.d.ts +4 -0
- package/dist/hitl/hitlBridge.js +11 -8
- package/dist/hitl/livePendingAsk.js +17 -16
- package/dist/hitl/localAllowRule.js +2 -1
- package/dist/hitl/noAllowCause.d.ts +1 -1
- package/dist/hitl/noAllowCause.js +4 -2
- package/dist/hitl/parkExpiryJudgements.js +26 -1
- package/dist/hitl/parkOwnership.d.ts +2 -0
- package/dist/hitl/parkOwnership.js +48 -8
- package/dist/hitl/parkResolver.js +39 -30
- package/dist/hitl/parkRowBirthWait.d.ts +2 -0
- package/dist/hitl/parkRowBirthWait.js +8 -1
- package/dist/hitl/parkedUnresumable.d.ts +13 -0
- package/dist/hitl/parkedUnresumable.js +80 -0
- package/dist/hitl/permissionRuleScope.d.ts +4 -0
- package/dist/hitl/permissionRuleScope.js +31 -0
- package/dist/hitl/persistedRulesWire.d.ts +7 -1
- package/dist/hitl/persistedRulesWire.js +25 -8
- package/dist/hitl/planReviewWire.js +12 -16
- package/dist/hitl/policyDenyCause.d.ts +3 -0
- package/dist/hitl/policyDenyCause.js +16 -0
- package/dist/hitl/sessionAllowRoute.js +5 -4
- package/dist/hitl/sessionPolicyDeliverable.js +1 -1
- package/dist/hitl/standingRows.d.ts +1 -5
- package/dist/hitl/standingRows.js +15 -14
- package/dist/hitl/toolApprovalWire.d.ts +16 -4
- package/dist/hitl/toolApprovalWire.js +57 -17
- package/dist/hooksReaderGenerations.d.ts +1 -0
- package/dist/hooksReaderGenerations.js +12 -0
- package/dist/hooksWireCaps.js +12 -7
- package/dist/hostSettingsSource.js +2 -0
- package/dist/i18n/messages.en.d.ts +206 -1
- package/dist/i18n/messages.en.js +209 -4
- package/dist/i18n/messages.zh.js +214 -4
- package/dist/index.d.ts +35 -8
- package/dist/index.js +20 -5
- package/dist/liveModelCatalog.d.ts +4 -2
- package/dist/liveModelCatalog.js +164 -26
- package/dist/localEngineJudge.d.ts +75 -0
- package/dist/localEngineJudge.js +242 -0
- package/dist/localEngineOccupancy.d.ts +88 -0
- package/dist/localEngineOccupancy.js +269 -0
- package/dist/localEngineSeatReading.d.ts +29 -0
- package/dist/localEngineSeatReading.js +294 -0
- package/dist/localEngineSpawn.d.ts +113 -0
- package/dist/localEngineSpawn.js +486 -0
- package/dist/localEngineStep.d.ts +286 -0
- package/dist/localEngineStep.js +1086 -0
- package/dist/localEngineStopLadder.d.ts +29 -0
- package/dist/localEngineStopLadder.js +139 -0
- package/dist/localEngineSwapCard.d.ts +43 -0
- package/dist/localEngineSwapCard.js +205 -0
- package/dist/localEngineTiming.d.ts +8 -0
- package/dist/localEngineTiming.js +8 -0
- package/dist/mcpReconnect.js +12 -5
- package/dist/mcpWireCaps.js +2 -2
- package/dist/memoryEntriesWire.d.ts +1 -1
- package/dist/memoryEntriesWire.js +5 -0
- package/dist/model/catalogDefault.d.ts +25 -0
- package/dist/model/catalogDefault.js +44 -0
- package/dist/noticePresentation.d.ts +2 -0
- package/dist/noticePresentation.js +79 -1
- package/dist/ownKey.d.ts +10 -0
- package/dist/ownKey.js +15 -1
- package/dist/permissionWireCaps.d.ts +1 -0
- package/dist/permissionWireCaps.js +11 -0
- package/dist/pluginHooksWire.d.ts +5 -3
- package/dist/pluginHooksWire.js +116 -7
- package/dist/queuedDelivery.d.ts +1 -0
- package/dist/queuedDelivery.js +12 -0
- package/dist/resultFrameKeys.js +4 -2
- package/dist/resumeRefusalCopy.js +15 -8
- package/dist/ruleReadings.js +1 -1
- package/dist/runPermissionModeSwitch.d.ts +2 -1
- package/dist/runPermissionModeSwitch.js +16 -6
- package/dist/seam.d.ts +13 -2
- package/dist/seam.js +8 -1
- package/dist/seatContract.d.ts +103 -12
- package/dist/seatContract.js +344 -14
- package/dist/sessionBackground.js +2 -0
- package/dist/sessionEngine.d.ts +2 -1
- package/dist/sessionEngine.js +5 -0
- package/dist/settingsHooksSalvage.d.ts +5 -0
- package/dist/settingsHooksSalvage.js +54 -0
- package/dist/subagentContentStore.d.ts +12 -0
- package/dist/subagentContentStore.js +73 -12
- package/dist/supportFloor.js +2 -0
- package/dist/taskNotificationAdmission.d.ts +19 -0
- package/dist/taskNotificationAdmission.js +84 -0
- package/dist/toolResult.js +20 -6
- package/dist/webSearchWireCaps.js +9 -4
- package/dist/wireFailureShape.d.ts +20 -0
- package/dist/wireFailureShape.js +37 -6
- package/dist/wireRefusalCopy.d.ts +23 -2
- package/dist/wireRefusalCopy.js +93 -4
- package/docs/INTEGRATION-CLIENTS.md +1959 -15
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ export { engineRefOf, sameEngineRef, TRANSCRIPT_ROW_SIDECAR_KEYS } from './engin
|
|
|
15
15
|
export { isReplayMarked } from './replayBody.js';
|
|
16
16
|
export { composeEventLeg, EVENT_LEG_KINDS, EVENT_LEG_TABLE, approvalFrameContextOf } from './eventLeg.js';
|
|
17
17
|
export { frameBindingOf, inheritFrameBinding } from './frameBinding.js';
|
|
18
|
-
export { __resetSubagentContentStoreConfigForTests, __resetSubagentOwnerLedgerForTests, clearSubagentContent, coerceOutput, configureSubagentContentStore, getBgParentRun, getBgParentRunOwner, getBgTerminalFacts, getSubagentContentSnapshot, isOwnEngineRun, parentToolCallIdOf, planSubagentViewSlots, publishSubagentContentEvent, pushSubagentLocalEcho, recordBgParentRun, recordOwnEngineRun, recordSubagentOwner, recordSubagentOwnerFromProgress, registerSubagentAlias, settleSubagentContent, SUBAGENT_CONTENT_STORE_DEFAULTS, subagentContentStoreConfig, subagentOwnerSessionConflicts, subscribeSubagentContent, subagentContentEventOf, } from './subagentContentStore.js';
|
|
18
|
+
export { __resetSubagentContentStoreConfigForTests, __resetSubagentOwnerLedgerForTests, clearSubagentContent, coerceOutput, configureSubagentContentStore, getBgParentRun, getBgParentRunOwner, getBgTerminalFacts, getSubagentContentSnapshot, isOwnEngineRun, noteSeatSubagentAlias, parentToolCallIdOf, planSubagentViewSlots, publishSubagentContentEvent, pushSubagentLocalEcho, recordBgParentRun, recordOwnEngineRun, recordSubagentOwner, readSeatSubagentAlias, recordSubagentOwnerFromProgress, registerSubagentAlias, settleSubagentContent, SUBAGENT_CONTENT_STORE_DEFAULTS, subagentContentStoreConfig, subagentOwnerSessionConflicts, subscribeSubagentContent, subagentContentEventOf, } from './subagentContentStore.js';
|
|
19
19
|
export * from './engineAgentPanelStore.js';
|
|
20
20
|
export * from './engineAgentAbsence.js';
|
|
21
21
|
export * from './fleetAgentPanelProjection.js';
|
|
@@ -76,6 +76,14 @@ export * from './gateOutcome.js';
|
|
|
76
76
|
export * from './postureKnob.js';
|
|
77
77
|
export * from './engineIdentity.js';
|
|
78
78
|
export { readEngineHealthFacts } from './engineHealthFacts.js';
|
|
79
|
+
export { localEngineAnchorOf, localEnginePlanDriftOf, judgeLocalEngine, localEngineLaneOf, localEngineVerdictSentence } from './localEngineJudge.js';
|
|
80
|
+
export { countClientRegistry, fleetBackgroundLiveOf, localEngineSelfOf, localEngineRegistryStatusOf, localEngineIdle, localEngineDemandOf, localEngineExitFate, localEngineExitFateSentence, } from './localEngineOccupancy.js';
|
|
81
|
+
export { LOCAL_ENGINE_SWAP_CAUSES, localEngineSwapAutoable, engineSwapCardOf, engineSwapCardText } from './localEngineSwapCard.js';
|
|
82
|
+
export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, engineBootRefusalOf, engineBootRefusalSentence, localEngineFirstShareSentence, } from './localEngineSpawn.js';
|
|
83
|
+
export { LOCAL_ENGINE_STOP_LADDER, stopLadderStep } from './localEngineStopLadder.js';
|
|
84
|
+
export { LOCAL_ENGINE_INITIAL_STATE, LOCAL_ENGINE_FAIL_CODES, localEngineStep, engineSwapAnswerOutcomeOf } from './localEngineStep.js';
|
|
85
|
+
export { LOCAL_ENGINE_TIMING } from './localEngineTiming.js';
|
|
86
|
+
export { localEngineSeatReadingOf, localEngineSeatSentence, localEngineNoticeText, localEngineFailText, engineTargetLocalOf, engineRestartOutcomeOf, } from './localEngineSeatReading.js';
|
|
79
87
|
export { transportFailureScene } from './engineWireFor.js';
|
|
80
88
|
export { engineUrlTransportVerdict, normalizeEngineBaseUrl } from './engineUrl.js';
|
|
81
89
|
export { submitStreamWithBoundedReopen } from './submitReopen.js';
|
|
@@ -103,7 +111,7 @@ export * from './engineWireSdk.js';
|
|
|
103
111
|
export * from './classifierVerdictWire.js';
|
|
104
112
|
export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminderTag.js';
|
|
105
113
|
export { findSystemReminderOpenTag } from './systemReminderTag.js';
|
|
106
|
-
export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_IMAGE_INDEX_REQUIRED, CAPABILITY_K8S_LANE_REQUIRED, 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_MCP_SERVER_NAME_COLLISION, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_OUTPUT_STYLE_INVALID, CONFIG_TOOL_FACE_CONTROL, CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_ROW_UNREVIVABLE, 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, idempotencyPayloadMismatchContent, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDecideRowUnrevivableCode, isDelegationCapCode, isIdempotencyPayloadMismatchCode, 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, MCP_TOOL_DECLARATION_CHANGED, MCP_TOOL_LISTING_UNREACHED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, PROMPT_ASSEMBLED_ROLE_REFUSED, 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, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, USER_ATTACHMENT_INVALID_ERROR_CODE, USER_INVOKED_SKILL_UNKNOWN_ERROR_CODE, WORKFLOW_PARK_REFUSAL_CODES, ATTACHMENT_BOUND_ELSEWHERE, ATTACHMENT_BUNDLE_INVALID, ATTACHMENT_BUNDLE_LANE_NOT_ISOLATED, ATTACHMENT_BUNDLE_SEED_FIXED, CONFLICT_SESSION_MEMORY_UNOBSERVED, CONFLICT_SESSION_ARCHIVE_STAMPED, ENV_HOME_UNCONFIRMED, } from './engineErrorCodes.js';
|
|
114
|
+
export { ACTIVE_RUN_BUSY_ERROR_CODE, APPROVAL_EXPIRED, ASK_GONE, asModelFallbackReason, CAPABILITY_IMAGE_INDEX_REQUIRED, CAPABILITY_K8S_LANE_REQUIRED, 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_MCP_SERVER_NAME_COLLISION, CONFIG_MEMORY_PROJECT_KEY_SPELLING, CONFIG_MEMORY_WRITE_SCOPE_MISMATCH, CONFIG_OUTPUT_STYLE_INVALID, CONFIG_TOOL_FACE_CONTROL, CONFLICT_IDEMPOTENCY_PAYLOAD_MISMATCH, CORRUPT_SESSION_ERROR_CODE, DECIDE_CLAIM_LOST, DECIDE_GATE_MOVED, DECIDE_NOT_PARKED, DECIDE_PARK_MOVED_CODES, DECIDE_ROW_UNREVIVABLE, 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, idempotencyPayloadMismatchContent, isConfigRefusalCode, isCorruptSessionCode, isDecideParkMovedCode, isDecideRowUnrevivableCode, isDelegationCapCode, isIdempotencyPayloadMismatchCode, 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, MCP_TOOL_DECLARATION_CHANGED, MCP_TOOL_LISTING_UNREACHED, MODEL_FALLBACK_INHERIT_NO_TIER_BINDING, operatorGateRefusalContent, OUTPUT_INVALID, PARKED_RESUME_STARTUP_FAILED, PROMPT_ASSEMBLED_ROLE_REFUSED, 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, RUN_ORPHANED, RUN_STALLED, runDeathVerdictNoteOf, SCENARIO_ASSIGNMENT_UNKNOWN_ERROR_CODE, SCENARIO_NOT_ALLOWED_ERROR_CODE, STREAM_MAX_DURATION, TOOL_END_INTERRUPTED_NEVER_STARTED, TOOL_END_INTERRUPTED_OUTCOME_UNKNOWN, USAGE_WINDOW_EXHAUSTED, USER_ATTACHMENT_INVALID_ERROR_CODE, USER_INVOKED_SKILL_UNKNOWN_ERROR_CODE, WORKFLOW_PARK_REFUSAL_CODES, ATTACHMENT_BOUND_ELSEWHERE, ATTACHMENT_BUNDLE_INVALID, ATTACHMENT_BUNDLE_LANE_NOT_ISOLATED, ATTACHMENT_BUNDLE_SEED_FIXED, CONFLICT_SESSION_MEMORY_UNOBSERVED, CONFLICT_SESSION_ARCHIVE_STAMPED, ENV_HOME_UNCONFIRMED, REQUEST_ENV_CREDENTIAL_REFUSED, CONFLICT_SESSION_ID_RETIRED, } from './engineErrorCodes.js';
|
|
107
115
|
export { prepareRefusalCodeOf, prepareRefusalNoteOf } from './prepareRefusal.js';
|
|
108
116
|
export * from './agentsWireCaps.js';
|
|
109
117
|
export { engineToolDirectoryOf } from './engineToolDirectory.js';
|
|
@@ -209,6 +217,7 @@ export { encodeHumanTurn, deliveredUuidsOf, imageSentOnUnknownVision, otherBodyB
|
|
|
209
217
|
export { batchCompatible, planQueuedDelivery, humanTurnCapsOf, humanTextForKeywordScan, selfHealSteerEligible } from './queuedDelivery.js';
|
|
210
218
|
export { SUBMISSION_SURFACES, SUBMISSION_ORIGINS, SUBMISSION_TOOLS, SUBMISSION_KINDS, submissionProvenanceOf, submissionIdentityOf, requestLaneOf, submissionOriginOf, } from './request/submissionIdentity.js';
|
|
211
219
|
export { taskNotificationOf, taskNotificationQueueCommand } from './notifications.js';
|
|
220
|
+
export { taskNotificationAdmissionOf } from './taskNotificationAdmission.js';
|
|
212
221
|
export { resultErrorCodeInTextOf } from './resultFrameKeys.js';
|
|
213
222
|
export { humanTurnRefusalSentence, humanTurnDegradedSentence, printImageVisionSentence } from './humanTurnSentences.js';
|
|
214
223
|
export { observedUserAttachmentSeat, projectUserAttachmentSeatCapability, userAttachmentSeatAdmits } from './userAttachmentSeat.js';
|
|
@@ -252,9 +261,10 @@ export { ENGINE_ABORT_TOOL_RESULT } from './hitl/frameRouter.js';
|
|
|
252
261
|
export { toolEndOutputText } from './toolResultContent.js';
|
|
253
262
|
export { toolOutputMediaAbsenceOf, toolOutputMediaAbsenceSentence } from './toolResultContent.js';
|
|
254
263
|
export { _resetHitlHostSurfaceForTest, APPROVAL_PARKING_WARN_TEXT, approvalParkingNoticeText, CANCEL_DENY_BUDGET_MS, CANCEL_DENY_WARN_TEXT, EDIT_NOT_FORWARDED_WARN_TEXT, EDIT_REFUSED_ON_BLIND_ASK_WARN_TEXT, hitlHostSurfaceFor, hitlHostSurfaceMisses, hitlHostSurfaceMissesFor, installHitlHostSurface, installHitlHostSurfaceFor, observeCancelByDeny, REMEMBER_NOT_APPLIED_WARN_TEXT, REPLAYED_APPROVAL_LIST_UNREADABLE_WARN_TEXT, RULE_NOT_SENT_REJECTED_WARN_TEXT, RULE_NOT_SENT_WARN_TEXT, surfaceEditRefusedOnBlindAsk, surfaceForCurrentSession, surfaceRememberNotApplied, } from './hitl/hitlHostSurface.js';
|
|
255
|
-
export
|
|
264
|
+
export { APPROVAL_DENY_SETTLED_BY_WORDS, ASK_ORIGIN_WORDS, RESPOND_DECISIONS, RETRACTED_CARD_DECISION_KIND, RULE_OFFERS_ABSENCE_REASONS, RULE_OFFER_BATCH_MEMBER_KINDS, RULE_OFFER_MATCHES, RULE_OFFER_UNCOVERED_REASONS, TOOL_APPROVAL_FRAME_KEYS_MIRROR, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
|
|
256
265
|
export * from './hitl/approvalCardReading.js';
|
|
257
266
|
export * from './hitl/approvalCardReasons.js';
|
|
267
|
+
export { approvalRequestFrameReadingOf, APPROVAL_REQUEST_FRAME_UNREADABLE_WHYS } from './hitl/approvalRequestFrameReading.js';
|
|
258
268
|
export { askClassReasonOf, askClassReasonsOf } from './hitl/askClassPair.js';
|
|
259
269
|
export * from './hitl/editedRuleTextPrecheck.js';
|
|
260
270
|
export * from './coreValuePorts.js';
|
|
@@ -269,7 +279,7 @@ export { ASK_PARK_AUTO_REOPEN_BLOCKS, askParkAutoReopenBlockedContent, askParkAu
|
|
|
269
279
|
export { HITL_DECISION_FAMILIES, HITL_DECISION_NOT_APPLIED_CAUSES, HITL_DECISION_NOT_SENT_CAUSES, HITL_DECISION_UNCONFIRMED_CAUSES, sendHitlDecision, hitlDecisionOutcomeContent, } from './hitl/decisionSend.js';
|
|
270
280
|
export { PLAN_REVIEW_QUESTION_ID_PREFIX, REOPEN_ID_TAIL, approvalCallKey, askGateQuestionId, planReviewQuestionId, liveFrameCallKey, armedKeyFromQuestionId, } from './hitl/gateIdentity.js';
|
|
271
281
|
export { _resetArmedGateRegistryForTest, _setGateArmedWaitMsForTest, clearArmedGate, gateArmedWaitMs, notePlanReviewAnswered, onGateArmed, planReviewArmedKey, registerArmedGate, registerArmedGateFor, registerArmedGateFromQuestionId, registerArmedGateFromQuestionIdFor, waitForGateArmed, wasGateArmed, wasGateArmedFor, } from './hitl/armedGateRegistry.js';
|
|
272
|
-
export
|
|
282
|
+
export { askQuestionsFromPending, isHitlSafetyErrorLike, pendingRowIsOwnedByThisSession, pendingRowOwnershipOf, } from './hitl/parkOwnership.js';
|
|
273
283
|
export * from './hitl/parkRowBirthWait.js';
|
|
274
284
|
export * from './hitl/approvalDecisionNoteAudit.js';
|
|
275
285
|
export * from './hitl/askParkRowRouting.js';
|
|
@@ -291,11 +301,14 @@ export { MODE_ARBITRATION, automaticAnswerVerdict, mandatedApprovalDetailOf, cro
|
|
|
291
301
|
export { standingRowsOf, rememberOfferable, localAllowRuleEnforceable, } from './hitl/standingRows.js';
|
|
292
302
|
export { classifyDecisionRefusal, liveAskPendingReading, decisionRefusalClosesOut, undeliverableDecisionContent, decideRowUnrevivableNotice, decisionRefusalAskReading, readDecisionRefusalReading, } from './hitl/decisionRefusal.js';
|
|
293
303
|
export { decisionGrantChangedContent } from './hitl/decisionConflict.js';
|
|
304
|
+
export { decideFailureNote } from './decideFailureNote.js';
|
|
305
|
+
export { decisionAnswerInvalidContent } from './hitl/decisionConflict.js';
|
|
294
306
|
export { noAllowCauseOf } from './hitl/noAllowCause.js';
|
|
295
307
|
export { policyDenyReason } from './hitl/frameRouter.js';
|
|
296
308
|
export { readApprovalAllowRuleShadow, approvalAllowRuleShadowed, allowRuleShadowSentence, } from './hitl/allowRuleShadow.js';
|
|
297
309
|
export { projectCrashConverged } from './hitl/crashConverged.js';
|
|
298
310
|
export { checkpointQueueRowSortOf } from './hitl/approvalQueueRow.js';
|
|
311
|
+
export { subagentSourceSessionOf } from './hitl/subagentSource.js';
|
|
299
312
|
export * from './hitl/crashConvergedNotice.js';
|
|
300
313
|
export { approvalCompleteParked } from './hitl/approvalCompleteParked.js';
|
|
301
314
|
export { approvalCompleteCauseOf } from './hitl/approvalEndingCause.js';
|
|
@@ -323,6 +336,8 @@ export * from './agentSession/contract.js';
|
|
|
323
336
|
export * from './agentSession/backgroundView.js';
|
|
324
337
|
export { readAssistantInbox } from './assistantInbox.js';
|
|
325
338
|
export { checkpointRowVerdictOf } from './checkpointRowVerdict.js';
|
|
339
|
+
export { checkpointRowBarOf, checkpointRowBarSentence } from './checkpointRowVerdict.js';
|
|
340
|
+
export { parkedUnresumableRowsOf, parkedUnresumableLine } from './hitl/parkedUnresumable.js';
|
|
326
341
|
export { checkpointRequirementsDamagedOf } from './checkpointRowVerdict.js';
|
|
327
342
|
export { READ_CREDENTIAL_NOT_ACCEPTED_NOTICE, isReadCredentialRefusal } from './readCredentialRefusal.js';
|
|
328
343
|
export { readEngineAgentRegistry, isEngineAgentRegistryListingSuperseded } from './agentSession/engineAgentRegistryRead.js';
|
|
@@ -358,5 +373,5 @@ export { PROJECT_MEMORY_WORDS, projectMemoryOf, observedProjectMemoryCapability,
|
|
|
358
373
|
export { sessionRulesChildrenReadLiveOf } from './sessionRulesChildrenReadLive.js';
|
|
359
374
|
export { scenarioSkillsOf, observedScenarioSkillsCapability } from './scenarioSkills.js';
|
|
360
375
|
export { observedApprovalFrameFamilies, approvalFrameFamiliesDeclaration } from './approvalFrameFamilies.js';
|
|
361
|
-
export { sessionEngineBindingFor, commitSessionEngine, readSessionEngine, sessionDispatchTarget } from './sessionEngine.js';
|
|
376
|
+
export { sessionEngineBindingFor, commitSessionEngine, readSessionEngine, sessionDispatchTarget, sessionDispatchRefusedFor } from './sessionEngine.js';
|
|
362
377
|
export { foldSessionPlacement } from './deviceRebind.js';
|
|
@@ -23,6 +23,7 @@ export interface LiveModelCatalog {
|
|
|
23
23
|
droppedEntries?: readonly LiveModelDroppedEntry[];
|
|
24
24
|
candidateRejected?: unknown;
|
|
25
25
|
modelPlane?: {} | null;
|
|
26
|
+
aliases?: {} | null;
|
|
26
27
|
}
|
|
27
28
|
export declare function setLiveModelCatalog(next: LiveModelCatalog | null): void;
|
|
28
29
|
export declare function setLiveModelCatalogRefresher(fn: (() => Promise<LiveModelCatalog | null>) | null): void;
|
|
@@ -51,12 +52,12 @@ export declare function effortLevelHonored(reading: EffortLevelsReading, level:
|
|
|
51
52
|
export declare function liveDefaultModelName(): string | null;
|
|
52
53
|
export type ModelAcceptanceReading = {
|
|
53
54
|
readonly verdict: 'accepted';
|
|
54
|
-
readonly why: 'listed';
|
|
55
|
+
readonly why: 'listed' | 'aliased';
|
|
55
56
|
readonly model: string;
|
|
56
57
|
readonly defaultModel?: string;
|
|
57
58
|
} | {
|
|
58
59
|
readonly verdict: 'refused';
|
|
59
|
-
readonly why: 'not_listed' | 'disabled';
|
|
60
|
+
readonly why: 'not_listed' | 'disabled' | 'not_at_mentionable';
|
|
60
61
|
readonly model: string;
|
|
61
62
|
readonly defaultModel?: string;
|
|
62
63
|
} | {
|
|
@@ -118,6 +119,7 @@ export type ModelPlaneReading = {
|
|
|
118
119
|
readonly kind: 'unreadable';
|
|
119
120
|
};
|
|
120
121
|
export declare function modelPlaneOf(catalog?: LiveModelCatalog | null): ModelPlaneReading;
|
|
122
|
+
export declare function modelPlaneSentence(reading: ModelPlaneReading, lang?: UiLanguage): string | undefined;
|
|
121
123
|
export declare function modelCandidateRejectedContent(reading: ModelCandidateRejectedReading, lang?: UiLanguage): string | undefined;
|
|
122
124
|
export interface RoutePairingVerdict {
|
|
123
125
|
verdict: 'ok' | 'broken' | 'unknown';
|
package/dist/liveModelCatalog.js
CHANGED
|
@@ -189,6 +189,45 @@ function rowIdentityUnreadable(row) {
|
|
|
189
189
|
return true;
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
|
+
function aliasesOf(cat) {
|
|
193
|
+
const ALIASES_ABSENT = Object.freeze({ kind: 'absent' });
|
|
194
|
+
const ALIASES_UNREADABLE = Object.freeze({ kind: 'unreadable' });
|
|
195
|
+
try {
|
|
196
|
+
const d = Object.getOwnPropertyDescriptor(cat, 'aliases');
|
|
197
|
+
if (d === undefined)
|
|
198
|
+
return ALIASES_ABSENT;
|
|
199
|
+
if (!Object.hasOwn(d, 'value'))
|
|
200
|
+
return ALIASES_UNREADABLE;
|
|
201
|
+
const raw = d.value;
|
|
202
|
+
if (raw === undefined)
|
|
203
|
+
return ALIASES_ABSENT;
|
|
204
|
+
if (!Array.isArray(raw))
|
|
205
|
+
return ALIASES_UNREADABLE;
|
|
206
|
+
const n = ownDataOf(raw, 'length');
|
|
207
|
+
if (typeof n !== 'number' || !Number.isSafeInteger(n) || n < 0)
|
|
208
|
+
return ALIASES_UNREADABLE;
|
|
209
|
+
const entries = [];
|
|
210
|
+
for (let i = 0; i < n; i += 1) {
|
|
211
|
+
const ed = Object.getOwnPropertyDescriptor(raw, String(i));
|
|
212
|
+
if (ed === undefined || !Object.hasOwn(ed, 'value'))
|
|
213
|
+
return ALIASES_UNREADABLE;
|
|
214
|
+
const e = ed.value;
|
|
215
|
+
if (e === null || typeof e !== 'object' || !isPlainRecord(e))
|
|
216
|
+
return ALIASES_UNREADABLE;
|
|
217
|
+
const nd = Object.getOwnPropertyDescriptor(e, 'name');
|
|
218
|
+
if (nd === undefined || !Object.hasOwn(nd, 'value') || typeof nd.value !== 'string' || nd.value.length === 0)
|
|
219
|
+
return ALIASES_UNREADABLE;
|
|
220
|
+
const bit = atMentionBitOf(e);
|
|
221
|
+
if (bit === 'malformed' || bit === 'unreadable')
|
|
222
|
+
return ALIASES_UNREADABLE;
|
|
223
|
+
appendOwnElement(entries, Object.freeze({ name: nd.value, bit }));
|
|
224
|
+
}
|
|
225
|
+
return Object.freeze({ kind: 'listed', entries: Object.freeze(entries) });
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
return ALIASES_UNREADABLE;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
192
231
|
export function modelAcceptanceOf(model, catalog = getLiveModelCatalog()) {
|
|
193
232
|
const name = typeof model === 'string' && model.length > 0 ? model : undefined;
|
|
194
233
|
try {
|
|
@@ -211,22 +250,45 @@ export function modelAcceptanceOf(model, catalog = getLiveModelCatalog()) {
|
|
|
211
250
|
defaultModel = undefined;
|
|
212
251
|
}
|
|
213
252
|
const withDefault = defaultModel === undefined ? {} : { defaultModel };
|
|
253
|
+
const cannotSay = () => Object.freeze({ verdict: 'unknown', why: 'catalog_unreadable', model: name });
|
|
214
254
|
const reservedReading = () => Object.freeze({ verdict: 'unknown', why: 'reserved_word', model: name, ...withDefault });
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
const
|
|
220
|
-
if (
|
|
221
|
-
return
|
|
222
|
-
if (
|
|
255
|
+
const notMentionable = () => Object.freeze({ verdict: 'refused', why: 'not_at_mentionable', model: name, ...withDefault });
|
|
256
|
+
const byRow = (row) => {
|
|
257
|
+
if (ownDataOf(row, 'enabled') === false)
|
|
258
|
+
return Object.freeze({ verdict: 'refused', why: 'disabled', model: name, ...withDefault });
|
|
259
|
+
const bit = atMentionBitOf(row);
|
|
260
|
+
if (bit === 'refused')
|
|
261
|
+
return notMentionable();
|
|
262
|
+
if (bit === 'malformed' || bit === 'unreadable')
|
|
263
|
+
return cannotSay();
|
|
264
|
+
return Object.freeze({ verdict: 'accepted', why: 'listed', model: name, ...withDefault });
|
|
265
|
+
};
|
|
266
|
+
const aliases = aliasesOf(catalog);
|
|
267
|
+
if (aliases.kind === 'absent') {
|
|
268
|
+
if (reserved)
|
|
223
269
|
return reservedReading();
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
270
|
+
const row = liveModelRowOf(catalog, name);
|
|
271
|
+
if (row !== undefined) {
|
|
272
|
+
const normalized = ownDataOf(row, 'name');
|
|
273
|
+
if (typeof normalized !== 'string' || normalized.length === 0)
|
|
274
|
+
return cannotSay();
|
|
275
|
+
if (isReservedModelWord(normalized))
|
|
276
|
+
return reservedReading();
|
|
277
|
+
return byRow(row);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
const row = rows.find((r) => ownDataOf(r, 'name') === name);
|
|
282
|
+
if (row !== undefined)
|
|
283
|
+
return byRow(row);
|
|
284
|
+
if (aliases.kind === 'unreadable')
|
|
285
|
+
return cannotSay();
|
|
286
|
+
const alias = aliases.entries.find((a) => a.name === name);
|
|
287
|
+
if (alias !== undefined)
|
|
288
|
+
return alias.bit === 'refused' ? notMentionable() : Object.freeze({ verdict: 'accepted', why: 'aliased', model: name, ...withDefault });
|
|
227
289
|
}
|
|
228
290
|
if (rows.some(rowIdentityUnreadable))
|
|
229
|
-
return
|
|
291
|
+
return cannotSay();
|
|
230
292
|
const dropped = droppedModelEntriesOf(catalog);
|
|
231
293
|
if (droppedDisabledNamed(dropped, name))
|
|
232
294
|
return Object.freeze({ verdict: 'refused', why: 'disabled', model: name, ...withDefault });
|
|
@@ -246,7 +308,7 @@ export function modelNotServedNotice(reading, lang) {
|
|
|
246
308
|
if (ownDataOf(reading, 'verdict') !== 'refused')
|
|
247
309
|
return undefined;
|
|
248
310
|
const why = ownDataOf(reading, 'why');
|
|
249
|
-
if (why !== 'not_listed' && why !== 'disabled')
|
|
311
|
+
if (why !== 'not_listed' && why !== 'disabled' && why !== 'not_at_mentionable')
|
|
250
312
|
return undefined;
|
|
251
313
|
const model = ownDataOf(reading, 'model');
|
|
252
314
|
const shown = typeof model === 'string' && model.length > 0 ? quoteUntrustedForSentence(model, NOT_SERVED_NAME_MAX) : undefined;
|
|
@@ -254,6 +316,11 @@ export function modelNotServedNotice(reading, lang) {
|
|
|
254
316
|
return undefined;
|
|
255
317
|
const dm = ownDataOf(reading, 'defaultModel');
|
|
256
318
|
const fallback = typeof dm === 'string' && dm.length > 0 ? quoteUntrustedForSentence(dm, NOT_SERVED_NAME_MAX) : undefined;
|
|
319
|
+
if (why === 'not_at_mentionable') {
|
|
320
|
+
return fallback === undefined
|
|
321
|
+
? renderMessage(msg('model.notMentionable.noDefault', { model: shown }), lang)
|
|
322
|
+
: renderMessage(msg('model.notMentionable.withDefault', { model: shown, default: fallback }), lang);
|
|
323
|
+
}
|
|
257
324
|
return fallback === undefined
|
|
258
325
|
? renderMessage(msg('model.notServed.noDefault', { model: shown }), lang)
|
|
259
326
|
: renderMessage(msg('model.notServed.withDefault', { model: shown, default: fallback }), lang);
|
|
@@ -420,6 +487,24 @@ export function modelPlaneOf(catalog = getLiveModelCatalog()) {
|
|
|
420
487
|
return unreadable;
|
|
421
488
|
}
|
|
422
489
|
}
|
|
490
|
+
export function modelPlaneSentence(reading, lang) {
|
|
491
|
+
try {
|
|
492
|
+
if (reading === null || typeof reading !== 'object' || Array.isArray(reading))
|
|
493
|
+
return undefined;
|
|
494
|
+
if (ownDataOf(reading, 'kind') !== 'read')
|
|
495
|
+
return undefined;
|
|
496
|
+
const served = ownDataOf(reading, 'servedTable');
|
|
497
|
+
const stance = ownDataOf(reading, 'catalog');
|
|
498
|
+
if (served !== 'env')
|
|
499
|
+
return undefined;
|
|
500
|
+
if (stance !== 'absent' && stance !== 'refused')
|
|
501
|
+
return undefined;
|
|
502
|
+
return renderMessage(msg('model.catalog.envServed', { stance }), lang);
|
|
503
|
+
}
|
|
504
|
+
catch {
|
|
505
|
+
return undefined;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
423
508
|
const CONFIG_DOMAIN_WORD = /^[a-z][a-z0-9_.-]{0,63}$/;
|
|
424
509
|
export function modelCandidateRejectedContent(reading, lang) {
|
|
425
510
|
try {
|
|
@@ -467,6 +552,7 @@ export function readLiveModelCatalog(body) {
|
|
|
467
552
|
const droppedKey = envelopeKey(body, 'droppedEntries');
|
|
468
553
|
const candidateKey = envelopeKey(body, 'candidateRejected');
|
|
469
554
|
const planeKey = envelopeKey(body, 'modelPlane');
|
|
555
|
+
const aliasesKey = envelopeKey(body, 'aliases');
|
|
470
556
|
const raw = modelsKey.present ? modelsKey.value : undefined;
|
|
471
557
|
if (!Array.isArray(raw))
|
|
472
558
|
return unreadableCatalog('models_not_array');
|
|
@@ -479,7 +565,7 @@ export function readLiveModelCatalog(body) {
|
|
|
479
565
|
let unreadableRows = 0;
|
|
480
566
|
for (let i = 0; i < len; i += 1) {
|
|
481
567
|
const d = Object.getOwnPropertyDescriptor(raw, String(i));
|
|
482
|
-
const row = d !== undefined && Object.hasOwn(d, 'value') ?
|
|
568
|
+
const row = d !== undefined && Object.hasOwn(d, 'value') ? modelRowTransitCopy(d.value) : undefined;
|
|
483
569
|
if (row === undefined || names.has(row.name)) {
|
|
484
570
|
unreadableRows += 1;
|
|
485
571
|
continue;
|
|
@@ -504,12 +590,60 @@ export function readLiveModelCatalog(body) {
|
|
|
504
590
|
out.candidateRejected = frozenJsonCopyOf(candidateKey.value) ?? null;
|
|
505
591
|
if (planeKey.present && planeKey.value !== undefined)
|
|
506
592
|
out.modelPlane = frozenJsonCopyOf(planeKey.value) ?? null;
|
|
593
|
+
if (aliasesKey.present && aliasesKey.value !== undefined)
|
|
594
|
+
out.aliases = aliasesTransitCopy(aliasesKey.value);
|
|
507
595
|
return Object.freeze({ kind: 'read', catalog: Object.freeze(out), unreadableRows, ...(defaultModelMalformed ? { defaultModelMalformed: true } : {}) });
|
|
508
596
|
}
|
|
509
597
|
catch {
|
|
510
598
|
return unreadableCatalog('unreadable');
|
|
511
599
|
}
|
|
512
600
|
}
|
|
601
|
+
function aliasesTransitCopy(v) {
|
|
602
|
+
const copy = frozenJsonCopyOf(v);
|
|
603
|
+
if (copy === undefined)
|
|
604
|
+
return null;
|
|
605
|
+
const before = aliasesOf({ aliases: v });
|
|
606
|
+
const after = aliasesOf({ aliases: copy });
|
|
607
|
+
if (before.kind !== after.kind)
|
|
608
|
+
return null;
|
|
609
|
+
if (before.kind === 'listed' && after.kind === 'listed') {
|
|
610
|
+
if (before.entries.length !== after.entries.length)
|
|
611
|
+
return null;
|
|
612
|
+
for (let i = 0; i < before.entries.length; i += 1) {
|
|
613
|
+
const b = before.entries[i];
|
|
614
|
+
const a = after.entries[i];
|
|
615
|
+
if (b === undefined || a === undefined || b.name !== a.name || b.bit !== a.bit)
|
|
616
|
+
return null;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
return copy;
|
|
620
|
+
}
|
|
621
|
+
const ACCEPTANCE_ROW_KEYS = Object.freeze(['id', 'enabled', 'atMentionable']);
|
|
622
|
+
function modelRowTransitCopy(row) {
|
|
623
|
+
const copy = liveModelRowCopy(row);
|
|
624
|
+
if (copy === undefined || row === null || typeof row !== 'object')
|
|
625
|
+
return copy;
|
|
626
|
+
let restated;
|
|
627
|
+
for (const key of ACCEPTANCE_ROW_KEYS) {
|
|
628
|
+
if (Object.hasOwn(copy, key))
|
|
629
|
+
continue;
|
|
630
|
+
let value;
|
|
631
|
+
try {
|
|
632
|
+
const d = Object.getOwnPropertyDescriptor(row, key);
|
|
633
|
+
if (d === undefined)
|
|
634
|
+
continue;
|
|
635
|
+
value = Object.hasOwn(d, 'value') ? (d.value === undefined ? undefined : (frozenJsonCopyOf(d.value) ?? null)) : null;
|
|
636
|
+
}
|
|
637
|
+
catch {
|
|
638
|
+
value = null;
|
|
639
|
+
}
|
|
640
|
+
if (value === undefined)
|
|
641
|
+
continue;
|
|
642
|
+
restated ??= { ...copy };
|
|
643
|
+
Object.defineProperty(restated, key, { value, enumerable: true, writable: true, configurable: true });
|
|
644
|
+
}
|
|
645
|
+
return restated === undefined ? copy : Object.freeze(restated);
|
|
646
|
+
}
|
|
513
647
|
function droppedEntriesCopy(v) {
|
|
514
648
|
if (!Array.isArray(v))
|
|
515
649
|
return frozenJsonCopyOf(v) ?? null;
|
|
@@ -544,23 +678,27 @@ export function liveDefaultModelOf(catalog = getLiveModelCatalog()) {
|
|
|
544
678
|
return Object.freeze({ kind: 'unknown', why: 'unreadable' });
|
|
545
679
|
}
|
|
546
680
|
}
|
|
681
|
+
function atMentionBitOf(o) {
|
|
682
|
+
const d = Object.getOwnPropertyDescriptor(o, 'atMentionable');
|
|
683
|
+
if (d === undefined)
|
|
684
|
+
return 'not_governed';
|
|
685
|
+
if (!(Object.hasOwn(d, 'value')))
|
|
686
|
+
return 'unreadable';
|
|
687
|
+
if (d.value === undefined)
|
|
688
|
+
return 'not_governed';
|
|
689
|
+
if (d.value === true)
|
|
690
|
+
return 'allowed';
|
|
691
|
+
if (d.value === false)
|
|
692
|
+
return 'refused';
|
|
693
|
+
return 'malformed';
|
|
694
|
+
}
|
|
547
695
|
export function atMentionOf(model, catalog = getLiveModelCatalog()) {
|
|
548
696
|
try {
|
|
549
697
|
const target = targetRowOf(model, catalog);
|
|
550
698
|
if (target.kind !== 'row')
|
|
551
699
|
return Object.freeze({ kind: 'unknown', why: target.why });
|
|
552
|
-
const
|
|
553
|
-
|
|
554
|
-
return Object.freeze({ kind: 'not_governed' });
|
|
555
|
-
if (!(Object.hasOwn(d, 'value')))
|
|
556
|
-
return Object.freeze({ kind: 'unknown', why: 'unreadable' });
|
|
557
|
-
if (d.value === undefined)
|
|
558
|
-
return Object.freeze({ kind: 'not_governed' });
|
|
559
|
-
if (d.value === true)
|
|
560
|
-
return Object.freeze({ kind: 'allowed' });
|
|
561
|
-
if (d.value === false)
|
|
562
|
-
return Object.freeze({ kind: 'refused' });
|
|
563
|
-
return Object.freeze({ kind: 'unknown', why: 'malformed' });
|
|
700
|
+
const bit = atMentionBitOf(target.row);
|
|
701
|
+
return bit === 'malformed' || bit === 'unreadable' ? Object.freeze({ kind: 'unknown', why: bit }) : Object.freeze({ kind: bit });
|
|
564
702
|
}
|
|
565
703
|
catch {
|
|
566
704
|
return Object.freeze({ kind: 'unknown', why: 'unreadable' });
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type EngineIdentityView } from './engineIdentity.js';
|
|
2
|
+
import type { UiLanguage } from './env/uiLanguage.js';
|
|
3
|
+
export interface LocalEnginePlanFingerprint {
|
|
4
|
+
readonly group: string;
|
|
5
|
+
readonly fingerprint: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LocalEngineAnchorReading {
|
|
8
|
+
readonly pid: number;
|
|
9
|
+
readonly port: number;
|
|
10
|
+
readonly identity: EngineIdentityView;
|
|
11
|
+
readonly planFingerprints?: readonly LocalEnginePlanFingerprint[];
|
|
12
|
+
readonly logPath?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface LocalEnginePlanDrift {
|
|
15
|
+
readonly group: string;
|
|
16
|
+
readonly drift: 'same' | 'different' | 'unknown';
|
|
17
|
+
}
|
|
18
|
+
export type LocalEngineAnchorPidState = 'gone' | 'alive' | 'recycled' | 'unknown';
|
|
19
|
+
export type LocalEngineDataRootRelation = 'same' | 'different' | 'unknown';
|
|
20
|
+
export interface LocalEngineJudgeInput {
|
|
21
|
+
readonly anchor: unknown;
|
|
22
|
+
readonly anchorPid: LocalEngineAnchorPidState;
|
|
23
|
+
readonly health: object | null;
|
|
24
|
+
readonly dataRootRelation: LocalEngineDataRootRelation;
|
|
25
|
+
readonly ownVersion: string | undefined;
|
|
26
|
+
}
|
|
27
|
+
export interface LocalEngineRef {
|
|
28
|
+
readonly pid: number;
|
|
29
|
+
readonly port: number;
|
|
30
|
+
readonly identity: EngineIdentityView;
|
|
31
|
+
readonly version?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface LocalEngineAnchoredProcess {
|
|
34
|
+
readonly pid: number;
|
|
35
|
+
readonly startedAt?: number;
|
|
36
|
+
}
|
|
37
|
+
export type LocalEngineVerdict = {
|
|
38
|
+
readonly kind: 'none';
|
|
39
|
+
readonly blocked?: 'high-water-unreadable';
|
|
40
|
+
} | {
|
|
41
|
+
readonly kind: 'unanswered';
|
|
42
|
+
readonly pid: number;
|
|
43
|
+
readonly startedAt?: number;
|
|
44
|
+
readonly reason: 'no-answer' | 'unverifiable';
|
|
45
|
+
} | {
|
|
46
|
+
readonly kind: 'stranger';
|
|
47
|
+
readonly mismatch: 'pid' | 'generation' | 'data-root';
|
|
48
|
+
readonly anchored: LocalEngineAnchoredProcess | null;
|
|
49
|
+
} | {
|
|
50
|
+
readonly kind: 'draining';
|
|
51
|
+
readonly engine: LocalEngineRef;
|
|
52
|
+
readonly deadlineAt: number;
|
|
53
|
+
} | {
|
|
54
|
+
readonly kind: 'attach' | 'version-unknown';
|
|
55
|
+
readonly engine: LocalEngineRef;
|
|
56
|
+
} | {
|
|
57
|
+
readonly kind: 'ahead';
|
|
58
|
+
readonly engine: LocalEngineRef;
|
|
59
|
+
readonly running: string;
|
|
60
|
+
readonly own: string;
|
|
61
|
+
readonly servesWhileWaiting: boolean;
|
|
62
|
+
} | {
|
|
63
|
+
readonly kind: 'behind';
|
|
64
|
+
readonly engine: LocalEngineRef | null;
|
|
65
|
+
readonly running: string;
|
|
66
|
+
readonly own: string;
|
|
67
|
+
readonly source: 'running' | 'high-water';
|
|
68
|
+
};
|
|
69
|
+
export type LocalEngineUpgradePath = 'cli-update' | 'app-update';
|
|
70
|
+
export declare function localEngineAnchorOf(raw: unknown): LocalEngineAnchorReading | null;
|
|
71
|
+
export declare function localEnginePlanDriftOf(anchor: unknown, ownPlan: readonly LocalEnginePlanFingerprint[]): readonly LocalEnginePlanDrift[];
|
|
72
|
+
export declare function sameLocalEngineInstance(x: object, y: object, anchorPidAlive: boolean): boolean;
|
|
73
|
+
export declare function judgeLocalEngine(input: LocalEngineJudgeInput): LocalEngineVerdict;
|
|
74
|
+
export declare function localEngineLaneOf(verdict: LocalEngineVerdict): 'self-spawned' | undefined;
|
|
75
|
+
export declare function localEngineVerdictSentence(verdict: LocalEngineVerdict, upgrade: LocalEngineUpgradePath | undefined, lang?: UiLanguage): string | undefined;
|