Skip to content

Intents macOS xcode15.0 b1

Manuel de la Pena edited this page Sep 12, 2023 · 3 revisions

#Intents.framework https://github.com/xamarin/xamarin-macios/pull/19006

diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntent.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntent.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntent.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntent.h	2023-05-26 01:34:05
@@ -0,0 +1,84 @@
+//
+//  INEditMessageIntent.h
+//  Intents
+//
+//  Copyright (c) 2016-2023 Apple Inc. All rights reserved.
+//
+
+#import <Intents/INIntent.h>
+#import <Intents/INIntentResolutionResult.h>
+
+@class INStringResolutionResult;
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@interface INEditMessageIntent : INIntent
+
+- (instancetype)initWithMessageIdentifier:(nullable NSString *)messageIdentifier
+                            editedContent:(nullable NSString *)editedContent NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *messageIdentifier;
+
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *editedContent;
+
+@end
+
+@class INEditMessageIntentResponse;
+
+/*!
+ @abstract Protocol to declare support for handling an INEditMessageIntent. By implementing this protocol, a class can provide logic for resolving, confirming and handling the intent.
+ @discussion The minimum requirement for an implementing class is that it should be able to handle the intent. The resolution and confirmation methods are optional. The handling method is always called last, after resolving and confirming the intent.
+ */
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@protocol INEditMessageIntentHandling <NSObject>
+
+@required
+
+/*!
+ @abstract Handling method - Execute the task represented by the INEditMessageIntent that's passed in
+ @discussion Called to actually execute the intent. The app must return a response for this intent.
+
+ @param  intent The input intent
+ @param  completion The response handling block takes a INEditMessageIntentResponse containing the details of the result of having executed the intent
+
+ @see  INEditMessageIntentResponse
+ */
+
+- (void)handleEditMessage:(INEditMessageIntent *)intent
+               completion:(void (^)(INEditMessageIntentResponse *response))completion NS_SWIFT_NAME(handle(intent:completion:));
+
+@optional
+
+/*!
+ @abstract Confirmation method - Validate that this intent is ready for the next step (i.e. handling)
+ @discussion Called prior to asking the app to handle the intent. The app should return a response object that contains additional information about the intent, which may be relevant for the system to show the user prior to handling. If unimplemented, the system will assume the intent is valid following resolution, and will assume there is no additional information relevant to this intent.
+
+ @param  intent The input intent
+ @param  completion The response block contains an INEditMessageIntentResponse containing additional details about the intent that may be relevant for the system to show the user prior to handling.
+
+ @see INEditMessageIntentResponse
+ */
+
+- (void)confirmEditMessage:(INEditMessageIntent *)intent
+                completion:(void (^)(INEditMessageIntentResponse *response))completion NS_SWIFT_NAME(confirm(intent:completion:));
+
+/*!
+ @abstract Resolution methods - Determine if this intent is ready for the next step (confirmation)
+ @discussion Called to make sure the app extension is capable of handling this intent in its current form. This method is for validating if the intent needs any further fleshing out.
+
+ @param  intent The input intent
+ @param  completion The response block contains an INIntentResolutionResult for the parameter being resolved
+
+ @see INIntentResolutionResult
+ */
+
+- (void)resolveEditedContentForEditMessage:(INEditMessageIntent *)intent
+                            withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion NS_SWIFT_NAME(resolveEditedContent(for:with:));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntentResponse.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntentResponse.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntentResponse.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INEditMessageIntentResponse.h	2023-05-26 01:34:02
@@ -0,0 +1,41 @@
+//
+//  INEditMessageIntentResponse.h
+//  Intents
+//
+//  Copyright (c) 2016-2023 Apple Inc. All rights reserved.
+//
+
+#import <Intents/INIntentResponse.h>
+
+typedef NS_ENUM(NSInteger, INEditMessageIntentResponseCode) {
+    INEditMessageIntentResponseCodeUnspecified = 0,
+    INEditMessageIntentResponseCodeReady,
+    INEditMessageIntentResponseCodeInProgress,
+    INEditMessageIntentResponseCodeSuccess,
+    INEditMessageIntentResponseCodeFailure,
+    INEditMessageIntentResponseCodeFailureRequiringAppLaunch,
+    INEditMessageIntentResponseCodeFailureMessageNotFound,
+    INEditMessageIntentResponseCodeFailurePastEditTimeLimit,
+    INEditMessageIntentResponseCodeFailureMessageTypeUnsupported,
+    INEditMessageIntentResponseCodeFailureUnsupportedOnService,
+    INEditMessageIntentResponseCodeFailureMessageServiceNotAvailable,
+} API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0)) API_UNAVAILABLE(tvos);
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@interface INEditMessageIntentResponse : INIntentResponse
+
+- (id)init NS_UNAVAILABLE;
+
+// The app extension has the option of capturing its private state as an NSUserActivity and returning it as the 'currentActivity'.
+// If the the app is launched, an NSUserActivity will be passed in with the private state.  The NSUserActivity may also be used to query the app's UI extension (if provided) for a view controller representing the current intent handling state.
+// In the case of app launch, the NSUserActivity will have its activityType set to the name of the intent. This intent object will also be available in the NSUserActivity.interaction property.
+- (instancetype)initWithCode:(INEditMessageIntentResponseCode)code userActivity:(nullable NSUserActivity *)userActivity NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, NS_NONATOMIC_IOSONLY) INEditMessageIntentResponseCode code;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentErrors.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentErrors.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentErrors.h	2023-03-09 19:07:37
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentErrors.h	2023-05-26 01:34:03
@@ -63,4 +63,7 @@
     // Decoding
     INIntentErrorDecodingGeneric = 9000,
     
