stim 1.17.2 → 1.19.0
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 +50 -1
- package/dist/{activity-IRvJY_ru.mjs → activity-BSw0x84R.mjs} +4 -4
- package/dist/{agent-device-usage-output-BK41vnzN.mjs → agent-device-usage-output-Bjxu_VmX.mjs} +8 -8
- package/dist/{android-B9yaNKwa.mjs → android-BXc6BmEi.mjs} +658 -404
- package/dist/{android-B_YNZy61.mjs → android-BdQC6zs1.mjs} +9 -9
- package/dist/android-BvV1gGdN.mjs +4 -0
- package/dist/{android-DE4v59Mb.mjs → android-DE5g_5gv.mjs} +2 -2
- package/dist/{android-cas-ZFpjJBL_.mjs → android-cas-C87geAg-.mjs} +5 -5
- package/dist/android-cas-compiler.mjs +2 -2
- package/dist/api-DIf_s86s.mjs +150 -0
- package/dist/api-run.d.mts +1 -0
- package/dist/api-run.mjs +145 -0
- package/dist/api.d.mts +218 -0
- package/dist/api.mjs +2 -0
- package/dist/{app-install-VPkI5WEg.mjs → app-install-CFI4ptUL.mjs} +33 -13
- package/dist/{attempt-Bk2ouQVL.mjs → attempt-DW-mQqM7.mjs} +14 -4
- package/dist/{web-Dl0KSRHf.mjs → browser-web-CDhqQxhv.mjs} +138 -176
- package/dist/{budget-DfcgFdQB.mjs → budget-Dz-kyXLv.mjs} +1391 -58
- package/dist/build-facts-B87vo-Im.d.mts +142 -0
- package/dist/{cache-manifest-DnUHBJaU.mjs → cache-manifest-DiwKSyv9.mjs} +3 -3
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{chrome-BrcVWQyD.mjs → chrome-BTUOo8p2.mjs} +1 -1
- package/dist/cli-C9Zvgbdc.mjs +68 -0
- package/dist/cli.mjs +1 -1
- package/dist/{client-SvBdgObD.mjs → client-CuUo8Nvg.mjs} +381 -49
- package/dist/collector-run.d.mts +6 -0
- package/dist/collector-run.mjs +9 -9
- package/dist/{command-output-CDAIFD-8.mjs → command-output-Bt8ygHE7.mjs} +2 -2
- package/dist/{config-D0DbpZtM.mjs → config-DC5jEtd1.mjs} +9 -5
- package/dist/{created-devices-CpvzBL25.mjs → created-devices-D0s26Hx5.mjs} +2 -2
- package/dist/{dependency-state-CLcBHH2M.mjs → dependency-state-DKaS1OM9.mjs} +2 -2
- package/dist/{detached-entry-CiTEgMR1.mjs → detached-entry-pB_IPfV4.mjs} +1 -1
- package/dist/{dev-client-B-XC4uRH.mjs → dev-client-CDY_zAmD.mjs} +2 -2
- package/dist/{device-C8IOoJPv.mjs → device-BHw0WlHl.mjs} +8 -8
- package/dist/{device-capacity-ZC4XSZ4R.mjs → device-capacity-BoN1jQkO.mjs} +25 -14
- package/dist/device-host-worker.mjs +19 -19
- package/dist/{gradle-dJpre3Yn.mjs → device-ios-B2ruohE-.mjs} +661 -107
- package/dist/{device-lease-DpoS36_u.mjs → device-lease-Cu7PtQpZ.mjs} +9 -9
- package/dist/{device-lease-run-B8YltIH_.mjs → device-lease-run-D38SnZtt.mjs} +4 -4
- package/dist/{device-pool-3o7s5lo4.mjs → device-pool-CP4rAsHx.mjs} +3 -3
- package/dist/{device-remote-hFSkpfQu.mjs → device-remote-B5GiUifk.mjs} +15 -16
- package/dist/{doctor-CFv1fCrF.mjs → doctor-PRJH94v6.mjs} +61 -34
- package/dist/doctor-watchman-wZhyTdp4.mjs +259 -0
- package/dist/{error-diagnostics-C-NMnhrk.mjs → error-diagnostics--v5HGOU0.mjs} +11 -11
- package/dist/{exec-CaErVv7t.mjs → exec-i8GDPwq9.mjs} +93 -6
- package/dist/{gc-DEmkg3Xh.mjs → gc-CyHMcKcn.mjs} +25 -471
- package/dist/{guide-CSmhMTf8.mjs → guide-dRaQJJk9.mjs} +681 -507
- package/dist/{hosted-android-E1Heoqnv.mjs → hosted-android-Bs7fytj7.mjs} +3 -3
- package/dist/{hosted-client-Bp4knSwu.mjs → hosted-client-C5G4h_OJ.mjs} +2 -2
- package/dist/{hosted-ios-BnbeYOUD.mjs → hosted-ios-Bik035eL.mjs} +1 -1
- package/dist/{hosted-logs-OcgIBvCT.mjs → hosted-logs-CI9Az9a4.mjs} +9 -9
- package/dist/{hosted-macos-DcxKjtfH.mjs → hosted-macos-DABm3ScO.mjs} +5 -5
- package/dist/{hosted-native-1Ebbig4w.mjs → hosted-native-DbV2aUVw.mjs} +13 -9
- package/dist/{idle-shutdown-IGyNV8Cr.mjs → idle-shutdown-DYiMBn34.mjs} +7 -8
- package/dist/{ios-DSfnPfse.mjs → ios-BWbHFZVz.mjs} +19 -7
- package/dist/{ios-Cr1h5gnO.mjs → ios-DCrkgXEM.mjs} +1 -1
- package/dist/ios-DYUr9LGc.mjs +8 -0
- package/dist/ios-ITYno9rO.mjs +2241 -0
- package/dist/{ios-device-pAN4t54-.mjs → ios-device-CJ_ZOGky.mjs} +3 -3
- package/dist/{ios-device-Ee7sDXfp.mjs → ios-device-CrW8aMb5.mjs} +1 -1
- package/dist/{ios-state-8L3lgum6.mjs → ios-state-By0XuLTQ.mjs} +1 -1
- package/dist/{launch-verify-lTnWZikR.mjs → launch-verify-DCveSE6d.mjs} +5 -5
- package/dist/{logs-BAaS7gS2.mjs → logs-Bao1HOMy.mjs} +13 -13
- package/dist/{macos-BIRQS90f.mjs → macos-ciyBdTY5.mjs} +194 -132
- package/dist/macos-nIOATJmR.mjs +2 -0
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +349 -47
- package/dist/manifest-CX0d1IkZ.mjs +148 -0
- package/dist/{metro-g8NqiJp-.mjs → metro-DI2AjPF_.mjs} +196 -43
- package/dist/{metro-gateway-C-ijGI2F.mjs → metro-gateway-BxpJLIwh.mjs} +4 -4
- package/dist/{metro-store-CDDZHtPl.mjs → metro-store-BAHFcJm6.mjs} +16 -2
- package/dist/{build-plan-BDsSi09V.mjs → miss-reason-CjQCOKqq.mjs} +207 -249
- package/dist/{named-ports-C8m8EQs2.mjs → named-ports-B4iWH4E-.mjs} +70 -8
- package/dist/{native-runtime-BEK171xQ.mjs → native-runtime-BGxsbfny.mjs} +6 -6
- package/dist/{ndjson-PclOIwVY.mjs → ndjson-LGZAMsqa.mjs} +8 -4
- package/dist/offload-worker.d.mts +3 -45
- package/dist/offload-worker.mjs +11 -11
- package/dist/{ownership-DyRQru0q.mjs → ownership-EB0ySdGK.mjs} +3 -3
- package/dist/{page-QF_Ke10s.mjs → page-Bv9s2KwY.mjs} +1 -1
- package/dist/placement-log-Dxe34rJm.mjs +88 -0
- package/dist/plan-placement-BVY59qa8.mjs +290 -0
- package/dist/{ports-4nYqxPWC.mjs → ports-ByPc0_97.mjs} +3 -3
- package/dist/{prebuild-D7RUMkwN.mjs → prebuild-BKJ3wJI1.mjs} +5 -5
- package/dist/preview-BbSottmO.mjs +986 -0
- package/dist/{rolldown-runtime-BsOwBuO_.mjs → process-identity-Biv3arCO.mjs} +11 -1
- package/dist/project-B5eQ1USs.mjs +612 -0
- package/dist/{pull-request-pxnDCQzn.mjs → pull-request-IHNdMnG8.mjs} +1 -1
- package/dist/pull-requests.mjs +1 -1
- package/dist/react-native-ios-BMh2i25I.mjs +2 -0
- package/dist/react-native-ios-CSpIxexZ.mjs +2083 -0
- package/dist/{recordings-BNgsD1Tr.mjs → recordings-Bv8McZN4.mjs} +1 -1
- package/dist/{reload-DcRxj3qG.mjs → reload-rAPdqeRR.mjs} +14 -15
- package/dist/{remote-cache-Ci4DQYYj.mjs → remote-cache-N3hAEaAL.mjs} +5 -5
- package/dist/{run-CkE9y0nc.mjs → run-lAkle1-c.mjs} +5 -5
- package/dist/{server-bare-BkrSxSsZ.mjs → server-bare-CkIjnegq.mjs} +5 -6
- package/dist/server-expo-DGsdUGX2.mjs +2 -0
- package/dist/{server-expo-CHTyXD0G.mjs → server-expo-n3tUi3Em.mjs} +5 -6
- package/dist/{settings-SR9OmW9h.mjs → settings-2am7TSxp.mjs} +5 -5
- package/dist/{settings-Cfd-0r2d.mjs → settings-CxgngUZk.mjs} +116 -103
- package/dist/{settings-BBpMcDbD.mjs → settings-Djl-mpjX.mjs} +1 -1
- package/dist/settings.schema.json +198 -9
- package/dist/{simslim-BWNrc3M3.mjs → simslim-D9LkJxIO.mjs} +7 -7
- package/dist/{slot-launch-DmjBmpQV.mjs → slot-launch-HV_KtPIw.mjs} +6 -6
- package/dist/{spawn-claims-D0XfSe8u.mjs → spawn-claims-Kqiifsk2.mjs} +1 -1
- package/dist/{spawn-entry-jw19m8Nl.mjs → spawn-entry-Dcb7sDUz.mjs} +1 -0
- package/dist/{stage-CzaiwFsI.mjs → stage-BgaZJVZY.mjs} +14 -3
- package/dist/{start-AlfCPRVU.mjs → start-D8NbxNBb.mjs} +1 -1
- package/dist/{start-DUz3mYdb.mjs → start-DtxthMfI.mjs} +34 -27
- package/dist/{state-PeQiJuIu.mjs → state-D2KtnALG.mjs} +4 -4
- package/dist/{state-DyaNTgfR.mjs → state-Tp4uImDS.mjs} +5 -3
- package/dist/{state-B4PQFXMW.d.mts → state-lKh8shBp.d.mts} +2 -3
- package/dist/{stats-Bq4fJOdB.mjs → stats-8EJ5ivFT.mjs} +6 -6
- package/dist/{status-DlKvVJBE.mjs → status-BEeL6IKz.mjs} +6 -4
- package/dist/{status-BA2pehwf.mjs → status-BOyp0CUl.mjs} +31 -34
- package/dist/{stim-desktop-Cnz8CPnl.mjs → stim-desktop-C65jk_q2.mjs} +1 -1
- package/dist/{stim-installations-QMEI32v1.mjs → stim-installations-DbmUjsLv.mjs} +1 -1
- package/dist/stop-D0UIpZuh.mjs +72 -0
- package/dist/{stop-zF1y04f2.mjs → stop-DRipAg-e.mjs} +2 -2
- package/dist/{stop-DQIasgKp.mjs → stop-zDlknFoz.mjs} +79 -33
- package/dist/supervisor-run.d.mts +24 -22
- package/dist/supervisor-run.mjs +21 -22
- package/dist/{support-CsJNVfOc.mjs → support-CNqYkV0y.mjs} +7 -7
- package/dist/{support-WvD__tSV.mjs → support-DsNaFg6D.mjs} +5 -5
- package/dist/swiftpm-macos-aJzPAj1t.mjs +119 -0
- package/dist/{toolchain-DNyR3NPq.mjs → toolchain-C3xSoyUl.mjs} +475 -269
- package/dist/{trigger-Bemu8ytw.mjs → trigger-CAhmG-4s.mjs} +6 -6
- package/dist/trigger-CoalsMTV.mjs +2 -0
- package/dist/{warm-progress-DF4JRvYI.mjs → warm-progress-pFLB2e6P.mjs} +135 -38
- package/dist/{status-CzS4bPO9.mjs → watchman-BL1IdOtq.mjs} +75 -7
- package/dist/web-DFpFeZu5.mjs +2 -0
- package/dist/web-DbbrPUn0.mjs +127 -0
- package/dist/web-run.mjs +10 -10
- package/dist/{workspace-state-DqcCbpE7.mjs → workspace-state-CR9X86xJ.mjs} +3 -3
- package/dist/{ownership-BMLqyBgJ.mjs → workspaces-Djb2gfi9.mjs} +661 -23
- package/dist/{worktree-Be_7NLKy.mjs → worktree-BL4M1rhB.mjs} +252 -50
- package/dist/{worktree-j3IcFAI5.mjs → worktree-DV-A0LNL.mjs} +1 -1
- package/package.json +10 -5
- package/shim/bundle-response.cjs +2 -1
- package/shim/bundle-response.d.cts +1 -1
- package/shim/expo-metro-config.cjs +1 -1
- package/dist/build-progress-D0WkjCPd.mjs +0 -1036
- package/dist/build-slots-41v_d2x9.mjs +0 -142
- package/dist/cli-CYXb29oE.mjs +0 -51
- package/dist/deps-iKw0eD4P.mjs +0 -438
- package/dist/device-ios-C2Um-XUR.mjs +0 -412
- package/dist/errors-B6W7FkxQ.mjs +0 -15
- package/dist/guide-status-Du-ZQ3FD.mjs +0 -125
- package/dist/idle-BXG__1BA.mjs +0 -176
- package/dist/in-use-CvGOUn-x.mjs +0 -130
- package/dist/ios-BJ4XUSe1.mjs +0 -3867
- package/dist/native-run-D1Q56rAD.mjs +0 -158
- package/dist/preview-B-g9d7kV.mjs +0 -318
- package/dist/process-identity-BmRm1qV0.mjs +0 -12
- package/dist/project-D47Rh0ly.mjs +0 -276
- package/dist/server-expo-CeakhI8P.mjs +0 -2
- package/dist/state-BKa8wNN5.mjs +0 -148
- package/dist/stop-BIiM49EY.mjs +0 -48
- package/dist/stop-cause-rhmGfwvt.mjs +0 -97
- package/dist/trigger-CXts6qt1.mjs +0 -2
- package/dist/watchman-APYjXSQa.mjs +0 -48
- package/dist/workspace-process-lock-2mNzOlaB.mjs +0 -58
- package/dist/workspaces-Bcib97-6.mjs +0 -306
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
}
|
|
276
276
|
},
|
|
277
277
|
"remote": {
|
|
278
|
-
"description": "Default iOS remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
|
|
278
|
+
"description": "Default iOS remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy; local runs here, overriding a lower layer",
|
|
279
279
|
"type": "string",
|
|
280
280
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
|
|
281
281
|
"x-stim": {
|
|
@@ -464,7 +464,7 @@
|
|
|
464
464
|
}
|
|
465
465
|
},
|
|
466
466
|
"remote": {
|
|
467
|
-
"description": "Default Android remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
|
|
467
|
+
"description": "Default Android remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy; local runs here, overriding a lower layer",
|
|
468
468
|
"type": "string",
|
|
469
469
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
|
|
470
470
|
"x-stim": {
|
|
@@ -854,6 +854,47 @@
|
|
|
854
854
|
},
|
|
855
855
|
"additionalProperties": false
|
|
856
856
|
},
|
|
857
|
+
"maintenance": {
|
|
858
|
+
"type": "object",
|
|
859
|
+
"properties": {
|
|
860
|
+
"keep": {
|
|
861
|
+
"description": "Pin this workspace: automatic maintenance never clears its build outputs or removes its worktree",
|
|
862
|
+
"type": "boolean",
|
|
863
|
+
"default": false,
|
|
864
|
+
"x-stim": {
|
|
865
|
+
"key": "maintenance.keep",
|
|
866
|
+
"kind": "boolean",
|
|
867
|
+
"scopes": [
|
|
868
|
+
"workspace",
|
|
869
|
+
"repo",
|
|
870
|
+
"committed"
|
|
871
|
+
]
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
},
|
|
875
|
+
"additionalProperties": false
|
|
876
|
+
},
|
|
877
|
+
"remote": {
|
|
878
|
+
"type": "object",
|
|
879
|
+
"properties": {
|
|
880
|
+
"easFallback": {
|
|
881
|
+
"description": "When ios.remote or android.remote is auto, this Mac is at its concurrency.maxDevices cap and no Mac in remote.machines takes the run, run the simulator or emulator on a billed EAS Simulator instead of waiting or refusing, when eas-cli can",
|
|
882
|
+
"type": "boolean",
|
|
883
|
+
"default": false,
|
|
884
|
+
"x-stim": {
|
|
885
|
+
"key": "remote.easFallback",
|
|
886
|
+
"kind": "boolean",
|
|
887
|
+
"scopes": [
|
|
888
|
+
"machine",
|
|
889
|
+
"workspace",
|
|
890
|
+
"repo",
|
|
891
|
+
"committed"
|
|
892
|
+
]
|
|
893
|
+
}
|
|
894
|
+
}
|
|
895
|
+
},
|
|
896
|
+
"additionalProperties": false
|
|
897
|
+
},
|
|
857
898
|
"$schema": {
|
|
858
899
|
"type": "string"
|
|
859
900
|
}
|
|
@@ -1119,7 +1160,7 @@
|
|
|
1119
1160
|
}
|
|
1120
1161
|
},
|
|
1121
1162
|
"remote": {
|
|
1122
|
-
"description": "Default iOS remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
|
|
1163
|
+
"description": "Default iOS remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy; local runs here, overriding a lower layer",
|
|
1123
1164
|
"type": "string",
|
|
1124
1165
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
|
|
1125
1166
|
"x-stim": {
|
|
@@ -1169,7 +1210,7 @@
|
|
|
1169
1210
|
}
|
|
1170
1211
|
},
|
|
1171
1212
|
"remote": {
|
|
1172
|
-
"description": "Default Android remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
|
|
1213
|
+
"description": "Default Android remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy; local runs here, overriding a lower layer",
|
|
1173
1214
|
"type": "string",
|
|
1174
1215
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
|
|
1175
1216
|
"x-stim": {
|
|
@@ -1528,13 +1569,14 @@
|
|
|
1528
1569
|
"type": "object",
|
|
1529
1570
|
"properties": {
|
|
1530
1571
|
"mode": {
|
|
1531
|
-
"description": "Automatic resource maintenance. report measures, plans and logs what it would do and never deletes
|
|
1572
|
+
"description": "Automatic resource maintenance. on removes what gc would remove under the caps and floors below and logs every action; report measures, plans and logs what it would do and never deletes anything; off disables it. Off under STIM_HOME or CI unless STIM_MAINTENANCE is set",
|
|
1532
1573
|
"type": "string",
|
|
1533
1574
|
"enum": [
|
|
1534
1575
|
"off",
|
|
1535
|
-
"report"
|
|
1576
|
+
"report",
|
|
1577
|
+
"on"
|
|
1536
1578
|
],
|
|
1537
|
-
"default": "
|
|
1579
|
+
"default": "on",
|
|
1538
1580
|
"x-stim": {
|
|
1539
1581
|
"key": "maintenance.mode",
|
|
1540
1582
|
"kind": "choice",
|
|
@@ -1687,6 +1729,75 @@
|
|
|
1687
1729
|
"env": "STIM_MAINTENANCE_CAP_TARGET_PERCENT"
|
|
1688
1730
|
}
|
|
1689
1731
|
},
|
|
1732
|
+
"worktreeCheckMinutes": {
|
|
1733
|
+
"description": "Finished-worktree check interval in minutes",
|
|
1734
|
+
"type": "integer",
|
|
1735
|
+
"minimum": 1,
|
|
1736
|
+
"default": 15,
|
|
1737
|
+
"x-stim": {
|
|
1738
|
+
"key": "maintenance.worktreeCheckMinutes",
|
|
1739
|
+
"kind": "number",
|
|
1740
|
+
"scopes": [
|
|
1741
|
+
"machine"
|
|
1742
|
+
],
|
|
1743
|
+
"env": "STIM_MAINTENANCE_WORKTREE_CHECK_MINUTES"
|
|
1744
|
+
}
|
|
1745
|
+
},
|
|
1746
|
+
"sweepHours": {
|
|
1747
|
+
"description": "Age sweep interval in hours; 0 turns the age sweep off",
|
|
1748
|
+
"type": "integer",
|
|
1749
|
+
"minimum": 0,
|
|
1750
|
+
"default": 24,
|
|
1751
|
+
"x-stim": {
|
|
1752
|
+
"key": "maintenance.sweepHours",
|
|
1753
|
+
"kind": "number",
|
|
1754
|
+
"scopes": [
|
|
1755
|
+
"machine"
|
|
1756
|
+
],
|
|
1757
|
+
"env": "STIM_MAINTENANCE_SWEEP_HOURS"
|
|
1758
|
+
}
|
|
1759
|
+
},
|
|
1760
|
+
"olderThanDays": {
|
|
1761
|
+
"description": "Age in days for the age sweep: unused workspace build outputs and shared cache entries",
|
|
1762
|
+
"type": "integer",
|
|
1763
|
+
"minimum": 1,
|
|
1764
|
+
"default": 7,
|
|
1765
|
+
"x-stim": {
|
|
1766
|
+
"key": "maintenance.olderThanDays",
|
|
1767
|
+
"kind": "number",
|
|
1768
|
+
"scopes": [
|
|
1769
|
+
"machine"
|
|
1770
|
+
],
|
|
1771
|
+
"env": "STIM_MAINTENANCE_OLDER_THAN_DAYS"
|
|
1772
|
+
}
|
|
1773
|
+
},
|
|
1774
|
+
"protectRecentHours": {
|
|
1775
|
+
"description": "Cache entries used within this many hours are never evicted",
|
|
1776
|
+
"type": "integer",
|
|
1777
|
+
"minimum": 0,
|
|
1778
|
+
"default": 2,
|
|
1779
|
+
"x-stim": {
|
|
1780
|
+
"key": "maintenance.protectRecentHours",
|
|
1781
|
+
"kind": "number",
|
|
1782
|
+
"scopes": [
|
|
1783
|
+
"machine"
|
|
1784
|
+
],
|
|
1785
|
+
"env": "STIM_MAINTENANCE_PROTECT_RECENT_HOURS"
|
|
1786
|
+
}
|
|
1787
|
+
},
|
|
1788
|
+
"removeFinishedWorktrees": {
|
|
1789
|
+
"description": "Remove clean linked worktrees whose branch or pull request finished, under gc.worktreeGraceMinutes",
|
|
1790
|
+
"type": "boolean",
|
|
1791
|
+
"default": true,
|
|
1792
|
+
"x-stim": {
|
|
1793
|
+
"key": "maintenance.removeFinishedWorktrees",
|
|
1794
|
+
"kind": "boolean",
|
|
1795
|
+
"scopes": [
|
|
1796
|
+
"machine"
|
|
1797
|
+
],
|
|
1798
|
+
"env": "STIM_MAINTENANCE_REMOVE_FINISHED_WORKTREES"
|
|
1799
|
+
}
|
|
1800
|
+
},
|
|
1690
1801
|
"workspaceOutputsMaxGb": {
|
|
1691
1802
|
"description": "Workspace build-output cap in GiB; 0 means no cap",
|
|
1692
1803
|
"type": "number",
|
|
@@ -1749,6 +1860,20 @@
|
|
|
1749
1860
|
"env": "STIM_CACHES_SWIFT_COMPILATION_CACHE_MAX_GB"
|
|
1750
1861
|
}
|
|
1751
1862
|
},
|
|
1863
|
+
"ccacheMaxGb": {
|
|
1864
|
+
"description": "ccache size limit in GiB, passed to ccache as CCACHE_MAXSIZE; ccache evicts by itself",
|
|
1865
|
+
"type": "number",
|
|
1866
|
+
"exclusiveMinimum": 0,
|
|
1867
|
+
"default": 5,
|
|
1868
|
+
"x-stim": {
|
|
1869
|
+
"key": "caches.ccacheMaxGb",
|
|
1870
|
+
"kind": "number",
|
|
1871
|
+
"scopes": [
|
|
1872
|
+
"machine"
|
|
1873
|
+
],
|
|
1874
|
+
"env": "STIM_CACHES_CCACHE_MAX_GB"
|
|
1875
|
+
}
|
|
1876
|
+
},
|
|
1752
1877
|
"buildCache": {
|
|
1753
1878
|
"description": "Absolute path of the shared build cache",
|
|
1754
1879
|
"type": "string",
|
|
@@ -1832,6 +1957,25 @@
|
|
|
1832
1957
|
},
|
|
1833
1958
|
"additionalProperties": false
|
|
1834
1959
|
},
|
|
1960
|
+
"debug": {
|
|
1961
|
+
"type": "object",
|
|
1962
|
+
"properties": {
|
|
1963
|
+
"logs": {
|
|
1964
|
+
"description": "Debug-level logging. While on, the CLI records its commands, child processes and requests to other Macs, and stim-server records every request with its timings, under STIM_HOME/logs/debug/ with rotation. Nothing is sent anywhere, and records never carry arguments, tokens or tickets",
|
|
1965
|
+
"type": "boolean",
|
|
1966
|
+
"default": false,
|
|
1967
|
+
"x-stim": {
|
|
1968
|
+
"key": "debug.logs",
|
|
1969
|
+
"kind": "boolean",
|
|
1970
|
+
"scopes": [
|
|
1971
|
+
"machine"
|
|
1972
|
+
],
|
|
1973
|
+
"env": "STIM_DEBUG"
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
1976
|
+
},
|
|
1977
|
+
"additionalProperties": false
|
|
1978
|
+
},
|
|
1835
1979
|
"hosting": {
|
|
1836
1980
|
"type": "object",
|
|
1837
1981
|
"properties": {
|
|
@@ -1928,8 +2072,53 @@
|
|
|
1928
2072
|
]
|
|
1929
2073
|
}
|
|
1930
2074
|
},
|
|
2075
|
+
"buildPoolDisabled": {
|
|
2076
|
+
"description": "Members excluded from this requester's automatic build placement: local or exact remote.machines entries. Explicit placement and running builds are unaffected; at least one local or configured, approved remote member must stay enabled",
|
|
2077
|
+
"type": "array",
|
|
2078
|
+
"items": {
|
|
2079
|
+
"type": "string"
|
|
2080
|
+
},
|
|
2081
|
+
"default": [],
|
|
2082
|
+
"x-stim": {
|
|
2083
|
+
"key": "remote.buildPoolDisabled",
|
|
2084
|
+
"kind": "strings",
|
|
2085
|
+
"scopes": [
|
|
2086
|
+
"machine"
|
|
2087
|
+
]
|
|
2088
|
+
}
|
|
2089
|
+
},
|
|
2090
|
+
"devicePoolDisabled": {
|
|
2091
|
+
"description": "Members excluded from this requester's automatic simulator and emulator placement: local or exact remote.machines entries. Explicit placement and existing sessions are unaffected; at least one local or configured, approved remote member must stay enabled",
|
|
2092
|
+
"type": "array",
|
|
2093
|
+
"items": {
|
|
2094
|
+
"type": "string"
|
|
2095
|
+
},
|
|
2096
|
+
"default": [],
|
|
2097
|
+
"x-stim": {
|
|
2098
|
+
"key": "remote.devicePoolDisabled",
|
|
2099
|
+
"kind": "strings",
|
|
2100
|
+
"scopes": [
|
|
2101
|
+
"machine"
|
|
2102
|
+
]
|
|
2103
|
+
}
|
|
2104
|
+
},
|
|
2105
|
+
"easFallback": {
|
|
2106
|
+
"description": "When ios.remote or android.remote is auto, this Mac is at its concurrency.maxDevices cap and no Mac in remote.machines takes the run, run the simulator or emulator on a billed EAS Simulator instead of waiting or refusing, when eas-cli can",
|
|
2107
|
+
"type": "boolean",
|
|
2108
|
+
"default": false,
|
|
2109
|
+
"x-stim": {
|
|
2110
|
+
"key": "remote.easFallback",
|
|
2111
|
+
"kind": "boolean",
|
|
2112
|
+
"scopes": [
|
|
2113
|
+
"machine",
|
|
2114
|
+
"workspace",
|
|
2115
|
+
"repo",
|
|
2116
|
+
"committed"
|
|
2117
|
+
]
|
|
2118
|
+
}
|
|
2119
|
+
},
|
|
1931
2120
|
"build": {
|
|
1932
|
-
"description": "Build placement: auto follows remote.buildMode
|
|
2121
|
+
"description": "Build placement: auto follows remote.buildMode within enabled automatic pool members; local always builds here; a name in remote.machines requires that remote Mac without fallback. The ios, android and macos --remote-build flag overrides this setting and its environment override",
|
|
1933
2122
|
"type": "string",
|
|
1934
2123
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
|
|
1935
2124
|
"default": "auto",
|
|
@@ -1943,7 +2132,7 @@
|
|
|
1943
2132
|
}
|
|
1944
2133
|
},
|
|
1945
2134
|
"buildMode": {
|
|
1946
|
-
"description": "When remote.build is auto, where iOS simulator Debug, Android emulator debug and macOS SwiftPM Debug builds run: auto builds here while this Mac has a free concurrency.maxBuilds slot and its load is under server.maxLoadPerCore, and otherwise builds on a less loaded Mac in remote.machines; force builds on
|
|
2135
|
+
"description": "When remote.build is auto, where iOS simulator Debug, Android emulator debug and macOS SwiftPM Debug builds run: auto builds here while this Mac has a free concurrency.maxBuilds slot and its load is under server.maxLoadPerCore, and otherwise builds on a less loaded Mac in remote.machines; force builds on an enabled remote Mac whenever one can take the build; off builds here when local is enabled in remote.buildPoolDisabled",
|
|
1947
2136
|
"type": "string",
|
|
1948
2137
|
"enum": [
|
|
1949
2138
|
"auto",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
3
|
-
import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-BmRm1qV0.mjs";
|
|
1
|
+
import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { t as getExecutor } from "./exec-i8GDPwq9.mjs";
|
|
4
3
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
4
|
+
import { d as getConfigDir } from "./config-DC5jEtd1.mjs";
|
|
5
|
+
import { g as releaseBuildLock, m as acquireBuildLock } from "./device-lease-Cu7PtQpZ.mjs";
|
|
6
|
+
import { f as resolveEasCliBin } from "./remote-cache-N3hAEaAL.mjs";
|
|
7
|
+
import { s as readInstalledEasCliVersion, v as easCliSupport, y as easCliUpgradeRemedy } from "./device-remote-B5GiUifk.mjs";
|
|
9
8
|
import { existsSync, realpathSync, statSync } from "node:fs";
|
|
10
9
|
import { join } from "node:path";
|
|
10
|
+
import { createHash } from "node:crypto";
|
|
11
11
|
//#region src/engine/eas-build.ts
|
|
12
12
|
const MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION = "18.9.0";
|
|
13
13
|
function isEasBuildFailure(result) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { B as parseDeviceSlotKey, H as projectDeviceSlots, p as getProject } from "./config-
|
|
2
|
-
import { r as readWorkspaceState$1 } from "./workspace-state-
|
|
3
|
-
import { n as fileLeaseIo } from "./device-lease-
|
|
4
|
-
import { E as getAvdNameForSerial, O as listAdbDevices } from "./android-
|
|
5
|
-
import {
|
|
6
|
-
import { f as deviceShellArg } from "./app-install-
|
|
1
|
+
import { B as parseDeviceSlotKey, H as projectDeviceSlots, p as getProject } from "./config-DC5jEtd1.mjs";
|
|
2
|
+
import { r as readWorkspaceState$1 } from "./workspace-state-CR9X86xJ.mjs";
|
|
3
|
+
import { n as fileLeaseIo } from "./device-lease-Cu7PtQpZ.mjs";
|
|
4
|
+
import { E as getAvdNameForSerial, O as listAdbDevices } from "./android-BdQC6zs1.mjs";
|
|
5
|
+
import { d as listAllIosSims } from "./ios-BWbHFZVz.mjs";
|
|
6
|
+
import { f as deviceShellArg } from "./app-install-CFI4ptUL.mjs";
|
|
7
7
|
import { hostedNativeRecords } from "@stim-cli/core/state";
|
|
8
8
|
//#region src/engine/slot-launch.ts
|
|
9
9
|
function launchSlotScope(root, slot = "default") {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-
|
|
1
|
+
import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
2
|
//#region src/engine/spawn-claims.ts
|
|
3
3
|
const declaring = /* @__PURE__ */ new Set();
|
|
4
4
|
const running = /* @__PURE__ */ new Set();
|
|
@@ -2,6 +2,7 @@ import { basename, dirname, join } from "node:path";
|
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
//#region src/spawn-entry.ts
|
|
4
4
|
const DEV_ENTRIES = {
|
|
5
|
+
"api-run": "./api-run.ts",
|
|
5
6
|
"supervisor-run": "./supervisor/run.ts",
|
|
6
7
|
"collector-run": "./collector/run.ts",
|
|
7
8
|
"web-run": "./web/run.ts",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
1
|
+
import { t as getExecutor } from "./exec-i8GDPwq9.mjs";
|
|
2
2
|
import { cpSync, existsSync, mkdirSync, readdirSync, realpathSync, rmSync, statSync } from "node:fs";
|
|
3
3
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
4
4
|
import { validMacosResourceDestination } from "@stim-cli/core";
|
|
@@ -19,6 +19,16 @@ function validateInfoPlist(root, product, infoPlist) {
|
|
|
19
19
|
minimumSystemVersion: plist.LSMinimumSystemVersion
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
+
function setBundleName(plistPath, name) {
|
|
23
|
+
const exec = getExecutor();
|
|
24
|
+
for (const key of ["CFBundleDisplayName", "CFBundleName"]) exec.runFile("plutil", [
|
|
25
|
+
"-replace",
|
|
26
|
+
key,
|
|
27
|
+
"-string",
|
|
28
|
+
name,
|
|
29
|
+
plistPath
|
|
30
|
+
]);
|
|
31
|
+
}
|
|
22
32
|
function resourceError(key, entry, reason) {
|
|
23
33
|
throw new Error(`${key} entry ${JSON.stringify(entry)}: ${reason}. See stim guide macos.`);
|
|
24
34
|
}
|
|
@@ -73,7 +83,7 @@ function resolveBundleExtras(root, repository, resources = {}, assetCatalog) {
|
|
|
73
83
|
assetCatalog: catalog
|
|
74
84
|
};
|
|
75
85
|
}
|
|
76
|
-
function stageBundle(root, product, infoPlist, bin, bundle, bundleId, extras = { resources: {} }) {
|
|
86
|
+
function stageBundle(root, product, infoPlist, bin, bundle, bundleId, extras = { resources: {} }, displayName) {
|
|
77
87
|
const { minimumSystemVersion } = validateInfoPlist(root, product, infoPlist);
|
|
78
88
|
for (const entry of readdirSync(bin).filter((name) => name.endsWith(".bundle"))) for (const [destination, source] of Object.entries(extras.resources)) if (overlaps(destination, entry)) resourceError(`macos.resources[${JSON.stringify(destination)}]`, source, `destination collides with ${entry}`);
|
|
79
89
|
const exec = getExecutor();
|
|
@@ -93,6 +103,7 @@ function stageBundle(root, product, infoPlist, bin, bundle, bundleId, extras = {
|
|
|
93
103
|
`Set :CFBundleIdentifier ${bundleId}`,
|
|
94
104
|
join(contents, "Info.plist")
|
|
95
105
|
]);
|
|
106
|
+
if (displayName !== void 0) setBundleName(join(contents, "Info.plist"), displayName);
|
|
96
107
|
for (const entry of readdirSync(bin)) if (entry.endsWith(".framework")) {
|
|
97
108
|
const target = join(contents, "Frameworks", entry);
|
|
98
109
|
cpSync(join(bin, entry), target, {
|
|
@@ -140,4 +151,4 @@ function stageBundle(root, product, infoPlist, bin, bundle, bundleId, extras = {
|
|
|
140
151
|
]);
|
|
141
152
|
}
|
|
142
153
|
//#endregion
|
|
143
|
-
export {
|
|
154
|
+
export { validateInfoPlist as i, setBundleName as n, stageBundle as r, resolveBundleExtras as t };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as registerStart, c as startDevServer, d as tailLines, f as wantsExpoOwnTunnel, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-
|
|
1
|
+
import { a as registerStart, c as startDevServer, d as tailLines, f as wantsExpoOwnTunnel, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-DtxthMfI.mjs";
|
|
2
2
|
export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, tailLines, wantsExpoOwnTunnel };
|
|
@@ -1,28 +1,27 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-
|
|
13
|
-
import { a as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { d as readProjectConfig } from "./remote-cache-Ci4DQYYj.mjs";
|
|
1
|
+
import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { t as getExecutor } from "./exec-i8GDPwq9.mjs";
|
|
3
|
+
import { t as spawnEntry } from "./spawn-entry-Dcb7sDUz.mjs";
|
|
4
|
+
import { _ as stepTimer, l as phaseLine } from "./command-output-Bt8ygHE7.mjs";
|
|
5
|
+
import { E as upsertProject, p as getProject } from "./config-DC5jEtd1.mjs";
|
|
6
|
+
import { c as writeWorkspaceState, g as workspaceAgentDeviceDir, i as recordWorkspaceUse, m as supervisorLogFile, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, u as ensureWorkspaceStorage, x as workspaceLogsDir$1 } from "./workspace-state-CR9X86xJ.mjs";
|
|
7
|
+
import { E as readMetroTunnel, S as clearManagedMetroTunnel, _ as readAppJson, g as readAppConfigText, p as detectIsExpo, r as findProjectRoot, s as projectProblem, t as NO_PROJECT_REFUSAL } from "./project-B5eQ1USs.mjs";
|
|
8
|
+
import { A as publicUrlSetting, B as settingShapeErrors, F as resolveCacheProviderConfig, I as resolveSettings, J as planMetroReach, K as PUBLIC_METRO_ENV, M as remoteAndroidSetting, P as remoteIosSetting, S as metroTunnelSettingError, U as tunnelModeSetting, W as unknownSettingKeys, b as metroIdleStopMinutesSetting, d as deviceIdleShutdownMinutesSetting, i as SETTING_SHAPE_REMEDY, mt as repoRoot, nt as gitCommonDir, q as detectProviders, u as cacheProviderSettingError, w as ngrokUrlSetting, x as metroPortSetting } from "./settings-CxgngUZk.mjs";
|
|
9
|
+
import { d as signalProcessTree, g as PortInspectionError, h as PORT_INSPECTION_REMEDY, m as reserveMetroPort, s as pidExists, u as resolveProjectMetro } from "./metro-DI2AjPF_.mjs";
|
|
10
|
+
import { d as stopOwnedMetroForReset, t as budgetGate } from "./budget-Dz-kyXLv.mjs";
|
|
11
|
+
import { _ as terminateChild, b as withManagedTunnelLock, g as stopTunnel, h as startTunnelSequence, m as resolveSupervisorTarget, v as withManagedRemoteWorktreeLock } from "./workspaces-Djb2gfi9.mjs";
|
|
12
|
+
import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-C65jk_q2.mjs";
|
|
13
|
+
import { a as withWorkspaceProcessLock, o as workspaceProcessLockError } from "./named-ports-B4iWH4E-.mjs";
|
|
14
|
+
import { i as levelRank } from "./ndjson-LGZAMsqa.mjs";
|
|
15
|
+
import { d as readProjectConfig } from "./remote-cache-N3hAEaAL.mjs";
|
|
16
|
+
import { n as windowsLauncherArgs } from "./detached-entry-pB_IPfV4.mjs";
|
|
18
17
|
import { appendFileSync, mkdirSync, openSync, readFileSync } from "node:fs";
|
|
19
18
|
import { dirname } from "node:path";
|
|
20
|
-
import { EventEmitter } from "node:events";
|
|
21
|
-
import { existsSync as existsSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1 } from "fs";
|
|
22
19
|
import { join as join$1 } from "path";
|
|
23
20
|
import { IDLE_STOP_KEY, queryLogs } from "@stim-cli/core/state";
|
|
24
21
|
import chalk from "chalk";
|
|
22
|
+
import { existsSync as existsSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1 } from "fs";
|
|
25
23
|
import { CACHE_PROVIDER_ENV, cacheProviderEnv } from "@stim-cli/cache";
|
|
24
|
+
import { EventEmitter } from "node:events";
|
|
26
25
|
//#region src/workspace/app-id.ts
|
|
27
26
|
function configString(config, platform, key) {
|
|
28
27
|
if (!config || typeof config !== "object") return null;
|
|
@@ -251,13 +250,13 @@ function registerStart(program, overrides = {}) {
|
|
|
251
250
|
remedy: "Pass a whole number of seconds, e.g. --wait 90."
|
|
252
251
|
});
|
|
253
252
|
const waitSeconds = wait.seconds;
|
|
254
|
-
const root = findProjectRoot
|
|
253
|
+
const root = findProjectRoot(process.cwd());
|
|
255
254
|
if (!root) return fail(NO_PROJECT_REFUSAL);
|
|
256
|
-
const
|
|
257
|
-
if (
|
|
255
|
+
const problem = projectProblem(root, "dev-server");
|
|
256
|
+
if (problem) return fail({
|
|
258
257
|
code: "STIM_NO_PROJECT",
|
|
259
|
-
message:
|
|
260
|
-
remedy:
|
|
258
|
+
message: problem.message,
|
|
259
|
+
remedy: problem.remedy
|
|
261
260
|
});
|
|
262
261
|
try {
|
|
263
262
|
ensureWorkspaceStorage(root);
|
|
@@ -973,7 +972,7 @@ async function resolveWorkspaceMetroPort(root, note, command, reserve = true) {
|
|
|
973
972
|
const pinned = setting.port;
|
|
974
973
|
const project = getProject(root);
|
|
975
974
|
const recorded = project?.metroPort;
|
|
976
|
-
if (pinned === null && command === "web") return recorded ?? await
|
|
975
|
+
if (pinned === null && command === "web") return recorded ?? await reservePort(root, null);
|
|
977
976
|
if (recorded) {
|
|
978
977
|
const supervisor = resolveSupervisorTarget({
|
|
979
978
|
state: readWorkspaceState$1(root)?.supervisor,
|
|
@@ -1005,17 +1004,25 @@ async function resolveWorkspaceMetroPort(root, note, command, reserve = true) {
|
|
|
1005
1004
|
} else if (recorded) {
|
|
1006
1005
|
const held = await resolveProjectMetro(recorded, root);
|
|
1007
1006
|
if (!held.notOurs) return recorded;
|
|
1008
|
-
const fresh = await
|
|
1009
|
-
if (fresh !== recorded) {
|
|
1007
|
+
const fresh = await reservePort(root, null);
|
|
1008
|
+
if (typeof fresh === "number" && fresh !== recorded) {
|
|
1010
1009
|
note(chalk.yellow(`Port ${recorded} is held by something else (${held.notOurs}).`));
|
|
1011
1010
|
note(chalk.dim(`Reserved port ${fresh} for this project instead.`));
|
|
1012
1011
|
}
|
|
1013
1012
|
return fresh;
|
|
1014
1013
|
}
|
|
1015
1014
|
if (!reserve && pinned !== null) return pinned;
|
|
1015
|
+
return reservePort(root, pinned);
|
|
1016
|
+
}
|
|
1017
|
+
async function reservePort(root, pinned) {
|
|
1016
1018
|
try {
|
|
1017
1019
|
return await reserveMetroPort(root, void 0, void 0, pinned);
|
|
1018
1020
|
} catch (error) {
|
|
1021
|
+
if (error instanceof PortInspectionError) return {
|
|
1022
|
+
code: error.code,
|
|
1023
|
+
message: error.reason,
|
|
1024
|
+
remedy: PORT_INSPECTION_REMEDY
|
|
1025
|
+
};
|
|
1019
1026
|
return {
|
|
1020
1027
|
code: "STIM_BAD_ARG",
|
|
1021
1028
|
message: error.message,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { a as updateWorkspaceState, c as writeWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as workspaceDir, x as workspaceLogsDir$1 } from "./workspace-state-CR9X86xJ.mjs";
|
|
3
|
+
import { s as pidExists } from "./metro-DI2AjPF_.mjs";
|
|
4
4
|
import { readFileSync, readlinkSync, rmSync } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
|
-
import { rotatedLogPath } from "@stim-cli/core";
|
|
7
6
|
import { WEB_VIEWPORTS } from "@stim-cli/core/state";
|
|
8
7
|
import { hostname } from "node:os";
|
|
8
|
+
import { rotatedLogPath } from "@stim-cli/core";
|
|
9
9
|
//#region src/web/profile.ts
|
|
10
10
|
const SINGLETON_FILES = [
|
|
11
11
|
"SingletonLock",
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { t as process_identity_exports } from "./process-identity-
|
|
2
|
-
import { a as updateWorkspaceState, r as readWorkspaceState$1, v as workspaceDir, x as workspaceLogsDir$1 } from "./workspace-state-
|
|
1
|
+
import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
|
|
2
|
+
import { a as updateWorkspaceState, r as readWorkspaceState$1, v as workspaceDir, x as workspaceLogsDir$1 } from "./workspace-state-CR9X86xJ.mjs";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
3
4
|
import { join } from "node:path";
|
|
4
5
|
import { readMacosRecord } from "@stim-cli/core/state";
|
|
5
6
|
//#region src/macos/state.ts
|
|
6
7
|
const macosDir = (root) => join(workspaceDir(root), "macos");
|
|
7
8
|
const macosLogFile = (root) => join(workspaceLogsDir$1(root), "macos.ndjson");
|
|
8
9
|
const macosRuntimeClaim = (root) => join(macosDir(root), "runtime.lock");
|
|
10
|
+
const macosAppPresent = (root) => readWorkspaceState$1(root)?.macos !== void 0 || existsSync(macosDir(root));
|
|
9
11
|
function macosProcess(pid) {
|
|
10
12
|
const processToken = (0, process_identity_exports.captureProcessToken)(pid);
|
|
11
13
|
const start = (0, process_identity_exports.processStartMicros)(pid);
|
|
@@ -38,4 +40,4 @@ function updateMacosRecord(root, owner, patch) {
|
|
|
38
40
|
return updated;
|
|
39
41
|
}
|
|
40
42
|
//#endregion
|
|
41
|
-
export {
|
|
43
|
+
export { macosRuntimeClaim as a, macosProcess as i, macosDir as n, requiredMacosRecord as o, macosLogFile as r, updateMacosRecord as s, macosAppPresent as t };
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import "@stim-cli/core/state";
|
|
2
|
-
import
|
|
3
|
-
//#endregion
|
|
2
|
+
import { ProcessRecord } from "@stim-cli/core/process-identity";
|
|
4
3
|
//#region src/supervisor/state.d.ts
|
|
5
4
|
declare const MODE_BARE = "bare-inproc";
|
|
6
5
|
declare const MODE_EXPO = "expo-child";
|
|
7
|
-
declare function clearWorkspaceSupervisor(root: string, expected?:
|
|
6
|
+
declare function clearWorkspaceSupervisor(root: string, expected?: ProcessRecord | null): boolean;
|
|
8
7
|
declare function clearExpoMetroTunnel(root: string): void;
|
|
9
8
|
declare function writePidFile(root: string, pid: number): string;
|
|
10
9
|
declare function readPidFile(root: string): number | null;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-
|
|
1
|
+
import { o as formatLongDuration } from "./command-output-Bt8ygHE7.mjs";
|
|
2
|
+
import { j as formatBytes } from "./config-DC5jEtd1.mjs";
|
|
3
|
+
import { r as findProjectRoot } from "./project-B5eQ1USs.mjs";
|
|
4
|
+
import { mt as repoRoot, nt as gitCommonDir } from "./settings-CxgngUZk.mjs";
|
|
5
|
+
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-Bjxu_VmX.mjs";
|
|
6
6
|
import { archivedUsage, readArchives, readStatsReport, statsProjectKey } from "@stim-cli/core/state";
|
|
7
7
|
import chalk from "chalk";
|
|
8
8
|
//#region src/commands/stats.ts
|
|
@@ -13,7 +13,7 @@ function statsCommand(program) {
|
|
|
13
13
|
program.command("stats").description("Show how many `ios` and `android` runs this project and this machine have recorded, how many hit the build cache, and an estimate of the time that cache saved.").option("--json", "print the aggregates as JSON").action(async (opts) => {
|
|
14
14
|
const agentDevice = await getAgentDeviceUsage();
|
|
15
15
|
const swiftpmCache = await getSwiftpmCacheUsage();
|
|
16
|
-
const root = findProjectRoot
|
|
16
|
+
const root = findProjectRoot(process.cwd());
|
|
17
17
|
const key = root ? statsProjectKey({
|
|
18
18
|
root,
|
|
19
19
|
commonDir: gitCommonDir(root),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as resolveMaintenanceSettings } from "./settings-
|
|
1
|
+
import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
|
|
2
2
|
import { maintenanceRunClaims, readMaintenanceState } from "@stim-cli/core/state";
|
|
3
3
|
import { claimRemoveCommand, readClaimSet } from "@stim-cli/core/ownership-claim";
|
|
4
4
|
//#region src/maintenance/status.ts
|
|
@@ -17,7 +17,9 @@ function maintenanceStatus() {
|
|
|
17
17
|
} } : {},
|
|
18
18
|
lastChecks: {
|
|
19
19
|
pressure: state?.lastAt.pressure ?? null,
|
|
20
|
-
size: state?.lastAt.size ?? null
|
|
20
|
+
size: state?.lastAt.size ?? null,
|
|
21
|
+
worktree: state?.lastAt.worktree ?? null,
|
|
22
|
+
sweep: state?.lastAt.sweep ?? null
|
|
21
23
|
},
|
|
22
24
|
pressure: state?.pressure ?? null,
|
|
23
25
|
sizes: state?.sizes ?? [],
|
|
@@ -37,9 +39,9 @@ function maintenanceLine(status, includeLabel = true) {
|
|
|
37
39
|
minute: "2-digit"
|
|
38
40
|
}) : null;
|
|
39
41
|
const outputs = status.plan.filter((action) => action.kind === "would-clear-outputs");
|
|
40
|
-
const summary = outputs.length ? `would clear build outputs of ${outputs.length} ${outputs.length === 1 ? "workspace" : "workspaces"} (${(outputs.reduce((sum, action) => sum + action.bytes, 0) / 1024 ** 3).toFixed(1)} GB)` : `${status.plan.length} planned actions`;
|
|
42
|
+
const summary = status.mode === "on" && status.lastPass ? `${status.lastPass.actions} actions, ${(status.lastPass.freedBytes / 1024 ** 3).toFixed(1)} GB freed` : outputs.length ? `would clear build outputs of ${outputs.length} ${outputs.length === 1 ? "workspace" : "workspaces"} (${(outputs.reduce((sum, action) => sum + action.bytes, 0) / 1024 ** 3).toFixed(1)} GB)` : `${status.plan.length} planned actions`;
|
|
41
43
|
const disk = status.pressure?.disk.map((volume) => `disk ${(volume.freeMb / 1024).toFixed(1)} GB free on ${volume.volume}`).join(", ");
|
|
42
|
-
return `${includeLabel ? `Auto maintenance (${status.mode === "report" ? "report only" :
|
|
44
|
+
return `${includeLabel ? `Auto maintenance (${status.mode === "report" ? "report only" : status.mode}): ` : ""}${at ? `${at}: ` : ""}${status.lastPass ? summary : "no pass has run yet"}${disk ? `; ${disk}` : ""}${status.running ? "; running" : ""}${status.lastPass?.blocked.length ? `; ${status.lastPass.blocked.join("; ")}` : ""}${status.invalid ? `; invalid: ${status.invalid}` : ""}${status.claim ? `; unresolved claim: ${status.claim.unresolved}; ${status.claim.removeCommand}` : ""}`;
|
|
43
45
|
}
|
|
44
46
|
function maintenanceLines(status) {
|
|
45
47
|
const line = maintenanceLine(status);
|