Expand onboarding and adaptive keyboard intelligence
Add resilient usage analytics, OOBE gateway flows, clipboard semantic ranking, purchase recovery, style learning, and managed current-information search.
This commit is contained in:
@@ -116,10 +116,10 @@ final class AIHintKeywordExtractorTests: XCTestCase {
|
||||
}
|
||||
|
||||
final class AIClipboardSkillTests: XCTestCase {
|
||||
func testVisibleDefaultsAreReplySummarizeTranslate() {
|
||||
func testVisibleDefaultsContainEveryBuiltInSkill() {
|
||||
XCTAssertEqual(
|
||||
AIClipboardSkillCatalog.visible().map(\.id),
|
||||
["reply", "summarize", "translate"]
|
||||
AIClipboardSkillCatalog.catalog.map(\.id)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -236,6 +236,30 @@ final class AIClipboardSkillTests: XCTestCase {
|
||||
XCTAssertTrue(prompt.contains("不要改写成可发送的短消息"))
|
||||
}
|
||||
|
||||
func testSemanticReplySkillsHaveDistinctInstructions() {
|
||||
let ids = [
|
||||
AIClipboardSkillCatalog.replyInSourceLanguageID,
|
||||
AIClipboardSkillCatalog.acceptInvitationID,
|
||||
AIClipboardSkillCatalog.declineInvitationID,
|
||||
AIClipboardSkillCatalog.acceptTaskID,
|
||||
AIClipboardSkillCatalog.clarifyRequestID,
|
||||
AIClipboardSkillCatalog.empathyReplyID,
|
||||
AIClipboardSkillCatalog.askForDetailsID,
|
||||
AIClipboardSkillCatalog.businessReplyID,
|
||||
AIClipboardSkillCatalog.extractConclusionsID,
|
||||
AIClipboardSkillCatalog.organizeListID
|
||||
]
|
||||
let prompts = ids.map {
|
||||
AIClipboardSkillCatalog.instruction(
|
||||
skillID: $0,
|
||||
locale: "zh",
|
||||
translationTargetLocaleId: TranslationLanguageCatalog.offLocaleId
|
||||
)
|
||||
}
|
||||
XCTAssertEqual(Set(prompts).count, ids.count)
|
||||
XCTAssertFalse(prompts.contains { $0.contains("用户选择的操作") })
|
||||
}
|
||||
|
||||
func testExtractTodosAsksForNONEWhenEmpty() {
|
||||
let prompt = AIClipboardSkillCatalog.instruction(
|
||||
skillID: AIClipboardSkillCatalog.extractTodosID,
|
||||
|
||||
Reference in New Issue
Block a user