capacitor-native-agent 0.9.14 → 0.9.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/jniLibs/arm64-v8a/libnative_agent_ffi.so +0 -0
- package/ios/Frameworks/NativeAgentFFI.xcframework/ios-arm64/Headers/native_agent_ffi/native_agent_ffi.swift +140 -11
- package/ios/Frameworks/NativeAgentFFI.xcframework/ios-arm64/Headers/native_agent_ffi/native_agent_ffiFFI.h +30 -5
- package/ios/Frameworks/NativeAgentFFI.xcframework/ios-arm64/libnative_agent_ffi.a +0 -0
- package/ios/Frameworks/NativeAgentFFI.xcframework/ios-arm64-simulator/Headers/native_agent_ffi/native_agent_ffi.swift +140 -11
- package/ios/Frameworks/NativeAgentFFI.xcframework/ios-arm64-simulator/Headers/native_agent_ffi/native_agent_ffiFFI.h +30 -5
- package/ios/Frameworks/NativeAgentFFI.xcframework/ios-arm64-simulator/libnative_agent_ffi.a +0 -0
- package/ios/Sources/NativeAgentPlugin/Generated/native_agent_ffi.swift +140 -11
- package/ios/Sources/NativeAgentPlugin/Generated/native_agent_ffiFFI.h +30 -5
- package/package.json +1 -1
|
Binary file
|
|
@@ -682,7 +682,12 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
682
682
|
func resetToolPermissions() throws
|
|
683
683
|
|
|
684
684
|
/**
|
|
685
|
-
* Respond to a tool approval request.
|
|
685
|
+
* Respond to a tool approval request (legacy boolean entry point).
|
|
686
|
+
*
|
|
687
|
+
* Retained as the UniFFI-facing API for mobile callers that pass a plain
|
|
688
|
+
* boolean. Internally delegates to `respond_to_approval_decision` (a
|
|
689
|
+
* Rust-only helper, not UniFFI-exported) with no `decision`/`answers`,
|
|
690
|
+
* preserving today's behavior.
|
|
686
691
|
*/
|
|
687
692
|
func respondToApproval(toolCallId: String, approved: Bool, reason: String?) throws
|
|
688
693
|
|
|
@@ -732,8 +737,13 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
732
737
|
|
|
733
738
|
/**
|
|
734
739
|
* Set an auth key for a provider.
|
|
740
|
+
*
|
|
741
|
+
* `base_url`, when set, overrides the provider's hardcoded endpoint — used
|
|
742
|
+
* to point the driver at a backend proxy that injects the real API key
|
|
743
|
+
* server-side, so the device never holds the provider secret. `None` ⇒
|
|
744
|
+
* the provider's default endpoint (unchanged behavior).
|
|
735
745
|
*/
|
|
736
|
-
func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?) throws
|
|
746
|
+
func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?, baseUrl: String?) throws
|
|
737
747
|
|
|
738
748
|
/**
|
|
739
749
|
* Set the event callback for receiving agent events.
|
|
@@ -751,6 +761,14 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
751
761
|
*/
|
|
752
762
|
func setHeartbeatConfig(configJson: String) throws
|
|
753
763
|
|
|
764
|
+
/**
|
|
765
|
+
* Replace the FFI's MCP tool manifest. Tools registered here become
|
|
766
|
+
* visible to the LLM and, when called, surface as `mcp_tool_call`
|
|
767
|
+
* events that the host must answer with `respond_to_mcp_tool`.
|
|
768
|
+
* Idempotent — every call replaces the prior manifest.
|
|
769
|
+
*/
|
|
770
|
+
func setMcpTools(toolsJson: String) throws -> UInt32
|
|
771
|
+
|
|
754
772
|
func setMemoryProvider(provider: MemoryProvider) throws
|
|
755
773
|
|
|
756
774
|
func setNotifier(notifier: NativeNotifier) throws
|
|
@@ -1200,7 +1218,12 @@ open func resetToolPermissions()throws {try rustCallWithError(FfiConverterType
|
|
|
1200
1218
|
}
|
|
1201
1219
|
|
|
1202
1220
|
/**
|
|
1203
|
-
* Respond to a tool approval request.
|
|
1221
|
+
* Respond to a tool approval request (legacy boolean entry point).
|
|
1222
|
+
*
|
|
1223
|
+
* Retained as the UniFFI-facing API for mobile callers that pass a plain
|
|
1224
|
+
* boolean. Internally delegates to `respond_to_approval_decision` (a
|
|
1225
|
+
* Rust-only helper, not UniFFI-exported) with no `decision`/`answers`,
|
|
1226
|
+
* preserving today's behavior.
|
|
1204
1227
|
*/
|
|
1205
1228
|
open func respondToApproval(toolCallId: String, approved: Bool, reason: String?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1206
1229
|
uniffi_native_agent_ffi_fn_method_nativeagenthandle_respond_to_approval(
|
|
@@ -1320,15 +1343,21 @@ open func serializeAgentEventJson(eventType: String, payloadJson: String, sessio
|
|
|
1320
1343
|
|
|
1321
1344
|
/**
|
|
1322
1345
|
* Set an auth key for a provider.
|
|
1346
|
+
*
|
|
1347
|
+
* `base_url`, when set, overrides the provider's hardcoded endpoint — used
|
|
1348
|
+
* to point the driver at a backend proxy that injects the real API key
|
|
1349
|
+
* server-side, so the device never holds the provider secret. `None` ⇒
|
|
1350
|
+
* the provider's default endpoint (unchanged behavior).
|
|
1323
1351
|
*/
|
|
1324
|
-
open func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1352
|
+
open func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?, baseUrl: String?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1325
1353
|
uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(
|
|
1326
1354
|
self.uniffiCloneHandle(),
|
|
1327
1355
|
FfiConverterString.lower(key),
|
|
1328
1356
|
FfiConverterString.lower(provider),
|
|
1329
1357
|
FfiConverterString.lower(authType),
|
|
1330
1358
|
FfiConverterOptionString.lower(refresh),
|
|
1331
|
-
FfiConverterOptionInt64.lower(expiresAt)
|
|
1359
|
+
FfiConverterOptionInt64.lower(expiresAt),
|
|
1360
|
+
FfiConverterOptionString.lower(baseUrl),$0
|
|
1332
1361
|
)
|
|
1333
1362
|
}
|
|
1334
1363
|
}
|
|
@@ -1365,6 +1394,21 @@ open func setHeartbeatConfig(configJson: String)throws {try rustCallWithError(
|
|
|
1365
1394
|
FfiConverterString.lower(configJson),$0
|
|
1366
1395
|
)
|
|
1367
1396
|
}
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
/**
|
|
1400
|
+
* Replace the FFI's MCP tool manifest. Tools registered here become
|
|
1401
|
+
* visible to the LLM and, when called, surface as `mcp_tool_call`
|
|
1402
|
+
* events that the host must answer with `respond_to_mcp_tool`.
|
|
1403
|
+
* Idempotent — every call replaces the prior manifest.
|
|
1404
|
+
*/
|
|
1405
|
+
open func setMcpTools(toolsJson: String)throws -> UInt32 {
|
|
1406
|
+
return try FfiConverterUInt32.lift(try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1407
|
+
uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_mcp_tools(
|
|
1408
|
+
self.uniffiCloneHandle(),
|
|
1409
|
+
FfiConverterString.lower(toolsJson),$0
|
|
1410
|
+
)
|
|
1411
|
+
})
|
|
1368
1412
|
}
|
|
1369
1413
|
|
|
1370
1414
|
open func setMemoryProvider(provider: MemoryProvider)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
@@ -1913,6 +1957,11 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1913
1957
|
* JSON-encoded prior conversation messages for multi-turn sessions.
|
|
1914
1958
|
*/
|
|
1915
1959
|
public var priorMessagesJson: String?
|
|
1960
|
+
/**
|
|
1961
|
+
* Create-only plan-mode seed (Stage 4b). Honored when starting a NEW
|
|
1962
|
+
* session; the persisted store value is authoritative on resume.
|
|
1963
|
+
*/
|
|
1964
|
+
public var planModeInit: Bool?
|
|
1916
1965
|
|
|
1917
1966
|
// Default memberwise initializers are never public by default, so we
|
|
1918
1967
|
// declare one manually.
|
|
@@ -1924,7 +1973,11 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1924
1973
|
*/skillAllowedToolsJson: String?,
|
|
1925
1974
|
/**
|
|
1926
1975
|
* JSON-encoded prior conversation messages for multi-turn sessions.
|
|
1927
|
-
*/priorMessagesJson: String
|
|
1976
|
+
*/priorMessagesJson: String?,
|
|
1977
|
+
/**
|
|
1978
|
+
* Create-only plan-mode seed (Stage 4b). Honored when starting a NEW
|
|
1979
|
+
* session; the persisted store value is authoritative on resume.
|
|
1980
|
+
*/planModeInit: Bool?) {
|
|
1928
1981
|
self.prompt = prompt
|
|
1929
1982
|
self.sessionKey = sessionKey
|
|
1930
1983
|
self.model = model
|
|
@@ -1933,6 +1986,7 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1933
1986
|
self.maxTurns = maxTurns
|
|
1934
1987
|
self.skillAllowedToolsJson = skillAllowedToolsJson
|
|
1935
1988
|
self.priorMessagesJson = priorMessagesJson
|
|
1989
|
+
self.planModeInit = planModeInit
|
|
1936
1990
|
}
|
|
1937
1991
|
|
|
1938
1992
|
|
|
@@ -1958,7 +2012,8 @@ public struct FfiConverterTypeSendMessageParams: FfiConverterRustBuffer {
|
|
|
1958
2012
|
systemPrompt: FfiConverterString.read(from: &buf),
|
|
1959
2013
|
maxTurns: FfiConverterOptionUInt32.read(from: &buf),
|
|
1960
2014
|
skillAllowedToolsJson: FfiConverterOptionString.read(from: &buf),
|
|
1961
|
-
priorMessagesJson: FfiConverterOptionString.read(from: &buf)
|
|
2015
|
+
priorMessagesJson: FfiConverterOptionString.read(from: &buf),
|
|
2016
|
+
planModeInit: FfiConverterOptionBool.read(from: &buf)
|
|
1962
2017
|
)
|
|
1963
2018
|
}
|
|
1964
2019
|
|
|
@@ -1971,6 +2026,7 @@ public struct FfiConverterTypeSendMessageParams: FfiConverterRustBuffer {
|
|
|
1971
2026
|
FfiConverterOptionUInt32.write(value.maxTurns, into: &buf)
|
|
1972
2027
|
FfiConverterOptionString.write(value.skillAllowedToolsJson, into: &buf)
|
|
1973
2028
|
FfiConverterOptionString.write(value.priorMessagesJson, into: &buf)
|
|
2029
|
+
FfiConverterOptionBool.write(value.planModeInit, into: &buf)
|
|
1974
2030
|
}
|
|
1975
2031
|
}
|
|
1976
2032
|
|
|
@@ -2392,6 +2448,19 @@ public protocol GovernanceProvider: AnyObject, Sendable {
|
|
|
2392
2448
|
*/
|
|
2393
2449
|
func checkSink(sinkType: String, content: String) -> String
|
|
2394
2450
|
|
|
2451
|
+
/**
|
|
2452
|
+
* Register a tainted value for data-flow tracking (agent-os taint uptake).
|
|
2453
|
+
* `labels` is a comma-separated set drawn from
|
|
2454
|
+
* `Pii|Secret|ExternalNetwork|UserInput|UntrustedAgent`; a later
|
|
2455
|
+
* `check_sink` blocks if a registered value reaches a sink that forbids one
|
|
2456
|
+
* of its labels (e.g. ExternalNetwork content flowing into ShellExec).
|
|
2457
|
+
* (No default: `#[uniffi::export]` callback-interface methods can't be
|
|
2458
|
+
* defaulted — every host impl must provide it. Mobile delegates to its
|
|
2459
|
+
* `TaintTracker::register`; a host with no taint engine implements it as a
|
|
2460
|
+
* no-op.)
|
|
2461
|
+
*/
|
|
2462
|
+
func registerTaint(key: String, value: String, labels: String, source: String)
|
|
2463
|
+
|
|
2395
2464
|
/**
|
|
2396
2465
|
* Reset loop guard state (e.g. on new session).
|
|
2397
2466
|
*/
|
|
@@ -2537,6 +2606,36 @@ fileprivate struct UniffiCallbackInterfaceGovernanceProvider {
|
|
|
2537
2606
|
writeReturn: writeReturn
|
|
2538
2607
|
)
|
|
2539
2608
|
},
|
|
2609
|
+
registerTaint: { (
|
|
2610
|
+
uniffiHandle: UInt64,
|
|
2611
|
+
key: RustBuffer,
|
|
2612
|
+
value: RustBuffer,
|
|
2613
|
+
labels: RustBuffer,
|
|
2614
|
+
source: RustBuffer,
|
|
2615
|
+
uniffiOutReturn: UnsafeMutableRawPointer,
|
|
2616
|
+
uniffiCallStatus: UnsafeMutablePointer<RustCallStatus>
|
|
2617
|
+
) in
|
|
2618
|
+
let makeCall = {
|
|
2619
|
+
() throws -> () in
|
|
2620
|
+
guard let uniffiObj = try? FfiConverterCallbackInterfaceGovernanceProvider.handleMap.get(handle: uniffiHandle) else {
|
|
2621
|
+
throw UniffiInternalError.unexpectedStaleHandle
|
|
2622
|
+
}
|
|
2623
|
+
return uniffiObj.registerTaint(
|
|
2624
|
+
key: try FfiConverterString.lift(key),
|
|
2625
|
+
value: try FfiConverterString.lift(value),
|
|
2626
|
+
labels: try FfiConverterString.lift(labels),
|
|
2627
|
+
source: try FfiConverterString.lift(source)
|
|
2628
|
+
)
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
|
|
2632
|
+
let writeReturn = { () }
|
|
2633
|
+
uniffiTraitInterfaceCall(
|
|
2634
|
+
callStatus: uniffiCallStatus,
|
|
2635
|
+
makeCall: makeCall,
|
|
2636
|
+
writeReturn: writeReturn
|
|
2637
|
+
)
|
|
2638
|
+
},
|
|
2540
2639
|
reset: { (
|
|
2541
2640
|
uniffiHandle: UInt64,
|
|
2542
2641
|
uniffiOutReturn: UnsafeMutableRawPointer,
|
|
@@ -3238,6 +3337,30 @@ fileprivate struct FfiConverterOptionInt64: FfiConverterRustBuffer {
|
|
|
3238
3337
|
}
|
|
3239
3338
|
}
|
|
3240
3339
|
|
|
3340
|
+
#if swift(>=5.8)
|
|
3341
|
+
@_documentation(visibility: private)
|
|
3342
|
+
#endif
|
|
3343
|
+
fileprivate struct FfiConverterOptionBool: FfiConverterRustBuffer {
|
|
3344
|
+
typealias SwiftType = Bool?
|
|
3345
|
+
|
|
3346
|
+
public static func write(_ value: SwiftType, into buf: inout [UInt8]) {
|
|
3347
|
+
guard let value = value else {
|
|
3348
|
+
writeInt(&buf, Int8(0))
|
|
3349
|
+
return
|
|
3350
|
+
}
|
|
3351
|
+
writeInt(&buf, Int8(1))
|
|
3352
|
+
FfiConverterBool.write(value, into: &buf)
|
|
3353
|
+
}
|
|
3354
|
+
|
|
3355
|
+
public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType {
|
|
3356
|
+
switch try readInt(&buf) as Int8 {
|
|
3357
|
+
case 0: return nil
|
|
3358
|
+
case 1: return try FfiConverterBool.read(from: &buf)
|
|
3359
|
+
default: throw UniffiInternalError.unexpectedOptionalTag
|
|
3360
|
+
}
|
|
3361
|
+
}
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3241
3364
|
#if swift(>=5.8)
|
|
3242
3365
|
@_documentation(visibility: private)
|
|
3243
3366
|
#endif
|
|
@@ -3411,7 +3534,7 @@ private let initializationResult: InitializationResult = {
|
|
|
3411
3534
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_reset_tool_permissions() != 15060) {
|
|
3412
3535
|
return InitializationResult.apiChecksumMismatch
|
|
3413
3536
|
}
|
|
3414
|
-
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_approval() !=
|
|
3537
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_approval() != 56876) {
|
|
3415
3538
|
return InitializationResult.apiChecksumMismatch
|
|
3416
3539
|
}
|
|
3417
3540
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_cron_approval() != 851) {
|
|
@@ -3438,7 +3561,7 @@ private let initializationResult: InitializationResult = {
|
|
|
3438
3561
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_serialize_agent_event_json() != 40873) {
|
|
3439
3562
|
return InitializationResult.apiChecksumMismatch
|
|
3440
3563
|
}
|
|
3441
|
-
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_auth_key() !=
|
|
3564
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_auth_key() != 12658) {
|
|
3442
3565
|
return InitializationResult.apiChecksumMismatch
|
|
3443
3566
|
}
|
|
3444
3567
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_event_callback() != 56165) {
|
|
@@ -3450,6 +3573,9 @@ private let initializationResult: InitializationResult = {
|
|
|
3450
3573
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_heartbeat_config() != 33968) {
|
|
3451
3574
|
return InitializationResult.apiChecksumMismatch
|
|
3452
3575
|
}
|
|
3576
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_mcp_tools() != 15664) {
|
|
3577
|
+
return InitializationResult.apiChecksumMismatch
|
|
3578
|
+
}
|
|
3453
3579
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_memory_provider() != 23171) {
|
|
3454
3580
|
return InitializationResult.apiChecksumMismatch
|
|
3455
3581
|
}
|
|
@@ -3492,10 +3618,13 @@ private let initializationResult: InitializationResult = {
|
|
|
3492
3618
|
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_check_sink() != 37338) {
|
|
3493
3619
|
return InitializationResult.apiChecksumMismatch
|
|
3494
3620
|
}
|
|
3495
|
-
if (
|
|
3621
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_register_taint() != 17176) {
|
|
3622
|
+
return InitializationResult.apiChecksumMismatch
|
|
3623
|
+
}
|
|
3624
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_reset() != 47675) {
|
|
3496
3625
|
return InitializationResult.apiChecksumMismatch
|
|
3497
3626
|
}
|
|
3498
|
-
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_record_usage() !=
|
|
3627
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_record_usage() != 32049) {
|
|
3499
3628
|
return InitializationResult.apiChecksumMismatch
|
|
3500
3629
|
}
|
|
3501
3630
|
if (uniffi_native_agent_ffi_checksum_method_memoryprovider_store() != 49136) {
|
|
@@ -273,14 +273,21 @@ typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod3)(uint64_t, RustB
|
|
|
273
273
|
#endif
|
|
274
274
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD4
|
|
275
275
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD4
|
|
276
|
-
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod4)(uint64_t, void* _Nonnull,
|
|
276
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod4)(uint64_t, RustBuffer, RustBuffer, RustBuffer, RustBuffer, void* _Nonnull,
|
|
277
277
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
278
278
|
);
|
|
279
279
|
|
|
280
280
|
#endif
|
|
281
281
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD5
|
|
282
282
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD5
|
|
283
|
-
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod5)(uint64_t,
|
|
283
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod5)(uint64_t, void* _Nonnull,
|
|
284
|
+
RustCallStatus *_Nonnull uniffiCallStatus
|
|
285
|
+
);
|
|
286
|
+
|
|
287
|
+
#endif
|
|
288
|
+
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD6
|
|
289
|
+
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD6
|
|
290
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod6)(uint64_t, RustBuffer, uint32_t, uint32_t, void* _Nonnull,
|
|
284
291
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
285
292
|
);
|
|
286
293
|
|
|
@@ -357,8 +364,9 @@ typedef struct UniffiVTableCallbackInterfaceGovernanceProvider {
|
|
|
357
364
|
UniffiCallbackInterfaceGovernanceProviderMethod1 _Nonnull recordOutcome;
|
|
358
365
|
UniffiCallbackInterfaceGovernanceProviderMethod2 _Nonnull recordAudit;
|
|
359
366
|
UniffiCallbackInterfaceGovernanceProviderMethod3 _Nonnull checkSink;
|
|
360
|
-
UniffiCallbackInterfaceGovernanceProviderMethod4 _Nonnull
|
|
361
|
-
UniffiCallbackInterfaceGovernanceProviderMethod5 _Nonnull
|
|
367
|
+
UniffiCallbackInterfaceGovernanceProviderMethod4 _Nonnull registerTaint;
|
|
368
|
+
UniffiCallbackInterfaceGovernanceProviderMethod5 _Nonnull reset;
|
|
369
|
+
UniffiCallbackInterfaceGovernanceProviderMethod6 _Nonnull recordUsage;
|
|
362
370
|
} UniffiVTableCallbackInterfaceGovernanceProvider;
|
|
363
371
|
|
|
364
372
|
#endif
|
|
@@ -610,7 +618,7 @@ RustBuffer uniffi_native_agent_ffi_fn_method_nativeagenthandle_serialize_agent_e
|
|
|
610
618
|
#endif
|
|
611
619
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_AUTH_KEY
|
|
612
620
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_AUTH_KEY
|
|
613
|
-
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(uint64_t ptr, RustBuffer key, RustBuffer provider, RustBuffer auth_type, RustBuffer refresh, RustBuffer expires_at, RustCallStatus *_Nonnull out_status
|
|
621
|
+
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(uint64_t ptr, RustBuffer key, RustBuffer provider, RustBuffer auth_type, RustBuffer refresh, RustBuffer expires_at, RustBuffer base_url, RustCallStatus *_Nonnull out_status
|
|
614
622
|
);
|
|
615
623
|
#endif
|
|
616
624
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_EVENT_CALLBACK
|
|
@@ -628,6 +636,11 @@ void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_governance_provider
|
|
|
628
636
|
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_heartbeat_config(uint64_t ptr, RustBuffer config_json, RustCallStatus *_Nonnull out_status
|
|
629
637
|
);
|
|
630
638
|
#endif
|
|
639
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
640
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
641
|
+
uint32_t uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_mcp_tools(uint64_t ptr, RustBuffer tools_json, RustCallStatus *_Nonnull out_status
|
|
642
|
+
);
|
|
643
|
+
#endif
|
|
631
644
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
632
645
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
633
646
|
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_memory_provider(uint64_t ptr, uint64_t provider, RustCallStatus *_Nonnull out_status
|
|
@@ -1230,6 +1243,12 @@ uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_governanc
|
|
|
1230
1243
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_HEARTBEAT_CONFIG
|
|
1231
1244
|
uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_heartbeat_config(void
|
|
1232
1245
|
|
|
1246
|
+
);
|
|
1247
|
+
#endif
|
|
1248
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
1249
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
1250
|
+
uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_mcp_tools(void
|
|
1251
|
+
|
|
1233
1252
|
);
|
|
1234
1253
|
#endif
|
|
1235
1254
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
@@ -1314,6 +1333,12 @@ uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_record_audit
|
|
|
1314
1333
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_CHECK_SINK
|
|
1315
1334
|
uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_check_sink(void
|
|
1316
1335
|
|
|
1336
|
+
);
|
|
1337
|
+
#endif
|
|
1338
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_REGISTER_TAINT
|
|
1339
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_REGISTER_TAINT
|
|
1340
|
+
uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_register_taint(void
|
|
1341
|
+
|
|
1317
1342
|
);
|
|
1318
1343
|
#endif
|
|
1319
1344
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_RESET
|
|
Binary file
|
|
@@ -682,7 +682,12 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
682
682
|
func resetToolPermissions() throws
|
|
683
683
|
|
|
684
684
|
/**
|
|
685
|
-
* Respond to a tool approval request.
|
|
685
|
+
* Respond to a tool approval request (legacy boolean entry point).
|
|
686
|
+
*
|
|
687
|
+
* Retained as the UniFFI-facing API for mobile callers that pass a plain
|
|
688
|
+
* boolean. Internally delegates to `respond_to_approval_decision` (a
|
|
689
|
+
* Rust-only helper, not UniFFI-exported) with no `decision`/`answers`,
|
|
690
|
+
* preserving today's behavior.
|
|
686
691
|
*/
|
|
687
692
|
func respondToApproval(toolCallId: String, approved: Bool, reason: String?) throws
|
|
688
693
|
|
|
@@ -732,8 +737,13 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
732
737
|
|
|
733
738
|
/**
|
|
734
739
|
* Set an auth key for a provider.
|
|
740
|
+
*
|
|
741
|
+
* `base_url`, when set, overrides the provider's hardcoded endpoint — used
|
|
742
|
+
* to point the driver at a backend proxy that injects the real API key
|
|
743
|
+
* server-side, so the device never holds the provider secret. `None` ⇒
|
|
744
|
+
* the provider's default endpoint (unchanged behavior).
|
|
735
745
|
*/
|
|
736
|
-
func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?) throws
|
|
746
|
+
func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?, baseUrl: String?) throws
|
|
737
747
|
|
|
738
748
|
/**
|
|
739
749
|
* Set the event callback for receiving agent events.
|
|
@@ -751,6 +761,14 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
751
761
|
*/
|
|
752
762
|
func setHeartbeatConfig(configJson: String) throws
|
|
753
763
|
|
|
764
|
+
/**
|
|
765
|
+
* Replace the FFI's MCP tool manifest. Tools registered here become
|
|
766
|
+
* visible to the LLM and, when called, surface as `mcp_tool_call`
|
|
767
|
+
* events that the host must answer with `respond_to_mcp_tool`.
|
|
768
|
+
* Idempotent — every call replaces the prior manifest.
|
|
769
|
+
*/
|
|
770
|
+
func setMcpTools(toolsJson: String) throws -> UInt32
|
|
771
|
+
|
|
754
772
|
func setMemoryProvider(provider: MemoryProvider) throws
|
|
755
773
|
|
|
756
774
|
func setNotifier(notifier: NativeNotifier) throws
|
|
@@ -1200,7 +1218,12 @@ open func resetToolPermissions()throws {try rustCallWithError(FfiConverterType
|
|
|
1200
1218
|
}
|
|
1201
1219
|
|
|
1202
1220
|
/**
|
|
1203
|
-
* Respond to a tool approval request.
|
|
1221
|
+
* Respond to a tool approval request (legacy boolean entry point).
|
|
1222
|
+
*
|
|
1223
|
+
* Retained as the UniFFI-facing API for mobile callers that pass a plain
|
|
1224
|
+
* boolean. Internally delegates to `respond_to_approval_decision` (a
|
|
1225
|
+
* Rust-only helper, not UniFFI-exported) with no `decision`/`answers`,
|
|
1226
|
+
* preserving today's behavior.
|
|
1204
1227
|
*/
|
|
1205
1228
|
open func respondToApproval(toolCallId: String, approved: Bool, reason: String?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1206
1229
|
uniffi_native_agent_ffi_fn_method_nativeagenthandle_respond_to_approval(
|
|
@@ -1320,15 +1343,21 @@ open func serializeAgentEventJson(eventType: String, payloadJson: String, sessio
|
|
|
1320
1343
|
|
|
1321
1344
|
/**
|
|
1322
1345
|
* Set an auth key for a provider.
|
|
1346
|
+
*
|
|
1347
|
+
* `base_url`, when set, overrides the provider's hardcoded endpoint — used
|
|
1348
|
+
* to point the driver at a backend proxy that injects the real API key
|
|
1349
|
+
* server-side, so the device never holds the provider secret. `None` ⇒
|
|
1350
|
+
* the provider's default endpoint (unchanged behavior).
|
|
1323
1351
|
*/
|
|
1324
|
-
open func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1352
|
+
open func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?, baseUrl: String?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1325
1353
|
uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(
|
|
1326
1354
|
self.uniffiCloneHandle(),
|
|
1327
1355
|
FfiConverterString.lower(key),
|
|
1328
1356
|
FfiConverterString.lower(provider),
|
|
1329
1357
|
FfiConverterString.lower(authType),
|
|
1330
1358
|
FfiConverterOptionString.lower(refresh),
|
|
1331
|
-
FfiConverterOptionInt64.lower(expiresAt)
|
|
1359
|
+
FfiConverterOptionInt64.lower(expiresAt),
|
|
1360
|
+
FfiConverterOptionString.lower(baseUrl),$0
|
|
1332
1361
|
)
|
|
1333
1362
|
}
|
|
1334
1363
|
}
|
|
@@ -1365,6 +1394,21 @@ open func setHeartbeatConfig(configJson: String)throws {try rustCallWithError(
|
|
|
1365
1394
|
FfiConverterString.lower(configJson),$0
|
|
1366
1395
|
)
|
|
1367
1396
|
}
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
/**
|
|
1400
|
+
* Replace the FFI's MCP tool manifest. Tools registered here become
|
|
1401
|
+
* visible to the LLM and, when called, surface as `mcp_tool_call`
|
|
1402
|
+
* events that the host must answer with `respond_to_mcp_tool`.
|
|
1403
|
+
* Idempotent — every call replaces the prior manifest.
|
|
1404
|
+
*/
|
|
1405
|
+
open func setMcpTools(toolsJson: String)throws -> UInt32 {
|
|
1406
|
+
return try FfiConverterUInt32.lift(try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1407
|
+
uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_mcp_tools(
|
|
1408
|
+
self.uniffiCloneHandle(),
|
|
1409
|
+
FfiConverterString.lower(toolsJson),$0
|
|
1410
|
+
)
|
|
1411
|
+
})
|
|
1368
1412
|
}
|
|
1369
1413
|
|
|
1370
1414
|
open func setMemoryProvider(provider: MemoryProvider)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
@@ -1913,6 +1957,11 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1913
1957
|
* JSON-encoded prior conversation messages for multi-turn sessions.
|
|
1914
1958
|
*/
|
|
1915
1959
|
public var priorMessagesJson: String?
|
|
1960
|
+
/**
|
|
1961
|
+
* Create-only plan-mode seed (Stage 4b). Honored when starting a NEW
|
|
1962
|
+
* session; the persisted store value is authoritative on resume.
|
|
1963
|
+
*/
|
|
1964
|
+
public var planModeInit: Bool?
|
|
1916
1965
|
|
|
1917
1966
|
// Default memberwise initializers are never public by default, so we
|
|
1918
1967
|
// declare one manually.
|
|
@@ -1924,7 +1973,11 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1924
1973
|
*/skillAllowedToolsJson: String?,
|
|
1925
1974
|
/**
|
|
1926
1975
|
* JSON-encoded prior conversation messages for multi-turn sessions.
|
|
1927
|
-
*/priorMessagesJson: String
|
|
1976
|
+
*/priorMessagesJson: String?,
|
|
1977
|
+
/**
|
|
1978
|
+
* Create-only plan-mode seed (Stage 4b). Honored when starting a NEW
|
|
1979
|
+
* session; the persisted store value is authoritative on resume.
|
|
1980
|
+
*/planModeInit: Bool?) {
|
|
1928
1981
|
self.prompt = prompt
|
|
1929
1982
|
self.sessionKey = sessionKey
|
|
1930
1983
|
self.model = model
|
|
@@ -1933,6 +1986,7 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1933
1986
|
self.maxTurns = maxTurns
|
|
1934
1987
|
self.skillAllowedToolsJson = skillAllowedToolsJson
|
|
1935
1988
|
self.priorMessagesJson = priorMessagesJson
|
|
1989
|
+
self.planModeInit = planModeInit
|
|
1936
1990
|
}
|
|
1937
1991
|
|
|
1938
1992
|
|
|
@@ -1958,7 +2012,8 @@ public struct FfiConverterTypeSendMessageParams: FfiConverterRustBuffer {
|
|
|
1958
2012
|
systemPrompt: FfiConverterString.read(from: &buf),
|
|
1959
2013
|
maxTurns: FfiConverterOptionUInt32.read(from: &buf),
|
|
1960
2014
|
skillAllowedToolsJson: FfiConverterOptionString.read(from: &buf),
|
|
1961
|
-
priorMessagesJson: FfiConverterOptionString.read(from: &buf)
|
|
2015
|
+
priorMessagesJson: FfiConverterOptionString.read(from: &buf),
|
|
2016
|
+
planModeInit: FfiConverterOptionBool.read(from: &buf)
|
|
1962
2017
|
)
|
|
1963
2018
|
}
|
|
1964
2019
|
|
|
@@ -1971,6 +2026,7 @@ public struct FfiConverterTypeSendMessageParams: FfiConverterRustBuffer {
|
|
|
1971
2026
|
FfiConverterOptionUInt32.write(value.maxTurns, into: &buf)
|
|
1972
2027
|
FfiConverterOptionString.write(value.skillAllowedToolsJson, into: &buf)
|
|
1973
2028
|
FfiConverterOptionString.write(value.priorMessagesJson, into: &buf)
|
|
2029
|
+
FfiConverterOptionBool.write(value.planModeInit, into: &buf)
|
|
1974
2030
|
}
|
|
1975
2031
|
}
|
|
1976
2032
|
|
|
@@ -2392,6 +2448,19 @@ public protocol GovernanceProvider: AnyObject, Sendable {
|
|
|
2392
2448
|
*/
|
|
2393
2449
|
func checkSink(sinkType: String, content: String) -> String
|
|
2394
2450
|
|
|
2451
|
+
/**
|
|
2452
|
+
* Register a tainted value for data-flow tracking (agent-os taint uptake).
|
|
2453
|
+
* `labels` is a comma-separated set drawn from
|
|
2454
|
+
* `Pii|Secret|ExternalNetwork|UserInput|UntrustedAgent`; a later
|
|
2455
|
+
* `check_sink` blocks if a registered value reaches a sink that forbids one
|
|
2456
|
+
* of its labels (e.g. ExternalNetwork content flowing into ShellExec).
|
|
2457
|
+
* (No default: `#[uniffi::export]` callback-interface methods can't be
|
|
2458
|
+
* defaulted — every host impl must provide it. Mobile delegates to its
|
|
2459
|
+
* `TaintTracker::register`; a host with no taint engine implements it as a
|
|
2460
|
+
* no-op.)
|
|
2461
|
+
*/
|
|
2462
|
+
func registerTaint(key: String, value: String, labels: String, source: String)
|
|
2463
|
+
|
|
2395
2464
|
/**
|
|
2396
2465
|
* Reset loop guard state (e.g. on new session).
|
|
2397
2466
|
*/
|
|
@@ -2537,6 +2606,36 @@ fileprivate struct UniffiCallbackInterfaceGovernanceProvider {
|
|
|
2537
2606
|
writeReturn: writeReturn
|
|
2538
2607
|
)
|
|
2539
2608
|
},
|
|
2609
|
+
registerTaint: { (
|
|
2610
|
+
uniffiHandle: UInt64,
|
|
2611
|
+
key: RustBuffer,
|
|
2612
|
+
value: RustBuffer,
|
|
2613
|
+
labels: RustBuffer,
|
|
2614
|
+
source: RustBuffer,
|
|
2615
|
+
uniffiOutReturn: UnsafeMutableRawPointer,
|
|
2616
|
+
uniffiCallStatus: UnsafeMutablePointer<RustCallStatus>
|
|
2617
|
+
) in
|
|
2618
|
+
let makeCall = {
|
|
2619
|
+
() throws -> () in
|
|
2620
|
+
guard let uniffiObj = try? FfiConverterCallbackInterfaceGovernanceProvider.handleMap.get(handle: uniffiHandle) else {
|
|
2621
|
+
throw UniffiInternalError.unexpectedStaleHandle
|
|
2622
|
+
}
|
|
2623
|
+
return uniffiObj.registerTaint(
|
|
2624
|
+
key: try FfiConverterString.lift(key),
|
|
2625
|
+
value: try FfiConverterString.lift(value),
|
|
2626
|
+
labels: try FfiConverterString.lift(labels),
|
|
2627
|
+
source: try FfiConverterString.lift(source)
|
|
2628
|
+
)
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
|
|
2632
|
+
let writeReturn = { () }
|
|
2633
|
+
uniffiTraitInterfaceCall(
|
|
2634
|
+
callStatus: uniffiCallStatus,
|
|
2635
|
+
makeCall: makeCall,
|
|
2636
|
+
writeReturn: writeReturn
|
|
2637
|
+
)
|
|
2638
|
+
},
|
|
2540
2639
|
reset: { (
|
|
2541
2640
|
uniffiHandle: UInt64,
|
|
2542
2641
|
uniffiOutReturn: UnsafeMutableRawPointer,
|
|
@@ -3238,6 +3337,30 @@ fileprivate struct FfiConverterOptionInt64: FfiConverterRustBuffer {
|
|
|
3238
3337
|
}
|
|
3239
3338
|
}
|
|
3240
3339
|
|
|
3340
|
+
#if swift(>=5.8)
|
|
3341
|
+
@_documentation(visibility: private)
|
|
3342
|
+
#endif
|
|
3343
|
+
fileprivate struct FfiConverterOptionBool: FfiConverterRustBuffer {
|
|
3344
|
+
typealias SwiftType = Bool?
|
|
3345
|
+
|
|
3346
|
+
public static func write(_ value: SwiftType, into buf: inout [UInt8]) {
|
|
3347
|
+
guard let value = value else {
|
|
3348
|
+
writeInt(&buf, Int8(0))
|
|
3349
|
+
return
|
|
3350
|
+
}
|
|
3351
|
+
writeInt(&buf, Int8(1))
|
|
3352
|
+
FfiConverterBool.write(value, into: &buf)
|
|
3353
|
+
}
|
|
3354
|
+
|
|
3355
|
+
public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType {
|
|
3356
|
+
switch try readInt(&buf) as Int8 {
|
|
3357
|
+
case 0: return nil
|
|
3358
|
+
case 1: return try FfiConverterBool.read(from: &buf)
|
|
3359
|
+
default: throw UniffiInternalError.unexpectedOptionalTag
|
|
3360
|
+
}
|
|
3361
|
+
}
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3241
3364
|
#if swift(>=5.8)
|
|
3242
3365
|
@_documentation(visibility: private)
|
|
3243
3366
|
#endif
|
|
@@ -3411,7 +3534,7 @@ private let initializationResult: InitializationResult = {
|
|
|
3411
3534
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_reset_tool_permissions() != 15060) {
|
|
3412
3535
|
return InitializationResult.apiChecksumMismatch
|
|
3413
3536
|
}
|
|
3414
|
-
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_approval() !=
|
|
3537
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_approval() != 56876) {
|
|
3415
3538
|
return InitializationResult.apiChecksumMismatch
|
|
3416
3539
|
}
|
|
3417
3540
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_cron_approval() != 851) {
|
|
@@ -3438,7 +3561,7 @@ private let initializationResult: InitializationResult = {
|
|
|
3438
3561
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_serialize_agent_event_json() != 40873) {
|
|
3439
3562
|
return InitializationResult.apiChecksumMismatch
|
|
3440
3563
|
}
|
|
3441
|
-
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_auth_key() !=
|
|
3564
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_auth_key() != 12658) {
|
|
3442
3565
|
return InitializationResult.apiChecksumMismatch
|
|
3443
3566
|
}
|
|
3444
3567
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_event_callback() != 56165) {
|
|
@@ -3450,6 +3573,9 @@ private let initializationResult: InitializationResult = {
|
|
|
3450
3573
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_heartbeat_config() != 33968) {
|
|
3451
3574
|
return InitializationResult.apiChecksumMismatch
|
|
3452
3575
|
}
|
|
3576
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_mcp_tools() != 15664) {
|
|
3577
|
+
return InitializationResult.apiChecksumMismatch
|
|
3578
|
+
}
|
|
3453
3579
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_memory_provider() != 23171) {
|
|
3454
3580
|
return InitializationResult.apiChecksumMismatch
|
|
3455
3581
|
}
|
|
@@ -3492,10 +3618,13 @@ private let initializationResult: InitializationResult = {
|
|
|
3492
3618
|
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_check_sink() != 37338) {
|
|
3493
3619
|
return InitializationResult.apiChecksumMismatch
|
|
3494
3620
|
}
|
|
3495
|
-
if (
|
|
3621
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_register_taint() != 17176) {
|
|
3622
|
+
return InitializationResult.apiChecksumMismatch
|
|
3623
|
+
}
|
|
3624
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_reset() != 47675) {
|
|
3496
3625
|
return InitializationResult.apiChecksumMismatch
|
|
3497
3626
|
}
|
|
3498
|
-
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_record_usage() !=
|
|
3627
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_record_usage() != 32049) {
|
|
3499
3628
|
return InitializationResult.apiChecksumMismatch
|
|
3500
3629
|
}
|
|
3501
3630
|
if (uniffi_native_agent_ffi_checksum_method_memoryprovider_store() != 49136) {
|
|
@@ -273,14 +273,21 @@ typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod3)(uint64_t, RustB
|
|
|
273
273
|
#endif
|
|
274
274
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD4
|
|
275
275
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD4
|
|
276
|
-
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod4)(uint64_t, void* _Nonnull,
|
|
276
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod4)(uint64_t, RustBuffer, RustBuffer, RustBuffer, RustBuffer, void* _Nonnull,
|
|
277
277
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
278
278
|
);
|
|
279
279
|
|
|
280
280
|
#endif
|
|
281
281
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD5
|
|
282
282
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD5
|
|
283
|
-
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod5)(uint64_t,
|
|
283
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod5)(uint64_t, void* _Nonnull,
|
|
284
|
+
RustCallStatus *_Nonnull uniffiCallStatus
|
|
285
|
+
);
|
|
286
|
+
|
|
287
|
+
#endif
|
|
288
|
+
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD6
|
|
289
|
+
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD6
|
|
290
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod6)(uint64_t, RustBuffer, uint32_t, uint32_t, void* _Nonnull,
|
|
284
291
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
285
292
|
);
|
|
286
293
|
|
|
@@ -357,8 +364,9 @@ typedef struct UniffiVTableCallbackInterfaceGovernanceProvider {
|
|
|
357
364
|
UniffiCallbackInterfaceGovernanceProviderMethod1 _Nonnull recordOutcome;
|
|
358
365
|
UniffiCallbackInterfaceGovernanceProviderMethod2 _Nonnull recordAudit;
|
|
359
366
|
UniffiCallbackInterfaceGovernanceProviderMethod3 _Nonnull checkSink;
|
|
360
|
-
UniffiCallbackInterfaceGovernanceProviderMethod4 _Nonnull
|
|
361
|
-
UniffiCallbackInterfaceGovernanceProviderMethod5 _Nonnull
|
|
367
|
+
UniffiCallbackInterfaceGovernanceProviderMethod4 _Nonnull registerTaint;
|
|
368
|
+
UniffiCallbackInterfaceGovernanceProviderMethod5 _Nonnull reset;
|
|
369
|
+
UniffiCallbackInterfaceGovernanceProviderMethod6 _Nonnull recordUsage;
|
|
362
370
|
} UniffiVTableCallbackInterfaceGovernanceProvider;
|
|
363
371
|
|
|
364
372
|
#endif
|
|
@@ -610,7 +618,7 @@ RustBuffer uniffi_native_agent_ffi_fn_method_nativeagenthandle_serialize_agent_e
|
|
|
610
618
|
#endif
|
|
611
619
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_AUTH_KEY
|
|
612
620
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_AUTH_KEY
|
|
613
|
-
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(uint64_t ptr, RustBuffer key, RustBuffer provider, RustBuffer auth_type, RustBuffer refresh, RustBuffer expires_at, RustCallStatus *_Nonnull out_status
|
|
621
|
+
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(uint64_t ptr, RustBuffer key, RustBuffer provider, RustBuffer auth_type, RustBuffer refresh, RustBuffer expires_at, RustBuffer base_url, RustCallStatus *_Nonnull out_status
|
|
614
622
|
);
|
|
615
623
|
#endif
|
|
616
624
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_EVENT_CALLBACK
|
|
@@ -628,6 +636,11 @@ void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_governance_provider
|
|
|
628
636
|
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_heartbeat_config(uint64_t ptr, RustBuffer config_json, RustCallStatus *_Nonnull out_status
|
|
629
637
|
);
|
|
630
638
|
#endif
|
|
639
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
640
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
641
|
+
uint32_t uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_mcp_tools(uint64_t ptr, RustBuffer tools_json, RustCallStatus *_Nonnull out_status
|
|
642
|
+
);
|
|
643
|
+
#endif
|
|
631
644
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
632
645
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
633
646
|
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_memory_provider(uint64_t ptr, uint64_t provider, RustCallStatus *_Nonnull out_status
|
|
@@ -1230,6 +1243,12 @@ uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_governanc
|
|
|
1230
1243
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_HEARTBEAT_CONFIG
|
|
1231
1244
|
uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_heartbeat_config(void
|
|
1232
1245
|
|
|
1246
|
+
);
|
|
1247
|
+
#endif
|
|
1248
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
1249
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
1250
|
+
uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_mcp_tools(void
|
|
1251
|
+
|
|
1233
1252
|
);
|
|
1234
1253
|
#endif
|
|
1235
1254
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
@@ -1314,6 +1333,12 @@ uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_record_audit
|
|
|
1314
1333
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_CHECK_SINK
|
|
1315
1334
|
uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_check_sink(void
|
|
1316
1335
|
|
|
1336
|
+
);
|
|
1337
|
+
#endif
|
|
1338
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_REGISTER_TAINT
|
|
1339
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_REGISTER_TAINT
|
|
1340
|
+
uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_register_taint(void
|
|
1341
|
+
|
|
1317
1342
|
);
|
|
1318
1343
|
#endif
|
|
1319
1344
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_RESET
|
|
Binary file
|
|
@@ -682,7 +682,12 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
682
682
|
func resetToolPermissions() throws
|
|
683
683
|
|
|
684
684
|
/**
|
|
685
|
-
* Respond to a tool approval request.
|
|
685
|
+
* Respond to a tool approval request (legacy boolean entry point).
|
|
686
|
+
*
|
|
687
|
+
* Retained as the UniFFI-facing API for mobile callers that pass a plain
|
|
688
|
+
* boolean. Internally delegates to `respond_to_approval_decision` (a
|
|
689
|
+
* Rust-only helper, not UniFFI-exported) with no `decision`/`answers`,
|
|
690
|
+
* preserving today's behavior.
|
|
686
691
|
*/
|
|
687
692
|
func respondToApproval(toolCallId: String, approved: Bool, reason: String?) throws
|
|
688
693
|
|
|
@@ -732,8 +737,13 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
732
737
|
|
|
733
738
|
/**
|
|
734
739
|
* Set an auth key for a provider.
|
|
740
|
+
*
|
|
741
|
+
* `base_url`, when set, overrides the provider's hardcoded endpoint — used
|
|
742
|
+
* to point the driver at a backend proxy that injects the real API key
|
|
743
|
+
* server-side, so the device never holds the provider secret. `None` ⇒
|
|
744
|
+
* the provider's default endpoint (unchanged behavior).
|
|
735
745
|
*/
|
|
736
|
-
func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?) throws
|
|
746
|
+
func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?, baseUrl: String?) throws
|
|
737
747
|
|
|
738
748
|
/**
|
|
739
749
|
* Set the event callback for receiving agent events.
|
|
@@ -751,6 +761,14 @@ public protocol NativeAgentHandleProtocol: AnyObject, Sendable {
|
|
|
751
761
|
*/
|
|
752
762
|
func setHeartbeatConfig(configJson: String) throws
|
|
753
763
|
|
|
764
|
+
/**
|
|
765
|
+
* Replace the FFI's MCP tool manifest. Tools registered here become
|
|
766
|
+
* visible to the LLM and, when called, surface as `mcp_tool_call`
|
|
767
|
+
* events that the host must answer with `respond_to_mcp_tool`.
|
|
768
|
+
* Idempotent — every call replaces the prior manifest.
|
|
769
|
+
*/
|
|
770
|
+
func setMcpTools(toolsJson: String) throws -> UInt32
|
|
771
|
+
|
|
754
772
|
func setMemoryProvider(provider: MemoryProvider) throws
|
|
755
773
|
|
|
756
774
|
func setNotifier(notifier: NativeNotifier) throws
|
|
@@ -1200,7 +1218,12 @@ open func resetToolPermissions()throws {try rustCallWithError(FfiConverterType
|
|
|
1200
1218
|
}
|
|
1201
1219
|
|
|
1202
1220
|
/**
|
|
1203
|
-
* Respond to a tool approval request.
|
|
1221
|
+
* Respond to a tool approval request (legacy boolean entry point).
|
|
1222
|
+
*
|
|
1223
|
+
* Retained as the UniFFI-facing API for mobile callers that pass a plain
|
|
1224
|
+
* boolean. Internally delegates to `respond_to_approval_decision` (a
|
|
1225
|
+
* Rust-only helper, not UniFFI-exported) with no `decision`/`answers`,
|
|
1226
|
+
* preserving today's behavior.
|
|
1204
1227
|
*/
|
|
1205
1228
|
open func respondToApproval(toolCallId: String, approved: Bool, reason: String?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1206
1229
|
uniffi_native_agent_ffi_fn_method_nativeagenthandle_respond_to_approval(
|
|
@@ -1320,15 +1343,21 @@ open func serializeAgentEventJson(eventType: String, payloadJson: String, sessio
|
|
|
1320
1343
|
|
|
1321
1344
|
/**
|
|
1322
1345
|
* Set an auth key for a provider.
|
|
1346
|
+
*
|
|
1347
|
+
* `base_url`, when set, overrides the provider's hardcoded endpoint — used
|
|
1348
|
+
* to point the driver at a backend proxy that injects the real API key
|
|
1349
|
+
* server-side, so the device never holds the provider secret. `None` ⇒
|
|
1350
|
+
* the provider's default endpoint (unchanged behavior).
|
|
1323
1351
|
*/
|
|
1324
|
-
open func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1352
|
+
open func setAuthKey(key: String, provider: String, authType: String, refresh: String?, expiresAt: Int64?, baseUrl: String?)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1325
1353
|
uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(
|
|
1326
1354
|
self.uniffiCloneHandle(),
|
|
1327
1355
|
FfiConverterString.lower(key),
|
|
1328
1356
|
FfiConverterString.lower(provider),
|
|
1329
1357
|
FfiConverterString.lower(authType),
|
|
1330
1358
|
FfiConverterOptionString.lower(refresh),
|
|
1331
|
-
FfiConverterOptionInt64.lower(expiresAt)
|
|
1359
|
+
FfiConverterOptionInt64.lower(expiresAt),
|
|
1360
|
+
FfiConverterOptionString.lower(baseUrl),$0
|
|
1332
1361
|
)
|
|
1333
1362
|
}
|
|
1334
1363
|
}
|
|
@@ -1365,6 +1394,21 @@ open func setHeartbeatConfig(configJson: String)throws {try rustCallWithError(
|
|
|
1365
1394
|
FfiConverterString.lower(configJson),$0
|
|
1366
1395
|
)
|
|
1367
1396
|
}
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
/**
|
|
1400
|
+
* Replace the FFI's MCP tool manifest. Tools registered here become
|
|
1401
|
+
* visible to the LLM and, when called, surface as `mcp_tool_call`
|
|
1402
|
+
* events that the host must answer with `respond_to_mcp_tool`.
|
|
1403
|
+
* Idempotent — every call replaces the prior manifest.
|
|
1404
|
+
*/
|
|
1405
|
+
open func setMcpTools(toolsJson: String)throws -> UInt32 {
|
|
1406
|
+
return try FfiConverterUInt32.lift(try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
1407
|
+
uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_mcp_tools(
|
|
1408
|
+
self.uniffiCloneHandle(),
|
|
1409
|
+
FfiConverterString.lower(toolsJson),$0
|
|
1410
|
+
)
|
|
1411
|
+
})
|
|
1368
1412
|
}
|
|
1369
1413
|
|
|
1370
1414
|
open func setMemoryProvider(provider: MemoryProvider)throws {try rustCallWithError(FfiConverterTypeNativeAgentError_lift) {
|
|
@@ -1913,6 +1957,11 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1913
1957
|
* JSON-encoded prior conversation messages for multi-turn sessions.
|
|
1914
1958
|
*/
|
|
1915
1959
|
public var priorMessagesJson: String?
|
|
1960
|
+
/**
|
|
1961
|
+
* Create-only plan-mode seed (Stage 4b). Honored when starting a NEW
|
|
1962
|
+
* session; the persisted store value is authoritative on resume.
|
|
1963
|
+
*/
|
|
1964
|
+
public var planModeInit: Bool?
|
|
1916
1965
|
|
|
1917
1966
|
// Default memberwise initializers are never public by default, so we
|
|
1918
1967
|
// declare one manually.
|
|
@@ -1924,7 +1973,11 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1924
1973
|
*/skillAllowedToolsJson: String?,
|
|
1925
1974
|
/**
|
|
1926
1975
|
* JSON-encoded prior conversation messages for multi-turn sessions.
|
|
1927
|
-
*/priorMessagesJson: String
|
|
1976
|
+
*/priorMessagesJson: String?,
|
|
1977
|
+
/**
|
|
1978
|
+
* Create-only plan-mode seed (Stage 4b). Honored when starting a NEW
|
|
1979
|
+
* session; the persisted store value is authoritative on resume.
|
|
1980
|
+
*/planModeInit: Bool?) {
|
|
1928
1981
|
self.prompt = prompt
|
|
1929
1982
|
self.sessionKey = sessionKey
|
|
1930
1983
|
self.model = model
|
|
@@ -1933,6 +1986,7 @@ public struct SendMessageParams: Equatable, Hashable {
|
|
|
1933
1986
|
self.maxTurns = maxTurns
|
|
1934
1987
|
self.skillAllowedToolsJson = skillAllowedToolsJson
|
|
1935
1988
|
self.priorMessagesJson = priorMessagesJson
|
|
1989
|
+
self.planModeInit = planModeInit
|
|
1936
1990
|
}
|
|
1937
1991
|
|
|
1938
1992
|
|
|
@@ -1958,7 +2012,8 @@ public struct FfiConverterTypeSendMessageParams: FfiConverterRustBuffer {
|
|
|
1958
2012
|
systemPrompt: FfiConverterString.read(from: &buf),
|
|
1959
2013
|
maxTurns: FfiConverterOptionUInt32.read(from: &buf),
|
|
1960
2014
|
skillAllowedToolsJson: FfiConverterOptionString.read(from: &buf),
|
|
1961
|
-
priorMessagesJson: FfiConverterOptionString.read(from: &buf)
|
|
2015
|
+
priorMessagesJson: FfiConverterOptionString.read(from: &buf),
|
|
2016
|
+
planModeInit: FfiConverterOptionBool.read(from: &buf)
|
|
1962
2017
|
)
|
|
1963
2018
|
}
|
|
1964
2019
|
|
|
@@ -1971,6 +2026,7 @@ public struct FfiConverterTypeSendMessageParams: FfiConverterRustBuffer {
|
|
|
1971
2026
|
FfiConverterOptionUInt32.write(value.maxTurns, into: &buf)
|
|
1972
2027
|
FfiConverterOptionString.write(value.skillAllowedToolsJson, into: &buf)
|
|
1973
2028
|
FfiConverterOptionString.write(value.priorMessagesJson, into: &buf)
|
|
2029
|
+
FfiConverterOptionBool.write(value.planModeInit, into: &buf)
|
|
1974
2030
|
}
|
|
1975
2031
|
}
|
|
1976
2032
|
|
|
@@ -2392,6 +2448,19 @@ public protocol GovernanceProvider: AnyObject, Sendable {
|
|
|
2392
2448
|
*/
|
|
2393
2449
|
func checkSink(sinkType: String, content: String) -> String
|
|
2394
2450
|
|
|
2451
|
+
/**
|
|
2452
|
+
* Register a tainted value for data-flow tracking (agent-os taint uptake).
|
|
2453
|
+
* `labels` is a comma-separated set drawn from
|
|
2454
|
+
* `Pii|Secret|ExternalNetwork|UserInput|UntrustedAgent`; a later
|
|
2455
|
+
* `check_sink` blocks if a registered value reaches a sink that forbids one
|
|
2456
|
+
* of its labels (e.g. ExternalNetwork content flowing into ShellExec).
|
|
2457
|
+
* (No default: `#[uniffi::export]` callback-interface methods can't be
|
|
2458
|
+
* defaulted — every host impl must provide it. Mobile delegates to its
|
|
2459
|
+
* `TaintTracker::register`; a host with no taint engine implements it as a
|
|
2460
|
+
* no-op.)
|
|
2461
|
+
*/
|
|
2462
|
+
func registerTaint(key: String, value: String, labels: String, source: String)
|
|
2463
|
+
|
|
2395
2464
|
/**
|
|
2396
2465
|
* Reset loop guard state (e.g. on new session).
|
|
2397
2466
|
*/
|
|
@@ -2537,6 +2606,36 @@ fileprivate struct UniffiCallbackInterfaceGovernanceProvider {
|
|
|
2537
2606
|
writeReturn: writeReturn
|
|
2538
2607
|
)
|
|
2539
2608
|
},
|
|
2609
|
+
registerTaint: { (
|
|
2610
|
+
uniffiHandle: UInt64,
|
|
2611
|
+
key: RustBuffer,
|
|
2612
|
+
value: RustBuffer,
|
|
2613
|
+
labels: RustBuffer,
|
|
2614
|
+
source: RustBuffer,
|
|
2615
|
+
uniffiOutReturn: UnsafeMutableRawPointer,
|
|
2616
|
+
uniffiCallStatus: UnsafeMutablePointer<RustCallStatus>
|
|
2617
|
+
) in
|
|
2618
|
+
let makeCall = {
|
|
2619
|
+
() throws -> () in
|
|
2620
|
+
guard let uniffiObj = try? FfiConverterCallbackInterfaceGovernanceProvider.handleMap.get(handle: uniffiHandle) else {
|
|
2621
|
+
throw UniffiInternalError.unexpectedStaleHandle
|
|
2622
|
+
}
|
|
2623
|
+
return uniffiObj.registerTaint(
|
|
2624
|
+
key: try FfiConverterString.lift(key),
|
|
2625
|
+
value: try FfiConverterString.lift(value),
|
|
2626
|
+
labels: try FfiConverterString.lift(labels),
|
|
2627
|
+
source: try FfiConverterString.lift(source)
|
|
2628
|
+
)
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
|
|
2632
|
+
let writeReturn = { () }
|
|
2633
|
+
uniffiTraitInterfaceCall(
|
|
2634
|
+
callStatus: uniffiCallStatus,
|
|
2635
|
+
makeCall: makeCall,
|
|
2636
|
+
writeReturn: writeReturn
|
|
2637
|
+
)
|
|
2638
|
+
},
|
|
2540
2639
|
reset: { (
|
|
2541
2640
|
uniffiHandle: UInt64,
|
|
2542
2641
|
uniffiOutReturn: UnsafeMutableRawPointer,
|
|
@@ -3238,6 +3337,30 @@ fileprivate struct FfiConverterOptionInt64: FfiConverterRustBuffer {
|
|
|
3238
3337
|
}
|
|
3239
3338
|
}
|
|
3240
3339
|
|
|
3340
|
+
#if swift(>=5.8)
|
|
3341
|
+
@_documentation(visibility: private)
|
|
3342
|
+
#endif
|
|
3343
|
+
fileprivate struct FfiConverterOptionBool: FfiConverterRustBuffer {
|
|
3344
|
+
typealias SwiftType = Bool?
|
|
3345
|
+
|
|
3346
|
+
public static func write(_ value: SwiftType, into buf: inout [UInt8]) {
|
|
3347
|
+
guard let value = value else {
|
|
3348
|
+
writeInt(&buf, Int8(0))
|
|
3349
|
+
return
|
|
3350
|
+
}
|
|
3351
|
+
writeInt(&buf, Int8(1))
|
|
3352
|
+
FfiConverterBool.write(value, into: &buf)
|
|
3353
|
+
}
|
|
3354
|
+
|
|
3355
|
+
public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SwiftType {
|
|
3356
|
+
switch try readInt(&buf) as Int8 {
|
|
3357
|
+
case 0: return nil
|
|
3358
|
+
case 1: return try FfiConverterBool.read(from: &buf)
|
|
3359
|
+
default: throw UniffiInternalError.unexpectedOptionalTag
|
|
3360
|
+
}
|
|
3361
|
+
}
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3241
3364
|
#if swift(>=5.8)
|
|
3242
3365
|
@_documentation(visibility: private)
|
|
3243
3366
|
#endif
|
|
@@ -3411,7 +3534,7 @@ private let initializationResult: InitializationResult = {
|
|
|
3411
3534
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_reset_tool_permissions() != 15060) {
|
|
3412
3535
|
return InitializationResult.apiChecksumMismatch
|
|
3413
3536
|
}
|
|
3414
|
-
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_approval() !=
|
|
3537
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_approval() != 56876) {
|
|
3415
3538
|
return InitializationResult.apiChecksumMismatch
|
|
3416
3539
|
}
|
|
3417
3540
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_respond_to_cron_approval() != 851) {
|
|
@@ -3438,7 +3561,7 @@ private let initializationResult: InitializationResult = {
|
|
|
3438
3561
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_serialize_agent_event_json() != 40873) {
|
|
3439
3562
|
return InitializationResult.apiChecksumMismatch
|
|
3440
3563
|
}
|
|
3441
|
-
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_auth_key() !=
|
|
3564
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_auth_key() != 12658) {
|
|
3442
3565
|
return InitializationResult.apiChecksumMismatch
|
|
3443
3566
|
}
|
|
3444
3567
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_event_callback() != 56165) {
|
|
@@ -3450,6 +3573,9 @@ private let initializationResult: InitializationResult = {
|
|
|
3450
3573
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_heartbeat_config() != 33968) {
|
|
3451
3574
|
return InitializationResult.apiChecksumMismatch
|
|
3452
3575
|
}
|
|
3576
|
+
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_mcp_tools() != 15664) {
|
|
3577
|
+
return InitializationResult.apiChecksumMismatch
|
|
3578
|
+
}
|
|
3453
3579
|
if (uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_memory_provider() != 23171) {
|
|
3454
3580
|
return InitializationResult.apiChecksumMismatch
|
|
3455
3581
|
}
|
|
@@ -3492,10 +3618,13 @@ private let initializationResult: InitializationResult = {
|
|
|
3492
3618
|
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_check_sink() != 37338) {
|
|
3493
3619
|
return InitializationResult.apiChecksumMismatch
|
|
3494
3620
|
}
|
|
3495
|
-
if (
|
|
3621
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_register_taint() != 17176) {
|
|
3622
|
+
return InitializationResult.apiChecksumMismatch
|
|
3623
|
+
}
|
|
3624
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_reset() != 47675) {
|
|
3496
3625
|
return InitializationResult.apiChecksumMismatch
|
|
3497
3626
|
}
|
|
3498
|
-
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_record_usage() !=
|
|
3627
|
+
if (uniffi_native_agent_ffi_checksum_method_governanceprovider_record_usage() != 32049) {
|
|
3499
3628
|
return InitializationResult.apiChecksumMismatch
|
|
3500
3629
|
}
|
|
3501
3630
|
if (uniffi_native_agent_ffi_checksum_method_memoryprovider_store() != 49136) {
|
|
@@ -273,14 +273,21 @@ typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod3)(uint64_t, RustB
|
|
|
273
273
|
#endif
|
|
274
274
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD4
|
|
275
275
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD4
|
|
276
|
-
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod4)(uint64_t, void* _Nonnull,
|
|
276
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod4)(uint64_t, RustBuffer, RustBuffer, RustBuffer, RustBuffer, void* _Nonnull,
|
|
277
277
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
278
278
|
);
|
|
279
279
|
|
|
280
280
|
#endif
|
|
281
281
|
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD5
|
|
282
282
|
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD5
|
|
283
|
-
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod5)(uint64_t,
|
|
283
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod5)(uint64_t, void* _Nonnull,
|
|
284
|
+
RustCallStatus *_Nonnull uniffiCallStatus
|
|
285
|
+
);
|
|
286
|
+
|
|
287
|
+
#endif
|
|
288
|
+
#ifndef UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD6
|
|
289
|
+
#define UNIFFI_FFIDEF_CALLBACK_INTERFACE_GOVERNANCE_PROVIDER_METHOD6
|
|
290
|
+
typedef void (*UniffiCallbackInterfaceGovernanceProviderMethod6)(uint64_t, RustBuffer, uint32_t, uint32_t, void* _Nonnull,
|
|
284
291
|
RustCallStatus *_Nonnull uniffiCallStatus
|
|
285
292
|
);
|
|
286
293
|
|
|
@@ -357,8 +364,9 @@ typedef struct UniffiVTableCallbackInterfaceGovernanceProvider {
|
|
|
357
364
|
UniffiCallbackInterfaceGovernanceProviderMethod1 _Nonnull recordOutcome;
|
|
358
365
|
UniffiCallbackInterfaceGovernanceProviderMethod2 _Nonnull recordAudit;
|
|
359
366
|
UniffiCallbackInterfaceGovernanceProviderMethod3 _Nonnull checkSink;
|
|
360
|
-
UniffiCallbackInterfaceGovernanceProviderMethod4 _Nonnull
|
|
361
|
-
UniffiCallbackInterfaceGovernanceProviderMethod5 _Nonnull
|
|
367
|
+
UniffiCallbackInterfaceGovernanceProviderMethod4 _Nonnull registerTaint;
|
|
368
|
+
UniffiCallbackInterfaceGovernanceProviderMethod5 _Nonnull reset;
|
|
369
|
+
UniffiCallbackInterfaceGovernanceProviderMethod6 _Nonnull recordUsage;
|
|
362
370
|
} UniffiVTableCallbackInterfaceGovernanceProvider;
|
|
363
371
|
|
|
364
372
|
#endif
|
|
@@ -610,7 +618,7 @@ RustBuffer uniffi_native_agent_ffi_fn_method_nativeagenthandle_serialize_agent_e
|
|
|
610
618
|
#endif
|
|
611
619
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_AUTH_KEY
|
|
612
620
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_AUTH_KEY
|
|
613
|
-
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(uint64_t ptr, RustBuffer key, RustBuffer provider, RustBuffer auth_type, RustBuffer refresh, RustBuffer expires_at, RustCallStatus *_Nonnull out_status
|
|
621
|
+
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_auth_key(uint64_t ptr, RustBuffer key, RustBuffer provider, RustBuffer auth_type, RustBuffer refresh, RustBuffer expires_at, RustBuffer base_url, RustCallStatus *_Nonnull out_status
|
|
614
622
|
);
|
|
615
623
|
#endif
|
|
616
624
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_EVENT_CALLBACK
|
|
@@ -628,6 +636,11 @@ void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_governance_provider
|
|
|
628
636
|
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_heartbeat_config(uint64_t ptr, RustBuffer config_json, RustCallStatus *_Nonnull out_status
|
|
629
637
|
);
|
|
630
638
|
#endif
|
|
639
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
640
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
641
|
+
uint32_t uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_mcp_tools(uint64_t ptr, RustBuffer tools_json, RustCallStatus *_Nonnull out_status
|
|
642
|
+
);
|
|
643
|
+
#endif
|
|
631
644
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
632
645
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_FN_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
633
646
|
void uniffi_native_agent_ffi_fn_method_nativeagenthandle_set_memory_provider(uint64_t ptr, uint64_t provider, RustCallStatus *_Nonnull out_status
|
|
@@ -1230,6 +1243,12 @@ uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_governanc
|
|
|
1230
1243
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_HEARTBEAT_CONFIG
|
|
1231
1244
|
uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_heartbeat_config(void
|
|
1232
1245
|
|
|
1246
|
+
);
|
|
1247
|
+
#endif
|
|
1248
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
1249
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MCP_TOOLS
|
|
1250
|
+
uint16_t uniffi_native_agent_ffi_checksum_method_nativeagenthandle_set_mcp_tools(void
|
|
1251
|
+
|
|
1233
1252
|
);
|
|
1234
1253
|
#endif
|
|
1235
1254
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_NATIVEAGENTHANDLE_SET_MEMORY_PROVIDER
|
|
@@ -1314,6 +1333,12 @@ uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_record_audit
|
|
|
1314
1333
|
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_CHECK_SINK
|
|
1315
1334
|
uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_check_sink(void
|
|
1316
1335
|
|
|
1336
|
+
);
|
|
1337
|
+
#endif
|
|
1338
|
+
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_REGISTER_TAINT
|
|
1339
|
+
#define UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_REGISTER_TAINT
|
|
1340
|
+
uint16_t uniffi_native_agent_ffi_checksum_method_governanceprovider_register_taint(void
|
|
1341
|
+
|
|
1317
1342
|
);
|
|
1318
1343
|
#endif
|
|
1319
1344
|
#ifndef UNIFFI_FFIDEF_UNIFFI_NATIVE_AGENT_FFI_CHECKSUM_METHOD_GOVERNANCEPROVIDER_RESET
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "capacitor-native-agent",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.15",
|
|
4
4
|
"description": "Native AI agent loop for Capacitor — runs LLM completions, tool execution, and cron jobs in native Rust, enabling background execution.",
|
|
5
5
|
"main": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/esm/index.d.ts",
|