+    // AppIntents
+    INIntentErrorUnableToCreateAppIntentRepresentation = 10000,
+    INIntentErrorNoAppIntent = 10001,
 } API_AVAILABLE(ios(10.0), macos(11.0), watchos(3.2), tvos(14.0));
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentResponses.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentResponses.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentResponses.h	2023-03-04 17:32:23
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntentResponses.h	2023-05-26 01:33:46
@@ -39,9 +39,11 @@
 
 #import <Intents/INSetRadioStationIntentResponse.h>
 
+#import <Intents/INEditMessageIntentResponse.h>
 #import <Intents/INSearchForMessagesIntentResponse.h>
 #import <Intents/INSendMessageIntentResponse.h>
 #import <Intents/INSetMessageAttributeIntentResponse.h>
+#import <Intents/INUnsendMessagesIntentResponse.h>
 
 #import <Intents/INAddTasksIntentResponse.h>
 #import <Intents/INAppendToNoteIntentResponse.h>
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntents.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntents.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntents.h	2023-03-04 17:32:21
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INIntents.h	2023-05-26 01:33:45
@@ -39,9 +39,11 @@
 
 #import <Intents/INSetRadioStationIntent.h>
 
+#import <Intents/INEditMessageIntent.h>
 #import <Intents/INSearchForMessagesIntent.h>
 #import <Intents/INSendMessageIntent.h>
 #import <Intents/INSetMessageAttributeIntent.h>
+#import <Intents/INUnsendMessagesIntent.h>
 
 #import <Intents/INAddTasksIntent.h>
 #import <Intents/INAppendToNoteIntent.h>
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessage.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessage.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessage.h	2023-03-09 19:12:39
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessage.h	2023-05-26 01:33:58
@@ -10,6 +10,7 @@
 @class INPerson;
 @class INSpeakableString;
 @class INFile;
+@class INMessageLinkMetadata;
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -40,6 +41,7 @@
     INMessageTypeActivitySnippet API_AVAILABLE(ios(12.0), watchos(5.0)) API_UNAVAILABLE(macosx),
     INMessageTypeFile API_AVAILABLE(ios(12.0), watchos(5.0)) API_UNAVAILABLE(macosx),
     INMessageTypeLink API_AVAILABLE(ios(12.0), watchos(5.0)) API_UNAVAILABLE(macosx),
