pairling 0.1.0 → 0.2.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.
Files changed (29) hide show
  1. package/README.md +1 -1
  2. package/package.json +5 -5
  3. package/payload/mac/SOURCE_BRANCH +1 -1
  4. package/payload/mac/SOURCE_REVISION +1 -1
  5. package/payload/mac/VERSION +1 -1
  6. package/payload/mac/companiond/app_attest_lan.py +87 -0
  7. package/payload/mac/companiond/codex_approval.py +69 -0
  8. package/payload/mac/companiond/pairling_devices.py +35 -0
  9. package/payload/mac/companiond/pairling_pairing.py +374 -70
  10. package/payload/mac/companiond/pairling_psk.py +100 -0
  11. package/payload/mac/companiond/pairling_tools.py +2 -2
  12. package/payload/mac/companiond/pairlingd.py +977 -104
  13. package/payload/mac/companiond/pty_broker.py +441 -3
  14. package/payload/mac/companiond/pty_broker_client.py +167 -0
  15. package/payload/mac/companiond/pty_broker_service.py +84 -0
  16. package/payload/mac/companiond/runtime_contract.py +0 -2
  17. package/payload/mac/companiond/standard_push_publisher.py +7 -0
  18. package/payload/mac/connectd/cmd/pairling-connectd/authkey_test.go +47 -0
  19. package/payload/mac/connectd/cmd/pairling-connectd/main.go +41 -0
  20. package/payload/mac/connectd/internal/gateway/proxy.go +1 -0
  21. package/payload/mac/connectd/internal/gateway/proxy_test.go +1 -0
  22. package/payload/mac/connectd/internal/runtime/config_test.go +1 -1
  23. package/payload/mac/connectd/internal/status/status.go +9 -0
  24. package/payload/mac/install/doctor.sh +227 -51
  25. package/payload/mac/install/install-runtime.sh +398 -15
  26. package/payload/mac/install/psk_dependency_check.py +40 -0
  27. package/payload/mac/install/render-launchd.py +23 -0
  28. package/payload/mac/install/uninstall-runtime.sh +4 -12
  29. package/payload-manifest.json +51 -23
@@ -10,6 +10,7 @@ from pathlib import Path
10
10
  PAIRLING_DAEMON_LABEL = "dev.pairling.companiond"
11
11
  PAIRLING_GUARDIAN_LABEL = "dev.pairling.power-guardian"
12
12
  PAIRLING_CONNECTD_LABEL = "dev.pairling.connectd"
13
+ PAIRLING_PTYBROKER_LABEL = "dev.pairling.ptybroker"
13
14
  PAIRLING_RUNTIME_PORT = "7773"
14
15
 
15
16
 
@@ -95,6 +96,27 @@ def connectd_plist(current: Path, logs: Path) -> dict:
95
96
  }
96
97
 
97
98
 
99
+ def ptybroker_plist(current: Path, logs: Path, python_bin: str) -> dict:
100
+ app_support = current.parent.parent
101
+ return {
102
+ "Label": PAIRLING_PTYBROKER_LABEL,
103
+ "ProgramArguments": [
104
+ python_bin,
105
+ str(current / "companiond" / "pty_broker_service.py"),
106
+ ],
107
+ "EnvironmentVariables": {
108
+ "PAIRLING_APP_SUPPORT_ROOT": str(app_support),
109
+ "PAIRLING_LOGS_ROOT": str(logs),
110
+ "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
111
+ },
112
+ "RunAtLoad": True,
113
+ "KeepAlive": True,
114
+ "ThrottleInterval": 10,
115
+ "StandardOutPath": str(logs / "ptybroker.log"),
116
+ "StandardErrorPath": str(logs / "ptybroker.err"),
117
+ }
118
+
119
+
98
120
  def main() -> int:
99
121
  parser = argparse.ArgumentParser()
100
122
  parser.add_argument("--current-root", required=True)
@@ -110,6 +132,7 @@ def main() -> int:
110
132
  out = Path(args.output_dir)
