Skip to content

Commit 70ca7c2

Browse files
Add voice agent/WhisperKit stubs, fix YapRun linker settings
- Add weak stubs for rac_voice_agent_* and rac_whisperkit_coreml_stt_set_callbacks (not yet in RACommons binary) - Add ARCHS=arm64 to YapRun (xcframeworks are arm64-only) - Fix OTHER_LDFLAGS to use $(inherited) + -all_load array format (required to force-link all symbols from SPM binary targets) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent bcafb7c commit 70ca7c2

3 files changed

Lines changed: 79 additions & 18 deletions

File tree

Playground/YapRun/YapRun.xcodeproj/project.pbxproj

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
54398FFC2F497A34009D6B51 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54398FFB2F497A34009D6B51 /* WidgetKit.framework */; };
1212
54398FFE2F497A34009D6B51 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54398FFD2F497A34009D6B51 /* SwiftUI.framework */; };
1313
5439900B2F497A35009D6B51 /* YapRunActivityExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 54398FF92F497A34009D6B51 /* YapRunActivityExtension.appex */; platformFilter = ios; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
14-
54C28E2B2F4D31B000A5AA98 /* RunAnywhere in Frameworks */ = {isa = PBXBuildFile; productRef = 54C28E2A2F4D31B000A5AA98 /* RunAnywhere */; };
15-
54C28E2D2F4D31B000A5AA98 /* RunAnywhereONNX in Frameworks */ = {isa = PBXBuildFile; productRef = 54C28E2C2F4D31B000A5AA98 /* RunAnywhereONNX */; };
16-
54C28E2F2F4D31B000A5AA98 /* RunAnywhereWhisperKit in Frameworks */ = {isa = PBXBuildFile; productRef = 54C28E2E2F4D31B000A5AA98 /* RunAnywhereWhisperKit */; };
14+
5444FECE2F4D52C4006F88EE /* RunAnywhere in Frameworks */ = {isa = PBXBuildFile; productRef = 5444FECD2F4D52C4006F88EE /* RunAnywhere */; };
15+
5444FED02F4D52C4006F88EE /* RunAnywhereONNX in Frameworks */ = {isa = PBXBuildFile; productRef = 5444FECF2F4D52C4006F88EE /* RunAnywhereONNX */; };
16+
5444FED22F4D52C4006F88EE /* RunAnywhereWhisperKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5444FED12F4D52C4006F88EE /* RunAnywhereWhisperKit */; };
1717
/* End PBXBuildFile section */
1818