+    INMessageTypeReaction API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macosx),
 } API_AVAILABLE(ios(11.0), watchos(4.0)) API_UNAVAILABLE(macosx, tvos);
 
 API_AVAILABLE(ios(10.0), watchos(3.2))
@@ -57,7 +59,7 @@
                          groupName:(nullable INSpeakableString *)groupName
                        messageType:(INMessageType)messageType
                        serviceName:(nullable NSString *)serviceName
-                  audioMessageFile:(nullable INFile *)audioMessageFile NS_DESIGNATED_INITIALIZER API_AVAILABLE(ios(16.0), watchos(9.0)) API_UNAVAILABLE(macos);
+                   attachmentFiles:(nullable NSArray<INFile *> *)attachmentFiles API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macos);
 
 - (instancetype)initWithIdentifier:(NSString *)identifier
             conversationIdentifier:(nullable NSString *)conversationIdentifier
@@ -67,6 +69,17 @@
                         recipients:(nullable NSArray<INPerson *> *)recipients
                          groupName:(nullable INSpeakableString *)groupName
                        messageType:(INMessageType)messageType
+                       serviceName:(nullable NSString *)serviceName
+                  audioMessageFile:(nullable INFile *)audioMessageFile API_DEPRECATED("Use initializer with attachmentFile", ios(16.0, 17.0), macos(13.0, 14.0), watchos(9.0, 10.0))  API_UNAVAILABLE(ios, macos, watchos);
+
+- (instancetype)initWithIdentifier:(NSString *)identifier
+            conversationIdentifier:(nullable NSString *)conversationIdentifier
+                           content:(nullable NSString *)content
+                          dateSent:(nullable NSDate *)dateSent
+                            sender:(nullable INPerson *)sender
+                        recipients:(nullable NSArray<INPerson *> *)recipients
+                         groupName:(nullable INSpeakableString *)groupName
+                       messageType:(INMessageType)messageType
                        serviceName:(nullable NSString *)serviceName NS_DESIGNATED_INITIALIZER API_AVAILABLE(ios(13.2), watchos(6.1)) API_UNAVAILABLE(macosx);
 
 - (instancetype)initWithIdentifier:(NSString *)identifier
@@ -92,6 +105,27 @@
                             sender:(nullable INPerson *)sender
                         recipients:(nullable NSArray<INPerson *> *)recipients;
 
+- (instancetype)initWithIdentifier:(NSString *)identifier
+            conversationIdentifier:(nullable NSString *)conversationIdentifier
+                           content:(nullable NSString *)content
+                          dateSent:(nullable NSDate *)dateSent
+                            sender:(nullable INPerson *)sender
+                        recipients:(nullable NSArray<INPerson *> *)recipients
+                         groupName:(nullable INSpeakableString *)groupName
+                       serviceName:(nullable NSString *)serviceName
+                      linkMetadata:(nullable INMessageLinkMetadata *)linkMetadata API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macos);
+
+- (instancetype)initWithIdentifier:(NSString *)identifier
+            conversationIdentifier:(nullable NSString *)conversationIdentifier
+                           content:(nullable NSString *)content
+                          dateSent:(nullable NSDate *)dateSent
+                            sender:(nullable INPerson *)sender
+                        recipients:(nullable NSArray<INPerson *> *)recipients
+                         groupName:(nullable INSpeakableString *)groupName
+                       serviceName:(nullable NSString *)serviceName
+                       messageType:(INMessageType)messageType
+               numberOfAttachments:(nullable NSNumber *)numberOfAttachments API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macos);
+
 @property (readonly, copy, NS_NONATOMIC_IOSONLY) NSString *identifier;
 
 @property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *conversationIdentifier API_AVAILABLE(ios(11.0), watchos(4.0)) API_UNAVAILABLE(macosx);
@@ -110,7 +144,13 @@
 
 @property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *serviceName API_AVAILABLE(ios(13.2), watchos(6.1)) API_UNAVAILABLE(macosx);
 
