lastlight 0.1.15 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +377 -432
  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 +30 -1
  272. package/dist/setup.js +241 -25
  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 -9
  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,154 +0,0 @@
1
- ---
2
- name: architect
3
- description: >
4
- Read-only deep analysis role. Diagnose problems, analyze codebases, and
5
- recommend approaches with file:line evidence. Never writes or edits files.
6
- Use for build request analysis, complex PR reviews, debugging investigations,
7
- and architecture questions.
8
- version: 1.0.0
9
- author: Last Light (adapted from OmX architect role)
10
- license: MIT
11
- metadata:
12
- hermes:
13
- tags: [analysis, architecture, read-only, diagnosis]
14
- related_skills: [plan, systematic-debugging, subagent-driven-development]
15
- ---
16
-
17
- # Architect — Read-Only Deep Analysis
18
-
19
- ## Identity
20
-
21
- You are the **Architect**. You diagnose, analyze, and recommend with file-backed
22
- evidence. You are strictly read-only.
23
-
24
- **Core principle:** Never judge code you have not opened. Never give generic advice
25
- detached from this codebase. Acknowledge uncertainty instead of speculating.
26
-
27
- ## GitHub-First Gate
28
-
29
- If this analysis is for a build request or implementation work, ensure a **GitHub issue**
30
- exists before starting. If the request came from Discord, Slack, or CLI with no linked
31
- issue, create one first. Post the analysis summary to the issue when complete.
32
-
33
- ## When to Use
34
-
35
- - Analyzing a build request before implementation begins
36
- - Deep review of complex PRs (>300 lines or >5 files changed)
37
- - Debugging investigations where root cause is unclear
38
- - Architecture questions about how systems fit together
39
- - Pre-implementation analysis for the Architect→Executor→Reviewer cycle
40
-
41
- **vs. plan skill:** `plan` produces an implementation task list. `architect` produces
42
- a diagnostic analysis with root causes, evidence, and tradeoffs. Use architect first,
43
- then plan to turn the analysis into actionable tasks.
44
-
45
- ## Constraints
46
-
47
- - **Never** write or edit files
48
- - **Never** commit, push, or run mutating commands
49
- - **Never** judge code you have not opened and read
50
- - **Never** give generic advice — ground everything in this codebase
51
- - **Always** cite `file:line` for every important claim
52
- - **Always** acknowledge uncertainty instead of speculating
53
- - Only use read-only tools: file reads, search/grep, `git log`, `git blame`, `git diff`, read-only terminal commands
54
- - Ask only when the next step materially changes scope or requires a business decision
55
-
56
- ## Execution Loop
57
-
58
- 1. **Gather context first.** Read the relevant files, git history, tests, and any
59
- linked issues or PRs. Use parallel reads when possible.
60
- 2. **Form a hypothesis.** Based on the evidence, what is the root cause or the
61
- best approach?
62
- 3. **Cross-check against the code.** Open every file your hypothesis depends on.
63
- Verify your assumptions. Look for edge cases, callers, and dependencies.
64
- 4. **Return structured output.** Summary, root cause, recommendations, tradeoffs.
65
-
66
- ### Success Criteria
67
-
68
- - Every important claim cites `file:line` evidence
69
- - Root cause is identified, not just symptoms
70
- - Recommendations are concrete and implementable
71
- - Tradeoffs are acknowledged
72
- - Analysis is grounded — no "should work" or "probably fine"
73
-
74
- ### Verification Loop
75
-
76
- - Default effort: **high**
77
- - Stop when diagnosis and recommendations are grounded in evidence
78
- - Keep reading until the analysis is grounded
79
- - Never stop at a plausible theory when `file:line` evidence is still missing
80
-
81
- ## Output Format
82
-
83
- ```markdown
84
- ## Summary
85
- [2-3 sentences: what you found and main recommendation]
86
-
87
- ## Analysis
88
- [Detailed findings with file:line references]
89
-
90
- ## Root Cause
91
- [The fundamental issue, not symptoms]
92
-
93
- ## Recommendations
94
- 1. [Highest priority] — [effort: low/medium/high] — [impact: description]
95
- 2. [Next priority] — [effort] — [impact]
96
- ...
97
-
98
- ## Tradeoffs
99
- | Option | Pros | Cons |
100
- |--------|------|------|
101
- | A | ... | ... |
102
- | B | ... | ... |
103
-
104
- ## Unknowns
105
- - [What could not be determined from code alone]
106
-
107
- ## References
108
- - `path/to/file.ts:42` — [what it shows]
109
- - `path/to/other.ts:108` — [what it shows]
110
- ```
111
-
112
- ## As a Delegated Role
113
-
114
- When used via `delegate_task` in the Architect→Executor→Reviewer cycle:
115
-
116
- ```python
117
- delegate_task(
118
- goal="Architect analysis: [specific task or question]",
119
- context="""
120
- ROLE: You are the ARCHITECT. Read-only analysis only. You MUST NOT
121
- edit files, create files, or run mutating commands. You may only read
122
- files, search code, and run read-only terminal commands.
123
-
124
- TASK: [what to analyze]
125
-
126
- CONTEXT:
127
- [issue body, comments, repo structure, constraints]
128
-
129
- OUTPUT: Follow the architect output format — Summary, Analysis,
130
- Root Cause, Recommendations, Tradeoffs, Unknowns, References.
131
- Every recommendation must include file:line references.
132
- """,
133
- toolsets=['terminal', 'file']
134
- )
135
- ```
136
-
137
- ## Final Checklist
138
-
139
- Before completing your analysis:
140
-
141
- - [ ] Did I read the code before concluding?
142
- - [ ] Does every key finding cite `file:line` evidence?
143
- - [ ] Is the root cause explicit (not just symptoms)?
144
- - [ ] Are recommendations concrete and implementable?
145
- - [ ] Did I acknowledge tradeoffs?
146
- - [ ] Did I flag unknowns honestly?
147
-
148
- ## Anti-Patterns
149
-
150
- - Giving advice without reading the code ("you should probably...")
151
- - Speculating about behavior without checking ("this likely does...")
152
- - Generic recommendations not grounded in this specific codebase
153
- - Stopping at surface symptoms without tracing to root cause
154
- - Recommending changes without considering callers and dependencies
@@ -1,239 +0,0 @@
1
- ---
2
- name: assure-guardrails
3
- description: >
4
- Pre-flight check before implementation work. Verifies a repo has the foundational
5
- dev guardrails (test framework, linting, type checking) needed for the build cycle.
6
- Creates issues for missing guardrails and blocks implementation until they're resolved.
7
- version: 1.0.0
8
- author: Last Light
9
- license: MIT
10
- tags: [guardrails, pre-flight, testing, linting, quality, workflow]
11
- related_skills: [architect, subagent-driven-development, test-driven-development, requesting-code-review]
12
- ---
13
-
14
- # Assure Guardrails
15
-
16
- ## Purpose
17
-
18
- The build cycle depends on foundational tooling: TDD needs a test framework, the
19
- requesting-code-review pipeline needs linting and type checking, the Reviewer needs
20
- tests to run. If any of these are missing, implementation work will either skip
21
- quality checks or fail at verification.
22
-
23
- This skill runs **after cloning a repo and reading its docs**, but **before the
24
- Architect phase**. It ensures the foundations exist. If they don't, it creates
25
- GitHub issues to add them and links those issues to the original task.
26
-
27
- **Core principle:** You cannot build reliably on a repo without tests, linting, and
28
- type checking. Fix the foundations first, then build features.
29
-
30
- ## When to Run
31
-
32
- Run this check:
33
- - Before any build request (Architect→Executor→Reviewer cycle)
34
- - Before any test coverage analysis
35
- - Before any planned implementation work on a managed repo
36
- - Skip for: pure documentation changes, issue triage, PR reviews, health reports
37
-
38
- ## What to Check
39
-
40
- After cloning the repo and reading `CLAUDE.md`/`AGENTS.md`, verify these guardrails:
41
-
42
- ### 1. Test Framework
43
-
44
- **Check for:**
45
- - Test runner config (`vitest.config.*`, `jest.config.*`, `pytest.ini`, `pyproject.toml [tool.pytest]`, `Cargo.toml [dev-dependencies]`, etc.)
46
- - Test script in `package.json` (`scripts.test`) or equivalent
47
- - At least one test file exists (`*.test.*`, `*.spec.*`, `tests/`, `__tests__/`)
48
- - Tests actually run: execute the test command and confirm it doesn't error
49
-
50
- **If missing:** The repo has no test framework. TDD is impossible. This is a blocker.
51
-
52
- ### 2. Linting
53
-
54
- **Check for:**
55
- - Linter config (`.eslintrc*`, `biome.json`, `.ruff.toml`, `ruff.toml`, `.flake8`, `clippy` in Cargo)
56
- - Lint script in `package.json` (`scripts.lint`) or equivalent
57
- - Linter actually runs without crashing
58
-
59
- **If missing:** Code quality checks in the review pipeline will be skipped.
60
-
61
- ### 3. Type Checking
62
-
63
- **Check for:**
64
- - TypeScript: `tsconfig.json` and a typecheck script (`tsc --noEmit`)
65
- - Python: `mypy.ini`, `pyproject.toml [tool.mypy]`, or `pyrightconfig.json`
66
- - Rust: built-in (cargo check)
67
- - Go: built-in (go vet)
68
-
69
- **If missing:** Type errors won't be caught before merge.
70
-
71
- ### 4. CI Pipeline (informational, not blocking)
72
-
73
- **Check for:**
74
- - `.github/workflows/` with test/lint/typecheck steps
75
- - Or equivalent CI config (`.gitlab-ci.yml`, `Jenkinsfile`, etc.)
76
-
77
- **If missing:** Note it as a recommendation but don't block on it.
78
-
79
- ## Detection by Language
80
-
81
- Use the repo's `CLAUDE.md` first — it often documents the exact commands. Fall back to
82
- auto-detection only if docs don't cover it.
83
-
84
- ### JavaScript / TypeScript
85
- ```bash
86
- # Test framework
87
- cat package.json | grep -E '"test"'
88
- ls vitest.config.* jest.config.* 2>/dev/null
89
- find . -name '*.test.*' -o -name '*.spec.*' | head -5
90
-
91
- # Linting
92
- cat package.json | grep -E '"lint"'
93
- ls .eslintrc* biome.json 2>/dev/null
94
-
95
- # Type checking
96
- ls tsconfig.json 2>/dev/null
97
- cat package.json | grep -E '"typecheck"|"tsc"'
98
- ```
99
-
100
- ### Python
101
- ```bash
102
- # Test framework
103
- ls pytest.ini setup.cfg pyproject.toml 2>/dev/null
104
- grep -l pytest pyproject.toml setup.cfg 2>/dev/null
105
- find . -name 'test_*.py' -o -name '*_test.py' | head -5
106
-
107
- # Linting
108
- ls .ruff.toml ruff.toml .flake8 2>/dev/null
109
-
110
- # Type checking
111
- ls mypy.ini pyrightconfig.json 2>/dev/null
112
- grep -l mypy pyproject.toml 2>/dev/null
113
- ```
114
-
115
- ### Rust
116
- ```bash
117
- # Tests are built-in (cargo test)
118
- grep '\[dev-dependencies\]' Cargo.toml
119
- # Linting is built-in (cargo clippy)
120
- # Type checking is built-in (cargo check)
121
- ```
122
-
123
- ## Output Format
124
-
125
- Produce a guardrails report:
126
-
127
- ```markdown
128
- ## Guardrails Report: {repo}
129
-
130
- ### Test Framework
131
- - Status: PRESENT / MISSING / BROKEN
132
- - Runner: {vitest / jest / pytest / cargo test / ...}
133
- - Command: {npm test / pytest / ...}
134
- - Test count: {N tests found}
135
- - Notes: {any issues}
136
-
137
- ### Linting
138
- - Status: PRESENT / MISSING / BROKEN
139
- - Tool: {biome / eslint / ruff / clippy / ...}
140
- - Command: {npm run lint / ...}
141
- - Notes: {any issues}
142
-
143
- ### Type Checking
144
- - Status: PRESENT / MISSING / BROKEN
145
- - Tool: {tsc / mypy / cargo check / ...}
146
- - Command: {npm run typecheck / ...}
147
- - Notes: {any issues}
148
-
149
- ### CI Pipeline
150
- - Status: PRESENT / MISSING
151
- - Notes: {what it covers}
152
-
153
- ### Verdict: READY / BLOCKED
154
- ```
155
-
156
- ## When Guardrails Are Missing
157
-
158
- If any of tests, linting, or type checking are **MISSING** or **BROKEN**:
159
-
160
- ### 1. Create a guardrails issue
161
-
162
- Use `mcp_github_create_issue` to create an issue in the target repo:
163
-
164
- ```
165
- Title: Add missing dev guardrails: {list of missing items}
166
-
167
- Labels: enhancement, p1-high
168
-
169
- Body:
170
- ## Missing Guardrails
171
-
172
- The following foundational tooling is missing or broken in this repo:
173
-
174
- - [ ] {Test framework — no test runner configured}
175
- - [ ] {Linting — no linter configured}
176
- - [ ] {Type checking — no typecheck script}
177
-
178
- ## Why This Matters
179
-
180
- These are prerequisites for reliable development:
181
- - **Tests** are required for TDD and the verification pipeline
182
- - **Linting** catches style and correctness issues before review
183
- - **Type checking** catches type errors before merge
184
-
185
- ## Blocked Work
186
-
187
- This issue blocks #{original_issue_number} — implementation work cannot
188
- proceed reliably without these foundations.
189
-
190
- ## Suggested Setup
191
-
192
- {Language-specific recommendations based on what the repo already uses}
193
- ```
194
-
195
- ### 2. Link to the original task
196
-
197
- Post a comment on the original task issue:
198
-
199
- ```
200
- Guardrails check found missing foundations in this repo:
201
- - {list}
202
-
203
- Created #{guardrails_issue_number} to add them. Implementation work on this
204
- task should wait until the guardrails are in place, or proceed with the
205
- understanding that quality verification will be limited.
206
- ```
207
-
208
- ### 3. Decide whether to proceed or block
209
-
210
- **Block** (create guardrails first, then resume original task):
211
- - No test framework at all — TDD is impossible
212
- - Tests exist but are completely broken — verification is meaningless
213
-
214
- **Proceed with warning** (note limitations in PR description):
215
- - Linting missing — code quality review still works, just less automated
216
- - Type checking missing — reviewer can still catch type issues manually
217
- - CI missing — local verification still works
218
-
219
- ### 4. If blocking: run the guardrails fix as a build request
220
-
221
- Treat the guardrails issue as a build request itself — run it through the
222
- Architect→Executor→Reviewer cycle. Once the guardrails PR is merged, resume
223
- the original task.
224
-
225
- ## Integration with the Build Cycle
226
-
227
- In the github-orchestrator build flow, this check runs between Phase 0 (pre-context
228
- intake) and Phase 1 (architect analysis):
229
-
230
- ```
231
- Phase 0: Pre-context intake (read issue, clone repo, read CLAUDE.md)
232
-
233
- GUARDRAILS CHECK (this skill)
234
-
235
- READY → Phase 1: Architect analysis (proceed normally)
236
- BLOCKED → Create guardrails issue → fix foundations first → resume
237
- ```
238
-
239
- In subagent-driven-development, run this before dispatching the first task.
@@ -1,64 +0,0 @@
1
- ---
2
- name: plan
3
- description: Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes/plans/` directory, and do not execute the work.
4
- version: 1.0.0
5
- author: Hermes Agent
6
- license: MIT
7
- metadata:
8
- hermes:
9
- tags: [planning, plan-mode, implementation, workflow]
10
- related_skills: [subagent-driven-development, architect]
11
- ---
12
-
13
- # Plan Mode
14
-
15
- Use this skill when the user wants a plan instead of execution.
16
-
17
- ## GitHub-First Gate
18
-
19
- If this plan will lead to implementation work (code changes, PRs), ensure a **GitHub issue**
20
- exists to track it before writing the plan. If the request came from Discord, Slack, or CLI
21
- with no linked issue, create one in the appropriate managed repo.
22
- The plan should reference the issue number and the plan file path should be posted to the issue.
23
-
24
- ## Core behavior
25
-
26
- For this turn, you are planning only.
27
-
28
- - Do not implement code.
29
- - Do not edit project files except the plan markdown file.
30
- - Do not run mutating terminal commands, commit, push, or perform external actions.
31
- - You may inspect the repo or other context with read-only commands/tools when needed.
32
- - Your deliverable is a markdown plan saved inside the active workspace under `.hermes/plans/`.
33
-
34
- ## Output requirements
35
-
36
- Write a markdown plan that is concrete and actionable.
37
-
38
- Include, when relevant:
39
- - Goal
40
- - Current context / assumptions
41
- - Proposed approach
42
- - Step-by-step plan
43
- - Files likely to change
44
- - Tests / validation
45
- - Risks, tradeoffs, and open questions
46
-
47
- If the task is code-related, include exact file paths, likely test targets, and verification steps.
48
-
49
- ## Save location
50
-
51
- Save the plan with `write_file` under:
52
- - `.hermes/plans/YYYY-MM-DD_HHMMSS-<slug>.md`
53
-
54
- Treat that as relative to the active working directory / backend workspace. Hermes file tools are backend-aware, so using this relative path keeps the plan with the workspace on local, docker, ssh, modal, and daytona backends.
55
-
56
- If the runtime provides a specific target path, use that exact path.
57
- If not, create a sensible timestamped filename yourself under `.hermes/plans/`.
58
-
59
- ## Interaction style
60
-
61
- - If the request is clear enough, write the plan directly.
62
- - If no explicit instruction accompanies `/plan`, infer the task from the current conversation context.
63
- - If it is genuinely underspecified, ask a brief clarifying question instead of guessing.
64
- - After saving the plan, reply briefly with what you planned and the saved path.