@kaeawc/auto-mobile 0.0.58 → 0.0.59
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/README.md +3 -3
- package/README.md.backup +3 -3
- package/dist/schemas/tool-definitions.json +165 -1
- package/dist/src/db/migrations/2026_08_17_000_emulator_loss_incidents.ts +39 -0
- package/dist/src/index.js +364 -366
- package/dist/src/index.js.map +1 -1
- package/package.json +5 -5
- package/schemas/tool-definitions.json +165 -1
package/README.md
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|

|
|
9
9
|

|
|
10
10
|
|
|
11
|
-

|
|
12
|
+

|
|
13
|
+

|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
package/README.md.backup
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|

|
|
9
9
|

|
|
10
10
|
|
|
11
|
-

|
|
12
|
+

|
|
13
|
+

|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
|
@@ -1648,6 +1648,10 @@
|
|
|
1648
1648
|
"ios"
|
|
1649
1649
|
]
|
|
1650
1650
|
},
|
|
1651
|
+
"appId": {
|
|
1652
|
+
"description": "Scope the graph to this app id instead of the device's current foreground app",
|
|
1653
|
+
"type": "string"
|
|
1654
|
+
},
|
|
1651
1655
|
"sessionUuid": {
|
|
1652
1656
|
"description": "Session",
|
|
1653
1657
|
"type": "string"
|
|
@@ -2788,6 +2792,9 @@
|
|
|
2788
2792
|
"android",
|
|
2789
2793
|
"ios"
|
|
2790
2794
|
]
|
|
2795
|
+
},
|
|
2796
|
+
"transportId": {
|
|
2797
|
+
"type": "string"
|
|
2791
2798
|
}
|
|
2792
2799
|
},
|
|
2793
2800
|
"required": [
|
|
@@ -6243,6 +6250,14 @@
|
|
|
6243
6250
|
"minimum": -9007199254740991,
|
|
6244
6251
|
"maximum": 9007199254740991
|
|
6245
6252
|
},
|
|
6253
|
+
"ageMs": {
|
|
6254
|
+
"type": "integer",
|
|
6255
|
+
"minimum": -9007199254740991,
|
|
6256
|
+
"maximum": 9007199254740991
|
|
6257
|
+
},
|
|
6258
|
+
"verified": {
|
|
6259
|
+
"type": "boolean"
|
|
6260
|
+
},
|
|
6246
6261
|
"isFresh": {
|
|
6247
6262
|
"type": "boolean"
|
|
6248
6263
|
},
|
|
@@ -6474,6 +6489,37 @@
|
|
|
6474
6489
|
}
|
|
6475
6490
|
]
|
|
6476
6491
|
},
|
|
6492
|
+
"frameTimeMs": {
|
|
6493
|
+
"anyOf": [
|
|
6494
|
+
{
|
|
6495
|
+
"type": "object",
|
|
6496
|
+
"properties": {
|
|
6497
|
+
"p50": {
|
|
6498
|
+
"type": "number"
|
|
6499
|
+
},
|
|
6500
|
+
"p90": {
|
|
6501
|
+
"type": "number"
|
|
6502
|
+
},
|
|
6503
|
+
"p95": {
|
|
6504
|
+
"type": "number"
|
|
6505
|
+
},
|
|
6506
|
+
"p99": {
|
|
6507
|
+
"type": "number"
|
|
6508
|
+
}
|
|
6509
|
+
},
|
|
6510
|
+
"required": [
|
|
6511
|
+
"p50",
|
|
6512
|
+
"p90",
|
|
6513
|
+
"p95",
|
|
6514
|
+
"p99"
|
|
6515
|
+
],
|
|
6516
|
+
"additionalProperties": false
|
|
6517
|
+
},
|
|
6518
|
+
{
|
|
6519
|
+
"type": "null"
|
|
6520
|
+
}
|
|
6521
|
+
]
|
|
6522
|
+
},
|
|
6477
6523
|
"jank": {
|
|
6478
6524
|
"anyOf": [
|
|
6479
6525
|
{
|
|
@@ -6576,6 +6622,121 @@
|
|
|
6576
6622
|
"type": "null"
|
|
6577
6623
|
}
|
|
6578
6624
|
]
|
|
6625
|
+
},
|
|
6626
|
+
"memoryBreakdownMb": {
|
|
6627
|
+
"anyOf": [
|
|
6628
|
+
{
|
|
6629
|
+
"type": "object",
|
|
6630
|
+
"properties": {
|
|
6631
|
+
"javaHeap": {
|
|
6632
|
+
"anyOf": [
|
|
6633
|
+
{
|
|
6634
|
+
"type": "number"
|
|
6635
|
+
},
|
|
6636
|
+
{
|
|
6637
|
+
"type": "null"
|
|
6638
|
+
}
|
|
6639
|
+
]
|
|
6640
|
+
},
|
|
6641
|
+
"nativeHeap": {
|
|
6642
|
+
"anyOf": [
|
|
6643
|
+
{
|
|
6644
|
+
"type": "number"
|
|
6645
|
+
},
|
|
6646
|
+
{
|
|
6647
|
+
"type": "null"
|
|
6648
|
+
}
|
|
6649
|
+
]
|
|
6650
|
+
},
|
|
6651
|
+
"code": {
|
|
6652
|
+
"anyOf": [
|
|
6653
|
+
{
|
|
6654
|
+
"type": "number"
|
|
6655
|
+
},
|
|
6656
|
+
{
|
|
6657
|
+
"type": "null"
|
|
6658
|
+
}
|
|
6659
|
+
]
|
|
6660
|
+
},
|
|
6661
|
+
"stack": {
|
|
6662
|
+
"anyOf": [
|
|
6663
|
+
{
|
|
6664
|
+
"type": "number"
|
|
6665
|
+
},
|
|
6666
|
+
{
|
|
6667
|
+
"type": "null"
|
|
6668
|
+
}
|
|
6669
|
+
]
|
|
6670
|
+
},
|
|
6671
|
+
"graphics": {
|
|
6672
|
+
"anyOf": [
|
|
6673
|
+
{
|
|
6674
|
+
"type": "number"
|
|
6675
|
+
},
|
|
6676
|
+
{
|
|
6677
|
+
"type": "null"
|
|
6678
|
+
}
|
|
6679
|
+
]
|
|
6680
|
+
},
|
|
6681
|
+
"privateOther": {
|
|
6682
|
+
"anyOf": [
|
|
6683
|
+
{
|
|
6684
|
+
"type": "number"
|
|
6685
|
+
},
|
|
6686
|
+
{
|
|
6687
|
+
"type": "null"
|
|
6688
|
+
}
|
|
6689
|
+
]
|
|
6690
|
+
},
|
|
6691
|
+
"system": {
|
|
6692
|
+
"anyOf": [
|
|
6693
|
+
{
|
|
6694
|
+
"type": "number"
|
|
6695
|
+
},
|
|
6696
|
+
{
|
|
6697
|
+
"type": "null"
|
|
6698
|
+
}
|
|
6699
|
+
]
|
|
6700
|
+
}
|
|
6701
|
+
},
|
|
6702
|
+
"required": [
|
|
6703
|
+
"javaHeap",
|
|
6704
|
+
"nativeHeap",
|
|
6705
|
+
"code",
|
|
6706
|
+
"stack",
|
|
6707
|
+
"graphics",
|
|
6708
|
+
"privateOther",
|
|
6709
|
+
"system"
|
|
6710
|
+
],
|
|
6711
|
+
"additionalProperties": false
|
|
6712
|
+
},
|
|
6713
|
+
{
|
|
6714
|
+
"type": "null"
|
|
6715
|
+
}
|
|
6716
|
+
]
|
|
6717
|
+
},
|
|
6718
|
+
"startup": {
|
|
6719
|
+
"anyOf": [
|
|
6720
|
+
{
|
|
6721
|
+
"type": "object",
|
|
6722
|
+
"properties": {
|
|
6723
|
+
"displayedMs": {
|
|
6724
|
+
"type": "number"
|
|
6725
|
+
},
|
|
6726
|
+
"ageMs": {
|
|
6727
|
+
"type": "number"
|
|
6728
|
+
}
|
|
6729
|
+
},
|
|
6730
|
+
"required": [
|
|
6731
|
+
"displayedMs",
|
|
6732
|
+
"ageMs"
|
|
6733
|
+
],
|
|
6734
|
+
"additionalProperties": false
|
|
6735
|
+
},
|
|
6736
|
+
{
|
|
6737
|
+
"type": "null"
|
|
6738
|
+
}
|
|
6739
|
+
]
|
|
6579
6740
|
}
|
|
6580
6741
|
},
|
|
6581
6742
|
"required": [
|
|
@@ -6583,10 +6744,13 @@
|
|
|
6583
6744
|
"sampleCount",
|
|
6584
6745
|
"oldestSampleAgeMs",
|
|
6585
6746
|
"fps",
|
|
6747
|
+
"frameTimeMs",
|
|
6586
6748
|
"jank",
|
|
6587
6749
|
"touchLatencyMs",
|
|
6588
6750
|
"cpu",
|
|
6589
|
-
"memoryMb"
|
|
6751
|
+
"memoryMb",
|
|
6752
|
+
"memoryBreakdownMb",
|
|
6753
|
+
"startup"
|
|
6590
6754
|
],
|
|
6591
6755
|
"additionalProperties": false
|
|
6592
6756
|
},
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type Kysely, sql } from "kysely";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Durable, bounded postmortem records for Android emulator loss. The JSON
|
|
5
|
+
* payload retains the evolving recovery attempts while the indexed columns make
|
|
6
|
+
* incident lookup and retention pruning cheap.
|
|
7
|
+
*/
|
|
8
|
+
export async function up(db: Kysely<unknown>): Promise<void> {
|
|
9
|
+
await db.schema
|
|
10
|
+
.createTable("emulator_loss_incidents")
|
|
11
|
+
.ifNotExists()
|
|
12
|
+
.addColumn("id", "integer", (col) => col.primaryKey().autoIncrement())
|
|
13
|
+
.addColumn("incident_id", "text", (col) => col.notNull().unique())
|
|
14
|
+
.addColumn("device_id", "text", (col) => col.notNull())
|
|
15
|
+
.addColumn("observed_at_ms", "integer", (col) => col.notNull())
|
|
16
|
+
.addColumn("updated_at_ms", "integer", (col) => col.notNull())
|
|
17
|
+
.addColumn("revision", "integer", (col) => col.notNull().defaultTo(0))
|
|
18
|
+
.addColumn("incident_json", "text", (col) => col.notNull())
|
|
19
|
+
.addColumn("created_at", "text", (col) => col.notNull().defaultTo(sql`(datetime('now'))`))
|
|
20
|
+
.execute();
|
|
21
|
+
|
|
22
|
+
await db.schema
|
|
23
|
+
.createIndex("idx_emulator_loss_incidents_observed")
|
|
24
|
+
.ifNotExists()
|
|
25
|
+
.on("emulator_loss_incidents")
|
|
26
|
+
.columns(["observed_at_ms", "id"])
|
|
27
|
+
.execute();
|
|
28
|
+
|
|
29
|
+
await db.schema
|
|
30
|
+
.createIndex("idx_emulator_loss_incidents_device")
|
|
31
|
+
.ifNotExists()
|
|
32
|
+
.on("emulator_loss_incidents")
|
|
33
|
+
.column("device_id")
|
|
34
|
+
.execute();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export async function down(db: Kysely<unknown>): Promise<void> {
|
|
38
|
+
await db.schema.dropTable("emulator_loss_incidents").execute();
|
|
39
|
+
}
|