lastlight 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/README.md +265 -118
  2. package/agent-context/rules.md +62 -9
  3. package/agent-context/security.md +69 -0
  4. package/config/default.yaml +89 -0
  5. package/deploy/.env.production.example +20 -2
  6. package/deploy/entrypoint.sh +16 -17
  7. package/deploy/native/README.md +160 -0
  8. package/deploy/native/install.sh +110 -0
  9. package/deploy/native/lastlight.env.example +95 -0
  10. package/deploy/native/lastlight.service +50 -0
  11. package/deploy/sandbox-entrypoint.sh +59 -42
  12. package/dist/admin/auth.d.ts +1 -1
  13. package/dist/admin/auth.js +3 -1
  14. package/dist/admin/auth.js.map +1 -1
  15. package/dist/admin/chat-session-reader.d.ts +11 -14
  16. package/dist/admin/chat-session-reader.js +27 -51
  17. package/dist/admin/chat-session-reader.js.map +1 -1
  18. package/dist/admin/docker.d.ts +37 -0
  19. package/dist/admin/docker.js +86 -1
  20. package/dist/admin/docker.js.map +1 -1
  21. package/dist/admin/index.js +38 -3
  22. package/dist/admin/index.js.map +1 -1
  23. package/dist/admin/log-search.test.d.ts +1 -0
  24. package/dist/admin/log-search.test.js +78 -0
  25. package/dist/admin/log-search.test.js.map +1 -0
  26. package/dist/admin/routes.d.ts +52 -3
  27. package/dist/admin/routes.js +780 -63
  28. package/dist/admin/routes.js.map +1 -1
  29. package/dist/admin/routes.test.js +680 -14
  30. package/dist/admin/routes.test.js.map +1 -1
  31. package/dist/admin/server-logs.test.d.ts +1 -0
  32. package/dist/admin/server-logs.test.js +58 -0
  33. package/dist/admin/server-logs.test.js.map +1 -0
  34. package/dist/admin/sessions.d.ts +26 -39
  35. package/dist/admin/sessions.js +86 -310
  36. package/dist/admin/sessions.js.map +1 -1
  37. package/dist/admin/sessions.test.d.ts +1 -0
  38. package/dist/admin/sessions.test.js +78 -0
  39. package/dist/admin/sessions.test.js.map +1 -0
  40. package/dist/admin/version.d.ts +15 -0
  41. package/dist/admin/version.js +73 -0
  42. package/dist/admin/version.js.map +1 -0
  43. package/dist/admin/version.test.d.ts +1 -0
  44. package/dist/admin/version.test.js +71 -0
  45. package/dist/admin/version.test.js.map +1 -0
  46. package/dist/cli-config.d.ts +55 -0
  47. package/dist/cli-config.js +119 -0
  48. package/dist/cli-config.js.map +1 -0
  49. package/dist/cli-config.test.d.ts +1 -0
  50. package/dist/cli-config.test.js +92 -0
  51. package/dist/cli-config.test.js.map +1 -0
  52. package/dist/cli-format.d.ts +19 -0
  53. package/dist/cli-format.js +107 -0
  54. package/dist/cli-format.js.map +1 -0
  55. package/dist/cli-server.d.ts +73 -0
  56. package/dist/cli-server.js +347 -0
  57. package/dist/cli-server.js.map +1 -0
  58. package/dist/cli-server.test.d.ts +1 -0
  59. package/dist/cli-server.test.js +38 -0
  60. package/dist/cli-server.test.js.map +1 -0
  61. package/dist/cli-timeline.d.ts +35 -0
  62. package/dist/cli-timeline.js +373 -0
  63. package/dist/cli-timeline.js.map +1 -0
  64. package/dist/cli-timeline.test.d.ts +1 -0
  65. package/dist/cli-timeline.test.js +104 -0
  66. package/dist/cli-timeline.test.js.map +1 -0
  67. package/dist/cli.d.ts +0 -19
  68. package/dist/cli.js +910 -194
  69. package/dist/cli.js.map +1 -1
  70. package/dist/config-overlay.test.d.ts +1 -0
  71. package/dist/config-overlay.test.js +112 -0
  72. package/dist/config-overlay.test.js.map +1 -0
  73. package/dist/config-resolve.d.ts +28 -0
  74. package/dist/config-resolve.js +47 -0
  75. package/dist/config-resolve.js.map +1 -0
  76. package/dist/config-resolve.test.d.ts +1 -0
  77. package/dist/config-resolve.test.js +68 -0
  78. package/dist/config-resolve.test.js.map +1 -0
  79. package/dist/config.d.ts +62 -49
  80. package/dist/config.js +452 -76
  81. package/dist/config.js.map +1 -1
  82. package/dist/config.test.js +201 -32
  83. package/dist/config.test.js.map +1 -1
  84. package/dist/connectors/github-webhook.js +83 -5
  85. package/dist/connectors/github-webhook.js.map +1 -1
  86. package/dist/connectors/github-webhook.test.d.ts +1 -0
  87. package/dist/connectors/github-webhook.test.js +156 -0
  88. package/dist/connectors/github-webhook.test.js.map +1 -0
  89. package/dist/connectors/messaging/session-manager.d.ts +18 -0
  90. package/dist/connectors/messaging/session-manager.js +83 -2
  91. package/dist/connectors/messaging/session-manager.js.map +1 -1
  92. package/dist/connectors/messaging/session-manager.test.d.ts +1 -0
  93. package/dist/connectors/messaging/session-manager.test.js +144 -0
  94. package/dist/connectors/messaging/session-manager.test.js.map +1 -0
  95. package/dist/connectors/slack/connector.d.ts +9 -0
  96. package/dist/connectors/slack/connector.js +15 -0
  97. package/dist/connectors/slack/connector.js.map +1 -1
  98. package/dist/connectors/slack/mrkdwn.js +81 -0
  99. package/dist/connectors/slack/mrkdwn.js.map +1 -1
  100. package/dist/connectors/slack/mrkdwn.test.js +49 -0
  101. package/dist/connectors/slack/mrkdwn.test.js.map +1 -1
  102. package/dist/connectors/types.d.ts +1 -1
  103. package/dist/cron/fanout.d.ts +33 -0
  104. package/dist/cron/fanout.js +55 -0
  105. package/dist/cron/fanout.js.map +1 -0
  106. package/dist/cron/fanout.test.d.ts +1 -0
  107. package/dist/cron/fanout.test.js +73 -0
  108. package/dist/cron/fanout.test.js.map +1 -0
  109. package/dist/cron/jobs.d.ts +5 -0
  110. package/dist/cron/jobs.js +10 -3
  111. package/dist/cron/jobs.js.map +1 -1
  112. package/dist/cron/scheduler.d.ts +12 -0
  113. package/dist/cron/scheduler.js +27 -1
  114. package/dist/cron/scheduler.js.map +1 -1
  115. package/dist/engine/agent-executor.d.ts +158 -0
  116. package/dist/engine/agent-executor.js +1140 -0
  117. package/dist/engine/agent-executor.js.map +1 -0
  118. package/dist/engine/agent-executor.test.d.ts +1 -0
  119. package/dist/engine/agent-executor.test.js +395 -0
  120. package/dist/engine/agent-executor.test.js.map +1 -0
  121. package/dist/engine/chat-runner.d.ts +123 -0
  122. package/dist/engine/chat-runner.js +379 -0
  123. package/dist/engine/chat-runner.js.map +1 -0
  124. package/dist/engine/chat-runner.test.d.ts +1 -0
  125. package/dist/engine/chat-runner.test.js +104 -0
  126. package/dist/engine/chat-runner.test.js.map +1 -0
  127. package/dist/engine/chat-skills.d.ts +45 -0
  128. package/dist/engine/chat-skills.js +184 -0
  129. package/dist/engine/chat-skills.js.map +1 -0
  130. package/dist/engine/chat-skills.test.d.ts +1 -0
  131. package/dist/engine/chat-skills.test.js +20 -0
  132. package/dist/engine/chat-skills.test.js.map +1 -0
  133. package/dist/engine/chat.d.ts +20 -23
  134. package/dist/engine/chat.js +251 -155
  135. package/dist/engine/chat.js.map +1 -1
  136. package/dist/engine/chat.test.d.ts +1 -0
  137. package/dist/engine/chat.test.js +42 -0
  138. package/dist/engine/chat.test.js.map +1 -0
  139. package/dist/engine/classifier.d.ts +35 -2
  140. package/dist/engine/classifier.js +170 -31
  141. package/dist/engine/classifier.js.map +1 -1
  142. package/dist/engine/classifier.test.d.ts +1 -0
  143. package/dist/engine/classifier.test.js +115 -0
  144. package/dist/engine/classifier.test.js.map +1 -0
  145. package/dist/engine/dispatcher.d.ts +60 -0
  146. package/dist/engine/dispatcher.js +601 -0
  147. package/dist/engine/dispatcher.js.map +1 -0
  148. package/dist/engine/dispatcher.test.d.ts +1 -0
  149. package/dist/engine/dispatcher.test.js +511 -0
  150. package/dist/engine/dispatcher.test.js.map +1 -0
  151. package/dist/engine/event-shim.d.ts +117 -0
  152. package/dist/engine/event-shim.js +435 -0
  153. package/dist/engine/event-shim.js.map +1 -0
  154. package/dist/engine/event-shim.test.d.ts +1 -0
  155. package/dist/engine/event-shim.test.js +194 -0
  156. package/dist/engine/event-shim.test.js.map +1 -0
  157. package/dist/engine/git-auth.d.ts +13 -17
  158. package/dist/engine/git-auth.js +99 -42
  159. package/dist/engine/git-auth.js.map +1 -1
  160. package/dist/engine/git-auth.test.d.ts +1 -0
  161. package/dist/engine/git-auth.test.js +117 -0
  162. package/dist/engine/git-auth.test.js.map +1 -0
  163. package/dist/engine/github-app-client.d.ts +7 -0
  164. package/dist/engine/github-app-client.js +16 -0
  165. package/dist/engine/github-app-client.js.map +1 -0
  166. package/dist/engine/github-app-client.test.d.ts +1 -0
  167. package/dist/engine/github-app-client.test.js +44 -0
  168. package/dist/engine/github-app-client.test.js.map +1 -0
  169. package/dist/engine/github-tools.d.ts +12 -0
  170. package/dist/engine/github-tools.js +261 -0
  171. package/dist/engine/github-tools.js.map +1 -0
  172. package/dist/engine/github.d.ts +1027 -43
  173. package/dist/engine/github.js +153 -14
  174. package/dist/engine/github.js.map +1 -1
  175. package/dist/engine/llm.d.ts +47 -0
  176. package/dist/engine/llm.js +221 -0
  177. package/dist/engine/llm.js.map +1 -0
  178. package/dist/engine/llm.test.d.ts +1 -0
  179. package/dist/engine/llm.test.js +189 -0
  180. package/dist/engine/llm.test.js.map +1 -0
  181. package/dist/engine/profiles.d.ts +249 -0
  182. package/dist/engine/profiles.js +42 -0
  183. package/dist/engine/profiles.js.map +1 -0
  184. package/dist/engine/router.d.ts +12 -6
  185. package/dist/engine/router.js +339 -81
  186. package/dist/engine/router.js.map +1 -1
  187. package/dist/engine/router.test.js +428 -78
  188. package/dist/engine/router.test.js.map +1 -1
  189. package/dist/engine/screen.d.ts +41 -0
  190. package/dist/engine/screen.js +93 -0
  191. package/dist/engine/screen.js.map +1 -0
  192. package/dist/engine/screen.test.d.ts +1 -0
  193. package/dist/engine/screen.test.js +82 -0
  194. package/dist/engine/screen.test.js.map +1 -0
  195. package/dist/index.js +423 -437
  196. package/dist/index.js.map +1 -1
  197. package/dist/managed-repos.d.ts +7 -9
  198. package/dist/managed-repos.js +12 -15
  199. package/dist/managed-repos.js.map +1 -1
  200. package/dist/managed-repos.test.js +24 -19
  201. package/dist/managed-repos.test.js.map +1 -1
  202. package/dist/notify/index.d.ts +15 -0
  203. package/dist/notify/index.js +6 -0
  204. package/dist/notify/index.js.map +1 -0
  205. package/dist/notify/model.d.ts +57 -0
  206. package/dist/notify/model.js +89 -0
  207. package/dist/notify/model.js.map +1 -0
  208. package/dist/notify/model.test.d.ts +1 -0
  209. package/dist/notify/model.test.js +109 -0
  210. package/dist/notify/model.test.js.map +1 -0
  211. package/dist/notify/notifier.d.ts +17 -0
  212. package/dist/notify/notifier.js +87 -0
  213. package/dist/notify/notifier.js.map +1 -0
  214. package/dist/notify/notifier.test.d.ts +1 -0
  215. package/dist/notify/notifier.test.js +100 -0
  216. package/dist/notify/notifier.test.js.map +1 -0
  217. package/dist/notify/render.d.ts +21 -0
  218. package/dist/notify/render.js +59 -0
  219. package/dist/notify/render.js.map +1 -0
  220. package/dist/notify/render.test.d.ts +1 -0
  221. package/dist/notify/render.test.js +65 -0
  222. package/dist/notify/render.test.js.map +1 -0
  223. package/dist/notify/transports/github.d.ts +26 -0
  224. package/dist/notify/transports/github.js +26 -0
  225. package/dist/notify/transports/github.js.map +1 -0
  226. package/dist/notify/transports/slack.d.ts +26 -0
  227. package/dist/notify/transports/slack.js +28 -0
  228. package/dist/notify/transports/slack.js.map +1 -0
  229. package/dist/notify/transports.test.d.ts +1 -0
  230. package/dist/notify/transports.test.js +71 -0
  231. package/dist/notify/transports.test.js.map +1 -0
  232. package/dist/notify/types.d.ts +95 -0
  233. package/dist/notify/types.js +16 -0
  234. package/dist/notify/types.js.map +1 -0
  235. package/dist/sandbox/docker-compose.test.d.ts +1 -0
  236. package/dist/sandbox/docker-compose.test.js +128 -0
  237. package/dist/sandbox/docker-compose.test.js.map +1 -0
  238. package/dist/sandbox/docker.d.ts +97 -9
  239. package/dist/sandbox/docker.js +192 -41
  240. package/dist/sandbox/docker.js.map +1 -1
  241. package/dist/sandbox/docker.test.d.ts +1 -0
  242. package/dist/sandbox/docker.test.js +137 -0
  243. package/dist/sandbox/docker.test.js.map +1 -0
  244. package/dist/sandbox/egress-allowlist.d.ts +69 -0
  245. package/dist/sandbox/egress-allowlist.js +164 -0
  246. package/dist/sandbox/egress-allowlist.js.map +1 -0
  247. package/dist/sandbox/egress-allowlist.test.d.ts +1 -0
  248. package/dist/sandbox/egress-allowlist.test.js +65 -0
  249. package/dist/sandbox/egress-allowlist.test.js.map +1 -0
  250. package/dist/sandbox/egress-firewall-config.d.ts +127 -0
  251. package/dist/sandbox/egress-firewall-config.js +434 -0
  252. package/dist/sandbox/egress-firewall-config.js.map +1 -0
  253. package/dist/sandbox/egress-firewall-config.test.d.ts +1 -0
  254. package/dist/sandbox/egress-firewall-config.test.js +244 -0
  255. package/dist/sandbox/egress-firewall-config.test.js.map +1 -0
  256. package/dist/sandbox/images.d.ts +23 -0
  257. package/dist/sandbox/images.js +55 -0
  258. package/dist/sandbox/images.js.map +1 -0
  259. package/dist/sandbox/index.d.ts +82 -3
  260. package/dist/sandbox/index.js +223 -93
  261. package/dist/sandbox/index.js.map +1 -1
  262. package/dist/sandbox/index.test.d.ts +1 -0
  263. package/dist/sandbox/index.test.js +157 -0
  264. package/dist/sandbox/index.test.js.map +1 -0
  265. package/dist/session-log.d.ts +63 -0
  266. package/dist/session-log.js +290 -0
  267. package/dist/session-log.js.map +1 -0
  268. package/dist/session-log.test.d.ts +1 -0
  269. package/dist/session-log.test.js +85 -0
  270. package/dist/session-log.test.js.map +1 -0
  271. package/dist/setup.d.ts +31 -12
  272. package/dist/setup.js +516 -174
  273. package/dist/setup.js.map +1 -1
  274. package/dist/setup.test.js +138 -6
  275. package/dist/setup.test.js.map +1 -1
  276. package/dist/state/approval-store.d.ts +86 -0
  277. package/dist/state/approval-store.js +140 -0
  278. package/dist/state/approval-store.js.map +1 -0
  279. package/dist/state/build-assets.d.ts +50 -0
  280. package/dist/state/build-assets.js +154 -0
  281. package/dist/state/build-assets.js.map +1 -0
  282. package/dist/state/build-assets.test.d.ts +1 -0
  283. package/dist/state/build-assets.test.js +106 -0
  284. package/dist/state/build-assets.test.js.map +1 -0
  285. package/dist/state/db.d.ts +65 -333
  286. package/dist/state/db.js +112 -835
  287. package/dist/state/db.js.map +1 -1
  288. package/dist/state/db.test.js +127 -91
  289. package/dist/state/db.test.js.map +1 -1
  290. package/dist/state/execution-store.d.ts +257 -0
  291. package/dist/state/execution-store.js +527 -0
  292. package/dist/state/execution-store.js.map +1 -0
  293. package/dist/state/migrate.d.ts +15 -0
  294. package/dist/state/migrate.js +175 -0
  295. package/dist/state/migrate.js.map +1 -0
  296. package/dist/state/workflow-run-store.d.ts +195 -0
  297. package/dist/state/workflow-run-store.js +363 -0
  298. package/dist/state/workflow-run-store.js.map +1 -0
  299. package/dist/state/workflow-run-store.test.d.ts +1 -0
  300. package/dist/state/workflow-run-store.test.js +264 -0
  301. package/dist/state/workflow-run-store.test.js.map +1 -0
  302. package/dist/telemetry/index.d.ts +38 -0
  303. package/dist/telemetry/index.js +253 -0
  304. package/dist/telemetry/index.js.map +1 -0
  305. package/dist/telemetry/index.test.d.ts +1 -0
  306. package/dist/telemetry/index.test.js +73 -0
  307. package/dist/telemetry/index.test.js.map +1 -0
  308. package/dist/telemetry/pi-events.d.ts +12 -0
  309. package/dist/telemetry/pi-events.js +134 -0
  310. package/dist/telemetry/pi-events.js.map +1 -0
  311. package/dist/telemetry/pi-events.test.d.ts +1 -0
  312. package/dist/telemetry/pi-events.test.js +69 -0
  313. package/dist/telemetry/pi-events.test.js.map +1 -0
  314. package/dist/workflows/dag.d.ts +13 -1
  315. package/dist/workflows/dag.js +7 -3
  316. package/dist/workflows/dag.js.map +1 -1
  317. package/dist/workflows/dag.test.js +22 -0
  318. package/dist/workflows/dag.test.js.map +1 -1
  319. package/dist/workflows/golden-build.test.d.ts +1 -0
  320. package/dist/workflows/golden-build.test.js +45 -0
  321. package/dist/workflows/golden-build.test.js.map +1 -0
  322. package/dist/workflows/loader-overlay.test.d.ts +1 -0
  323. package/dist/workflows/loader-overlay.test.js +101 -0
  324. package/dist/workflows/loader-overlay.test.js.map +1 -0
  325. package/dist/workflows/loader.d.ts +36 -11
  326. package/dist/workflows/loader.js +311 -87
  327. package/dist/workflows/loader.js.map +1 -1
  328. package/dist/workflows/loader.test.js +114 -10
  329. package/dist/workflows/loader.test.js.map +1 -1
  330. package/dist/workflows/loop-eval.js +2 -0
  331. package/dist/workflows/loop-eval.js.map +1 -1
  332. package/dist/workflows/loop-eval.test.js +14 -0
  333. package/dist/workflows/loop-eval.test.js.map +1 -1
  334. package/dist/workflows/phase-executor.d.ts +145 -0
  335. package/dist/workflows/phase-executor.js +691 -0
  336. package/dist/workflows/phase-executor.js.map +1 -0
  337. package/dist/workflows/phase-executor.test.d.ts +1 -0
  338. package/dist/workflows/phase-executor.test.js +434 -0
  339. package/dist/workflows/phase-executor.test.js.map +1 -0
  340. package/dist/workflows/phase-ref.d.ts +44 -0
  341. package/dist/workflows/phase-ref.js +78 -0
  342. package/dist/workflows/phase-ref.js.map +1 -0
  343. package/dist/workflows/phase-ref.test.d.ts +1 -0
  344. package/dist/workflows/phase-ref.test.js +24 -0
  345. package/dist/workflows/phase-ref.test.js.map +1 -0
  346. package/dist/workflows/resume.d.ts +5 -11
  347. package/dist/workflows/resume.js +88 -7
  348. package/dist/workflows/resume.js.map +1 -1
  349. package/dist/workflows/runner.d.ts +34 -27
  350. package/dist/workflows/runner.js +252 -930
  351. package/dist/workflows/runner.js.map +1 -1
  352. package/dist/workflows/runner.test.js +346 -35
  353. package/dist/workflows/runner.test.js.map +1 -1
  354. package/dist/workflows/schema.d.ts +52 -10
  355. package/dist/workflows/schema.js +147 -7
  356. package/dist/workflows/schema.js.map +1 -1
  357. package/dist/workflows/simple.d.ts +67 -3
  358. package/dist/workflows/simple.js +248 -87
  359. package/dist/workflows/simple.js.map +1 -1
  360. package/dist/workflows/simple.test.d.ts +1 -0
  361. package/dist/workflows/simple.test.js +107 -0
  362. package/dist/workflows/simple.test.js.map +1 -0
  363. package/dist/workflows/templates.d.ts +29 -0
  364. package/dist/workflows/templates.js +42 -4
  365. package/dist/workflows/templates.js.map +1 -1
  366. package/dist/workflows/templates.test.js +103 -0
  367. package/dist/workflows/templates.test.js.map +1 -1
  368. package/dist/workflows/triggers.d.ts +21 -0
  369. package/dist/workflows/triggers.js +44 -0
  370. package/dist/workflows/triggers.js.map +1 -0
  371. package/dist/workflows/verdict.d.ts +19 -0
  372. package/dist/workflows/verdict.js +30 -0
  373. package/dist/workflows/verdict.js.map +1 -0
  374. package/dist/workflows/verdict.test.d.ts +1 -0
  375. package/dist/workflows/verdict.test.js +44 -0
  376. package/dist/workflows/verdict.test.js.map +1 -0
  377. package/dist/worktree/manager.d.ts +1 -1
  378. package/dist/worktree/manager.js +14 -14
  379. package/dist/worktree/manager.js.map +1 -1
  380. package/dist/worktree/manager.test.d.ts +1 -0
  381. package/dist/worktree/manager.test.js +87 -0
  382. package/dist/worktree/manager.test.js.map +1 -0
  383. package/docker-compose.yml +206 -5
  384. package/package.json +19 -7
  385. package/sandbox.Dockerfile +97 -18
  386. package/skills/README.md +40 -0
  387. package/skills/browser-qa/SKILL.md +193 -0
  388. package/skills/browser-qa/scripts/agent-browser.mjs +380 -0
  389. package/skills/building/SKILL.md +95 -0
  390. package/skills/chat/SKILL.md +30 -11
  391. package/skills/code-review/SKILL.md +59 -0
  392. package/skills/debug-production/SKILL.md +108 -0
  393. package/skills/demo/SKILL.md +194 -0
  394. package/skills/demo/scripts/compose-demo.sh +205 -0
  395. package/skills/issue-answer/SKILL.md +90 -0
  396. package/skills/issue-comment/SKILL.md +38 -24
  397. package/skills/issue-triage/SKILL.md +103 -37
  398. package/skills/issue-triage/references/AGENT-BRIEF.md +61 -0
  399. package/skills/pr-comment/SKILL.md +64 -0
  400. package/skills/pr-review/SKILL.md +65 -49
  401. package/skills/qa-test/SKILL.md +97 -0
  402. package/skills/repo-health/SKILL.md +48 -45
  403. package/skills/security-feedback/SKILL.md +173 -0
  404. package/skills/security-feedback/references/templates.md +77 -0
  405. package/skills/security-review/SKILL.md +213 -0
  406. package/skills/security-review/references/issue-format.md +302 -0
  407. package/skills/verify/SKILL.md +118 -0
  408. package/workflows/answer.yaml +37 -0
  409. package/workflows/build.yaml +32 -22
  410. package/workflows/cron-security.yaml +6 -0
  411. package/workflows/demo.yaml +55 -0
  412. package/workflows/explore.yaml +9 -0
  413. package/workflows/pr-comment.yaml +16 -0
  414. package/workflows/pr-fix.yaml +3 -0
  415. package/workflows/pr-review.yaml +4 -1
  416. package/workflows/prompts/answer.md +67 -0
  417. package/workflows/prompts/architect.md +24 -7
  418. package/workflows/prompts/demo.md +100 -0
  419. package/workflows/prompts/executor.md +29 -20
  420. package/workflows/prompts/explore-ask.md +51 -22
  421. package/workflows/prompts/explore-publish.md +2 -2
  422. package/workflows/prompts/explore-read.md +24 -10
  423. package/workflows/prompts/explore-synthesize.md +15 -8
  424. package/workflows/prompts/fix.md +9 -10
  425. package/workflows/prompts/guardrails.md +26 -8
  426. package/workflows/prompts/pr-fix.md +6 -7
  427. package/workflows/prompts/pr.md +11 -10
  428. package/workflows/prompts/qa-browser.md +95 -0
  429. package/workflows/prompts/qa-synth.md +44 -0
  430. package/workflows/prompts/qa-test.md +60 -0
  431. package/workflows/prompts/re-reviewer.md +8 -9
  432. package/workflows/prompts/reviewer.md +10 -9
  433. package/workflows/prompts/verify-browser.md +93 -0
  434. package/workflows/prompts/verify-synth.md +44 -0
  435. package/workflows/prompts/verify.md +63 -0
  436. package/workflows/qa-test.yaml +87 -0
  437. package/workflows/security-feedback.yaml +25 -0
  438. package/workflows/security-review.yaml +29 -0
  439. package/workflows/verify.yaml +85 -0
  440. package/deploy/mcp-config.tmpl.json +0 -14
  441. package/dist/cron/rate-limits.d.ts +0 -26
  442. package/dist/cron/rate-limits.js +0 -193
  443. package/dist/cron/rate-limits.js.map +0 -1
  444. package/dist/engine/executor.d.ts +0 -75
  445. package/dist/engine/executor.js +0 -292
  446. package/dist/engine/executor.js.map +0 -1
  447. package/mcp-github-app/package.json +0 -18
  448. package/mcp-github-app/src/auth.js +0 -66
  449. package/mcp-github-app/src/github.js +0 -371
  450. package/mcp-github-app/src/index.js +0 -534
  451. package/skills/devops/webhook-subscriptions/SKILL.md +0 -180
  452. package/skills/github/DESCRIPTION.md +0 -3
  453. package/skills/github/codebase-inspection/SKILL.md +0 -115
  454. package/skills/github/github-auth/SKILL.md +0 -54
  455. package/skills/github/github-auth/scripts/gh-env.sh +0 -66
  456. package/skills/github/github-code-review/SKILL.md +0 -480
  457. package/skills/github/github-code-review/references/review-output-template.md +0 -74
  458. package/skills/github/github-issues/SKILL.md +0 -369
  459. package/skills/github/github-issues/templates/bug-report.md +0 -35
  460. package/skills/github/github-issues/templates/feature-request.md +0 -31
  461. package/skills/github/github-pr-workflow/SKILL.md +0 -395
  462. package/skills/github/github-pr-workflow/references/ci-troubleshooting.md +0 -183
  463. package/skills/github/github-pr-workflow/references/conventional-commits.md +0 -71
  464. package/skills/github/github-pr-workflow/templates/pr-body-bugfix.md +0 -35
  465. package/skills/github/github-pr-workflow/templates/pr-body-feature.md +0 -33
  466. package/skills/github/github-repo-management/SKILL.md +0 -515
  467. package/skills/github/github-repo-management/references/github-api-cheatsheet.md +0 -161
  468. package/skills/github-orchestrator/SKILL.md +0 -103
  469. package/skills/mcp/DESCRIPTION.md +0 -3
  470. package/skills/mcp/mcporter/SKILL.md +0 -122
  471. package/skills/mcp/native-mcp/SKILL.md +0 -356
  472. package/skills/software-development/architect/SKILL.md +0 -154
  473. package/skills/software-development/assure-guardrails/SKILL.md +0 -239
  474. package/skills/software-development/plan/SKILL.md +0 -64
  475. package/skills/software-development/requesting-code-review/SKILL.md +0 -291
  476. package/skills/software-development/subagent-driven-development/SKILL.md +0 -433
  477. package/skills/software-development/systematic-debugging/SKILL.md +0 -366
  478. package/skills/software-development/test-driven-development/SKILL.md +0 -342
