binary-collections 2.0.13 → 2.0.14

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 (286) hide show
  1. package/binaries/binary-executor.cjs +307 -238
  2. package/binaries/clean-nodemodule.cjs +307 -238
  3. package/binaries/clean-nodemodules.cjs +307 -238
  4. package/binaries/composer.cjs +323 -0
  5. package/binaries/composer.cmd +2 -0
  6. package/binaries/composer.phar +0 -0
  7. package/binaries/dev.cjs +307 -238
  8. package/binaries/empty.cjs +307 -238
  9. package/binaries/git-reduce-size.cjs +307 -238
  10. package/binaries/javakill.cjs +307 -238
  11. package/binaries/kill-process.cjs +307 -238
  12. package/binaries/nodekill.cjs +307 -238
  13. package/binaries/prod.cjs +307 -238
  14. package/binaries/py.cjs +307 -238
  15. package/binaries/rmfind.cjs +307 -238
  16. package/binaries/rmx.cjs +307 -238
  17. package/binaries/submodule-token.cjs +307 -238
  18. package/binaries/test-cjs.cjs +307 -238
  19. package/binaries/test-esm.cjs +307 -238
  20. package/binaries/yarn-clean.cjs +307 -238
  21. package/binaries/yc.cjs +307 -238
  22. package/binaries/ycw.cjs +307 -238
  23. package/docs-src/binary-collections.md +1 -1
  24. package/docs-src/clean-github-actions-caches.md +1 -1
  25. package/docs-src/copy-move-file.md +1 -4
  26. package/docs-src/del-ps.md +1 -1
  27. package/docs-src/find-node-modules.md +1 -1
  28. package/docs-src/generate-test-ci.md +56 -0
  29. package/docs-src/get-latest-workflow-status.md +100 -0
  30. package/docs-src/git-diff.md +1 -1
  31. package/docs-src/git-fix.md +1 -1
  32. package/docs-src/git-purge.md +1 -1
  33. package/docs-src/kill-night-crows.md +1 -1
  34. package/docs-src/node-cache-cleaner.md +2 -2
  35. package/docs-src/node-package-packer.md +1 -1
  36. package/docs-src/opencode-cli.md +127 -0
  37. package/docs-src/package-resolutions-updater.md +1 -1
  38. package/docs-src/rmpath.md +1 -1
  39. package/docs-src/run-by-checksum.md +1 -1
  40. package/docs-src/submodule-remove.md +1 -1
  41. package/docs-src/upload-backend.md +29 -0
  42. package/docs-src/vscode-cli.md +84 -0
  43. package/docs-src/workflow-badge.md +120 -0
  44. package/lib/binary-collections/config.cjs +14 -2
  45. package/lib/binary-collections/config.d.cts +10 -0
  46. package/lib/binary-collections/config.mjs +2 -2
  47. package/lib/binary-collections/findScript.cjs +43 -21
  48. package/lib/binary-collections/findScript.mjs +2 -2
  49. package/lib/binary-collections/listScript.cjs +43 -21
  50. package/lib/binary-collections/listScript.mjs +2 -2
  51. package/lib/binary-collections.cjs +43 -21
  52. package/lib/binary-collections.mjs +6 -6
  53. package/lib/chunk-2SJKVOTN.mjs +146 -0
  54. package/lib/{chunk-2MN4VPV2.mjs → chunk-3F6EIHYG.mjs} +2 -2
  55. package/lib/chunk-546KAIYT.mjs +113 -0
  56. package/lib/chunk-56BVU63B.mjs +86 -0
  57. package/lib/chunk-5WAOOOGZ.mjs +77 -0
  58. package/lib/chunk-72XTQ3CK.mjs +45 -0
  59. package/lib/chunk-7N52Z4IJ.mjs +39 -0
  60. package/lib/chunk-7Q6YEUQF.mjs +246 -0
  61. package/lib/{chunk-NQXUYO67.mjs → chunk-AJ3OIYYP.mjs} +43 -21
  62. package/lib/chunk-AQZ7LMFS.mjs +100 -0
  63. package/lib/chunk-BDCMTOZI.mjs +246 -0
  64. package/lib/chunk-BEUM4LH4.mjs +184 -0
  65. package/lib/{chunk-TBWXE7ST.mjs → chunk-BO4TZS4Q.mjs} +5 -2
  66. package/lib/chunk-CM3IC5YC.mjs +226 -0
  67. package/lib/{chunk-FLYSZFLW.mjs → chunk-D42YBRZW.mjs} +1 -1
  68. package/lib/chunk-FR3DMHJC.mjs +146 -0
  69. package/lib/chunk-I3O5ZRYU.mjs +77 -0
  70. package/lib/chunk-J4M5EL5P.mjs +108 -0
  71. package/lib/chunk-JK3MG2KF.mjs +236 -0
  72. package/lib/chunk-JMUFQSPE.mjs +184 -0
  73. package/lib/chunk-JVMLKHD2.mjs +62 -0
  74. package/lib/chunk-KAT2JNLZ.mjs +146 -0
  75. package/lib/{chunk-CD3HF3LK.mjs → chunk-KRCPFWIF.mjs} +6 -3
  76. package/lib/chunk-LACQTD5V.mjs +225 -0
  77. package/lib/chunk-MCCMMZSM.mjs +60 -0
  78. package/lib/chunk-OA2RKEY3.mjs +162 -0
  79. package/lib/{chunk-X2B3X7D4.mjs → chunk-PAZH45HS.mjs} +7 -1
  80. package/lib/chunk-QZMGBDSA.mjs +32 -0
  81. package/lib/chunk-RKPIBGKE.mjs +61 -0
  82. package/lib/chunk-SARIXFHP.mjs +44 -0
  83. package/lib/chunk-SJYP66BO.mjs +62 -0
  84. package/lib/chunk-SWUAEY4H.mjs +44 -0
  85. package/lib/chunk-TP3O2JGW.mjs +88 -0
  86. package/lib/chunk-UAIF5VIA.mjs +89 -0
  87. package/lib/chunk-UDZBVKXH.mjs +94 -0
  88. package/lib/chunk-UEOWRYAN.mjs +32 -0
  89. package/lib/chunk-UHPFLJXH.mjs +227 -0
  90. package/lib/chunk-UYNBNLV5.mjs +113 -0
  91. package/lib/chunk-WOC4FZ6F.mjs +164 -0
  92. package/lib/chunk-X7UVQ6ZC.mjs +183 -0
  93. package/lib/{chunk-RDN6HF5Z.mjs → chunk-XI67TI46.mjs} +1 -1
  94. package/lib/chunk-XW5NZAKI.mjs +82 -0
  95. package/lib/chunk-YLV4QATP.mjs +86 -0
  96. package/lib/chunk-YWSLMAQ7.mjs +65 -0
  97. package/lib/chunk-ZB4IQ6VJ.mjs +46 -0
  98. package/lib/cross-env/index.mjs +3 -3
  99. package/lib/del-gradle.cjs +1 -1
  100. package/lib/del-gradle.mjs +22 -16
  101. package/lib/del-node-modules.cjs +1 -1
  102. package/lib/del-node-modules.mjs +148 -142
  103. package/lib/find-node-modules-cli.cjs +1 -1
  104. package/lib/find-node-modules-cli.mjs +10 -4
  105. package/lib/{git-diff-cli.cjs → git/git-diff-cli.cjs} +18 -6
  106. package/lib/{git-diff-cli.mjs → git/git-diff-cli.mjs} +7 -7
  107. package/lib/{git-diff.cjs → git/git-diff.cjs} +16 -4
  108. package/lib/{git-diff.js → git/git-diff.js} +3 -3
  109. package/lib/{git-diff.mjs → git/git-diff.mjs} +6 -6
  110. package/lib/{git-fix.cjs → git/git-fix.cjs} +134 -3
  111. package/lib/{git-fix.mjs → git/git-fix.mjs} +19 -14
  112. package/lib/{git-purge.cjs → git/git-purge.cjs} +1 -1
  113. package/lib/{git-purge.mjs → git/git-purge.mjs} +4 -4
  114. package/lib/git/user-config.cjs +131 -1
  115. package/lib/git/user-config.mjs +3 -1
  116. package/lib/{clean-github-actions-caches-cli.cjs → github-workflows/clean-github-actions-caches-cli.cjs} +38 -10
  117. package/lib/{clean-github-actions-caches-cli.mjs → github-workflows/clean-github-actions-caches-cli.mjs} +7 -6
  118. package/lib/{clean-github-actions-caches.cjs → github-workflows/clean-github-actions-caches.cjs} +38 -10
  119. package/lib/{clean-github-actions-caches.mjs → github-workflows/clean-github-actions-caches.mjs} +5 -4
  120. package/lib/github-workflows/generate-test-ci-step-cli.cjs +240 -0
  121. package/lib/github-workflows/generate-test-ci-step-cli.d.mts +2 -0
  122. package/lib/github-workflows/generate-test-ci-step-cli.mjs +132 -0
  123. package/lib/github-workflows/get-latest-workflow-status-cli.cjs +541 -0
  124. package/lib/github-workflows/get-latest-workflow-status-cli.d.mts +2 -0
  125. package/lib/github-workflows/get-latest-workflow-status-cli.mjs +61 -0
  126. package/lib/github-workflows/get-latest-workflow-status.cjs +56 -0
  127. package/lib/github-workflows/get-latest-workflow-status.d.mts +1 -0
  128. package/lib/github-workflows/get-latest-workflow-status.mjs +8 -0
  129. package/lib/github-workflows/utils.cjs +271 -0
  130. package/lib/github-workflows/utils.d.cts +76 -0
  131. package/lib/github-workflows/utils.mjs +8 -0
  132. package/lib/github-workflows/workflow-badge-cli.cjs +722 -0
  133. package/lib/github-workflows/workflow-badge-cli.d.mts +2 -0
  134. package/lib/github-workflows/workflow-badge-cli.mjs +98 -0
  135. package/lib/github-workflows/workflow-badge-generator.cjs +200 -0
  136. package/lib/github-workflows/workflow-badge-generator.d.mts +14 -0
  137. package/lib/github-workflows/workflow-badge-generator.mjs +8 -0
  138. package/lib/github-workflows/workflow-test-data.cjs +73 -0
  139. package/lib/github-workflows/workflow-test-data.d.cts +63 -0
  140. package/lib/github-workflows/workflow-test-data.mjs +6 -0
  141. package/lib/opencode/cli/auth-rotate.cjs +143 -0
  142. package/lib/opencode/cli/auth-rotate.d.ts +1 -0
  143. package/lib/opencode/cli/auth-rotate.js +70 -0
  144. package/lib/opencode/cli/auth-rotate.mjs +10 -0
  145. package/lib/opencode/cli/list-projects.cjs +184 -0
  146. package/lib/opencode/cli/list-projects.d.ts +1 -0
  147. package/lib/opencode/cli/list-projects.js +32 -0
  148. package/lib/opencode/cli/list-projects.mjs +11 -0
  149. package/lib/opencode/cli/list-sessions.cjs +215 -0
  150. package/lib/opencode/cli/list-sessions.d.ts +1 -0
  151. package/lib/opencode/cli/list-sessions.js +45 -0
  152. package/lib/opencode/cli/list-sessions.mjs +11 -0
  153. package/lib/opencode/database.cjs +349 -0
  154. package/lib/opencode/database.d.ts +91 -0
  155. package/lib/opencode/database.js +252 -0
  156. package/lib/opencode/database.mjs +28 -0
  157. package/lib/opencode/database.runner.cjs +145 -0
  158. package/lib/opencode/database.runner.d.ts +1 -0
  159. package/lib/opencode/database.runner.js +56 -0
  160. package/lib/opencode/database.runner.mjs +37 -0
  161. package/lib/opencode/opencode-zen.runner.cjs +48 -0
  162. package/lib/opencode/opencode-zen.runner.d.mts +1 -0
  163. package/lib/opencode/opencode-zen.runner.mjs +31 -0
  164. package/lib/opencode/sqlite.cjs +114 -0
  165. package/lib/opencode/sqlite.d.ts +18 -0
  166. package/lib/opencode/sqlite.js +82 -0
  167. package/lib/opencode/sqlite.mjs +10 -0
  168. package/lib/opencode/storage.cjs +124 -0
  169. package/lib/opencode/storage.d.ts +27 -0
  170. package/lib/opencode/storage.js +101 -0
  171. package/lib/opencode/storage.mjs +38 -0
  172. package/lib/opencode/storage.runner.cjs +50 -0
  173. package/lib/opencode/storage.runner.d.ts +1 -0
  174. package/lib/opencode/storage.runner.js +13 -0
  175. package/lib/opencode/storage.runner.mjs +29 -0
  176. package/lib/opencode/types.cjs +17 -0
  177. package/lib/opencode/types.d.ts +31 -0
  178. package/lib/opencode/types.js +2 -0
  179. package/lib/opencode/types.mjs +7 -0
  180. package/lib/opencode/utils/check-api.cjs +59 -0
  181. package/lib/opencode/utils/check-api.d.ts +12 -0
  182. package/lib/opencode/utils/check-api.js +46 -0
  183. package/lib/opencode/utils/check-api.mjs +8 -0
  184. package/lib/opencode-cli.cjs +473 -0
  185. package/lib/opencode-cli.d.ts +2 -0
  186. package/lib/opencode-cli.js +115 -0
  187. package/lib/opencode-cli.mjs +111 -0
  188. package/lib/package-resolutions-updater-cli.cjs +181 -154
  189. package/lib/package-resolutions-updater-cli.mjs +3 -2
  190. package/lib/package-resolutions-updater.cjs +181 -154
  191. package/lib/package-resolutions-updater.d.mts +12 -3
  192. package/lib/package-resolutions-updater.mjs +3 -2
  193. package/lib/print-directory-tree.cjs +131 -3
  194. package/lib/print-directory-tree.mjs +6 -3
  195. package/lib/rmpath-cli.cjs +131 -5
  196. package/lib/rmpath-cli.mjs +3 -1
  197. package/lib/rmpath.cjs +147 -11
  198. package/lib/rmpath.mjs +3 -1
  199. package/lib/run-by-checksum/hash.cjs +18 -2
  200. package/lib/run-by-checksum/hash.d.ts +4 -1
  201. package/lib/run-by-checksum/hash.js +38 -4
  202. package/lib/run-by-checksum/hash.mjs +1 -1
  203. package/lib/run-by-checksum/run.cjs +18 -2
  204. package/lib/run-by-checksum/run.mjs +2 -2
  205. package/lib/run-by-checksum-cli.cjs +18 -2
  206. package/lib/run-by-checksum-cli.mjs +2 -2
  207. package/lib/submodule-install.cjs +130 -4
  208. package/lib/submodule-install.mjs +5 -4
  209. package/lib/submodule-remove-cli.cjs +131 -5
  210. package/lib/submodule-remove-cli.mjs +3 -1
  211. package/lib/submodule-remove.cjs +146 -5
  212. package/lib/submodule-remove.mjs +3 -1
  213. package/lib/utils/findEnvFiles.cjs +3 -0
  214. package/lib/utils/findEnvFiles.d.cts +2 -2
  215. package/lib/utils/findEnvFiles.mjs +1 -1
  216. package/lib/vscode/project.cjs +0 -0
  217. package/lib/vscode/project.d.ts +0 -0
  218. package/lib/vscode/project.js +1 -0
  219. package/lib/vscode/project.mjs +7 -0
  220. package/lib/vscode/storage.cjs +138 -0
  221. package/lib/vscode/storage.d.ts +51 -0
  222. package/lib/vscode/storage.js +169 -0
  223. package/lib/vscode/storage.mjs +42 -0
  224. package/lib/vscode/storage.runner.cjs +125 -0
  225. package/lib/vscode/storage.runner.d.ts +1 -0
  226. package/lib/vscode/storage.runner.js +47 -0
  227. package/lib/vscode/storage.runner.mjs +60 -0
  228. package/lib/vscode-cli.cjs +155 -0
  229. package/lib/vscode-cli.d.ts +2 -0
  230. package/lib/vscode-cli.js +80 -0
  231. package/lib/vscode-cli.mjs +71 -0
  232. package/package.json +43 -21
  233. package/readme.md +41 -8
  234. package/releases/readme.md +1 -1
  235. package/src/github-workflows/generate-test-ci-step-cli.mjs +126 -0
  236. package/vendor/clue/ndjson-react/README.md +365 -0
  237. package/vendor/composer/pcre/README.md +189 -0
  238. package/vendor/composer/semver/README.md +99 -0
  239. package/vendor/composer/xdebug-handler/README.md +305 -0
  240. package/vendor/ergebnis/agent-detector/README.md +107 -0
  241. package/vendor/evenement/evenement/README.md +64 -0
  242. package/vendor/fidry/cpu-core-counter/README.md +138 -0
  243. package/vendor/friendsofphp/php-cs-fixer/README.md +97 -0
  244. package/vendor/psr/container/README.md +13 -0
  245. package/vendor/psr/event-dispatcher/README.md +6 -0
  246. package/vendor/psr/log/README.md +58 -0
  247. package/vendor/react/cache/README.md +367 -0
  248. package/vendor/react/child-process/README.md +619 -0
  249. package/vendor/react/dns/README.md +453 -0
  250. package/vendor/react/event-loop/README.md +930 -0
  251. package/vendor/react/promise/README.md +722 -0
  252. package/vendor/react/socket/README.md +1564 -0
  253. package/vendor/react/stream/README.md +1249 -0
  254. package/vendor/sebastian/diff/README.md +151 -0
  255. package/vendor/symfony/console/README.md +30 -0
  256. package/vendor/symfony/deprecation-contracts/README.md +26 -0
  257. package/vendor/symfony/event-dispatcher/README.md +25 -0
  258. package/vendor/symfony/event-dispatcher-contracts/README.md +9 -0
  259. package/vendor/symfony/filesystem/README.md +23 -0
  260. package/vendor/symfony/finder/README.md +24 -0
  261. package/vendor/symfony/options-resolver/README.md +25 -0
  262. package/vendor/symfony/polyfill-ctype/README.md +12 -0
  263. package/vendor/symfony/polyfill-intl-grapheme/README.md +32 -0
  264. package/vendor/symfony/polyfill-intl-normalizer/README.md +14 -0
  265. package/vendor/symfony/polyfill-mbstring/README.md +13 -0
  266. package/vendor/symfony/polyfill-php80/README.md +25 -0
  267. package/vendor/symfony/polyfill-php81/README.md +18 -0
  268. package/vendor/symfony/polyfill-php84/README.md +23 -0
  269. package/vendor/symfony/polyfill-php85/README.md +20 -0
  270. package/vendor/symfony/process/README.md +23 -0
  271. package/vendor/symfony/service-contracts/README.md +9 -0
  272. package/vendor/symfony/stopwatch/README.md +52 -0
  273. package/vendor/symfony/string/README.md +24 -0
  274. package/lib/del-gradle.js +0 -16
  275. package/lib/del-node-modules.js +0 -211
  276. package/lib/find-node-modules-cli.js +0 -4
  277. /package/lib/{clean-github-actions-caches-cli.d.cts → del-gradle.d.cts} +0 -0
  278. /package/lib/{del-gradle.d.ts → del-node-modules.d.cts} +0 -0
  279. /package/lib/{find-node-modules-cli.d.ts → find-node-modules-cli.d.cts} +0 -0
  280. /package/lib/{git-diff-cli.d.ts → git/git-diff-cli.d.ts} +0 -0
  281. /package/lib/{git-diff-cli.js → git/git-diff-cli.js} +0 -0
  282. /package/lib/{git-diff.d.ts → git/git-diff.d.ts} +0 -0
  283. /package/lib/{git-fix.d.cts → git/git-fix.d.cts} +0 -0
  284. /package/lib/{git-purge.d.cts → git/git-purge.d.cts} +0 -0
  285. /package/lib/{del-node-modules.d.ts → github-workflows/clean-github-actions-caches-cli.d.cts} +0 -0
  286. /package/lib/{clean-github-actions-caches.d.cts → github-workflows/clean-github-actions-caches.d.cts} +0 -0
