feat(mac): add automation permission
This commit is contained in:
@@ -79,6 +79,7 @@ struct PermissionRow: View {
|
||||
|
||||
private var title: String {
|
||||
switch self.capability {
|
||||
case .appleScript: "Automation (AppleScript)"
|
||||
case .notifications: "Notifications"
|
||||
case .accessibility: "Accessibility"
|
||||
case .screenRecording: "Screen Recording"
|
||||
@@ -89,6 +90,8 @@ struct PermissionRow: View {
|
||||
|
||||
private var subtitle: String {
|
||||
switch self.capability {
|
||||
case .appleScript:
|
||||
"Control other apps (e.g. Terminal) for automation actions"
|
||||
case .notifications: "Show desktop alerts for agent activity"
|
||||
case .accessibility: "Control UI elements when an action requires it"
|
||||
case .screenRecording: "Capture the screen for context or screenshots"
|
||||
@@ -99,6 +102,7 @@ struct PermissionRow: View {
|
||||
|
||||
private var icon: String {
|
||||
switch self.capability {
|
||||
case .appleScript: "applescript"
|
||||
case .notifications: "bell"
|
||||
case .accessibility: "hand.raised"
|
||||
case .screenRecording: "display"
|
||||
|
||||
@@ -3,6 +3,8 @@ import Foundation
|
||||
// MARK: - Capabilities
|
||||
|
||||
public enum Capability: String, Codable, CaseIterable, Sendable {
|
||||
/// AppleScript / Automation access to control other apps (TCC Automation).
|
||||
case appleScript
|
||||
case notifications
|
||||
case accessibility
|
||||
case screenRecording
|
||||
|
||||
@@ -5,7 +5,7 @@ Author: steipete · Status: draft spec · Date: 2025-12-05
|
||||
## Purpose
|
||||
- Single macOS menu-bar app named **Clawdis** that:
|
||||
- Shows native notifications for Clawdis/warelay events.
|
||||
- Owns TCC prompts (Notifications, Accessibility, Screen Recording).
|
||||
- Owns TCC prompts (Notifications, Accessibility, Screen Recording, Automation/AppleScript, Microphone, Speech Recognition).
|
||||
- Brokers privileged actions (screen capture, shell with elevated UI context) via XPC.
|
||||
- Provides a tiny CLI (`clawdis-mac`) that talks to the app; Node/TS shells out to it.
|
||||
- Replace the separate notifier helper pattern (Oracle) with a built-in notifier.
|
||||
@@ -26,7 +26,7 @@ Author: steipete · Status: draft spec · Date: 2025-12-05
|
||||
- Codable enums; small payloads (<1 MB enforced in listener):
|
||||
|
||||
```
|
||||
enum Capability { notifications, accessibility, screenRecording }
|
||||
enum Capability { notifications, accessibility, screenRecording, appleScript, microphone, speechRecognition }
|
||||
enum Request {
|
||||
notify(title, body, sound?)
|
||||
ensurePermissions([Capability], interactive: Bool)
|
||||
|
||||
@@ -63,6 +63,8 @@ cat > "$APP_ROOT/Contents/Info.plist" <<PLIST
|
||||
<string>Clawdis needs the mic for Voice Wake tests and agent audio capture.</string>
|
||||
<key>NSSpeechRecognitionUsageDescription</key>
|
||||
<string>Clawdis uses speech recognition to detect your Voice Wake trigger phrase.</string>
|
||||
<key>NSAppleEventsUsageDescription</key>
|
||||
<string>Clawdis needs Automation (AppleScript) permission to drive Terminal and other apps for agent actions.</string>
|
||||
</dict>
|
||||
</plist>
|
||||
PLIST
|
||||
|
||||
Reference in New Issue
Block a user