mirror of
https://github.com/hanzoai/bot.git
synced 2026-10-30 17:24:26 +00:00
Automated rebrand of all openclaw references to hanzo bot: - Package: openclaw -> @hanzo/bot - Binary: openclaw -> hanzo-bot - Config: ~/.openclaw -> ~/.hanzo/bot - Docker: ghcr.io/hanzoai/bot - Env vars: OPENCLAW_* -> BOT_* - Bundle IDs: ai.hanzo.bot.* - Product name: Hanzo Bot
340 lines
12 KiB
YAML
340 lines
12 KiB
YAML
name: Hanzo Bot
|
|
options:
|
|
bundleIdPrefix: ai.openclaw
|
|
deploymentTarget:
|
|
iOS: "18.0"
|
|
xcodeVersion: "16.0"
|
|
|
|
settings:
|
|
base:
|
|
SWIFT_VERSION: "6.0"
|
|
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
|
|
|
|
packages:
|
|
Hanzo BotKit:
|
|
path: ../shared/Hanzo BotKit
|
|
Swabble:
|
|
path: ../../Swabble
|
|
|
|
schemes:
|
|
Hanzo Bot:
|
|
shared: true
|
|
build:
|
|
targets:
|
|
Hanzo Bot: all
|
|
test:
|
|
targets:
|
|
- Hanzo BotTests
|
|
- Hanzo BotLogicTests
|
|
Hanzo BotLogicTests:
|
|
shared: true
|
|
build:
|
|
targets:
|
|
Hanzo BotLogicTests: all
|
|
test:
|
|
targets:
|
|
- Hanzo BotLogicTests
|
|
|
|
targets:
|
|
Hanzo Bot:
|
|
type: application
|
|
platform: iOS
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: Sources
|
|
dependencies:
|
|
- target: Hanzo BotShareExtension
|
|
embed: true
|
|
- target: Hanzo BotActivityWidget
|
|
embed: true
|
|
- target: Hanzo BotWatchApp
|
|
- package: Hanzo BotKit
|
|
- package: Hanzo BotKit
|
|
product: Hanzo BotChatUI
|
|
- package: Hanzo BotKit
|
|
product: Hanzo BotProtocol
|
|
- package: Swabble
|
|
product: SwabbleKit
|
|
- sdk: AppIntents.framework
|
|
preBuildScripts:
|
|
- name: SwiftFormat (lint)
|
|
basedOnDependencyAnalysis: false
|
|
inputFileLists:
|
|
- $(SRCROOT)/SwiftSources.input.xcfilelist
|
|
script: |
|
|
set -euo pipefail
|
|
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
|
|
if ! command -v swiftformat >/dev/null 2>&1; then
|
|
echo "error: swiftformat not found (brew install swiftformat)" >&2
|
|
exit 1
|
|
fi
|
|
swiftformat --lint --config "$SRCROOT/../../.swiftformat" \
|
|
--filelist "$SRCROOT/SwiftSources.input.xcfilelist"
|
|
- name: SwiftLint
|
|
basedOnDependencyAnalysis: false
|
|
inputFileLists:
|
|
- $(SRCROOT)/SwiftSources.input.xcfilelist
|
|
script: |
|
|
set -euo pipefail
|
|
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
|
|
if ! command -v swiftlint >/dev/null 2>&1; then
|
|
echo "error: swiftlint not found (brew install swiftlint)" >&2
|
|
exit 1
|
|
fi
|
|
swiftlint lint --config "$SRCROOT/.swiftlint.yml" --use-script-input-file-lists
|
|
settings:
|
|
base:
|
|
CODE_SIGN_IDENTITY: "Apple Development"
|
|
CODE_SIGN_ENTITLEMENTS: Sources/Hanzo Bot.entitlements
|
|
CODE_SIGN_STYLE: "$(BOT_CODE_SIGN_STYLE)"
|
|
DEVELOPMENT_TEAM: "$(BOT_DEVELOPMENT_TEAM)"
|
|
PRODUCT_BUNDLE_IDENTIFIER: "$(BOT_APP_BUNDLE_ID)"
|
|
PROVISIONING_PROFILE_SPECIFIER: "$(BOT_APP_PROFILE)"
|
|
TARGETED_DEVICE_FAMILY: "1"
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
SUPPORTS_LIVE_ACTIVITIES: YES
|
|
ENABLE_APPINTENTS_METADATA: NO
|
|
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
|
|
configs:
|
|
Debug:
|
|
BOT_PUSH_TRANSPORT: direct
|
|
BOT_PUSH_DISTRIBUTION: local
|
|
BOT_PUSH_RELAY_BASE_URL: ""
|
|
BOT_PUSH_APNS_ENVIRONMENT: sandbox
|
|
Release:
|
|
BOT_PUSH_TRANSPORT: direct
|
|
BOT_PUSH_DISTRIBUTION: local
|
|
BOT_PUSH_RELAY_BASE_URL: ""
|
|
BOT_PUSH_APNS_ENVIRONMENT: production
|
|
info:
|
|
path: Sources/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo Bot
|
|
CFBundleIconName: AppIcon
|
|
CFBundleURLTypes:
|
|
- CFBundleURLName: ai.hanzo.bot.ios
|
|
CFBundleURLSchemes:
|
|
- openclaw
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|
|
UILaunchScreen: {}
|
|
UIApplicationSceneManifest:
|
|
UIApplicationSupportsMultipleScenes: false
|
|
UIBackgroundModes:
|
|
- audio
|
|
- remote-notification
|
|
BGTaskSchedulerPermittedIdentifiers:
|
|
- ai.hanzo.bot.ios.bgrefresh
|
|
NSLocalNetworkUsageDescription: Hanzo Bot discovers and connects to your Hanzo Bot gateway on the local network.
|
|
NSAppTransportSecurity:
|
|
NSAllowsArbitraryLoadsInWebContent: true
|
|
NSBonjourServices:
|
|
- _openclaw-gw._tcp
|
|
NSCameraUsageDescription: Hanzo Bot can capture photos or short video clips when requested via the gateway.
|
|
NSLocationWhenInUseUsageDescription: Hanzo Bot uses your location when you allow location sharing.
|
|
NSLocationAlwaysAndWhenInUseUsageDescription: Hanzo Bot can share your location in the background when you enable Always.
|
|
NSMicrophoneUsageDescription: Hanzo Bot needs microphone access for voice wake.
|
|
NSMotionUsageDescription: Hanzo Bot may use motion data to support device-aware interactions and automations.
|
|
NSPhotoLibraryUsageDescription: Hanzo Bot needs photo library access when you choose existing photos to share with your assistant.
|
|
NSSpeechRecognitionUsageDescription: Hanzo Bot uses on-device speech recognition for voice wake.
|
|
NSSupportsLiveActivities: true
|
|
ITSAppUsesNonExemptEncryption: false
|
|
Hanzo BotPushTransport: "$(BOT_PUSH_TRANSPORT)"
|
|
Hanzo BotPushDistribution: "$(BOT_PUSH_DISTRIBUTION)"
|
|
Hanzo BotPushRelayBaseURL: "$(BOT_PUSH_RELAY_BASE_URL)"
|
|
Hanzo BotPushAPNsEnvironment: "$(BOT_PUSH_APNS_ENVIRONMENT)"
|
|
UISupportedInterfaceOrientations:
|
|
- UIInterfaceOrientationPortrait
|
|
- UIInterfaceOrientationPortraitUpsideDown
|
|
- UIInterfaceOrientationLandscapeLeft
|
|
- UIInterfaceOrientationLandscapeRight
|
|
UISupportedInterfaceOrientations~ipad:
|
|
- UIInterfaceOrientationPortrait
|
|
- UIInterfaceOrientationPortraitUpsideDown
|
|
- UIInterfaceOrientationLandscapeLeft
|
|
- UIInterfaceOrientationLandscapeRight
|
|
|
|
Hanzo BotShareExtension:
|
|
type: app-extension
|
|
platform: iOS
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: ShareExtension
|
|
dependencies:
|
|
- package: Hanzo BotKit
|
|
- sdk: AppIntents.framework
|
|
settings:
|
|
base:
|
|
CODE_SIGN_IDENTITY: "Apple Development"
|
|
CODE_SIGN_STYLE: "$(BOT_CODE_SIGN_STYLE)"
|
|
DEVELOPMENT_TEAM: "$(BOT_DEVELOPMENT_TEAM)"
|
|
ENABLE_APPINTENTS_METADATA: NO
|
|
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
|
|
PRODUCT_BUNDLE_IDENTIFIER: "$(BOT_SHARE_BUNDLE_ID)"
|
|
PROVISIONING_PROFILE_SPECIFIER: "$(BOT_SHARE_PROFILE)"
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
info:
|
|
path: ShareExtension/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo Bot Share
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|
|
NSExtension:
|
|
NSExtensionPointIdentifier: com.apple.share-services
|
|
NSExtensionPrincipalClass: "$(PRODUCT_MODULE_NAME).ShareViewController"
|
|
NSExtensionAttributes:
|
|
NSExtensionActivationRule:
|
|
NSExtensionActivationSupportsText: true
|
|
NSExtensionActivationSupportsWebURLWithMaxCount: 1
|
|
NSExtensionActivationSupportsImageWithMaxCount: 10
|
|
NSExtensionActivationSupportsMovieWithMaxCount: 1
|
|
|
|
Hanzo BotActivityWidget:
|
|
type: app-extension
|
|
platform: iOS
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: ActivityWidget
|
|
- path: Sources/LiveActivity/Hanzo BotActivityAttributes.swift
|
|
dependencies:
|
|
- sdk: WidgetKit.framework
|
|
- sdk: ActivityKit.framework
|
|
settings:
|
|
base:
|
|
CODE_SIGN_IDENTITY: "Apple Development"
|
|
CODE_SIGN_STYLE: "$(BOT_CODE_SIGN_STYLE)"
|
|
DEVELOPMENT_TEAM: "$(BOT_DEVELOPMENT_TEAM)"
|
|
PRODUCT_BUNDLE_IDENTIFIER: "$(BOT_ACTIVITY_WIDGET_BUNDLE_ID)"
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
SUPPORTS_LIVE_ACTIVITIES: YES
|
|
info:
|
|
path: ActivityWidget/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo Bot Activity
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|
|
NSSupportsLiveActivities: true
|
|
NSExtension:
|
|
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
|
|
|
Hanzo BotWatchApp:
|
|
type: application.watchapp2
|
|
platform: watchOS
|
|
deploymentTarget: "11.0"
|
|
sources:
|
|
- path: WatchApp
|
|
dependencies:
|
|
- target: Hanzo BotWatchExtension
|
|
configFiles:
|
|
Debug: Config/Signing.xcconfig
|
|
Release: Config/Signing.xcconfig
|
|
settings:
|
|
base:
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
ENABLE_APPINTENTS_METADATA: NO
|
|
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
|
|
PRODUCT_BUNDLE_IDENTIFIER: "$(BOT_WATCH_APP_BUNDLE_ID)"
|
|
info:
|
|
path: WatchApp/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo Bot
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|
|
WKCompanionAppBundleIdentifier: "$(BOT_APP_BUNDLE_ID)"
|
|
WKWatchKitApp: true
|
|
|
|
Hanzo BotWatchExtension:
|
|
type: watchkit2-extension
|
|
platform: watchOS
|
|
deploymentTarget: "11.0"
|
|
sources:
|
|
- path: WatchExtension/Sources
|
|
dependencies:
|
|
- sdk: AppIntents.framework
|
|
- sdk: WatchConnectivity.framework
|
|
- sdk: UserNotifications.framework
|
|
configFiles:
|
|
Debug: Config/Signing.xcconfig
|
|
Release: Config/Signing.xcconfig
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: "$(BOT_WATCH_EXTENSION_BUNDLE_ID)"
|
|
info:
|
|
path: WatchExtension/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo Bot
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|
|
NSExtension:
|
|
NSExtensionAttributes:
|
|
WKAppBundleIdentifier: "$(BOT_WATCH_APP_BUNDLE_ID)"
|
|
NSExtensionPointIdentifier: com.apple.watchkit
|
|
|
|
Hanzo BotTests:
|
|
type: bundle.unit-test
|
|
platform: iOS
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: Tests
|
|
excludes:
|
|
- Logic
|
|
dependencies:
|
|
- target: Hanzo Bot
|
|
- package: Swabble
|
|
product: SwabbleKit
|
|
- sdk: AppIntents.framework
|
|
settings:
|
|
base:
|
|
CODE_SIGN_IDENTITY: "Apple Development"
|
|
CODE_SIGN_STYLE: "$(BOT_CODE_SIGN_STYLE)"
|
|
DEVELOPMENT_TEAM: "$(BOT_DEVELOPMENT_TEAM)"
|
|
PRODUCT_BUNDLE_IDENTIFIER: ai.hanzo.bot.ios.tests
|
|
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Hanzo Bot.app/Hanzo Bot"
|
|
BUNDLE_LOADER: "$(TEST_HOST)"
|
|
info:
|
|
path: Tests/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo BotTests
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|
|
|
|
Hanzo BotLogicTests:
|
|
type: bundle.unit-test
|
|
platform: iOS
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: Tests/Logic
|
|
dependencies:
|
|
- package: Hanzo BotKit
|
|
settings:
|
|
base:
|
|
CODE_SIGN_IDENTITY: "Apple Development"
|
|
CODE_SIGN_STYLE: "$(BOT_CODE_SIGN_STYLE)"
|
|
DEVELOPMENT_TEAM: "$(BOT_DEVELOPMENT_TEAM)"
|
|
PRODUCT_BUNDLE_IDENTIFIER: ai.hanzo.bot.ios.logic-tests
|
|
ENABLE_APP_INTENTS_METADATA_GENERATION: NO
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
info:
|
|
path: Tests/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Hanzo BotLogicTests
|
|
CFBundleShortVersionString: "$(BOT_MARKETING_VERSION)"
|
|
CFBundleVersion: "$(BOT_BUILD_VERSION)"
|