feat(keyboard): expand contextual skills and managed flows
Add local clipboard intent recommendations, webpage and phone actions, and safer host handoffs. Refine managed gateway, catalog refresh, onboarding, and adaptive polish behavior.
This commit is contained in:
@@ -13,8 +13,12 @@ public struct FlowUtteranceRequest: Equatable, Sendable {
|
||||
public let aiConversationID: UUID?
|
||||
/// When set with `.aiQuestion`, host skips ASR and answers this text.
|
||||
public let aiQuestionText: String?
|
||||
/// Public HTTPS page to fetch in the host before a webpage-summary request.
|
||||
public let aiWebPageURL: URL?
|
||||
/// Fine-grained managed-gateway intent. Regular questions keep the default.
|
||||
public let aiTaskKind: ManagedGatewayTaskKind?
|
||||
/// Audited product entry point for managed usage attribution.
|
||||
public let managedRequestSource: ManagedGatewayRequestSource?
|
||||
/// Optional server-audited purpose for managed gateway billing policy.
|
||||
public let managedRequestPurpose: ManagedGatewayRequestPurpose?
|
||||
/// Required feature discriminator when `managedRequestPurpose == .oobe`.
|
||||
@@ -31,7 +35,9 @@ public struct FlowUtteranceRequest: Equatable, Sendable {
|
||||
sourceHistoryEntryRevision: Int64? = nil,
|
||||
aiConversationID: UUID? = nil,
|
||||
aiQuestionText: String? = nil,
|
||||
aiWebPageURL: URL? = nil,
|
||||
aiTaskKind: ManagedGatewayTaskKind? = nil,
|
||||
managedRequestSource: ManagedGatewayRequestSource? = nil,
|
||||
managedRequestPurpose: ManagedGatewayRequestPurpose? = nil,
|
||||
managedOOBEFeature: ManagedGatewayOOBEFeature? = nil,
|
||||
aiThinkingEnabled: Bool? = nil
|
||||
@@ -42,7 +48,9 @@ public struct FlowUtteranceRequest: Equatable, Sendable {
|
||||
self.sourceHistoryEntryRevision = sourceHistoryEntryRevision
|
||||
self.aiConversationID = aiConversationID
|
||||
self.aiQuestionText = aiQuestionText
|
||||
self.aiWebPageURL = aiWebPageURL
|
||||
self.aiTaskKind = aiTaskKind
|
||||
self.managedRequestSource = managedRequestSource
|
||||
self.managedRequestPurpose = managedRequestPurpose
|
||||
self.managedOOBEFeature = managedOOBEFeature
|
||||
self.aiThinkingEnabled = aiThinkingEnabled
|
||||
@@ -66,14 +74,18 @@ public struct FlowUtteranceRequest: Equatable, Sendable {
|
||||
conversationID: UUID,
|
||||
prefilledQuestion: String? = nil,
|
||||
taskKind: ManagedGatewayTaskKind = .aiQuestion,
|
||||
requestSource: ManagedGatewayRequestSource? = nil,
|
||||
oobeFeature: ManagedGatewayOOBEFeature? = nil,
|
||||
thinkingEnabled: Bool? = nil
|
||||
thinkingEnabled: Bool? = nil,
|
||||
webPageURL: URL? = nil
|
||||
) -> FlowUtteranceRequest {
|
||||
FlowUtteranceRequest(
|
||||
mode: .aiQuestion,
|
||||
aiConversationID: conversationID,
|
||||
aiQuestionText: prefilledQuestion,
|
||||
aiWebPageURL: webPageURL,
|
||||
aiTaskKind: taskKind,
|
||||
managedRequestSource: requestSource,
|
||||
managedRequestPurpose: oobeFeature == nil ? nil : .oobe,
|
||||
managedOOBEFeature: oobeFeature,
|
||||
aiThinkingEnabled: thinkingEnabled
|
||||
|
||||
Reference in New Issue
Block a user