@riddledc/riddle-proof 0.7.207 → 0.7.209
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/dist/cli.cjs +90 -2
- package/dist/cli.js +90 -2
- package/package.json +1 -1
package/dist/cli.cjs
CHANGED
|
@@ -16791,6 +16791,12 @@ function profileSetupScreenshotCount(viewports) {
|
|
|
16791
16791
|
function profileSetupReceiptTotal(viewports, key) {
|
|
16792
16792
|
return viewports.reduce((sum, viewport) => sum + setupReceiptArray(viewport, key).filter((receipt) => receipt.ok !== false).length, 0);
|
|
16793
16793
|
}
|
|
16794
|
+
function profileSetupActionCount(viewports, action) {
|
|
16795
|
+
return viewports.reduce((sum, viewport) => {
|
|
16796
|
+
const actionCounts = cliRecord(viewport.action_counts);
|
|
16797
|
+
return sum + (cliFiniteNumber(actionCounts?.[action]) || 0);
|
|
16798
|
+
}, 0);
|
|
16799
|
+
}
|
|
16794
16800
|
function profileSetupFailureCount(viewports) {
|
|
16795
16801
|
return viewports.reduce((sum, viewport) => {
|
|
16796
16802
|
const failed = Array.isArray(viewport.failed) ? viewport.failed : [];
|
|
@@ -17172,6 +17178,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
17172
17178
|
...setupActionValueReceipts
|
|
17173
17179
|
].filter((item) => item.ok !== false);
|
|
17174
17180
|
const clickCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.clicked_total) || 0), 0) + profileSetupReceiptTotal(setupViewports, "click") + profileSetupReceiptTotal(setupViewports, "click_count");
|
|
17181
|
+
const clickSequenceCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.click_sequence_total) || 0), 0);
|
|
17175
17182
|
const clickFallbackTapKeys = /* @__PURE__ */ new Set();
|
|
17176
17183
|
[
|
|
17177
17184
|
...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "clicked")),
|
|
@@ -17191,7 +17198,19 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
17191
17198
|
const visibleCleanupActionCount = profileVisibleCleanupActionCount(setupViewports);
|
|
17192
17199
|
const setupFailureCount = profileSetupFailureCount(setupViewports);
|
|
17193
17200
|
const setupObstructionCount = profileSetupObstructionCount(setupViewports);
|
|
17194
|
-
const
|
|
17201
|
+
const keyboardReceipts = setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "keyboard")).filter((item) => item.ok !== false);
|
|
17202
|
+
const keyboardReceiptDispatchCount = keyboardReceipts.length;
|
|
17203
|
+
const keyboardActionDispatchCount = ["press", "key_down", "key_up", "keyboard_sequence"].reduce((sum, action) => sum + profileSetupActionCount(setupViewports, action), 0);
|
|
17204
|
+
const keyboardDispatchCount = keyboardReceiptDispatchCount > 0 ? keyboardReceiptDispatchCount : keyboardActionDispatchCount;
|
|
17205
|
+
const keyboardKeyMatches = (item, expected) => {
|
|
17206
|
+
const key = (cliString(item.key) || cliString(item.code) || "").toLowerCase();
|
|
17207
|
+
return key === expected || key.includes(expected);
|
|
17208
|
+
};
|
|
17209
|
+
const hasKeyboardKeyDownReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_down") || profileSetupActionCount(setupViewports, "key_down") > 0;
|
|
17210
|
+
const hasKeyboardKeyUpReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_up") || profileSetupActionCount(setupViewports, "key_up") > 0;
|
|
17211
|
+
const hasShiftKeyDownReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_down" && keyboardKeyMatches(item, "shift"));
|
|
17212
|
+
const hasShiftKeyUpReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_up" && keyboardKeyMatches(item, "shift"));
|
|
17213
|
+
const inputDispatchCount = profileSetupReceiptTotal(setupViewports, "drag") + profileSetupReceiptTotal(setupViewports, "tap") + tapUntilCount + clickCount + clickSequenceCount + profileSetupReceiptTotal(setupViewports, "press") + profileSetupReceiptTotal(setupViewports, "keyboard_sequence") + keyboardDispatchCount;
|
|
17195
17214
|
const canvasReceipts = setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "canvas_signature"));
|
|
17196
17215
|
const hasCanvasChange = canvasReceipts.some((item) => item.ok !== false && item.changed === true);
|
|
17197
17216
|
const canvasSignatureHashes = canvasReceipts.filter((item) => item.ok !== false).map((item) => cliString(item.hash)).filter(Boolean);
|
|
@@ -17222,7 +17241,54 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
17222
17241
|
const hasSetupReceipts = setupResultCount > 0 || Boolean(setupSummary);
|
|
17223
17242
|
const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
|
|
17224
17243
|
const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
|
|
17225
|
-
const
|
|
17244
|
+
const measuredStateMetricNames = [
|
|
17245
|
+
"delta",
|
|
17246
|
+
"stateDelta",
|
|
17247
|
+
"positionDelta",
|
|
17248
|
+
"movementDelta",
|
|
17249
|
+
"speedDelta",
|
|
17250
|
+
"velocityDelta",
|
|
17251
|
+
"distanceDelta",
|
|
17252
|
+
"distanceGain",
|
|
17253
|
+
"scoreDelta",
|
|
17254
|
+
"scoreGain",
|
|
17255
|
+
"energyDelta",
|
|
17256
|
+
"energyDrop",
|
|
17257
|
+
"energyRecovered",
|
|
17258
|
+
"progressDelta",
|
|
17259
|
+
"progressGain"
|
|
17260
|
+
];
|
|
17261
|
+
const hasMeasuredStateMetric = valueReceipts.some((item) => measuredStateMetricNames.some((name) => {
|
|
17262
|
+
const value = cliFiniteNumber(setupReturnSummaryValue(item, [name]));
|
|
17263
|
+
return value !== void 0 && Math.abs(value) > 0;
|
|
17264
|
+
}));
|
|
17265
|
+
const measuredAbsoluteStateMetricNames = [
|
|
17266
|
+
"coins",
|
|
17267
|
+
"totalCoins",
|
|
17268
|
+
"totalEarned",
|
|
17269
|
+
"totalClicks",
|
|
17270
|
+
"saveCoins",
|
|
17271
|
+
"saveTotalCoins",
|
|
17272
|
+
"saveTotalClicks",
|
|
17273
|
+
"perClick",
|
|
17274
|
+
"perSecond",
|
|
17275
|
+
"measuredCps",
|
|
17276
|
+
"clickPowerLevel",
|
|
17277
|
+
"autoClickerLevel",
|
|
17278
|
+
"level",
|
|
17279
|
+
"score",
|
|
17280
|
+
"count",
|
|
17281
|
+
"itemCount",
|
|
17282
|
+
"progress"
|
|
17283
|
+
];
|
|
17284
|
+
const hasMeasuredAbsoluteStateChange = measuredAbsoluteStateMetricNames.some((name) => {
|
|
17285
|
+
const values = valueReceipts.map((item) => cliFiniteNumber(setupReturnSummaryValue(item, [name]))).filter((value) => value !== void 0 && Number.isFinite(value));
|
|
17286
|
+
if (values.length < 2) return false;
|
|
17287
|
+
return Math.max(...values) > Math.min(...values);
|
|
17288
|
+
});
|
|
17289
|
+
const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0) || hasMeasuredStateMetric || hasMeasuredAbsoluteStateChange;
|
|
17290
|
+
const hasStorageStabilityReceipt = valueReceipts.some((item) => setupReturnSummaryValue(item, ["storageStable", "storage_stable", "saveStable", "save_stable", "persistenceStable", "persistence_stable"]) === true);
|
|
17291
|
+
const hasPersistedReturnStateReceipt = valueReceipts.some((item) => setupReturnSummaryValue(item, ["persistedFromHome", "persisted_from_home", "persistenceRestored", "persistence_restored", "restoredFromStorage", "restored_from_storage"]) === true || setupReturnSummaryValue(item, ["persisted", "restored", "reloaded"]) === true && (setupReturnSummaryValue(item, ["saveCoins", "saveTotalCoins", "saveTotalClicks", "saveTotal", "level", "coins"]) !== void 0 || cliString(item.return_stored_to)?.toLowerCase().includes("return")));
|
|
17226
17292
|
const hasMovingPlayabilityReceipt = valueReceipts.some((item) => {
|
|
17227
17293
|
const started = setupReturnSummaryValue(item, ["started", "runStarted", "playStarted"]) === true;
|
|
17228
17294
|
const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
|
|
@@ -17373,6 +17439,20 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
17373
17439
|
"route continuation receipt missing"
|
|
17374
17440
|
);
|
|
17375
17441
|
}
|
|
17442
|
+
if (text.includes("storage-stability") || text.includes("storage stability") || text.includes("storage-stable") || text.includes("storage stable") || (text.includes("storage") || text.includes("save data")) && text.includes("stable") || text.includes("passive income") && text.includes("unmounted")) {
|
|
17443
|
+
return profileReceiptSignalStatus(
|
|
17444
|
+
hasStorageStabilityReceipt,
|
|
17445
|
+
"storage-stability receipt present",
|
|
17446
|
+
"storage-stability receipt missing"
|
|
17447
|
+
);
|
|
17448
|
+
}
|
|
17449
|
+
if (text.includes("persisted return-state") || text.includes("persisted return state") || text.includes("return-state") || text.includes("return state") || (text.includes("persisted") || text.includes("persistence")) && (text.includes("return") || text.includes("reload") || text.includes("restored"))) {
|
|
17450
|
+
return profileReceiptSignalStatus(
|
|
17451
|
+
hasPersistedReturnStateReceipt,
|
|
17452
|
+
"persisted return-state receipt present",
|
|
17453
|
+
"persisted return-state receipt missing"
|
|
17454
|
+
);
|
|
17455
|
+
}
|
|
17376
17456
|
if (text.includes("cleanup") && text.includes("action") && (text.includes("visible ui") || text.includes("visible"))) {
|
|
17377
17457
|
return profileReceiptSignalStatus(
|
|
17378
17458
|
visibleCleanupActionCount > 0,
|
|
@@ -17468,6 +17548,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
17468
17548
|
);
|
|
17469
17549
|
}
|
|
17470
17550
|
if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
|
|
17551
|
+
if (text.includes("key_down") || text.includes("key down") || text.includes("key-up") || text.includes("key_up")) {
|
|
17552
|
+
const hasSpecificKeyboardDispatch = text.includes("shift") ? hasShiftKeyDownReceipt && hasShiftKeyUpReceipt : hasKeyboardKeyDownReceipt && hasKeyboardKeyUpReceipt;
|
|
17553
|
+
return profileReceiptSignalStatus(
|
|
17554
|
+
hasSpecificKeyboardDispatch,
|
|
17555
|
+
"keyboard key_down/key_up dispatch evidence present",
|
|
17556
|
+
"keyboard key_down/key_up dispatch evidence missing"
|
|
17557
|
+
);
|
|
17558
|
+
}
|
|
17471
17559
|
return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
|
|
17472
17560
|
}
|
|
17473
17561
|
if (text.includes("offline audio") || text.includes("audio") && text.includes("metric")) {
|
package/dist/cli.js
CHANGED
|
@@ -616,6 +616,12 @@ function profileSetupScreenshotCount(viewports) {
|
|
|
616
616
|
function profileSetupReceiptTotal(viewports, key) {
|
|
617
617
|
return viewports.reduce((sum, viewport) => sum + setupReceiptArray(viewport, key).filter((receipt) => receipt.ok !== false).length, 0);
|
|
618
618
|
}
|
|
619
|
+
function profileSetupActionCount(viewports, action) {
|
|
620
|
+
return viewports.reduce((sum, viewport) => {
|
|
621
|
+
const actionCounts = cliRecord(viewport.action_counts);
|
|
622
|
+
return sum + (cliFiniteNumber(actionCounts?.[action]) || 0);
|
|
623
|
+
}, 0);
|
|
624
|
+
}
|
|
619
625
|
function profileSetupFailureCount(viewports) {
|
|
620
626
|
return viewports.reduce((sum, viewport) => {
|
|
621
627
|
const failed = Array.isArray(viewport.failed) ? viewport.failed : [];
|
|
@@ -997,6 +1003,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
997
1003
|
...setupActionValueReceipts
|
|
998
1004
|
].filter((item) => item.ok !== false);
|
|
999
1005
|
const clickCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.clicked_total) || 0), 0) + profileSetupReceiptTotal(setupViewports, "click") + profileSetupReceiptTotal(setupViewports, "click_count");
|
|
1006
|
+
const clickSequenceCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.click_sequence_total) || 0), 0);
|
|
1000
1007
|
const clickFallbackTapKeys = /* @__PURE__ */ new Set();
|
|
1001
1008
|
[
|
|
1002
1009
|
...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "clicked")),
|
|
@@ -1016,7 +1023,19 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
1016
1023
|
const visibleCleanupActionCount = profileVisibleCleanupActionCount(setupViewports);
|
|
1017
1024
|
const setupFailureCount = profileSetupFailureCount(setupViewports);
|
|
1018
1025
|
const setupObstructionCount = profileSetupObstructionCount(setupViewports);
|
|
1019
|
-
const
|
|
1026
|
+
const keyboardReceipts = setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "keyboard")).filter((item) => item.ok !== false);
|
|
1027
|
+
const keyboardReceiptDispatchCount = keyboardReceipts.length;
|
|
1028
|
+
const keyboardActionDispatchCount = ["press", "key_down", "key_up", "keyboard_sequence"].reduce((sum, action) => sum + profileSetupActionCount(setupViewports, action), 0);
|
|
1029
|
+
const keyboardDispatchCount = keyboardReceiptDispatchCount > 0 ? keyboardReceiptDispatchCount : keyboardActionDispatchCount;
|
|
1030
|
+
const keyboardKeyMatches = (item, expected) => {
|
|
1031
|
+
const key = (cliString(item.key) || cliString(item.code) || "").toLowerCase();
|
|
1032
|
+
return key === expected || key.includes(expected);
|
|
1033
|
+
};
|
|
1034
|
+
const hasKeyboardKeyDownReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_down") || profileSetupActionCount(setupViewports, "key_down") > 0;
|
|
1035
|
+
const hasKeyboardKeyUpReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_up") || profileSetupActionCount(setupViewports, "key_up") > 0;
|
|
1036
|
+
const hasShiftKeyDownReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_down" && keyboardKeyMatches(item, "shift"));
|
|
1037
|
+
const hasShiftKeyUpReceipt = keyboardReceipts.some((item) => cliString(item.action) === "key_up" && keyboardKeyMatches(item, "shift"));
|
|
1038
|
+
const inputDispatchCount = profileSetupReceiptTotal(setupViewports, "drag") + profileSetupReceiptTotal(setupViewports, "tap") + tapUntilCount + clickCount + clickSequenceCount + profileSetupReceiptTotal(setupViewports, "press") + profileSetupReceiptTotal(setupViewports, "keyboard_sequence") + keyboardDispatchCount;
|
|
1020
1039
|
const canvasReceipts = setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "canvas_signature"));
|
|
1021
1040
|
const hasCanvasChange = canvasReceipts.some((item) => item.ok !== false && item.changed === true);
|
|
1022
1041
|
const canvasSignatureHashes = canvasReceipts.filter((item) => item.ok !== false).map((item) => cliString(item.hash)).filter(Boolean);
|
|
@@ -1047,7 +1066,54 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
1047
1066
|
const hasSetupReceipts = setupResultCount > 0 || Boolean(setupSummary);
|
|
1048
1067
|
const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
|
|
1049
1068
|
const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
|
|
1050
|
-
const
|
|
1069
|
+
const measuredStateMetricNames = [
|
|
1070
|
+
"delta",
|
|
1071
|
+
"stateDelta",
|
|
1072
|
+
"positionDelta",
|
|
1073
|
+
"movementDelta",
|
|
1074
|
+
"speedDelta",
|
|
1075
|
+
"velocityDelta",
|
|
1076
|
+
"distanceDelta",
|
|
1077
|
+
"distanceGain",
|
|
1078
|
+
"scoreDelta",
|
|
1079
|
+
"scoreGain",
|
|
1080
|
+
"energyDelta",
|
|
1081
|
+
"energyDrop",
|
|
1082
|
+
"energyRecovered",
|
|
1083
|
+
"progressDelta",
|
|
1084
|
+
"progressGain"
|
|
1085
|
+
];
|
|
1086
|
+
const hasMeasuredStateMetric = valueReceipts.some((item) => measuredStateMetricNames.some((name) => {
|
|
1087
|
+
const value = cliFiniteNumber(setupReturnSummaryValue(item, [name]));
|
|
1088
|
+
return value !== void 0 && Math.abs(value) > 0;
|
|
1089
|
+
}));
|
|
1090
|
+
const measuredAbsoluteStateMetricNames = [
|
|
1091
|
+
"coins",
|
|
1092
|
+
"totalCoins",
|
|
1093
|
+
"totalEarned",
|
|
1094
|
+
"totalClicks",
|
|
1095
|
+
"saveCoins",
|
|
1096
|
+
"saveTotalCoins",
|
|
1097
|
+
"saveTotalClicks",
|
|
1098
|
+
"perClick",
|
|
1099
|
+
"perSecond",
|
|
1100
|
+
"measuredCps",
|
|
1101
|
+
"clickPowerLevel",
|
|
1102
|
+
"autoClickerLevel",
|
|
1103
|
+
"level",
|
|
1104
|
+
"score",
|
|
1105
|
+
"count",
|
|
1106
|
+
"itemCount",
|
|
1107
|
+
"progress"
|
|
1108
|
+
];
|
|
1109
|
+
const hasMeasuredAbsoluteStateChange = measuredAbsoluteStateMetricNames.some((name) => {
|
|
1110
|
+
const values = valueReceipts.map((item) => cliFiniteNumber(setupReturnSummaryValue(item, [name]))).filter((value) => value !== void 0 && Number.isFinite(value));
|
|
1111
|
+
if (values.length < 2) return false;
|
|
1112
|
+
return Math.max(...values) > Math.min(...values);
|
|
1113
|
+
});
|
|
1114
|
+
const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0) || hasMeasuredStateMetric || hasMeasuredAbsoluteStateChange;
|
|
1115
|
+
const hasStorageStabilityReceipt = valueReceipts.some((item) => setupReturnSummaryValue(item, ["storageStable", "storage_stable", "saveStable", "save_stable", "persistenceStable", "persistence_stable"]) === true);
|
|
1116
|
+
const hasPersistedReturnStateReceipt = valueReceipts.some((item) => setupReturnSummaryValue(item, ["persistedFromHome", "persisted_from_home", "persistenceRestored", "persistence_restored", "restoredFromStorage", "restored_from_storage"]) === true || setupReturnSummaryValue(item, ["persisted", "restored", "reloaded"]) === true && (setupReturnSummaryValue(item, ["saveCoins", "saveTotalCoins", "saveTotalClicks", "saveTotal", "level", "coins"]) !== void 0 || cliString(item.return_stored_to)?.toLowerCase().includes("return")));
|
|
1051
1117
|
const hasMovingPlayabilityReceipt = valueReceipts.some((item) => {
|
|
1052
1118
|
const started = setupReturnSummaryValue(item, ["started", "runStarted", "playStarted"]) === true;
|
|
1053
1119
|
const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
|
|
@@ -1198,6 +1264,20 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
1198
1264
|
"route continuation receipt missing"
|
|
1199
1265
|
);
|
|
1200
1266
|
}
|
|
1267
|
+
if (text.includes("storage-stability") || text.includes("storage stability") || text.includes("storage-stable") || text.includes("storage stable") || (text.includes("storage") || text.includes("save data")) && text.includes("stable") || text.includes("passive income") && text.includes("unmounted")) {
|
|
1268
|
+
return profileReceiptSignalStatus(
|
|
1269
|
+
hasStorageStabilityReceipt,
|
|
1270
|
+
"storage-stability receipt present",
|
|
1271
|
+
"storage-stability receipt missing"
|
|
1272
|
+
);
|
|
1273
|
+
}
|
|
1274
|
+
if (text.includes("persisted return-state") || text.includes("persisted return state") || text.includes("return-state") || text.includes("return state") || (text.includes("persisted") || text.includes("persistence")) && (text.includes("return") || text.includes("reload") || text.includes("restored"))) {
|
|
1275
|
+
return profileReceiptSignalStatus(
|
|
1276
|
+
hasPersistedReturnStateReceipt,
|
|
1277
|
+
"persisted return-state receipt present",
|
|
1278
|
+
"persisted return-state receipt missing"
|
|
1279
|
+
);
|
|
1280
|
+
}
|
|
1201
1281
|
if (text.includes("cleanup") && text.includes("action") && (text.includes("visible ui") || text.includes("visible"))) {
|
|
1202
1282
|
return profileReceiptSignalStatus(
|
|
1203
1283
|
visibleCleanupActionCount > 0,
|
|
@@ -1293,6 +1373,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
1293
1373
|
);
|
|
1294
1374
|
}
|
|
1295
1375
|
if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
|
|
1376
|
+
if (text.includes("key_down") || text.includes("key down") || text.includes("key-up") || text.includes("key_up")) {
|
|
1377
|
+
const hasSpecificKeyboardDispatch = text.includes("shift") ? hasShiftKeyDownReceipt && hasShiftKeyUpReceipt : hasKeyboardKeyDownReceipt && hasKeyboardKeyUpReceipt;
|
|
1378
|
+
return profileReceiptSignalStatus(
|
|
1379
|
+
hasSpecificKeyboardDispatch,
|
|
1380
|
+
"keyboard key_down/key_up dispatch evidence present",
|
|
1381
|
+
"keyboard key_down/key_up dispatch evidence missing"
|
|
1382
|
+
);
|
|
1383
|
+
}
|
|
1296
1384
|
return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
|
|
1297
1385
|
}
|
|
1298
1386
|
if (text.includes("offline audio") || text.includes("audio") && text.includes("metric")) {
|