@hraness/ghostget 0.17.2

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 (500) hide show
  1. package/CHANGELOG.md +458 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1359 -0
  4. package/bunfig.toml +2 -0
  5. package/dist/apple-photos-client.js +704 -0
  6. package/dist/beeper-client.js +4602 -0
  7. package/dist/client.js +1605 -0
  8. package/dist/index-26yq8q16.js +31 -0
  9. package/dist/index-9t13b4k7.js +508 -0
  10. package/dist/index-axwm9b3v.js +5 -0
  11. package/dist/index-gwk7rbyj.js +30 -0
  12. package/dist/index.js +701 -0
  13. package/dist/messaging.js +1130 -0
  14. package/dist/omni-client.js +1406 -0
  15. package/dist/whatsapp-client.js +355 -0
  16. package/docs/imessage-direct-provider.md +106 -0
  17. package/docs/rental-listings.md +94 -0
  18. package/package.json +600 -0
  19. package/skills/ghostget/SKILL.md +251 -0
  20. package/skills/ghostget/agents/openai.yaml +4 -0
  21. package/skills/ghostget/references/adapter-contract.md +181 -0
  22. package/skills/ghostget/references/apple-photos.md +115 -0
  23. package/skills/ghostget/references/article-drafts.md +235 -0
  24. package/skills/ghostget/references/code-owned-provider-scaffold.md +134 -0
  25. package/skills/ghostget/references/cross-posting-video.md +139 -0
  26. package/skills/ghostget/references/cross-posting.md +82 -0
  27. package/skills/ghostget/references/derivation.md +390 -0
  28. package/skills/ghostget/references/hraness-social-profile-stats.json +269 -0
  29. package/skills/ghostget/references/install.md +66 -0
  30. package/skills/ghostget/references/linkedin-adapter.md +442 -0
  31. package/skills/ghostget/references/messaging.md +168 -0
  32. package/skills/ghostget/references/meta-comet-contract.md +153 -0
  33. package/skills/ghostget/references/platform-patterns.md +122 -0
  34. package/skills/ghostget/references/provider-plugins.md +496 -0
  35. package/skills/ghostget/references/reddit-flair.md +78 -0
  36. package/skills/ghostget/references/safety-and-state.md +214 -0
  37. package/skills/ghostget/references/settlement-and-duplicate-cleanup.md +79 -0
  38. package/skills/ghostget/references/social-platform-routing.md +66 -0
  39. package/skills/ghostget/references/social-profile-stats.md +195 -0
  40. package/skills/ghostget/references/social-video-platform-routing.md +89 -0
  41. package/skills/ghostget/references/whatsapp-adapter.md +101 -0
  42. package/skills/ghostget/references/x-adapter.md +332 -0
  43. package/skills/ghostget/references/x-ai-disclosure.md +71 -0
  44. package/src/apple-photos-cli.ts +639 -0
  45. package/src/apple-photos-client-types.ts +168 -0
  46. package/src/apple-photos-client.ts +201 -0
  47. package/src/apple-photos-contact-evidence.ts +838 -0
  48. package/src/apple-photos-local-source.ts +1131 -0
  49. package/src/args.ts +2053 -0
  50. package/src/article-draft-document.ts +417 -0
  51. package/src/article-draft-embeds.ts +123 -0
  52. package/src/article-draft-images.ts +214 -0
  53. package/src/assets/adapter-template/wrench-adapter.json +40 -0
  54. package/src/assets/adapters/beeper/wrench-web-adapter.json +1500 -0
  55. package/src/assets/adapters/beeper/wrench-web-adapter.v1.0.0.json +129 -0
  56. package/src/assets/adapters/beeper/wrench-web-adapter.v1.1.0.json +207 -0
  57. package/src/assets/adapters/beeper/wrench-web-adapter.v2.0.0.json +1463 -0
  58. package/src/assets/adapters/beeper/wrench-web-adapter.v2.1.0.json +1463 -0
  59. package/src/assets/adapters/beeper/wrench-web-adapter.v2.2.0.json +1475 -0
  60. package/src/assets/adapters/beeper/wrench-web-adapter.v2.3.0.json +1488 -0
  61. package/src/assets/adapters/bluesky/wrench-web-adapter.json +684 -0
  62. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.0.0.json +581 -0
  63. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.1.0.json +581 -0
  64. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.2.0.json +581 -0
  65. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.3.0.json +615 -0
  66. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.4.0.json +684 -0
  67. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.5.0.json +684 -0
  68. package/src/assets/adapters/bluesky/wrench-web-adapter.v1.6.0.json +684 -0
  69. package/src/assets/adapters/clasificados/wrench-web-adapter.json +54 -0
  70. package/src/assets/adapters/facebook/wrench-web-adapter.json +750 -0
  71. package/src/assets/adapters/facebook/wrench-web-adapter.v1.0.0.json +706 -0
  72. package/src/assets/adapters/facebook/wrench-web-adapter.v1.1.0.json +703 -0
  73. package/src/assets/adapters/facebook/wrench-web-adapter.v1.2.0.json +750 -0
  74. package/src/assets/adapters/facebook-group/wrench-web-adapter.json +682 -0
  75. package/src/assets/adapters/facebook-group/wrench-web-adapter.v1.0.0.json +583 -0
  76. package/src/assets/adapters/facebook-group/wrench-web-adapter.v1.1.0.json +682 -0
  77. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.json +437 -0
  78. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.0.0.json +383 -0
  79. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.1.0.json +437 -0
  80. package/src/assets/adapters/facebook-marketplace/wrench-web-adapter.v1.1.1.json +437 -0
  81. package/src/assets/adapters/facebook-page/wrench-web-adapter.json +880 -0
  82. package/src/assets/adapters/facebook-page/wrench-web-adapter.v1.0.0.json +740 -0
  83. package/src/assets/adapters/facebook-page/wrench-web-adapter.v1.1.0.json +880 -0
  84. package/src/assets/adapters/github/wrench-web-adapter.json +69 -0
  85. package/src/assets/adapters/github/wrench-web-adapter.v1.0.0.json +42 -0
  86. package/src/assets/adapters/github/wrench-web-adapter.v1.1.0.json +69 -0
  87. package/src/assets/adapters/gmail/wrench-adapter.json +161 -0
  88. package/src/assets/adapters/gmail/wrench-adapter.v1.2.0.json +157 -0
  89. package/src/assets/adapters/hacker-news/wrench-web-adapter.json +315 -0
  90. package/src/assets/adapters/hacker-news/wrench-web-adapter.v1.0.0.json +315 -0
  91. package/src/assets/adapters/imessage/wrench-web-adapter.json +236 -0
  92. package/src/assets/adapters/instagram/wrench-web-adapter.json +719 -0
  93. package/src/assets/adapters/instagram/wrench-web-adapter.v1.0.0.json +627 -0
  94. package/src/assets/adapters/instagram/wrench-web-adapter.v1.1.0.json +609 -0
  95. package/src/assets/adapters/instagram/wrench-web-adapter.v1.2.0.json +640 -0
  96. package/src/assets/adapters/instagram/wrench-web-adapter.v1.3.0.json +671 -0
  97. package/src/assets/adapters/instagram/wrench-web-adapter.v1.4.0.json +710 -0
  98. package/src/assets/adapters/instagram/wrench-web-adapter.v1.5.0.json +710 -0
  99. package/src/assets/adapters/instagram/wrench-web-adapter.v1.6.0.json +719 -0
  100. package/src/assets/adapters/instagram/wrench-web-adapter.v1.7.0.json +719 -0
  101. package/src/assets/adapters/linkedin/wrench-adapter.json +442 -0
  102. package/src/assets/adapters/linkedin/wrench-adapter.v0.4.0.json +124 -0
  103. package/src/assets/adapters/linkedin/wrench-adapter.v1.0.0.json +411 -0
  104. package/src/assets/adapters/linkedin/wrench-web-adapter.json +914 -0
  105. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.0.0.json +604 -0
  106. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.1.0.json +604 -0
  107. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.10.0.json +809 -0
  108. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.11.0.json +809 -0
  109. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.12.0.json +820 -0
  110. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.13.0.json +819 -0
  111. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.14.0.json +819 -0
  112. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.15.0.json +819 -0
  113. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.16.0.json +874 -0
  114. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.17.0.json +874 -0
  115. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.18.0.json +874 -0
  116. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.19.0.json +874 -0
  117. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.2.0.json +731 -0
  118. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.3.0.json +768 -0
  119. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.4.0.json +808 -0
  120. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.5.0.json +808 -0
  121. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.6.0.json +808 -0
  122. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.7.0.json +825 -0
  123. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.8.0.json +792 -0
  124. package/src/assets/adapters/linkedin/wrench-web-adapter.v1.9.0.json +809 -0
  125. package/src/assets/adapters/reddit/wrench-web-adapter.json +855 -0
  126. package/src/assets/adapters/reddit/wrench-web-adapter.v1.0.0.json +577 -0
  127. package/src/assets/adapters/reddit/wrench-web-adapter.v1.1.0.json +604 -0
  128. package/src/assets/adapters/reddit/wrench-web-adapter.v1.10.0.json +712 -0
  129. package/src/assets/adapters/reddit/wrench-web-adapter.v1.11.0.json +712 -0
  130. package/src/assets/adapters/reddit/wrench-web-adapter.v1.12.0.json +712 -0
  131. package/src/assets/adapters/reddit/wrench-web-adapter.v1.2.0.json +653 -0
  132. package/src/assets/adapters/reddit/wrench-web-adapter.v1.3.0.json +712 -0
  133. package/src/assets/adapters/reddit/wrench-web-adapter.v1.4.0.json +713 -0
  134. package/src/assets/adapters/reddit/wrench-web-adapter.v1.5.0.json +712 -0
  135. package/src/assets/adapters/reddit/wrench-web-adapter.v1.6.0.json +713 -0
  136. package/src/assets/adapters/reddit/wrench-web-adapter.v1.7.0.json +713 -0
  137. package/src/assets/adapters/reddit/wrench-web-adapter.v1.8.0.json +713 -0
  138. package/src/assets/adapters/reddit/wrench-web-adapter.v1.9.0.json +713 -0
  139. package/src/assets/adapters/substack/wrench-web-adapter.json +936 -0
  140. package/src/assets/adapters/substack/wrench-web-adapter.v1.0.0.json +817 -0
  141. package/src/assets/adapters/substack/wrench-web-adapter.v1.1.0.json +812 -0
  142. package/src/assets/adapters/substack/wrench-web-adapter.v1.2.0.json +812 -0
  143. package/src/assets/adapters/substack/wrench-web-adapter.v1.3.0.json +902 -0
  144. package/src/assets/adapters/substack/wrench-web-adapter.v1.4.0.json +936 -0
  145. package/src/assets/adapters/substack/wrench-web-adapter.v1.5.0.json +936 -0
  146. package/src/assets/adapters/substack/wrench-web-adapter.v1.6.0.json +936 -0
  147. package/src/assets/adapters/threads/wrench-web-adapter.json +692 -0
  148. package/src/assets/adapters/threads/wrench-web-adapter.v1.0.0.json +629 -0
  149. package/src/assets/adapters/threads/wrench-web-adapter.v1.1.0.json +623 -0
  150. package/src/assets/adapters/threads/wrench-web-adapter.v1.2.0.json +622 -0
  151. package/src/assets/adapters/threads/wrench-web-adapter.v1.3.0.json +622 -0
  152. package/src/assets/adapters/threads/wrench-web-adapter.v1.4.0.json +622 -0
  153. package/src/assets/adapters/threads/wrench-web-adapter.v1.5.0.json +699 -0
  154. package/src/assets/adapters/threads/wrench-web-adapter.v1.6.0.json +693 -0
  155. package/src/assets/adapters/threads/wrench-web-adapter.v1.7.0.json +692 -0
  156. package/src/assets/adapters/tiktok/wrench-web-adapter.json +762 -0
  157. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.0.0.json +681 -0
  158. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.1.0.json +708 -0
  159. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.2.0.json +762 -0
  160. package/src/assets/adapters/tiktok/wrench-web-adapter.v1.3.0.json +762 -0
  161. package/src/assets/adapters/twitch/wrench-web-adapter.json +42 -0
  162. package/src/assets/adapters/twitch/wrench-web-adapter.v1.0.0.json +42 -0
  163. package/src/assets/adapters/whatsapp/wrench-web-adapter.json +400 -0
  164. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.0.0.json +355 -0
  165. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.1.0.json +386 -0
  166. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.2.0.json +386 -0
  167. package/src/assets/adapters/whatsapp/wrench-web-adapter.v1.3.0.json +400 -0
  168. package/src/assets/adapters/x/wrench-adapter.json +749 -0
  169. package/src/assets/adapters/x/wrench-adapter.v1.0.0.json +700 -0
  170. package/src/assets/adapters/x/wrench-adapter.v1.1.0.json +707 -0
  171. package/src/assets/adapters/x/wrench-web-adapter.json +712 -0
  172. package/src/assets/adapters/x/wrench-web-adapter.v1.1.0.json +579 -0
  173. package/src/assets/adapters/x/wrench-web-adapter.v1.10.0.json +685 -0
  174. package/src/assets/adapters/x/wrench-web-adapter.v1.11.0.json +712 -0
  175. package/src/assets/adapters/x/wrench-web-adapter.v1.12.0.json +712 -0
  176. package/src/assets/adapters/x/wrench-web-adapter.v1.13.0.json +712 -0
  177. package/src/assets/adapters/x/wrench-web-adapter.v1.2.0.json +578 -0
  178. package/src/assets/adapters/x/wrench-web-adapter.v1.3.0.json +610 -0
  179. package/src/assets/adapters/x/wrench-web-adapter.v1.4.0.json +617 -0
  180. package/src/assets/adapters/x/wrench-web-adapter.v1.5.0.json +634 -0
  181. package/src/assets/adapters/x/wrench-web-adapter.v1.6.0.json +632 -0
  182. package/src/assets/adapters/x/wrench-web-adapter.v1.7.0.json +649 -0
  183. package/src/assets/adapters/x/wrench-web-adapter.v1.8.0.json +649 -0
  184. package/src/assets/adapters/x/wrench-web-adapter.v1.9.0.json +683 -0
  185. package/src/assets/adapters/youtube/wrench-web-adapter.json +561 -0
  186. package/src/assets/adapters/youtube/wrench-web-adapter.v1.0.0.json +465 -0
  187. package/src/assets/adapters/youtube/wrench-web-adapter.v1.1.0.json +519 -0
  188. package/src/assets/adapters/youtube/wrench-web-adapter.v1.2.0.json +561 -0
  189. package/src/assets/adapters/youtube/wrench-web-adapter.v1.3.0.json +561 -0
  190. package/src/assets/code-owned-provider-template/plugin.test.ts.template +54 -0
  191. package/src/assets/code-owned-provider-template/plugin.ts.template +102 -0
  192. package/src/assets/code-owned-provider-template/runtime.internal.test.ts.template +44 -0
  193. package/src/assets/code-owned-provider-template/runtime.ts.template +59 -0
  194. package/src/assets/code-owned-provider-template/wrench-adapter.json.template +33 -0
  195. package/src/assets/fonts/nebula-sans/LICENSE.txt +96 -0
  196. package/src/assets/fonts/nebula-sans/NebulaSans-Book.woff2 +0 -0
  197. package/src/assets/fonts/nebula-sans/PROVENANCE.md +14 -0
  198. package/src/assets.d.ts +4 -0
  199. package/src/auth.ts +1157 -0
  200. package/src/beeper-client-types.ts +169 -0
  201. package/src/beeper-client.ts +250 -0
  202. package/src/beeper-contact-interactions-cli.ts +180 -0
  203. package/src/beeper-contact-interactions.ts +1612 -0
  204. package/src/beeper-message-bundle-v1.ts +257 -0
  205. package/src/beeper-message-like-me-cli.ts +84 -0
  206. package/src/beeper-message-like-me-export.ts +2274 -0
  207. package/src/beeper-message-like-me-recovery.ts +931 -0
  208. package/src/beeper-message-like-me-source.ts +4034 -0
  209. package/src/browser-admission.ts +928 -0
  210. package/src/browser-snapshots.ts +260 -0
  211. package/src/browser.ts +3873 -0
  212. package/src/canonical-json.ts +60 -0
  213. package/src/catalog-cli.ts +638 -0
  214. package/src/cli.ts +208 -0
  215. package/src/client-types.ts +301 -0
  216. package/src/client.ts +2726 -0
  217. package/src/confirmed-write-failure.ts +44 -0
  218. package/src/confirmed-write-model.ts +72 -0
  219. package/src/confirmed-write-platform.ts +1055 -0
  220. package/src/confirmed-write-program.ts +224 -0
  221. package/src/confirmed-write-runtime.ts +16 -0
  222. package/src/cursor-token.ts +228 -0
  223. package/src/derivation-dnr-readiness.ts +367 -0
  224. package/src/derivation-file-chooser.ts +384 -0
  225. package/src/derivation-network-boundary.ts +835 -0
  226. package/src/derivation-network-guard.ts +782 -0
  227. package/src/derivation-network-proxy-helper.ts +440 -0
  228. package/src/derivation-network-proxy.ts +385 -0
  229. package/src/derive-command-helper.ts +693 -0
  230. package/src/derive-fixtures.ts +343 -0
  231. package/src/derive-review.ts +980 -0
  232. package/src/derive.ts +4754 -0
  233. package/src/fixtures/beeper-message-like-me-v1/accounts.ndjson +2 -0
  234. package/src/fixtures/beeper-message-like-me-v1/conversations.ndjson +1 -0
  235. package/src/fixtures/beeper-message-like-me-v1/manifest.json +1 -0
  236. package/src/fixtures/beeper-message-like-me-v1/messages.ndjson +2 -0
  237. package/src/fixtures/beeper-message-like-me-v1/participants.ndjson +3 -0
  238. package/src/fixtures/beeper-message-like-me-v1/reactions.ndjson +1 -0
  239. package/src/fixtures/beeper-message-like-me-v1/tombstones.ndjson +1 -0
  240. package/src/ghostget.ts +3672 -0
  241. package/src/gmail-capture.ts +1244 -0
  242. package/src/har-internal.ts +1242 -0
  243. package/src/har.ts +743 -0
  244. package/src/index.ts +218 -0
  245. package/src/invocation-read-platform.ts +55 -0
  246. package/src/invocation-read-program.ts +93 -0
  247. package/src/invocation-read-runtime.ts +11 -0
  248. package/src/linked-device-lifecycle-admission.ts +450 -0
  249. package/src/linked-device-lifecycle-journal.ts +1560 -0
  250. package/src/linked-device-lifecycle-runtime.ts +1602 -0
  251. package/src/local-cli-admission.ts +135 -0
  252. package/src/local-cli-contracts.ts +271 -0
  253. package/src/local-cli-execution.ts +98 -0
  254. package/src/local-cli-surface-contract.ts +1510 -0
  255. package/src/local-cli-tool-identity.ts +336 -0
  256. package/src/media/archive.ts +2325 -0
  257. package/src/media/args.ts +303 -0
  258. package/src/media/cli.ts +287 -0
  259. package/src/media/doctor.ts +475 -0
  260. package/src/media/ffmpeg.ts +1330 -0
  261. package/src/media/http-capture.ts +711 -0
  262. package/src/media/http-probe.ts +593 -0
  263. package/src/media/http.ts +387 -0
  264. package/src/media/index.ts +10 -0
  265. package/src/media/local-transcription.ts +613 -0
  266. package/src/media/lock.ts +321 -0
  267. package/src/media/manifest.ts +1712 -0
  268. package/src/media/metadata.ts +906 -0
  269. package/src/media/process.ts +723 -0
  270. package/src/media/revision.ts +166 -0
  271. package/src/media/runtime-closure.ts +1063 -0
  272. package/src/media/source-router.ts +187 -0
  273. package/src/media/transcriber-config.ts +1122 -0
  274. package/src/media/transcript-persistence-model.ts +15 -0
  275. package/src/media/transcript-persistence-platform.ts +89 -0
  276. package/src/media/transcript-persistence-program.ts +39 -0
  277. package/src/media/transcript-persistence-runtime.ts +24 -0
  278. package/src/media/transcript.ts +616 -0
  279. package/src/media/utf8-order.ts +30 -0
  280. package/src/media/whisper-cpp.ts +464 -0
  281. package/src/media/whisper-language.ts +58 -0
  282. package/src/media/yt-dlp.ts +439 -0
  283. package/src/message-like-me-agentic-messaging.ts +882 -0
  284. package/src/messaging-action-store.ts +793 -0
  285. package/src/messaging-runtime.ts +2136 -0
  286. package/src/messaging-store.ts +539 -0
  287. package/src/messaging-types.ts +1663 -0
  288. package/src/messaging.ts +334 -0
  289. package/src/model.ts +2671 -0
  290. package/src/oauth-google.ts +888 -0
  291. package/src/omni-client-types.ts +306 -0
  292. package/src/omni-client.ts +2225 -0
  293. package/src/omni-limits.ts +34 -0
  294. package/src/omni-model.ts +1614 -0
  295. package/src/omni-request.ts +379 -0
  296. package/src/omni-runtime.ts +1632 -0
  297. package/src/operation-deadline.ts +189 -0
  298. package/src/path-helper.ts +1656 -0
  299. package/src/pinned-https.ts +194 -0
  300. package/src/plan-assets.ts +832 -0
  301. package/src/platform-catalog.ts +1832 -0
  302. package/src/plugins/beeper-linked-device/plugin.ts +310 -0
  303. package/src/plugins/bluesky-web/plugin.ts +178 -0
  304. package/src/plugins/clasificados-web/plugin.ts +66 -0
  305. package/src/plugins/github-web/plugin.ts +80 -0
  306. package/src/plugins/gmail-official/plugin.ts +110 -0
  307. package/src/plugins/hacker-news-web/plugin.ts +52 -0
  308. package/src/plugins/imessage-direct/plugin.ts +195 -0
  309. package/src/plugins/imessage-direct/vendor/0001-fix-keep-AppleScript-send-payloads-out-of-child-argv.patch +1430 -0
  310. package/src/plugins/imessage-direct/vendor/0002-feat-rpc-add-exact-chat-lookup.patch +225 -0
  311. package/src/plugins/imessage-direct/vendor/provenance.json +80 -0
  312. package/src/plugins/linkedin-official/plugin.ts +84 -0
  313. package/src/plugins/linkedin-web/plugin.ts +412 -0
  314. package/src/plugins/meta-web/plugin.ts +317 -0
  315. package/src/plugins/reddit-web/flair.ts +492 -0
  316. package/src/plugins/reddit-web/plugin.ts +477 -0
  317. package/src/plugins/substack-web/plugin.ts +124 -0
  318. package/src/plugins/tiktok-web/plugin.ts +67 -0
  319. package/src/plugins/twitch-web/plugin.ts +54 -0
  320. package/src/plugins/whatsapp-linked-device/plugin.ts +105 -0
  321. package/src/plugins/x-official/plugin.ts +64 -0
  322. package/src/plugins/x-web/plugin.ts +488 -0
  323. package/src/plugins/youtube-web/plugin.ts +101 -0
  324. package/src/portable-run-recovery.ts +466 -0
  325. package/src/process-identity.ts +501 -0
  326. package/src/profile-clone-helper.ts +104 -0
  327. package/src/provider-catalog-views.ts +51 -0
  328. package/src/provider-context.ts +69 -0
  329. package/src/provider-contract-definitions-x.ts +45 -0
  330. package/src/provider-contract-definitions.ts +948 -0
  331. package/src/provider-contract-input-gmail.ts +176 -0
  332. package/src/provider-contract-input-linkedin.ts +77 -0
  333. package/src/provider-contract-input-x.ts +304 -0
  334. package/src/provider-contract-planning.ts +23 -0
  335. package/src/provider-contract-semantic-identity.ts +54 -0
  336. package/src/provider-contracts.ts +251 -0
  337. package/src/provider-http.ts +723 -0
  338. package/src/provider-plugin-auth.ts +36 -0
  339. package/src/provider-plugin-builtins.ts +229 -0
  340. package/src/provider-plugin-cleanup-barrier.ts +229 -0
  341. package/src/provider-plugin-cleanup-execution.ts +79 -0
  342. package/src/provider-plugin-cleanup-resource.ts +470 -0
  343. package/src/provider-plugin-contract-identity.ts +707 -0
  344. package/src/provider-plugin-host.ts +1972 -0
  345. package/src/provider-plugin-identifiers.ts +60 -0
  346. package/src/provider-plugin-invocation-lease.ts +889 -0
  347. package/src/provider-plugin-lifecycle-kernel.ts +566 -0
  348. package/src/provider-plugin-lifecycle.ts +1455 -0
  349. package/src/provider-plugin-module-analysis.ts +336 -0
  350. package/src/provider-plugin-package.ts +2530 -0
  351. package/src/provider-plugin-portable-authority.ts +106 -0
  352. package/src/provider-plugin-portable-catalog.ts +94 -0
  353. package/src/provider-plugin-portable-identity.ts +315 -0
  354. package/src/provider-plugin-portable-runtime.ts +2057 -0
  355. package/src/provider-plugin-protocol.ts +1625 -0
  356. package/src/provider-plugin-registry.ts +3342 -0
  357. package/src/provider-plugin-store.ts +2155 -0
  358. package/src/provider-plugin-test-fixture.ts +5 -0
  359. package/src/provider-plugin.ts +4907 -0
  360. package/src/provider-plugins.generated.ts +43 -0
  361. package/src/provider-plugins.ts +8 -0
  362. package/src/provider-subject.ts +41 -0
  363. package/src/provider.ts +315 -0
  364. package/src/providers/beeper-local-runtime.ts +5426 -0
  365. package/src/providers/beeper-local.ts +2739 -0
  366. package/src/providers/beeper-messaging.ts +462 -0
  367. package/src/providers/beeper-omni.ts +1159 -0
  368. package/src/providers/bluesky-web-runtime.ts +2895 -0
  369. package/src/providers/bluesky-web.ts +1614 -0
  370. package/src/providers/clasificados-web-runtime.ts +255 -0
  371. package/src/providers/clasificados-web.ts +503 -0
  372. package/src/providers/contact-projection.ts +301 -0
  373. package/src/providers/github-read-model.ts +94 -0
  374. package/src/providers/github-read-platform.ts +165 -0
  375. package/src/providers/github-read-program.ts +97 -0
  376. package/src/providers/github-web-runtime.ts +320 -0
  377. package/src/providers/github-web.ts +403 -0
  378. package/src/providers/gmail-api.ts +2834 -0
  379. package/src/providers/gmail-omni.ts +830 -0
  380. package/src/providers/gmail.ts +1130 -0
  381. package/src/providers/hacker-news-web-runtime.ts +220 -0
  382. package/src/providers/hacker-news-web.ts +809 -0
  383. package/src/providers/imessage-direct-install.ts +354 -0
  384. package/src/providers/imessage-direct-messaging.ts +532 -0
  385. package/src/providers/imessage-direct-omni.ts +400 -0
  386. package/src/providers/imessage-direct-runtime.ts +1498 -0
  387. package/src/providers/imessage-direct.ts +351 -0
  388. package/src/providers/instagram-video-foundations.ts +913 -0
  389. package/src/providers/instagram-web-profile-browser.ts +600 -0
  390. package/src/providers/iso-bmff.ts +338 -0
  391. package/src/providers/linkedin-company-platform.ts +42 -0
  392. package/src/providers/linkedin-company-program.ts +88 -0
  393. package/src/providers/linkedin-contact-failure.ts +84 -0
  394. package/src/providers/linkedin-contact-platform.ts +45 -0
  395. package/src/providers/linkedin-contact-program.ts +91 -0
  396. package/src/providers/linkedin-profile-activity-failure.ts +76 -0
  397. package/src/providers/linkedin-profile-activity-platform.ts +41 -0
  398. package/src/providers/linkedin-profile-activity-program.ts +67 -0
  399. package/src/providers/linkedin-read-failure.ts +52 -0
  400. package/src/providers/linkedin-self-platform.ts +53 -0
  401. package/src/providers/linkedin-self-program.ts +122 -0
  402. package/src/providers/linkedin-web-article-browser.ts +794 -0
  403. package/src/providers/linkedin-web-bootstrap.ts +146 -0
  404. package/src/providers/linkedin-web-contact.ts +830 -0
  405. package/src/providers/linkedin-web-feed-browser.ts +832 -0
  406. package/src/providers/linkedin-web-feed.ts +864 -0
  407. package/src/providers/linkedin-web-post-browser.ts +653 -0
  408. package/src/providers/linkedin-web-profile-browser.ts +683 -0
  409. package/src/providers/linkedin-web-runtime.ts +2388 -0
  410. package/src/providers/linkedin-web.ts +3305 -0
  411. package/src/providers/linkedin.ts +1885 -0
  412. package/src/providers/meta-bootstrap.ts +1043 -0
  413. package/src/providers/meta-facebook-group.ts +690 -0
  414. package/src/providers/meta-marketplace-relay.ts +747 -0
  415. package/src/providers/meta-omni.ts +373 -0
  416. package/src/providers/meta-relay-bundle.ts +1049 -0
  417. package/src/providers/meta-web-descriptors.ts +1740 -0
  418. package/src/providers/meta-web-runtime.ts +3388 -0
  419. package/src/providers/meta-web.ts +2931 -0
  420. package/src/providers/read-failure.ts +139 -0
  421. package/src/providers/reddit-omni.ts +462 -0
  422. package/src/providers/reddit-web-runtime.ts +1929 -0
  423. package/src/providers/reddit-web.ts +1611 -0
  424. package/src/providers/rental-listings.ts +460 -0
  425. package/src/providers/substack-omni.ts +406 -0
  426. package/src/providers/substack-video-mp4.ts +33 -0
  427. package/src/providers/substack-web-runtime.ts +2812 -0
  428. package/src/providers/substack-web.ts +1502 -0
  429. package/src/providers/tiktok-video-mp4.ts +33 -0
  430. package/src/providers/tiktok-web-runtime.ts +770 -0
  431. package/src/providers/tiktok-web.ts +2786 -0
  432. package/src/providers/twitch-web-runtime.ts +226 -0
  433. package/src/providers/twitch-web.ts +274 -0
  434. package/src/providers/whatsapp-account-identity.ts +55 -0
  435. package/src/providers/whatsapp-contact-projection-helper.ts +874 -0
  436. package/src/providers/whatsapp-contact-projection-protocol.ts +403 -0
  437. package/src/providers/whatsapp-interaction-projection-helper.ts +1452 -0
  438. package/src/providers/whatsapp-interaction-projection-protocol.ts +462 -0
  439. package/src/providers/whatsapp-message-export-projection-protocol.ts +532 -0
  440. package/src/providers/whatsapp-messaging.ts +132 -0
  441. package/src/providers/whatsapp-omni.ts +586 -0
  442. package/src/providers/whatsapp-web-runtime.ts +3108 -0
  443. package/src/providers/whatsapp-web.ts +1037 -0
  444. package/src/providers/x-image-provenance.ts +523 -0
  445. package/src/providers/x-made-with-ai.ts +106 -0
  446. package/src/providers/x-transaction-id.ts +413 -0
  447. package/src/providers/x-web-runtime.ts +3485 -0
  448. package/src/providers/x-web.ts +2332 -0
  449. package/src/providers/x.ts +1889 -0
  450. package/src/providers/youtube-web-runtime.ts +1400 -0
  451. package/src/providers/youtube-web.ts +1221 -0
  452. package/src/read-admission-runtime.ts +91 -0
  453. package/src/read-client.ts +521 -0
  454. package/src/read-effect-platform.ts +7 -0
  455. package/src/read-effect-runtime.ts +14 -0
  456. package/src/read-effect.ts +52 -0
  457. package/src/read-projection-admission.ts +866 -0
  458. package/src/read-projections.ts +3151 -0
  459. package/src/recovery.ts +1492 -0
  460. package/src/reviewed-template.ts +146 -0
  461. package/src/run-journal.ts +1272 -0
  462. package/src/runtime.ts +5116 -0
  463. package/src/scripts/generate-provider-plugin-catalog.ts +121 -0
  464. package/src/scripts/install-whatsapp-protocol.sh +232 -0
  465. package/src/scripts/recover-install-stages.ts +1491 -0
  466. package/src/scripts/resolve-state-home.ts +30 -0
  467. package/src/scripts/scaffold-web-provider.ts +973 -0
  468. package/src/scripts/sync-bundled-adapters.ts +695 -0
  469. package/src/session-secrets.ts +1183 -0
  470. package/src/state-helper.bunfig.toml +2 -0
  471. package/src/state-helper.ts +2914 -0
  472. package/src/storage.ts +3842 -0
  473. package/src/transport-policy.ts +2 -0
  474. package/src/usage.ts +182 -0
  475. package/src/version.ts +2 -0
  476. package/src/web-session-authentication-policy.ts +136 -0
  477. package/src/web-session-cleanup-admission.ts +2344 -0
  478. package/src/web-session-cleanup-join.ts +99 -0
  479. package/src/web-session-client.ts +996 -0
  480. package/src/web-session-contract-definitions.ts +820 -0
  481. package/src/web-session-contract-planning.ts +42 -0
  482. package/src/web-session-contracts.ts +228 -0
  483. package/src/web-session-cookies.ts +500 -0
  484. package/src/web-session-execution.ts +385 -0
  485. package/src/web-session-http.ts +373 -0
  486. package/src/web-session-read-errors.ts +19 -0
  487. package/src/web-session-read-runtime.ts +124 -0
  488. package/src/web-session-recovery.ts +818 -0
  489. package/src/web-session-sites.ts +58 -0
  490. package/src/web-session-template.ts +994 -0
  491. package/src/web-session.ts +93 -0
  492. package/src/whatsapp-client-binding.ts +21 -0
  493. package/src/whatsapp-client-types.ts +75 -0
  494. package/src/whatsapp-client.ts +395 -0
  495. package/src/whatsapp-export-coordinate.ts +17 -0
  496. package/src/whatsapp-message-bundle-v2.ts +195 -0
  497. package/src/whatsapp-message-like-me-cli.ts +195 -0
  498. package/src/whatsapp-message-like-me-export.ts +1072 -0
  499. package/src/whatsapp-message-like-me-source.ts +1012 -0
  500. package/tsconfig.json +67 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,458 @@
