@intent-systems/nexus 2026.1.5-3

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 (827) hide show
  1. package/CHANGELOG.md +222 -0
  2. package/LICENSE +21 -0
  3. package/README-header.png +0 -0
  4. package/README.md +462 -0
  5. package/dist/agents/agent-paths.js +16 -0
  6. package/dist/agents/agent-scope.js +44 -0
  7. package/dist/agents/auth-profiles.js +626 -0
  8. package/dist/agents/bash-process-registry.js +126 -0
  9. package/dist/agents/bash-tools.js +838 -0
  10. package/dist/agents/chutes-oauth.js +47 -0
  11. package/dist/agents/clawdbot-tools.js +62 -0
  12. package/dist/agents/context.js +34 -0
  13. package/dist/agents/defaults.js +6 -0
  14. package/dist/agents/memory-search.js +80 -0
  15. package/dist/agents/model-auth.js +115 -0
  16. package/dist/agents/model-catalog.js +55 -0
  17. package/dist/agents/model-fallback.js +210 -0
  18. package/dist/agents/model-scan.js +263 -0
  19. package/dist/agents/model-selection.js +152 -0
  20. package/dist/agents/models-config.js +171 -0
  21. package/dist/agents/nexus-tools.js +46 -0
  22. package/dist/agents/pi-embedded-block-chunker.js +188 -0
  23. package/dist/agents/pi-embedded-helpers.js +139 -0
  24. package/dist/agents/pi-embedded-runner.js +932 -0
  25. package/dist/agents/pi-embedded-subscribe.js +541 -0
  26. package/dist/agents/pi-embedded-utils.js +20 -0
  27. package/dist/agents/pi-embedded.js +1 -0
  28. package/dist/agents/pi-extensions/compaction-safeguard.js +140 -0
  29. package/dist/agents/pi-tool-definition-adapter.js +17 -0
  30. package/dist/agents/pi-tools.js +510 -0
  31. package/dist/agents/pi-tools.schema.js +358 -0
  32. package/dist/agents/sandbox-paths.js +68 -0
  33. package/dist/agents/sandbox.js +667 -0
  34. package/dist/agents/shell-utils.js +53 -0
  35. package/dist/agents/skill-runner.js +224 -0
  36. package/dist/agents/skill-state.js +164 -0
  37. package/dist/agents/skill-tools.js +191 -0
  38. package/dist/agents/skill-usage.js +43 -0
  39. package/dist/agents/skills-install.js +244 -0
  40. package/dist/agents/skills-status.js +157 -0
  41. package/dist/agents/skills.js +472 -0
  42. package/dist/agents/subagent-registry.js +321 -0
  43. package/dist/agents/subagent-registry.store.js +47 -0
  44. package/dist/agents/system-prompt.js +179 -0
  45. package/dist/agents/timeout.js +26 -0
  46. package/dist/agents/tool-display.js +155 -0
  47. package/dist/agents/tool-display.json +236 -0
  48. package/dist/agents/tool-images.js +138 -0
  49. package/dist/agents/tool-policy.js +87 -0
  50. package/dist/agents/tools/agent-step.js +41 -0
  51. package/dist/agents/tools/browser-tool.js +295 -0
  52. package/dist/agents/tools/canvas-tool.js +193 -0
  53. package/dist/agents/tools/common.js +88 -0
  54. package/dist/agents/tools/cron-tool.js +141 -0
  55. package/dist/agents/tools/discord-actions-guild.js +186 -0
  56. package/dist/agents/tools/discord-actions-messaging.js +313 -0
  57. package/dist/agents/tools/discord-actions-moderation.js +70 -0
  58. package/dist/agents/tools/discord-actions.js +56 -0
  59. package/dist/agents/tools/discord-schema.js +199 -0
  60. package/dist/agents/tools/discord-tool.js +16 -0
  61. package/dist/agents/tools/gateway-tool.js +46 -0
  62. package/dist/agents/tools/gateway.js +28 -0
  63. package/dist/agents/tools/image-tool.js +140 -0
  64. package/dist/agents/tools/memory-tool.js +92 -0
  65. package/dist/agents/tools/nodes-tool.js +413 -0
  66. package/dist/agents/tools/nodes-utils.js +92 -0
  67. package/dist/agents/tools/sessions-announce-target.js +35 -0
  68. package/dist/agents/tools/sessions-helpers.js +88 -0
  69. package/dist/agents/tools/sessions-history-tool.js +137 -0
  70. package/dist/agents/tools/sessions-list-tool.js +196 -0
  71. package/dist/agents/tools/sessions-send-helpers.js +103 -0
  72. package/dist/agents/tools/sessions-send-tool.js +371 -0
  73. package/dist/agents/tools/sessions-spawn-tool.js +319 -0
  74. package/dist/agents/tools/slack-actions.js +129 -0
  75. package/dist/agents/tools/slack-schema.js +59 -0
  76. package/dist/agents/tools/slack-tool.js +16 -0
  77. package/dist/agents/tools/telegram-actions.js +159 -0
  78. package/dist/agents/tools/telegram-schema.js +28 -0
  79. package/dist/agents/tools/telegram-tool.js +16 -0
  80. package/dist/agents/tools/whatsapp-login-tool.js +63 -0
  81. package/dist/agents/usage.js +58 -0
  82. package/dist/agents/workspace.js +264 -0
  83. package/dist/auto-reply/chunk.js +177 -0
  84. package/dist/auto-reply/command-auth.js +44 -0
  85. package/dist/auto-reply/command-detection.js +22 -0
  86. package/dist/auto-reply/envelope.js +30 -0
  87. package/dist/auto-reply/group-activation.js +20 -0
  88. package/dist/auto-reply/heartbeat.js +58 -0
  89. package/dist/auto-reply/model.js +22 -0
  90. package/dist/auto-reply/reply/abort.js +14 -0
  91. package/dist/auto-reply/reply/agent-runner.js +426 -0
  92. package/dist/auto-reply/reply/bash-command.js +314 -0
  93. package/dist/auto-reply/reply/block-streaming.js +34 -0
  94. package/dist/auto-reply/reply/body.js +29 -0
  95. package/dist/auto-reply/reply/commands.js +332 -0
  96. package/dist/auto-reply/reply/directive-handling.js +626 -0
  97. package/dist/auto-reply/reply/directives.js +59 -0
  98. package/dist/auto-reply/reply/dispatch-from-config.js +23 -0
  99. package/dist/auto-reply/reply/followup-runner.js +181 -0
  100. package/dist/auto-reply/reply/groups.js +152 -0
  101. package/dist/auto-reply/reply/mentions.js +64 -0
  102. package/dist/auto-reply/reply/model-selection.js +209 -0
  103. package/dist/auto-reply/reply/queue.js +399 -0
  104. package/dist/auto-reply/reply/reply-dispatcher.js +68 -0
  105. package/dist/auto-reply/reply/reply-tags.js +26 -0
  106. package/dist/auto-reply/reply/session-updates.js +103 -0
  107. package/dist/auto-reply/reply/session.js +169 -0
  108. package/dist/auto-reply/reply/typing.js +125 -0
  109. package/dist/auto-reply/reply.js +655 -0
  110. package/dist/auto-reply/send-policy.js +28 -0
  111. package/dist/auto-reply/status.js +197 -0
  112. package/dist/auto-reply/templating.js +9 -0
  113. package/dist/auto-reply/thinking.js +49 -0
  114. package/dist/auto-reply/tokens.js +2 -0
  115. package/dist/auto-reply/tool-meta.js +74 -0
  116. package/dist/auto-reply/transcription.js +57 -0
  117. package/dist/auto-reply/types.js +1 -0
  118. package/dist/browser/bridge-server.js +37 -0
  119. package/dist/browser/cdp.js +382 -0
  120. package/dist/browser/chrome.js +432 -0
  121. package/dist/browser/client-actions-core.js +67 -0
  122. package/dist/browser/client-actions-observe.js +24 -0
  123. package/dist/browser/client-actions-types.js +1 -0
  124. package/dist/browser/client-actions.js +3 -0
  125. package/dist/browser/client-fetch.js +43 -0
  126. package/dist/browser/client.js +105 -0
  127. package/dist/browser/config.js +155 -0
  128. package/dist/browser/constants.js +5 -0
  129. package/dist/browser/profiles-service.js +124 -0
  130. package/dist/browser/profiles.js +96 -0
  131. package/dist/browser/pw-ai.js +2 -0
  132. package/dist/browser/pw-session.js +144 -0
  133. package/dist/browser/pw-tools-core.js +363 -0
  134. package/dist/browser/routes/agent.js +535 -0
  135. package/dist/browser/routes/basic.js +155 -0
  136. package/dist/browser/routes/index.js +8 -0
  137. package/dist/browser/routes/tabs.js +105 -0
  138. package/dist/browser/routes/utils.js +62 -0
  139. package/dist/browser/screenshot.js +40 -0
  140. package/dist/browser/server-context.js +377 -0
  141. package/dist/browser/server.js +81 -0
  142. package/dist/browser/target-id.js +18 -0
  143. package/dist/browser/trash.js +21 -0
  144. package/dist/canvas-host/a2ui/a2ui.bundle.js +17768 -0
  145. package/dist/canvas-host/a2ui/index.html +246 -0
  146. package/dist/canvas-host/a2ui.js +187 -0
  147. package/dist/canvas-host/server.js +382 -0
  148. package/dist/channel-web.js +8 -0
  149. package/dist/cli/browser-cli-actions-input.js +459 -0
  150. package/dist/cli/browser-cli-actions-observe.js +56 -0
  151. package/dist/cli/browser-cli-examples.js +31 -0
  152. package/dist/cli/browser-cli-inspect.js +97 -0
  153. package/dist/cli/browser-cli-manage.js +286 -0
  154. package/dist/cli/browser-cli-shared.js +1 -0
  155. package/dist/cli/browser-cli.js +26 -0
  156. package/dist/cli/canvas-cli.js +416 -0
  157. package/dist/cli/cloud-cli.js +336 -0
  158. package/dist/cli/credential-cli.js +227 -0
  159. package/dist/cli/cron-cli.js +454 -0
  160. package/dist/cli/deps.js +17 -0
  161. package/dist/cli/dns-cli.js +180 -0
  162. package/dist/cli/gateway-cli.js +665 -0
  163. package/dist/cli/gateway-rpc.js +20 -0
  164. package/dist/cli/hooks-cli.js +135 -0
  165. package/dist/cli/memory-cli.js +101 -0
  166. package/dist/cli/models-cli.js +248 -0
  167. package/dist/cli/nodes-camera.js +57 -0
  168. package/dist/cli/nodes-canvas.js +26 -0
  169. package/dist/cli/nodes-cli.js +946 -0
  170. package/dist/cli/nodes-screen.js +37 -0
  171. package/dist/cli/pairing-cli.js +100 -0
  172. package/dist/cli/parse-duration.js +20 -0
  173. package/dist/cli/plugins-cli.js +158 -0
  174. package/dist/cli/ports.js +97 -0
  175. package/dist/cli/profile.js +81 -0
  176. package/dist/cli/program.js +162 -0
  177. package/dist/cli/prompt.js +19 -0
  178. package/dist/cli/run-main.js +48 -0
  179. package/dist/cli/skills-cli.js +132 -0
  180. package/dist/cli/skills-hub-cli.js +1093 -0
  181. package/dist/cli/telegram-cli.js +56 -0
  182. package/dist/cli/tool-connector-cli.js +118 -0
  183. package/dist/cli/tui-cli.js +35 -0
  184. package/dist/cli/upstream-sync-cli.js +2833 -0
  185. package/dist/cli/usage-cli.js +24 -0
  186. package/dist/cli/wait.js +8 -0
  187. package/dist/commands/agent-via-gateway.js +115 -0
  188. package/dist/commands/agent.js +665 -0
  189. package/dist/commands/antigravity-oauth.js +327 -0
  190. package/dist/commands/auth-choice-options.js +80 -0
  191. package/dist/commands/auth-choice.js +134 -0
  192. package/dist/commands/auth-token.js +31 -0
  193. package/dist/commands/bootstrap-preset.js +214 -0
  194. package/dist/commands/capabilities.js +36 -0
  195. package/dist/commands/chutes-oauth.js +144 -0
  196. package/dist/commands/claude-md.js +137 -0
  197. package/dist/commands/config-view.js +11 -0
  198. package/dist/commands/configure.js +648 -0
  199. package/dist/commands/credential.js +236 -0
  200. package/dist/commands/cursor-rules.js +230 -0
  201. package/dist/commands/doctor-state-migrations.js +358 -0
  202. package/dist/commands/doctor-ui.js +113 -0
  203. package/dist/commands/doctor.js +673 -0
  204. package/dist/commands/health.js +112 -0
  205. package/dist/commands/identity.js +54 -0
  206. package/dist/commands/init.js +167 -0
  207. package/dist/commands/models/aliases.js +85 -0
  208. package/dist/commands/models/fallbacks.js +123 -0
  209. package/dist/commands/models/image-fallbacks.js +123 -0
  210. package/dist/commands/models/list.js +347 -0
  211. package/dist/commands/models/scan.js +271 -0
  212. package/dist/commands/models/set-image.js +27 -0
  213. package/dist/commands/models/set.js +27 -0
  214. package/dist/commands/models/shared.js +73 -0
  215. package/dist/commands/models.js +7 -0
  216. package/dist/commands/onboard-auth.js +101 -0
  217. package/dist/commands/onboard-channels.js +814 -0
  218. package/dist/commands/onboard-eve-identity.js +98 -0
  219. package/dist/commands/onboard-github.js +153 -0
  220. package/dist/commands/onboard-helpers.js +303 -0
  221. package/dist/commands/onboard-interactive.js +17 -0
  222. package/dist/commands/onboard-non-interactive.js +228 -0
  223. package/dist/commands/onboard-providers.js +829 -0
  224. package/dist/commands/onboard-quickstart.js +185 -0
  225. package/dist/commands/onboard-remote.js +120 -0
  226. package/dist/commands/onboard-skills.js +148 -0
  227. package/dist/commands/onboard-types.js +1 -0
  228. package/dist/commands/onboard.js +19 -0
  229. package/dist/commands/openai-codex-model-default.js +38 -0
  230. package/dist/commands/poll.js +64 -0
  231. package/dist/commands/quest.js +27 -0
  232. package/dist/commands/reset.js +61 -0
  233. package/dist/commands/send.js +124 -0
  234. package/dist/commands/sessions-ingest.js +359 -0
  235. package/dist/commands/sessions.js +212 -0
  236. package/dist/commands/setup.js +59 -0
  237. package/dist/commands/signal-install.js +135 -0
  238. package/dist/commands/skills-manifest.js +235 -0
  239. package/dist/commands/status.js +139 -0
  240. package/dist/commands/suggestions.js +54 -0
  241. package/dist/commands/systemd-linger.js +71 -0
  242. package/dist/commands/update.js +16 -0
  243. package/dist/commands/usage-upload.js +27 -0
  244. package/dist/config/config.js +6 -0
  245. package/dist/config/defaults.js +140 -0
  246. package/dist/config/group-policy.js +49 -0
  247. package/dist/config/includes.js +183 -0
  248. package/dist/config/io.js +188 -0
  249. package/dist/config/legacy-migrate.js +13 -0
  250. package/dist/config/legacy.js +425 -0
  251. package/dist/config/paths.js +82 -0
  252. package/dist/config/port-defaults.js +32 -0
  253. package/dist/config/schema.js +173 -0
  254. package/dist/config/sessions.js +611 -0
  255. package/dist/config/talk.js +31 -0
  256. package/dist/config/types.js +1 -0
  257. package/dist/config/validation.js +29 -0
  258. package/dist/config/zod-schema.js +1110 -0
  259. package/dist/control-ui/assets/index-D8Q5AI4D.js +2393 -0
  260. package/dist/control-ui/assets/index-D8Q5AI4D.js.map +1 -0
  261. package/dist/control-ui/assets/index-g06q5Xc3.css +1 -0
  262. package/dist/control-ui/favicon.ico +0 -0
  263. package/dist/control-ui/index.html +16 -0
  264. package/dist/cron/isolated-agent.js +529 -0
  265. package/dist/cron/normalize.js +73 -0
  266. package/dist/cron/parse.js +24 -0
  267. package/dist/cron/run-log.js +72 -0
  268. package/dist/cron/schedule.js +24 -0
  269. package/dist/cron/service.js +471 -0
  270. package/dist/cron/store.js +43 -0
  271. package/dist/cron/types.js +1 -0
  272. package/dist/daemon/constants.js +10 -0
  273. package/dist/daemon/launchd.js +295 -0
  274. package/dist/daemon/legacy.js +63 -0
  275. package/dist/daemon/program-args.js +141 -0
  276. package/dist/daemon/schtasks.js +269 -0
  277. package/dist/daemon/service.js +69 -0
  278. package/dist/daemon/systemd.js +332 -0
  279. package/dist/discord/index.js +2 -0
  280. package/dist/discord/monitor.js +1089 -0
  281. package/dist/discord/probe.js +54 -0
  282. package/dist/discord/send.js +652 -0
  283. package/dist/discord/token.js +8 -0
  284. package/dist/entry.js +16 -0
  285. package/dist/gateway/auth.js +121 -0
  286. package/dist/gateway/call.js +103 -0
  287. package/dist/gateway/chat-attachments.js +41 -0
  288. package/dist/gateway/client.js +180 -0
  289. package/dist/gateway/config-reload.js +274 -0
  290. package/dist/gateway/control-ui.js +184 -0
  291. package/dist/gateway/hooks-mapping.js +282 -0
  292. package/dist/gateway/hooks.js +168 -0
  293. package/dist/gateway/net.js +29 -0
  294. package/dist/gateway/protocol/index.js +62 -0
  295. package/dist/gateway/protocol/schema.js +577 -0
  296. package/dist/gateway/server-bridge-subscriptions.js +93 -0
  297. package/dist/gateway/server-bridge.js +1066 -0
  298. package/dist/gateway/server-browser.js +11 -0
  299. package/dist/gateway/server-channels.js +680 -0
  300. package/dist/gateway/server-chat.js +159 -0
  301. package/dist/gateway/server-constants.js +8 -0
  302. package/dist/gateway/server-discovery.js +62 -0
  303. package/dist/gateway/server-http.js +165 -0
  304. package/dist/gateway/server-methods/agent-job.js +114 -0
  305. package/dist/gateway/server-methods/agent.js +254 -0
  306. package/dist/gateway/server-methods/channels.js +239 -0
  307. package/dist/gateway/server-methods/chat.js +207 -0
  308. package/dist/gateway/server-methods/config.js +50 -0
  309. package/dist/gateway/server-methods/connect.js +6 -0
  310. package/dist/gateway/server-methods/cron.js +89 -0
  311. package/dist/gateway/server-methods/health.js +28 -0
  312. package/dist/gateway/server-methods/models.js +16 -0
  313. package/dist/gateway/server-methods/nodes.js +294 -0
  314. package/dist/gateway/server-methods/providers.js +257 -0
  315. package/dist/gateway/server-methods/send.js +254 -0
  316. package/dist/gateway/server-methods/sessions.js +382 -0
  317. package/dist/gateway/server-methods/skills.js +83 -0
  318. package/dist/gateway/server-methods/system.js +118 -0
  319. package/dist/gateway/server-methods/talk.js +22 -0
  320. package/dist/gateway/server-methods/types.js +1 -0
  321. package/dist/gateway/server-methods/voicewake.js +30 -0
  322. package/dist/gateway/server-methods/web.js +81 -0
  323. package/dist/gateway/server-methods/wizard.js +100 -0
  324. package/dist/gateway/server-methods.js +53 -0
  325. package/dist/gateway/server-providers.js +687 -0
  326. package/dist/gateway/server-shared.js +1 -0
  327. package/dist/gateway/server-utils.js +35 -0
  328. package/dist/gateway/server.js +1478 -0
  329. package/dist/gateway/session-utils.js +355 -0
  330. package/dist/gateway/ws-log.js +343 -0
  331. package/dist/gateway/ws-logging.js +8 -0
  332. package/dist/globals.js +41 -0
  333. package/dist/hooks/gmail-ops.js +236 -0
  334. package/dist/hooks/gmail-setup-utils.js +278 -0
  335. package/dist/hooks/gmail-watcher.js +190 -0
  336. package/dist/hooks/gmail.js +177 -0
  337. package/dist/imessage/client.js +165 -0
  338. package/dist/imessage/index.js +3 -0
  339. package/dist/imessage/monitor.js +365 -0
  340. package/dist/imessage/probe.js +26 -0
  341. package/dist/imessage/send.js +83 -0
  342. package/dist/imessage/targets.js +176 -0
  343. package/dist/index.js +55 -0
  344. package/dist/infra/agent-events.js +46 -0
  345. package/dist/infra/binaries.js +9 -0
  346. package/dist/infra/bonjour-discovery.js +163 -0
  347. package/dist/infra/bonjour.js +200 -0
  348. package/dist/infra/bridge/server.js +564 -0
  349. package/dist/infra/canvas-host-url.js +54 -0
  350. package/dist/infra/channel-summary.js +78 -0
  351. package/dist/infra/control-ui-assets.js +112 -0
  352. package/dist/infra/dotenv.js +15 -0
  353. package/dist/infra/env.js +8 -0
  354. package/dist/infra/errors.js +28 -0
  355. package/dist/infra/event-log.js +251 -0
  356. package/dist/infra/gateway-lock.js +8 -0
  357. package/dist/infra/git-commit.js +91 -0
  358. package/dist/infra/heartbeat-events.js +21 -0
  359. package/dist/infra/heartbeat-runner.js +458 -0
  360. package/dist/infra/heartbeat-wake.js +61 -0
  361. package/dist/infra/is-main.js +37 -0
  362. package/dist/infra/json-file.js +21 -0
  363. package/dist/infra/machine-name.js +40 -0
  364. package/dist/infra/nexus-root.js +56 -0
  365. package/dist/infra/node-pairing.js +212 -0
  366. package/dist/infra/path-env.js +93 -0
  367. package/dist/infra/ports.js +87 -0
  368. package/dist/infra/provider-summary.js +80 -0
  369. package/dist/infra/provider-usage.auth.js +189 -0
  370. package/dist/infra/provider-usage.fetch.claude.js +129 -0
  371. package/dist/infra/provider-usage.fetch.codex.js +62 -0
  372. package/dist/infra/provider-usage.fetch.copilot.js +42 -0
  373. package/dist/infra/provider-usage.fetch.gemini.js +57 -0
  374. package/dist/infra/provider-usage.fetch.js +6 -0
  375. package/dist/infra/provider-usage.fetch.minimax.js +214 -0
  376. package/dist/infra/provider-usage.fetch.shared.js +11 -0
  377. package/dist/infra/provider-usage.fetch.zai.js +62 -0
  378. package/dist/infra/provider-usage.format.js +77 -0
  379. package/dist/infra/provider-usage.js +145 -0
  380. package/dist/infra/provider-usage.load.js +54 -0
  381. package/dist/infra/provider-usage.shared.js +19 -0
  382. package/dist/infra/provider-usage.types.js +1 -0
  383. package/dist/infra/restart.js +29 -0
  384. package/dist/infra/retry.js +16 -0
  385. package/dist/infra/runtime-guard.js +59 -0
  386. package/dist/infra/shell-env.js +88 -0
  387. package/dist/infra/system-events.js +71 -0
  388. package/dist/infra/system-presence.js +217 -0
  389. package/dist/infra/tailnet.js +46 -0
  390. package/dist/infra/tailscale.js +149 -0
  391. package/dist/infra/unhandled-rejections.js +19 -0
  392. package/dist/infra/usage-suggestions.js +241 -0
  393. package/dist/infra/usage-upload.js +290 -0
  394. package/dist/infra/voicewake.js +78 -0
  395. package/dist/infra/widearea-dns.js +123 -0
  396. package/dist/infra/ws.js +13 -0
  397. package/dist/logger.js +52 -0
  398. package/dist/logging.js +506 -0
  399. package/dist/macos/gateway-daemon.js +145 -0
  400. package/dist/macos/relay.js +49 -0
  401. package/dist/media/constants.js +33 -0
  402. package/dist/media/host.js +42 -0
  403. package/dist/media/image-ops.js +119 -0
  404. package/dist/media/mime.js +123 -0
  405. package/dist/media/parse.js +83 -0
  406. package/dist/media/server.js +64 -0
  407. package/dist/media/store.js +139 -0
  408. package/dist/polls.js +43 -0
  409. package/dist/process/command-queue.js +97 -0
  410. package/dist/process/exec.js +75 -0
  411. package/dist/provider-web.js +8 -0
  412. package/dist/providers/github-copilot-auth.js +123 -0
  413. package/dist/providers/github-copilot-models.js +35 -0
  414. package/dist/providers/github-copilot-token.js +11 -0
  415. package/dist/providers/location.js +48 -0
  416. package/dist/providers/web/index.js +2 -0
  417. package/dist/runtime.js +8 -0
  418. package/dist/sessions/level-overrides.js +9 -0
  419. package/dist/sessions/send-policy.js +68 -0
  420. package/dist/signal/client.js +134 -0
  421. package/dist/signal/daemon.js +69 -0
  422. package/dist/signal/index.js +3 -0
  423. package/dist/signal/monitor.js +411 -0
  424. package/dist/signal/probe.js +46 -0
  425. package/dist/signal/send.js +91 -0
  426. package/dist/slack/actions.js +97 -0
  427. package/dist/slack/index.js +5 -0
  428. package/dist/slack/monitor.js +1270 -0
  429. package/dist/slack/probe.js +47 -0
  430. package/dist/slack/send.js +131 -0
  431. package/dist/slack/token.js +10 -0
  432. package/dist/telegram/allowed-updates.js +8 -0
  433. package/dist/telegram/bot.js +724 -0
  434. package/dist/telegram/download.js +34 -0
  435. package/dist/telegram/index.js +4 -0
  436. package/dist/telegram/monitor.js +47 -0
  437. package/dist/telegram/pairing-store.js +77 -0
  438. package/dist/telegram/probe.js +63 -0
  439. package/dist/telegram/proxy.js +9 -0
  440. package/dist/telegram/reaction-level.js +45 -0
  441. package/dist/telegram/send.js +151 -0
  442. package/dist/telegram/sent-message-cache.js +65 -0
  443. package/dist/telegram/token.js +30 -0
  444. package/dist/telegram/update-offset-store.js +61 -0
  445. package/dist/telegram/webhook-set.js +12 -0
  446. package/dist/telegram/webhook.js +56 -0
  447. package/dist/tui/commands.js +87 -0
  448. package/dist/tui/components/assistant-message.js +16 -0
  449. package/dist/tui/components/chat-log.js +92 -0
  450. package/dist/tui/components/custom-editor.js +55 -0
  451. package/dist/tui/components/selectors.js +8 -0
  452. package/dist/tui/components/tool-execution.js +111 -0
  453. package/dist/tui/components/user-message.js +17 -0
  454. package/dist/tui/gateway-chat.js +140 -0
  455. package/dist/tui/theme/theme.js +80 -0
  456. package/dist/tui/tui.js +708 -0
  457. package/dist/utils.js +153 -0
  458. package/dist/version.js +18 -0
  459. package/dist/web/accounts.js +86 -0
  460. package/dist/web/active-listener.js +25 -0
  461. package/dist/web/auto-reply.js +1256 -0
  462. package/dist/web/inbound.js +649 -0
  463. package/dist/web/login-qr.js +230 -0
  464. package/dist/web/login.js +71 -0
  465. package/dist/web/media.js +175 -0
  466. package/dist/web/outbound.js +102 -0
  467. package/dist/web/qr-image.js +97 -0
  468. package/dist/web/reconnect.js +60 -0
  469. package/dist/web/session.js +370 -0
  470. package/dist/wizard/clack-prompter.js +56 -0
  471. package/dist/wizard/onboarding.js +620 -0
  472. package/dist/wizard/prompts.js +6 -0
  473. package/dist/wizard/session.js +203 -0
  474. package/docs/AGENTS.default.md +116 -0
  475. package/docs/CAPABILITIES.md +444 -0
  476. package/docs/CNAME +1 -0
  477. package/docs/NEXUS_CORE_REWRITE_SPEC.md +226 -0
  478. package/docs/RELEASING.md +69 -0
  479. package/docs/_config.yml +53 -0
  480. package/docs/_layouts/default.html +145 -0
  481. package/docs/agent-assisted-install.md +95 -0
  482. package/docs/agent-loop.md +61 -0
  483. package/docs/agent-send.md +21 -0
  484. package/docs/agent.md +108 -0
  485. package/docs/android.md +133 -0
  486. package/docs/architecture.md +114 -0
  487. package/docs/assets/markdown.css +133 -0
  488. package/docs/assets/pixel-lobster.svg +60 -0
  489. package/docs/assets/terminal.css +470 -0
  490. package/docs/assets/theme.js +55 -0
  491. package/docs/audio.md +48 -0
  492. package/docs/automation/nexus-sync.md +371 -0
  493. package/docs/background-process.md +74 -0
  494. package/docs/bash.md +32 -0
  495. package/docs/bedrock.md +71 -0
  496. package/docs/bonjour.md +159 -0
  497. package/docs/browser-linux-troubleshooting.md +114 -0
  498. package/docs/browser.md +293 -0
  499. package/docs/bun.md +56 -0
  500. package/docs/camera.md +152 -0
  501. package/docs/clawd.md +212 -0
  502. package/docs/concepts/usage-tracking.md +29 -0
  503. package/docs/configuration.md +1666 -0
  504. package/docs/control-ui.md +83 -0
  505. package/docs/cron.md +385 -0
  506. package/docs/dashboard.md +17 -0
  507. package/docs/device-models.md +46 -0
  508. package/docs/discord.md +308 -0
  509. package/docs/discovery.md +112 -0
  510. package/docs/docker.md +258 -0
  511. package/docs/docs.json +105 -0
  512. package/docs/doctor.md +68 -0
  513. package/docs/elevated.md +31 -0
  514. package/docs/faq.md +736 -0
  515. package/docs/feature-inventory/overview.md +141 -0
  516. package/docs/feature-inventory/rollout-checklist.md +53 -0
  517. package/docs/feature-inventory/test-matrix.md +87 -0
  518. package/docs/feature-inventory.md +9 -0
  519. package/docs/gateway/configuration-examples.md +221 -0
  520. package/docs/gateway/configuration.md +172 -0
  521. package/docs/gateway/cron.md +61 -0
  522. package/docs/gateway/heartbeat.md +207 -0
  523. package/docs/gateway/pairing.md +109 -0
  524. package/docs/gateway-lock.md +28 -0
  525. package/docs/gateway.md +227 -0
  526. package/docs/gmail-pubsub.md +191 -0
  527. package/docs/grammy.md +27 -0
  528. package/docs/group-messages.md +73 -0
  529. package/docs/groups.md +130 -0
  530. package/docs/health.md +28 -0
  531. package/docs/heartbeat.md +73 -0
  532. package/docs/home-userspace.md +277 -0
  533. package/docs/hubs.md +148 -0
  534. package/docs/images.md +51 -0
  535. package/docs/imessage.md +94 -0
  536. package/docs/index.md +196 -0
  537. package/docs/ios.md +372 -0
  538. package/docs/linux.md +11 -0
  539. package/docs/location-command.md +95 -0
  540. package/docs/location.md +46 -0
  541. package/docs/logging.md +110 -0
  542. package/docs/lore.md +131 -0
  543. package/docs/mac/bun.md +133 -0
  544. package/docs/mac/canvas.md +161 -0
  545. package/docs/mac/child-process.md +72 -0
  546. package/docs/mac/dev-setup.md +81 -0
  547. package/docs/mac/health.md +28 -0
  548. package/docs/mac/icon.md +26 -0
  549. package/docs/mac/logging.md +51 -0
  550. package/docs/mac/menu-bar.md +69 -0
  551. package/docs/mac/peekaboo.md +170 -0
  552. package/docs/mac/permissions.md +40 -0
  553. package/docs/mac/release.md +76 -0
  554. package/docs/mac/remote.md +57 -0
  555. package/docs/mac/signing.md +41 -0
  556. package/docs/mac/skills.md +27 -0
  557. package/docs/mac/voice-overlay.md +52 -0
  558. package/docs/mac/voicewake.md +56 -0
  559. package/docs/mac/webchat.md +27 -0
  560. package/docs/mac/xpc.md +40 -0
  561. package/docs/macos.md +104 -0
  562. package/docs/model-failover.md +75 -0
  563. package/docs/models.md +91 -0
  564. package/docs/multi-agent.md +74 -0
  565. package/docs/nix.md +95 -0
  566. package/docs/nodes.md +157 -0
  567. package/docs/onboarding-config-protocol.md +34 -0
  568. package/docs/onboarding.md +189 -0
  569. package/docs/pairing.md +85 -0
  570. package/docs/plans/cron-add-hardening.md +72 -0
  571. package/docs/plans/group-policy-hardening.md +121 -0
  572. package/docs/poll.md +52 -0
  573. package/docs/prereqs.md +67 -0
  574. package/docs/presence.md +133 -0
  575. package/docs/proposals/model-config.md +147 -0
  576. package/docs/provider-routing.md +25 -0
  577. package/docs/queue.md +78 -0
  578. package/docs/reference/templates/AGENTS.md +164 -0
  579. package/docs/remote-gateway-readme.md +153 -0
  580. package/docs/remote.md +61 -0
  581. package/docs/research/memory.md +227 -0
  582. package/docs/rpc.md +35 -0
  583. package/docs/security.md +200 -0
  584. package/docs/session-ingestion.md +119 -0
  585. package/docs/session-tool.md +154 -0
  586. package/docs/session.md +85 -0
  587. package/docs/sessions.md +8 -0
  588. package/docs/setup.md +131 -0
  589. package/docs/showcase.md +37 -0
  590. package/docs/signal.md +122 -0
  591. package/docs/skills-config.md +58 -0
  592. package/docs/skills.md +153 -0
  593. package/docs/slack.md +221 -0
  594. package/docs/subagents.md +72 -0
  595. package/docs/tailscale.md +71 -0
  596. package/docs/talk.md +79 -0
  597. package/docs/telegram.md +96 -0
  598. package/docs/templates/AGENTS.md +286 -0
  599. package/docs/templates/BOOTSTRAP.md +35 -0
  600. package/docs/templates/IDENTITY.md +17 -0
  601. package/docs/templates/PROFILE.md +14 -0
  602. package/docs/templates/SOUL.md +41 -0
  603. package/docs/templates/TOOLS.md +41 -0
  604. package/docs/templates/USER.md +8 -0
  605. package/docs/test.md +43 -0
  606. package/docs/testing-onboarding-quickstart.md +76 -0
  607. package/docs/testing-philosophy.md +211 -0
  608. package/docs/thinking.md +46 -0
  609. package/docs/timezone.md +40 -0
  610. package/docs/tools.md +346 -0
  611. package/docs/troubleshooting.md +257 -0
  612. package/docs/tui.md +71 -0
  613. package/docs/typebox.md +42 -0
  614. package/docs/updating.md +138 -0
  615. package/docs/usage-cloud-aggregation-spec.md +133 -0
  616. package/docs/usage-suggestions-pipeline.md +126 -0
  617. package/docs/voicewake.md +61 -0
  618. package/docs/web.md +115 -0
  619. package/docs/webchat.md +34 -0
  620. package/docs/webhook.md +132 -0
  621. package/docs/whatsapp-clawd.jpg +0 -0
  622. package/docs/whatsapp.md +170 -0
  623. package/docs/windows.md +11 -0
  624. package/docs/wizard.md +167 -0
  625. package/package.json +209 -0
  626. package/skills/1password/SKILL.md +54 -0
  627. package/skills/1password/docs/setup.md +85 -0
  628. package/skills/1password/docs/troubleshooting.md +63 -0
  629. package/skills/1password/references/cli-examples.md +29 -0
  630. package/skills/1password/references/get-started.md +17 -0
  631. package/skills/agent-browser/SKILL.md +450 -0
  632. package/skills/agent-browser/docs/browser-use-eval.md +95 -0
  633. package/skills/agent-browser/docs/first-tests.md +261 -0
  634. package/skills/agent-browser/docs/wordle-nyt-eval.js +32 -0
  635. package/skills/aix/SKILL.md +93 -0
  636. package/skills/aix/docs/embeddings.md +40 -0
  637. package/skills/aix/docs/setup.md +58 -0
  638. package/skills/aix/docs/troubleshooting.md +41 -0
  639. package/skills/aix/references/sql.md +48 -0
  640. package/skills/apple-notes/SKILL.md +50 -0
  641. package/skills/apple-reminders/SKILL.md +67 -0
  642. package/skills/bear-notes/SKILL.md +79 -0
  643. package/skills/bird/SKILL.md +32 -0
  644. package/skills/bird/docs/auth.md +31 -0
  645. package/skills/bird/docs/troubleshooting.md +31 -0
  646. package/skills/blogwatcher/SKILL.md +46 -0
  647. package/skills/blucli/SKILL.md +27 -0
  648. package/skills/brave-search/SKILL.md +36 -0
  649. package/skills/brave-search/docs/setup.md +40 -0
  650. package/skills/brave-search/docs/troubleshooting.md +37 -0
  651. package/skills/brave-search/docs/usage.md +28 -0
  652. package/skills/brave-search/scripts/content.mjs +53 -0
  653. package/skills/brave-search/scripts/search.mjs +79 -0
  654. package/skills/browser-use-agent-sdk/SKILL.md +90 -0
  655. package/skills/camsnap/SKILL.md +25 -0
  656. package/skills/clawdhub/SKILL.md +53 -0
  657. package/skills/coding-agent/SKILL.md +274 -0
  658. package/skills/comms/SKILL.md +249 -0
  659. package/skills/comms/docs/adapters.md +54 -0
  660. package/skills/comms/docs/setup.md +56 -0
  661. package/skills/comms/docs/troubleshooting.md +44 -0
  662. package/skills/comms/references/schema.md +49 -0
  663. package/skills/computer-use/SKILL.md +204 -0
  664. package/skills/computer-use/docs/open-interpreter.md +26 -0
  665. package/skills/computer-use/docs/peekaboo.md +26 -0
  666. package/skills/computer-use/docs/setup.md +47 -0
  667. package/skills/computer-use/docs/troubleshooting.md +33 -0
  668. package/skills/discord/SKILL.md +370 -0
  669. package/skills/eightctl/SKILL.md +29 -0
  670. package/skills/eve/SKILL.md +215 -0
  671. package/skills/eve/docs/dual-account.md +84 -0
  672. package/skills/eve/docs/intelligence.md +58 -0
  673. package/skills/eve/docs/setup.md +60 -0
  674. package/skills/eve/docs/troubleshooting.md +54 -0
  675. package/skills/eve/scripts/setup-dual-account.sh +125 -0
  676. package/skills/filesystem/SKILL.md +217 -0
  677. package/skills/food-order/SKILL.md +41 -0
  678. package/skills/gemini/SKILL.md +23 -0
  679. package/skills/gh/SKILL.md +22 -0
  680. package/skills/gh/docs/usage.md +41 -0
  681. package/skills/gifgrep/SKILL.md +47 -0
  682. package/skills/github/SKILL.md +26 -0
  683. package/skills/github/docs/setup.md +21 -0
  684. package/skills/github/docs/troubleshooting.md +24 -0
  685. package/skills/gog/SKILL.md +104 -0
  686. package/skills/gog/docs/portability.md +94 -0
  687. package/skills/gog/docs/setup.md +76 -0
  688. package/skills/gog/docs/troubleshooting.md +94 -0
  689. package/skills/gog/scripts/cdp/README.md +90 -0
  690. package/skills/gog/scripts/cdp/add_test_users.py +69 -0
  691. package/skills/gog/scripts/cdp/auth_add_accounts.py +209 -0
  692. package/skills/gog/scripts/cdp/auth_add_accounts_manual.py +206 -0
  693. package/skills/gog/scripts/cdp/create_oauth_client.py +165 -0
  694. package/skills/gog/scripts/cdp/launch_cdp_chrome.sh +58 -0
  695. package/skills/google-oauth/SKILL.md +94 -0
  696. package/skills/goplaces/SKILL.md +30 -0
  697. package/skills/imsg/SKILL.md +25 -0
  698. package/skills/json-render/SKILL.md +154 -0
  699. package/skills/json-render/assets/components/README.md +21 -0
  700. package/skills/json-render/assets/components/catalog.ts +78 -0
  701. package/skills/json-render/assets/components/registry.tsx +172 -0
  702. package/skills/json-render/assets/demo/App.css +397 -0
  703. package/skills/json-render/assets/demo/App.tsx +897 -0
  704. package/skills/json-render/assets/demo/README.md +22 -0
  705. package/skills/json-render/assets/demo/catalog.ts +78 -0
  706. package/skills/json-render/assets/demo/data/nexus-core.json +31 -0
  707. package/skills/json-render/assets/demo/index.css +27 -0
  708. package/skills/json-render/assets/demo/registry.tsx +150 -0
  709. package/skills/json-render/docs/nexus-state-demo.md +84 -0
  710. package/skills/json-render/docs/shadcn-preset.md +33 -0
  711. package/skills/json-render/scripts/create-vite-demo.sh +45 -0
  712. package/skills/json-render/scripts/llm-server/README.md +33 -0
  713. package/skills/json-render/scripts/llm-server/catalog.ts +78 -0
  714. package/skills/json-render/scripts/llm-server/package-lock.json +702 -0
  715. package/skills/json-render/scripts/llm-server/package.json +18 -0
  716. package/skills/json-render/scripts/llm-server/server.ts +285 -0
  717. package/skills/local-places/SERVER_README.md +101 -0
  718. package/skills/local-places/SKILL.md +91 -0
  719. package/skills/local-places/pyproject.toml +27 -0
  720. package/skills/local-places/src/local_places/__init__.py +2 -0
  721. package/skills/local-places/src/local_places/__pycache__/__init__.cpython-314.pyc +0 -0
  722. package/skills/local-places/src/local_places/__pycache__/google_places.cpython-314.pyc +0 -0
  723. package/skills/local-places/src/local_places/__pycache__/main.cpython-314.pyc +0 -0
  724. package/skills/local-places/src/local_places/__pycache__/schemas.cpython-314.pyc +0 -0
  725. package/skills/local-places/src/local_places/google_places.py +314 -0
  726. package/skills/local-places/src/local_places/main.py +65 -0
  727. package/skills/local-places/src/local_places/schemas.py +107 -0
  728. package/skills/mcporter/SKILL.md +38 -0
  729. package/skills/model-usage/SKILL.md +45 -0
  730. package/skills/model-usage/references/codexbar-cli.md +28 -0
  731. package/skills/model-usage/scripts/model_usage.py +310 -0
  732. package/skills/nano-banana-pro/SKILL.md +30 -0
  733. package/skills/nano-banana-pro/scripts/generate_image.py +169 -0
  734. package/skills/nano-pdf/SKILL.md +20 -0
  735. package/skills/nexus-cloud/SKILL.md +53 -0
  736. package/skills/nexus-cloud/docs/security.md +24 -0
  737. package/skills/nexus-cloud/docs/setup.md +51 -0
  738. package/skills/nexus-cloud/docs/troubleshooting.md +28 -0
  739. package/skills/notion/SKILL.md +156 -0
  740. package/skills/obsidian/SKILL.md +55 -0
  741. package/skills/onboarding/SKILL.md +515 -0
  742. package/skills/onboarding/docs/CAPABILITIES.md +444 -0
  743. package/skills/onboarding/docs/CAPABILITY_TAXONOMY.md +608 -0
  744. package/skills/onboarding/docs/CLI_GRAMMAR.md +797 -0
  745. package/skills/onboarding/docs/CLI_GRAMMAR_CREDENTIALS.md +632 -0
  746. package/skills/onboarding/docs/CLI_GRAMMAR_ONBOARDING.md +815 -0
  747. package/skills/onboarding/docs/CLI_GRAMMAR_SKILLS.md +449 -0
  748. package/skills/onboarding/docs/DOCUMENTATION_OVERVIEW.md +290 -0
  749. package/skills/onboarding/docs/ENTITY_MODEL.md +582 -0
  750. package/skills/onboarding/docs/GOAL_STATE_ARCHITECTURE.md +395 -0
  751. package/skills/onboarding/docs/NEXUS_SYSTEM_OVERVIEW.md +476 -0
  752. package/skills/onboarding/docs/SKILLS_HUB_SPEC.md +477 -0
  753. package/skills/onboarding/docs/SKILLS_SPECIFICATION.md +947 -0
  754. package/skills/onboarding/docs/SKILL_GATEWAY_DESIGN.md +702 -0
  755. package/skills/onboarding/docs/SKILL_GATEWAY_PRD.md +278 -0
  756. package/skills/onboarding/docs/SKILL_INVENTORY.md +266 -0
  757. package/skills/onboarding/docs/STATE_ARCHITECTURE.md +547 -0
  758. package/skills/onboarding/docs/TROUBLESHOOTING.md +363 -0
  759. package/skills/onboarding/docs/USER_JOURNEY.md +797 -0
  760. package/skills/onboarding/docs/WOW_MOMENTS.md +232 -0
  761. package/skills/onboarding/docs/agent-apple-id.md +289 -0
  762. package/skills/onboarding/docs/skill-deep-dives/1password.md +367 -0
  763. package/skills/onboarding/docs/skill-deep-dives/TEMPLATE.md +197 -0
  764. package/skills/onboarding/docs/skill-deep-dives/aix.md +498 -0
  765. package/skills/onboarding/docs/skill-deep-dives/bird.md +357 -0
  766. package/skills/onboarding/docs/skill-deep-dives/brave-search.md +601 -0
  767. package/skills/onboarding/docs/skill-deep-dives/comms.md +607 -0
  768. package/skills/onboarding/docs/skill-deep-dives/computer-use.md +599 -0
  769. package/skills/onboarding/docs/skill-deep-dives/cron-and-heartbeat.md +576 -0
  770. package/skills/onboarding/docs/skill-deep-dives/eve.md +711 -0
  771. package/skills/onboarding/docs/skill-deep-dives/github.md +333 -0
  772. package/skills/onboarding/docs/skill-deep-dives/gog.md +640 -0
  773. package/skills/onboarding/docs/skill-deep-dives/homebrew-prereqs.md +785 -0
  774. package/skills/onboarding/docs/skill-deep-dives/nexus-cloud.md +689 -0
  775. package/skills/onboarding/docs/skill-deep-dives/qmd.md +742 -0
  776. package/skills/onboarding/docs/skill-deep-dives/telegram.md +379 -0
  777. package/skills/onboarding/docs/skill-deep-dives/wacli.md +399 -0
  778. package/skills/onboarding/docs/skill-deep-dives/weather.md +513 -0
  779. package/skills/onboarding/scripts/ralph/prd.json +215 -0
  780. package/skills/onboarding/scripts/ralph/progress.txt +99 -0
  781. package/skills/onboarding/scripts/ralph/prompt.md +87 -0
  782. package/skills/onboarding/scripts/ralph/ralph.log +84 -0
  783. package/skills/onboarding/scripts/ralph/ralph.sh +45 -0
  784. package/skills/onboarding/scripts/setup-cursor-skills.sh +40 -0
  785. package/skills/openai-image-gen/SKILL.md +31 -0
  786. package/skills/openai-image-gen/scripts/gen.py +173 -0
  787. package/skills/openai-whisper/SKILL.md +19 -0
  788. package/skills/openai-whisper-api/SKILL.md +43 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
  790. package/skills/openhue/SKILL.md +30 -0
  791. package/skills/oracle/SKILL.md +105 -0
  792. package/skills/ordercli/SKILL.md +47 -0
  793. package/skills/peekaboo/SKILL.md +153 -0
  794. package/skills/qmd/SKILL.md +32 -0
  795. package/skills/qmd/docs/mcp.md +30 -0
  796. package/skills/qmd/docs/ollama.md +42 -0
  797. package/skills/qmd/docs/setup.md +44 -0
  798. package/skills/sag/SKILL.md +62 -0
  799. package/skills/skill-cli-template/SKILL.md +109 -0
  800. package/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-311.pyc +0 -0
  801. package/skills/slack/SKILL.md +144 -0
  802. package/skills/songsee/SKILL.md +29 -0
  803. package/skills/sonoscli/SKILL.md +26 -0
  804. package/skills/spotify-player/SKILL.md +34 -0
  805. package/skills/summarize/SKILL.md +49 -0
  806. package/skills/telegram/SKILL.md +20 -0
  807. package/skills/telegram/docs/pairing.md +30 -0
  808. package/skills/telegram/docs/setup.md +41 -0
  809. package/skills/telegram/docs/webhook.md +17 -0
  810. package/skills/things-mac/SKILL.md +61 -0
  811. package/skills/tmux/SKILL.md +121 -0
  812. package/skills/tmux/scripts/find-sessions.sh +112 -0
  813. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  814. package/skills/trello/SKILL.md +84 -0
  815. package/skills/upstream-sync/SKILL.md +151 -0
  816. package/skills/upstream-sync/scripts/auto-port.sh +227 -0
  817. package/skills/upstream-sync/scripts/check-all.sh +88 -0
  818. package/skills/upstream-sync/scripts/check-nexus.sh +146 -0
  819. package/skills/upstream-sync/scripts/check-pi-ai.sh +129 -0
  820. package/skills/video-frames/SKILL.md +29 -0
  821. package/skills/video-frames/scripts/frame.sh +81 -0
  822. package/skills/wacli/SKILL.md +48 -0
  823. package/skills/wacli/docs/auth.md +21 -0
  824. package/skills/wacli/docs/backup.md +9 -0
  825. package/skills/wacli/docs/troubleshooting.md +21 -0
  826. package/skills/weather/SKILL.md +53 -0
  827. package/skills/weather/docs/usage.md +40 -0