@@ -0,0 +1,100 @@
1
+ # Get Latest Workflow Status
2
+
3
+ Fetches and displays the latest GitHub Actions workflow run from the repository — showing the run name, status, conclusion, branch, and a full job-by-job breakdown with each step's result. Useful for quickly checking CI status from the terminal without opening a browser.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ get-latest-workflow-status [options]
9
+ ```
10
+
11
+ ### Aliases
12
+
13
+ This command is available under several names (all invoke the same CLI):
14
+
15
+ - `get-latest-workflow-status` (default)
16
+ - `get-latest-workflow`
17
+ - `latest-workflow`
18
+ - `wf-status`
19
+
20
+ ### Options
21
+
22
+ | Flag | Type | Description |
23
+ | :--- | :--- | :--- |
24
+ | `--owner` | `string` | GitHub repository owner (default: auto-detect from git remote or `GH_OWNER` env) |
25
+ | `--repo` | `string` | GitHub repository name (default: auto-detect from git remote or `GH_REPO` env) |
26
+ | `--workflow` | `string` | Filter by workflow filename (e.g. `"test.yml"`) or numeric workflow ID |
27
+ | `--token` | `string` | GitHub access token (overrides `ACCESS_TOKEN` / `GITHUB_TOKEN` / `GH_TOKEN` env vars) |
28
+ | `-h`, `--help` | `boolean` | Show help message |
29
+
30
+ ### Environment Variables
31
+
32
+ | Variable | Description |
33
+ | :------- | :---------- |
34
+ | `ACCESS_TOKEN` / `GITHUB_TOKEN` / `GH_TOKEN` | GitHub personal access token with `actions:read` scope (required) |
35
+ | `GH_OWNER` | Override repository owner (optional) |
36
+ | `GH_REPO` | Override repository name (optional) |
37
+
38
+ ### Examples
39
+
40
+ Show the latest workflow run for the current repository:
41
+
42
+ ```bash
43
+ get-latest-workflow-status
44
+ ```
45
+
46
+ Show for a specific repository:
47
+
48
+ ```bash
49
+ get-latest-workflow-status --owner dimaslanjaka --repo bin
50
+ ```
51
+
52
+ Filter by a specific workflow YAML file:
53
+
54
+ ```bash
55
+ get-latest-workflow-status --workflow test.yml
56
+ get-latest-workflow-status --owner dimaslanjaka --repo bin --workflow deploy.yml
57
+ ```
58
+
59
+ Show help:
60
+
61
+ ```bash
62
+ get-latest-workflow-status --help
63
+ ```
64
+
65
+ ### Output Example
66
+
67
+ ```
68
+ ==============================
69
+ 🚀 Latest Workflow Run
70
+ ==============================
71
+ Name : Node.js Package Test
72
+ Status : in_progress
73
+ Conclusion: null
74
+ Branch : master
75
+ Run ID : 26797771514
76
+ URL : https://github.com/dimaslanjaka/bin/actions/runs/26797771514
77
+
78
+ ==============================
79
+ 🧩 Jobs & Steps
80
+ ==============================
81
+
82
+ 🧱 Job: 🔨 Build, Pack & Test
83
+ Status: in_progress | Conclusion: null
84
+ ✅ Set up job -> success (completed)
85
+ ✅ ⬇️ Checkout workflow repository -> success (completed)
86
+ ✅ ⬇️ Setup CI Environment -> success (completed)
87
+ ⚪ 🧪 Run tests in test/example.test.cjs -> null (in_progress)
88
+ ```
89
+
90
+ ### How it works
91
+
92
+ 1. **Authenticate** — Uses `ACCESS_TOKEN` / `GITHUB_TOKEN` / `GH_TOKEN` to call the GitHub API.
93
+ 2. **Detect repository** — Owner and repo are auto-detected from the `git remote.origin.url`, or can be overridden with `--owner`/`--repo` flags or `GH_OWNER`/`GH_REPO` environment variables.
94
+ 3. **Fetch latest run** — Calls `GET /repos/{owner}/{repo}/actions/runs?per_page=1` to get the most recent workflow run. If `--workflow` is specified, appends `&workflow_id=<name>` to filter by workflow filename or ID.
95
+ 4. **Fetch jobs** — Calls `GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs` to retrieve all jobs and their steps.
96
+ 5. **Print report** — Renders a formatted terminal report with color-coded icons (✅ success, ❌ failure, ⏭️ skipped, ⚪ pending/in progress).
97
+
98
+ ## Source
99
+
100
+ See [`src/github-workflows/get-latest-workflow-status-cli.mjs`](../src/github-workflows/get-latest-workflow-status-cli.mjs).
@@ -30,4 +30,4 @@ git-diff --ai # Generate commit message with ChatGPT
30
30
 
31
31
  ### Source
32
32
 
33
- See [`src/git-diff.js`](../src/git-diff.js) & [`src/git-diff-cli.js`](../src/git-diff-cli.js)
33
+ See [`src/git/git-diff-cli.js`](../src/git/git-diff-cli.js).
@@ -31,4 +31,4 @@ Options can be combined: `git-fix --lf-only --permissions`
31
31
 
32
32
  ### Source
33
33
 
34
- See [`src/git-fix.cjs`](../src/git-fix.cjs) & submodules in [`src/git/`](../src/git/)
34
+ See [`src/git/git-fix.cjs`](../src/git/git-fix.cjs).
@@ -14,4 +14,4 @@ Aggressively prunes the git reflog in all `.git` directories, helping reduce rep
14
14
 
15
15
  ### Source
16
16
 
17
- See [`src/git-purge.cjs`](../src/git-purge.cjs)
17
+ See [`src/git/git-purge.cjs`](../src/git/git-purge.cjs)
@@ -23,4 +23,4 @@ kill-night-crows
23
23
 
24
24
  ### Source
25
25
 
26
- See [`src/kill-night-crows.mjs`](../src/kill-night-crows.mjs) & [`bin/kill-night-crows.ps1`](../bin/kill-night-crows.ps1)
26
+ See [`src/kill-night-crows.mjs`](../src/kill-night-crows.mjs) & [`bin/kill-night-crows.ps1`](../bin/kill-night-crows.ps1).
@@ -24,7 +24,7 @@ node-cache-cleaner [options]
24
24
 
25
25
  ### Source
26
26
 
27
- See [`src/node-cache-cleaner-cli.ts`](../src/node-cache-cleaner-cli.ts) and [`src/node-cache-cleaner/`](../src/node-cache-cleaner/)
27
+ See [`src/node-cache-cleaner-cli.ts`](../src/node-cache-cleaner-cli.ts).
28
28
 
29
29
  ---
30
30
 
@@ -178,5 +178,5 @@ yarn run rm-node-modules
178
178
 
179
179
  ### Source
180
180
 
181
- See [`src/rm-node-module-cli.cjs`](../src/rm-node-module-cli.cjs) & [`src/rm-node-modules.cjs`](../src/rm-node-modules.cjs)
181
+ See [`src/rm-node-module-cli.cjs`](../src/rm-node-module-cli.cjs).
182
182
 
@@ -45,4 +45,4 @@ This command is available under the following aliases:
45
45
 
46
46
  ### Source
47
47
 
48
- See [`src/node-package-packer-cli.mjs`](../src/node-package-packer-cli.mjs) (CLI entry point) and [`src/node-package-packer/build-tarball.mjs`](../src/node-package-packer/build-tarball.mjs) (pack workflow).
48
+ See [`src/node-package-packer-cli.mjs`](../src/node-package-packer-cli.mjs).
@@ -0,0 +1,127 @@
1
+ # OpenCode CLI
2
+
3
+ CLI tool for inspecting and managing an OpenCode database. Connects to the local OpenCode SQLite database (`~/.local/share/opencode/opencode.db`) to list sessions and projects, and to delete sessions or projects. Also supports API key rotation from a local keys file.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ opc <command> [subcommand] [options]
9
+ ```
10
+
11
+ ### Aliases
12
+
13
+ This command is available under several aliases (all invoke the same CLI):
14
+
15
+ - `opc` (default)
16
+ - `opencode-cli`
17
+
18
+ ### Commands
19
+
20
+ #### `list session`
21
+
22
+ Lists all sessions in a table format showing slug, title, and version.
23
+
24
+ ```bash
25
+ opc list session
26
+ ```
27
+
28
+ #### `list project`
29
+
30
+ Lists all projects in a table format showing truncated ID, name, and worktree path.
31
+
32
+ ```bash
33
+ opc list project
34
+ ```
35
+
36
+ #### `delete session <id>`
37
+
38
+ Deletes a single session and all its descendant sessions by ID.
39
+
40
+ ```bash
41
+ opc delete session <session-id>
42
+ ```
43
+
44
+ #### `delete sessions`
45
+
46
+ Deletes **all** sessions from the database (irreversible).
47
+
48
+ ```bash
49
+ opc delete sessions
50
+ ```
51
+
52
+ #### `delete project <id>`
53
+
54
+ Deletes a project's sessions and project record from the OpenCode database (not the real project folder on disk).
55
+
56
+ The `<id>` is the project UUID shown in the first column of `opc list project`. Run that command first to find the project ID you want to delete.
57
+
58
+ ```bash
59
+ opc delete project <project-id>
60
+ ```
61
+
62
+ #### `auth rotate`
63
+
64
+ Rotates the active OpenCode API key by picking the first working key from a local keys file. Iterates through available keys (excluding the current one) and tests each against the OpenCode API, selecting the first that returns a valid response.
65
+
66
+ ```bash
67
+ opc auth rotate
68
+ ```
69
+
70
+ ### Options
71
+
72
+ | Flag | Description |
73
+ | :--- | :--- |
74
+ | `-h`, `--help` | Show help message |
75
+
76
+ ### Examples
77
+
78
+ List all sessions:
79
+
80
+ ```bash
81
+ opc list session
82
+ ```
83
+
84
+ Delete a specific session:
85
+
86
+ ```bash
87
+ opc delete session abc123
88
+ ```
89
+
90
+ Delete a project's sessions and project record from the OpenCode database (ID obtained from `opc list project`):
91
+
92
+ ```bash
93
+ opc delete project 9a3bb589
94
+ ```
95
+
96
+ Rotate to a working API key:
97
+
98
+ ```bash
99
+ opc auth rotate
100
+ # → Rotated OpenCode API key to: my-backup-key
101
+ ```
102
+
103
+ ### How it works
104
+
105
+ 1. **Database check**: On every command except `--help`, the tool first verifies the OpenCode database is accessible via `checkDatabase()`.
106
+ 2. **List**: Queries the `session` or `project` table and displays results in formatted tables with dynamic column widths.
107
+ 3. **Delete**: Uses recursive SQL (Common Table Expressions) to delete sessions and their descendants, or cascading deletes for project sessions.
108
+ 4. **Auth rotate**: Reads `.opencode.keys.jsonc` (or `.opencode.keys.json` as fallback) from the current directory, filters out the currently active key, tests each remaining key via `checkOpenCodeApi()`, and sets the first one that responds successfully.
109
+
110
+ ### Requirements
111
+
112
+ For `auth rotate`, create a `.opencode.keys.jsonc` file in your project root:
113
+
114
+ ```jsonc
115
+ [
116
+ // Each key must have a unique name and the actual API key value.
117
+ // Add this file to .gitignore to keep it private.
118
+ {
119
+ "name": "unique name for the key, e.g. email or username",
120
+ "key": "the actual key, e.g. sk-xxxxxx"
121
+ }
122
+ ]
123
+ ```
124
+
125
+ ## Source
126
+
127
+ See [`src/opencode-cli.ts`](../src/opencode-cli.ts).
@@ -19,4 +19,4 @@ Scans `package.json` resolutions for GitHub tarball URLs (raw.githubusercontent.
19
19
 
20
20
  ### Source
21
21
 
22
- See [`src/package-resolutions-updater.mjs`](../src/package-resolutions-updater.mjs) & [`src/package-resolutions-updater-cli.mjs`](../src/package-resolutions-updater-cli.mjs)
22
+ See [`src/package-resolutions-updater-cli.mjs`](../src/package-resolutions-updater-cli.mjs).
@@ -35,4 +35,4 @@ rmpath C:\temp\huge-folder
35
35
 
36
36
  ## Source
37
37
 
38
- See [`src/rmpath-cli.mjs`](../src/rmpath-cli.mjs) (CLI entry point) and [`src/rmpath.mjs`](../src/rmpath.mjs) (core logic).
38
+ See [`src/rmpath-cli.mjs`](../src/rmpath-cli.mjs).
@@ -84,4 +84,4 @@ The function returns:
84
84
 
85
85
  ## Source
86
86
 
87
- See [`src/run-by-checksum-cli.js`](../src/run-by-checksum-cli.js) (CLI) and [`src/run-by-checksum/`](../src/run-by-checksum/) (core logic).
87
+ See [`src/run-by-checksum-cli.js`](../src/run-by-checksum-cli.js).
@@ -19,4 +19,4 @@ Performs a complete removal of a git submodule:
19
19
 
20
20
  ### Source
21
21
 
22
- See [`src/submodule-remove.cjs`](../src/submodule-remove.cjs) & [`src/submodule-remove-cli.js`](../src/submodule-remove-cli.js)
22
+ See [`src/submodule-remove-cli.js`](../src/submodule-remove-cli.js).
@@ -0,0 +1,29 @@
1
+ # Upload Backend
2
+
3
+ Uploads PHP files from the `backend/` directory to a remote server via SFTP. Reads the connection configuration from `.vscode/sftp.json` and deploys all `.php` files into `{remotePath}/php_backend` on the target server.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ node scripts/upload-backend.mjs
9
+ ```
10
+
11
+ ### Prerequisites
12
+
13
+ - An SFTP server configured in `.vscode/sftp.json`
14
+ - PHP files present in the `backend/` directory
15
+
16
+ ### Behavior
17
+
18
+ 1. Reads `.vscode/sftp.json` for host, port, username, and password
19
+ 2. Scans `backend/` for all `*.php` files
20
+ 3. Connects to the remote server via SFTP
21
+ 4. Creates the `php_backend` subdirectory under the configured `remotePath`
22
+ 5. Uploads each PHP file into that directory
23
+ 6. Prints a confirmation per uploaded file
24
+
25
+ If no PHP files are found, the script exits with a notice.
26
+
27
+ ## Source
28
+
29
+ See [`scripts/upload-backend.mjs`](../scripts/upload-backend.mjs).
@@ -0,0 +1,84 @@
1
+ # VSCode CLI
2
+
3
+ CLI tool for inspecting VS Code workspace storage directories. Scans the `workspaceStorage` folder under the VS Code user data directory, reads each subdirectory's `workspace.json`, and lists workspace projects with their storage identifiers. Optionally filters to workspaces that have a Copilot memory tool directory.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ vscode-cli <command> [subcommand] [options]
9
+ ```
10
+
11
+ ### Aliases
12
+
13
+ This command is available under the following alias:
14
+
15
+ - `vscode-cli` (default)
16
+
17
+ ### Commands
18
+
19
+ #### `list project`
20
+
21
+ Lists all workspace projects in a table format showing truncated storage ID, folder path, and whether Copilot memory tool data exists.
22
+
23
+ ```bash
24
+ vscode-cli list project
25
+ ```
26
+
27
+ #### `list project --copilot-memory`
28
+
29
+ Lists only projects that have a Copilot memory tool directory (i.e., those where `GitHub.copilot-chat/memory-tool/memories` exists under the workspace storage directory).
30
+
31
+ ```bash
32
+ vscode-cli list project --copilot-memory
33
+ ```
34
+
35
+ Short aliases: `--copilotMemory`, `--cm`
36
+
37
+ ### Options
38
+
39
+ | Flag | Description |
40
+ | :--- | :--- |
41
+ | `-h`, `--help` | Show help message |
42
+ | `--copilot-memory` | Filter to projects with Copilot memory tool |
43
+
44
+ ### Examples
45
+
46
+ List all workspace projects:
47
+
48
+ ```bash
49
+ vscode-cli list project
50
+ ```
51
+
52
+ List only projects with Copilot memory tool data:
53
+
54
+ ```bash
55
+ vscode-cli list project --copilot-memory
56
+ ```
57
+
58
+ ### How it works
59
+
60
+ 1. **Scan**: Lists all subdirectories under the VS Code `workspaceStorage` folder (e.g., `%APPDATA%/Code/User/workspaceStorage` on Windows).
61
+ 2. **Parse**: Reads `workspace.json` from each subdirectory to extract the workspace `folder` URI.
62
+ 3. **Decode**: Converts `file:///` URIs to absolute filesystem paths (e.g., `file:///d%3A/Repositories/project` → `d:/Repositories/project`).
63
+ 4. **Filter** (optional): When `--copilot-memory` is specified, only includes entries where `GitHub.copilot-chat/memory-tool/memories` exists on disk.
64
+ 5. **Display**: Renders results in a formatted table with dynamic column widths.
65
+
66
+ ### Programmatic API
67
+
68
+ The workspace scanning logic can also be imported directly:
69
+
70
+ ```ts
71
+ import { listWorkspaceProjects } from './src/vscode/storage.js';
72
+
73
+ const projects = await listWorkspaceProjects();
74
+
75
+ // projects is WorkspaceEntry[] with:
76
+ // storageId: string — hash-based subdirectory name
77
+ // folder: string — absolute filesystem path (decoded URI)
78
+ // storagePath: string — full path to the workspace storage subdirectory
79
+ // copilotMemoryDir?: string — path to Copilot memory tool directory (if it exists)
80
+ ```
81
+
82
+ ## Source
83
+
84
+ See [`src/vscode-cli.ts`](../src/vscode-cli.ts).
@@ -0,0 +1,120 @@
1
+ # Workflow Badge
2
+
3
+ Generates a detailed SVG badge showing the status of the latest GitHub Actions workflow run. Displays workflow metadata, per-job step breakdown, and aggregated status counts — all in a polished card-style SVG suitable for embedding in READMEs, dashboards, or CI summary pages.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ workflow-badge [options]
9
+ ```
10
+
11
+ ### Aliases
12
+
13
+ This command is available under several aliases (all invoke the same CLI):
14
+
15
+ - `workflow-badge` (default)
16
+ - `wf-badge`
17
+ - `gh-status-badge`
18
+ - `actions-badge`
19
+
20
+ ### Options
21
+
22
+ | Flag | Type | Description |
23
+ | :--- | :--- | :--- |
24
+ | `-o`, `--output` | `string` | Write SVG to file instead of stdout |
25
+ | `--owner` | `string` | GitHub repository owner (default: auto-detect from git remote) |
26
+ | `--repo` | `string` | GitHub repository name (default: auto-detect from git remote) |
27
+ | `--workflow` | `string` | Filter by workflow filename (e.g. `"test.yml"`) or numeric workflow ID |
28
+ | `--token` | `string` | GitHub access token (overrides `ACCESS_TOKEN` / `GITHUB_TOKEN` / `GH_TOKEN` env vars) |
29
+ | `--width` | `number` | SVG width in pixels (default: `520`) |
30
+ | `--max-steps` | `number` | Max steps to show per job (default: all). Use to keep badge compact |
31
+ | `-h`, `--help` | `boolean` | Show help message |
32
+
33
+ ### Environment Variables
34
+
35
+ | Variable | Description |
36
+ | :------- | :---------- |
37
+ | `ACCESS_TOKEN` / `GITHUB_TOKEN` / `GH_TOKEN` | GitHub personal access token (required for API calls) |
38
+ | `GH_OWNER` | Override repository owner (optional) |
39
+ | `GH_REPO` | Override repository name (optional) |
40
+
41
+ ### Examples
42
+
43
+ Preview badge in terminal (SVG printed to stdout):
44
+
45
+ ```bash
46
+ workflow-badge
47
+ ```
48
+
49
+ Save badge to file:
50
+
51
+ ```bash
52
+ workflow-badge --output badge.svg
53
+ ```
54
+
55
+ Save for a specific repository with custom width:
56
+
57
+ ```bash
58
+ workflow-badge --owner dimaslanjaka --repo bin --output docs/workflow-status.svg --width 600
59
+ ```
60
+
61
+ Keep the badge compact by limiting visible steps per job:
62
+
63
+ ```bash
64
+ workflow-badge --max-steps 5 --output compact-badge.svg
65
+ ```
66
+
67
+ Generate a badge for a specific workflow YAML file:
68
+
69
+ ```bash
70
+ workflow-badge --workflow test.yml
71
+ workflow-badge --owner dimaslanjaka --repo bin --workflow deploy.yml --output deploy-badge.svg
72
+ ```
73
+
74
+ ### Output
75
+
76
+ The generated SVG is a card-style badge with:
77
+
78
+ - **Accent bar** — color-coded based on overall status (green = passing, red = failing, amber = in progress, grey = cancelled/pending)
79
+ - **Title section** — "Workflow Status" label with status pill
80
+ - **Metadata rows** — workflow name, status, branch, run ID
81
+ - **Jobs breakdown** — each job with its status, plus individual step rows with icons (✓ = passed, ✗ = failed, ◌ = pending, – = skipped)
82
+ - **Footer summary** — aggregated step counts
83
+
84
+ ### PHP Backend
85
+
86
+ A PHP script is available at [`backend/workflow-badge.php`](../backend/workflow-badge.php) that serves the badge as a live image via HTTP. It spawns the Node CLI, captures the SVG output, and serves it with the correct `image/svg+xml` content type. The PHP backend requires the full project (with the CLI script under `src/` or `lib/`) to be deployed on the server — it does not fall back to a remote tarball.
87
+
88
+ **Query parameters:**
89
+
90
+ | Parameter | Required | Description |
91
+ | :-------- | :------- | :---------- |
92
+ | `owner` | yes | GitHub repository owner |
93
+ | `repo` | yes | GitHub repository name |
94
+ | `workflow` | no | Filter by workflow filename (e.g. `test.yml`) or workflow ID |
95
+ | `width` | no | SVG width in pixels (200–2000, default: 520) |
96
+ | `max-steps` | no | Max steps to show per job (1–200, default: all) |
97
+ | `token` | no | GitHub access token (overrides server env) |
98
+
99
+ **Requirements:**
100
+ - PHP 7.4+ with `proc_open` enabled
101
+ - The project's Node CLI script deployed on the server (`src/github-workflows/workflow-badge-cli.mjs` or `lib/github-workflows/workflow-badge-cli.cjs`)
102
+ - `ACCESS_TOKEN` (or `GITHUB_TOKEN` / `GH_TOKEN`) environment variable set on the server, or pass `&token=...` per request
103
+
104
+ **Usage as `<img>` tag:**
105
+
106
+ ```html
107
+ <img src="https://your-domain.com/backend/workflow-badge.php?owner=dimaslanjaka&repo=bin" />
108
+ <!-- or using our server -->
109
+ <img src="http://sh.webmanajemen.com/php_backend/workflow-badge.php?owner=dimaslanjaka&repo=bin" />
110
+ ```
111
+
112
+ ![badge sample](http://sh.webmanajemen.com/php_backend/workflow-badge.php?owner=dimaslanjaka&repo=bin)
113
+
114
+ You can optionally add `&width=600`, `&max-steps=5`, `&workflow=test.yml`, or `&token=ghp_xxx` to customize the badge appearance or override the server's GitHub token for a single request.
115
+
116
+ The script validates all parameters before passing them to the Node CLI, separates `stdout` (SVG) from `stderr` (diagnostics) via `proc_open`, and returns appropriate HTTP error codes for invalid inputs or CLI failures.
117
+
118
+ ## Source
119
+
120
+ See [`src/github-workflows/workflow-badge-cli.mjs`](../src/github-workflows/workflow-badge-cli.mjs).
@@ -90,6 +90,9 @@ var require_findEnvFiles = __commonJS({
90
90
  return envFiles.find((file) => {
91
91
  try {
92
92
  const content = fs.readFileSync(file, "utf-8");
93
+ if (tokenName instanceof RegExp) {
94
+ return tokenName.test(content);
95
+ }
93
96
  const regex = new RegExp(`^\\s*${tokenName}\\s*=`, "m");
94
97
  return regex.test(content);
95
98
  } catch (err) {
@@ -110,8 +113,15 @@ var require_findEnvFiles = __commonJS({
110
113
  // src/binary-collections/config.cjs
111
114
  init_cjs_shims();
112
115
  var path = require("upath");
116
+ var minimistLib = require("minimist");
113
117
  var { findEnvWithToken } = require_findEnvFiles();
114
- require("dotenv").config({ path: findEnvWithToken(), quiet: true, overwrite: true });
118
+ var dotenv = require("dotenv");
119
+ var loadDotenv = (tokenKey = /ACCESS_TOKEN|GITHUB_TOKEN/) => dotenv.config({ path: findEnvWithToken(void 0, tokenKey), quiet: true, overwrite: true });
120
+ loadDotenv();
121
+ var cliArgv = minimistLib(process.argv.slice(2), {
122
+ string: ["token"]
123
+ });
124
+ var GITHUB_ACCESS_TOKEN = cliArgv.token || process.env.ACCESS_TOKEN || process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
115
125
  function getTempDir() {
116
126
  return process.env.TEMP_DIR || path.join(process.cwd(), "tmp");
117
127
  }
@@ -122,5 +132,7 @@ var TEMP_BASE_DIR = getTempDir();
122
132
  module.exports = {
123
133
  getTempDir,
124
134
  getTempPath,
125
- TEMP_BASE_DIR
135
+ TEMP_BASE_DIR,
136
+ GITHUB_ACCESS_TOKEN,
137
+ loadDotenv
126
138
  };
@@ -14,3 +14,13 @@ export function getTempPath(...segments: string[]): string;
14
14
  * Legacy aliases for backward compatibility
15
15
  */
16
16
  export const TEMP_BASE_DIR: string;
17
+ export const GITHUB_ACCESS_TOKEN: any;
18
+ /**
19
+ * Load .env file containing a token variable.
20
+ * Searches for `.env*` files and picks the first one matching the given token key.
21
+ *
22
+ * @param {string|RegExp} [tokenKey=/ACCESS_TOKEN|GITHUB_TOKEN/] - Token name or regex to search for.
23
+ * Passed as second argument to `findEnvWithToken()`.
24
+ * @returns {void}
25
+ */
26
+ export function loadDotenv(tokenKey?: string | RegExp): void;
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
2
  import {
3
3
  require_config
4
- } from "../chunk-X2B3X7D4.mjs";
5
- import "../chunk-H44UWUFY.mjs";
4
+ } from "../chunk-SARIXFHP.mjs";
5
+ import "../chunk-J4M5EL5P.mjs";
6
6
  import "../chunk-QQ4A6DLD.mjs";
7
7
  export default require_config();