1919
/* Begin PBXContainerItemProxy section */
@@ -139,9 +139,9 @@
139139
isa = PBXFrameworksBuildPhase;
140140
buildActionMask = 2147483647;
141141
files = (
142-
54C28E2F2F4D31B000A5AA98 /* RunAnywhereWhisperKit in Frameworks */,
143-
54C28E2D2F4D31B000A5AA98 /* RunAnywhereONNX in Frameworks */,
144-
54C28E2B2F4D31B000A5AA98 /* RunAnywhere in Frameworks */,
142+
5444FED22F4D52C4006F88EE /* RunAnywhereWhisperKit in Frameworks */,
143+
5444FED02F4D52C4006F88EE /* RunAnywhereONNX in Frameworks */,
144+
5444FECE2F4D52C4006F88EE /* RunAnywhere in Frameworks */,
145145
);
146146
runOnlyForDeploymentPostprocessing = 0;
147147
};
@@ -237,9 +237,9 @@
237237
);
238238
name = YapRun;
239239
packageProductDependencies = (
240-
54C28E2A2F4D31B000A5AA98 /* RunAnywhere */,
241-
54C28E2C2F4D31B000A5AA98 /* RunAnywhereONNX */,
242-
54C28E2E2F4D31B000A5AA98 /* RunAnywhereWhisperKit */,
240+
5444FECD2F4D52C4006F88EE /* RunAnywhere */,
241+
5444FECF2F4D52C4006F88EE /* RunAnywhereONNX */,
242+
5444FED12F4D52C4006F88EE /* RunAnywhereWhisperKit */,
243243
);
244244
productName = YapRun;
245245
productReference = 54398FBA2F4979D2009D6B51 /* YapRun.app */;
@@ -374,7 +374,7 @@
374374
mainGroup = 54398FB12F4979D2009D6B51;
375375
minimizedProjectReferenceProxies = 1;
376376
packageReferences = (
377-
54C28E292F4D31B000A5AA98 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */,
377+
5444FECC2F4D52C4006F88EE /* XCRemoteSwiftPackageReference "runanywhere-sdks" */,
378378
);
379379
preferredProjectObjectVersion = 77;
380380
productRefGroup = 54398FBB2F4979D2009D6B51 /* Products */;
@@ -628,6 +628,7 @@
628628
54398FDC2F4979D3009D6B51 /* Debug */ = {
629629
isa = XCBuildConfiguration;
630630
buildSettings = {
631+
ARCHS = arm64;
631632
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
632633
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
633634
CODE_SIGN_ENTITLEMENTS = YapRun/YapRun.entitlements;
@@ -656,6 +657,10 @@
656657
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
657658
MACOSX_DEPLOYMENT_TARGET = 14.0;
658659
MARKETING_VERSION = 0.1;
660+
OTHER_LDFLAGS = (
661+
"$(inherited)",
662+
"-all_load",
663+
);
659664
PRODUCT_BUNDLE_IDENTIFIER = com.runanywhere.YapRun;
660665
PRODUCT_NAME = "$(TARGET_NAME)";
661666
REGISTER_APP_GROUPS = YES;
@@ -675,6 +680,7 @@
675680
54398FDD2F4979D3009D6B51 /* Release */ = {
676681
isa = XCBuildConfiguration;
677682
buildSettings = {
683+
ARCHS = arm64;
678684
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
679685
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
680686
CODE_SIGN_ENTITLEMENTS = YapRun/YapRun.entitlements;
@@ -703,6 +709,10 @@
703709
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
704710
MACOSX_DEPLOYMENT_TARGET = 14.0;
705711
MARKETING_VERSION = 0.1;
712+
OTHER_LDFLAGS = (
713+
"$(inherited)",
714+
"-all_load",
715+
);
706716
PRODUCT_BUNDLE_IDENTIFIER = com.runanywhere.YapRun;
707717
PRODUCT_NAME = "$(TARGET_NAME)";
708718
REGISTER_APP_GROUPS = YES;
@@ -1011,7 +1021,7 @@
10111021
/* End XCConfigurationList section */
10121022

10131023
/* Begin XCRemoteSwiftPackageReference section */
1014-
54C28E292F4D31B000A5AA98 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */ = {
1024+
5444FECC2F4D52C4006F88EE /* XCRemoteSwiftPackageReference "runanywhere-sdks" */ = {
10151025
isa = XCRemoteSwiftPackageReference;
10161026
repositoryURL = "https://github.com/RunanywhereAI/runanywhere-sdks";
10171027
requirement = {
@@ -1022,19 +1032,19 @@
10221032
/* End XCRemoteSwiftPackageReference section */
10231033

10241034
/* Begin XCSwiftPackageProductDependency section */
1025-
54C28E2A2F4D31B000A5AA98 /* RunAnywhere */ = {
1035+
5444FECD2F4D52C4006F88EE /* RunAnywhere */ = {
10261036
isa = XCSwiftPackageProductDependency;
1027-
package = 54C28E292F4D31B000A5AA98 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
1037+
package = 5444FECC2F4D52C4006F88EE /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
10281038
productName = RunAnywhere;
10291039
};
1030-
54C28E2C2F4D31B000A5AA98 /* RunAnywhereONNX */ = {
1040+
5444FECF2F4D52C4006F88EE /* RunAnywhereONNX */ = {
10311041
isa = XCSwiftPackageProductDependency;
1032-
package = 54C28E292F4D31B000A5AA98 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
1042+
package = 5444FECC2F4D52C4006F88EE /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
10331043
productName = RunAnywhereONNX;
10341044
};
1035-
54C28E2E2F4D31B000A5AA98 /* RunAnywhereWhisperKit */ = {
1045+
5444FED12F4D52C4006F88EE /* RunAnywhereWhisperKit */ = {
10361046
isa = XCSwiftPackageProductDependency;
1037-
package = 54C28E292F4D31B000A5AA98 /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
1047+
package = 5444FECC2F4D52C4006F88EE /* XCRemoteSwiftPackageReference "runanywhere-sdks" */;
10381048
productName = RunAnywhereWhisperKit;
10391049
};
10401050
/* End XCSwiftPackageProductDependency section */

Playground/YapRun/YapRun.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/runanywhere-swift/Sources/RunAnywhere/CRACommons/shim.c

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,54 @@ void rac_rag_pipeline_destroy(rac_rag_pipeline_t* pipeline) {
119119
(void)pipeline;
120120
// TODO: Remove stub when RABackendRAG release binary is available
121121
}
122+
123+
// =============================================================================
124+
// Voice Agent stubs (declared in rac_voice_agent.h, not yet in RACommons binary)
125+
// TODO: Remove these stubs once voice agent is implemented in RACommons C++.
126+
// =============================================================================
127+
128+
#include "include/rac_voice_agent.h"
129+
130+
__attribute__((weak))
131+
rac_result_t rac_voice_agent_process_voice_turn(rac_voice_agent_handle_t handle,
132+
const void* audio_data, size_t audio_size,
133+
rac_voice_agent_result_t* out_result) {
134+
(void)handle; (void)audio_data; (void)audio_size; (void)out_result;
135+
return RAC_ERROR_NOT_IMPLEMENTED; // TODO: Replace with real implementation
136+
}
137+
138+
__attribute__((weak))
139+
rac_result_t rac_voice_agent_transcribe(rac_voice_agent_handle_t handle,
140+
const void* audio_data, size_t audio_size,
141+
char** out_transcription) {
142+
(void)handle; (void)audio_data; (void)audio_size; (void)out_transcription;
143+
return RAC_ERROR_NOT_IMPLEMENTED; // TODO: Replace with real implementation
144+
}
145+
146+
__attribute__((weak))
147+
rac_result_t rac_voice_agent_synthesize_speech(rac_voice_agent_handle_t handle,
148+
const char* text, void** out_audio,
149+
size_t* out_audio_size) {
150+
(void)handle; (void)text; (void)out_audio; (void)out_audio_size;
151+
return RAC_ERROR_NOT_IMPLEMENTED; // TODO: Replace with real implementation
152+
}
153+
154+
__attribute__((weak))
155+
void rac_voice_agent_result_free(rac_voice_agent_result_t* result) {
156+
(void)result;
157+
// TODO: Replace with real implementation
158+
}
159+
160+
// =============================================================================
161+
// WhisperKit CoreML STT stubs
162+
// TODO: Remove once implemented in RACommons C++.
163+
// =============================================================================
164+
165+
#include "include/rac_stt_whisperkit_coreml.h"
166+
167+
__attribute__((weak))
168+
rac_result_t rac_whisperkit_coreml_stt_set_callbacks(
169+
const rac_whisperkit_coreml_stt_callbacks_t* callbacks) {
170+
(void)callbacks;
171+
return RAC_ERROR_NOT_IMPLEMENTED; // TODO: Replace with real implementation
172+
}

0 commit comments

Comments
 (0)