@@ -0,0 +1,227 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Auto-port conflict-free commits from upstream to nexus
5
+ # This script attempts to cherry-pick commits and rolls back on conflict
6
+
7
+ usage() {
8
+ cat <<'USAGE'
9
+ Usage: auto-port.sh [options]
10
+
11
+ Automatically port conflict-free commits from upstream to nexus.
12
+
13
+ Options:
14
+ --nexus-path PATH Path to nexus repo (default: from env or current directory)
15
+ --since DATE Only consider commits since date (default: "1 week ago")
16
+ --dry-run Show what would be ported without making changes
17
+ --max-commits N Maximum commits to port in one run (default: 10)
18
+ --skip-tests Skip running tests after porting (faster but riskier)
19
+ --skip-docs Skip documentation-only commits
20
+ --skip-tests-commits Skip test-only commits
21
+ -h, --help Show this help
22
+
23
+ Environment:
24
+ NEXUS_PATH Default nexus repository path
25
+
26
+ Output:
27
+ Creates a log file at ~/.nexus/state/upstream-sync/port-log.jsonl
28
+ with records of successful and failed port attempts.
29
+ USAGE
30
+ }
31
+
32
+ # Defaults
33
+ nexus_path="${NEXUS_PATH:-}"
34
+ since_date="1 week ago"
35
+ dry_run=false
36
+ max_commits=10
37
+ skip_tests=false
38
+ skip_docs=true
39
+ skip_tests_commits=true
40
+ log_dir="$HOME/.nexus/state/upstream-sync"
41
+
42
+ # Parse arguments
43
+ while [[ $# -gt 0 ]]; do
44
+ case "$1" in
45
+ --nexus-path) nexus_path="$2"; shift 2 ;;
46
+ --since) since_date="$2"; shift 2 ;;
47
+ --dry-run) dry_run=true; shift ;;
48
+ --max-commits) max_commits="$2"; shift 2 ;;
49
+ --skip-tests) skip_tests=true; shift ;;
50
+ --skip-docs) skip_docs=true; shift ;;
51
+ --no-skip-docs) skip_docs=false; shift ;;
52
+ --skip-tests-commits) skip_tests_commits=true; shift ;;
53
+ --no-skip-tests-commits) skip_tests_commits=false; shift ;;
54
+ -h|--help) usage; exit 0 ;;
55
+ *) echo "Unknown option: $1" >&2; usage; exit 1 ;;
56
+ esac
57
+ done
58
+
59
+ # Resolve nexus path
60
+ if [[ -z "$nexus_path" ]]; then
61
+ if [[ -d ".git" ]] || [[ -f ".git" ]]; then
62
+ nexus_path="."
63
+ elif [[ -d "$HOME/nexus/home/projects/nexus/.git" ]] || [[ -f "$HOME/nexus/home/projects/nexus/.git" ]]; then
64
+ nexus_path="$HOME/nexus/home/projects/nexus"
65
+ else
66
+ echo "Error: Could not detect nexus repository. Use --nexus-path" >&2
67
+ exit 1
68
+ fi
69
+ fi
70
+
71
+ # Validate paths (handle both regular repos and submodules/worktrees)
72
+ if [[ ! -d "$nexus_path/.git" ]] && [[ ! -f "$nexus_path/.git" ]]; then
73
+ echo "Error: Nexus repository not found at: $nexus_path" >&2
74
+ exit 1
75
+ fi
76
+
77
+ if [[ ! -d "$nexus_path/.git" ]] && [[ ! -f "$nexus_path/.git" ]]; then
78
+ echo "Error: Nexus repository not found at: $nexus_path" >&2
79
+ exit 1
80
+ fi
81
+
82
+ # Create log directory
83
+ mkdir -p "$log_dir"
84
+ log_file="$log_dir/port-log.jsonl"
85
+
86
+ log_result() {
87
+ local hash="$1"
88
+ local subject="$2"
89
+ local status="$3"
90
+ local reason="${4:-}"
91
+ local timestamp=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
92
+ echo "{\"ts\":\"$timestamp\",\"hash\":\"$hash\",\"subject\":\"$subject\",\"status\":\"$status\",\"reason\":\"$reason\"}" >> "$log_file"
93
+ }
94
+
95
+ # Fetch latest
96
+ echo "πŸ”„ Fetching latest from nexus..." >&2
97
+ (cd "$nexus_path" && git fetch origin main --quiet)
98
+
99
+ # Ensure upstream remote exists in nexus
100
+ cd "$nexus_path"
101
+ if ! git remote | grep -q "^upstream$"; then
102
+ echo "Adding upstream remote..." >&2
103
+ git remote add upstream https://github.com/nexus/nexus.git
104
+ fi
105
+ git fetch upstream main --quiet 2>/dev/null || true
106
+
107
+ # Find fork point
108
+ fork_point=""
109
+ if git remote | grep -q "^upstream$"; then
110
+ fork_point=$(git merge-base HEAD upstream/main 2>/dev/null || echo "")
111
+ fi
112
+ if [[ -z "$fork_point" ]]; then
113
+ fork_point=$(git rev-list --max-parents=0 HEAD)
114
+ fi
115
+
116
+ echo "πŸ“ Fork point: ${fork_point:0:8}" >&2
117
+
118
+ # Get commits to consider
119
+ cd "$nexus_path"
120
+
121
+ # Build filter pattern
122
+ filter_pattern=""
123
+ if [[ "$skip_docs" == "true" ]]; then
124
+ filter_pattern="${filter_pattern}|^[a-f0-9]+ docs:"
125
+ fi
126
+ if [[ "$skip_tests_commits" == "true" ]]; then
127
+ filter_pattern="${filter_pattern}|^[a-f0-9]+ test:"
128
+ fi
129
+ # Also skip merge commits, chore, style, ci
130
+ filter_pattern="${filter_pattern}|^[a-f0-9]+ (Merge|chore|style|ci):"
131
+ filter_pattern="${filter_pattern#|}" # Remove leading |
132
+
133
+ # Get candidate commits (oldest first for proper ordering)
134
+ commits=$(git log --oneline --reverse --since="$since_date" "${fork_point}..origin/main" 2>/dev/null | \
135
+ grep -vE "$filter_pattern" | \
136
+ head -n "$max_commits" || echo "")
137
+
138
+ if [[ -z "$commits" ]]; then
139
+ echo "βœ… No new commits to port since $since_date"
140
+ exit 0
141
+ fi
142
+
143
+ commit_count=$(echo "$commits" | wc -l | tr -d ' ')
144
+ echo "πŸ“Š Found $commit_count candidate commits to port" >&2
145
+ echo "" >&2
146
+
147
+ # Track results
148
+ ported=0
149
+ skipped=0
150
+ failed=0
151
+
152
+ # Process each commit
153
+ cd "$nexus_path"
154
+ while IFS= read -r line; do
155
+ hash=$(echo "$line" | cut -d' ' -f1)
156
+ subject=$(echo "$line" | cut -d' ' -f2-)
157
+
158
+ # Check if already ported (by checking if commit message exists)
159
+ if git log --oneline --grep="$hash" HEAD 2>/dev/null | grep -q .; then
160
+ echo "⏭️ Skip $hash: already ported"
161
+ ((skipped++)) || true
162
+ continue
163
+ fi
164
+
165
+ # Check if commit exists in nexus repo
166
+ if ! (cd "$nexus_path" && git cat-file -e "$hash" 2>/dev/null); then
167
+ echo "⏭️ Skip $hash: commit not found"
168
+ ((skipped++)) || true
169
+ continue
170
+ fi
171
+
172
+ if [[ "$dry_run" == "true" ]]; then
173
+ echo "πŸ” Would try: $hash $subject"
174
+ continue
175
+ fi
176
+
177
+ echo -n "πŸ”„ Trying $hash: $subject... "
178
+
179
+ # Attempt cherry-pick
180
+ if git cherry-pick "$hash" --no-commit 2>/dev/null; then
181
+ # Check for any changes
182
+ if git diff --cached --quiet; then
183
+ echo "⏭️ no changes"
184
+ git reset HEAD --hard >/dev/null 2>&1
185
+ log_result "$hash" "$subject" "skipped" "no changes"
186
+ ((skipped++)) || true
187
+ continue
188
+ fi
189
+
190
+ # Build to verify
191
+ if [[ "$skip_tests" != "true" ]]; then
192
+ if ! npm run build >/dev/null 2>&1; then
193
+ echo "❌ build failed"
194
+ git reset HEAD --hard >/dev/null 2>&1
195
+ log_result "$hash" "$subject" "failed" "build failed"
196
+ ((failed++)) || true
197
+ continue
198
+ fi
199
+ fi
200
+
201
+ # Commit the change
202
+ git commit -m "$(cat <<EOF
203
+ $subject
204
+
205
+ Ported from nexus: $hash
206
+ EOF
207
+ )" >/dev/null 2>&1
208
+
209
+ echo "βœ… ported"
210
+ log_result "$hash" "$subject" "ported" ""
211
+ ((ported++)) || true
212
+ else
213
+ echo "❌ conflict"
214
+ git reset HEAD --hard >/dev/null 2>&1
215
+ log_result "$hash" "$subject" "failed" "merge conflict"
216
+ ((failed++)) || true
217
+ fi
218
+ done <<< "$commits"
219
+
220
+ echo ""
221
+ echo "πŸ“ˆ Results: $ported ported, $skipped skipped, $failed failed"
222
+
223
+ if [[ "$ported" -gt 0 ]]; then
224
+ echo ""
225
+ echo "πŸ’‘ Run 'git log --oneline -$ported' to see ported commits"
226
+ echo " Run 'git push' when ready to publish"
227
+ fi
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'USAGE'
6
+ Usage: check-all.sh [options]
7
+
8
+ Check both nexus and pi-ai upstreams for changes.
9
+
10
+ Options:
11
+ --nexus-path PATH Path to nexus repo (default: $NEXUS_PATH or current directory)
12
+ --since DATE Show nexus commits since date
13
+ -h, --help Show this help
14
+
15
+ Examples:
16
+ # Check all upstreams
17
+ ./check-all.sh
18
+
19
+ # Check with custom path
20
+ ./check-all.sh --nexus-path ~/code/nexus
21
+ USAGE
22
+ }
23
+
24
+ # Get script directory
25
+ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
26
+
27
+ # Parse arguments
28
+ nexus_args=()
29
+ pi_ai_args=()
30
+ while [[ $# -gt 0 ]]; do
31
+ case "$1" in
32
+ -h|--help) usage; exit 0 ;;
33
+ --nexus-path)
34
+ nexus_args+=("$1" "$2")
35
+ pi_ai_args+=("$1" "$2")
36
+ shift 2
37
+ ;;
38
+ --since|--author|--grep|--limit)
39
+ # Nexus-only args
40
+ nexus_args+=("$1" "$2")
41
+ shift 2
42
+ ;;
43
+ *)
44
+ echo "Unknown option: $1" >&2
45
+ usage
46
+ exit 1
47
+ ;;
48
+ esac
49
+ done
50
+
51
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
52
+ echo "πŸ”„ NEXUS UPSTREAM SYNC CHECK"
53
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
54
+ echo ""
55
+
56
+ # Check Nexus
57
+ echo "πŸ“¦ Checking nexus repository..."
58
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
59
+ if [[ ${#nexus_args[@]} -gt 0 ]]; then
60
+ if ! "$script_dir/check-nexus.sh" "${nexus_args[@]}"; then
61
+ echo "⚠️ Nexus check failed" >&2
62
+ fi
63
+ else
64
+ if ! "$script_dir/check-nexus.sh"; then
65
+ echo "⚠️ Nexus check failed" >&2
66
+ fi
67
+ fi
68
+
69
+ echo ""
70
+ echo ""
71
+
72
+ # Check Pi-AI
73
+ echo "πŸ“¦ Checking Pi-AI packages..."
74
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
75
+ if [[ ${#pi_ai_args[@]} -gt 0 ]]; then
76
+ if ! "$script_dir/check-pi-ai.sh" "${pi_ai_args[@]}"; then
77
+ echo "⚠️ Pi-AI check failed" >&2
78
+ fi
79
+ else
80
+ if ! "$script_dir/check-pi-ai.sh"; then
81
+ echo "⚠️ Pi-AI check failed" >&2
82
+ fi
83
+ fi
84
+
85
+ echo ""
86
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
87
+ echo "βœ… Upstream sync check complete"
88
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -0,0 +1,146 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'USAGE'
6
+ Usage: check-nexus.sh [options]
7
+
8
+ Check nexus repository for new commits since nexus fork point.
9
+
10
+ Options:
11
+ --nexus-path PATH Path to nexus repo (default: $NEXUS_PATH or current directory)
12
+ --since DATE Show commits since date (e.g., "2 weeks ago", "2026-01-01")
13
+ --author PATTERN Filter by author name/email (case insensitive)
14
+ --grep PATTERN Filter by commit message (case insensitive)
15
+ --limit N Limit output to N commits (default: 50)
16
+ -h, --help Show this help
17
+
18
+ Environment:
19
+ NEXUS_PATH Default nexus repository path
20
+
21
+ Examples:
22
+ # Check for all new commits
23
+ ./check-nexus.sh
24
+
25
+ # Check commits in last 2 weeks
26
+ ./check-nexus.sh --since "2 weeks ago"
27
+
28
+ # Check auth-related commits
29
+ ./check-nexus.sh --grep "auth"
30
+
31
+ # Check commits by specific author
32
+ ./check-nexus.sh --author "peter"
33
+ USAGE
34
+ }
35
+
36
+ # Defaults
37
+ nexus_path="${NEXUS_PATH:-}"
38
+ since_date=""
39
+ author_filter=""
40
+ grep_filter=""
41
+ limit=50
42
+
43
+ # Parse arguments
44
+ while [[ $# -gt 0 ]]; do
45
+ case "$1" in
46
+ --nexus-path) nexus_path="$2"; shift 2 ;;
47
+ --since) since_date="$2"; shift 2 ;;
48
+ --author) author_filter="$2"; shift 2 ;;
49
+ --grep) grep_filter="$2"; shift 2 ;;
50
+ --limit) limit="$2"; shift 2 ;;
51
+ -h|--help) usage; exit 0 ;;
52
+ *) echo "Unknown option: $1" >&2; usage; exit 1 ;;
53
+ esac
54
+ done
55
+
56
+ # Validate paths (handle both regular repos and submodules/worktrees)
57
+ if [[ ! -d "$nexus_path/.git" ]] && [[ ! -f "$nexus_path/.git" ]]; then
58
+ echo "Error: Nexus repository not found at: $nexus_path" >&2
59
+ exit 1
60
+ fi
61
+
62
+ if [[ -z "$nexus_path" ]]; then
63
+ if [[ -d ".git" ]]; then
64
+ nexus_path="."
65
+ elif [[ -d "/Users/tyler/Desktop/projects/nexus/.git" ]]; then
66
+ nexus_path="/Users/tyler/Desktop/projects/nexus"
67
+ else
68
+ echo "Error: Could not detect nexus repository. Use --nexus-path" >&2
69
+ exit 1
70
+ fi
71
+ fi
72
+
73
+ if [[ ! -d "$nexus_path/.git" ]]; then
74
+ echo "Error: Nexus repository not found at: $nexus_path" >&2
75
+ exit 1
76
+ fi
77
+
78
+ # Fetch latest from nexus
79
+ echo "Fetching latest from nexus..." >&2
80
+ (cd "$nexus_path" && git fetch origin main --quiet)
81
+
82
+ # Get the nexus commit that nexus was forked from
83
+ echo "Finding nexus fork point..." >&2
84
+ cd "$nexus_path"
85
+
86
+ # Try to find the fork point by checking git log for nexus references
87
+ # or by finding the merge-base if nexus remote is configured
88
+ fork_point=""
89
+ if git remote | grep -q "^nexus$"; then
90
+ # If nexus remote exists, use merge-base
91
+ fork_point=$(git merge-base HEAD nexus/main 2>/dev/null || echo "")
92
+ fi
93
+
94
+ if [[ -z "$fork_point" ]]; then
95
+ # Fallback: look for the earliest commit in nexus
96
+ # This assumes nexus was forked relatively recently
97
+ fork_point=$(git rev-list --max-parents=0 HEAD)
98
+ echo "Warning: Could not determine exact fork point, using first commit: $fork_point" >&2
99
+ fi
100
+
101
+ echo "Fork point: $fork_point" >&2
102
+ echo "" >&2
103
+
104
+ # Build git log command
105
+ cd "$nexus_path"
106
+ log_cmd=(git log --oneline --date=short --pretty=format:"%h|%ad|%an|%s")
107
+
108
+ # Add range
109
+ log_cmd+=("${fork_point}..origin/main")
110
+
111
+ # Add filters
112
+ if [[ -n "$since_date" ]]; then
113
+ log_cmd+=(--since="$since_date")
114
+ fi
115
+
116
+ if [[ -n "$author_filter" ]]; then
117
+ log_cmd+=(--author="$author_filter")
118
+ fi
119
+
120
+ if [[ -n "$grep_filter" ]]; then
121
+ log_cmd+=(--grep="$grep_filter" -i)
122
+ fi
123
+
124
+ # Execute and format output
125
+ commits=$("${log_cmd[@]}" | head -n "$limit" || echo "")
126
+
127
+ if [[ -z "$commits" ]]; then
128
+ echo "βœ… No new commits found in nexus since fork point"
129
+ exit 0
130
+ fi
131
+
132
+ commit_count=$(echo "$commits" | wc -l | tr -d ' ')
133
+ echo "πŸ“Š Found $commit_count new commits in nexus:"
134
+ echo ""
135
+ echo "Hash | Date | Author | Subject"
136
+ echo "-------|------------|---------------------|--------"
137
+ echo "$commits" | while IFS='|' read -r hash date author subject; do
138
+ printf "%-7s| %-10s | %-19s | %s\n" "$hash" "$date" "$author" "$subject"
139
+ done
140
+
141
+ echo ""
142
+ echo "πŸ’‘ Review these commits to see if any changes should be ported to nexus."
143
+ echo " Focus on: authentication, sessions, gateway, agent runtime, ODU patterns"
144
+ echo ""
145
+ echo "To see details of a specific commit:"
146
+ echo " cd $nexus_path && git show <hash>"
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'USAGE'
6
+ Usage: check-pi-ai.sh [options]
7
+
8
+ Check pi-ai npm packages for new versions.
9
+
10
+ Options:
11
+ --nexus-path PATH Path to nexus repo (default: $NEXUS_PATH or current directory)
12
+ -h, --help Show this help
13
+
14
+ Environment:
15
+ NEXUS_PATH Default nexus repository path
16
+
17
+ Packages checked:
18
+ - @mariozechner/pi-agent-core
19
+ - @mariozechner/pi-coding-agent
20
+
21
+ Examples:
22
+ # Check for new pi-ai versions
23
+ ./check-pi-ai.sh
24
+
25
+ # Specify nexus path
26
+ ./check-pi-ai.sh --nexus-path /path/to/nexus
27
+ USAGE
28
+ }
29
+
30
+ # Defaults
31
+ nexus_path="${NEXUS_PATH:-}"
32
+
33
+ # Parse arguments
34
+ while [[ $# -gt 0 ]]; do
35
+ case "$1" in
36
+ --nexus-path) nexus_path="$2"; shift 2 ;;
37
+ -h|--help) usage; exit 0 ;;
38
+ *) echo "Unknown option: $1" >&2; usage; exit 1 ;;
39
+ esac
40
+ done
41
+
42
+ # Detect nexus path
43
+ if [[ -z "$nexus_path" ]]; then
44
+ if [[ -f "package.json" && -d ".git" ]]; then
45
+ nexus_path="."
46
+ elif [[ -f "/Users/tyler/Desktop/projects/nexus/package.json" ]]; then
47
+ nexus_path="/Users/tyler/Desktop/projects/nexus"
48
+ else
49
+ echo "Error: Could not detect nexus repository. Use --nexus-path" >&2
50
+ exit 1
51
+ fi
52
+ fi
53
+
54
+ if [[ ! -f "$nexus_path/package.json" ]]; then
55
+ echo "Error: package.json not found at: $nexus_path" >&2
56
+ exit 1
57
+ fi
58
+
59
+ # Check if npm is available
60
+ if ! command -v npm >/dev/null 2>&1; then
61
+ echo "Error: npm not found in PATH" >&2
62
+ exit 1
63
+ fi
64
+
65
+ # Pi-AI packages to check
66
+ packages=(
67
+ "@mariozechner/pi-agent-core"
68
+ "@mariozechner/pi-coding-agent"
69
+ )
70
+
71
+ echo "Checking pi-ai package versions..." >&2
72
+ echo "" >&2
73
+
74
+ any_updates=false
75
+
76
+ for package in "${packages[@]}"; do
77
+ # Get current version from package.json using grep
78
+ # Format: " \"@mariozechner/pi-agent-core\": \"^0.37.2\","
79
+ current_version=$(grep -E "\"${package//\//\\/}\":" "$nexus_path/package.json" | \
80
+ head -1 | \
81
+ sed -E 's/.*"([0-9^~][^"]+)".*/\1/' || echo "not installed")
82
+
83
+ # Strip ^ or ~ prefix for comparison
84
+ current_version_clean="${current_version#^}"
85
+ current_version_clean="${current_version_clean#~}"
86
+
87
+ if [[ "$current_version" == "not installed" || -z "$current_version" ]]; then
88
+ echo "⚠️ $package: NOT INSTALLED"
89
+ continue
90
+ fi
91
+
92
+ # Get latest version from npm
93
+ latest_version=$(npm view "$package" version 2>/dev/null || echo "unknown")
94
+
95
+ if [[ "$latest_version" == "unknown" ]]; then
96
+ echo "❓ $package: $current_version (could not check npm)"
97
+ continue
98
+ fi
99
+
100
+ # Compare versions (ignoring ^ or ~)
101
+ if [[ "$current_version_clean" == "$latest_version" ]]; then
102
+ echo "βœ… $package: $current_version (up to date)"
103
+ else
104
+ echo "πŸ”„ $package: $current_version β†’ $latest_version (update available)"
105
+ any_updates=true
106
+ fi
107
+ done
108
+
109
+ echo ""
110
+
111
+ if [[ "$any_updates" == true ]]; then
112
+ echo "πŸ’‘ Updates available! To update:"
113
+ echo " cd $nexus_path"
114
+ echo " pnpm update @mariozechner/pi-agent-core @mariozechner/pi-coding-agent"
115
+ echo ""
116
+ echo "⚠️ Review changelog before updating (auth/OAuth changes may affect nexus):"
117
+ for package in "${packages[@]}"; do
118
+ echo " npm view $package versions --json # See all versions"
119
+ echo " npm view $package@latest # See latest version details"
120
+ done
121
+ else
122
+ echo "βœ… All pi-ai packages are up to date"
123
+ fi
124
+
125
+ echo ""
126
+ echo "πŸ“š Pi-AI repositories:"
127
+ echo " https://github.com/mariozechner/pi-agent"
128
+ echo " https://www.npmjs.com/package/@mariozechner/pi-agent-core"
129
+ echo " https://www.npmjs.com/package/@mariozechner/pi-coding-agent"
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: video-frames
3
+ description: Extract frames or short clips from videos using ffmpeg.
4
+ homepage: https://ffmpeg.org
5
+ metadata: {"nexus":{"emoji":"🎞️","requires":{"bins":["ffmpeg"]},"install":[{"id":"brew","kind":"brew","formula":"ffmpeg","bins":["ffmpeg"],"label":"Install ffmpeg (brew)"}]}}
6
+ ---
7
+
8
+ # Video Frames (ffmpeg)
9
+
10
+ Extract a single frame from a video, or create quick thumbnails for inspection.
11
+
12
+ ## Quick start
13
+
14
+ First frame:
15
+
16
+ ```bash
17
+ {baseDir}/scripts/frame.sh /path/to/video.mp4 --out /tmp/frame.jpg
18
+ ```
19
+
20
+ At a timestamp:
21
+
22
+ ```bash
23
+ {baseDir}/scripts/frame.sh /path/to/video.mp4 --time 00:00:10 --out /tmp/frame-10s.jpg
24
+ ```
25
+
26
+ ## Notes
27
+
28
+ - Prefer `--time` for β€œwhat is happening around here?”.
29
+ - Use a `.jpg` for quick share; use `.png` for crisp UI frames.
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat >&2 <<'EOF'
6
+ Usage:
7
+ frame.sh <video-file> [--time HH:MM:SS] [--index N] --out /path/to/frame.jpg
8
+
9
+ Examples:
10
+ frame.sh video.mp4 --out /tmp/frame.jpg
11
+ frame.sh video.mp4 --time 00:00:10 --out /tmp/frame-10s.jpg
12
+ frame.sh video.mp4 --index 0 --out /tmp/frame0.png
13
+ EOF
14
+ exit 2
15
+ }
16
+
17
+ if [[ "${1:-}" == "" || "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
18
+ usage
19
+ fi
20
+
21
+ in="${1:-}"
22
+ shift || true
23
+
24
+ time=""
25
+ index=""
26
+ out=""
27
+
28
+ while [[ $# -gt 0 ]]; do
29
+ case "$1" in
30
+ --time)
31
+ time="${2:-}"
32
+ shift 2
33
+ ;;
34
+ --index)
35
+ index="${2:-}"
36
+ shift 2
37
+ ;;
38
+ --out)
39
+ out="${2:-}"
40
+ shift 2
41
+ ;;
42
+ *)
43
+ echo "Unknown arg: $1" >&2
44
+ usage
45
+ ;;
46
+ esac
47
+ done
48
+
49
+ if [[ ! -f "$in" ]]; then
50
+ echo "File not found: $in" >&2
51
+ exit 1
52
+ fi
53
+
54
+ if [[ "$out" == "" ]]; then
55
+ echo "Missing --out" >&2
56
+ usage
57
+ fi
58
+
59
+ mkdir -p "$(dirname "$out")"
60
+
61
+ if [[ "$index" != "" ]]; then
62
+ ffmpeg -hide_banner -loglevel error -y \
63
+ -i "$in" \
64
+ -vf "select=eq(n\\,${index})" \
65
+ -vframes 1 \
66
+ "$out"
67
+ elif [[ "$time" != "" ]]; then
68
+ ffmpeg -hide_banner -loglevel error -y \
69
+ -ss "$time" \
70
+ -i "$in" \
71
+ -frames:v 1 \
72
+ "$out"
73
+ else
74
+ ffmpeg -hide_banner -loglevel error -y \
75
+ -i "$in" \
76
+ -vf "select=eq(n\\,0)" \
77
+ -vframes 1 \
78
+ "$out"
79
+ fi
80
+
81
+ echo "$out"