@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,255 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Optional host-declared actions — the low-friction way for complex Apps
|
|
5
|
+
* (OneKey / Tamagui) when native dump cannot see icons without a11y/testID.
|
|
6
|
+
*
|
|
7
|
+
* Hosts register controls only while mounted and visible. Callbacks supplement
|
|
8
|
+
* native controls; registration does not establish visibility or identity.
|
|
9
|
+
*
|
|
10
|
+
* IMPORTANT: host ids are NOT dump nodeIds. Never emit `id=host:…` in the
|
|
11
|
+
* screen model — planners will tap them and fail with "nodeId not found".
|
|
12
|
+
*
|
|
13
|
+
* Optional `run`: after a unique current native control is bound, a callback
|
|
14
|
+
* may execute its behavior instead of dispatching a geometric touch.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { flattenTree, textMatches } from "../selector/match.js";
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Host action matching: also consider optional aliases (e.g. prior-locale tab copy).
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
class HostActionsStoreImpl {
|
|
24
|
+
actions = [];
|
|
25
|
+
listeners = new Set();
|
|
26
|
+
|
|
27
|
+
/** Replace the whole catalog (typical: once at app start). */
|
|
28
|
+
setActions(actions) {
|
|
29
|
+
this.actions = sanitize(actions);
|
|
30
|
+
this.emit();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Append / upsert by id. */
|
|
34
|
+
registerActions(actions) {
|
|
35
|
+
const map = new Map(this.actions.map(a => [a.id, a]));
|
|
36
|
+
for (const a of sanitize(actions)) map.set(a.id, a);
|
|
37
|
+
this.actions = [...map.values()];
|
|
38
|
+
this.emit();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** Drop a previously registered action (e.g. EmptyWallet unmount). */
|
|
42
|
+
unregisterAction(id) {
|
|
43
|
+
const key = String(id ?? '').replace(/^host:/, '').trim();
|
|
44
|
+
if (!key) return;
|
|
45
|
+
const next = this.actions.filter(a => a.id !== key);
|
|
46
|
+
if (next.length === this.actions.length) return;
|
|
47
|
+
this.actions = next;
|
|
48
|
+
this.emit();
|
|
49
|
+
}
|
|
50
|
+
clear() {
|
|
51
|
+
this.actions = [];
|
|
52
|
+
this.emit();
|
|
53
|
+
}
|
|
54
|
+
getActions() {
|
|
55
|
+
return this.actions.slice();
|
|
56
|
+
}
|
|
57
|
+
getById(id) {
|
|
58
|
+
const key = id.replace(/^host:/, '').trim();
|
|
59
|
+
return this.actions.find(a => a.id === key);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Match by label / text / testID (planner taps by copy, not host id). */
|
|
63
|
+
findForTap(needle) {
|
|
64
|
+
const testID = (needle.testID || '').trim();
|
|
65
|
+
if (testID) {
|
|
66
|
+
const matches = this.actions.filter(a => a.testID === testID);
|
|
67
|
+
// An explicit native identity must not fall back to a different callback.
|
|
68
|
+
return matches.length === 1 ? matches[0] : undefined;
|
|
69
|
+
}
|
|
70
|
+
const raw = (needle.text || needle.label || '').trim();
|
|
71
|
+
if (!raw) return undefined;
|
|
72
|
+
// Also match 「发现」 inside narration like「打开「发现」标签页」.
|
|
73
|
+
const quoted = raw.match(/「([^」]+)」/)?.[1]?.trim();
|
|
74
|
+
const needles = quoted && quoted !== raw ? [raw, quoted] : [raw];
|
|
75
|
+
const hits = this.actions.filter(a => {
|
|
76
|
+
const candidates = [a.label, a.text, ...(a.aliases ?? [])].filter(Boolean);
|
|
77
|
+
return needles.some(label => candidates.some(c => textMatches(c, label, true)));
|
|
78
|
+
});
|
|
79
|
+
// Repeated row labels need the native selector/geometry or a unique testID.
|
|
80
|
+
// Picking the first callback silently targets a different item.
|
|
81
|
+
return hits.length === 1 ? hits[0] : undefined;
|
|
82
|
+
}
|
|
83
|
+
subscribe(listener) {
|
|
84
|
+
this.listeners.add(listener);
|
|
85
|
+
listener(this.getActions());
|
|
86
|
+
return () => this.listeners.delete(listener);
|
|
87
|
+
}
|
|
88
|
+
emit() {
|
|
89
|
+
const snap = this.getActions();
|
|
90
|
+
for (const l of this.listeners) l(snap);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function sanitize(actions) {
|
|
94
|
+
const out = [];
|
|
95
|
+
for (const a of actions) {
|
|
96
|
+
const id = String(a?.id ?? '').trim();
|
|
97
|
+
const label = String(a?.label ?? '').trim();
|
|
98
|
+
if (!id || !label) continue;
|
|
99
|
+
const kind = a.kind ?? 'button';
|
|
100
|
+
const hasRun = typeof a.run === 'function';
|
|
101
|
+
// Tabs stay registered; button CTAs with run are one-shot by default.
|
|
102
|
+
const oneshot = typeof a.oneshot === 'boolean' ? a.oneshot : hasRun && kind !== 'tab';
|
|
103
|
+
out.push({
|
|
104
|
+
id: id.slice(0, 80),
|
|
105
|
+
label: label.slice(0, 80),
|
|
106
|
+
kind,
|
|
107
|
+
testID: a.testID?.trim().slice(0, 120) || undefined,
|
|
108
|
+
text: a.text?.trim().slice(0, 80) || undefined,
|
|
109
|
+
aliases: Array.isArray(a.aliases) ? a.aliases.map(s => String(s ?? '').trim().slice(0, 80)).filter(Boolean).slice(0, 8) : undefined,
|
|
110
|
+
route: a.route?.trim().slice(0, 120) || undefined,
|
|
111
|
+
// Keep host callback by reference — not serializable, intentional.
|
|
112
|
+
run: hasRun ? a.run : undefined,
|
|
113
|
+
oneshot
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return out.slice(0, 80);
|
|
117
|
+
}
|
|
118
|
+
function hostNeedle(a) {
|
|
119
|
+
return (a.text || a.label || '').trim();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A unique callback catalog entry is not a unique native control. Bind it to
|
|
124
|
+
* the node already chosen by the full selector (including index/nearText),
|
|
125
|
+
* otherwise the caller must preserve that selector and use a native touch.
|
|
126
|
+
*/
|
|
127
|
+
export function canRunHostActionForNode(action, selected, root) {
|
|
128
|
+
if (!selected || !root || typeof action.run !== 'function') return false;
|
|
129
|
+
const nodes = new Map();
|
|
130
|
+
const parents = new Map();
|
|
131
|
+
const collect = (node, parent) => {
|
|
132
|
+
if (node.visible === false || node.enabled === false) return;
|
|
133
|
+
nodes.set(node.id, node);
|
|
134
|
+
if (parent) parents.set(node.id, parent);
|
|
135
|
+
for (const child of node.children) collect(child, node);
|
|
136
|
+
};
|
|
137
|
+
collect(root);
|
|
138
|
+
const current = nodes.get(selected.id);
|
|
139
|
+
if (!current || current.type !== selected.type || current.text !== selected.text || current.accessibilityLabel !== selected.accessibilityLabel || current.testID !== selected.testID) return false;
|
|
140
|
+
const usable = node => {
|
|
141
|
+
const frame = node.frame;
|
|
142
|
+
const cx = frame.x + frame.width / 2,
|
|
143
|
+
cy = frame.y + frame.height / 2;
|
|
144
|
+
return node.id !== root.id && frame.width > 0 && frame.height > 0 && frame.width * frame.height < root.frame.width * root.frame.height * 0.55 && cx >= root.frame.x && cx <= root.frame.x + root.frame.width && cy >= root.frame.y && cy <= root.frame.y + root.frame.height;
|
|
145
|
+
};
|
|
146
|
+
const owner = node => {
|
|
147
|
+
for (let current = node; current; current = parents.get(current.id)) {
|
|
148
|
+
if (usable(current) && (current.clickable || current.toggle || current.adjustable || /button|tabbaritem|bottomnavigationitem/i.test(current.type))) return current;
|
|
149
|
+
}
|
|
150
|
+
return undefined;
|
|
151
|
+
};
|
|
152
|
+
const targetOwner = owner(current);
|
|
153
|
+
if (action.testID) {
|
|
154
|
+
const matches = [...nodes.values()].filter(node => node.testID === action.testID && usable(node));
|
|
155
|
+
if (matches.length !== 1) return false;
|
|
156
|
+
const anchor = matches[0];
|
|
157
|
+
// A unique explicit testID may identify a non-clickable text leaf, which
|
|
158
|
+
// Fabric commonly nests inside the actual Pressable selected by geometry.
|
|
159
|
+
return anchor.id === current.id || !!targetOwner && owner(anchor)?.id === targetOwner.id;
|
|
160
|
+
}
|
|
161
|
+
if (!targetOwner) return false;
|
|
162
|
+
const needles = [action.text || action.label, ...(action.aliases || [])].filter(Boolean);
|
|
163
|
+
const owners = new Set();
|
|
164
|
+
for (const node of nodes.values()) {
|
|
165
|
+
if (!needles.some(label => textMatches(node.text, label, true) || textMatches(node.accessibilityLabel, label, true))) continue;
|
|
166
|
+
const control = owner(node);
|
|
167
|
+
if (control) owners.add(control.id);
|
|
168
|
+
}
|
|
169
|
+
return owners.size === 1 && owners.has(targetOwner.id);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Callbacks declare behavior, not visibility. Only current visible native
|
|
174
|
+
* evidence enters the model; missing native content can use fresh local OCR.
|
|
175
|
+
*/
|
|
176
|
+
export function filterVisibleHostActions(actions, root) {
|
|
177
|
+
if (!actions.length) return [];
|
|
178
|
+
if (!root) return [];
|
|
179
|
+
const nodes = flattenTree(root).filter(n => n.visible !== false && n.enabled !== false);
|
|
180
|
+
const inDump = (a, exact = false) => {
|
|
181
|
+
if (a.testID && nodes.some(n => n.testID === a.testID)) return true;
|
|
182
|
+
const needles = [hostNeedle(a), ...(a.aliases ?? [])].map(s => s.trim()).filter(Boolean);
|
|
183
|
+
if (!needles.length) return false;
|
|
184
|
+
for (const needle of needles) {
|
|
185
|
+
const hit = nodes.some(n => {
|
|
186
|
+
if (exact) {
|
|
187
|
+
return textMatches(n.text, needle, true) || textMatches(n.accessibilityLabel, needle, true);
|
|
188
|
+
}
|
|
189
|
+
return textMatches(n.text, needle) || textMatches(n.accessibilityLabel, needle);
|
|
190
|
+
});
|
|
191
|
+
if (hit) return true;
|
|
192
|
+
}
|
|
193
|
+
return false;
|
|
194
|
+
};
|
|
195
|
+
return actions.filter(a => {
|
|
196
|
+
// Exact: avoid「钱包」tab matching「创建助记词钱包」onboarding copy.
|
|
197
|
+
if (a.kind === 'tab') return inDump(a, true);
|
|
198
|
+
return inDump(a, true);
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Compact lines merged into ui_screen_model.
|
|
204
|
+
* No fake node ids — tap must use text「…」 / testID, never id=host:….
|
|
205
|
+
*/
|
|
206
|
+
export function hostActionsModelText(actions) {
|
|
207
|
+
if (!actions.length) return '';
|
|
208
|
+
return actions.map(a => {
|
|
209
|
+
const kind = a.kind ?? 'button';
|
|
210
|
+
const tip = a.testID ? ` testID=${a.testID}` : a.text ? ` text「${a.text}」` : ` text「${a.label}」`;
|
|
211
|
+
const via = typeof a.run === 'function' ? '(host run)' : '(按文案 tap,禁止用 host id)';
|
|
212
|
+
return `- [host:${kind}] 「${a.label}」${tip}${via}`;
|
|
213
|
+
}).join('\n');
|
|
214
|
+
}
|
|
215
|
+
export const HostActionsStore = new HostActionsStoreImpl();
|
|
216
|
+
export function setHostActions(actions) {
|
|
217
|
+
HostActionsStore.setActions(actions);
|
|
218
|
+
}
|
|
219
|
+
export function registerHostActions(actions) {
|
|
220
|
+
HostActionsStore.registerActions(actions);
|
|
221
|
+
}
|
|
222
|
+
export function unregisterHostAction(id) {
|
|
223
|
+
HostActionsStore.unregisterAction(id);
|
|
224
|
+
}
|
|
225
|
+
export function clearHostActions() {
|
|
226
|
+
HostActionsStore.clear();
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Upper bound on a single host action. These callbacks are app code we do not
|
|
231
|
+
* control: one that never settles wedges the whole goal with no step, no log
|
|
232
|
+
* line and no timeout above it. Observed as a goal sitting for minutes without
|
|
233
|
+
* ever reaching the planner.
|
|
234
|
+
*/
|
|
235
|
+
export const HOST_ACTION_TIMEOUT_MS = 8000;
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Await a host callback without letting it hang the agent. Resolves false when
|
|
239
|
+
* it throws or outruns its budget. False means the outcome is unknown: the
|
|
240
|
+
* callback may already have committed work, so callers must not replay a tap.
|
|
241
|
+
*/
|
|
242
|
+
export async function runHostAction(run, timeoutMs = HOST_ACTION_TIMEOUT_MS) {
|
|
243
|
+
let timer;
|
|
244
|
+
try {
|
|
245
|
+
await Promise.race([Promise.resolve(run()), new Promise((_, reject) => {
|
|
246
|
+
timer = setTimeout(() => reject(new Error(`host action exceeded ${timeoutMs}ms`)), timeoutMs);
|
|
247
|
+
})]);
|
|
248
|
+
return true;
|
|
249
|
+
} catch {
|
|
250
|
+
return false;
|
|
251
|
+
} finally {
|
|
252
|
+
if (timer) clearTimeout(timer);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=HostActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["flattenTree","textMatches","HostActionsStoreImpl","actions","listeners","Set","setActions","sanitize","emit","registerActions","map","Map","a","id","set","values","unregisterAction","key","String","replace","trim","next","filter","length","clear","getActions","slice","getById","find","findForTap","needle","testID","matches","undefined","raw","text","label","quoted","match","needles","hits","candidates","aliases","Boolean","some","c","subscribe","listener","add","delete","snap","l","out","kind","hasRun","run","oneshot","push","Array","isArray","s","route","hostNeedle","canRunHostActionForNode","action","selected","root","nodes","parents","collect","node","parent","visible","enabled","child","children","current","get","type","accessibilityLabel","usable","frame","cx","x","width","cy","y","height","owner","clickable","toggle","adjustable","test","targetOwner","anchor","owners","control","size","has","filterVisibleHostActions","n","inDump","exact","hit","hostActionsModelText","tip","via","join","HostActionsStore","setHostActions","registerHostActions","unregisterHostAction","clearHostActions","HOST_ACTION_TIMEOUT_MS","runHostAction","timeoutMs","timer","Promise","race","resolve","_","reject","setTimeout","Error","clearTimeout"],"sourceRoot":"../../../src","sources":["host/HostActions.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { runtimeEn, runtimeZh } from "./runtimeMessages.js";
|
|
4
|
+
import { HostAppearanceStore } from "../provider/HostAppearanceStore.js";
|
|
5
|
+
const zh = {
|
|
6
|
+
...runtimeZh,
|
|
7
|
+
'brand.defaultName': 'Koko',
|
|
8
|
+
'brand.defaultTagline': '用自然语言操作当前 App',
|
|
9
|
+
'brand.defaultPlaceholder': '跟 Koko 说你想做什么…',
|
|
10
|
+
'brand.defaultMark': 'K',
|
|
11
|
+
'sheet.recentTasks': '最近任务',
|
|
12
|
+
'sheet.timeline': '执行记录',
|
|
13
|
+
'sheet.emptyTasks': '还没有任务,在下方说一句开始',
|
|
14
|
+
'sheet.emptyNodesTitle': '暂无步骤',
|
|
15
|
+
'sheet.emptyNodesHint': '发送指令后,这里会显示每一步操作',
|
|
16
|
+
'sheet.send': '发送',
|
|
17
|
+
'sheet.closeA11y': '关闭会话',
|
|
18
|
+
'sheet.stopA11y': '停止当前任务',
|
|
19
|
+
'sheet.inputA11y': '自然语言指令',
|
|
20
|
+
'sheet.deleteTaskTitle': '删除任务',
|
|
21
|
+
'sheet.deleteTaskBody': '删除「{title}」?此操作不可撤销。',
|
|
22
|
+
'sheet.deleteTask': '删除',
|
|
23
|
+
'status.running': '进行中',
|
|
24
|
+
'status.success': '完成',
|
|
25
|
+
'status.failed': '失败',
|
|
26
|
+
'status.cancelled': '已取消',
|
|
27
|
+
'kind.user': '用户',
|
|
28
|
+
'kind.plan': '规划',
|
|
29
|
+
'kind.dump': '扫描',
|
|
30
|
+
'kind.find': '定位',
|
|
31
|
+
'kind.tap': '点击',
|
|
32
|
+
'kind.swipe': '滑动',
|
|
33
|
+
'kind.type': '输入',
|
|
34
|
+
'kind.confirm': '确认',
|
|
35
|
+
'kind.info': '信息',
|
|
36
|
+
'kind.error': '错误',
|
|
37
|
+
'resume.note': 'App 重载中断了上一次执行,已自动继续',
|
|
38
|
+
'resume.verifyFirst': '注意:App 在上一次执行中途重载了,这个目标可能已经完成。请先观察当前界面判断目标是否已达成;如已达成,直接返回 done(success=true) 并说明依据,不要重复操作。另外,重载前学到的界面文案可能已失效,请以当前界面为准。',
|
|
39
|
+
'progress.running': '执行中…',
|
|
40
|
+
'progress.success': '成功',
|
|
41
|
+
'progress.failed': '失败',
|
|
42
|
+
'progress.cancelled': '已取消',
|
|
43
|
+
'progress.openA11y': '打开会话',
|
|
44
|
+
'progress.stopA11y': '停止当前任务',
|
|
45
|
+
'gate.check': '检查状态',
|
|
46
|
+
'gate.checking': '正在本机检查是否已离开隐私页面…',
|
|
47
|
+
'gate.stillPrivate': '仍在隐私页面,请在宿主中点击下一步并完成操作;离开此页后自动继续',
|
|
48
|
+
'gate.unreadable': '暂时无法确认页面状态,请在宿主中完成操作后再检查',
|
|
49
|
+
'gate.verifyResultFirst': '已将进行中的操作交给用户处理。先核验这次操作的结果,继续剩余步骤;若失败或退回之前的入口/说明页,报告问题并停止,禁止从头重新创建、导入或提交。不能把返回入口当作尚未开始。',
|
|
50
|
+
'gate.replayStopped': '检测到人工接管后再次进入已发起过的操作,已停止,避免重复创建或提交。请先确认上一次操作的结果。',
|
|
51
|
+
'dialog.cancel': '取消',
|
|
52
|
+
'dialog.confirm': '确认',
|
|
53
|
+
'dialog.continue': '继续',
|
|
54
|
+
'dialog.askTitle': '需要你的确认',
|
|
55
|
+
'dialog.askPlaceholder': '输入补充信息',
|
|
56
|
+
'confirm.preflightTitle': '确认执行此任务?',
|
|
57
|
+
'confirm.preflightBody': '该操作可能涉及资金或敏感数据:\n「{label}」\n\n确认后将自动执行,过程中可点停止取消。',
|
|
58
|
+
'confirm.inlineTitle': '需要你的确认',
|
|
59
|
+
'confirm.inlineBody': '即将执行敏感操作:{label}'
|
|
60
|
+
};
|
|
61
|
+
const en = {
|
|
62
|
+
...runtimeEn,
|
|
63
|
+
'brand.defaultName': 'Koko',
|
|
64
|
+
'brand.defaultTagline': 'Control this app with natural language',
|
|
65
|
+
'brand.defaultPlaceholder': 'Tell Koko what you want to do…',
|
|
66
|
+
'brand.defaultMark': 'K',
|
|
67
|
+
'sheet.recentTasks': 'Recent tasks',
|
|
68
|
+
'sheet.timeline': 'Activity',
|
|
69
|
+
'sheet.emptyTasks': 'No tasks yet — type a goal below',
|
|
70
|
+
'sheet.emptyNodesTitle': 'No steps yet',
|
|
71
|
+
'sheet.emptyNodesHint': 'After you send a goal, each step shows up here',
|
|
72
|
+
'sheet.send': 'Send',
|
|
73
|
+
'sheet.closeA11y': 'Close chat',
|
|
74
|
+
'sheet.stopA11y': 'Stop current task',
|
|
75
|
+
'sheet.inputA11y': 'Natural language command',
|
|
76
|
+
'sheet.deleteTaskTitle': 'Delete task',
|
|
77
|
+
'sheet.deleteTaskBody': 'Delete “{title}”? This cannot be undone.',
|
|
78
|
+
'sheet.deleteTask': 'Delete',
|
|
79
|
+
'status.running': 'Running',
|
|
80
|
+
'status.success': 'Done',
|
|
81
|
+
'status.failed': 'Failed',
|
|
82
|
+
'status.cancelled': 'Cancelled',
|
|
83
|
+
'kind.user': 'User',
|
|
84
|
+
'kind.plan': 'Plan',
|
|
85
|
+
'kind.dump': 'Scan',
|
|
86
|
+
'kind.find': 'Find',
|
|
87
|
+
'kind.tap': 'Tap',
|
|
88
|
+
'kind.swipe': 'Swipe',
|
|
89
|
+
'kind.type': 'Type',
|
|
90
|
+
'kind.confirm': 'Confirm',
|
|
91
|
+
'kind.info': 'Info',
|
|
92
|
+
'kind.error': 'Error',
|
|
93
|
+
'resume.note': 'A reload interrupted the previous run; continuing it',
|
|
94
|
+
'resume.verifyFirst': 'Note: the App reloaded partway through the previous run, so this goal may already be complete. Inspect the current screen first and decide whether it is already satisfied; if it is, return done(success=true) with your evidence and change nothing. Labels learned before the reload may no longer exist — trust the current screen.',
|
|
95
|
+
'progress.running': 'Working…',
|
|
96
|
+
'progress.success': 'Done',
|
|
97
|
+
'progress.failed': 'Failed',
|
|
98
|
+
'progress.cancelled': 'Cancelled',
|
|
99
|
+
'progress.openA11y': 'Open chat',
|
|
100
|
+
'progress.stopA11y': 'Stop current task',
|
|
101
|
+
'gate.check': 'Check status',
|
|
102
|
+
'gate.checking': 'Checking locally whether you have left the private screen…',
|
|
103
|
+
'gate.stillPrivate': 'Still on a private screen. Complete the next steps in the app; the assistant resumes after you leave it.',
|
|
104
|
+
'gate.unreadable': 'Unable to confirm the screen. Complete the step in the app, then check again.',
|
|
105
|
+
'gate.verifyResultFirst': 'An in-flight operation was handed to the user. Verify its result and continue remaining steps. If it failed or returned to a previous entry or instruction screen, report the issue and stop. Do not restart creation, import, or submission from the beginning.',
|
|
106
|
+
'gate.replayStopped': 'Stopped a repeated operation after user handoff to avoid duplicate creation or submission. Check the previous operation result first.',
|
|
107
|
+
'dialog.cancel': 'Cancel',
|
|
108
|
+
'dialog.confirm': 'Confirm',
|
|
109
|
+
'dialog.continue': 'Continue',
|
|
110
|
+
'dialog.askTitle': 'We need your input',
|
|
111
|
+
'dialog.askPlaceholder': 'Type a reply',
|
|
112
|
+
'confirm.preflightTitle': 'Run this task?',
|
|
113
|
+
'confirm.preflightBody': 'This may involve money or sensitive data:\n「{label}」\n\nAfter you confirm, it runs unattended — tap stop to cancel.',
|
|
114
|
+
'confirm.inlineTitle': 'Confirmation needed',
|
|
115
|
+
'confirm.inlineBody': 'About to run a sensitive action: {label}'
|
|
116
|
+
};
|
|
117
|
+
const catalogs = {
|
|
118
|
+
zh,
|
|
119
|
+
en
|
|
120
|
+
};
|
|
121
|
+
export function normalizeLocale(locale) {
|
|
122
|
+
if (!locale) return 'en';
|
|
123
|
+
const lower = locale.toLowerCase();
|
|
124
|
+
if (lower.startsWith('zh')) return 'zh';
|
|
125
|
+
if (lower.startsWith('en')) return 'en';
|
|
126
|
+
return 'en';
|
|
127
|
+
}
|
|
128
|
+
export function gatewayLocale(locale) {
|
|
129
|
+
return locale === 'zh' ? 'zh-CN' : 'en-US';
|
|
130
|
+
}
|
|
131
|
+
export function t(locale, key, vars) {
|
|
132
|
+
const table = catalogs[locale] ?? catalogs.en;
|
|
133
|
+
let out = table[key] ?? catalogs.en[key] ?? key;
|
|
134
|
+
if (vars) {
|
|
135
|
+
for (const [k, v] of Object.entries(vars)) {
|
|
136
|
+
out = out.replace(new RegExp(`\\{${k}\\}`, 'g'), () => String(v));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return out;
|
|
140
|
+
}
|
|
141
|
+
/** Resolve at use time so an in-flight task follows host language changes. */
|
|
142
|
+
export function currentLocale(fallbackLocale) {
|
|
143
|
+
return normalizeLocale(HostAppearanceStore.get().locale ?? fallbackLocale);
|
|
144
|
+
}
|
|
145
|
+
export function message(key, vars, fallbackLocale) {
|
|
146
|
+
return {
|
|
147
|
+
kokoMessage: true,
|
|
148
|
+
key,
|
|
149
|
+
vars,
|
|
150
|
+
fallbackLocale
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export function resolveText(value) {
|
|
154
|
+
return typeof value === 'string' ? value : t(currentLocale(value.fallbackLocale), value.key, value.vars);
|
|
155
|
+
}
|
|
156
|
+
export function runtimeText(key, vars, fallbackLocale) {
|
|
157
|
+
return t(currentLocale(fallbackLocale), key, vars);
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["runtimeEn","runtimeZh","HostAppearanceStore","zh","en","catalogs","normalizeLocale","locale","lower","toLowerCase","startsWith","gatewayLocale","t","key","vars","table","out","k","v","Object","entries","replace","RegExp","String","currentLocale","fallbackLocale","get","message","kokoMessage","resolveText","value","runtimeText"],"sourceRoot":"../../../src","sources":["i18n/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Local SDK activity messages. Host labels and user input are interpolation values.
|
|
4
|
+
export const runtimeZh = {
|
|
5
|
+
"runtime.element": "元素",
|
|
6
|
+
"runtime.target": "目标",
|
|
7
|
+
"runtime.field": "输入框",
|
|
8
|
+
"runtime.scan": "扫描界面…",
|
|
9
|
+
"runtime.scanned": "已扫描界面",
|
|
10
|
+
"runtime.find": "定位「{label}」",
|
|
11
|
+
"runtime.found": "已定位「{label}」",
|
|
12
|
+
"runtime.notFound": "未找到「{label}」",
|
|
13
|
+
"runtime.tap": "点击「{label}」",
|
|
14
|
+
"runtime.tapped": "已点击「{label}」",
|
|
15
|
+
"runtime.confirmBlocked": "已拦截:需确认「{label}」",
|
|
16
|
+
"runtime.confirmationRequired": "操作需要用户确认,未执行点击",
|
|
17
|
+
"runtime.toggle": "切换「{label}」",
|
|
18
|
+
"runtime.toggled": "已切换「{label}」",
|
|
19
|
+
"runtime.adjust": "调节「{label}」",
|
|
20
|
+
"runtime.adjusted": "已调节「{label}」",
|
|
21
|
+
"runtime.confirmed": "已确认「{label}」",
|
|
22
|
+
"runtime.confirm": "等待确认「{label}」",
|
|
23
|
+
"runtime.userConfirmed": "用户已确认「{label}」",
|
|
24
|
+
"runtime.userDeclined": "用户拒绝「{label}」",
|
|
25
|
+
"runtime.privateStep": "请在 App 内完成隐私步骤;SDK 不代填或选择秘密信息",
|
|
26
|
+
"runtime.hostTargetMissing": "当前页面没有可验证的宿主操作入口",
|
|
27
|
+
"runtime.positionChanged": "目标位置已变化,正在重新观察;未执行点击",
|
|
28
|
+
"runtime.contentChanged": "目标内容已变化,正在重新观察;未执行点击",
|
|
29
|
+
"runtime.reveal": "目标尚未出现在可见区域,正在滚动查找…",
|
|
30
|
+
"runtime.swipe": "滑动页面…",
|
|
31
|
+
"runtime.swiped": "已滑动",
|
|
32
|
+
"runtime.zoomIn": "双指放大…",
|
|
33
|
+
"runtime.zoomOut": "双指缩小…",
|
|
34
|
+
"runtime.zoomedIn": "已放大",
|
|
35
|
+
"runtime.zoomedOut": "已缩小",
|
|
36
|
+
"runtime.input": "输入「{text}」",
|
|
37
|
+
"runtime.typed": "已输入「{text}」",
|
|
38
|
+
"runtime.missingTarget": "未找到可见目标;请选择当前可见导航,或在确认属于当前列表时滚动查找;未执行点击",
|
|
39
|
+
"runtime.ocrUnobserved": "未找到可见目标;OCR 引用未经过本地观察或已过期;未执行点击",
|
|
40
|
+
"runtime.ocrMissing": "未找到可见目标;OCR 目标已离开当前画面;未执行点击",
|
|
41
|
+
"runtime.nodeUnavailable": "未找到可见目标;节点已离开当前画面或不可操作;未执行点击",
|
|
42
|
+
"runtime.nodeChanged": "未找到可见目标;节点内容已变化或未在本轮观察;请重新规划;未执行点击",
|
|
43
|
+
"runtime.hostNotVisible": "宿主操作入口当前不可见:{id}",
|
|
44
|
+
"runtime.invalidTarget": "点击需要选择器、节点或有效坐标",
|
|
45
|
+
"runtime.invalidPoint": "点击坐标无效:({x}, {y})",
|
|
46
|
+
"runtime.outsideWindow": "点击坐标超出当前窗口;未执行点击",
|
|
47
|
+
"runtime.cancelled": "已取消",
|
|
48
|
+
"runtime.confirmationCancelled": "用户取消:未确认高风险操作",
|
|
49
|
+
"runtime.alreadyRunning": "已有任务正在执行,请等待其结束",
|
|
50
|
+
"runtime.missingToken": "缺少应用访问令牌,请检查 SDK 网关配置",
|
|
51
|
+
"runtime.gateTimeout": "等待用户在 App 内完成安全步骤超时",
|
|
52
|
+
"runtime.progressBudget": "任务仍在推进,扩展步数预算 → {steps}",
|
|
53
|
+
"runtime.waitForApp": "请在 App 内完成:{request}",
|
|
54
|
+
"runtime.inputInApp": "请在 App 内完成输入",
|
|
55
|
+
"runtime.userContinued": "用户已在 App 内继续",
|
|
56
|
+
"runtime.userTimeout": "等待用户操作超时,未确认完成",
|
|
57
|
+
"runtime.loopStopped": "检测到空转或重复操作,已停止",
|
|
58
|
+
"runtime.stepLimit": "达到安全步数上限",
|
|
59
|
+
"runtime.scrollNoop": "scroll_noop: 内容位置未变化,已到边界或该方向无法滚动。请换方向或选择可见导航。",
|
|
60
|
+
"runtime.scrollChanged": "swiped: 内容位置已变化,滚动有效",
|
|
61
|
+
"runtime.gatewayRetry": "网关暂时不可用,重试 ({attempt}/{total})…",
|
|
62
|
+
"runtime.gateConfirmed": "已确认完成安全输入",
|
|
63
|
+
"runtime.gateCompleted": "安全输入已完成",
|
|
64
|
+
"runtime.gateInputTimeout": "等待安全输入超时",
|
|
65
|
+
"runtime.unreadable": "当前页面暂不可读,请重新观察后选择导航",
|
|
66
|
+
"runtime.uncertainOutcome": "操作结果暂无法确认,已停止以避免重复执行",
|
|
67
|
+
"runtime.operationFailed": "操作未完成,请查看执行记录后重试",
|
|
68
|
+
"runtime.defaultTask": "Koko 任务",
|
|
69
|
+
"runtime.recoveryPhrase": "请亲自在 App 内完成助记词备份或验证;助记词及候选词不会发送至云端",
|
|
70
|
+
"runtime.privateKey": "请亲自在 App 内完成私钥操作;该页面不会发送至云端",
|
|
71
|
+
"runtime.password": "请在 App 内输入密码,进入下一页后将自动继续;也可点「检查状态」",
|
|
72
|
+
"runtime.pin": "请在 App 内输入 PIN 或密码,完成后继续",
|
|
73
|
+
"runtime.otp": "请在 App 内输入验证码,完成后继续",
|
|
74
|
+
"runtime.authorization": "请在 App 或系统中完成授权登录或连接,完成后继续",
|
|
75
|
+
"runtime.biometric": "请完成面容或指纹验证,完成后继续",
|
|
76
|
+
"runtime.permission": "请在系统弹窗中选择是否授权,完成后继续",
|
|
77
|
+
"runtime.consent": "请在 App 内确认风险或条款后继续",
|
|
78
|
+
"runtime.sensitiveStep": "请在 App 内完成此敏感步骤,完成后继续",
|
|
79
|
+
"panel.close": "关闭",
|
|
80
|
+
"panel.collapseA11y": "收起{name}任务面板",
|
|
81
|
+
"panel.closeA11y": "关闭{name}任务面板",
|
|
82
|
+
"panel.tasks": "任务",
|
|
83
|
+
"panel.emptyTasks": "暂无任务",
|
|
84
|
+
"panel.session": "会话 · {title}",
|
|
85
|
+
"panel.stepOne": "{count}步",
|
|
86
|
+
"panel.stepMany": "{count}步",
|
|
87
|
+
"composer.incomplete": "未完成:{summary}",
|
|
88
|
+
"composer.stopped": "已停止",
|
|
89
|
+
"composer.stop": "停止",
|
|
90
|
+
"runtime.localeChanged": "宿主语言已更改;上一次规划尚未执行,请按当前语言重新观察并规划"
|
|
91
|
+
};
|
|
92
|
+
export const runtimeEn = {
|
|
93
|
+
"runtime.element": "element",
|
|
94
|
+
"runtime.target": "target",
|
|
95
|
+
"runtime.field": "text field",
|
|
96
|
+
"runtime.scan": "Scanning screen…",
|
|
97
|
+
"runtime.scanned": "Screen scanned",
|
|
98
|
+
"runtime.find": "Finding “{label}”",
|
|
99
|
+
"runtime.found": "Found “{label}”",
|
|
100
|
+
"runtime.notFound": "Could not find “{label}”",
|
|
101
|
+
"runtime.tap": "Tapping “{label}”",
|
|
102
|
+
"runtime.tapped": "Tapped “{label}”",
|
|
103
|
+
"runtime.confirmBlocked": "Waiting for confirmation of “{label}”",
|
|
104
|
+
"runtime.confirmationRequired": "User confirmation is required; no tap was performed",
|
|
105
|
+
"runtime.toggle": "Toggling “{label}”",
|
|
106
|
+
"runtime.toggled": "Toggled “{label}”",
|
|
107
|
+
"runtime.adjust": "Adjusting “{label}”",
|
|
108
|
+
"runtime.adjusted": "Adjusted “{label}”",
|
|
109
|
+
"runtime.confirmed": "Confirmed “{label}”",
|
|
110
|
+
"runtime.confirm": "Waiting for confirmation of “{label}”",
|
|
111
|
+
"runtime.userConfirmed": "You confirmed “{label}”",
|
|
112
|
+
"runtime.userDeclined": "You declined “{label}”",
|
|
113
|
+
"runtime.privateStep": "Complete the private step in the app; the assistant cannot enter or select secrets",
|
|
114
|
+
"runtime.hostTargetMissing": "No verified entry for this host action is visible",
|
|
115
|
+
"runtime.positionChanged": "The target moved. Observing again; no tap was performed",
|
|
116
|
+
"runtime.contentChanged": "The target content changed. Observing again; no tap was performed",
|
|
117
|
+
"runtime.reveal": "The target is not visible yet. Scrolling to find it…",
|
|
118
|
+
"runtime.swipe": "Scrolling…",
|
|
119
|
+
"runtime.swiped": "Scrolled",
|
|
120
|
+
"runtime.zoomIn": "Zooming in…",
|
|
121
|
+
"runtime.zoomOut": "Zooming out…",
|
|
122
|
+
"runtime.zoomedIn": "Zoomed in",
|
|
123
|
+
"runtime.zoomedOut": "Zoomed out",
|
|
124
|
+
"runtime.input": "Typing “{text}”",
|
|
125
|
+
"runtime.typed": "Typed “{text}”",
|
|
126
|
+
"runtime.missingTarget": "No visible target was found. Choose visible navigation or scroll within the relevant list; no tap was performed",
|
|
127
|
+
"runtime.ocrUnobserved": "This OCR reference was not observed locally or has expired; no tap was performed",
|
|
128
|
+
"runtime.ocrMissing": "The OCR target is no longer visible; no tap was performed",
|
|
129
|
+
"runtime.nodeUnavailable": "The target is no longer visible or enabled; no tap was performed",
|
|
130
|
+
"runtime.nodeChanged": "The target changed or was not observed in this planning step. Plan again; no tap was performed",
|
|
131
|
+
"runtime.hostNotVisible": "The host action is not visible: {id}",
|
|
132
|
+
"runtime.invalidTarget": "A tap requires a selector, node, or valid coordinates",
|
|
133
|
+
"runtime.invalidPoint": "Invalid tap coordinates: ({x}, {y})",
|
|
134
|
+
"runtime.outsideWindow": "The target is outside the current window; no tap was performed",
|
|
135
|
+
"runtime.cancelled": "Cancelled",
|
|
136
|
+
"runtime.confirmationCancelled": "Cancelled: the sensitive action was not confirmed",
|
|
137
|
+
"runtime.alreadyRunning": "A task is already running; wait for it to settle",
|
|
138
|
+
"runtime.missingToken": "The app access token is missing. Check the SDK gateway configuration",
|
|
139
|
+
"runtime.gateTimeout": "Timed out waiting for the private step in the app",
|
|
140
|
+
"runtime.progressBudget": "The task is progressing. Extending the step budget to {steps}",
|
|
141
|
+
"runtime.waitForApp": "Complete this in the app: {request}",
|
|
142
|
+
"runtime.inputInApp": "Complete the input in the app",
|
|
143
|
+
"runtime.userContinued": "You continued in the app",
|
|
144
|
+
"runtime.userTimeout": "Timed out waiting for your action; completion was not confirmed",
|
|
145
|
+
"runtime.loopStopped": "Stopped after detecting repeated actions without progress",
|
|
146
|
+
"runtime.stepLimit": "Reached the safe step limit",
|
|
147
|
+
"runtime.scrollNoop": "scroll_noop: Content did not move. The edge was reached or this direction cannot scroll. Change direction or choose visible navigation.",
|
|
148
|
+
"runtime.scrollChanged": "swiped: Content moved; scrolling worked",
|
|
149
|
+
"runtime.gatewayRetry": "The gateway is temporarily unavailable. Retrying ({attempt}/{total})…",
|
|
150
|
+
"runtime.gateConfirmed": "Private input completion confirmed",
|
|
151
|
+
"runtime.gateCompleted": "Private input completed",
|
|
152
|
+
"runtime.gateInputTimeout": "Timed out waiting for private input",
|
|
153
|
+
"runtime.unreadable": "The current screen is unreadable. Observe again before choosing navigation",
|
|
154
|
+
"runtime.uncertainOutcome": "The action result could not be confirmed. Stopped to avoid repeating it",
|
|
155
|
+
"runtime.operationFailed": "The action did not complete. Check the activity and try again",
|
|
156
|
+
"runtime.defaultTask": "Koko task",
|
|
157
|
+
"runtime.recoveryPhrase": "Back up or verify the recovery phrase yourself in the app. The phrase and candidate words stay on this device",
|
|
158
|
+
"runtime.privateKey": "Complete the private key step yourself in the app. This screen stays on this device",
|
|
159
|
+
"runtime.password": "Enter your password in the app. The assistant resumes on the next screen; you can also select “Check status”",
|
|
160
|
+
"runtime.pin": "Enter your PIN or password in the app to continue",
|
|
161
|
+
"runtime.otp": "Enter the verification code in the app to continue",
|
|
162
|
+
"runtime.authorization": "Complete sign-in or connection authorization in the app or system to continue",
|
|
163
|
+
"runtime.biometric": "Complete Face ID or fingerprint verification to continue",
|
|
164
|
+
"runtime.permission": "Choose whether to grant permission in the system dialog to continue",
|
|
165
|
+
"runtime.consent": "Review and confirm the risks or terms in the app to continue",
|
|
166
|
+
"runtime.sensitiveStep": "Complete this sensitive step in the app to continue",
|
|
167
|
+
"panel.close": "Close",
|
|
168
|
+
"panel.collapseA11y": "Collapse {name} task panel",
|
|
169
|
+
"panel.closeA11y": "Close {name} task panel",
|
|
170
|
+
"panel.tasks": "Tasks",
|
|
171
|
+
"panel.emptyTasks": "No tasks yet",
|
|
172
|
+
"panel.session": "Activity · {title}",
|
|
173
|
+
"panel.stepOne": "{count} step",
|
|
174
|
+
"panel.stepMany": "{count} steps",
|
|
175
|
+
"composer.incomplete": "Not completed: {summary}",
|
|
176
|
+
"composer.stopped": "Stopped",
|
|
177
|
+
"composer.stop": "Stop",
|
|
178
|
+
"runtime.localeChanged": "The host language changed before execution. Observe and plan again in the current language."
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=runtimeMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["runtimeZh","runtimeEn"],"sourceRoot":"../../../src","sources":["i18n/runtimeMessages.ts"],"mappings":"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","ignoreList":[]}
|