@@ -1,369 +0,0 @@
1
- ---
2
- name: github-issues
3
- description: Create, manage, triage, and close GitHub issues. Search existing issues, add labels, assign people, and link to PRs. Works with gh CLI or falls back to git + GitHub REST API via curl.
4
- version: 1.1.0
5
- author: Hermes Agent
6
- license: MIT
7
- metadata:
8
- hermes:
9
- tags: [GitHub, Issues, Project-Management, Bug-Tracking, Triage]
10
- related_skills: [github-auth, github-pr-workflow]
11
- ---
12
-
13
- # GitHub Issues Management
14
-
15
- Create, search, triage, and manage GitHub issues. Each section shows `gh` first, then the `curl` fallback.
16
-
17
- ## Prerequisites
18
-
19
- - Authenticated with GitHub (see `github-auth` skill)
20
- - Inside a git repo with a GitHub remote, or specify the repo explicitly
21
-
22
- ### Setup
23
-
24
- ```bash
25
- if command -v gh &>/dev/null && gh auth status &>/dev/null; then
26
- AUTH="gh"
27
- else
28
- AUTH="git"
29
- if [ -z "$GITHUB_TOKEN" ]; then
30
- if [ -f ~/.hermes/.env ] && grep -q "^GITHUB_TOKEN=" ~/.hermes/.env; then
31
- GITHUB_TOKEN=$(grep "^GITHUB_TOKEN=" ~/.hermes/.env | head -1 | cut -d= -f2 | tr -d '\n\r')
32
- elif grep -q "github.com" ~/.git-credentials 2>/dev/null; then
33
- GITHUB_TOKEN=$(grep "github.com" ~/.git-credentials 2>/dev/null | head -1 | sed 's|https://[^:]*:\([^@]*\)@.*|\1|')
34
- fi
35
- fi
36
- fi
37
-
38
- REMOTE_URL=$(git remote get-url origin)
39
- OWNER_REPO=$(echo "$REMOTE_URL" | sed -E 's|.*github\.com[:/]||; s|\.git$||')
40
- OWNER=$(echo "$OWNER_REPO" | cut -d/ -f1)
41
- REPO=$(echo "$OWNER_REPO" | cut -d/ -f2)
42
- ```
43
-
44
- ---
45
-
46
- ## 1. Viewing Issues
47
-
48
- **With gh:**
49
-
50
- ```bash
51
- gh issue list
52
- gh issue list --state open --label "bug"
53
- gh issue list --assignee @me
54
- gh issue list --search "authentication error" --state all
55
- gh issue view 42
56
- ```
57
-
58
- **With curl:**
59
-
60
- ```bash
61
- # List open issues
62
- curl -s \
63
- -H "Authorization: token $GITHUB_TOKEN" \
64
- "https://api.github.com/repos/$OWNER/$REPO/issues?state=open&per_page=20" \
65
- | python3 -c "
66
- import sys, json
67
- for i in json.load(sys.stdin):
68
- if 'pull_request' not in i: # GitHub API returns PRs in /issues too
69
- labels = ', '.join(l['name'] for l in i['labels'])
70
- print(f\"#{i['number']:5} {i['state']:6} {labels:30} {i['title']}\")"
71
-
72
- # Filter by label
73
- curl -s \
74
- -H "Authorization: token $GITHUB_TOKEN" \
75
- "https://api.github.com/repos/$OWNER/$REPO/issues?state=open&labels=bug&per_page=20" \
76
- | python3 -c "
77
- import sys, json
78
- for i in json.load(sys.stdin):
79
- if 'pull_request' not in i:
80
- print(f\"#{i['number']} {i['title']}\")"
81
-
82
- # View a specific issue
83
- curl -s \
84
- -H "Authorization: token $GITHUB_TOKEN" \
85
- https://api.github.com/repos/$OWNER/$REPO/issues/42 \
86
- | python3 -c "
87
- import sys, json
88
- i = json.load(sys.stdin)
89
- labels = ', '.join(l['name'] for l in i['labels'])
90
- assignees = ', '.join(a['login'] for a in i['assignees'])
91
- print(f\"#{i['number']}: {i['title']}\")
92
- print(f\"State: {i['state']} Labels: {labels} Assignees: {assignees}\")
93
- print(f\"Author: {i['user']['login']} Created: {i['created_at']}\")
94
- print(f\"\n{i['body']}\")"
95
-
96
- # Search issues
97
- curl -s \
98
- -H "Authorization: token $GITHUB_TOKEN" \
99
- "https://api.github.com/search/issues?q=authentication+error+repo:$OWNER/$REPO" \
100
- | python3 -c "
101
- import sys, json
102
- for i in json.load(sys.stdin)['items']:
103
- print(f\"#{i['number']} {i['state']:6} {i['title']}\")"
104
- ```
105
-
106
- ## 2. Creating Issues
107
-
108
- **With gh:**
109
-
110
- ```bash
111
- gh issue create \
112
- --title "Login redirect ignores ?next= parameter" \
113
- --body "## Description
114
- After logging in, users always land on /dashboard.
115
-
116
- ## Steps to Reproduce
117
- 1. Navigate to /settings while logged out
118
- 2. Get redirected to /login?next=/settings
119
- 3. Log in
120
- 4. Actual: redirected to /dashboard (should go to /settings)
121
-
122
- ## Expected Behavior
123
- Respect the ?next= query parameter." \
124
- --label "bug,backend" \
125
- --assignee "username"
126
- ```
127
-
128
- **With curl:**
129
-
130
- ```bash
131
- curl -s -X POST \
132
- -H "Authorization: token $GITHUB_TOKEN" \
133
- https://api.github.com/repos/$OWNER/$REPO/issues \
134
- -d '{
135
- "title": "Login redirect ignores ?next= parameter",
136
- "body": "## Description\nAfter logging in, users always land on /dashboard.\n\n## Steps to Reproduce\n1. Navigate to /settings while logged out\n2. Get redirected to /login?next=/settings\n3. Log in\n4. Actual: redirected to /dashboard\n\n## Expected Behavior\nRespect the ?next= query parameter.",
137
- "labels": ["bug", "backend"],
138
- "assignees": ["username"]
139
- }'
140
- ```
141
-
142
- ### Bug Report Template
143
-
144
- ```
145
- ## Bug Description
146
- <What's happening>
147
-
148
- ## Steps to Reproduce
149
- 1. <step>
150
- 2. <step>
151
-
152
- ## Expected Behavior
153
- <What should happen>
154
-
155
- ## Actual Behavior
156
- <What actually happens>
157
-
158
- ## Environment
159
- - OS: <os>
160
- - Version: <version>
161
- ```
162
-
163
- ### Feature Request Template
164
-
165
- ```
166
- ## Feature Description
167
- <What you want>
168
-
169
- ## Motivation
170
- <Why this would be useful>
171
-
172
- ## Proposed Solution
173
- <How it could work>
174
-
175
- ## Alternatives Considered
176
- <Other approaches>
177
- ```
178
-
179
- ## 3. Managing Issues
180
-
181
- ### Add/Remove Labels
182
-
183
- **With gh:**
184
-
185
- ```bash
186
- gh issue edit 42 --add-label "priority:high,bug"
187
- gh issue edit 42 --remove-label "needs-triage"
188
- ```
189
-
190
- **With curl:**
191
-
192
- ```bash
193
- # Add labels
194
- curl -s -X POST \
195
- -H "Authorization: token $GITHUB_TOKEN" \
196
- https://api.github.com/repos/$OWNER/$REPO/issues/42/labels \
197
- -d '{"labels": ["priority:high", "bug"]}'
198
-
199
- # Remove a label
200
- curl -s -X DELETE \
201
- -H "Authorization: token $GITHUB_TOKEN" \
202
- https://api.github.com/repos/$OWNER/$REPO/issues/42/labels/needs-triage
203
-
204
- # List available labels in the repo
205
- curl -s \
206
- -H "Authorization: token $GITHUB_TOKEN" \
207
- https://api.github.com/repos/$OWNER/$REPO/labels \
208
- | python3 -c "
209
- import sys, json
210
- for l in json.load(sys.stdin):
211
- print(f\" {l['name']:30} {l.get('description', '')}\")"
212
- ```
213
-
214
- ### Assignment
215
-
216
- **With gh:**
217
-
218
- ```bash
219
- gh issue edit 42 --add-assignee username
220
- gh issue edit 42 --add-assignee @me
221
- ```
222
-
223
- **With curl:**
224
-
225
- ```bash
226
- curl -s -X POST \
227
- -H "Authorization: token $GITHUB_TOKEN" \
228
- https://api.github.com/repos/$OWNER/$REPO/issues/42/assignees \
229
- -d '{"assignees": ["username"]}'
230
- ```
231
-
232
- ### Commenting
233
-
234
- **With gh:**
235
-
236
- ```bash
237
- gh issue comment 42 --body "Investigated — root cause is in auth middleware. Working on a fix."
238
- ```
239
-
240
- **With curl:**
241
-
242
- ```bash
243
- curl -s -X POST \
244
- -H "Authorization: token $GITHUB_TOKEN" \
245
- https://api.github.com/repos/$OWNER/$REPO/issues/42/comments \
246
- -d '{"body": "Investigated — root cause is in auth middleware. Working on a fix."}'
247
- ```
248
-
249
- ### Closing and Reopening
250
-
251
- **With gh:**
252
-
253
- ```bash
254
- gh issue close 42
255
- gh issue close 42 --reason "not planned"
256
- gh issue reopen 42
257
- ```
258
-
259
- **With curl:**
260
-
261
- ```bash
262
- # Close
263
- curl -s -X PATCH \
264
- -H "Authorization: token $GITHUB_TOKEN" \
265
- https://api.github.com/repos/$OWNER/$REPO/issues/42 \
266
- -d '{"state": "closed", "state_reason": "completed"}'
267
-
268
- # Reopen
269
- curl -s -X PATCH \
270
- -H "Authorization: token $GITHUB_TOKEN" \
271
- https://api.github.com/repos/$OWNER/$REPO/issues/42 \
272
- -d '{"state": "open"}'
273
- ```
274
-
275
- ### Linking Issues to PRs
276
-
277
- Issues are automatically closed when a PR merges with the right keywords in the body:
278
-
279
- ```
280
- Closes #42
281
- Fixes #42
282
- Resolves #42
283
- ```
284
-
285
- To create a branch from an issue:
286
-
287
- **With gh:**
288
-
289
- ```bash
290
- gh issue develop 42 --checkout
291
- ```
292
-
293
- **With git (manual equivalent):**
294
-
295
- ```bash
296
- git checkout main && git pull origin main
297
- git checkout -b fix/issue-42-login-redirect
298
- ```
299
-
300
- ## 4. Issue Triage Workflow
301
-
302
- When asked to triage issues:
303
-
304
- 1. **List untriaged issues:**
305
-
306
- ```bash
307
- # With gh
308
- gh issue list --label "needs-triage" --state open
309
-
310
- # With curl
311
- curl -s \
312
- -H "Authorization: token $GITHUB_TOKEN" \
313
- "https://api.github.com/repos/$OWNER/$REPO/issues?labels=needs-triage&state=open" \
314
- | python3 -c "
315
- import sys, json
316
- for i in json.load(sys.stdin):
317
- if 'pull_request' not in i:
318
- print(f\"#{i['number']} {i['title']}\")"
319
- ```
320
-
321
- 2. **Read and categorize** each issue (view details, understand the bug/feature)
322
-
323
- 3. **Apply labels and priority** (see Managing Issues above)
324
-
325
- 4. **Assign** if the owner is clear
326
-
327
- 5. **Comment with triage notes** if needed
328
-
329
- ## 5. Bulk Operations
330
-
331
- For batch operations, combine API calls with shell scripting:
332
-
333
- **With gh:**
334
-
335
- ```bash
336
- # Close all issues with a specific label
337
- gh issue list --label "wontfix" --json number --jq '.[].number' | \
338
- xargs -I {} gh issue close {} --reason "not planned"
339
- ```
340
-
341
- **With curl:**
342
-
343
- ```bash
344
- # List issue numbers with a label, then close each
345
- curl -s \
346
- -H "Authorization: token $GITHUB_TOKEN" \
347
- "https://api.github.com/repos/$OWNER/$REPO/issues?labels=wontfix&state=open" \
348
- | python3 -c "import sys,json; [print(i['number']) for i in json.load(sys.stdin)]" \
349
- | while read num; do
350
- curl -s -X PATCH \
351
- -H "Authorization: token $GITHUB_TOKEN" \
352
- https://api.github.com/repos/$OWNER/$REPO/issues/$num \
353
- -d '{"state": "closed", "state_reason": "not_planned"}'
354
- echo "Closed #$num"
355
- done
356
- ```
357
-
358
- ## Quick Reference Table
359
-
360
- | Action | gh | curl endpoint |
361
- |--------|-----|--------------|
362
- | List issues | `gh issue list` | `GET /repos/{o}/{r}/issues` |
363
- | View issue | `gh issue view N` | `GET /repos/{o}/{r}/issues/N` |
364
- | Create issue | `gh issue create ...` | `POST /repos/{o}/{r}/issues` |
365
- | Add labels | `gh issue edit N --add-label ...` | `POST /repos/{o}/{r}/issues/N/labels` |
366
- | Assign | `gh issue edit N --add-assignee ...` | `POST /repos/{o}/{r}/issues/N/assignees` |
367
- | Comment | `gh issue comment N --body ...` | `POST /repos/{o}/{r}/issues/N/comments` |
368
- | Close | `gh issue close N` | `PATCH /repos/{o}/{r}/issues/N` |
369
- | Search | `gh issue list --search "..."` | `GET /search/issues?q=...` |
@@ -1,35 +0,0 @@
1
- ## Bug Description
2
-
3
- <!-- Clear, concise description of the bug -->
4
-
5
- ## Steps to Reproduce
6
-
7
- 1.
8
- 2.
9
- 3.
10
-
11
- ## Expected Behavior
12
-
13
- <!-- What should happen -->
14
-
15
- ## Actual Behavior
16
-
17
- <!-- What actually happens -->
18
-
19
- ## Environment
20
-
21
- - OS:
22
- - Version/Commit:
23
- - Python version:
24
- - Browser (if applicable):
25
-
26
- ## Error Output
27
-
28
- <!-- Paste relevant error messages, stack traces, or logs -->
29
-
30
- ```
31
- ```
32
-
33
- ## Additional Context
34
-
35
- <!-- Screenshots, related issues, workarounds discovered, etc. -->
@@ -1,31 +0,0 @@
1
- ## Feature Description
2
-
3
- <!-- What do you want? -->
4
-
5
- ## Motivation
6
-
7
- <!-- Why would this be useful? What problem does it solve? -->
8
-
9
- ## Proposed Solution
10
-
11
- <!-- How could it work? Include API sketches, CLI examples, or mockups if helpful -->
12
-
13
- ```
14
- # Example usage
15
- ```
16
-
17
- ## Alternatives Considered
18
-
19
- <!-- Other approaches and why they're less ideal -->
20
-
21
- -
22
-
23
- ## Scope / Effort Estimate
24
-
25
- <!-- How big is this? What areas of the codebase would it touch? -->
26
-
27
- Small / Medium / Large — <!-- explanation -->
28
-
29
- ## Additional Context
30
-
31
- <!-- Links to similar features in other tools, relevant discussions, etc. -->