111
133
 
112
134
  write_plist(out / f"{PAIRLING_DAEMON_LABEL}.plist", daemon_plist(current, logs, args.daemon_python))
135
+ write_plist(out / f"{PAIRLING_PTYBROKER_LABEL}.plist", ptybroker_plist(current, logs, args.daemon_python))
113
136
  write_plist(out / f"{PAIRLING_GUARDIAN_LABEL}.plist", guardian_plist(current, logs, args.guardian_python))
114
137
  write_plist(out / f"{PAIRLING_CONNECTD_LABEL}.plist", connectd_plist(current, logs))
115
138
  return 0
@@ -4,14 +4,13 @@ set -euo pipefail
4
4
  PAIRLING_DAEMON_LABEL="dev.pairling.companiond"
5
5
  PAIRLING_GUARDIAN_LABEL="dev.pairling.power-guardian"
6
6
  PAIRLING_CONNECTD_LABEL="dev.pairling.connectd"
7
- LEGACY_DAEMON_LABEL="com.mghome.notify-webhook"
7
+ PAIRLING_PTYBROKER_LABEL="dev.pairling.ptybroker"
8
8
  APP_SUPPORT="${PAIRLING_APP_SUPPORT_ROOT:-${COMPANION_APP_SUPPORT_ROOT:-$HOME/Library/Application Support/Pairling}}"
9
9
  LOGS_ROOT="${PAIRLING_LOGS_ROOT:-${COMPANION_LOGS_ROOT:-$HOME/Library/Logs/Pairling}}"
10
10
  USER_PLIST="$HOME/Library/LaunchAgents/$PAIRLING_DAEMON_LABEL.plist"
11
11
  CONNECTD_USER_PLIST="$HOME/Library/LaunchAgents/$PAIRLING_CONNECTD_LABEL.plist"
12
- LEGACY_USER_PLIST="$HOME/Library/LaunchAgents/$LEGACY_DAEMON_LABEL.plist"
12
+ PTYBROKER_USER_PLIST="$HOME/Library/LaunchAgents/$PAIRLING_PTYBROKER_LABEL.plist"
13
13
  SYSTEM_PLIST="/Library/LaunchDaemons/$PAIRLING_GUARDIAN_LABEL.plist"
14
- LEGACY_SYSTEM_PLIST="/Library/LaunchDaemons/com.mghome.companion-power-guardian.plist"
15
14
  YES="false"
16
15
  DELETE_STATE="false"
17
16
  DELETE_LOGS="false"
@@ -103,19 +102,12 @@ confirm
103
102
 
104
103
  bootout_user "$PAIRLING_DAEMON_LABEL" "$USER_PLIST"
105
104
  bootout_user "$PAIRLING_CONNECTD_LABEL" "$CONNECTD_USER_PLIST"
105
+ bootout_user "$PAIRLING_PTYBROKER_LABEL" "$PTYBROKER_USER_PLIST"
106
106
  rm -f "$USER_PLIST"
107
107
  rm -f "$CONNECTD_USER_PLIST"
108
+ rm -f "$PTYBROKER_USER_PLIST"
108
109
  bootout_system "$PAIRLING_GUARDIAN_LABEL" "$SYSTEM_PLIST"
109
110
 
110
- if [[ -f "$LEGACY_USER_PLIST" ]]; then
111
- bootout_user "$LEGACY_DAEMON_LABEL" "$LEGACY_USER_PLIST"
112
- printf 'Warning: legacy LaunchAgent still exists and was unloaded if possible: %s\n' "$LEGACY_USER_PLIST"
113
- fi
114
-
115
- if [[ -f "$LEGACY_SYSTEM_PLIST" ]]; then
116
- printf 'Warning: legacy guardian LaunchDaemon still exists: %s\n' "$LEGACY_SYSTEM_PLIST"
117
- fi
118
-
119
111
  rm -rf "$APP_SUPPORT/pair" 2>/dev/null || true
120
112
 