-@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) INFile *audioMessageFile;
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY)  NSArray<INFile *> *attachmentFiles API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macosx);
+
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSNumber *numberOfAttachments API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macosx);
+
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) INFile *audioMessageFile API_DEPRECATED("Use attachmentFile instead", ios(16.0, 17.0), macos(13.0, 14.0), watchos(9.0, 10.0));
+
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) INMessageLinkMetadata *linkMetadata API_AVAILABLE(ios(17.0), watchos(10.0)) API_UNAVAILABLE(macosx);
 
 @end
 
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessageLinkMetadata.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessageLinkMetadata.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessageLinkMetadata.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INMessageLinkMetadata.h	2023-05-26 01:34:03
@@ -0,0 +1,34 @@
+//
+//  INMessageLinkMetadata.h
+//  Intents
+//
+//  Copyright (c) 2016-2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@interface INMessageLinkMetadata : NSObject <NSCopying, NSSecureCoding>
+
+- (instancetype)initWithSiteName:(nullable NSString *)siteName
+                         summary:(nullable NSString *)summary
+                           title:(nullable NSString *)title
+                   openGraphType:(nullable NSString *)openGraphType
+                         linkURL:(nullable NSURL *)linkURL NS_DESIGNATED_INITIALIZER;
+
+@property (readwrite, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *siteName;
+
+@property (readwrite, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *summary;
+
+@property (readwrite, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *title;
+
+@property (readwrite, copy, nullable, NS_NONATOMIC_IOSONLY) NSString *openGraphType;
+
+@property (readwrite, copy, nullable, NS_NONATOMIC_IOSONLY) NSURL *linkURL;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INRelevanceProvider.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INRelevanceProvider.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INRelevanceProvider.h	2023-03-09 19:20:43
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INRelevanceProvider.h	2023-05-19 22:34:16
@@ -115,7 +115,11 @@
  @abstract A relevance provider to indicate relevance at a specific location.
  @note Your app needs Always or When in Use location authorization to use this relevance provider.
  */
+#if (defined(TARGET_OS_XR) && TARGET_OS_XR)
+API_AVAILABLE(ios(12.0), watchos(5.0)) API_UNAVAILABLE(macos, tvos) API_UNAVAILABLE(xros)
+#else
 API_AVAILABLE(ios(12.0), watchos(5.0)) API_UNAVAILABLE(macos, tvos)
+#endif
 @interface INLocationRelevanceProvider : INRelevanceProvider
 
 /*!
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntent.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntent.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntent.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntent.h	2023-05-26 01:33:56
@@ -0,0 +1,66 @@
+//
+//  INUnsendMessagesIntent.h
+//  Intents
+//
+//  Copyright (c) 2016-2023 Apple Inc. All rights reserved.
+//
+
+#import <Intents/INIntent.h>
+#import <Intents/INIntentResolutionResult.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@interface INUnsendMessagesIntent : INIntent
+
+- (instancetype)initWithMessageIdentifiers:(nullable NSArray<NSString *> *)messageIdentifiers NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, copy, nullable, NS_NONATOMIC_IOSONLY) NSArray<NSString *> *messageIdentifiers;
+
+@end
+
+@class INUnsendMessagesIntentResponse;
+
+/*!
+ @abstract Protocol to declare support for handling an INUnsendMessagesIntent. By implementing this protocol, a class can provide logic for resolving, confirming and handling the intent.
+ @discussion The minimum requirement for an implementing class is that it should be able to handle the intent. The resolution and confirmation methods are optional. The handling method is always called last, after resolving and confirming the intent.
+ */
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@protocol INUnsendMessagesIntentHandling <NSObject>
+
+@required
+
+/*!
+ @abstract Handling method - Execute the task represented by the INUnsendMessagesIntent that's passed in
+ @discussion Called to actually execute the intent. The app must return a response for this intent.
+
+ @param  intent The input intent
+ @param  completion The response handling block takes a INUnsendMessagesIntentResponse containing the details of the result of having executed the intent
+
+ @see  INUnsendMessagesIntentResponse
+ */
+
+- (void)handleUnsendMessages:(INUnsendMessagesIntent *)intent
+                  completion:(void (^)(INUnsendMessagesIntentResponse *response))completion NS_SWIFT_NAME(handle(intent:completion:));
+
+@optional
+
+/*!
+ @abstract Confirmation method - Validate that this intent is ready for the next step (i.e. handling)
+ @discussion Called prior to asking the app to handle the intent. The app should return a response object that contains additional information about the intent, which may be relevant for the system to show the user prior to handling. If unimplemented, the system will assume the intent is valid following resolution, and will assume there is no additional information relevant to this intent.
+
+ @param  intent The input intent
+ @param  completion The response block contains an INUnsendMessagesIntentResponse containing additional details about the intent that may be relevant for the system to show the user prior to handling.
+
+ @see INUnsendMessagesIntentResponse
+ */
+
+- (void)confirmUnsendMessages:(INUnsendMessagesIntent *)intent
+                   completion:(void (^)(INUnsendMessagesIntentResponse *response))completion NS_SWIFT_NAME(confirm(intent:completion:));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntentResponse.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntentResponse.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntentResponse.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/INUnsendMessagesIntentResponse.h	2023-05-26 01:34:00
@@ -0,0 +1,41 @@
+//
+//  INUnsendMessagesIntentResponse.h
+//  Intents
+//
+//  Copyright (c) 2016-2023 Apple Inc. All rights reserved.
+//
+
+#import <Intents/INIntentResponse.h>
+
+typedef NS_ENUM(NSInteger, INUnsendMessagesIntentResponseCode) {
+    INUnsendMessagesIntentResponseCodeUnspecified = 0,
+    INUnsendMessagesIntentResponseCodeReady,
+    INUnsendMessagesIntentResponseCodeInProgress,
+    INUnsendMessagesIntentResponseCodeSuccess,
+    INUnsendMessagesIntentResponseCodeFailure,
+    INUnsendMessagesIntentResponseCodeFailureRequiringAppLaunch,
+    INUnsendMessagesIntentResponseCodeFailureMessageNotFound,
+    INUnsendMessagesIntentResponseCodeFailurePastUnsendTimeLimit,
+    INUnsendMessagesIntentResponseCodeFailureMessageTypeUnsupported,
+    INUnsendMessagesIntentResponseCodeFailureUnsupportedOnService,
+    INUnsendMessagesIntentResponseCodeFailureMessageServiceNotAvailable,
+} API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0)) API_UNAVAILABLE(tvos);
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(ios(17.0), macos(14.0), watchos(10.0))
+API_UNAVAILABLE(tvos)
+@interface INUnsendMessagesIntentResponse : INIntentResponse
+
+- (id)init NS_UNAVAILABLE;
+
+// The app extension has the option of capturing its private state as an NSUserActivity and returning it as the 'currentActivity'.
+// If the the app is launched, an NSUserActivity will be passed in with the private state.  The NSUserActivity may also be used to query the app's UI extension (if provided) for a view controller representing the current intent handling state.
+// In the case of app launch, the NSUserActivity will have its activityType set to the name of the intent. This intent object will also be available in the NSUserActivity.interaction property.
+- (instancetype)initWithCode:(INUnsendMessagesIntentResponseCode)code userActivity:(nullable NSUserActivity *)userActivity NS_DESIGNATED_INITIALIZER;
+
+@property (readonly, NS_NONATOMIC_IOSONLY) INUnsendMessagesIntentResponseCode code;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/Intents_Generated.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/Intents_Generated.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/Intents_Generated.h	2023-03-04 13:45:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Intents.framework/Headers/Intents_Generated.h	2023-05-19 22:34:03
@@ -76,6 +76,7 @@
 #import <Intents/INMessageAttributeOptions.h>
 #import <Intents/INMessageAttributeOptionsResolutionResult.h>
 #import <Intents/INMessageAttributeResolutionResult.h>
+#import <Intents/INMessageLinkMetadata.h>
 #import <Intents/INNote.h>
 #import <Intents/INNoteContentResolutionResult.h>
 #import <Intents/INNoteContentType.h>
Clone this wiki locally