@sema-agent/client-core 0.112.1 → 0.113.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 +130 -0
- package/README.md +36 -23
- package/dist/adapt/arms.js +7 -1
- package/dist/adapt/textStream.d.ts +2 -0
- package/dist/adapt/textStream.js +27 -1
- package/dist/adapter/activeRunSelfHeal.d.ts +7 -5
- package/dist/adapter/activeRunSelfHeal.js +38 -66
- package/dist/adapter/downstream/eventToSdkMessage.js +4 -0
- package/dist/adapter/downstream/terminalToSdkResult.d.ts +8 -0
- package/dist/adapter/downstream/terminalToSdkResult.js +36 -1
- package/dist/adapter/runStream.d.ts +2 -12
- package/dist/adapter/runStream.js +46 -19
- package/dist/agentSession/engineAgentRegistryRead.js +2 -1
- package/dist/agentSession/engineSessionBackgroundStop.js +2 -2
- package/dist/attachmentOutcome.d.ts +35 -0
- package/dist/attachmentOutcome.js +192 -0
- package/dist/attachmentPathPlan.d.ts +67 -0
- package/dist/attachmentPathPlan.js +203 -0
- package/dist/attachmentRoute.d.ts +9 -1
- package/dist/attachmentRoute.js +23 -2
- package/dist/declared/supportFloorDeclared.d.ts +1 -1
- package/dist/declared/supportFloorDeclared.js +1 -0
- package/dist/deviceRebind.js +2 -3
- package/dist/displayUntrusted.js +126 -19
- package/dist/engineAddress.d.ts +1 -1
- package/dist/engineAddress.js +9 -6
- package/dist/engineErrorCodes.d.ts +3 -0
- package/dist/engineErrorCodes.js +4 -0
- package/dist/engineNoticeCodes.d.ts +34 -4
- package/dist/engineNoticeCodes.js +133 -6
- package/dist/engineUnavailable.d.ts +4 -2
- package/dist/engineUnavailable.js +99 -17
- package/dist/fleet/fleetLedger.d.ts +9 -3
- package/dist/fleet/fleetLedger.js +112 -16
- package/dist/fleet/fleetProjection.d.ts +5 -0
- package/dist/fleet/fleetProjection.js +9 -1
- package/dist/gateVocabulary.d.ts +7 -0
- package/dist/gateVocabulary.js +40 -14
- package/dist/generated/engineFactTables.d.ts +4 -2
- package/dist/generated/engineFactTables.js +198 -2
- package/dist/generated/engineNoticeTables.js +56 -8
- package/dist/generated/settingsSchemaFns.d.ts +7 -0
- package/dist/generated/settingsSchemaFns.js +11 -0
- package/dist/generated/settingsSchemaHash.d.ts +1 -0
- package/dist/generated/settingsSchemaHash.js +58 -0
- package/dist/generated/settingsSchemaOwnKeyRead.js +6 -1
- package/dist/generated/settingsSchemaTables.d.ts +3 -2
- package/dist/generated/settingsSchemaTables.js +14 -0
- package/dist/generated/settingsSchemaTightenVerdict.d.ts +1 -0
- package/dist/generated/settingsSchemaTightenVerdict.js +125 -0
- package/dist/headlessPermissionModeWire.d.ts +7 -2
- package/dist/headlessPermissionModeWire.js +77 -8
- package/dist/hitl/approvalDecisionDoor.d.ts +24 -0
- package/dist/hitl/approvalDecisionDoor.js +77 -0
- package/dist/hitl/approvalDelivery.d.ts +6 -0
- package/dist/hitl/approvalDelivery.js +57 -7
- package/dist/hitl/approvalResolution.d.ts +6 -3
- package/dist/hitl/approvalResolution.js +24 -2
- package/dist/hitl/approvalsFeed.js +1 -1
- package/dist/hitl/automaticAnswerVerdict.d.ts +1 -1
- package/dist/hitl/decisionSend.d.ts +7 -4
- package/dist/hitl/decisionSend.js +90 -41
- package/dist/hitl/frameRouter.d.ts +3 -3
- package/dist/hitl/frameRouter.js +5 -0
- package/dist/hitl/hitlHostSurface.d.ts +3 -2
- package/dist/hitl/hitlHostSurface.js +5 -3
- package/dist/hitl/legacyApprovalShapes.d.ts +142 -0
- package/dist/hitl/legacyApprovalShapes.js +1 -0
- package/dist/hitl/livePendingAsk.d.ts +4 -4
- package/dist/hitl/livePendingAsk.js +5 -3
- package/dist/hitl/parkResolver.js +1 -1
- package/dist/hitl/persistedRulesWire.js +2 -2
- package/dist/hitl/planReviewCard.d.ts +2 -1
- package/dist/hitl/planReviewCard.js +64 -1
- package/dist/hitl/planReviewWire.d.ts +30 -0
- package/dist/hitl/planReviewWire.js +204 -65
- package/dist/hitl/sessionPolicyWire.js +16 -7
- package/dist/hitl/subagentSource.d.ts +1 -0
- package/dist/hitl/subagentSource.js +11 -0
- package/dist/hitl/toolApprovalWire.d.ts +34 -10
- package/dist/hitl/toolApprovalWire.js +182 -33
- package/dist/hookMatcherVerdict.d.ts +2 -1
- package/dist/hookMatcherVerdict.js +3 -2
- package/dist/hooksReaderGenerations.d.ts +8 -0
- package/dist/hooksReaderGenerations.js +49 -0
- package/dist/hooksWireCaps.js +43 -18
- package/dist/hostSettingsSource.d.ts +1 -1
- package/dist/hostSettingsSource.js +2 -2
- package/dist/hostTurnSettings.d.ts +2 -2
- package/dist/hostTurnSettings.js +87 -47
- package/dist/humanTurn.d.ts +2 -1
- package/dist/humanTurn.js +44 -13
- package/dist/humanTurnRead.d.ts +7 -0
- package/dist/humanTurnRead.js +23 -14
- package/dist/humanTurnSentences.js +3 -0
- package/dist/i18n/messages.en.d.ts +91 -5
- package/dist/i18n/messages.en.js +98 -12
- package/dist/i18n/messages.zh.js +108 -15
- package/dist/index.d.ts +29 -15
- package/dist/index.js +17 -9
- package/dist/liveModelCatalog.js +1 -0
- package/dist/liveQuestionStore.d.ts +2 -0
- package/dist/liveQuestionStore.js +7 -2
- package/dist/localConfig/kernel.d.ts +2 -1
- package/dist/localConfig/kernel.js +12 -18
- package/dist/localConfig/mcp/edit.js +25 -27
- package/dist/localConfig/mcp/servers.js +5 -8
- package/dist/localConfig/modelPool.d.ts +6 -1
- package/dist/localConfig/modelPool.js +104 -27
- package/dist/localConfig/modelPoolWords.d.ts +2 -0
- package/dist/localConfig/modelPoolWords.js +1 -0
- package/dist/localConfig/settingsWrite.js +1 -14
- package/dist/localConfig/skills.js +9 -16
- package/dist/localEngineSpawn.d.ts +29 -1
- package/dist/localEngineSpawn.js +62 -1
- package/dist/mcpLiveness.d.ts +1 -1
- package/dist/mcpProbeWire.js +2 -2
- package/dist/mcpReconnect.js +2 -2
- package/dist/model/catalogLoader.js +3 -17
- package/dist/model/onboardJudgement.d.ts +8 -0
- package/dist/model/onboardJudgement.js +8 -3
- package/dist/model/onboardSteps.d.ts +19 -0
- package/dist/model/onboardSteps.js +76 -0
- package/dist/notifications.js +6 -0
- package/dist/ownKey.d.ts +4 -0
- package/dist/ownKey.js +61 -0
- package/dist/pathShape.d.ts +14 -0
- package/dist/pathShape.js +44 -0
- package/dist/planReviewCardFacts.d.ts +3 -0
- package/dist/planReviewCardFacts.js +20 -3
- package/dist/pluginHooksWire.d.ts +20 -8
- package/dist/pluginHooksWire.js +204 -86
- package/dist/prepareRefusal.d.ts +2 -0
- package/dist/prepareRefusal.js +11 -1
- package/dist/request/taskRequest.js +3 -1
- package/dist/resultFrameKeys.d.ts +1 -0
- package/dist/resultFrameKeys.js +3 -0
- package/dist/resumeRefusalCopy.js +3 -1
- package/dist/retryStatus.d.ts +11 -1
- package/dist/retryStatus.js +15 -4
- package/dist/runTerminal.d.ts +1 -0
- package/dist/runTerminal.js +15 -1
- package/dist/sdkWireTransit.d.ts +1 -1
- package/dist/seatContract.d.ts +12 -3
- package/dist/seatContract.js +24 -13
- package/dist/sessionEngine.js +1 -1
- package/dist/sessionHooksRoster.js +8 -6
- package/dist/sessionIdSegment.d.ts +0 -1
- package/dist/sessionIdSegment.js +1 -3
- package/dist/sessionMemoryErase.js +2 -2
- package/dist/sessionMemoryStatus.js +2 -1
- package/dist/sessionOccupant.d.ts +29 -0
- package/dist/sessionOccupant.js +78 -0
- package/dist/settingsHooksSalvage.d.ts +4 -1
- package/dist/settingsHooksSalvage.js +22 -9
- package/dist/skillOverrideChain.d.ts +3 -0
- package/dist/skillOverrideChain.js +31 -4
- package/dist/skillsWireCaps.d.ts +16 -2
- package/dist/skillsWireCaps.js +47 -20
- package/dist/subagent/agentStateDetail.js +32 -8
- package/dist/subagent/engineCompactWire.js +48 -36
- package/dist/subagent/engineDelegatedPrompt.d.ts +3 -2
- package/dist/subagent/engineDelegatedPrompt.js +65 -28
- package/dist/subagentEditOutcomes.d.ts +9 -0
- package/dist/subagentEditOutcomes.js +43 -0
- package/dist/supportFloor.d.ts +2 -1
- package/dist/supportFloor.js +1 -1
- package/dist/toolResult.js +4 -2
- package/dist/toolRoster.d.ts +1 -0
- package/dist/toolRoster.js +1 -0
- package/dist/usageAnalytics.js +2 -1
- package/dist/userAttachmentEnvelope.d.ts +11 -0
- package/dist/userAttachmentEnvelope.js +7 -2
- package/dist/userAttachmentSeat.d.ts +7 -1
- package/dist/userAttachmentSeat.js +44 -7
- package/dist/wiringInstructionsAttribution.js +8 -2
- package/docs/INTEGRATION-CLIENTS.md +1588 -16
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -87,7 +87,7 @@ export { readModsDeploymentPackages } from './engineHealthFacts.js';
|
|
|
87
87
|
export { localEngineAnchorOf, localEnginePlanDriftOf, judgeLocalEngine, localEngineLaneOf, localEngineVerdictSentence } from './localEngineJudge.js';
|
|
88
88
|
export { countClientRegistry, fleetBackgroundLiveOf, localEngineSelfOf, localEngineRegistryStatusOf, localEngineIdle, localEngineDemandOf, localEngineExitFate, localEngineExitFateSentence, } from './localEngineOccupancy.js';
|
|
89
89
|
export { LOCAL_ENGINE_SWAP_CAUSES, localEngineSwapAutoable, engineSwapCardOf, engineSwapCardText } from './localEngineSwapCard.js';
|
|
90
|
-
export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, localEngineFirstShareSentence, } from './localEngineSpawn.js';
|
|
90
|
+
export { LOCAL_ENGINE_SPAWN_ENV, LOCAL_ENGINE_HOST_BITS, LOCAL_ENGINE_SPAWN_SHAPE, localEngineOperatorSingleUserOf, localEngineSpawnEnv, localEngineSeedEnv, localEnginePrincipalOf, localEnginePrincipalSentence, localEngineFirstShareSentence, LOCAL_ENGINE_SEED_REFUSALS, LOCAL_ENGINE_BIND_DISCLOSURES, localEngineSeedRefusalCodeOf, localEngineBindGateOf, localEngineBindSentence, } from './localEngineSpawn.js';
|
|
91
91
|
export { ENGINE_UNAVAILABLE_REASONS, ENGINE_INSTALL_SHAPES, ENGINE_BOOT_REFUSAL_CODES, engineBootRefusalOf, engineBootRefusalSentence, engineUnavailableLine, } from './engineUnavailable.js';
|
|
92
92
|
export { LOCAL_ENGINE_STOP_LADDER, stopLadderStep } from './localEngineStopLadder.js';
|
|
93
93
|
export { LOCAL_ENGINE_INITIAL_STATE, LOCAL_ENGINE_FAIL_CODES, localEngineStep, engineSwapAnswerOutcomeOf } from './localEngineStep.js';
|
|
@@ -124,6 +124,7 @@ export { stripSystemReminderBlocks, unwrapSystemReminder } from './systemReminde
|
|
|
124
124
|
export { findSystemReminderOpenTag } from './systemReminderTag.js';
|
|
125
125
|
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';
|
|
126
126
|
export { prepareRefusalCodeOf, prepareRefusalNoteOf } from './prepareRefusal.js';
|
|
127
|
+
export { attachmentOutcomesOf, attachmentOutcomeText, ATTACHMENT_OUTCOMES } from './attachmentOutcome.js';
|
|
127
128
|
export * from './agentsWireCaps.js';
|
|
128
129
|
export { engineToolDirectoryOf } from './engineToolDirectory.js';
|
|
129
130
|
export * from './attachmentsWireCaps.js';
|
|
@@ -188,6 +189,7 @@ export { abortableSleep } from './abortableSleep.js';
|
|
|
188
189
|
export { DEFAULT_SESSION_KEY } from './sessionSlot.js';
|
|
189
190
|
export * from './scratchpadWireCaps.js';
|
|
190
191
|
export * from './toolResult.js';
|
|
192
|
+
export { subagentEditOutcomesOf, subagentEditOutcomesSentence } from './subagentEditOutcomes.js';
|
|
191
193
|
export * from './diff/patch.js';
|
|
192
194
|
export * from './sandboxWire.js';
|
|
193
195
|
export * from './scenarioWire.js';
|
|
@@ -196,7 +198,7 @@ export * from './limitsWire.js';
|
|
|
196
198
|
export * from './interactiveToolsWire.js';
|
|
197
199
|
export * from './headlessPermissionModeWire.js';
|
|
198
200
|
export * from './headlessReconnectWire.js';
|
|
199
|
-
export { coerceTaskStatus, coerceWorkflowStatus, CONTROL_TOOL_VERBS, FLEET_TASK_ROW_KEYS_NOT_PROJECTED, FLEET_TASK_ROW_WIRE_KEYS, FLEET_TASK_VIEW_KEYS, FLEET_WORKFLOW_ROW_KEYS_NOT_PROJECTED, FLEET_WORKFLOW_ROW_WIRE_KEYS, FLEET_WORKFLOW_VIEW_KEYS, projectDescription, projectTasks, projectWorkflows, wireResumable, wireRowUsage, workflowRunDisplayStatusOf, } from './fleet/fleetProjection.js';
|
|
201
|
+
export { coerceTaskStatus, coerceWorkflowStatus, CONTROL_TOOL_VERBS, FLEET_LEDGER_TASK_VIEW_EXTRA_KEYS, FLEET_TASK_ROW_KEYS_NOT_PROJECTED, FLEET_TASK_ROW_WIRE_KEYS, FLEET_TASK_VIEW_KEYS, FLEET_WORKFLOW_ROW_KEYS_NOT_PROJECTED, FLEET_WORKFLOW_ROW_WIRE_KEYS, FLEET_WORKFLOW_VIEW_KEYS, fleetTaskShownStatus, projectDescription, projectTasks, projectWorkflows, wireResumable, wireRowUsage, workflowRunDisplayStatusOf, } from './fleet/fleetProjection.js';
|
|
200
202
|
export * from './fleet/fleetLedger.js';
|
|
201
203
|
export * from './fleet/bgSubagentRow.js';
|
|
202
204
|
export * from './fleet/workflowSizeWarning.js';
|
|
@@ -231,11 +233,14 @@ export { createPromptDeliveryLedger, promptKnownUndelivered, withoutUndeliveredP
|
|
|
231
233
|
export { mintUserAttachmentEnvelope, showAttachmentName } from './userAttachmentEnvelope.js';
|
|
232
234
|
export { showAttachmentNameCc } from './userAttachmentEnvelope.js';
|
|
233
235
|
export { encodeHumanTurn, deliveredUuidsOf, imageSentOnUnknownVision, otherBodyBytesOf } from './humanTurn.js';
|
|
236
|
+
export { attachmentPathOverflowText } from './attachmentPathPlan.js';
|
|
237
|
+
export { attachmentRoutePlanOf } from './attachmentPathPlan.js';
|
|
234
238
|
export { batchCompatible, planQueuedDelivery, humanTurnCapsOf, humanTextForKeywordScan, selfHealSteerEligible } from './queuedDelivery.js';
|
|
235
239
|
export { SUBMISSION_SURFACES, SUBMISSION_ORIGINS, SUBMISSION_TOOLS, SUBMISSION_KINDS, submissionProvenanceOf, submissionIdentityOf, requestLaneOf, submissionOriginOf, } from './request/submissionIdentity.js';
|
|
236
240
|
export { taskNotificationOf, taskNotificationQueueCommand } from './notifications.js';
|
|
237
241
|
export { taskNotificationAdmissionOf } from './taskNotificationAdmission.js';
|
|
238
242
|
export { resultErrorCodeInTextOf } from './resultFrameKeys.js';
|
|
243
|
+
export { resultTurnAbortedByOf } from './resultFrameKeys.js';
|
|
239
244
|
export { humanTurnRefusalSentence, humanTurnDegradedSentence, printImageVisionSentence } from './humanTurnSentences.js';
|
|
240
245
|
export { observedUserAttachmentSeat, projectUserAttachmentSeatCapability, userAttachmentSeatAdmits } from './userAttachmentSeat.js';
|
|
241
246
|
export { attachmentRouteOf, attachmentWithheldReasonText, attachmentLocalCopyNote, ATTACHMENT_ROUTE_LEGS, TOOLS_LOCATIONS } from './attachmentRoute.js';
|
|
@@ -258,10 +263,10 @@ export * from './detachWire.js';
|
|
|
258
263
|
export * from './workflowMonitor.js';
|
|
259
264
|
export * from './workflowClient.js';
|
|
260
265
|
export * from './hooksWireCaps.js';
|
|
261
|
-
export {
|
|
266
|
+
export { SUPPORT_FLOOR_SETTINGS_CONTRACT, PLUGIN_HOOK_DISPOSITIONS, PLUGIN_HOOK_REASONS, PLUGIN_HOOK_EXCLUSION_REASONS, SETTINGS_HOOK_DROP_REASONS, isEngineFiredHookEvent, pluginHookVerdictOf, pluginHookReasonText, settingsHookDropText, pluginHookExecutorLabel, hooksNotRunNotice, settingsHooksKeptLocally, pluginHooksKeptLocally, userPromptSubmitExecutorOf, HOOK_ENTRY_TYPE_WORDS, } from './pluginHooksWire.js';
|
|
262
267
|
export { sessionHooksRosterOf } from './sessionHooksRoster.js';
|
|
263
268
|
export { HTTP_POLICY_DROP_REASONS } from './httpHookPolicy.js';
|
|
264
|
-
export { salvageSettingsHooksEntries, settingsHooksSalvageNotice, } from './settingsHooksSalvage.js';
|
|
269
|
+
export { isGuardHookEvent, salvageSettingsHooksEntries, settingsHooksSalvageNotice, } from './settingsHooksSalvage.js';
|
|
265
270
|
export { hostSettingNoticeEventsOf } from './hostSettingNoticeArm.js';
|
|
266
271
|
export { hostSettingsSelfCheck, HostSettingsRefused, HOST_SUPPLIED_KEYS, HOST_SETTING_CAUSES, HOST_SETTING_DISPOSITIONS, hostSettingsConsent, hostSettingsAcceptCurrent, } from './hostTurnSettings.js';
|
|
267
272
|
export { hostSettingsSessionFollows, } from './hostSettingsSource.js';
|
|
@@ -282,23 +287,25 @@ export { ENGINE_ABORT_TOOL_RESULT } from './hitl/frameRouter.js';
|
|
|
282
287
|
export { toolEndOutputText } from './toolResultContent.js';
|
|
283
288
|
export { toolOutputMediaAbsenceOf, toolOutputMediaAbsenceSentence } from './toolResultContent.js';
|
|
284
289
|
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';
|
|
285
|
-
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, WITHDRAWN_CARD_DECISION_KIND, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, allowNoteNotCarriedSentence, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalCardRequestOf, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondParkedRedeemed, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolApprovalReplayVerdictOf, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
|
|
290
|
+
export { APPROVAL_DENY_SETTLED_BY_WORDS, ASK_ORIGIN_WORDS, FEEDBACK_REFUSAL_CODES, 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, WITHDRAWN_CARD_DECISION_KIND, __resetSettledApprovalsForTests, _resetApprovalCardPortForTest, allowNoteNotCarriedSentence, answerCarriage, answerPayloadFor, approvalBoundGrantsDetail, approvalCardFactsOfFrame, approvalCardFactsOfGeneric, approvalCardFactsOfV1, approvalCardFactsOfV1Frame, approvalCardPortFor, approvalCardPortMisses, approvalCardPortMissesFor, approvalCardRequestOf, approvalIsMandated, approvalPriorCardsDetail, approvalSupersedesDetail, askProbeReasonDetail, claimApprovalCard, classifierNoRulingDetail, decisionAttributionKeyOf, feedbackRefusalOf, hasApprovalCardPort, hasApprovalCardPortFor, installApprovalCardPort, installApprovalCardPortFor, isFromSubagent, isToolApprovalFrame, isToolApprovalGate, isToolApprovalRespondParkedRedeemed, isToolApprovalRespondReplayed, joinApprovalHolder, observeApprovalAnswerCommitted, readApprovalBoundGrants, readApprovalCardWord, readApprovalClassifierNoRuling, readApprovalDenySettledBy, readApprovalMandate, readApprovalRememberRefused, readBoundGrantEntry, readDenialLimitFallback, readRuleOfferSupply, readRuleOffers, readToolApprovalRespondAck, readToolApprovalRespondParking, rememberRefusalOf, structurallyEqual, subagentBadgeFor, surfaceApprovalCard, surfaceFsApprovalAndDecide, surfaceToolApprovalFrameAndRespond, toolApprovalReplayVerdictOf, toolNameIsFsWrite, toolNameIsShellExec, toolPermissionRequestAskBits } from './hitl/toolApprovalWire.js';
|
|
286
291
|
export * from './hitl/approvalCardReading.js';
|
|
287
292
|
export * from './hitl/approvalCardReasons.js';
|
|
288
293
|
export { approvalRequestFrameReadingOf, APPROVAL_REQUEST_FRAME_UNREADABLE_WHYS } from './hitl/approvalRequestFrameReading.js';
|
|
289
|
-
export { approvalAskReasonsOf } from './hitl/approvalAskers.js';
|
|
294
|
+
export { approvalAgentIdOf, approvalAskReasonsOf } from './hitl/approvalAskers.js';
|
|
290
295
|
export { askClassReasonOf, askClassReasonsOf } from './hitl/askClassPair.js';
|
|
291
296
|
export * from './hitl/editedRuleTextPrecheck.js';
|
|
292
297
|
export * from './coreValuePorts.js';
|
|
293
298
|
export { ruleToolNameVerdictOf } from './protocolSegment.js';
|
|
294
299
|
export * from './hitl/askGateWire.js';
|
|
295
300
|
export * from './hitl/planReviewWire.js';
|
|
296
|
-
export { planReviewBodyOf } from './planReviewCardFacts.js';
|
|
301
|
+
export { planReviewBodyOf, mintPlanReviewCardFacts, registeredPlanReviewCardFacts, currentPlanReviewGateOf, samePlanReviewCardFacts } from './planReviewCardFacts.js';
|
|
297
302
|
export { planReviewCardNote } from './hitl/planReviewCard.js';
|
|
303
|
+
export { planReviewOutcomeNotice } from './hitl/planReviewCard.js';
|
|
298
304
|
export { readRunLedgerSnapshot } from './runLedgerSnapshot.js';
|
|
299
305
|
export { decisionInFlightOf, decisionReadMark } from './hitl/decisionLedger.js';
|
|
300
306
|
export { ASK_PARK_AUTO_REOPEN_BLOCKS, askParkAutoReopenBlockedContent, askParkAutoReopenBlockOf, askParkRefusalBlockOf, claimAskParkAutoReopenBlockNotice, clearAskParkAutoReopenBlocks, } from './hitl/askParkAutoReopenBlock.js';
|
|
301
307
|
export { HITL_DECISION_FAMILIES, HITL_DECISION_NOT_APPLIED_CAUSES, HITL_DECISION_NOT_SENT_CAUSES, HITL_DECISION_UNCONFIRMED_CAUSES, sendHitlDecision, hitlDecisionOutcomeContent, toolPermissionSettledLine, toolPermissionUnconfirmedOf, toolPermissionUnconfirmedLine, } from './hitl/decisionSend.js';
|
|
308
|
+
export { APPROVAL_DECISION_DOORS, approvalDecisionDoorOf, approvalDecisionDoorSource } from './hitl/approvalDecisionDoor.js';
|
|
302
309
|
export { elicitationRefusedLine } from './hitl/elicitationRefusal.js';
|
|
303
310
|
export { PLAN_REVIEW_QUESTION_ID_PREFIX, REOPEN_ID_TAIL, approvalCallKey, askGateQuestionId, planReviewQuestionId, liveFrameCallKey, armedKeyFromQuestionId, SCREEN_CARD_ORIGINS, questionCardOriginOf, hostReopenQuestionId, hostRunChoiceQuestionId, } from './hitl/gateIdentity.js';
|
|
304
311
|
export { _resetArmedGateRegistryForTest, _setGateArmedWaitMsForTest, clearArmedGate, gateArmedWaitMs, notePlanReviewAnswered, onGateArmed, planReviewArmedKey, registerArmedGate, registerArmedGateFor, registerArmedGateFromQuestionId, registerArmedGateFromQuestionIdFor, waitForGateArmed, wasGateArmed, wasGateArmedFor, } from './hitl/armedGateRegistry.js';
|
|
@@ -357,10 +364,11 @@ export { mcpToolTogglesToExcludeTools } from './mcpToolToggles.js';
|
|
|
357
364
|
export { readThinkingLatch, writeThinkingLatch, thinkingLatchView, thinkingLatchSentence, thinkingLatchRowWordOf, readSeatThinkingLatch } from './thinkingLatch.js';
|
|
358
365
|
export { devicesFaceOf, devicesWritesAllowed, devicesFaceDetail } from './devicesFace.js';
|
|
359
366
|
export { cloudLoginFailureOf, cloudLoginFailureText, engineTargetRefusalText, seatMcpReadingOf, watchEngineTarget } from './engineTargetSeat.js';
|
|
360
|
-
export { KEY_SLOT_PREFIX, keyEnvNameForEntry, onboardBaseUrlProblem, onboardRefusalText, onboardWriteVerdict, poolEntryNameOf, probeModelEndpoint, discoverEndpointModels, } from './model/onboardJudgement.js';
|
|
367
|
+
export { KEY_SLOT_PREFIX, ONBOARD_PROBE_BUDGETS, keyEnvNameForEntry, onboardBaseUrlProblem, onboardRefusalText, onboardWriteVerdict, poolEntryNameOf, probeModelEndpoint, discoverEndpointModels, } from './model/onboardJudgement.js';
|
|
368
|
+
export { ONBOARD_STEPS, ONBOARD_STEP_STATES, ONBOARD_STEP_REASONS, onboardStepPlanOf } from './model/onboardSteps.js';
|
|
361
369
|
export { LOCAL_CONFIG_DOCUMENTS, globalStateFilePathOf } from './localConfig/documents.js';
|
|
362
370
|
export { LOCAL_CONFIG_UNREADABLE_CAUSES, LOCAL_CONFIG_REFUSALS, LOCAL_CONFIG_NOT_WRITTEN_CAUSES, LOCAL_CONFIG_UNAVAILABLE_CAUSES, LOCAL_CONFIG_UNKNOWN_CAUSES, LOCAL_CONFIG_APPLIES_ON, LOCAL_CONFIG_RESIDUES, LOCAL_CONFIG_STEP_ROLES, LOCAL_CONFIG_WRITE_PRECONDITIONS, LOCAL_CONFIG_DISCLOSURE_KINDS, localConfigAccess, applyLocalConfigIntent, previewLocalConfigIntent, localConfigReceiptSentence, localConfigResidueSentence, localConfigDisclosureSentence, } from './localConfig/kernel.js';
|
|
363
|
-
export { MODEL_POOL_EDIT_KINDS, MODEL_POOL_CHANNEL_SOURCES, MODEL_POOL_CREDENTIAL_KINDS, MODEL_POOL_COMPLETENESS, MODEL_POOL_MAX_BATCH, MODEL_POOL_PROBE_STATES, MODEL_POOL_DEFAULT_KEEP_REASONS, poolWritePlan, modelPoolIntentOf, editModelPoolWith, modelPoolViewOf, effectiveDefaultModelOf, defaultModelChoiceOf, modelPoolRowEditOf, channelProfilesOf, modelPoolEditOfSeat, onboardWritePlan, } from './localConfig/modelPool.js';
|
|
371
|
+
export { MODEL_POOL_EDIT_KINDS, MODEL_POOL_CHANNEL_SOURCES, MODEL_POOL_CREDENTIAL_KINDS, MODEL_POOL_COMPLETENESS, MODEL_POOL_MAX_BATCH, MODEL_POOL_PROBE_STATES, MODEL_POOL_DEFAULT_KEEP_REASONS, poolWritePlan, modelPoolIntentOf, editModelPoolWith, modelPoolViewOf, modelPoolEnvReadingOf, effectiveDefaultModelOf, defaultModelChoiceOf, modelPoolRowEditOf, channelProfilesOf, modelPoolEditOfSeat, onboardWritePlan, } from './localConfig/modelPool.js';
|
|
364
372
|
export { LOCAL_CONFIG_WRITE_INTENTS, SETTINGS_WRITE_KEYS, settingsWritePlan, settingsWriteStep } from './localConfig/settingsWrite.js';
|
|
365
373
|
export { MCP_SERVER_SCOPES, MCP_SERVER_ROW_STATES, MCP_SERVER_WITHHELD_CAUSES, mcpProjectChainOf, mcpPathWithinFence, expandMcpServerEntry, mcpServersReport } from './localConfig/mcp/servers.js';
|
|
366
374
|
export { MCP_SERVER_EDIT_OPS, applyMcpServerEdit } from './localConfig/mcp/edit.js';
|
package/dist/liveModelCatalog.js
CHANGED
|
@@ -543,6 +543,7 @@ const ROUTE_PAIRING_VERDICTS = Object.freeze({
|
|
|
543
543
|
'broken:credential_missing': 'broken',
|
|
544
544
|
'broken:credential_origin_mismatch': 'broken',
|
|
545
545
|
'broken:credential_answer_conflict': 'broken',
|
|
546
|
+
'broken:protocol_plaintext_credentials': 'broken',
|
|
546
547
|
});
|
|
547
548
|
export function routePairingVerdict(v) {
|
|
548
549
|
if (typeof v !== 'string' || v.length === 0)
|
|
@@ -11,6 +11,8 @@ export declare function takeLocalQuestionWithdrawHook(id: string): WithdrawHook
|
|
|
11
11
|
export declare function unregisterLocalQuestionResponder(id: string): boolean;
|
|
12
12
|
export declare function hasLocalQuestionResponder(id: string): boolean;
|
|
13
13
|
export declare function publishQuestionFrame(frame: QuestionFrame): void;
|
|
14
|
+
export type QuestionFrameDelivery = 'delivered' | 'no_surface' | 'handler_threw';
|
|
15
|
+
export declare function deliverQuestionFrameFor(sessionKey: string, frame: QuestionFrame): QuestionFrameDelivery;
|
|
14
16
|
export declare function publishQuestionFrameFor(sessionKey: string, frame: QuestionFrame): void;
|
|
15
17
|
export declare function hasQuestionOverlay(): boolean;
|
|
16
18
|
export declare function hasQuestionOverlayFor(sessionKey: string): boolean;
|
|
@@ -26,16 +26,21 @@ export function hasLocalQuestionResponder(id) {
|
|
|
26
26
|
export function publishQuestionFrame(frame) {
|
|
27
27
|
publishQuestionFrameFor(DEFAULT_SESSION_KEY, frame);
|
|
28
28
|
}
|
|
29
|
-
export function
|
|
29
|
+
export function deliverQuestionFrameFor(sessionKey, frame) {
|
|
30
30
|
const frameHandler = frameHandlerByKey.get(sessionKey);
|
|
31
31
|
if (!frameHandler)
|
|
32
|
-
return;
|
|
32
|
+
return 'no_surface';
|
|
33
33
|
try {
|
|
34
34
|
frameHandler(frame);
|
|
35
|
+
return 'delivered';
|
|
35
36
|
}
|
|
36
37
|
catch {
|
|
38
|
+
return 'handler_threw';
|
|
37
39
|
}
|
|
38
40
|
}
|
|
41
|
+
export function publishQuestionFrameFor(sessionKey, frame) {
|
|
42
|
+
deliverQuestionFrameFor(sessionKey, frame);
|
|
43
|
+
}
|
|
39
44
|
export function hasQuestionOverlay() {
|
|
40
45
|
return hasQuestionOverlayFor(DEFAULT_SESSION_KEY);
|
|
41
46
|
}
|
|
@@ -30,7 +30,7 @@ export declare const LOCAL_CONFIG_APPLIES_ON: readonly ["next_turn", "engine_rel
|
|
|
30
30
|
export type LocalConfigAppliesOn = (typeof LOCAL_CONFIG_APPLIES_ON)[number];
|
|
31
31
|
export declare const LOCAL_CONFIG_RESIDUES: readonly ["orphan_key_slot", "legacy_tier_groups_left"];
|
|
32
32
|
export type LocalConfigResidue = (typeof LOCAL_CONFIG_RESIDUES)[number];
|
|
33
|
-
export declare const LOCAL_CONFIG_DISCLOSURE_KINDS: readonly ["decided_by", "shadowed_by", "tier_group_overridden"];
|
|
33
|
+
export declare const LOCAL_CONFIG_DISCLOSURE_KINDS: readonly ["decided_by", "shadowed_by", "tier_group_overridden", "shadow_unknown"];
|
|
34
34
|
export type LocalConfigDisclosureKind = (typeof LOCAL_CONFIG_DISCLOSURE_KINDS)[number];
|
|
35
35
|
export interface LocalConfigDisclosure {
|
|
36
36
|
readonly kind: LocalConfigDisclosureKind;
|
|
@@ -142,6 +142,7 @@ export interface LocalConfigIntent {
|
|
|
142
142
|
readonly appliesOn: LocalConfigAppliesOn;
|
|
143
143
|
readonly steps: readonly LocalConfigStep[];
|
|
144
144
|
}
|
|
145
|
+
export declare function localConfigLaneDocsOf(steps: readonly Pick<LocalConfigStep, 'doc' | 'lock'>[]): readonly LocalConfigWritableDocumentName[];
|
|
145
146
|
export declare function applyLocalConfigIntent(intent: LocalConfigIntent, store: LocalConfigStorePort, facts: LocalConfigHostFacts): Promise<LocalConfigReceipt>;
|
|
146
147
|
export declare function previewLocalConfigIntent(intent: LocalConfigIntent, store: LocalConfigStorePort, facts: LocalConfigHostFacts): Promise<LocalConfigPreview>;
|
|
147
148
|
export declare function localConfigReceiptSentence(receipt: LocalConfigReceipt | LocalConfigPreview, lang?: UiLanguage): string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SETTINGS_ROOT_DOCUMENT_UNREADABLE_REASONS } from '../generated/settingsSchemaTables.js';
|
|
2
|
-
import { ownSnapshotRecord, ownSnapshotRecordFaithful, readOwnDataValue, appendOwnElement } from '../ownKey.js';
|
|
2
|
+
import { ownSnapshotRecord, ownSnapshotRecordFaithful, readOwnDataValue, appendOwnElement, sameJson } from '../ownKey.js';
|
|
3
3
|
import { capForDisplay } from '../fleetTaskDesc.js';
|
|
4
4
|
import { msg, renderMessage } from '../i18n/translate.js';
|
|
5
5
|
import { isWritableLocalConfigDocument, localConfigDocumentOf } from './documents.js';
|
|
@@ -38,7 +38,7 @@ export const LOCAL_CONFIG_UNAVAILABLE_CAUSES = Object.freeze(['engine_is_remote'
|
|
|
38
38
|
export const LOCAL_CONFIG_UNKNOWN_CAUSES = Object.freeze(['commit_unconfirmed', 'report_unreadable']);
|
|
39
39
|
export const LOCAL_CONFIG_APPLIES_ON = Object.freeze(['next_turn', 'engine_reload', 'next_engine_start']);
|
|
40
40
|
export const LOCAL_CONFIG_RESIDUES = Object.freeze(['orphan_key_slot', 'legacy_tier_groups_left']);
|
|
41
|
-
export const LOCAL_CONFIG_DISCLOSURE_KINDS = Object.freeze(['decided_by', 'shadowed_by', 'tier_group_overridden']);
|
|
41
|
+
export const LOCAL_CONFIG_DISCLOSURE_KINDS = Object.freeze(['decided_by', 'shadowed_by', 'tier_group_overridden', 'shadow_unknown']);
|
|
42
42
|
export const LOCAL_CONFIG_STEP_ROLES = Object.freeze(['prepare', 'effect', 'cleanup']);
|
|
43
43
|
export const LOCAL_CONFIG_WRITE_PRECONDITIONS = Object.freeze([
|
|
44
44
|
'shared_path_lock',
|
|
@@ -135,6 +135,14 @@ export function localConfigAccess(facts, request) {
|
|
|
135
135
|
return blocked('domain_not_hosted');
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
|
+
export function localConfigLaneDocsOf(steps) {
|
|
139
|
+
const out = [];
|
|
140
|
+
for (const s of steps)
|
|
141
|
+
for (const d of [s.doc, ...(s.lock ?? [])])
|
|
142
|
+
if (!out.includes(d))
|
|
143
|
+
out.push(d);
|
|
144
|
+
return Object.freeze(out);
|
|
145
|
+
}
|
|
138
146
|
const MAX_STEPS = 8;
|
|
139
147
|
const DETAIL_MAX = 240;
|
|
140
148
|
function docListOf(v, writable) {
|
|
@@ -201,7 +209,7 @@ function shapeIntent(intent) {
|
|
|
201
209
|
}
|
|
202
210
|
if (phase !== 1)
|
|
203
211
|
return undefined;
|
|
204
|
-
return { appliesOn: when, steps, docs:
|
|
212
|
+
return { appliesOn: when, steps, docs: localConfigLaneDocsOf(steps) };
|
|
205
213
|
}
|
|
206
214
|
const UNREADABLE_IO = Object.freeze({ status: 'unreadable', cause: 'io' });
|
|
207
215
|
const ABSENT = Object.freeze({ status: 'absent' });
|
|
@@ -283,21 +291,6 @@ function planVerdictOf(v) {
|
|
|
283
291
|
}
|
|
284
292
|
return refuseVerdict('invalid_request');
|
|
285
293
|
}
|
|
286
|
-
function sameJson(a, b) {
|
|
287
|
-
if (a === b)
|
|
288
|
-
return true;
|
|
289
|
-
if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null)
|
|
290
|
-
return false;
|
|
291
|
-
if (Array.isArray(a) !== Array.isArray(b))
|
|
292
|
-
return false;
|
|
293
|
-
if (Array.isArray(a) && Array.isArray(b))
|
|
294
|
-
return a.length === b.length && a.every((x, i) => sameJson(x, b[i]));
|
|
295
|
-
const ka = Object.keys(a);
|
|
296
|
-
const kb = Object.keys(b);
|
|
297
|
-
if (ka.length !== kb.length)
|
|
298
|
-
return false;
|
|
299
|
-
return ka.every((k) => Object.hasOwn(b, k) && sameJson(a[k], b[k]));
|
|
300
|
-
}
|
|
301
294
|
function planStep(step, fresh, carried, mode) {
|
|
302
295
|
const target = fresh[step.doc];
|
|
303
296
|
if (target === undefined || target.status === 'unreadable')
|
|
@@ -532,6 +525,7 @@ const DISCLOSURE_KEYS = {
|
|
|
532
525
|
decided_by: 'config.localConfig.disclosure.decidedBy',
|
|
533
526
|
shadowed_by: 'config.localConfig.disclosure.shadowed',
|
|
534
527
|
tier_group_overridden: 'config.localConfig.disclosure.tierGroupOverridden',
|
|
528
|
+
shadow_unknown: 'config.localConfig.disclosure.shadowUnknown',
|
|
535
529
|
};
|
|
536
530
|
const DISCLOSURE_NAMED_KEYS = {
|
|
537
531
|
tier_group_overridden: 'config.localConfig.disclosure.tierGroupOverriddenNamed',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { applyLocalConfigIntent, previewLocalConfigIntent, localConfigAccess, } from '../kernel.js';
|
|
1
|
+
import { applyLocalConfigIntent, previewLocalConfigIntent, localConfigAccess, localConfigLaneDocsOf, } from '../kernel.js';
|
|
2
2
|
import { mcpServerNameVerdict } from '../../mcpWireCaps.js';
|
|
3
3
|
import { readHostSettingsOnce } from '../../hostSettingsSource.js';
|
|
4
4
|
import { settingsWriteStep } from '../settingsWrite.js';
|
|
@@ -84,10 +84,20 @@ function tableWith(table, name, value) {
|
|
|
84
84
|
const docOf = (fresh, d) => documentOf(fresh[d]);
|
|
85
85
|
function placeOf(scope, projectKey) {
|
|
86
86
|
if (scope === 'user')
|
|
87
|
-
return { doc:
|
|
87
|
+
return { doc: docOfScope(scope), path: USER_SCOPE_PATH };
|
|
88
88
|
if (scope === 'project')
|
|
89
|
-
return { doc:
|
|
90
|
-
return projectKey === undefined ? undefined : { doc:
|
|
89
|
+
return { doc: docOfScope(scope), path: PROJECT_FILE_PATH };
|
|
90
|
+
return projectKey === undefined ? undefined : { doc: docOfScope(scope), path: localScopePath(projectKey) };
|
|
91
|
+
}
|
|
92
|
+
function docOfScope(scope) {
|
|
93
|
+
return scope === 'project' ? 'projectMcp' : 'globalConfig';
|
|
94
|
+
}
|
|
95
|
+
function docOfOp(op) {
|
|
96
|
+
return op === 'setEnabled' ? 'globalConfig' : 'localSettings';
|
|
97
|
+
}
|
|
98
|
+
const siblingMcpDoc = (doc) => (doc === 'globalConfig' ? 'projectMcp' : 'globalConfig');
|
|
99
|
+
function stepFrameOf(doc, paired) {
|
|
100
|
+
return paired ? { doc, lock: [siblingMcpDoc(doc)] } : { doc };
|
|
91
101
|
}
|
|
92
102
|
export const mcpRowBaseOf = (revision) => (revision === null ? null : `rev:${revision}`);
|
|
93
103
|
const ADD_KEYS = Object.freeze(['op', 'name', 'entry', 'scope', 'onNameTaken']);
|
|
@@ -494,20 +504,12 @@ export async function applyMcpServerEdit(edit, store, ctx, opts) {
|
|
|
494
504
|
const f = editFactsOf(ctx);
|
|
495
505
|
const { c, host, reserved, projectKey } = f;
|
|
496
506
|
const dry = isRecord(opts) && opts.dryRun === true;
|
|
497
|
-
const
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
return ['globalConfig', 'projectMcp'];
|
|
504
|
-
if (e.op === 'add' && e.onNameTaken === 'rename')
|
|
505
|
-
return ['globalConfig', 'projectMcp'];
|
|
506
|
-
if (e.op === 'importFromSibling')
|
|
507
|
-
return ['globalConfig', 'projectMcp'];
|
|
508
|
-
return [e.scope === 'project' ? 'projectMcp' : 'globalConfig'];
|
|
509
|
-
};
|
|
510
|
-
const access = localConfigAccess(c.lane, { access: 'write', docs: docsFor() });
|
|
507
|
+
const earlyFrame = e.op === 'setEnabled' || e.op === 'setProjectApproval'
|
|
508
|
+
? stepFrameOf(docOfOp(e.op), false)
|
|
509
|
+
: e.op === 'remove' && e.scope === undefined
|
|
510
|
+
? stepFrameOf('globalConfig', true)
|
|
511
|
+
: stepFrameOf(docOfScope(e.scope), (e.op === 'add' && e.onNameTaken === 'rename') || e.op === 'importFromSibling');
|
|
512
|
+
const access = localConfigAccess(c.lane, { access: 'write', docs: localConfigLaneDocsOf([earlyFrame]) });
|
|
511
513
|
if (!access.ok)
|
|
512
514
|
return Object.freeze({ receipt: Object.freeze({ kind: 'unavailable', cause: access.cause }), notices: Object.freeze([]) });
|
|
513
515
|
const pre = preGatesOf(e, f);
|
|
@@ -525,13 +527,11 @@ export async function applyMcpServerEdit(edit, store, ctx, opts) {
|
|
|
525
527
|
notices = await noticesFor(e.name, e.scope, e.entry, store, c, ev.missing);
|
|
526
528
|
box.probe = entryProbeOf(ev.spec);
|
|
527
529
|
const place = placeOf(e.scope, projectKey);
|
|
528
|
-
const otherDoc = place.doc === 'globalConfig' ? 'projectMcp' : 'globalConfig';
|
|
529
530
|
const mode = e.onNameTaken ?? 'refuse';
|
|
530
531
|
const entryCopy = copyLayer(e.entry);
|
|
531
532
|
step = {
|
|
532
|
-
|
|
533
|
+
...stepFrameOf(place.doc, mode === 'rename'),
|
|
533
534
|
role: 'effect',
|
|
534
|
-
...(mode === 'rename' ? { lock: [otherDoc] } : {}),
|
|
535
535
|
plan: ({ fresh }) => {
|
|
536
536
|
const cur = docOf(fresh, place.doc);
|
|
537
537
|
const t = subTableOf(cur, place.path);
|
|
@@ -635,9 +635,8 @@ export async function applyMcpServerEdit(edit, store, ctx, opts) {
|
|
|
635
635
|
const place = placeOf(target, projectKey);
|
|
636
636
|
const unscoped = e.scope === undefined;
|
|
637
637
|
step = {
|
|
638
|
-
|
|
638
|
+
...stepFrameOf(place.doc, unscoped),
|
|
639
639
|
role: 'effect',
|
|
640
|
-
...(unscoped ? { lock: [place.doc === 'globalConfig' ? 'projectMcp' : 'globalConfig'] } : {}),
|
|
641
640
|
plan: ({ fresh }) => {
|
|
642
641
|
if (unscoped) {
|
|
643
642
|
const cand = candidatesIn(fresh);
|
|
@@ -672,7 +671,7 @@ export async function applyMcpServerEdit(edit, store, ctx, opts) {
|
|
|
672
671
|
box.probe = fixedProbeOf(e);
|
|
673
672
|
const projPath = ['projects', projectKey];
|
|
674
673
|
step = {
|
|
675
|
-
doc: '
|
|
674
|
+
doc: docOfOp('setEnabled'),
|
|
676
675
|
role: 'effect',
|
|
677
676
|
plan: ({ fresh }) => {
|
|
678
677
|
const cur = docOf(fresh, 'globalConfig');
|
|
@@ -721,7 +720,7 @@ export async function applyMcpServerEdit(edit, store, ctx, opts) {
|
|
|
721
720
|
const WANT = { approve: ['set', 'delete'], reject: ['delete', 'set'], clear: ['delete', 'delete'] };
|
|
722
721
|
const want = WANT[e.approval];
|
|
723
722
|
const edit1 = (intent, op) => (op === 'set' ? { intent, member: e.name, op, value: e.name } : { intent, member: e.name, op });
|
|
724
|
-
const inner = settingsWriteStep({ doc: '
|
|
723
|
+
const inner = settingsWriteStep({ doc: docOfOp('setProjectApproval'), trust: approvalTrust(c), edits: [edit1('mcpJsonEnabled', want[0]), edit1('mcpJsonDisabled', want[1])] });
|
|
725
724
|
step = {
|
|
726
725
|
...inner,
|
|
727
726
|
plan: (input) => {
|
|
@@ -742,9 +741,8 @@ export async function applyMcpServerEdit(edit, store, ctx, opts) {
|
|
|
742
741
|
const skipped = pre.skipped ?? [];
|
|
743
742
|
box.probe = fixedProbeOf(e);
|
|
744
743
|
step = {
|
|
745
|
-
|
|
744
|
+
...stepFrameOf(place.doc, true),
|
|
746
745
|
role: 'effect',
|
|
747
|
-
lock: [place.doc === 'globalConfig' ? 'projectMcp' : 'globalConfig'],
|
|
748
746
|
plan: ({ fresh }) => {
|
|
749
747
|
const cur = docOf(fresh, place.doc);
|
|
750
748
|
const t = subTableOf(cur, place.path);
|
|
@@ -2,6 +2,7 @@ import { LOCAL_CONFIG_WRITE_INTENTS } from '../settingsWrite.js';
|
|
|
2
2
|
import { projectMcpConfigs, mcpTransportVerdict } from '../../mcpWireCaps.js';
|
|
3
3
|
import { readHostSettingsOnce, CC_MERGE_ORDER } from '../../hostSettingsSource.js';
|
|
4
4
|
import { layerAdmissionWord } from '../../settingsLayerAdmission.js';
|
|
5
|
+
import { pathShapeOf } from '../../pathShape.js';
|
|
5
6
|
import { msg, renderMessage } from '../../i18n/translate.js';
|
|
6
7
|
export const MCP_SERVER_SCOPES = Object.freeze(['user', 'project', 'local']);
|
|
7
8
|
export const MCP_SERVER_ROW_STATES = Object.freeze(['active', 'pending_approval', 'rejected', 'disabled', 'withheld', 'unusable']);
|
|
@@ -155,15 +156,11 @@ export const localScopePath = (projectKey) => Object.freeze(['projects', project
|
|
|
155
156
|
export const USER_SCOPE_PATH = Object.freeze(['mcpServers']);
|
|
156
157
|
export const PROJECT_FILE_PATH = Object.freeze(['mcpServers']);
|
|
157
158
|
function splitPath(p, sep) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return undefined;
|
|
161
|
-
return { root: '/', parts: p.split('/').filter((s) => s !== '') };
|
|
162
|
-
}
|
|
163
|
-
const m = /^([A-Za-z]:)\\/.exec(p);
|
|
164
|
-
if (m === null)
|
|
159
|
+
const shape = pathShapeOf(p, sep === '/' ? '/' : '\\');
|
|
160
|
+
if (shape === undefined || shape.hasDotSegment)
|
|
165
161
|
return undefined;
|
|
166
|
-
|
|
162
|
+
const rooted = sep === '/' ? shape.kind === 'posix' : shape.kind === 'drive' && shape.root.endsWith('\\');
|
|
163
|
+
return rooted ? { root: shape.root, parts: [...shape.names] } : undefined;
|
|
167
164
|
}
|
|
168
165
|
const joinPath = (root, parts, sep) => root + parts.join(sep);
|
|
169
166
|
export function mcpProjectChainOf(startDir, sep, fence) {
|
|
@@ -7,7 +7,7 @@ import { type ModelProbeResult, type ProbeVerdictWord } from '../modelCapability
|
|
|
7
7
|
import { type OnboardWritePlan, type OnboardWritePlanInput } from '../model/onboardJudgement.js';
|
|
8
8
|
import type { OnboardCatalogIssue, SeatModelPoolEdit } from '../seatContract.js';
|
|
9
9
|
import type { LocalConfigDisclosure, LocalConfigFileReading, LocalConfigHostFacts, LocalConfigIntent, LocalConfigPreview, LocalConfigReceipt, LocalConfigRefusal, LocalConfigStorePort } from './kernel.js';
|
|
10
|
-
import { type ModelPoolChannelSource, type ModelPoolCompleteness, type ModelPoolDefaultKeepReason, type ModelPoolProbeState } from './modelPoolWords.js';
|
|
10
|
+
import { type ModelPoolChannelSource, type ModelPoolCompleteness, type ModelPoolDefaultKeepReason, type ModelPoolProbeState, type ModelPoolViewReading } from './modelPoolWords.js';
|
|
11
11
|
export { MODEL_POOL_EDIT_KINDS, MODEL_POOL_CHANNEL_SOURCES, MODEL_POOL_CREDENTIAL_KINDS, MODEL_POOL_COMPLETENESS, MODEL_POOL_MAX_BATCH, MODEL_POOL_PROBE_STATES, MODEL_POOL_DEFAULT_KEEP_REASONS } from './modelPoolWords.js';
|
|
12
12
|
export type { ModelPoolEditKind, ModelPoolChannelSource, ModelPoolCredentialKind, ModelPoolCompleteness, ModelPoolProbeState, ModelPoolDefaultKeepReason } from './modelPoolWords.js';
|
|
13
13
|
export interface ModelPoolEntrySpec {
|
|
@@ -144,6 +144,7 @@ export type EffectiveDefaultModel = {
|
|
|
144
144
|
export interface EffectiveDefaultModelInput {
|
|
145
145
|
readonly modelsDoc: SettingsDocument | null | undefined;
|
|
146
146
|
readonly userSettings: SettingsDocument | null | undefined;
|
|
147
|
+
readonly userSettingsReading?: ModelPoolViewReading;
|
|
147
148
|
}
|
|
148
149
|
export declare function effectiveDefaultModelOf(input: EffectiveDefaultModelInput): EffectiveDefaultModel;
|
|
149
150
|
export interface DefaultModelBatchRow {
|
|
@@ -251,12 +252,16 @@ export interface ModelPoolView {
|
|
|
251
252
|
readonly legacyTierSettings: boolean;
|
|
252
253
|
readonly orphanKeySlots: number;
|
|
253
254
|
readonly envModels: readonly string[];
|
|
255
|
+
readonly effectiveEnv?: ModelPoolViewReading;
|
|
256
|
+
readonly userSettings?: ModelPoolViewReading;
|
|
254
257
|
readonly providers: readonly ModelPoolProvider[];
|
|
255
258
|
}
|
|
259
|
+
export type ModelPoolEnvReading = ModelPoolViewReading | 'not_reported';
|
|
256
260
|
export interface ModelPoolReadings {
|
|
257
261
|
readonly models: LocalConfigFileReading | undefined;
|
|
258
262
|
readonly userSettings: LocalConfigFileReading | undefined;
|
|
259
263
|
readonly effectiveEnv?: Readonly<Record<string, string | undefined>>;
|
|
260
264
|
}
|
|
265
|
+
export declare function modelPoolEnvReadingOf(view: {} | null | undefined): ModelPoolEnvReading;
|
|
261
266
|
export declare function modelPoolViewOf(readings: ModelPoolReadings): ModelPoolView;
|
|
262
267
|
export declare function modelPoolRowEditOf(row: ModelPoolViewEntry, action: ModelPoolRowAction): ModelPoolEdit | undefined;
|