@intentcomputing/koko-agent-sdk 1.0.1
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/CHANGELOG.md +10 -0
- package/CODE_OF_CONDUCT.md +3 -0
- package/CONTRIBUTING.md +9 -0
- package/LICENSE +21 -0
- package/README.md +65 -0
- package/README.zh-CN.md +50 -0
- package/SECURITY.md +5 -0
- package/android/build.gradle +40 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/cn/intentcomputing/kokoagentsdk/KokoAgentSdkModule.java +1356 -0
- package/android/src/main/java/cn/intentcomputing/kokoagentsdk/KokoAgentSdkPackage.java +23 -0
- package/docs/INTEGRATION.md +168 -0
- package/docs/INTEGRATION.zh-CN.md +140 -0
- package/docs/PRIVACY.md +11 -0
- package/docs/PRIVACY.zh-CN.md +11 -0
- package/docs/PUBLISH.md +11 -0
- package/docs/PUBLISH.zh-CN.md +11 -0
- package/ios/KokoAgentSdk/KokoAgentSdk.h +5 -0
- package/ios/KokoAgentSdk/KokoAgentSdk.m +2464 -0
- package/ios/KokoAgentSdk/KokoOcrBounds.h +20 -0
- package/ios/KokoAgentSdk/KokoScrollBounds.h +21 -0
- package/koko-agent-sdk.podspec +23 -0
- package/lib/commonjs/KokoAgent.js +1427 -0
- package/lib/commonjs/KokoAgent.js.map +1 -0
- package/lib/commonjs/assist/OnDeviceAssist.js +94 -0
- package/lib/commonjs/assist/OnDeviceAssist.js.map +1 -0
- package/lib/commonjs/assist/intentClassify.js +100 -0
- package/lib/commonjs/assist/intentClassify.js.map +1 -0
- package/lib/commonjs/assist/nodeRank.js +120 -0
- package/lib/commonjs/assist/nodeRank.js.map +1 -0
- package/lib/commonjs/assist/ocrTarget.js +135 -0
- package/lib/commonjs/assist/ocrTarget.js.map +1 -0
- package/lib/commonjs/assist/webVisualChange.js +29 -0
- package/lib/commonjs/assist/webVisualChange.js.map +1 -0
- package/lib/commonjs/client/ActionOutcomeUnknownError.js +28 -0
- package/lib/commonjs/client/ActionOutcomeUnknownError.js.map +1 -0
- package/lib/commonjs/client/AgentSession.js +858 -0
- package/lib/commonjs/client/AgentSession.js.map +1 -0
- package/lib/commonjs/client/GatewayClient.js +302 -0
- package/lib/commonjs/client/GatewayClient.js.map +1 -0
- package/lib/commonjs/client/OperationReplayGuard.js +62 -0
- package/lib/commonjs/client/OperationReplayGuard.js.map +1 -0
- package/lib/commonjs/client/RunCheckpoint.js +139 -0
- package/lib/commonjs/client/RunCheckpoint.js.map +1 -0
- package/lib/commonjs/client/loopDetect.js +184 -0
- package/lib/commonjs/client/loopDetect.js.map +1 -0
- package/lib/commonjs/client/recentSearch.js +50 -0
- package/lib/commonjs/client/recentSearch.js.map +1 -0
- package/lib/commonjs/client/walletChoiceGuard.js +18 -0
- package/lib/commonjs/client/walletChoiceGuard.js.map +1 -0
- package/lib/commonjs/client/webResultCategory.js +38 -0
- package/lib/commonjs/client/webResultCategory.js.map +1 -0
- package/lib/commonjs/commercial/AccountStore.js +78 -0
- package/lib/commonjs/commercial/AccountStore.js.map +1 -0
- package/lib/commonjs/commercial/AgentDebug.js +104 -0
- package/lib/commonjs/commercial/AgentDebug.js.map +1 -0
- package/lib/commonjs/commercial/ExecutionGuard.js +53 -0
- package/lib/commonjs/commercial/ExecutionGuard.js.map +1 -0
- package/lib/commonjs/commercial/UsageBus.js +42 -0
- package/lib/commonjs/commercial/UsageBus.js.map +1 -0
- package/lib/commonjs/commercial/branding.js +69 -0
- package/lib/commonjs/commercial/branding.js.map +1 -0
- package/lib/commonjs/commercial/devMode.js +52 -0
- package/lib/commonjs/commercial/devMode.js.map +1 -0
- package/lib/commonjs/commercial/trust.js +69 -0
- package/lib/commonjs/commercial/trust.js.map +1 -0
- package/lib/commonjs/confirmation/gate.js +62 -0
- package/lib/commonjs/confirmation/gate.js.map +1 -0
- package/lib/commonjs/cursor/CursorOverlay.js +141 -0
- package/lib/commonjs/cursor/CursorOverlay.js.map +1 -0
- package/lib/commonjs/cursor/PointerHand.js +51 -0
- package/lib/commonjs/cursor/PointerHand.js.map +1 -0
- package/lib/commonjs/cursor/controller.js +91 -0
- package/lib/commonjs/cursor/controller.js.map +1 -0
- package/lib/commonjs/cursor/pointer.js +49 -0
- package/lib/commonjs/cursor/pointer.js.map +1 -0
- package/lib/commonjs/debug/KokoRemoteSmoke.js +611 -0
- package/lib/commonjs/debug/KokoRemoteSmoke.js.map +1 -0
- package/lib/commonjs/explore/ExplorationGraph.js +418 -0
- package/lib/commonjs/explore/ExplorationGraph.js.map +1 -0
- package/lib/commonjs/explore/bootstrapExplore.js +59 -0
- package/lib/commonjs/explore/bootstrapExplore.js.map +1 -0
- package/lib/commonjs/host/HostActions.js +266 -0
- package/lib/commonjs/host/HostActions.js.map +1 -0
- package/lib/commonjs/i18n/index.js +169 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/runtimeMessages.js +184 -0
- package/lib/commonjs/i18n/runtimeMessages.js.map +1 -0
- package/lib/commonjs/index.js +640 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/native/NativeBridge.js +132 -0
- package/lib/commonjs/native/NativeBridge.js.map +1 -0
- package/lib/commonjs/native/navigationLabel.js +16 -0
- package/lib/commonjs/native/navigationLabel.js.map +1 -0
- package/lib/commonjs/native/normalizeViewTree.js +28 -0
- package/lib/commonjs/native/normalizeViewTree.js.map +1 -0
- package/lib/commonjs/native/pruneOffscreen.js +76 -0
- package/lib/commonjs/native/pruneOffscreen.js.map +1 -0
- package/lib/commonjs/native/scrollViewport.js +69 -0
- package/lib/commonjs/native/scrollViewport.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/privacy/redact.js +108 -0
- package/lib/commonjs/privacy/redact.js.map +1 -0
- package/lib/commonjs/privacy/screenEvidence.js +59 -0
- package/lib/commonjs/privacy/screenEvidence.js.map +1 -0
- package/lib/commonjs/privacy/screenModel.js +404 -0
- package/lib/commonjs/privacy/screenModel.js.map +1 -0
- package/lib/commonjs/privacy/sensitiveScreen.js +58 -0
- package/lib/commonjs/privacy/sensitiveScreen.js.map +1 -0
- package/lib/commonjs/privacy/userGate.js +213 -0
- package/lib/commonjs/privacy/userGate.js.map +1 -0
- package/lib/commonjs/protocol/actions.js +112 -0
- package/lib/commonjs/protocol/actions.js.map +1 -0
- package/lib/commonjs/provider/HostAppearanceStore.js +111 -0
- package/lib/commonjs/provider/HostAppearanceStore.js.map +1 -0
- package/lib/commonjs/provider/KokoProvider.js +81 -0
- package/lib/commonjs/provider/KokoProvider.js.map +1 -0
- package/lib/commonjs/provider/KokoUiContext.js +102 -0
- package/lib/commonjs/provider/KokoUiContext.js.map +1 -0
- package/lib/commonjs/selector/match.js +378 -0
- package/lib/commonjs/selector/match.js.map +1 -0
- package/lib/commonjs/task/TaskStore.js +361 -0
- package/lib/commonjs/task/TaskStore.js.map +1 -0
- package/lib/commonjs/task/types.js +2 -0
- package/lib/commonjs/task/types.js.map +1 -0
- package/lib/commonjs/task/useTaskStore.js +14 -0
- package/lib/commonjs/task/useTaskStore.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/ui/KokoChatSheet.js +885 -0
- package/lib/commonjs/ui/KokoChatSheet.js.map +1 -0
- package/lib/commonjs/ui/KokoComposer.js +161 -0
- package/lib/commonjs/ui/KokoComposer.js.map +1 -0
- package/lib/commonjs/ui/KokoDialogHost.js +254 -0
- package/lib/commonjs/ui/KokoDialogHost.js.map +1 -0
- package/lib/commonjs/ui/KokoEntryButton.js +81 -0
- package/lib/commonjs/ui/KokoEntryButton.js.map +1 -0
- package/lib/commonjs/ui/KokoObserver.js +522 -0
- package/lib/commonjs/ui/KokoObserver.js.map +1 -0
- package/lib/commonjs/ui/KokoOverlayLayer.js +45 -0
- package/lib/commonjs/ui/KokoOverlayLayer.js.map +1 -0
- package/lib/commonjs/ui/KokoSubtitle.js +95 -0
- package/lib/commonjs/ui/KokoSubtitle.js.map +1 -0
- package/lib/commonjs/ui/KokoTaskPanel.js +322 -0
- package/lib/commonjs/ui/KokoTaskPanel.js.map +1 -0
- package/lib/commonjs/ui/hostOverlay.js +126 -0
- package/lib/commonjs/ui/hostOverlay.js.map +1 -0
- package/lib/commonjs/ui/icons.js +132 -0
- package/lib/commonjs/ui/icons.js.map +1 -0
- package/lib/commonjs/ui/progressChrome.js +66 -0
- package/lib/commonjs/ui/progressChrome.js.map +1 -0
- package/lib/commonjs/ui/safeArea.js +96 -0
- package/lib/commonjs/ui/safeArea.js.map +1 -0
- package/lib/commonjs/ui/useOverlayOrigin.js +40 -0
- package/lib/commonjs/ui/useOverlayOrigin.js.map +1 -0
- package/lib/module/KokoAgent.js +1418 -0
- package/lib/module/KokoAgent.js.map +1 -0
- package/lib/module/assist/OnDeviceAssist.js +89 -0
- package/lib/module/assist/OnDeviceAssist.js.map +1 -0
- package/lib/module/assist/intentClassify.js +95 -0
- package/lib/module/assist/intentClassify.js.map +1 -0
- package/lib/module/assist/nodeRank.js +115 -0
- package/lib/module/assist/nodeRank.js.map +1 -0
- package/lib/module/assist/ocrTarget.js +123 -0
- package/lib/module/assist/ocrTarget.js.map +1 -0
- package/lib/module/assist/webVisualChange.js +24 -0
- package/lib/module/assist/webVisualChange.js.map +1 -0
- package/lib/module/client/ActionOutcomeUnknownError.js +23 -0
- package/lib/module/client/ActionOutcomeUnknownError.js.map +1 -0
- package/lib/module/client/AgentSession.js +854 -0
- package/lib/module/client/AgentSession.js.map +1 -0
- package/lib/module/client/GatewayClient.js +293 -0
- package/lib/module/client/GatewayClient.js.map +1 -0
- package/lib/module/client/OperationReplayGuard.js +58 -0
- package/lib/module/client/OperationReplayGuard.js.map +1 -0
- package/lib/module/client/RunCheckpoint.js +135 -0
- package/lib/module/client/RunCheckpoint.js.map +1 -0
- package/lib/module/client/loopDetect.js +177 -0
- package/lib/module/client/loopDetect.js.map +1 -0
- package/lib/module/client/recentSearch.js +46 -0
- package/lib/module/client/recentSearch.js.map +1 -0
- package/lib/module/client/walletChoiceGuard.js +14 -0
- package/lib/module/client/walletChoiceGuard.js.map +1 -0
- package/lib/module/client/webResultCategory.js +34 -0
- package/lib/module/client/webResultCategory.js.map +1 -0
- package/lib/module/commercial/AccountStore.js +75 -0
- package/lib/module/commercial/AccountStore.js.map +1 -0
- package/lib/module/commercial/AgentDebug.js +99 -0
- package/lib/module/commercial/AgentDebug.js.map +1 -0
- package/lib/module/commercial/ExecutionGuard.js +49 -0
- package/lib/module/commercial/ExecutionGuard.js.map +1 -0
- package/lib/module/commercial/UsageBus.js +38 -0
- package/lib/module/commercial/UsageBus.js.map +1 -0
- package/lib/module/commercial/branding.js +63 -0
- package/lib/module/commercial/branding.js.map +1 -0
- package/lib/module/commercial/devMode.js +45 -0
- package/lib/module/commercial/devMode.js.map +1 -0
- package/lib/module/commercial/trust.js +62 -0
- package/lib/module/commercial/trust.js.map +1 -0
- package/lib/module/confirmation/gate.js +54 -0
- package/lib/module/confirmation/gate.js.map +1 -0
- package/lib/module/cursor/CursorOverlay.js +136 -0
- package/lib/module/cursor/CursorOverlay.js.map +1 -0
- package/lib/module/cursor/PointerHand.js +47 -0
- package/lib/module/cursor/PointerHand.js.map +1 -0
- package/lib/module/cursor/controller.js +87 -0
- package/lib/module/cursor/controller.js.map +1 -0
- package/lib/module/cursor/pointer.js +45 -0
- package/lib/module/cursor/pointer.js.map +1 -0
- package/lib/module/debug/KokoRemoteSmoke.js +608 -0
- package/lib/module/debug/KokoRemoteSmoke.js.map +1 -0
- package/lib/module/explore/ExplorationGraph.js +406 -0
- package/lib/module/explore/ExplorationGraph.js.map +1 -0
- package/lib/module/explore/bootstrapExplore.js +55 -0
- package/lib/module/explore/bootstrapExplore.js.map +1 -0
- package/lib/module/host/HostActions.js +255 -0
- package/lib/module/host/HostActions.js.map +1 -0
- package/lib/module/i18n/index.js +159 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/runtimeMessages.js +180 -0
- package/lib/module/i18n/runtimeMessages.js.map +1 -0
- package/lib/module/index.js +44 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/native/NativeBridge.js +128 -0
- package/lib/module/native/NativeBridge.js.map +1 -0
- package/lib/module/native/navigationLabel.js +12 -0
- package/lib/module/native/navigationLabel.js.map +1 -0
- package/lib/module/native/normalizeViewTree.js +25 -0
- package/lib/module/native/normalizeViewTree.js.map +1 -0
- package/lib/module/native/pruneOffscreen.js +72 -0
- package/lib/module/native/pruneOffscreen.js.map +1 -0
- package/lib/module/native/scrollViewport.js +63 -0
- package/lib/module/native/scrollViewport.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/privacy/redact.js +103 -0
- package/lib/module/privacy/redact.js.map +1 -0
- package/lib/module/privacy/screenEvidence.js +50 -0
- package/lib/module/privacy/screenEvidence.js.map +1 -0
- package/lib/module/privacy/screenModel.js +397 -0
- package/lib/module/privacy/screenModel.js.map +1 -0
- package/lib/module/privacy/sensitiveScreen.js +52 -0
- package/lib/module/privacy/sensitiveScreen.js.map +1 -0
- package/lib/module/privacy/userGate.js +202 -0
- package/lib/module/privacy/userGate.js.map +1 -0
- package/lib/module/protocol/actions.js +108 -0
- package/lib/module/protocol/actions.js.map +1 -0
- package/lib/module/provider/HostAppearanceStore.js +101 -0
- package/lib/module/provider/HostAppearanceStore.js.map +1 -0
- package/lib/module/provider/KokoProvider.js +74 -0
- package/lib/module/provider/KokoProvider.js.map +1 -0
- package/lib/module/provider/KokoUiContext.js +96 -0
- package/lib/module/provider/KokoUiContext.js.map +1 -0
- package/lib/module/selector/match.js +366 -0
- package/lib/module/selector/match.js.map +1 -0
- package/lib/module/task/TaskStore.js +356 -0
- package/lib/module/task/TaskStore.js.map +1 -0
- package/lib/module/task/types.js +2 -0
- package/lib/module/task/types.js.map +1 -0
- package/lib/module/task/useTaskStore.js +10 -0
- package/lib/module/task/useTaskStore.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/ui/KokoChatSheet.js +879 -0
- package/lib/module/ui/KokoChatSheet.js.map +1 -0
- package/lib/module/ui/KokoComposer.js +155 -0
- package/lib/module/ui/KokoComposer.js.map +1 -0
- package/lib/module/ui/KokoDialogHost.js +247 -0
- package/lib/module/ui/KokoDialogHost.js.map +1 -0
- package/lib/module/ui/KokoEntryButton.js +74 -0
- package/lib/module/ui/KokoEntryButton.js.map +1 -0
- package/lib/module/ui/KokoObserver.js +516 -0
- package/lib/module/ui/KokoObserver.js.map +1 -0
- package/lib/module/ui/KokoOverlayLayer.js +39 -0
- package/lib/module/ui/KokoOverlayLayer.js.map +1 -0
- package/lib/module/ui/KokoSubtitle.js +90 -0
- package/lib/module/ui/KokoSubtitle.js.map +1 -0
- package/lib/module/ui/KokoTaskPanel.js +316 -0
- package/lib/module/ui/KokoTaskPanel.js.map +1 -0
- package/lib/module/ui/hostOverlay.js +120 -0
- package/lib/module/ui/hostOverlay.js.map +1 -0
- package/lib/module/ui/icons.js +124 -0
- package/lib/module/ui/icons.js.map +1 -0
- package/lib/module/ui/progressChrome.js +58 -0
- package/lib/module/ui/progressChrome.js.map +1 -0
- package/lib/module/ui/safeArea.js +92 -0
- package/lib/module/ui/safeArea.js.map +1 -0
- package/lib/module/ui/useOverlayOrigin.js +36 -0
- package/lib/module/ui/useOverlayOrigin.js.map +1 -0
- package/lib/typescript/commonjs/KokoAgent.d.ts +167 -0
- package/lib/typescript/commonjs/KokoAgent.d.ts.map +1 -0
- package/lib/typescript/commonjs/assist/OnDeviceAssist.d.ts +31 -0
- package/lib/typescript/commonjs/assist/OnDeviceAssist.d.ts.map +1 -0
- package/lib/typescript/commonjs/assist/intentClassify.d.ts +18 -0
- package/lib/typescript/commonjs/assist/intentClassify.d.ts.map +1 -0
- package/lib/typescript/commonjs/assist/nodeRank.d.ts +32 -0
- package/lib/typescript/commonjs/assist/nodeRank.d.ts.map +1 -0
- package/lib/typescript/commonjs/assist/ocrTarget.d.ts +25 -0
- package/lib/typescript/commonjs/assist/ocrTarget.d.ts.map +1 -0
- package/lib/typescript/commonjs/assist/webVisualChange.d.ts +6 -0
- package/lib/typescript/commonjs/assist/webVisualChange.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/ActionOutcomeUnknownError.d.ts +13 -0
- package/lib/typescript/commonjs/client/ActionOutcomeUnknownError.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/AgentSession.d.ts +56 -0
- package/lib/typescript/commonjs/client/AgentSession.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/GatewayClient.d.ts +149 -0
- package/lib/typescript/commonjs/client/GatewayClient.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/OperationReplayGuard.d.ts +13 -0
- package/lib/typescript/commonjs/client/OperationReplayGuard.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/RunCheckpoint.d.ts +57 -0
- package/lib/typescript/commonjs/client/RunCheckpoint.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/loopDetect.d.ts +15 -0
- package/lib/typescript/commonjs/client/loopDetect.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/recentSearch.d.ts +5 -0
- package/lib/typescript/commonjs/client/recentSearch.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/walletChoiceGuard.d.ts +4 -0
- package/lib/typescript/commonjs/client/walletChoiceGuard.d.ts.map +1 -0
- package/lib/typescript/commonjs/client/webResultCategory.d.ts +5 -0
- package/lib/typescript/commonjs/client/webResultCategory.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/AccountStore.d.ts +17 -0
- package/lib/typescript/commonjs/commercial/AccountStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/AgentDebug.d.ts +25 -0
- package/lib/typescript/commonjs/commercial/AgentDebug.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/ExecutionGuard.d.ts +18 -0
- package/lib/typescript/commonjs/commercial/ExecutionGuard.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/UsageBus.d.ts +18 -0
- package/lib/typescript/commonjs/commercial/UsageBus.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/branding.d.ts +25 -0
- package/lib/typescript/commonjs/commercial/branding.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/devMode.d.ts +26 -0
- package/lib/typescript/commonjs/commercial/devMode.d.ts.map +1 -0
- package/lib/typescript/commonjs/commercial/trust.d.ts +21 -0
- package/lib/typescript/commonjs/commercial/trust.d.ts.map +1 -0
- package/lib/typescript/commonjs/confirmation/gate.d.ts +18 -0
- package/lib/typescript/commonjs/confirmation/gate.d.ts.map +1 -0
- package/lib/typescript/commonjs/cursor/CursorOverlay.d.ts +13 -0
- package/lib/typescript/commonjs/cursor/CursorOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/cursor/PointerHand.d.ts +16 -0
- package/lib/typescript/commonjs/cursor/PointerHand.d.ts.map +1 -0
- package/lib/typescript/commonjs/cursor/controller.d.ts +30 -0
- package/lib/typescript/commonjs/cursor/controller.d.ts.map +1 -0
- package/lib/typescript/commonjs/cursor/pointer.d.ts +23 -0
- package/lib/typescript/commonjs/cursor/pointer.d.ts.map +1 -0
- package/lib/typescript/commonjs/debug/KokoRemoteSmoke.d.ts +96 -0
- package/lib/typescript/commonjs/debug/KokoRemoteSmoke.d.ts.map +1 -0
- package/lib/typescript/commonjs/explore/ExplorationGraph.d.ts +96 -0
- package/lib/typescript/commonjs/explore/ExplorationGraph.d.ts.map +1 -0
- package/lib/typescript/commonjs/explore/bootstrapExplore.d.ts +40 -0
- package/lib/typescript/commonjs/explore/bootstrapExplore.d.ts.map +1 -0
- package/lib/typescript/commonjs/host/HostActions.d.ts +101 -0
- package/lib/typescript/commonjs/host/HostActions.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/index.d.ts +20 -0
- package/lib/typescript/commonjs/i18n/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/i18n/runtimeMessages.d.ts +178 -0
- package/lib/typescript/commonjs/i18n/runtimeMessages.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +66 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/NativeBridge.d.ts +70 -0
- package/lib/typescript/commonjs/native/NativeBridge.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/navigationLabel.d.ts +4 -0
- package/lib/typescript/commonjs/native/navigationLabel.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/normalizeViewTree.d.ts +4 -0
- package/lib/typescript/commonjs/native/normalizeViewTree.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/pruneOffscreen.d.ts +3 -0
- package/lib/typescript/commonjs/native/pruneOffscreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/scrollViewport.d.ts +13 -0
- package/lib/typescript/commonjs/native/scrollViewport.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/privacy/redact.d.ts +9 -0
- package/lib/typescript/commonjs/privacy/redact.d.ts.map +1 -0
- package/lib/typescript/commonjs/privacy/screenEvidence.d.ts +14 -0
- package/lib/typescript/commonjs/privacy/screenEvidence.d.ts.map +1 -0
- package/lib/typescript/commonjs/privacy/screenModel.d.ts +26 -0
- package/lib/typescript/commonjs/privacy/screenModel.d.ts.map +1 -0
- package/lib/typescript/commonjs/privacy/sensitiveScreen.d.ts +8 -0
- package/lib/typescript/commonjs/privacy/sensitiveScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/privacy/userGate.d.ts +58 -0
- package/lib/typescript/commonjs/privacy/userGate.d.ts.map +1 -0
- package/lib/typescript/commonjs/protocol/actions.d.ts +7 -0
- package/lib/typescript/commonjs/protocol/actions.d.ts.map +1 -0
- package/lib/typescript/commonjs/provider/HostAppearanceStore.d.ts +64 -0
- package/lib/typescript/commonjs/provider/HostAppearanceStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/provider/KokoProvider.d.ts +39 -0
- package/lib/typescript/commonjs/provider/KokoProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/provider/KokoUiContext.d.ts +22 -0
- package/lib/typescript/commonjs/provider/KokoUiContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/selector/match.d.ts +27 -0
- package/lib/typescript/commonjs/selector/match.d.ts.map +1 -0
- package/lib/typescript/commonjs/task/TaskStore.d.ts +65 -0
- package/lib/typescript/commonjs/task/TaskStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/task/types.d.ts +66 -0
- package/lib/typescript/commonjs/task/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/task/useTaskStore.d.ts +3 -0
- package/lib/typescript/commonjs/task/useTaskStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/types.d.ts +372 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoChatSheet.d.ts +8 -0
- package/lib/typescript/commonjs/ui/KokoChatSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoComposer.d.ts +13 -0
- package/lib/typescript/commonjs/ui/KokoComposer.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoDialogHost.d.ts +32 -0
- package/lib/typescript/commonjs/ui/KokoDialogHost.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoEntryButton.d.ts +18 -0
- package/lib/typescript/commonjs/ui/KokoEntryButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoObserver.d.ts +13 -0
- package/lib/typescript/commonjs/ui/KokoObserver.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoOverlayLayer.d.ts +35 -0
- package/lib/typescript/commonjs/ui/KokoOverlayLayer.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoSubtitle.d.ts +7 -0
- package/lib/typescript/commonjs/ui/KokoSubtitle.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/KokoTaskPanel.d.ts +7 -0
- package/lib/typescript/commonjs/ui/KokoTaskPanel.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hostOverlay.d.ts +28 -0
- package/lib/typescript/commonjs/ui/hostOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/icons.d.ts +26 -0
- package/lib/typescript/commonjs/ui/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/progressChrome.d.ts +21 -0
- package/lib/typescript/commonjs/ui/progressChrome.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/safeArea.d.ts +12 -0
- package/lib/typescript/commonjs/ui/safeArea.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/useOverlayOrigin.d.ts +22 -0
- package/lib/typescript/commonjs/ui/useOverlayOrigin.d.ts.map +1 -0
- package/lib/typescript/module/KokoAgent.d.ts +167 -0
- package/lib/typescript/module/KokoAgent.d.ts.map +1 -0
- package/lib/typescript/module/assist/OnDeviceAssist.d.ts +31 -0
- package/lib/typescript/module/assist/OnDeviceAssist.d.ts.map +1 -0
- package/lib/typescript/module/assist/intentClassify.d.ts +18 -0
- package/lib/typescript/module/assist/intentClassify.d.ts.map +1 -0
- package/lib/typescript/module/assist/nodeRank.d.ts +32 -0
- package/lib/typescript/module/assist/nodeRank.d.ts.map +1 -0
- package/lib/typescript/module/assist/ocrTarget.d.ts +25 -0
- package/lib/typescript/module/assist/ocrTarget.d.ts.map +1 -0
- package/lib/typescript/module/assist/webVisualChange.d.ts +6 -0
- package/lib/typescript/module/assist/webVisualChange.d.ts.map +1 -0
- package/lib/typescript/module/client/ActionOutcomeUnknownError.d.ts +13 -0
- package/lib/typescript/module/client/ActionOutcomeUnknownError.d.ts.map +1 -0
- package/lib/typescript/module/client/AgentSession.d.ts +56 -0
- package/lib/typescript/module/client/AgentSession.d.ts.map +1 -0
- package/lib/typescript/module/client/GatewayClient.d.ts +149 -0
- package/lib/typescript/module/client/GatewayClient.d.ts.map +1 -0
- package/lib/typescript/module/client/OperationReplayGuard.d.ts +13 -0
- package/lib/typescript/module/client/OperationReplayGuard.d.ts.map +1 -0
- package/lib/typescript/module/client/RunCheckpoint.d.ts +57 -0
- package/lib/typescript/module/client/RunCheckpoint.d.ts.map +1 -0
- package/lib/typescript/module/client/loopDetect.d.ts +15 -0
- package/lib/typescript/module/client/loopDetect.d.ts.map +1 -0
- package/lib/typescript/module/client/recentSearch.d.ts +5 -0
- package/lib/typescript/module/client/recentSearch.d.ts.map +1 -0
- package/lib/typescript/module/client/walletChoiceGuard.d.ts +4 -0
- package/lib/typescript/module/client/walletChoiceGuard.d.ts.map +1 -0
- package/lib/typescript/module/client/webResultCategory.d.ts +5 -0
- package/lib/typescript/module/client/webResultCategory.d.ts.map +1 -0
- package/lib/typescript/module/commercial/AccountStore.d.ts +17 -0
- package/lib/typescript/module/commercial/AccountStore.d.ts.map +1 -0
- package/lib/typescript/module/commercial/AgentDebug.d.ts +25 -0
- package/lib/typescript/module/commercial/AgentDebug.d.ts.map +1 -0
- package/lib/typescript/module/commercial/ExecutionGuard.d.ts +18 -0
- package/lib/typescript/module/commercial/ExecutionGuard.d.ts.map +1 -0
- package/lib/typescript/module/commercial/UsageBus.d.ts +18 -0
- package/lib/typescript/module/commercial/UsageBus.d.ts.map +1 -0
- package/lib/typescript/module/commercial/branding.d.ts +25 -0
- package/lib/typescript/module/commercial/branding.d.ts.map +1 -0
- package/lib/typescript/module/commercial/devMode.d.ts +26 -0
- package/lib/typescript/module/commercial/devMode.d.ts.map +1 -0
- package/lib/typescript/module/commercial/trust.d.ts +21 -0
- package/lib/typescript/module/commercial/trust.d.ts.map +1 -0
- package/lib/typescript/module/confirmation/gate.d.ts +18 -0
- package/lib/typescript/module/confirmation/gate.d.ts.map +1 -0
- package/lib/typescript/module/cursor/CursorOverlay.d.ts +13 -0
- package/lib/typescript/module/cursor/CursorOverlay.d.ts.map +1 -0
- package/lib/typescript/module/cursor/PointerHand.d.ts +16 -0
- package/lib/typescript/module/cursor/PointerHand.d.ts.map +1 -0
- package/lib/typescript/module/cursor/controller.d.ts +30 -0
- package/lib/typescript/module/cursor/controller.d.ts.map +1 -0
- package/lib/typescript/module/cursor/pointer.d.ts +23 -0
- package/lib/typescript/module/cursor/pointer.d.ts.map +1 -0
- package/lib/typescript/module/debug/KokoRemoteSmoke.d.ts +96 -0
- package/lib/typescript/module/debug/KokoRemoteSmoke.d.ts.map +1 -0
- package/lib/typescript/module/explore/ExplorationGraph.d.ts +96 -0
- package/lib/typescript/module/explore/ExplorationGraph.d.ts.map +1 -0
- package/lib/typescript/module/explore/bootstrapExplore.d.ts +40 -0
- package/lib/typescript/module/explore/bootstrapExplore.d.ts.map +1 -0
- package/lib/typescript/module/host/HostActions.d.ts +101 -0
- package/lib/typescript/module/host/HostActions.d.ts.map +1 -0
- package/lib/typescript/module/i18n/index.d.ts +20 -0
- package/lib/typescript/module/i18n/index.d.ts.map +1 -0
- package/lib/typescript/module/i18n/runtimeMessages.d.ts +178 -0
- package/lib/typescript/module/i18n/runtimeMessages.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +66 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/native/NativeBridge.d.ts +70 -0
- package/lib/typescript/module/native/NativeBridge.d.ts.map +1 -0
- package/lib/typescript/module/native/navigationLabel.d.ts +4 -0
- package/lib/typescript/module/native/navigationLabel.d.ts.map +1 -0
- package/lib/typescript/module/native/normalizeViewTree.d.ts +4 -0
- package/lib/typescript/module/native/normalizeViewTree.d.ts.map +1 -0
- package/lib/typescript/module/native/pruneOffscreen.d.ts +3 -0
- package/lib/typescript/module/native/pruneOffscreen.d.ts.map +1 -0
- package/lib/typescript/module/native/scrollViewport.d.ts +13 -0
- package/lib/typescript/module/native/scrollViewport.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/privacy/redact.d.ts +9 -0
- package/lib/typescript/module/privacy/redact.d.ts.map +1 -0
- package/lib/typescript/module/privacy/screenEvidence.d.ts +14 -0
- package/lib/typescript/module/privacy/screenEvidence.d.ts.map +1 -0
- package/lib/typescript/module/privacy/screenModel.d.ts +26 -0
- package/lib/typescript/module/privacy/screenModel.d.ts.map +1 -0
- package/lib/typescript/module/privacy/sensitiveScreen.d.ts +8 -0
- package/lib/typescript/module/privacy/sensitiveScreen.d.ts.map +1 -0
- package/lib/typescript/module/privacy/userGate.d.ts +58 -0
- package/lib/typescript/module/privacy/userGate.d.ts.map +1 -0
- package/lib/typescript/module/protocol/actions.d.ts +7 -0
- package/lib/typescript/module/protocol/actions.d.ts.map +1 -0
- package/lib/typescript/module/provider/HostAppearanceStore.d.ts +64 -0
- package/lib/typescript/module/provider/HostAppearanceStore.d.ts.map +1 -0
- package/lib/typescript/module/provider/KokoProvider.d.ts +39 -0
- package/lib/typescript/module/provider/KokoProvider.d.ts.map +1 -0
- package/lib/typescript/module/provider/KokoUiContext.d.ts +22 -0
- package/lib/typescript/module/provider/KokoUiContext.d.ts.map +1 -0
- package/lib/typescript/module/selector/match.d.ts +27 -0
- package/lib/typescript/module/selector/match.d.ts.map +1 -0
- package/lib/typescript/module/task/TaskStore.d.ts +65 -0
- package/lib/typescript/module/task/TaskStore.d.ts.map +1 -0
- package/lib/typescript/module/task/types.d.ts +66 -0
- package/lib/typescript/module/task/types.d.ts.map +1 -0
- package/lib/typescript/module/task/useTaskStore.d.ts +3 -0
- package/lib/typescript/module/task/useTaskStore.d.ts.map +1 -0
- package/lib/typescript/module/types.d.ts +372 -0
- package/lib/typescript/module/types.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoChatSheet.d.ts +8 -0
- package/lib/typescript/module/ui/KokoChatSheet.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoComposer.d.ts +13 -0
- package/lib/typescript/module/ui/KokoComposer.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoDialogHost.d.ts +32 -0
- package/lib/typescript/module/ui/KokoDialogHost.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoEntryButton.d.ts +18 -0
- package/lib/typescript/module/ui/KokoEntryButton.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoObserver.d.ts +13 -0
- package/lib/typescript/module/ui/KokoObserver.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoOverlayLayer.d.ts +35 -0
- package/lib/typescript/module/ui/KokoOverlayLayer.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoSubtitle.d.ts +7 -0
- package/lib/typescript/module/ui/KokoSubtitle.d.ts.map +1 -0
- package/lib/typescript/module/ui/KokoTaskPanel.d.ts +7 -0
- package/lib/typescript/module/ui/KokoTaskPanel.d.ts.map +1 -0
- package/lib/typescript/module/ui/hostOverlay.d.ts +28 -0
- package/lib/typescript/module/ui/hostOverlay.d.ts.map +1 -0
- package/lib/typescript/module/ui/icons.d.ts +26 -0
- package/lib/typescript/module/ui/icons.d.ts.map +1 -0
- package/lib/typescript/module/ui/progressChrome.d.ts +21 -0
- package/lib/typescript/module/ui/progressChrome.d.ts.map +1 -0
- package/lib/typescript/module/ui/safeArea.d.ts +12 -0
- package/lib/typescript/module/ui/safeArea.d.ts.map +1 -0
- package/lib/typescript/module/ui/useOverlayOrigin.d.ts +22 -0
- package/lib/typescript/module/ui/useOverlayOrigin.d.ts.map +1 -0
- package/package.json +153 -0
- package/react-native.config.js +12 -0
- package/src/KokoAgent.ts +1415 -0
- package/src/assist/OnDeviceAssist.ts +133 -0
- package/src/assist/intentClassify.ts +122 -0
- package/src/assist/nodeRank.ts +167 -0
- package/src/assist/ocrTarget.ts +146 -0
- package/src/assist/webVisualChange.ts +24 -0
- package/src/client/ActionOutcomeUnknownError.ts +18 -0
- package/src/client/AgentSession.ts +952 -0
- package/src/client/GatewayClient.ts +439 -0
- package/src/client/OperationReplayGuard.ts +61 -0
- package/src/client/RunCheckpoint.ts +154 -0
- package/src/client/loopDetect.ts +213 -0
- package/src/client/recentSearch.ts +47 -0
- package/src/client/walletChoiceGuard.ts +15 -0
- package/src/client/webResultCategory.ts +28 -0
- package/src/commercial/AccountStore.ts +85 -0
- package/src/commercial/AgentDebug.ts +142 -0
- package/src/commercial/ExecutionGuard.ts +67 -0
- package/src/commercial/UsageBus.ts +44 -0
- package/src/commercial/branding.ts +97 -0
- package/src/commercial/devMode.ts +48 -0
- package/src/commercial/trust.ts +67 -0
- package/src/confirmation/gate.ts +82 -0
- package/src/cursor/CursorOverlay.tsx +138 -0
- package/src/cursor/PointerHand.tsx +49 -0
- package/src/cursor/controller.ts +98 -0
- package/src/cursor/pointer.ts +40 -0
- package/src/debug/KokoRemoteSmoke.tsx +561 -0
- package/src/explore/ExplorationGraph.ts +518 -0
- package/src/explore/bootstrapExplore.ts +89 -0
- package/src/host/HostActions.ts +349 -0
- package/src/i18n/index.ts +229 -0
- package/src/i18n/runtimeMessages.ts +180 -0
- package/src/index.ts +203 -0
- package/src/native/NativeBridge.ts +207 -0
- package/src/native/navigationLabel.ts +11 -0
- package/src/native/normalizeViewTree.ts +16 -0
- package/src/native/pruneOffscreen.ts +72 -0
- package/src/native/scrollViewport.ts +51 -0
- package/src/privacy/redact.ts +115 -0
- package/src/privacy/screenEvidence.ts +55 -0
- package/src/privacy/screenModel.ts +504 -0
- package/src/privacy/sensitiveScreen.ts +55 -0
- package/src/privacy/userGate.ts +233 -0
- package/src/protocol/actions.ts +66 -0
- package/src/provider/HostAppearanceStore.ts +148 -0
- package/src/provider/KokoProvider.tsx +118 -0
- package/src/provider/KokoUiContext.tsx +162 -0
- package/src/selector/match.ts +417 -0
- package/src/task/TaskStore.ts +387 -0
- package/src/task/types.ts +82 -0
- package/src/task/useTaskStore.ts +9 -0
- package/src/types.ts +318 -0
- package/src/ui/KokoChatSheet.tsx +930 -0
- package/src/ui/KokoComposer.tsx +174 -0
- package/src/ui/KokoDialogHost.tsx +249 -0
- package/src/ui/KokoEntryButton.tsx +74 -0
- package/src/ui/KokoObserver.tsx +587 -0
- package/src/ui/KokoOverlayLayer.tsx +53 -0
- package/src/ui/KokoSubtitle.tsx +80 -0
- package/src/ui/KokoTaskPanel.tsx +299 -0
- package/src/ui/hostOverlay.tsx +148 -0
- package/src/ui/icons.tsx +145 -0
- package/src/ui/progressChrome.ts +73 -0
- package/src/ui/safeArea.ts +95 -0
- package/src/ui/useOverlayOrigin.ts +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_AccountStore","_branding","_UsageBus","_index","_HostAppearanceStore","_jsxRuntime","cache","e","t","__esModule","r","c","a","Object","defineProperty","n","__proto__","default","WeakMap","has","get","set","hasOwnProperty","call","getOwnPropertyDescriptor","KokoUiContext","createContext","subscribeAccount","cb","AccountStore","subscribe","getAccountSnapshot","subscribeAppearance","HostAppearanceStore","getAppearanceSnapshot","KokoUiProvider","config","children","appearance","useSyncExternalStore","locale","normalizeLocale","appTheme","theme","invertTheme","colors","useMemo","resolveThemeColors","account","downgradeEmitted","useRef","useEffect","unsub","onUsageEvent","UsageBus","undefined","token","gateway","refresh","baseUrl","branding","resolveBranding","entitlements","downgraded","current","emit","type","reason","at","Date","now","value","key","vars","jsx","Provider","useKokoUi","ctx","useContext"],"sourceRoot":"../../../src","sources":["provider/KokoUiContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.centerOf = centerOf;
|
|
7
|
+
exports.centerOfLabel = centerOfLabel;
|
|
8
|
+
exports.find = find;
|
|
9
|
+
exports.findAll = findAll;
|
|
10
|
+
exports.findBySoftLabel = findBySoftLabel;
|
|
11
|
+
exports.findNodeById = findNodeById;
|
|
12
|
+
exports.flattenTree = flattenTree;
|
|
13
|
+
exports.nodeMatches = nodeMatches;
|
|
14
|
+
exports.textMatches = textMatches;
|
|
15
|
+
function norm(s) {
|
|
16
|
+
return s.trim().toLowerCase();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Strip particles models often invent around a real on-screen label
|
|
21
|
+
* (「创建钱包」→「创建新钱包」/「立即创建钱包」). Host-agnostic fillers only.
|
|
22
|
+
*/
|
|
23
|
+
function softKey(s) {
|
|
24
|
+
return norm(s).replace(/[\s\-_./·•::()()【】[\]]+/g, '').replace(/^(请|立即|马上|点击|轻点|去|进入|开始|打开)+|(按钮|button|btn)$/gi, '')
|
|
25
|
+
// Infix noise the model adds between shared stems (创建「新」钱包).
|
|
26
|
+
.replace(/(创建|新建|添加|新增|开通|注册|登录|登入|提交|确认|发送|保存|删除|取消|返回|下一步|完成)(?:全新|新的|新|一个|一下)*/g, '$1');
|
|
27
|
+
}
|
|
28
|
+
function levenshtein(a, b) {
|
|
29
|
+
if (a === b) return 0;
|
|
30
|
+
if (!a.length) return b.length;
|
|
31
|
+
if (!b.length) return a.length;
|
|
32
|
+
const row = Array.from({
|
|
33
|
+
length: b.length + 1
|
|
34
|
+
}, (_, i) => i);
|
|
35
|
+
for (let i = 0; i < a.length; i++) {
|
|
36
|
+
let prev = i + 1;
|
|
37
|
+
for (let j = 0; j < b.length; j++) {
|
|
38
|
+
const cur = a[i] === b[j] ? row[j] : 1 + Math.min(row[j], row[j + 1], prev);
|
|
39
|
+
row[j] = prev;
|
|
40
|
+
prev = cur;
|
|
41
|
+
}
|
|
42
|
+
row[b.length] = prev;
|
|
43
|
+
}
|
|
44
|
+
return row[b.length];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Scripts where one character carries a whole morpheme. */
|
|
48
|
+
const IDEOGRAPHIC = /[\u3040-\u30ff\u3400-\u4dbf\u4e00-\u9fff\uac00-\ud7af]/;
|
|
49
|
+
function isIdeographic(s) {
|
|
50
|
+
const chars = [...s];
|
|
51
|
+
if (!chars.length) return false;
|
|
52
|
+
const hits = chars.filter(c => IDEOGRAPHIC.test(c)).length;
|
|
53
|
+
return hits / chars.length >= 0.5;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Digit runs identify a specific thing — Account #1 vs #2, 1.2x vs 1.6x,
|
|
58
|
+
* 第2个 vs 第3个. Loose matching must never cross them, or the agent acts on
|
|
59
|
+
* the wrong account.
|
|
60
|
+
*/
|
|
61
|
+
function digitsConflict(a, b) {
|
|
62
|
+
const da = (a.match(/\d+/g) || []).join('.');
|
|
63
|
+
const db = (b.match(/\d+/g) || []).join('.');
|
|
64
|
+
return !!da && !!db && da !== db;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Edit budget for a fuzzy label match.
|
|
69
|
+
*
|
|
70
|
+
* Latin typos are cheap to forgive. One substituted ideograph is a different
|
|
71
|
+
* word — 发送/发现, 交换/交易, 合同/合约, 钱币/钱包 all sit at distance 1 — so
|
|
72
|
+
* ideographic labels get no budget until they are long enough that a single
|
|
73
|
+
* edit cannot flip the meaning. Differing digits get no budget at all.
|
|
74
|
+
*/
|
|
75
|
+
function editBudget(a, b) {
|
|
76
|
+
if (digitsConflict(a, b)) return 0;
|
|
77
|
+
const len = Math.max(a.length, b.length);
|
|
78
|
+
if (isIdeographic(a) || isIdeographic(b)) return len >= 6 ? 1 : 0;
|
|
79
|
+
return len <= 4 ? 1 : 2;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Loose label match: substring either way, soft filler strip, small edit distance. */
|
|
83
|
+
function textMatches(haystack, needle, exact) {
|
|
84
|
+
if (!haystack) return false;
|
|
85
|
+
const h = norm(haystack);
|
|
86
|
+
const n = norm(needle);
|
|
87
|
+
if (!n) return false;
|
|
88
|
+
if (exact) return h === n;
|
|
89
|
+
if (h === n) return true;
|
|
90
|
+
const hs = softKey(haystack);
|
|
91
|
+
const ns = softKey(needle);
|
|
92
|
+
if (hs && ns && hs === ns) return true;
|
|
93
|
+
|
|
94
|
+
// Short CJK labels name distinct controls: 服务设置 is a section heading,
|
|
95
|
+
// not the 设置 button. Substring matching must not invent a visible target.
|
|
96
|
+
if (n.length <= 2 && isIdeographic(n) && isIdeographic(h)) return false;
|
|
97
|
+
|
|
98
|
+
// Screen text contains the full needle (safe).
|
|
99
|
+
if (h.includes(n) && n.length >= 2) return true;
|
|
100
|
+
if (hs && ns && hs.includes(ns) && ns.length >= 2) {
|
|
101
|
+
const ratio = ns.length / hs.length;
|
|
102
|
+
if (ratio >= 0.5) return true;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Needle contains screen text only when nearly the same after softKey
|
|
106
|
+
// (「创建新钱包」→「创建钱包»). Never match 「创建钱包」 onto bare 「钱包」.
|
|
107
|
+
if (hs && ns && ns.includes(hs) && hs.length >= 2 && !digitsConflict(hs, ns)) {
|
|
108
|
+
if (hs.length / ns.length >= 0.72) return true;
|
|
109
|
+
}
|
|
110
|
+
if (h.length <= 16 && n.length <= 16) {
|
|
111
|
+
// Require similar length — else 「添加钱包」≈「钱包」(dist 2) false-positives.
|
|
112
|
+
const maxLen = Math.max(h.length, n.length);
|
|
113
|
+
const minLen = Math.min(h.length, n.length);
|
|
114
|
+
const budget = editBudget(h, n);
|
|
115
|
+
if (budget > 0 && minLen / maxLen >= 0.75) {
|
|
116
|
+
if (levenshtein(h, n) <= budget) return true;
|
|
117
|
+
}
|
|
118
|
+
if (hs && ns && hs.length <= 16 && ns.length <= 16) {
|
|
119
|
+
const maxL = Math.max(hs.length, ns.length);
|
|
120
|
+
const minL = Math.min(hs.length, ns.length);
|
|
121
|
+
const softBudget = editBudget(hs, ns);
|
|
122
|
+
if (softBudget > 0 && minL / maxL >= 0.75) {
|
|
123
|
+
if (levenshtein(hs, ns) <= softBudget) return true;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
function regionContains(frame, region, window) {
|
|
130
|
+
const ratio = 'ratio' in region && typeof region.ratio === 'number' ? region.ratio : 0.2;
|
|
131
|
+
// Without window size, approximate using large canvas; callers may refine later.
|
|
132
|
+
const W = window?.width ?? Math.max(frame.x + frame.width, 400);
|
|
133
|
+
const H = window?.height ?? Math.max(frame.y + frame.height, 800);
|
|
134
|
+
const cx = frame.x + frame.width / 2;
|
|
135
|
+
const cy = frame.y + frame.height / 2;
|
|
136
|
+
switch (region.region) {
|
|
137
|
+
case 'top':
|
|
138
|
+
return cy <= H * ratio;
|
|
139
|
+
case 'bottom':
|
|
140
|
+
return cy >= H * (1 - ratio);
|
|
141
|
+
case 'left':
|
|
142
|
+
return cx <= W * ratio;
|
|
143
|
+
case 'right':
|
|
144
|
+
return cx >= W * (1 - ratio);
|
|
145
|
+
case 'center':
|
|
146
|
+
{
|
|
147
|
+
const m = ratio;
|
|
148
|
+
return cx >= W * m && cx <= W * (1 - m) && cy >= H * m && cy <= H * (1 - m);
|
|
149
|
+
}
|
|
150
|
+
default:
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function collectTexts(node, depth = 0, maxDepth = 3) {
|
|
155
|
+
const out = [];
|
|
156
|
+
if (node.text) out.push(node.text);
|
|
157
|
+
if (node.accessibilityLabel) out.push(node.accessibilityLabel);
|
|
158
|
+
if (depth >= maxDepth) return out;
|
|
159
|
+
for (const c of node.children) out.push(...collectTexts(c, depth + 1, maxDepth));
|
|
160
|
+
return out;
|
|
161
|
+
}
|
|
162
|
+
function parentTextsNear(root, targetId) {
|
|
163
|
+
// Walk tree; when we find target, return texts from parent and siblings.
|
|
164
|
+
let parentOfTarget = null;
|
|
165
|
+
let found = false;
|
|
166
|
+
const walk = (n, parent) => {
|
|
167
|
+
if (n.id === targetId) {
|
|
168
|
+
parentOfTarget = parent;
|
|
169
|
+
found = true;
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
for (const c of n.children) {
|
|
173
|
+
walk(c, n);
|
|
174
|
+
if (found) return;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
walk(root, null);
|
|
178
|
+
if (!parentOfTarget) return collectTexts(root).slice(0, 20);
|
|
179
|
+
return collectTexts(parentOfTarget);
|
|
180
|
+
}
|
|
181
|
+
function flattenTree(root) {
|
|
182
|
+
const out = [];
|
|
183
|
+
const walk = n => {
|
|
184
|
+
out.push(n);
|
|
185
|
+
for (const c of n.children) walk(c);
|
|
186
|
+
};
|
|
187
|
+
walk(root);
|
|
188
|
+
return out;
|
|
189
|
+
}
|
|
190
|
+
function findNodeById(root, id) {
|
|
191
|
+
if (root.id === id) return root;
|
|
192
|
+
for (const c of root.children) {
|
|
193
|
+
const hit = findNodeById(c, id);
|
|
194
|
+
if (hit) return hit;
|
|
195
|
+
}
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
function nodeHasText(node, needle, exact) {
|
|
199
|
+
if (textMatches(node.text, needle, exact) || textMatches(node.accessibilityLabel, needle, exact)) {
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
// Wrapper Pressable often has empty text; label sits on a child Text.
|
|
203
|
+
if (exact) return false;
|
|
204
|
+
return collectTexts(node).some(t => textMatches(t, needle, false));
|
|
205
|
+
}
|
|
206
|
+
function matchesRule(node, rule, root) {
|
|
207
|
+
if ('text' in rule) {
|
|
208
|
+
return nodeHasText(node, rule.text, rule.exact);
|
|
209
|
+
}
|
|
210
|
+
if ('nearText' in rule) {
|
|
211
|
+
const nearby = parentTextsNear(root, node.id).join(' ');
|
|
212
|
+
return textMatches(nearby, rule.nearText, rule.exact);
|
|
213
|
+
}
|
|
214
|
+
if ('clickable' in rule) {
|
|
215
|
+
return node.clickable === rule.clickable;
|
|
216
|
+
}
|
|
217
|
+
if ('type' in rule) {
|
|
218
|
+
return norm(node.type).includes(norm(rule.type));
|
|
219
|
+
}
|
|
220
|
+
if ('testID' in rule) {
|
|
221
|
+
return !!node.testID && node.testID === rule.testID;
|
|
222
|
+
}
|
|
223
|
+
if ('accessibilityLabel' in rule) {
|
|
224
|
+
return textMatches(node.accessibilityLabel, rule.accessibilityLabel, rule.exact);
|
|
225
|
+
}
|
|
226
|
+
if ('region' in rule) {
|
|
227
|
+
return regionContains(node.frame, rule);
|
|
228
|
+
}
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
function nodeMatches(node, selector, root) {
|
|
232
|
+
if (node.visible === false || node.enabled === false) return false;
|
|
233
|
+
if (!selector.match.length) return false;
|
|
234
|
+
return selector.match.every(rule => matchesRule(node, rule, root));
|
|
235
|
+
}
|
|
236
|
+
function findAll(root, selector) {
|
|
237
|
+
return flattenTree(root).filter(n => nodeMatches(n, selector, root));
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/** Climb to the nearest clickable / toggle / sheet ancestor (inclusive). */
|
|
241
|
+
function nearestInteractive(root, node) {
|
|
242
|
+
const byId = new Map(flattenTree(root).map(n => [n.id, n]));
|
|
243
|
+
// parent id = everything before last /
|
|
244
|
+
let cur = node;
|
|
245
|
+
while (cur) {
|
|
246
|
+
if (cur.visible !== false && cur.enabled !== false && (cur.clickable || cur.toggle || cur.adjustable || cur.sheet)) return cur;
|
|
247
|
+
const parentId = cur.id.includes('/') ? cur.id.slice(0, cur.id.lastIndexOf('/')) : '';
|
|
248
|
+
cur = parentId ? byId.get(parentId) : undefined;
|
|
249
|
+
}
|
|
250
|
+
return node;
|
|
251
|
+
}
|
|
252
|
+
function isDegenerateHit(root, n) {
|
|
253
|
+
// Full-window / root wrappers are never useful tap targets.
|
|
254
|
+
if (!n.id || n.id === root.id || n.id === '0') return true;
|
|
255
|
+
const rw = Math.max(1, root.frame.width);
|
|
256
|
+
const rh = Math.max(1, root.frame.height);
|
|
257
|
+
const areaRatio = n.frame.width * n.frame.height / (rw * rh);
|
|
258
|
+
if (areaRatio >= 0.55) return true;
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
function isInputOrInputWrapper(node) {
|
|
262
|
+
if (/textfield|textinput|edittext|uitextview|textarea|searchbar/i.test(node.type)) return true;
|
|
263
|
+
return node.children.some(child => child.visible !== false && isInputOrInputWrapper(child));
|
|
264
|
+
}
|
|
265
|
+
function find(root, selector, options) {
|
|
266
|
+
let all = findAll(root, selector);
|
|
267
|
+
// Common RN case: model asks clickable+text, but text is on a child Text
|
|
268
|
+
// while Pressable wrapper is the only clickable node (handled by nodeHasText).
|
|
269
|
+
// If still empty, drop clickable requirement, match text, then climb to wrapper.
|
|
270
|
+
if (!all.length) {
|
|
271
|
+
const withoutClick = {
|
|
272
|
+
...selector,
|
|
273
|
+
match: selector.match.filter(r => !('clickable' in r))
|
|
274
|
+
};
|
|
275
|
+
if (withoutClick.match.length > 0 && withoutClick.match.length < selector.match.length) {
|
|
276
|
+
const leaves = findAll(root, withoutClick);
|
|
277
|
+
const upgraded = leaves.map(n => nearestInteractive(root, n));
|
|
278
|
+
const wantClickable = selector.match.some(r => 'clickable' in r && r.clickable === true);
|
|
279
|
+
all = wantClickable ? upgraded.filter(n => n.clickable || n.toggle || n.sheet || n.adjustable) : upgraded;
|
|
280
|
+
// De-dupe by id
|
|
281
|
+
const seen = new Set();
|
|
282
|
+
all = all.filter(n => seen.has(n.id) ? false : (seen.add(n.id), true));
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
all = all.filter(n => !isDegenerateHit(root, n));
|
|
286
|
+
if (!all.length) return null;
|
|
287
|
+
// A query field can contain the same text as a search result. For a tap on
|
|
288
|
+
// an action, prefer matching non-input controls, including when the input is
|
|
289
|
+
// wrapped in a clickable RN view. An explicit input type remains authoritative.
|
|
290
|
+
const explicitlyInput = selector.match.some(rule => 'type' in rule && /textfield|textinput|edittext|uitextview|textarea|searchbar/i.test(rule.type));
|
|
291
|
+
if (options?.preferNonInput && !explicitlyInput) {
|
|
292
|
+
const actions = all.filter(node => !isInputOrInputWrapper(node));
|
|
293
|
+
if (actions.length) all = actions;
|
|
294
|
+
}
|
|
295
|
+
// Prefer interactive + compact controls (not giant containers).
|
|
296
|
+
const ranked = selector.index !== undefined ? all : [...all].sort((a, b) => rankMatch(b) + labelSpecificity(b, selector) - rankMatch(a) - labelSpecificity(a, selector) || a.frame.width * a.frame.height - b.frame.width * b.frame.height);
|
|
297
|
+
const index = selector.index ?? 0;
|
|
298
|
+
return ranked[index] ?? null;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Last-resort: find best interactive node whose visible text soft-matches needle.
|
|
303
|
+
* Used when the planner invents near-synonym copy not present verbatim.
|
|
304
|
+
*/
|
|
305
|
+
function findBySoftLabel(root, needle, options) {
|
|
306
|
+
const n = needle.trim();
|
|
307
|
+
if (!n) return null;
|
|
308
|
+
let best = null;
|
|
309
|
+
let bestScore = -1;
|
|
310
|
+
for (const node of flattenTree(root)) {
|
|
311
|
+
if (node.visible === false || node.enabled === false) continue;
|
|
312
|
+
if (isDegenerateHit(root, node)) continue;
|
|
313
|
+
const labels = [node.text, node.accessibilityLabel, ...collectTexts(node, 0, 2)].filter(t => !!t && t.trim().length > 0);
|
|
314
|
+
if (!labels.some(t => textMatches(t, n))) continue;
|
|
315
|
+
let score = rankMatch(node) + labelSpecificity(node, {
|
|
316
|
+
match: [{
|
|
317
|
+
text: n
|
|
318
|
+
}]
|
|
319
|
+
});
|
|
320
|
+
if (options?.preferNonInput && isInputOrInputWrapper(node)) score -= 200;
|
|
321
|
+
// Prefer roomy-but-not-huge tap targets (real buttons over tiny glyphs).
|
|
322
|
+
const area = node.frame.width * node.frame.height;
|
|
323
|
+
score += Math.min(40, area / 800);
|
|
324
|
+
// Penalize oversized containers.
|
|
325
|
+
score -= Math.min(60, area / 20_000);
|
|
326
|
+
if (score > bestScore) {
|
|
327
|
+
bestScore = score;
|
|
328
|
+
best = nearestInteractive(root, node);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
if (best && isDegenerateHit(root, best)) return null;
|
|
332
|
+
return best;
|
|
333
|
+
}
|
|
334
|
+
function rankMatch(n) {
|
|
335
|
+
let s = 0;
|
|
336
|
+
if (n.toggle) s += 100;
|
|
337
|
+
if (n.adjustable) s += 80;
|
|
338
|
+
if (n.sheet && n.clickable) s += 70;
|
|
339
|
+
if (n.clickable) s += 40;
|
|
340
|
+
if (n.enabled) s += 5;
|
|
341
|
+
if (n.visible) s += 2;
|
|
342
|
+
// Prefer tighter frames among equals.
|
|
343
|
+
const area = n.frame.width * n.frame.height;
|
|
344
|
+
if (area > 0 && area < 120_000) s += 3;
|
|
345
|
+
return s;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/** A control's own label is stronger evidence than an ancestor's aggregated text. */
|
|
349
|
+
function labelSpecificity(node, selector) {
|
|
350
|
+
let score = 0;
|
|
351
|
+
for (const rule of selector.match) {
|
|
352
|
+
const wanted = 'text' in rule ? rule.text : 'accessibilityLabel' in rule ? rule.accessibilityLabel : undefined;
|
|
353
|
+
if (!wanted) continue;
|
|
354
|
+
const own = [node.text, node.accessibilityLabel].filter(x => !!x);
|
|
355
|
+
if (own.some(text => norm(text) === norm(wanted))) score += 100;else if (own.some(text => softKey(text) === softKey(wanted))) score += 90;else {
|
|
356
|
+
const labels = new Set(collectTexts(node, 0, 3).map(softKey).filter(Boolean));
|
|
357
|
+
if (labels.size === 1 && labels.has(softKey(wanted))) score += 90;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return score;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/** Keep a broad actionable container from centering between adjacent controls. */
|
|
364
|
+
function centerOfLabel(node, label) {
|
|
365
|
+
if (!label) return centerOf(node);
|
|
366
|
+
const key = softKey(label);
|
|
367
|
+
if (!key || [node.text, node.accessibilityLabel].some(text => text && softKey(text) === key)) return centerOf(node);
|
|
368
|
+
const targets = flattenTree(node).filter(child => child !== node && child.visible !== false && child.enabled !== false && child.frame.width > 0 && child.frame.height > 0 && [child.text, child.accessibilityLabel].some(text => text && softKey(text) === key));
|
|
369
|
+
targets.sort((a, b) => rankMatch(b) - rankMatch(a) || a.frame.width * a.frame.height - b.frame.width * b.frame.height);
|
|
370
|
+
return centerOf(targets[0] || node);
|
|
371
|
+
}
|
|
372
|
+
function centerOf(node) {
|
|
373
|
+
return {
|
|
374
|
+
x: node.frame.x + node.frame.width / 2,
|
|
375
|
+
y: node.frame.y + node.frame.height / 2
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=match.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["norm","s","trim","toLowerCase","softKey","replace","levenshtein","a","b","length","row","Array","from","_","i","prev","j","cur","Math","min","IDEOGRAPHIC","isIdeographic","chars","hits","filter","c","test","digitsConflict","da","match","join","db","editBudget","len","max","textMatches","haystack","needle","exact","h","n","hs","ns","includes","ratio","maxLen","minLen","budget","maxL","minL","softBudget","regionContains","frame","region","window","W","width","x","H","height","y","cx","cy","m","collectTexts","node","depth","maxDepth","out","text","push","accessibilityLabel","children","parentTextsNear","root","targetId","parentOfTarget","found","walk","parent","id","slice","flattenTree","findNodeById","hit","nodeHasText","some","t","matchesRule","rule","nearby","nearText","clickable","type","testID","nodeMatches","selector","visible","enabled","every","findAll","nearestInteractive","byId","Map","map","toggle","adjustable","sheet","parentId","lastIndexOf","get","undefined","isDegenerateHit","rw","rh","areaRatio","isInputOrInputWrapper","child","find","options","all","withoutClick","r","leaves","upgraded","wantClickable","seen","Set","has","add","explicitlyInput","preferNonInput","actions","ranked","index","sort","rankMatch","labelSpecificity","findBySoftLabel","best","bestScore","labels","score","area","wanted","own","Boolean","size","centerOfLabel","label","centerOf","key","targets"],"sourceRoot":"../../../src","sources":["selector/match.ts"],"mappings":"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","ignoreList":[]}
|