1
+ # Changelog
2
+
3
+ Versioned sections identify checked package source. Starting with v0.16.13,
4
+ a version is publicly released after its exact canonical GitHub archive and
5
+ provenance are published in an immutable Release. npm mirrors are optional.
6
+ Historical entries retain their original delivery coordinates.
7
+
8
+ ## Unreleased
9
+
10
+ ## 0.17.2 - 2026-09-10
11
+
12
+ - Publish `@hraness/ghostget` to npm as ordinary software by owner decision:
13
+ the package carries no `contentPolicy` declaration and no `DISCLOSURE` file,
14
+ matching the other Hraness listings, and the optional npm mirror publishes
15
+ directly through the workflow's trusted publisher instead of a staged
16
+ publish that needs two-factor promotion. The exact canonical GitHub archive
17
+ remains the release authority.
18
+
19
+ ## 0.17.1 - 2026-09-10
20
+
21
+ - Read GitHub job logs with `--allow-escape-sequences` during release source
22
+ admission; the hosted runner's current `gh` otherwise refuses logs that carry
23
+ terminal escape sequences, which failed the `v0.17.0` request before any
24
+ canonical asset was built. That tag and run are retained without assets.
25
+
26
+ ## 0.17.0 - 2026-09-09
27
+
28
+ - Rename the project, CLI, SDK package, and public Agent Skill to Ghostget, with
29
+ `ghostget.com` as the canonical website and `@hraness/ghostget` as the package.
30
+ - Preserve existing local state, encrypted records, receipts, and adapter
31
+ formats during the upgrade. New installations use Ghostget names; the
32
+ [migration guide](docs/ghostget-migration.md) lists compatibility names.
33
+ - Keep historical release coordinates and the original first-capture recording
34
+ intact, with the recording identified as predating the rename.
35
+
36
+ ## 0.16.17 - 2026-09-09
37
+
38
+ - Adopt published Sweet Cookie 0.4.3 through KB 0.19.6 and the exact verification
39
+ dependency. Retain explicit browser keychain selection for custom profiles.
40
+ - Reject opaque partition metadata in cookie-file web sessions before request
41
+ replay, including malformed flags and opaque records without a partition key.
42
+
43
+ ## 0.16.16 - 2026-09-09
44
+
45
+ - Retry exact claim-read drift during browser admission after ownership
46
+ reconciliation, preserving the two-browser cap, deadlines, and unsafe-state
47
+ refusal. Retain immutable v0.16.15 and its failed mirror evidence.
48
+
49
+ ## 0.16.15 - 2026-09-09
50
+
51
+ - Pin consumer compiler and declaration versions to the qualified source tuple;
52
+ retain strict checks and log resolved identities.
53
+ - Preserve both failed v0.16.14 attempts and their evidence. Neither published
54
+ artifacts.
55
+
56
+ ## 0.16.14 - 2026-09-09
57
+
58
+ - Check the real canonical npm archive in required PR CI before tagging, using
59
+ the same pinned Node and npm versions as the release workflow. Retain Bun
60
+ package checks and exact archive, payload, provenance, and install admission.
61
+ - Retain the failed v0.16.13 tag: its source gate passed, but canonical archive
62
+ preparation exceeded the compressed-byte ceiling before any asset upload.
63
+ This version becomes public only after its own immutable Release succeeds.
64
+
65
+ ## 0.16.13 - 2026-09-09
66
+
67
+ - Distribute the same named CLI and seven SDK exports through a versioned
68
+ GitHub Release archive with an exact manifest, checksums, signed provenance,
69
+ and isolated installation checks. Keep existing dependency pins.
70
+ - Publish canonical artifacts independently of npm staging. Optional npm
71
+ mirrors consume identical verified archive bytes and retain stage-only OIDC,
72
+ durable intent, unsafe-configuration checks, and required two-factor promotion.
73
+ - Admit production through immutable canonical artifact evidence and independent
74
+ promotion provenance verification while retaining the exact source, App,
75
+ canary, conditional ref write, revocation, provider, and public-readback guards.
76
+
77
+ ## 0.16.12 - 2026-09-08
78
+
79
+ - Add LinkedIn `contacts.read` for first-degree Contact info with bounded reads
80
+ and exact account and profile identity checks.
81
+ - Compile shared website styles while preserving typography, keyboard focus,
82
+ touch targets, forced colors, and reduced motion.
83
+
84
+ ## 0.16.11 - 2026-09-07
85
+
86
+ - Own LinkedIn profile-activity browser acquisition, current-account binding,
87
+ independent profile observation, bounded page projection and native cleanup
88
+ in an Effect 3.22.1 program. Keep pagination, result shapes and close order.
89
+ - Use producer-owned identity evidence and typed browser failures for account
90
+ mismatch and authentication repair; diagnostic text cannot grant either.
91
+ - Own the complete R2/R3 confirmation lifecycle in one native Effect program:
92
+ claim validation, durable journal/receipt/ledger/recovery preparation, dispatch,
93
+ result reconciliation and cleanup. Keep the public Promise interfaces and
94
+ existing preview, confirmation and at-most-once authority.
95
+ - Persist dispatch and accepted-target callbacks synchronously before their
96
+ returned Promises can be awaited. Preserve the exact selected native cleanup
97
+ rejection, including falsey values, while earlier causes remain private.
98
+ - Retain physical cleanup custody and durable recovery after uncertain native
99
+ work. Lost acknowledgment withholds unproven output and never permits an
100
+ automatic resubmission; journal-proven output survives a repairable projection
101
+ failure without repeating execution.
102
+
103
+ ## 0.16.10 - 2026-09-07
104
+
105
+ - Show the Ra mark and five social links in the shared website footer, with
106
+ compact spacing and the existing mailing signup.
107
+ - Report Reddit read throttling as a structured retryable failure. Validate
108
+ retry metadata and keep provider response details out of public diagnostics.
109
+
110
+ ## 0.16.9 - 2026-09-06
111
+
112
+ - Move R1 read receipt sequencing, deadline handling, cleanup admission, GitHub
113
+ organization reads, and LinkedIn self-profile and company reads into bounded
114
+ Effect 3.22.1 programs. Preserve public Promise interfaces, result projections,
115
+ and R2/R3 write dispatch rules. Require typed identity-response metadata for
116
+ the reviewed LinkedIn transport fallback.
117
+ - Prevent GitHub read retries when response cleanup fails or times out, including
118
+ cancellation that rejects without an error value. Keep cleanup causes private.
119
+ - Wait for native cleanup proof before releasing authenticated read admission.
120
+ A 30-second cleanup-join deadline retains unsafe admission; late cleanup cannot
121
+ upgrade that settled outcome. Preserve contained-browser ownership and
122
+ private-root checks.
123
+ - Keep built-in durable contract identities fixed while deriving and revalidating
124
+ the complete current source/dependency closure. Reuse pre-encoded UTF-8 sort
125
+ keys during dependency discovery; fresh trust observations and byte ordering
126
+ remain unchanged. The added Effect dependency expands that inspected graph.
127
+ - Refresh the reviewed X UserTweets query descriptor and bind changed user
128
+ identity shapes to the requested account. When the response omits user-level
129
+ identity, require matching authored-post evidence; reject contradictory or
130
+ unproven identities with structured contract-drift refusal.
131
+
132
+ ## 0.16.8 - 2026-09-06
133
+
134
+ - Preserve completed LinkedIn profile and organization statistics and Instagram
135
+ profile statistics when their contained browser exits naturally just after
136
+ the single close attempt. Cleanup may retry only one strict, no-effect
137
+ convergence proof: exact dead owner, two inactive session reads, unchanged
138
+ private roots, three spaced CDP refusals, and a final owner, session, and root
139
+ reproof before the existing durable journals remove either root. Never repeat
140
+ the provider read, close attempt, or termination signal, and keep malformed,
141
+ identity-drifted, root-replaced, CDP-ambiguous, and claim-drifted states
142
+ fail-closed.
143
+ - Bind LinkedIn profile-activity requests to the observed REST.li variable
144
+ ordering and escaping. Treat the current `total: 0` response as a terminal
145
+ page, and advance from a positive paging total without inventing a missing
146
+ next link.
147
+
148
+ ## 0.16.7 - 2026-09-05
149
+
150
+ - Recover a same-boot contained-browser cleanup when its pinned daemon exits
151
+ naturally between the initial live-owner proof and the first session read.
152
+ Require repeated inactive-session and unchanged private-root proofs, then a
153
+ final dead-owner proof plus three consecutive CDP refusals; issue no close
154
+ or signal on this path.
155
+
156
+ ## 0.16.6 - 2026-09-05
157
+
158
+ - Add Beeper `contacts.list@3` on beeper-linked-device 2.4.0 as a Desktop
159
+ loopback contract that walks `hasMore` and `oldestCursor` pages up to the
160
+ existing 200-item bound and returns an opaque continuation when more remain.
161
+ Keep contracts 1 and 2 on official CLI 0.6.2 with the first-page window.
162
+ - Page a signed-in LinkedIn member's recent-activity feed through
163
+ `linkedin-web feeds.read@2` (`feed=profile-activity`) with durable URNs,
164
+ commentary, and engagement counts when LinkedIn supplies them. Keep the
165
+ home-feed reservation as archived `feeds.read@1`.
166
+ - Add observed Reddit `flair.user.choices` and `flair.post.choices` reads
167
+ through the exact old-Reddit selector contract. Selection writes stay
168
+ `capture-required`.
169
+ - Move Instagram authenticated-web profile statistics reads into a contained
170
+ browser session with fail-closed drift handling.
171
+ - Align the public website with the shared Hraness footer and marketing
172
+ design contracts.
173
+
174
+ ## 0.16.5 - 2026-09-04
175
+
176
+ - Require the production-outcome job after either mutually exclusive ref path,
177
+ so an intentionally skipped alternate writer can no longer suppress terminal
178
+ Vercel and public-site verification.
179
+ - Emit a canonical release marker only from a verified Production build and
180
+ bind the apex, Beeper guide, `llms.txt`, `www` redirect, GitHub deployment,
181
+ immutable Release, tag, and exact Vercel deployment URL before promotion
182
+ succeeds.
183
+ - Treat Vercel custom-domain auto-assignment as a persistent project invariant
184
+ with exact setting-only admission and fail-closed staged-deployment recovery.
185
+ - Allow GitHub's Latest Release projection a bounded create-only convergence
186
+ window pinned to its exact predecessor, while existing releases and terminal
187
+ readbacks remain immediate and exact.
188
+ - Require fresh signed-in administrator proof of immutable Releases and the
189
+ no-bypass version-tag update/deletion ruleset before a release tag is pushed.
190
+
191
+ ## 0.16.4 - 2026-09-03
192
+
193
+ - Add public `clasificados-web listings.search` for reviewed San Juan rental
194
+ list pages. Return canonical listing URLs, rent, beds, baths, and a
195
+ neighborhood derived from street, ZIP, known address, or list-card
196
+ coordinates rather than broker copy. Document the Zillow-group PerimeterX
197
+ and Puerto Rico MLS public-search blockers instead of shipping capture-required
198
+ stubs.
199
+ - Add bounded Apple Photos contact evidence through a detached private worker.
200
+ The worker captures full Photos and Contacts SQLite databases with `VACUUM
201
+ INTO`, so transient copies can contain unselected columns and raw blobs even
202
+ though returned JSON excludes them. Wrench never opens, copies, or asks
203
+ Photos to materialize referenced photo or video asset files.
204
+ - Add a native, read-only WhatsApp Message Like Me schema-2 export from one
205
+ existing Wacli 0.15.0 local store. The seven-file private bundle excludes
206
+ proven PN/LID self chats and reactions, reports incomplete local-history and
207
+ `reaction-state-unproven` evidence when applicable, and cannot pair, sync, or
208
+ send.
209
+ - Publish dedicated Apple Photos and WhatsApp SDK entrypoints and bind the
210
+ WhatsApp consumer to immutable Message Like Me v0.7.0 contract bytes.
211
+ Runtime Wacli admission verifies the official release, exact SHA-256, and
212
+ offline code signature; the installer separately repeats online notarization.
213
+ - Version the complete reviewed Beeper CLI 0.6.2 surface independently from the
214
+ executable identity. The v2.3 adapter exposes 32 semantic operations, keeps
215
+ every other command explicitly classified, retains v2.2, v2.1, and v2.0 as
216
+ exact upgrade baselines, and leaves destructive or unbounded surfaces inert.
217
+ - Export one bounded page of the signed-in X account's bookmarks, keyed by
218
+ `post_id`, while resolving the reviewed Bookmarks operation across overlapping
219
+ webpack maps.
220
+ - Publish an Omarchy desktop-root news take that keeps a session-wide host
221
+ privilege grant distinct from one named, release-attested Wrench operation.
222
+ - Require immutable, canonically timestamped GitHub Releases for completed
223
+ release ordering. Bind release and promotion to exact source, main, workflow,
224
+ and high-privilege control ancestry before and after irreversible publication,
225
+ while preserving uncertain post-publication evidence without rollback.
226
+ - Bind production promotion to a one-repository release App, an explicit
227
+ expected-old Git lease, and terminal Vercel outcome evidence. Keep the
228
+ established production ref protected against deletion, non-fast-forward
229
+ movement, and ordinary-writer updates.
230
+
231
+ ## 0.16.3 - 2026-09-01
232
+
233
+ `@hraness/wrench@0.16.3` is an irreversibly consumed stale-source npm-only
234
+ coordinate from `c2d956ca4102d38c29e24ca4e13f26ce862b47f3`. npm published it
235
+ on 2026-09-03, but it has no matching Git tag, GitHub Release, or production
236
+ promotion, and it is not a completed Wrench release.
237
+
238
+ - Redesign the release-bound product site around a result-first hero, a
239
+ three-step proof, a capability fact grid, a verified install block, and
240
+ explicit CLI, SDK, and Agent Skill paths while retaining canonical metadata
241
+ and compact-layout coverage.
242
+ - Route Beeper account listing, chat search, exact-chat reads, message history,
243
+ and filtered message search through fixed authenticated Desktop loopback
244
+ `GET` routes. Preserve opaque older/newer cursors across bounded pages, reject
245
+ replay or coordinate drift, and never call the separate mark-read route.
246
+ - Let Beeper message search paginate an exact account/chat/date-filtered local
247
+ index without query text. Keep the prior v2.1.0 and v2.0.0 adapter manifests
248
+ as exact upgrade baselines, and retain the local-materialization
249
+ caveat rather than claiming complete remote provider history.
250
+ - Accept one `x-web` `posts.publish` body up to the reviewed CreateTweet
251
+ 25000-unit bound without truncation. Bind long-form text from `note_tweet`
252
+ when CreateTweet returns a short `full_text` preview. Thread and reply item
253
+ caps stay 280.
254
+ - Refresh the reviewed X UserTweets and SearchTimeline operation coordinates
255
+ from current authenticated bundle evidence.
256
+ - Recover an orphaned same-boot browser session through a durable doctor lease
257
+ bound to its exact daemon start identity, launch, CDP endpoint, and private
258
+ root generations. Prepared, launch-intent, quiescent, and per-root removal
259
+ phases make close, TERM, and deletion recovery crash-resumable. Changed or
260
+ unprovable state remains fail-closed without making reboot part of the
261
+ recovery contract.
262
+ - Return a bound `cleanup-required` result when durable realm admission blocks
263
+ an R1 read before dispatch. JSON callers retain the no-retry category while
264
+ the cleanup-unsafe claim remains fail-closed.
265
+ - Fail closed before every Vercel build unless a true local invocation has no
266
+ Vercel signal or the checked-in release marker and exact platform state agree.
267
+ - Resolve the production release tag through a separately byte-bounded GitHub
268
+ SHA response while retaining fixed local `git rev-parse HEAD` evidence,
269
+ removing the remote Git descendant boundary from website admission.
270
+ - Move automatic main-only npm staging out of GitHub deployment review. npm
271
+ still requires separate human inspection and two-factor approval before the
272
+ staged version becomes public.
273
+
274
+ ## 0.16.2 - 2026-08-28
275
+
276
+ - Require agentic messaging resolution to consume one opaque list-candidate
277
+ route reference. Wrench reloads the checked provider target from encrypted
278
+ private state and proves it with an exact read, so callers cannot inject or
279
+ replace a provider account, network, conversation ID, or recipient match.
280
+ The changed discovery, route, and resolve wire artifacts are V2; the shipped
281
+ v0.16.1 V1 shapes remain available only for strict archival parsing.
282
+ - Start stage-only npm verification automatically when a greater stable package
283
+ version reaches `main`. Unchanged manifest versions stop before OIDC, and the
284
+ terminal staging job requires maintainer approval through the protected
285
+ `npm-stage` environment before npm's separate two-factor approval.
286
+ - Add the Agent Skill to npm discovery metadata and link npm, GitHub, and
287
+ skills.sh from the README and public software identity.
288
+ - Centralize the packed, unpacked, and file-count ceilings used by source
289
+ artifact inspection and clean-consumer package smoke tests. The reviewed
290
+ limits retain bounded room for the observed Linux and macOS gzip spread.
291
+
292
+ - Add a strict machine-readable Hraness social-profile collection manifest,
293
+ correct the second X account to Life Days Left, and bind the current Twitch
294
+ and GitHub organization metrics plus the expected Threads eligibility gap.
295
+ - Project stable, secret-free failure categories and retry dispositions for
296
+ failed R1 reads across every provider in the Hraness manifest. Consumers can
297
+ distinguish target, auth, account, provider, timeout, contract, and cleanup
298
+ failures without exposing provider responses or inventing retry policy.
299
+
300
+ ## 0.16.1 - 2026-08-27
301
+
302
+ - Add a provider-neutral agentic messaging facade that keeps exact routes,
303
+ current context, prose, replies, and receipts in encrypted state and
304
+ explicit owner-only artifacts. One private preview authorizes one ordered
305
+ one-to-eight-bubble turn; the durable journal preserves submitted, failed,
306
+ partial, and indeterminate outcomes without retrying uncertain work.
307
+ - Qualify Beeper Desktop for exact live agentic actions through its loopback
308
+ API. Wrench binds one account and conversation, checks participants and the
309
+ exact expected own-message prefix before every remaining bubble, and stops
310
+ on foreign activity, edits, deletions, reorderings, or provider drift.
311
+ - Add a reviewed direct iMessage local transport with fixed JSON-RPC stdin,
312
+ exact chat-row revalidation, AppleScript private files, disabled SMS
313
+ fallback, and independent outgoing `chat.db` acceptance evidence. Threaded
314
+ replies remain unsupported and every bubble has a separate no-retry fence.
315
+ - Vendor and verify a patched Wacli/Whatsmeow stdin-only private transport.
316
+ The registered WhatsApp action remains unavailable until controlled live
317
+ freshness, acceptance, and reconciliation qualification is complete.
318
+ - Ship the reviewed iMessage transport installer through the public CLI with
319
+ digest verification, no-overwrite semantics, path-private diagnostics, and
320
+ fail-closed handling for unsafe source and state paths.
321
+ - Add an exact lightweight `wrench --version` command and bind package smoke
322
+ tests to the installed binary's immutable release identity.
323
+
324
+ ## 0.16.0 - 2026-08-27
325
+
326
+ - Redesign wrench.rip as a restrained editorial site with a supported-actions-only
327
+ provider directory, task-first capability labels, and no zero-action service
328
+ cards in the public catalog.
329
+ - Add `x-web articles.read@2` for one exact current-viewer-owned private Article
330
+ draft. The closed R1 result binds its ID, owner, Draft lifecycle, unpublished
331
+ state, title, and bounded rich content; published X Articles and LinkedIn
332
+ Article reads remain unsupported.
333
+ - Add `reddit-web media.read@2` for one exact Reddit-hosted video post through
334
+ the current-account-bound `/api/info` exchange. The metadata-only R1 result
335
+ returns post fields, dimensions, duration, safety flags, and completed status
336
+ without playback URLs; standalone Threads post and media reads and Marketplace
337
+ media reads remain unsupported.
338
+
339
+ ## 0.15.1 - 2026-08-27
340
+
341
+ - Publish Wrench through the public npm registry with an exact Bun runtime
342
+ floor, a bounded package inventory, and stage-only trusted publishing for
343
+ later releases.
344
+ - Declare Wrench's authenticated browser and provider capabilities as dual-use
345
+ content and ship the required disclosure in every package.
346
+ - Admit TAB, LF, and CR in projected X post bodies. Request headers, cursors,
347
+ timestamps, every other C0 control, and DEL remain fail-closed.
348
+
349
+ ## 0.15.0 - 2026-08-27
350
+
351
+ - Add a source-only `local-cli` provider transport with schema-v6 adapter
352
+ selectors, exact per-platform executable identity, implementation-bound
353
+ plans and receipts, strict subprocess lifecycles, and no generic argv or
354
+ portable native-process authority.
355
+ - Expand the pinned Beeper Desktop integration from five reads to typed account,
356
+ bridge, contact, conversation, message, send, edit, reaction, conversation
357
+ state, metadata, reminder, draft, focus, and presence operations. Bind all
358
+ four official 0.6.2 platform artifacts, isolate oclif user plugins and ambient
359
+ targets, and account for all 101 upstream commands in a checked coverage
360
+ ledger while leaving administrative, destructive, raw, and arbitrary-path
361
+ commands unavailable or R4.
362
+ - Preserve the released schema-1 contact-interaction receipt on its exact
363
+ macOS arm64 writer while keeping its 2,000-participant request ceiling;
364
+ cross-platform Beeper operations use the new versioned local-CLI contracts.
365
+ - Add a manifest-derived provider directory to wrench.rip with exact observed
366
+ and capture-required counts, grouped operation evidence, and local semantic
367
+ icons that do not imply provider endorsement.
368
+ - Publish a focused Beeper guide that binds its 32 observed operations to the
369
+ official CLI, adapter, semantic contracts, Desktop realm, executable hashes,
370
+ preview and dispatch rules, export boundaries, and explicit exclusions.
371
+ ## 0.14.0 - 2026-08-26
372
+
373
+ - Add a versioned, body-free Beeper direct-contact interaction summary over
374
+ the same admitted sequential history as the Message Like Me v1 bundle. The
375
+ summary preserves exact account-scoped provider coordinates, directional and
376
+ conversation counts, first and last timestamps, provenance, completeness,
377
+ and a canonical digest while excluding bodies, media, group messages,
378
+ credentials, and local paths.
379
+ - Add `wrench beeper export-contact-interactions` plus the synchronous
380
+ `@hraness/wrench/beeper` client for long-running local relationship imports.
381
+ Its strict `{ receipt, output }` envelope binds the cleaned summary to the
382
+ auth identity, requested bounds, linked-device transport, immutable Wrench
383
+ release and verified official CLI pin, source versions, completeness, and
384
+ counts.
385
+ - Pin Message Like Me v0.4.0 as the canonical bundle-v1 parser, type, limit,
386
+ artifact-inventory, and current-manifest authority while preserving the
387
+ checked legacy exporter bytes.
388
+ - Add async and synchronous `invokeCapability` clients that return Wrench's
389
+ strictly parsed live receipt and output without requiring consumers to
390
+ duplicate the CLI protocol parser.
391
+
392
+ ## 0.13.6 - 2026-08-25
393
+
394
+ - Scrub JPEG and PNG provenance before X media upload, and fail closed when
395
+ CreateTweet or independent TweetResultByRestId readback shows a Made with AI
396
+ sparkle on user-supplied copy.
397
+ - Treat a mid-read optional admission rewrite after live I/O as an auth-changed
398
+ discard so the live result cannot be published.
399
+ - Keep polling derivation-proxy readiness until the ready file is a complete
400
+ 0600 regular file, so an O_EXCL create cannot fail the start race.
401
+ - Add an authenticated, current-viewer-bound Twitch profile read that binds the
402
+ fixed login-parameterized channel response to the viewer's immutable identity
403
+ before returning its exact follower count.
404
+ - Promote the Hraness Twitch row from an expected categorical gap to the
405
+ package-owned exact daily social-statistics workflow.
406
+
407
+ ## 0.13.5 - 2026-08-24
408
+
409
+ - Add the Hraness Twitch channel to the package-owned social-statistics
410
+ manifest with an exact-only categorical-gap contract until its reviewed
411
+ capability and eligible authenticated source are available.
412
+
413
+ ## 0.13.4 - 2026-08-24
414
+
415
+ - Add a credential-free, target-bound GitHub organization read that binds the
416
+ organization and completes its bounded public repository pagination before
417
+ projecting exact aggregate stars and followers.
418
+ - Preserve the existing GitHub profile read and document both public GitHub
419
+ social-statistics routes for scheduled consumers.
420
+
421
+ ## 0.13.3 - 2026-08-24
422
+
423
+ - Add a credential-free, target-bound GitHub profile read through the fixed
424
+ public REST user endpoint, projecting exact follower, following, and public
425
+ repository counts.
426
+ - Add GitHub to the package-owned Hraness social-profile-statistics workflow.
427
+
428
+ ## 0.13.2 - 2026-08-23
429
+
430
+ - Publish exact Threads text through `posts.publish@5` without requiring a
431
+ PNG, while preserving optional PNG publication and exact permalink readback.
432
+ - Restore exact LinkedIn personal and organization profile reads from a
433
+ path-backed signed-in Chrome realm. Wrench clones the dormant profile into a
434
+ private contained session, binds the current member before either target
435
+ read, keeps personal profile and connection reads sequential, and finalizes
436
+ the browser's private artifacts after every result.
437
+
438
+ ## 0.13.1 - 2026-08-23
439
+
440
+ - Keep Beeper account selector aliases internal while returning plain,
441
+ bounded-JSON-safe account projections from contact and messaging reads.
442
+
443
+ ## 0.13.0 - 2026-08-22
444
+
445
+ - Add a pinned, read-only Beeper Desktop provider for contacts and messaging
446
+ projections across locally connected accounts.
447
+ - Add `wrench beeper export-message-like-me` for private,
448
+ provenance-preserving Message Like Me bundles with canonical digests,
449
+ explicit completeness, graph validation, and no media downloads.
450
+ - Export Beeper accounts sequentially through the pinned official CLI with
451
+ redacted account-level progress, elapsed-time heartbeats, and cumulative
452
+ chat and message counts.
453
+ - Add durable process-aware recovery, global export admission, monitored raw
454
+ working limits, and atomic validated Message Like Me bundle publication.
455
+ - Normalize account-local self aliases before record allocation, preserve
456
+ distinct provider reaction facts, and reject contradictory identity or
457
+ snapshot evidence without exposing private coordinates. Bound repeated
458
+ participant work independently from output record cardinality.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hraness contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.