121
113
  if [[ "$DELETE_STATE" == "true" ]]; then
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "connectd": {
3
3
  "darwin-arm64": {
4
- "sha256": "df87d4a1c2bf2cd439693fdf9defe5905a7914c6b8e7955d5c7dc07c8db24995",
4
+ "sha256": "5b8fb38059d0db2e15160e9b845a64a6bf670326301d91af32542f752a516da4",
5
5
  "team_id": "965AVD34A3"
6
6
  },
7
7
  "darwin-x64": {
8
- "sha256": "c0e70a4d4ce415988922177c7b3646b9e154b6b131231e2040b400afeb104660",
8
+ "sha256": "65a8aa18608c35adc854ac4a76fee3a4abf505e3f8eec39c0fc693c96879edc2",
9
9
  "team_id": "965AVD34A3"
10
10
  }
11
11
  },
12
12
  "files": [
13
13
  {
14
14
  "path": "payload/mac/SOURCE_BRANCH",
15
- "sha256": "34d6a94dacb895403529caac12a19aed745c6caca7a8d0f4ed631999044f76e8"
15
+ "sha256": "b7cda4715ebe6bb92ec69b85df0e99668564bde99f03d6e04109b399538000b2"
16
16
  },
17
17
  {
18
18
  "path": "payload/mac/SOURCE_DIRTY",
@@ -20,11 +20,19 @@
20
20
  },
21
21
  {
22
22
  "path": "payload/mac/SOURCE_REVISION",
23
- "sha256": "3081b56cba3fd9ec092b6aab851dfe6a4fdd2f978c57e07216424058dfa3ab29"
23
+ "sha256": "0889db49ee2a42de113621f09980304ceac3d957cdd0f063b0dc1a15542dcfc7"
24
24
  },
25
25
  {
26
26
  "path": "payload/mac/VERSION",
27
- "sha256": "cd0d485d0557e128d4ab09c7cc4ed3cfe6ab1f494c6b5a4515302ddfbc4d8867"
27
+ "sha256": "71015c979ccb0fc8a0be7ca0ae83046ab045cdc2c8faa09fb2f0f7e440f9b4a6"
28
+ },
29
+ {
30
+ "path": "payload/mac/companiond/app_attest_lan.py",
31
+ "sha256": "fe5645df2695398798745946936b0e18df165ec8ee93ca56a8fbae64f6705e07"
32
+ },
33
+ {
34
+ "path": "payload/mac/companiond/codex_approval.py",
35
+ "sha256": "88e94b48758784426f8793ba9c0ee32638fde80bf5c0806c5ca70ecfe5a6bd22"
28
36
  },
29
37
  {
30
38
  "path": "payload/mac/companiond/integrations/__init__.py",
@@ -68,11 +76,15 @@
68
76
  },
69
77
  {
70
78
  "path": "payload/mac/companiond/pairling_devices.py",
71
- "sha256": "ce7e91431276e2b1b31445dc64ef34052b990a75e22472e0c3cbb313c15e9cfd"
79
+ "sha256": "ef82052d0560863e43476ba9098db7435d924fc473d3ebb747954663a975c85b"
72
80
  },
73
81
  {
74
82
  "path": "payload/mac/companiond/pairling_pairing.py",
75
- "sha256": "222f069fd482f330087bff76079f5a47bcf9103d83244659226349f7f09cac8d"
83
+ "sha256": "e125501b4c41f57fb9f4acee705f523c0c320fe207c48d4cb5286c8413085e0f"
84
+ },
85
+ {
86
+ "path": "payload/mac/companiond/pairling_psk.py",
87
+ "sha256": "c298499ef08629801b000e3f9ea3babc4373c7af181d835edd70a23c77d9d63f"
76
88
  },
77
89
  {
78
90
  "path": "payload/mac/companiond/pairling_relay_claims.py",
@@ -80,11 +92,11 @@
80
92
  },
81
93
  {
82
94
  "path": "payload/mac/companiond/pairling_tools.py",
83
- "sha256": "b5f607ffc38340701f6dd93a23907e7aa30a89ab04b6be861c247a3f129a369c"
95
+ "sha256": "e6fbcd66ddc8ec0c7317522fa27ae1d5847e338e4770ad13528dd2724bd75ec8"
84
96
  },
85
97
  {
86
98
  "path": "payload/mac/companiond/pairlingd.py",
87
- "sha256": "c9c9f34fd58c8c4dd1617381de6d0d4cdce128ee600d25cfa3a1700fac4c60e1"
99
+ "sha256": "1e65b91c2015451502ca07c15f35c8145a3ceb3d4c79fb0d11aad63c66a65861"
88
100
  },
89
101
  {
90
102
  "path": "payload/mac/companiond/providers/__init__.py",
@@ -112,7 +124,15 @@
112
124
  },
113
125
  {
114
126
  "path": "payload/mac/companiond/pty_broker.py",
115
- "sha256": "eeca3ffa9070337ba01567e8b3344aacf597cf5c23d157ea7acc6d46f90412d6"
127
+ "sha256": "f4b5ad823a62eec28e022457c370c61d5cf93859f3b3f8bddd6ca1df21f2c729"
128
+ },
129
+ {
130
+ "path": "payload/mac/companiond/pty_broker_client.py",
131
+ "sha256": "f9ca7a760ff4e31d8c9027bf5a8c3e0ca3ea34f0f14d763924cde62afb8161d1"
132
+ },
133
+ {
134
+ "path": "payload/mac/companiond/pty_broker_service.py",
135
+ "sha256": "5b7fa5e16d8e588b5fcf96e60393bd6b05b5f6a12658824824c3851a5480ae13"
116
136
  },
117
137
  {
118
138
  "path": "payload/mac/companiond/push_dispatcher.py",
@@ -128,7 +148,7 @@
128
148
  },
129
149
  {
130
150
  "path": "payload/mac/companiond/runtime_contract.py",
131
- "sha256": "782411257ff30ea90a5afb8ff8ceefcb805c99ebdbd02c1a1ba3440f20d785c1"
151
+ "sha256": "70fa5b830d94bbae44b4d000d55f334c54f4be4008c9da560e34af4c0a709846"
132
152
  },
133
153
  {
134
154
  "path": "payload/mac/companiond/runtime_manifest.py",
@@ -148,7 +168,7 @@
148
168
  },
149
169
  {
150
170
  "path": "payload/mac/companiond/standard_push_publisher.py",
151
- "sha256": "77bcc55f10413e12b1bb8f9d86a397ff4bee97a0ec70b7d08e3cbcbbcf28b4a9"
171
+ "sha256": "a975f914a3b5d32551e3993ded5a27f9f30232a597c19cb278f21c1c99a71432"
152
172
  },
153
173
  {
154
174
  "path": "payload/mac/companiond/substrate_status_contract.py",
@@ -170,9 +190,13 @@
170
190
  "path": "payload/mac/connectd/cmd/pairling-connectd/auth_open_test.go",
171
191
  "sha256": "9d9ca4dbec86c12e68e7add21c5faafaedaa0f0a7d1d2d209c19859fa1a668bb"
172
192
  },
193
+ {
194
+ "path": "payload/mac/connectd/cmd/pairling-connectd/authkey_test.go",
195
+ "sha256": "844ca4d83d952339fb394c1b3ccbe9c0717f8fe500a9b7282eede9291bfc284b"
196
+ },
173
197
  {
174
198
  "path": "payload/mac/connectd/cmd/pairling-connectd/main.go",
175
- "sha256": "eecd2ea3f17ddef76990428e0129ed52ca7517817e11758fb1fda0f82ee41d16"
199
+ "sha256": "7bed187e340124860c49e5161a5b60338e3282d8467eec83d2f75c766f417e3c"
176
200
  },
177
201
  {
178
202
  "path": "payload/mac/connectd/cmd/pairling-connectd/upstream_health_test.go",
@@ -188,11 +212,11 @@
188
212
  },
189
213
  {
190
214
  "path": "payload/mac/connectd/internal/gateway/proxy.go",
191
- "sha256": "073ebc94bf1aa703e5b1af8d210900f208b3e5d2abbbe7f5056668c51d9b0a13"
215
+ "sha256": "ce827d08826492193b025738322ae72e3d806604968f4e7d19e3d37c78dce313"
192
216
  },
193
217
  {
194
218
  "path": "payload/mac/connectd/internal/gateway/proxy_test.go",
195
- "sha256": "d1243dfc4364e481d021ec7ca5807e9ace37a9804b0284d36bbcf2a98857cb94"
219
+ "sha256": "f45c74df51939f688bc3b3bb326d9fa103c2b39f81eb589b1e6be06731de9f3a"
196
220
  },
197
221
  {
198
222
  "path": "payload/mac/connectd/internal/runtime/config.go",
@@ -200,11 +224,11 @@
200
224
  },
201
225
  {
202
226
  "path": "payload/mac/connectd/internal/runtime/config_test.go",
203
- "sha256": "f0019dc27ff8b4bf03e6f8744cc6081266def938137dbf36b8c606ca24372100"
227
+ "sha256": "eab02d122677fbae7f6417eb232d20fc8f7945b1babf8c3d0e25ec746f71ba33"
204
228
  },
205
229
  {
206
230
  "path": "payload/mac/connectd/internal/status/status.go",
207
- "sha256": "d5fcf4688ec349370e5af03e292873c686d37c28063a6e91864113d92a5f4796"
231
+ "sha256": "b420d29797ab5cfff365077baf5043cf59c88c656c5a04fee071e61c748abaf4"
208
232
  },
209
233
  {
210
234
  "path": "payload/mac/connectd/internal/status/status_test.go",
@@ -224,19 +248,23 @@
224
248
  },
225
249
  {
226
250
  "path": "payload/mac/install/doctor.sh",
227
- "sha256": "d893083b40fb7d0e6c90e6c0ce5c40856fe428de8f5d597f529a906217de814c"
251
+ "sha256": "b20ad64348c03d33af89dd6ad72177be95a760371aae867cfd976dfe4cac4260"
228
252
  },
229
253
  {
230
254
  "path": "payload/mac/install/install-runtime.sh",
231
- "sha256": "78119310f756ec573194e1bfd07752705c74d26d6f08098e6ce28c5d0bc6cda7"
255
+ "sha256": "c45fec6a414a8b1870e9ea55e82d25b9cc1b786b882ed05f70fc0bff31a864d4"
256
+ },
257
+ {
258
+ "path": "payload/mac/install/psk_dependency_check.py",
259
+ "sha256": "c469689507f50a2d1b81312460568f8a8addf59620ec7317a0a53a0b45783547"
232
260
  },
233
261
  {
234
262
  "path": "payload/mac/install/render-launchd.py",
235
- "sha256": "9e1fe825b2bf39df85336a38f70242815196bcaaac136b915112f2e6a7c0cf53"
263
+ "sha256": "2eaec2c7deaaf850d6bc499ca91e4e5bad3a8ef63957d5f35df42204b2c0ae11"
236
264
  },
237
265
  {
238
266
  "path": "payload/mac/install/uninstall-runtime.sh",
239
- "sha256": "013913cc990133885e12559e3b382ff91b5f7cba444c72aad436ff483ace5be0"
267
+ "sha256": "8af7b3bb4de4b053888fe44a9fdb576144d6cb154bafc9b3d02edac90a7055ec"
240
268
  },
241
269
  {
242
270
  "path": "payload/mac/mcp/phone_tools.py",
@@ -248,8 +276,8 @@
248
276
  }
249
277
  ],
250
278
  "package": "pairling",
251
- "package_version": "0.1.0",
279
+ "package_version": "0.2.1",
252
280
  "schema_version": 1,
253
281
  "source_dirty": false,
254
- "source_revision": "35420e4"
282
+ "source_revision": "8efc13e9"
255
283
  }