@rulemetric/cli 0.2.1 → 0.2.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.
- package/dist/base-command.js +13 -52
- package/dist/base-command.js.map +7 -1
- package/dist/chunk-2AM54TUK.js +59 -0
- package/dist/chunk-2AM54TUK.js.map +7 -0
- package/dist/chunk-3TIMQ3O6.js +96 -0
- package/dist/chunk-3TIMQ3O6.js.map +7 -0
- package/dist/chunk-4BHDHHKL.js +48 -0
- package/dist/chunk-4BHDHHKL.js.map +7 -0
- package/dist/chunk-4D537GXE.js +99 -0
- package/dist/chunk-4D537GXE.js.map +7 -0
- package/dist/chunk-4SCZK7AL.js +129 -0
- package/dist/chunk-4SCZK7AL.js.map +7 -0
- package/dist/chunk-4WFE4PFP.js +61 -0
- package/dist/chunk-4WFE4PFP.js.map +7 -0
- package/dist/chunk-52WIYRZH.js +73 -0
- package/dist/chunk-52WIYRZH.js.map +7 -0
- package/dist/chunk-7FAA3YNB.js +1549 -0
- package/dist/chunk-7FAA3YNB.js.map +7 -0
- package/dist/chunk-7NYKWN7U.js +12 -0
- package/dist/chunk-7NYKWN7U.js.map +7 -0
- package/dist/chunk-AULP2OWH.js +99 -0
- package/dist/chunk-AULP2OWH.js.map +7 -0
- package/dist/chunk-B5KNTGMJ.js +1788 -0
- package/dist/chunk-B5KNTGMJ.js.map +7 -0
- package/dist/chunk-BD7CY42U.js +23 -0
- package/dist/chunk-BD7CY42U.js.map +7 -0
- package/dist/chunk-BO76WKJR.js +42 -0
- package/dist/chunk-BO76WKJR.js.map +7 -0
- package/dist/chunk-BRD5RUGM.js +53 -0
- package/dist/chunk-BRD5RUGM.js.map +7 -0
- package/dist/chunk-BT6Z6545.js +43 -0
- package/dist/chunk-BT6Z6545.js.map +7 -0
- package/dist/chunk-BZDKEQKU.js +39 -0
- package/dist/chunk-BZDKEQKU.js.map +7 -0
- package/dist/chunk-CROYS75W.js +161 -0
- package/dist/chunk-CROYS75W.js.map +7 -0
- package/dist/chunk-DGHWRQXL.js +17 -0
- package/dist/chunk-DGHWRQXL.js.map +7 -0
- package/dist/chunk-DQ3KELXD.js +74 -0
- package/dist/chunk-DQ3KELXD.js.map +7 -0
- package/dist/chunk-DTFXCHHI.js +108 -0
- package/dist/chunk-DTFXCHHI.js.map +7 -0
- package/dist/chunk-DU73QUS3.js +75 -0
- package/dist/chunk-DU73QUS3.js.map +7 -0
- package/dist/chunk-EHZJ6OXD.js +307 -0
- package/dist/chunk-EHZJ6OXD.js.map +7 -0
- package/dist/chunk-EJOI2ZGU.js +109 -0
- package/dist/chunk-EJOI2ZGU.js.map +7 -0
- package/dist/chunk-EKJ2CABV.js +76 -0
- package/dist/chunk-EKJ2CABV.js.map +7 -0
- package/dist/chunk-EKP32DLN.js +16 -0
- package/dist/chunk-EKP32DLN.js.map +7 -0
- package/dist/chunk-EOOP6WTC.js +148 -0
- package/dist/chunk-EOOP6WTC.js.map +7 -0
- package/dist/chunk-ERPMDAO3.js +20 -0
- package/dist/chunk-ERPMDAO3.js.map +7 -0
- package/dist/chunk-FTJRMUID.js +96 -0
- package/dist/chunk-FTJRMUID.js.map +7 -0
- package/dist/chunk-FZKLLNDS.js +228 -0
- package/dist/chunk-FZKLLNDS.js.map +7 -0
- package/dist/chunk-GQCISMAH.js +157 -0
- package/dist/chunk-GQCISMAH.js.map +7 -0
- package/dist/chunk-IGXX624H.js +55 -0
- package/dist/chunk-IGXX624H.js.map +7 -0
- package/dist/chunk-IJGF2ETG.js +68 -0
- package/dist/chunk-IJGF2ETG.js.map +7 -0
- package/dist/chunk-IWYCRLEK.js +220 -0
- package/dist/chunk-IWYCRLEK.js.map +7 -0
- package/dist/chunk-J7N3DLH6.js +117 -0
- package/dist/chunk-J7N3DLH6.js.map +7 -0
- package/dist/chunk-JX5UI6RW.js +99 -0
- package/dist/chunk-JX5UI6RW.js.map +7 -0
- package/dist/chunk-K3BFZ7KG.js +154 -0
- package/dist/chunk-K3BFZ7KG.js.map +7 -0
- package/dist/chunk-KHJUQFIK.js +51 -0
- package/dist/chunk-KHJUQFIK.js.map +7 -0
- package/dist/chunk-KRBQLMOP.js +41 -0
- package/dist/chunk-KRBQLMOP.js.map +7 -0
- package/dist/chunk-KZRFUXGF.js +145 -0
- package/dist/chunk-KZRFUXGF.js.map +7 -0
- package/dist/chunk-L674RNKQ.js +492 -0
- package/dist/chunk-L674RNKQ.js.map +7 -0
- package/dist/chunk-N52AHNBH.js +47 -0
- package/dist/chunk-N52AHNBH.js.map +7 -0
- package/dist/chunk-NIDLJO6F.js +228 -0
- package/dist/chunk-NIDLJO6F.js.map +7 -0
- package/dist/chunk-NSBPE2FW.js +17 -0
- package/dist/chunk-NSBPE2FW.js.map +7 -0
- package/dist/chunk-OGVORIFM.js +70 -0
- package/dist/chunk-OGVORIFM.js.map +7 -0
- package/dist/chunk-OQSQC7VB.js +77 -0
- package/dist/chunk-OQSQC7VB.js.map +7 -0
- package/dist/chunk-PHLMIZKM.js +153 -0
- package/dist/chunk-PHLMIZKM.js.map +7 -0
- package/dist/chunk-PQU7GZ7A.js +92 -0
- package/dist/chunk-PQU7GZ7A.js.map +7 -0
- package/dist/chunk-PXVQLD7S.js +196 -0
- package/dist/chunk-PXVQLD7S.js.map +7 -0
- package/dist/chunk-QD6X4L4L.js +79 -0
- package/dist/chunk-QD6X4L4L.js.map +7 -0
- package/dist/chunk-QJQS6TUN.js +44 -0
- package/dist/chunk-QJQS6TUN.js.map +7 -0
- package/dist/chunk-QJXAULRC.js +191 -0
- package/dist/chunk-QJXAULRC.js.map +7 -0
- package/dist/chunk-QN34TGD3.js +83 -0
- package/dist/chunk-QN34TGD3.js.map +7 -0
- package/dist/chunk-R5MFHGHR.js +122 -0
- package/dist/chunk-R5MFHGHR.js.map +7 -0
- package/dist/chunk-RH7NHVSK.js +16 -0
- package/dist/chunk-RH7NHVSK.js.map +7 -0
- package/dist/chunk-RJ7BHDLM.js +121 -0
- package/dist/chunk-RJ7BHDLM.js.map +7 -0
- package/dist/chunk-RQ2TMLKG.js +142 -0
- package/dist/chunk-RQ2TMLKG.js.map +7 -0
- package/dist/chunk-S56LOTGQ.js +63 -0
- package/dist/chunk-S56LOTGQ.js.map +7 -0
- package/dist/chunk-UF73WX2J.js +49 -0
- package/dist/chunk-UF73WX2J.js.map +7 -0
- package/dist/chunk-W53GKIZQ.js +50 -0
- package/dist/chunk-W53GKIZQ.js.map +7 -0
- package/dist/chunk-WA4MWYRW.js +254 -0
- package/dist/chunk-WA4MWYRW.js.map +7 -0
- package/dist/chunk-WFULKPEQ.js +269 -0
- package/dist/chunk-WFULKPEQ.js.map +7 -0
- package/dist/chunk-XC6M4CSW.js +44 -0
- package/dist/chunk-XC6M4CSW.js.map +7 -0
- package/dist/chunk-XPUEGHXN.js +243 -0
- package/dist/chunk-XPUEGHXN.js.map +7 -0
- package/dist/chunk-XZXS2W24.js +148 -0
- package/dist/chunk-XZXS2W24.js.map +7 -0
- package/dist/chunk-YBNW7ARH.js +167 -0
- package/dist/chunk-YBNW7ARH.js.map +7 -0
- package/dist/chunk-YNIH3KMU.js +121 -0
- package/dist/chunk-YNIH3KMU.js.map +7 -0
- package/dist/commands/antigravity/backfill.js +135 -0
- package/dist/commands/antigravity/backfill.js.map +7 -0
- package/dist/commands/auth/create-key.js +48 -33
- package/dist/commands/auth/create-key.js.map +7 -1
- package/dist/commands/auth/login.js +58 -46
- package/dist/commands/auth/login.js.map +7 -1
- package/dist/commands/auth/logout.js +28 -13
- package/dist/commands/auth/logout.js.map +7 -1
- package/dist/commands/auth/revoke-key.js +32 -18
- package/dist/commands/auth/revoke-key.js.map +7 -1
- package/dist/commands/auth/status.js +40 -22
- package/dist/commands/auth/status.js.map +7 -1
- package/dist/commands/catalog/index.js +50 -34
- package/dist/commands/catalog/index.js.map +7 -1
- package/dist/commands/catalog/recommend.js +41 -26
- package/dist/commands/catalog/recommend.js.map +7 -1
- package/dist/commands/convert.js +72 -54
- package/dist/commands/convert.js.map +7 -1
- package/dist/commands/converters.js +52 -38
- package/dist/commands/converters.js.map +7 -1
- package/dist/commands/crons/list.js +50 -24
- package/dist/commands/crons/list.js.map +7 -1
- package/dist/commands/crons/run.js +72 -47
- package/dist/commands/crons/run.js.map +7 -1
- package/dist/commands/dashboard.js +45 -24
- package/dist/commands/dashboard.js.map +7 -1
- package/dist/commands/eval-targets/create.js +51 -39
- package/dist/commands/eval-targets/create.js.map +7 -1
- package/dist/commands/eval-targets/list.js +52 -35
- package/dist/commands/eval-targets/list.js.map +7 -1
- package/dist/commands/evals/agent.js +292 -0
- package/dist/commands/evals/agent.js.map +7 -0
- package/dist/commands/evals/benchmark.js +70 -51
- package/dist/commands/evals/benchmark.js.map +7 -1
- package/dist/commands/evals/compare.js +90 -78
- package/dist/commands/evals/compare.js.map +7 -1
- package/dist/commands/evals/create.js +64 -50
- package/dist/commands/evals/create.js.map +7 -1
- package/dist/commands/evals/optimize-description.js +225 -222
- package/dist/commands/evals/optimize-description.js.map +7 -1
- package/dist/commands/evals/optimize.js +206 -196
- package/dist/commands/evals/optimize.js.map +7 -1
- package/dist/commands/evals/run.js +178 -164
- package/dist/commands/evals/run.js.map +7 -1
- package/dist/commands/gateway/ensure.js +33 -19
- package/dist/commands/gateway/ensure.js.map +7 -1
- package/dist/commands/hooks/install.js +335 -275
- package/dist/commands/hooks/install.js.map +7 -1
- package/dist/commands/hooks/run.js +72 -53
- package/dist/commands/hooks/run.js.map +7 -1
- package/dist/commands/hooks/uninstall.js +117 -94
- package/dist/commands/hooks/uninstall.js.map +7 -1
- package/dist/commands/import.js +63 -53
- package/dist/commands/import.js.map +7 -1
- package/dist/commands/instructions/create.js +71 -58
- package/dist/commands/instructions/create.js.map +7 -1
- package/dist/commands/instructions/delete.js +53 -36
- package/dist/commands/instructions/delete.js.map +7 -1
- package/dist/commands/instructions/fork.js +33 -19
- package/dist/commands/instructions/fork.js.map +7 -1
- package/dist/commands/instructions/get.js +66 -49
- package/dist/commands/instructions/get.js.map +7 -1
- package/dist/commands/instructions/list.js +63 -46
- package/dist/commands/instructions/list.js.map +7 -1
- package/dist/commands/instructions/promote.js +41 -27
- package/dist/commands/instructions/promote.js.map +7 -1
- package/dist/commands/instructions/pull.js +37 -21
- package/dist/commands/instructions/pull.js.map +7 -1
- package/dist/commands/instructions/upstream.js +36 -21
- package/dist/commands/instructions/upstream.js.map +7 -1
- package/dist/commands/instructions/versions.js +51 -33
- package/dist/commands/instructions/versions.js.map +7 -1
- package/dist/commands/launcher.js +39 -0
- package/dist/commands/launcher.js.map +7 -0
- package/dist/commands/org/current.js +74 -68
- package/dist/commands/org/current.js.map +7 -1
- package/dist/commands/org/list.js +50 -36
- package/dist/commands/org/list.js.map +7 -1
- package/dist/commands/org/switch.js +69 -51
- package/dist/commands/org/switch.js.map +7 -1
- package/dist/commands/packs/add-instruction.js +36 -22
- package/dist/commands/packs/add-instruction.js.map +7 -1
- package/dist/commands/packs/apply.js +38 -24
- package/dist/commands/packs/apply.js.map +7 -1
- package/dist/commands/packs/create.js +47 -33
- package/dist/commands/packs/create.js.map +7 -1
- package/dist/commands/packs/fork.js +33 -19
- package/dist/commands/packs/fork.js.map +7 -1
- package/dist/commands/packs/get.js +54 -35
- package/dist/commands/packs/get.js.map +7 -1
- package/dist/commands/packs/list.js +64 -47
- package/dist/commands/packs/list.js.map +7 -1
- package/dist/commands/packs/remove-instruction.js +34 -20
- package/dist/commands/packs/remove-instruction.js.map +7 -1
- package/dist/commands/proxy/env.js +126 -116
- package/dist/commands/proxy/env.js.map +7 -1
- package/dist/commands/proxy/logs.js +83 -74
- package/dist/commands/proxy/logs.js.map +7 -1
- package/dist/commands/proxy/restart.js +34 -36
- package/dist/commands/proxy/restart.js.map +7 -1
- package/dist/commands/proxy/setup.js +432 -375
- package/dist/commands/proxy/setup.js.map +7 -1
- package/dist/commands/proxy/start.js +289 -289
- package/dist/commands/proxy/start.js.map +7 -1
- package/dist/commands/proxy/status.js +74 -64
- package/dist/commands/proxy/status.js.map +7 -1
- package/dist/commands/proxy/stop.js +81 -75
- package/dist/commands/proxy/stop.js.map +7 -1
- package/dist/commands/research/backfill.js +58 -0
- package/dist/commands/research/backfill.js.map +7 -0
- package/dist/commands/research/tail-transcript.js +69 -0
- package/dist/commands/research/tail-transcript.js.map +7 -0
- package/dist/commands/service/install.js +639 -405
- package/dist/commands/service/install.js.map +7 -1
- package/dist/commands/service/status.js +178 -111
- package/dist/commands/service/status.js.map +7 -1
- package/dist/commands/service/uninstall.js +85 -110
- package/dist/commands/service/uninstall.js.map +7 -1
- package/dist/commands/sessions/analyze.js +46 -25
- package/dist/commands/sessions/analyze.js.map +7 -1
- package/dist/commands/sessions/end.js +81 -79
- package/dist/commands/sessions/end.js.map +7 -1
- package/dist/commands/sessions/import.js +44 -27
- package/dist/commands/sessions/import.js.map +7 -1
- package/dist/commands/sessions/list.js +46 -33
- package/dist/commands/sessions/list.js.map +7 -1
- package/dist/commands/sessions/start.js +88 -87
- package/dist/commands/sessions/start.js.map +7 -1
- package/dist/commands/signals/report.js +42 -34
- package/dist/commands/signals/report.js.map +7 -1
- package/dist/commands/skills/export-approved.js +44 -30
- package/dist/commands/skills/export-approved.js.map +7 -1
- package/dist/commands/skills/install.js +99 -84
- package/dist/commands/skills/install.js.map +7 -1
- package/dist/commands/skills/list.js +59 -42
- package/dist/commands/skills/list.js.map +7 -1
- package/dist/commands/skills/publish.js +95 -78
- package/dist/commands/skills/publish.js.map +7 -1
- package/dist/commands/skills/search.js +68 -53
- package/dist/commands/skills/search.js.map +7 -1
- package/dist/commands/skills/update.js +52 -39
- package/dist/commands/skills/update.js.map +7 -1
- package/dist/commands/suggestions/accept.js +82 -59
- package/dist/commands/suggestions/accept.js.map +7 -1
- package/dist/commands/suggestions/dismiss.js +44 -26
- package/dist/commands/suggestions/dismiss.js.map +7 -1
- package/dist/commands/suggestions/list.js +59 -39
- package/dist/commands/suggestions/list.js.map +7 -1
- package/dist/commands/suggestions/refresh.js +26 -11
- package/dist/commands/suggestions/refresh.js.map +7 -1
- package/dist/cursor-BGQJ4CWI.js +134 -0
- package/dist/cursor-BGQJ4CWI.js.map +7 -0
- package/dist/dashboard/Dashboard.js +229 -126
- package/dist/dashboard/Dashboard.js.map +7 -1
- package/dist/dashboard/data.js +13 -137
- package/dist/dashboard/data.js.map +7 -1
- package/dist/dashboard/launcher/ActiveJobsList.js +10 -0
- package/dist/dashboard/launcher/ActiveJobsList.js.map +7 -0
- package/dist/dashboard/launcher/LauncherOverlay.js +14 -0
- package/dist/dashboard/launcher/LauncherOverlay.js.map +7 -0
- package/dist/dashboard/launcher/NewLaunchForm.js +10 -0
- package/dist/dashboard/launcher/NewLaunchForm.js.map +7 -0
- package/dist/dashboard/launcher/api.js +14 -0
- package/dist/dashboard/launcher/api.js.map +7 -0
- package/dist/dashboard/launcher/tool-labels.js +10 -0
- package/dist/dashboard/launcher/tool-labels.js.map +7 -0
- package/dist/dashboard/launcher/types.js +1 -0
- package/dist/dashboard/launcher/types.js.map +7 -0
- package/dist/dashboard/launcher/useLaunchJobs.js +9 -0
- package/dist/dashboard/launcher/useLaunchJobs.js.map +7 -0
- package/dist/dashboard/panels/friction.js +10 -22
- package/dist/dashboard/panels/friction.js.map +7 -1
- package/dist/dashboard/panels/insights.js +10 -109
- package/dist/dashboard/panels/insights.js.map +7 -1
- package/dist/dashboard/panels/instructions.js +10 -17
- package/dist/dashboard/panels/instructions.js.map +7 -1
- package/dist/dashboard/panels/outcomes.js +9 -28
- package/dist/dashboard/panels/outcomes.js.map +7 -1
- package/dist/dashboard/panels/overview.js +10 -20
- package/dist/dashboard/panels/overview.js.map +7 -1
- package/dist/dashboard/panels/shared.js +18 -61
- package/dist/dashboard/panels/shared.js.map +7 -1
- package/dist/dashboard/types.js +23 -26
- package/dist/dashboard/types.js.map +7 -1
- package/dist/dist-CSUYFYKI.js +52 -0
- package/dist/dist-CSUYFYKI.js.map +7 -0
- package/dist/index.js +8 -2
- package/dist/index.js.map +7 -1
- package/dist/lib/active-org-refresh.js +15 -108
- package/dist/lib/active-org-refresh.js.map +7 -1
- package/dist/lib/active-org.js +15 -95
- package/dist/lib/active-org.js.map +7 -1
- package/dist/lib/agent-loop.js +44 -0
- package/dist/lib/agent-loop.js.map +7 -0
- package/dist/lib/antigravity-transcript.js +22 -0
- package/dist/lib/antigravity-transcript.js.map +7 -0
- package/dist/lib/api-client.js +21 -92
- package/dist/lib/api-client.js.map +7 -1
- package/dist/lib/auth.js +26 -137
- package/dist/lib/auth.js.map +7 -1
- package/dist/lib/detect-languages.js +8 -113
- package/dist/lib/detect-languages.js.map +7 -1
- package/dist/lib/detect-tmux.js +9 -0
- package/dist/lib/detect-tmux.js.map +7 -0
- package/dist/lib/eval-analyzer.js +9 -89
- package/dist/lib/eval-analyzer.js.map +7 -1
- package/dist/lib/eval-benchmark.js +12 -92
- package/dist/lib/eval-benchmark.js.map +7 -1
- package/dist/lib/eval-conversation-handler.js +13 -200
- package/dist/lib/eval-conversation-handler.js.map +7 -1
- package/dist/lib/eval-executor.js +8 -83
- package/dist/lib/eval-executor.js.map +7 -1
- package/dist/lib/eval-grader.js +9 -123
- package/dist/lib/eval-grader.js.map +7 -1
- package/dist/lib/eval-meta-judge.js +9 -116
- package/dist/lib/eval-meta-judge.js.map +7 -1
- package/dist/lib/eval-trigger-tester.js +11 -96
- package/dist/lib/eval-trigger-tester.js.map +7 -1
- package/dist/lib/eval-worktree.js +8 -87
- package/dist/lib/eval-worktree.js.map +7 -1
- package/dist/lib/gateway-entry.js +20 -18
- package/dist/lib/gateway-entry.js.map +7 -1
- package/dist/lib/gateway-lifecycle.js +22 -97
- package/dist/lib/gateway-lifecycle.js.map +7 -1
- package/dist/lib/gateway.js +12 -216
- package/dist/lib/gateway.js.map +7 -1
- package/dist/lib/handlers/cron-close-stale-sessions.js +18 -7
- package/dist/lib/handlers/cron-close-stale-sessions.js.map +7 -1
- package/dist/lib/handlers/cron-data-integrity-audit.js +21 -15
- package/dist/lib/handlers/cron-data-integrity-audit.js.map +7 -1
- package/dist/lib/handlers/cron-refresh-skills.js +7 -90
- package/dist/lib/handlers/cron-refresh-skills.js.map +7 -1
- package/dist/lib/handlers/cron-suggest-instructions.js +14 -158
- package/dist/lib/handlers/cron-suggest-instructions.js.map +7 -1
- package/dist/lib/handlers/process-announcement.js +11 -0
- package/dist/lib/handlers/process-announcement.js.map +7 -0
- package/dist/lib/handlers/process-changelog.js +11 -0
- package/dist/lib/handlers/process-changelog.js.map +7 -0
- package/dist/lib/handlers/process-conversation.js +14 -35
- package/dist/lib/handlers/process-conversation.js.map +7 -1
- package/dist/lib/handlers/process-eval.js +15 -207
- package/dist/lib/handlers/process-eval.js.map +7 -1
- package/dist/lib/handlers/process-insights.js +14 -300
- package/dist/lib/handlers/process-insights.js.map +7 -1
- package/dist/lib/handlers/process-launch.js +16 -41
- package/dist/lib/handlers/process-launch.js.map +7 -1
- package/dist/lib/handlers/process-run-cleanup.js +13 -0
- package/dist/lib/handlers/process-run-cleanup.js.map +7 -0
- package/dist/lib/handlers/process-send-message.js +10 -0
- package/dist/lib/handlers/process-send-message.js.map +7 -0
- package/dist/lib/handlers/process-session-goal.js +11 -74
- package/dist/lib/handlers/process-session-goal.js.map +7 -1
- package/dist/lib/hooks-config.js +52 -544
- package/dist/lib/hooks-config.js.map +7 -1
- package/dist/lib/insights-prompts.js +12 -145
- package/dist/lib/insights-prompts.js.map +7 -1
- package/dist/lib/job-helpers.js +1 -0
- package/dist/lib/job-helpers.js.map +7 -0
- package/dist/lib/llm-client.js +16 -274
- package/dist/lib/llm-client.js.map +7 -1
- package/dist/lib/manual-tasks.js +22 -0
- package/dist/lib/manual-tasks.js.map +7 -0
- package/dist/lib/output.js +12 -36
- package/dist/lib/output.js.map +7 -1
- package/dist/lib/permanent-job-error.js +10 -23
- package/dist/lib/permanent-job-error.js.map +7 -1
- package/dist/lib/provider-aggregator.js +57 -55
- package/dist/lib/provider-aggregator.js.map +7 -1
- package/dist/lib/research-client.js +12 -0
- package/dist/lib/research-client.js.map +7 -0
- package/dist/lib/skills-loader.js +8 -51
- package/dist/lib/skills-loader.js.map +7 -1
- package/dist/lib/statusline-shim.js +16 -0
- package/dist/lib/statusline-shim.js.map +7 -0
- package/dist/lib/terminal-target-heartbeat.js +15 -0
- package/dist/lib/terminal-target-heartbeat.js.map +7 -0
- package/dist/lib/tmux.js +16 -0
- package/dist/lib/tmux.js.map +7 -0
- package/dist/lib/transcript-rate-limit-watcher.js +22 -0
- package/dist/lib/transcript-rate-limit-watcher.js.map +7 -0
- package/dist/lib/types.js +8 -7
- package/dist/lib/types.js.map +7 -1
- package/dist/lib/version-check.js +10 -106
- package/dist/lib/version-check.js.map +7 -1
- package/dist/lib/which.js +8 -0
- package/dist/lib/which.js.map +7 -0
- package/dist/lib/worktree.js +17 -0
- package/dist/lib/worktree.js.map +7 -0
- package/dist/opencode-IQ7X5YMJ.js +190 -0
- package/dist/opencode-IQ7X5YMJ.js.map +7 -0
- package/oclif.manifest.json +299 -66
- package/package.json +26 -10
- package/dist/base-command.d.ts +0 -12
- package/dist/base-command.d.ts.map +0 -1
- package/dist/commands/auth/create-key.d.ts +0 -11
- package/dist/commands/auth/create-key.d.ts.map +0 -1
- package/dist/commands/auth/login.d.ts +0 -11
- package/dist/commands/auth/login.d.ts.map +0 -1
- package/dist/commands/auth/logout.d.ts +0 -7
- package/dist/commands/auth/logout.d.ts.map +0 -1
- package/dist/commands/auth/revoke-key.d.ts +0 -10
- package/dist/commands/auth/revoke-key.d.ts.map +0 -1
- package/dist/commands/auth/status.d.ts +0 -7
- package/dist/commands/auth/status.d.ts.map +0 -1
- package/dist/commands/catalog/index.d.ts +0 -11
- package/dist/commands/catalog/index.d.ts.map +0 -1
- package/dist/commands/catalog/recommend.d.ts +0 -9
- package/dist/commands/catalog/recommend.d.ts.map +0 -1
- package/dist/commands/convert.d.ts +0 -15
- package/dist/commands/convert.d.ts.map +0 -1
- package/dist/commands/converters.d.ts +0 -12
- package/dist/commands/converters.d.ts.map +0 -1
- package/dist/commands/crons/list.d.ts +0 -7
- package/dist/commands/crons/list.d.ts.map +0 -1
- package/dist/commands/crons/run.d.ts +0 -13
- package/dist/commands/crons/run.d.ts.map +0 -1
- package/dist/commands/dashboard.d.ts +0 -10
- package/dist/commands/dashboard.d.ts.map +0 -1
- package/dist/commands/eval-targets/create.d.ts +0 -14
- package/dist/commands/eval-targets/create.d.ts.map +0 -1
- package/dist/commands/eval-targets/list.d.ts +0 -10
- package/dist/commands/eval-targets/list.d.ts.map +0 -1
- package/dist/commands/evals/benchmark.d.ts +0 -13
- package/dist/commands/evals/benchmark.d.ts.map +0 -1
- package/dist/commands/evals/compare.d.ts +0 -15
- package/dist/commands/evals/compare.d.ts.map +0 -1
- package/dist/commands/evals/create.d.ts +0 -17
- package/dist/commands/evals/create.d.ts.map +0 -1
- package/dist/commands/evals/listen.d.ts +0 -37
- package/dist/commands/evals/listen.d.ts.map +0 -1
- package/dist/commands/evals/listen.js +0 -188
- package/dist/commands/evals/listen.js.map +0 -1
- package/dist/commands/evals/listen.test.d.ts +0 -2
- package/dist/commands/evals/listen.test.d.ts.map +0 -1
- package/dist/commands/evals/listen.test.js +0 -48
- package/dist/commands/evals/listen.test.js.map +0 -1
- package/dist/commands/evals/optimize-description.d.ts +0 -22
- package/dist/commands/evals/optimize-description.d.ts.map +0 -1
- package/dist/commands/evals/optimize.d.ts +0 -22
- package/dist/commands/evals/optimize.d.ts.map +0 -1
- package/dist/commands/evals/run.d.ts +0 -21
- package/dist/commands/evals/run.d.ts.map +0 -1
- package/dist/commands/gateway/ensure.d.ts +0 -7
- package/dist/commands/gateway/ensure.d.ts.map +0 -1
- package/dist/commands/hooks/install.d.ts +0 -16
- package/dist/commands/hooks/install.d.ts.map +0 -1
- package/dist/commands/hooks/run.d.ts +0 -11
- package/dist/commands/hooks/run.d.ts.map +0 -1
- package/dist/commands/hooks/uninstall.d.ts +0 -7
- package/dist/commands/hooks/uninstall.d.ts.map +0 -1
- package/dist/commands/import.d.ts +0 -17
- package/dist/commands/import.d.ts.map +0 -1
- package/dist/commands/instructions/create.d.ts +0 -17
- package/dist/commands/instructions/create.d.ts.map +0 -1
- package/dist/commands/instructions/delete.d.ts +0 -13
- package/dist/commands/instructions/delete.d.ts.map +0 -1
- package/dist/commands/instructions/fork.d.ts +0 -10
- package/dist/commands/instructions/fork.d.ts.map +0 -1
- package/dist/commands/instructions/get.d.ts +0 -15
- package/dist/commands/instructions/get.d.ts.map +0 -1
- package/dist/commands/instructions/list.d.ts +0 -12
- package/dist/commands/instructions/list.d.ts.map +0 -1
- package/dist/commands/instructions/promote.d.ts +0 -14
- package/dist/commands/instructions/promote.d.ts.map +0 -1
- package/dist/commands/instructions/pull.d.ts +0 -9
- package/dist/commands/instructions/pull.d.ts.map +0 -1
- package/dist/commands/instructions/upstream.d.ts +0 -9
- package/dist/commands/instructions/upstream.d.ts.map +0 -1
- package/dist/commands/instructions/versions.d.ts +0 -12
- package/dist/commands/instructions/versions.d.ts.map +0 -1
- package/dist/commands/org/current.d.ts +0 -7
- package/dist/commands/org/current.d.ts.map +0 -1
- package/dist/commands/org/list.d.ts +0 -7
- package/dist/commands/org/list.d.ts.map +0 -1
- package/dist/commands/org/switch.d.ts +0 -13
- package/dist/commands/org/switch.d.ts.map +0 -1
- package/dist/commands/packs/add-instruction.d.ts +0 -11
- package/dist/commands/packs/add-instruction.d.ts.map +0 -1
- package/dist/commands/packs/apply.d.ts +0 -13
- package/dist/commands/packs/apply.d.ts.map +0 -1
- package/dist/commands/packs/create.d.ts +0 -13
- package/dist/commands/packs/create.d.ts.map +0 -1
- package/dist/commands/packs/fork.d.ts +0 -10
- package/dist/commands/packs/fork.d.ts.map +0 -1
- package/dist/commands/packs/get.d.ts +0 -10
- package/dist/commands/packs/get.d.ts.map +0 -1
- package/dist/commands/packs/list.d.ts +0 -22
- package/dist/commands/packs/list.d.ts.map +0 -1
- package/dist/commands/packs/remove-instruction.d.ts +0 -11
- package/dist/commands/packs/remove-instruction.d.ts.map +0 -1
- package/dist/commands/proxy/env.d.ts +0 -14
- package/dist/commands/proxy/env.d.ts.map +0 -1
- package/dist/commands/proxy/logs.d.ts +0 -11
- package/dist/commands/proxy/logs.d.ts.map +0 -1
- package/dist/commands/proxy/restart.d.ts +0 -11
- package/dist/commands/proxy/restart.d.ts.map +0 -1
- package/dist/commands/proxy/setup.d.ts +0 -23
- package/dist/commands/proxy/setup.d.ts.map +0 -1
- package/dist/commands/proxy/start.d.ts +0 -17
- package/dist/commands/proxy/start.d.ts.map +0 -1
- package/dist/commands/proxy/status.d.ts +0 -7
- package/dist/commands/proxy/status.d.ts.map +0 -1
- package/dist/commands/proxy/stop.d.ts +0 -8
- package/dist/commands/proxy/stop.d.ts.map +0 -1
- package/dist/commands/service/install.d.ts +0 -33
- package/dist/commands/service/install.d.ts.map +0 -1
- package/dist/commands/service/install.test.d.ts +0 -2
- package/dist/commands/service/install.test.d.ts.map +0 -1
- package/dist/commands/service/install.test.js +0 -345
- package/dist/commands/service/install.test.js.map +0 -1
- package/dist/commands/service/status.d.ts +0 -6
- package/dist/commands/service/status.d.ts.map +0 -1
- package/dist/commands/service/uninstall.d.ts +0 -6
- package/dist/commands/service/uninstall.d.ts.map +0 -1
- package/dist/commands/sessions/analyze.d.ts +0 -10
- package/dist/commands/sessions/analyze.d.ts.map +0 -1
- package/dist/commands/sessions/end.d.ts +0 -9
- package/dist/commands/sessions/end.d.ts.map +0 -1
- package/dist/commands/sessions/import.d.ts +0 -13
- package/dist/commands/sessions/import.d.ts.map +0 -1
- package/dist/commands/sessions/list.d.ts +0 -11
- package/dist/commands/sessions/list.d.ts.map +0 -1
- package/dist/commands/sessions/start.d.ts +0 -11
- package/dist/commands/sessions/start.d.ts.map +0 -1
- package/dist/commands/signals/report.d.ts +0 -10
- package/dist/commands/signals/report.d.ts.map +0 -1
- package/dist/commands/signals/report.test.d.ts +0 -2
- package/dist/commands/signals/report.test.d.ts.map +0 -1
- package/dist/commands/signals/report.test.js +0 -65
- package/dist/commands/signals/report.test.js.map +0 -1
- package/dist/commands/skills/export-approved.d.ts +0 -10
- package/dist/commands/skills/export-approved.d.ts.map +0 -1
- package/dist/commands/skills/install.d.ts +0 -15
- package/dist/commands/skills/install.d.ts.map +0 -1
- package/dist/commands/skills/list.d.ts +0 -11
- package/dist/commands/skills/list.d.ts.map +0 -1
- package/dist/commands/skills/publish.d.ts +0 -17
- package/dist/commands/skills/publish.d.ts.map +0 -1
- package/dist/commands/skills/search.d.ts +0 -17
- package/dist/commands/skills/search.d.ts.map +0 -1
- package/dist/commands/skills/update.d.ts +0 -10
- package/dist/commands/skills/update.d.ts.map +0 -1
- package/dist/commands/suggestions/accept.d.ts +0 -16
- package/dist/commands/suggestions/accept.d.ts.map +0 -1
- package/dist/commands/suggestions/accept.test.d.ts +0 -2
- package/dist/commands/suggestions/accept.test.d.ts.map +0 -1
- package/dist/commands/suggestions/accept.test.js +0 -52
- package/dist/commands/suggestions/accept.test.js.map +0 -1
- package/dist/commands/suggestions/dismiss.d.ts +0 -10
- package/dist/commands/suggestions/dismiss.d.ts.map +0 -1
- package/dist/commands/suggestions/list.d.ts +0 -10
- package/dist/commands/suggestions/list.d.ts.map +0 -1
- package/dist/commands/suggestions/refresh.d.ts +0 -7
- package/dist/commands/suggestions/refresh.d.ts.map +0 -1
- package/dist/dashboard/Dashboard.d.ts +0 -3
- package/dist/dashboard/Dashboard.d.ts.map +0 -1
- package/dist/dashboard/data.d.ts +0 -11
- package/dist/dashboard/data.d.ts.map +0 -1
- package/dist/dashboard/panels/friction.d.ts +0 -7
- package/dist/dashboard/panels/friction.d.ts.map +0 -1
- package/dist/dashboard/panels/insights.d.ts +0 -8
- package/dist/dashboard/panels/insights.d.ts.map +0 -1
- package/dist/dashboard/panels/instructions.d.ts +0 -9
- package/dist/dashboard/panels/instructions.d.ts.map +0 -1
- package/dist/dashboard/panels/outcomes.d.ts +0 -7
- package/dist/dashboard/panels/outcomes.d.ts.map +0 -1
- package/dist/dashboard/panels/overview.d.ts +0 -8
- package/dist/dashboard/panels/overview.d.ts.map +0 -1
- package/dist/dashboard/panels/shared.d.ts +0 -17
- package/dist/dashboard/panels/shared.d.ts.map +0 -1
- package/dist/dashboard/types.d.ts +0 -80
- package/dist/dashboard/types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/active-org-refresh.d.ts +0 -22
- package/dist/lib/active-org-refresh.d.ts.map +0 -1
- package/dist/lib/active-org-refresh.test.d.ts +0 -2
- package/dist/lib/active-org-refresh.test.d.ts.map +0 -1
- package/dist/lib/active-org-refresh.test.js +0 -190
- package/dist/lib/active-org-refresh.test.js.map +0 -1
- package/dist/lib/active-org.d.ts +0 -43
- package/dist/lib/active-org.d.ts.map +0 -1
- package/dist/lib/active-org.test.d.ts +0 -2
- package/dist/lib/active-org.test.d.ts.map +0 -1
- package/dist/lib/active-org.test.js +0 -147
- package/dist/lib/active-org.test.js.map +0 -1
- package/dist/lib/api-client.d.ts +0 -17
- package/dist/lib/api-client.d.ts.map +0 -1
- package/dist/lib/api-client.test.d.ts +0 -2
- package/dist/lib/api-client.test.d.ts.map +0 -1
- package/dist/lib/api-client.test.js +0 -161
- package/dist/lib/api-client.test.js.map +0 -1
- package/dist/lib/auth.d.ts +0 -27
- package/dist/lib/auth.d.ts.map +0 -1
- package/dist/lib/auth.test.d.ts +0 -2
- package/dist/lib/auth.test.d.ts.map +0 -1
- package/dist/lib/auth.test.js +0 -110
- package/dist/lib/auth.test.js.map +0 -1
- package/dist/lib/cron-registry.d.ts +0 -47
- package/dist/lib/cron-registry.d.ts.map +0 -1
- package/dist/lib/cron-registry.js +0 -102
- package/dist/lib/cron-registry.js.map +0 -1
- package/dist/lib/cron-registry.test.d.ts +0 -2
- package/dist/lib/cron-registry.test.d.ts.map +0 -1
- package/dist/lib/cron-registry.test.js +0 -136
- package/dist/lib/cron-registry.test.js.map +0 -1
- package/dist/lib/cron-runner.d.ts +0 -16
- package/dist/lib/cron-runner.d.ts.map +0 -1
- package/dist/lib/cron-runner.js +0 -68
- package/dist/lib/cron-runner.js.map +0 -1
- package/dist/lib/detect-languages.d.ts +0 -7
- package/dist/lib/detect-languages.d.ts.map +0 -1
- package/dist/lib/detect-languages.test.d.ts +0 -2
- package/dist/lib/detect-languages.test.d.ts.map +0 -1
- package/dist/lib/detect-languages.test.js +0 -29
- package/dist/lib/detect-languages.test.js.map +0 -1
- package/dist/lib/eval-analyzer.d.ts +0 -23
- package/dist/lib/eval-analyzer.d.ts.map +0 -1
- package/dist/lib/eval-benchmark.d.ts +0 -17
- package/dist/lib/eval-benchmark.d.ts.map +0 -1
- package/dist/lib/eval-conversation-handler.d.ts +0 -9
- package/dist/lib/eval-conversation-handler.d.ts.map +0 -1
- package/dist/lib/eval-executor.d.ts +0 -21
- package/dist/lib/eval-executor.d.ts.map +0 -1
- package/dist/lib/eval-executor.test.d.ts +0 -2
- package/dist/lib/eval-executor.test.d.ts.map +0 -1
- package/dist/lib/eval-executor.test.js +0 -8
- package/dist/lib/eval-executor.test.js.map +0 -1
- package/dist/lib/eval-grader.d.ts +0 -38
- package/dist/lib/eval-grader.d.ts.map +0 -1
- package/dist/lib/eval-grader.test.d.ts +0 -2
- package/dist/lib/eval-grader.test.d.ts.map +0 -1
- package/dist/lib/eval-grader.test.js +0 -8
- package/dist/lib/eval-grader.test.js.map +0 -1
- package/dist/lib/eval-meta-judge.d.ts +0 -28
- package/dist/lib/eval-meta-judge.d.ts.map +0 -1
- package/dist/lib/eval-trigger-tester.d.ts +0 -19
- package/dist/lib/eval-trigger-tester.d.ts.map +0 -1
- package/dist/lib/eval-worktree.d.ts +0 -11
- package/dist/lib/eval-worktree.d.ts.map +0 -1
- package/dist/lib/eval-worktree.test.d.ts +0 -2
- package/dist/lib/eval-worktree.test.d.ts.map +0 -1
- package/dist/lib/eval-worktree.test.js +0 -68
- package/dist/lib/eval-worktree.test.js.map +0 -1
- package/dist/lib/gateway-entry.d.ts +0 -3
- package/dist/lib/gateway-entry.d.ts.map +0 -1
- package/dist/lib/gateway-lifecycle.d.ts +0 -9
- package/dist/lib/gateway-lifecycle.d.ts.map +0 -1
- package/dist/lib/gateway.d.ts +0 -11
- package/dist/lib/gateway.d.ts.map +0 -1
- package/dist/lib/graphile-worker-runner.d.ts +0 -124
- package/dist/lib/graphile-worker-runner.d.ts.map +0 -1
- package/dist/lib/graphile-worker-runner.js +0 -530
- package/dist/lib/graphile-worker-runner.js.map +0 -1
- package/dist/lib/graphile-worker-runner.test.d.ts +0 -2
- package/dist/lib/graphile-worker-runner.test.d.ts.map +0 -1
- package/dist/lib/graphile-worker-runner.test.js +0 -153
- package/dist/lib/graphile-worker-runner.test.js.map +0 -1
- package/dist/lib/handlers/cron-close-stale-sessions.d.ts +0 -3
- package/dist/lib/handlers/cron-close-stale-sessions.d.ts.map +0 -1
- package/dist/lib/handlers/cron-data-integrity-audit.d.ts +0 -3
- package/dist/lib/handlers/cron-data-integrity-audit.d.ts.map +0 -1
- package/dist/lib/handlers/cron-refresh-skills.d.ts +0 -3
- package/dist/lib/handlers/cron-refresh-skills.d.ts.map +0 -1
- package/dist/lib/handlers/cron-refresh-skills.test.d.ts +0 -2
- package/dist/lib/handlers/cron-refresh-skills.test.d.ts.map +0 -1
- package/dist/lib/handlers/cron-refresh-skills.test.js +0 -114
- package/dist/lib/handlers/cron-refresh-skills.test.js.map +0 -1
- package/dist/lib/handlers/cron-regenerate-insights.d.ts +0 -3
- package/dist/lib/handlers/cron-regenerate-insights.d.ts.map +0 -1
- package/dist/lib/handlers/cron-regenerate-insights.js +0 -6
- package/dist/lib/handlers/cron-regenerate-insights.js.map +0 -1
- package/dist/lib/handlers/cron-suggest-instructions.d.ts +0 -3
- package/dist/lib/handlers/cron-suggest-instructions.d.ts.map +0 -1
- package/dist/lib/handlers/cron-suggest-instructions.test.d.ts +0 -2
- package/dist/lib/handlers/cron-suggest-instructions.test.d.ts.map +0 -1
- package/dist/lib/handlers/cron-suggest-instructions.test.js +0 -80
- package/dist/lib/handlers/cron-suggest-instructions.test.js.map +0 -1
- package/dist/lib/handlers/process-conversation.d.ts +0 -35
- package/dist/lib/handlers/process-conversation.d.ts.map +0 -1
- package/dist/lib/handlers/process-eval.d.ts +0 -32
- package/dist/lib/handlers/process-eval.d.ts.map +0 -1
- package/dist/lib/handlers/process-insights.d.ts +0 -39
- package/dist/lib/handlers/process-insights.d.ts.map +0 -1
- package/dist/lib/handlers/process-launch.d.ts +0 -29
- package/dist/lib/handlers/process-launch.d.ts.map +0 -1
- package/dist/lib/handlers/process-session-goal.d.ts +0 -29
- package/dist/lib/handlers/process-session-goal.d.ts.map +0 -1
- package/dist/lib/handlers/process-session-goal.test.d.ts +0 -2
- package/dist/lib/handlers/process-session-goal.test.d.ts.map +0 -1
- package/dist/lib/handlers/process-session-goal.test.js +0 -134
- package/dist/lib/handlers/process-session-goal.test.js.map +0 -1
- package/dist/lib/hooks-config.d.ts +0 -119
- package/dist/lib/hooks-config.d.ts.map +0 -1
- package/dist/lib/hooks-config.test.d.ts +0 -2
- package/dist/lib/hooks-config.test.d.ts.map +0 -1
- package/dist/lib/hooks-config.test.js +0 -231
- package/dist/lib/hooks-config.test.js.map +0 -1
- package/dist/lib/insights-prompts.d.ts +0 -13
- package/dist/lib/insights-prompts.d.ts.map +0 -1
- package/dist/lib/llm-client.d.ts +0 -26
- package/dist/lib/llm-client.d.ts.map +0 -1
- package/dist/lib/llm-client.test.d.ts +0 -2
- package/dist/lib/llm-client.test.d.ts.map +0 -1
- package/dist/lib/llm-client.test.js +0 -62
- package/dist/lib/llm-client.test.js.map +0 -1
- package/dist/lib/mirror-writer-db.d.ts +0 -12
- package/dist/lib/mirror-writer-db.d.ts.map +0 -1
- package/dist/lib/mirror-writer-db.js +0 -51
- package/dist/lib/mirror-writer-db.js.map +0 -1
- package/dist/lib/mirror-writer.d.ts +0 -35
- package/dist/lib/mirror-writer.d.ts.map +0 -1
- package/dist/lib/mirror-writer.js +0 -27
- package/dist/lib/mirror-writer.js.map +0 -1
- package/dist/lib/mirror-writer.test.d.ts +0 -2
- package/dist/lib/mirror-writer.test.d.ts.map +0 -1
- package/dist/lib/mirror-writer.test.js +0 -47
- package/dist/lib/mirror-writer.test.js.map +0 -1
- package/dist/lib/output.d.ts +0 -4
- package/dist/lib/output.d.ts.map +0 -1
- package/dist/lib/output.test.d.ts +0 -2
- package/dist/lib/output.test.d.ts.map +0 -1
- package/dist/lib/output.test.js +0 -71
- package/dist/lib/output.test.js.map +0 -1
- package/dist/lib/permanent-job-error.d.ts +0 -17
- package/dist/lib/permanent-job-error.d.ts.map +0 -1
- package/dist/lib/permanent-job-error.test.d.ts +0 -2
- package/dist/lib/permanent-job-error.test.d.ts.map +0 -1
- package/dist/lib/permanent-job-error.test.js +0 -29
- package/dist/lib/permanent-job-error.test.js.map +0 -1
- package/dist/lib/provider-aggregator.d.ts +0 -24
- package/dist/lib/provider-aggregator.d.ts.map +0 -1
- package/dist/lib/provider-aggregator.test.d.ts +0 -2
- package/dist/lib/provider-aggregator.test.d.ts.map +0 -1
- package/dist/lib/provider-aggregator.test.js +0 -103
- package/dist/lib/provider-aggregator.test.js.map +0 -1
- package/dist/lib/skills-loader.d.ts +0 -6
- package/dist/lib/skills-loader.d.ts.map +0 -1
- package/dist/lib/types.d.ts +0 -48
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/version-check.d.ts +0 -11
- package/dist/lib/version-check.d.ts.map +0 -1
- package/dist/test-helpers.d.ts +0 -58
- package/dist/test-helpers.d.ts.map +0 -1
- package/dist/test-helpers.js +0 -58
- package/dist/test-helpers.js.map +0 -1
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { runLlmPrompt } from '../llm-client.js';
|
|
2
|
-
export interface ProcessSessionGoalPayload {
|
|
3
|
-
sessionId: string;
|
|
4
|
-
milestone: 5 | 20 | 50;
|
|
5
|
-
}
|
|
6
|
-
export interface ProcessSessionGoalResult {
|
|
7
|
-
skipped?: 'not_found' | 'stale' | 'recent' | 'no_content' | 'llm_empty';
|
|
8
|
-
goalSummary?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface ProcessSessionGoalDeps {
|
|
11
|
-
db?: any;
|
|
12
|
-
llm?: typeof runLlmPrompt;
|
|
13
|
-
now?: () => number;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Fire-and-forget background job triggered at event milestones (5/20/50).
|
|
17
|
-
* Generates a short "what is the user trying to do" summary and writes it
|
|
18
|
-
* to `sessions.analysis.goalSummary` + `goalSummaryAt`, preserving any
|
|
19
|
-
* existing analysis keys.
|
|
20
|
-
*
|
|
21
|
-
* Guards:
|
|
22
|
-
* - stale: skip if no activity in last 30 min (session is dead, don't waste an LLM call)
|
|
23
|
-
* - recent: skip if we already generated a summary in the last 5 min (dedup milestone burst)
|
|
24
|
-
*
|
|
25
|
-
* No mirror table — this is fire-and-forget, similar to crons. Errors
|
|
26
|
-
* propagate so Graphile retries.
|
|
27
|
-
*/
|
|
28
|
-
export declare function processSessionGoal(payload: ProcessSessionGoalPayload, deps?: ProcessSessionGoalDeps): Promise<ProcessSessionGoalResult>;
|
|
29
|
-
//# sourceMappingURL=process-session-goal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-session-goal.d.ts","sourceRoot":"","sources":["../../../src/lib/handlers/process-session-goal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUhD,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,GAAG,CAAC,EAAE,OAAO,YAAY,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,EAClC,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAgEnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-session-goal.test.d.ts","sourceRoot":"","sources":["../../../src/lib/handlers/process-session-goal.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
-
import { processSessionGoal } from './process-session-goal.js';
|
|
3
|
-
/**
|
|
4
|
-
* Fake db builder. Implements the chained methods we use:
|
|
5
|
-
* db.select().from(t).where(w).limit(n) → returns rows[0]
|
|
6
|
-
* db.select().from(t).where(w).orderBy(o).limit(n) → returns rows[1]
|
|
7
|
-
* db.execute(sql) → returns executeResult
|
|
8
|
-
* db.update(t).set(values).where(w) → records updateCall
|
|
9
|
-
*/
|
|
10
|
-
function makeDb(opts) {
|
|
11
|
-
const updateCalls = [];
|
|
12
|
-
// We need to differentiate the two select() calls (session lookup vs events).
|
|
13
|
-
// Easiest is a counter.
|
|
14
|
-
let selectCallIndex = 0;
|
|
15
|
-
const db = {
|
|
16
|
-
select() {
|
|
17
|
-
const idx = selectCallIndex++;
|
|
18
|
-
const builder = {
|
|
19
|
-
from() {
|
|
20
|
-
return builder;
|
|
21
|
-
},
|
|
22
|
-
where() {
|
|
23
|
-
return builder;
|
|
24
|
-
},
|
|
25
|
-
orderBy() {
|
|
26
|
-
return builder;
|
|
27
|
-
},
|
|
28
|
-
limit() {
|
|
29
|
-
if (idx === 0) {
|
|
30
|
-
return Promise.resolve(opts.sessionRow ? [opts.sessionRow] : []);
|
|
31
|
-
}
|
|
32
|
-
return Promise.resolve(opts.eventRows ?? []);
|
|
33
|
-
},
|
|
34
|
-
// If a caller awaits without .limit() (events query), allow that too.
|
|
35
|
-
then(resolve, reject) {
|
|
36
|
-
if (idx === 0) {
|
|
37
|
-
return Promise.resolve(opts.sessionRow ? [opts.sessionRow] : []).then(resolve, reject);
|
|
38
|
-
}
|
|
39
|
-
return Promise.resolve(opts.eventRows ?? []).then(resolve, reject);
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
return builder;
|
|
43
|
-
},
|
|
44
|
-
execute() {
|
|
45
|
-
return Promise.resolve(opts.executeResult ?? [{ last_at: null }]);
|
|
46
|
-
},
|
|
47
|
-
update() {
|
|
48
|
-
const updateBuilder = {
|
|
49
|
-
set(values) {
|
|
50
|
-
updateCalls.push({ values });
|
|
51
|
-
return updateBuilder;
|
|
52
|
-
},
|
|
53
|
-
where() {
|
|
54
|
-
return Promise.resolve(undefined);
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
return updateBuilder;
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
return { db, updateCalls };
|
|
61
|
-
}
|
|
62
|
-
describe('processSessionGoal', () => {
|
|
63
|
-
const SID = '00000000-0000-0000-0000-000000000001';
|
|
64
|
-
const NOW = new Date('2026-06-02T12:00:00Z').getTime();
|
|
65
|
-
it('skips when last activity is stale (>30min ago) and does NOT call the LLM', async () => {
|
|
66
|
-
const staleAt = new Date(NOW - 31 * 60 * 1000).toISOString();
|
|
67
|
-
const { db, updateCalls } = makeDb({
|
|
68
|
-
sessionRow: {
|
|
69
|
-
id: SID,
|
|
70
|
-
startedAt: new Date(NOW - 60 * 60 * 1000),
|
|
71
|
-
analysis: null,
|
|
72
|
-
},
|
|
73
|
-
executeResult: [{ last_at: staleAt }],
|
|
74
|
-
});
|
|
75
|
-
const llm = vi.fn();
|
|
76
|
-
const result = await processSessionGoal({ sessionId: SID, milestone: 5 }, { db, llm: llm, now: () => NOW });
|
|
77
|
-
expect(result).toEqual({ skipped: 'stale' });
|
|
78
|
-
expect(llm).not.toHaveBeenCalled();
|
|
79
|
-
expect(updateCalls).toHaveLength(0);
|
|
80
|
-
});
|
|
81
|
-
it('skips when goalSummaryAt is within the last 5 min and does NOT call the LLM', async () => {
|
|
82
|
-
const recentlyGoaledAt = new Date(NOW - 60 * 1000).toISOString();
|
|
83
|
-
const lastActivityAt = new Date(NOW - 60 * 1000).toISOString();
|
|
84
|
-
const { db, updateCalls } = makeDb({
|
|
85
|
-
sessionRow: {
|
|
86
|
-
id: SID,
|
|
87
|
-
startedAt: new Date(NOW - 10 * 60 * 1000),
|
|
88
|
-
analysis: { goalSummaryAt: recentlyGoaledAt, goalSummary: 'old summary' },
|
|
89
|
-
},
|
|
90
|
-
executeResult: [{ last_at: lastActivityAt }],
|
|
91
|
-
});
|
|
92
|
-
const llm = vi.fn();
|
|
93
|
-
const result = await processSessionGoal({ sessionId: SID, milestone: 5 }, { db, llm: llm, now: () => NOW });
|
|
94
|
-
expect(result).toEqual({ skipped: 'recent' });
|
|
95
|
-
expect(llm).not.toHaveBeenCalled();
|
|
96
|
-
expect(updateCalls).toHaveLength(0);
|
|
97
|
-
});
|
|
98
|
-
it('happy path: calls LLM, writes merged analysis preserving existing keys', async () => {
|
|
99
|
-
const lastActivityAt = new Date(NOW - 60 * 1000).toISOString();
|
|
100
|
-
const existingAnalysis = {
|
|
101
|
-
outcome: 'success',
|
|
102
|
-
friction: 'none',
|
|
103
|
-
previousField: 'keep-me',
|
|
104
|
-
};
|
|
105
|
-
const { db, updateCalls } = makeDb({
|
|
106
|
-
sessionRow: {
|
|
107
|
-
id: SID,
|
|
108
|
-
startedAt: new Date(NOW - 10 * 60 * 1000),
|
|
109
|
-
analysis: existingAnalysis,
|
|
110
|
-
},
|
|
111
|
-
eventRows: [
|
|
112
|
-
{ eventType: 'user_message', content: 'help me build X', timestamp: new Date() },
|
|
113
|
-
{ eventType: 'assistant_response', content: 'ok', timestamp: new Date() },
|
|
114
|
-
{ eventType: 'user_message', content: 'more detail', timestamp: new Date() },
|
|
115
|
-
{ eventType: 'assistant_response', content: 'sure', timestamp: new Date() },
|
|
116
|
-
],
|
|
117
|
-
executeResult: [{ last_at: lastActivityAt }],
|
|
118
|
-
});
|
|
119
|
-
const llm = vi.fn().mockResolvedValue({ goalSummary: 'Build the X feature.' });
|
|
120
|
-
const result = await processSessionGoal({ sessionId: SID, milestone: 5 }, { db, llm: llm, now: () => NOW });
|
|
121
|
-
expect(llm).toHaveBeenCalledTimes(1);
|
|
122
|
-
expect(result).toEqual({ goalSummary: 'Build the X feature.' });
|
|
123
|
-
expect(updateCalls).toHaveLength(1);
|
|
124
|
-
const writtenAnalysis = updateCalls[0].values.analysis;
|
|
125
|
-
expect(writtenAnalysis.outcome).toBe('success');
|
|
126
|
-
expect(writtenAnalysis.friction).toBe('none');
|
|
127
|
-
expect(writtenAnalysis.previousField).toBe('keep-me');
|
|
128
|
-
expect(writtenAnalysis.goalSummary).toBe('Build the X feature.');
|
|
129
|
-
expect(typeof writtenAnalysis.goalSummaryAt).toBe('string');
|
|
130
|
-
// ISO timestamp format
|
|
131
|
-
expect(writtenAnalysis.goalSummaryAt).toMatch(/^\d{4}-\d{2}-\d{2}T/);
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
//# sourceMappingURL=process-session-goal.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-session-goal.test.js","sourceRoot":"","sources":["../../../src/lib/handlers/process-session-goal.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
export type DetectedTool = 'claude_code' | 'cursor' | 'copilot_agent';
|
|
2
|
-
/**
|
|
3
|
-
* Detect which AI coding tools are installed in the project by checking
|
|
4
|
-
* for their config directories.
|
|
5
|
-
*/
|
|
6
|
-
export declare function detectInstalledTools(projectPath: string): DetectedTool[];
|
|
7
|
-
/**
|
|
8
|
-
* Generate Cursor hooks config object.
|
|
9
|
-
*
|
|
10
|
-
* Cursor uses event names like beforeSubmitPrompt, afterFileEdit, etc.
|
|
11
|
-
* Each event maps to an array of hook objects with a `command` field.
|
|
12
|
-
*/
|
|
13
|
-
export declare function generateCursorHooksConfig(): object;
|
|
14
|
-
/**
|
|
15
|
-
* Generate Copilot Agent hooks config object.
|
|
16
|
-
*
|
|
17
|
-
* Copilot uses event names like sessionStart, userPromptSubmitted, etc.
|
|
18
|
-
* Each event maps to an array of hook objects with `type` and `bash` fields.
|
|
19
|
-
*/
|
|
20
|
-
export declare function generateCopilotHooksConfig(): object;
|
|
21
|
-
/**
|
|
22
|
-
* Write Cursor hooks config to `<projectPath>/.cursor/hooks.json`.
|
|
23
|
-
* Merges with existing config — appends rulemetric hooks without duplicating.
|
|
24
|
-
* Returns the config file path, or null if `.cursor/` doesn't exist.
|
|
25
|
-
*/
|
|
26
|
-
export declare function writeCursorHooks(projectPath: string): string | null;
|
|
27
|
-
/**
|
|
28
|
-
* Write Cursor hooks config to user-level `~/.cursor/hooks.json` so capture
|
|
29
|
-
* works for every Cursor conversation without per-project setup.
|
|
30
|
-
*
|
|
31
|
-
* Returns the config file path, or null if `~/.cursor/` doesn't exist
|
|
32
|
-
* (i.e., Cursor has never been launched on this machine).
|
|
33
|
-
*/
|
|
34
|
-
export declare function writeCursorUserHooks(): string | null;
|
|
35
|
-
/**
|
|
36
|
-
* Write Copilot Agent hooks config to `.github/hooks/rulemetric.json`.
|
|
37
|
-
* Creates the hooks directory if needed.
|
|
38
|
-
* Returns the config file path, or null if `.github/` doesn't exist.
|
|
39
|
-
*/
|
|
40
|
-
export declare function writeCopilotHooks(projectPath: string): string | null;
|
|
41
|
-
/**
|
|
42
|
-
* Remove rulemetric hooks from `<projectPath>/.cursor/hooks.json`.
|
|
43
|
-
*/
|
|
44
|
-
export declare function removeCursorHooks(projectPath: string): boolean;
|
|
45
|
-
/**
|
|
46
|
-
* Remove rulemetric hooks from user-level `~/.cursor/hooks.json`.
|
|
47
|
-
*/
|
|
48
|
-
export declare function removeCursorUserHooks(): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Write Cursor proxy config to `.cursor/settings.json`.
|
|
51
|
-
* Sets `http.proxy` and `http.proxyStrictSSL` while preserving existing settings.
|
|
52
|
-
* Returns true if `.cursor/` exists and config was written, false otherwise.
|
|
53
|
-
*/
|
|
54
|
-
export declare function writeCursorProxyConfig(projectPath: string, gatewayPort: number, certPath: string): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Write VS Code proxy config to `.vscode/settings.json` for Copilot capture.
|
|
57
|
-
* Sets `http.proxy`, `http.proxyStrictSSL`, and Copilot-specific override
|
|
58
|
-
* while preserving existing settings.
|
|
59
|
-
* Returns true if config was written, false if `.vscode/` doesn't exist.
|
|
60
|
-
*/
|
|
61
|
-
export declare function writeVSCodeProxyConfig(projectPath: string, gatewayPort: number, certPath: string): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Remove VS Code proxy config from `.vscode/settings.json`.
|
|
64
|
-
* Removes `http.proxy`, `http.proxyStrictSSL`, and Copilot proxy override.
|
|
65
|
-
* Returns true if changes were made.
|
|
66
|
-
*/
|
|
67
|
-
export declare function removeVSCodeProxyConfig(projectPath: string): boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Remove Copilot Agent hooks by deleting `.github/hooks/rulemetric.json`.
|
|
70
|
-
* Returns true if the file was removed.
|
|
71
|
-
*/
|
|
72
|
-
export declare function removeCopilotHooks(projectPath: string): boolean;
|
|
73
|
-
/**
|
|
74
|
-
* Set HTTPS_PROXY and NODE_EXTRA_CA_CERTS for all GUI apps on macOS.
|
|
75
|
-
*
|
|
76
|
-
* Two layers:
|
|
77
|
-
* 1. `launchctl setenv` — immediate effect for newly launched apps
|
|
78
|
-
* 2. LaunchAgent plist — persists across reboots
|
|
79
|
-
*
|
|
80
|
-
* This ensures VS Code / Copilot / Cursor route LLM traffic through the
|
|
81
|
-
* gateway even when launched from Dock or Spotlight (not a terminal).
|
|
82
|
-
*
|
|
83
|
-
* References:
|
|
84
|
-
* - anthropics/claude-code#30318 (same pattern for Claude Desktop)
|
|
85
|
-
* - Snyk IDE docs recommend launchctl setenv for macOS
|
|
86
|
-
* - Apple QA1067 (archived) — original env var mechanism removed in 10.10
|
|
87
|
-
*/
|
|
88
|
-
export declare function installMacOSProxyEnv(gatewayPort: number, certPath: string): boolean;
|
|
89
|
-
/**
|
|
90
|
-
* Remove the RuleMetric LaunchAgent and unset env vars.
|
|
91
|
-
*/
|
|
92
|
-
export declare function uninstallMacOSProxyEnv(): boolean;
|
|
93
|
-
/**
|
|
94
|
-
* Set http.proxy in VS Code user settings (not workspace).
|
|
95
|
-
*
|
|
96
|
-
* Workspace-level http.proxy is silently ignored because VS Code restricts
|
|
97
|
-
* it to APPLICATION scope (microsoft/vscode#236932). User-level settings
|
|
98
|
-
* are the only reliable way to configure http.proxy.
|
|
99
|
-
*/
|
|
100
|
-
export declare function writeVSCodeUserProxyConfig(gatewayPort: number): boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Remove RuleMetric proxy config from VS Code user settings.
|
|
103
|
-
*/
|
|
104
|
-
export declare function removeVSCodeUserProxyConfig(): boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Set http.proxy in Cursor user settings (not workspace). Mirrors
|
|
107
|
-
* `writeVSCodeUserProxyConfig` — workspace-level http.proxy is silently
|
|
108
|
-
* ignored due to APPLICATION-scope restriction (Cursor inherits this from
|
|
109
|
-
* VS Code, see microsoft/vscode#236932).
|
|
110
|
-
*
|
|
111
|
-
* Returns true if config was written, false if Cursor isn't installed
|
|
112
|
-
* (User dir absent) or the user already has a non-localhost proxy set.
|
|
113
|
-
*/
|
|
114
|
-
export declare function writeCursorUserProxyConfig(gatewayPort: number): boolean;
|
|
115
|
-
/**
|
|
116
|
-
* Remove RuleMetric proxy config from Cursor user settings.
|
|
117
|
-
*/
|
|
118
|
-
export declare function removeCursorUserProxyConfig(): boolean;
|
|
119
|
-
//# sourceMappingURL=hooks-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.d.ts","sourceRoot":"","sources":["../../src/lib/hooks-config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,eAAe,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAYxE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAqDlD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAkBnD;AAsDD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcpE;AAiDD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAc1G;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAoB1G;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CA6BpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQ/D;AAYD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA6CnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAmBhD;AAgBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAmBvE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAcrD;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAkBvE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAcrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.test.d.ts","sourceRoot":"","sources":["../../src/lib/hooks-config.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, rmSync, existsSync } from 'node:fs';
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { tmpdir } from 'node:os';
|
|
5
|
-
import { detectInstalledTools, generateCursorHooksConfig, generateCopilotHooksConfig, writeCursorHooks, writeCopilotHooks, writeCursorProxyConfig, removeCursorHooks, removeCopilotHooks, } from './hooks-config.js';
|
|
6
|
-
let tempDir;
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
tempDir = mkdtempSync(join(tmpdir(), 'hooks-config-test-'));
|
|
9
|
-
});
|
|
10
|
-
afterEach(() => {
|
|
11
|
-
rmSync(tempDir, { recursive: true, force: true });
|
|
12
|
-
});
|
|
13
|
-
describe('detectInstalledTools', () => {
|
|
14
|
-
it('always includes claude_code', () => {
|
|
15
|
-
const tools = detectInstalledTools(tempDir);
|
|
16
|
-
expect(tools).toContain('claude_code');
|
|
17
|
-
});
|
|
18
|
-
it('detects cursor when .cursor/ exists', () => {
|
|
19
|
-
mkdirSync(join(tempDir, '.cursor'));
|
|
20
|
-
const tools = detectInstalledTools(tempDir);
|
|
21
|
-
expect(tools).toContain('cursor');
|
|
22
|
-
});
|
|
23
|
-
it('detects copilot_agent when .github/ exists', () => {
|
|
24
|
-
mkdirSync(join(tempDir, '.github'));
|
|
25
|
-
const tools = detectInstalledTools(tempDir);
|
|
26
|
-
expect(tools).toContain('copilot_agent');
|
|
27
|
-
});
|
|
28
|
-
it('does not detect cursor or copilot when dirs are absent', () => {
|
|
29
|
-
const tools = detectInstalledTools(tempDir);
|
|
30
|
-
expect(tools).toEqual(['claude_code']);
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
describe('generateCursorHooksConfig', () => {
|
|
34
|
-
it('returns correct structure with version and hooks', () => {
|
|
35
|
-
const config = generateCursorHooksConfig();
|
|
36
|
-
expect(config.version).toBe(1);
|
|
37
|
-
expect(config.hooks).toBeDefined();
|
|
38
|
-
});
|
|
39
|
-
it('all hook commands contain "rulemetric hooks run"', () => {
|
|
40
|
-
const config = generateCursorHooksConfig();
|
|
41
|
-
for (const [, hooks] of Object.entries(config.hooks)) {
|
|
42
|
-
for (const hook of hooks) {
|
|
43
|
-
expect(hook.command).toContain('rulemetric hooks run');
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
it('includes all expected event names', () => {
|
|
48
|
-
const config = generateCursorHooksConfig();
|
|
49
|
-
expect(Object.keys(config.hooks)).toEqual(expect.arrayContaining([
|
|
50
|
-
'beforeSubmitPrompt',
|
|
51
|
-
'afterFileEdit',
|
|
52
|
-
'beforeShellExecution',
|
|
53
|
-
'beforeMCPExecution',
|
|
54
|
-
'stop',
|
|
55
|
-
]));
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
describe('generateCopilotHooksConfig', () => {
|
|
59
|
-
it('returns correct structure with version and hooks', () => {
|
|
60
|
-
const config = generateCopilotHooksConfig();
|
|
61
|
-
expect(config.version).toBe(1);
|
|
62
|
-
expect(config.hooks).toBeDefined();
|
|
63
|
-
});
|
|
64
|
-
it('all hook bash commands contain "rulemetric hooks run"', () => {
|
|
65
|
-
const config = generateCopilotHooksConfig();
|
|
66
|
-
for (const [, hooks] of Object.entries(config.hooks)) {
|
|
67
|
-
for (const hook of hooks) {
|
|
68
|
-
expect(hook.bash).toContain('rulemetric hooks run');
|
|
69
|
-
expect(hook.type).toBe('command');
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
it('includes all expected event names', () => {
|
|
74
|
-
const config = generateCopilotHooksConfig();
|
|
75
|
-
expect(Object.keys(config.hooks)).toEqual(expect.arrayContaining([
|
|
76
|
-
'sessionStart',
|
|
77
|
-
'userPromptSubmitted',
|
|
78
|
-
'postToolUse',
|
|
79
|
-
'sessionEnd',
|
|
80
|
-
]));
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
describe('writeCursorHooks', () => {
|
|
84
|
-
it('returns null when .cursor/ does not exist', () => {
|
|
85
|
-
expect(writeCursorHooks(tempDir)).toBeNull();
|
|
86
|
-
});
|
|
87
|
-
it('writes config and returns file path', () => {
|
|
88
|
-
mkdirSync(join(tempDir, '.cursor'));
|
|
89
|
-
const result = writeCursorHooks(tempDir);
|
|
90
|
-
expect(result).toBe(join(tempDir, '.cursor', 'hooks.json'));
|
|
91
|
-
expect(existsSync(result)).toBe(true);
|
|
92
|
-
const written = JSON.parse(readFileSync(result, 'utf-8'));
|
|
93
|
-
expect(written.version).toBe(1);
|
|
94
|
-
expect(written.hooks.beforeSubmitPrompt).toBeDefined();
|
|
95
|
-
});
|
|
96
|
-
it('merges with existing config without duplicating', () => {
|
|
97
|
-
const cursorDir = join(tempDir, '.cursor');
|
|
98
|
-
mkdirSync(cursorDir);
|
|
99
|
-
// Write existing config with a custom hook
|
|
100
|
-
const existing = {
|
|
101
|
-
version: 1,
|
|
102
|
-
hooks: {
|
|
103
|
-
beforeSubmitPrompt: [{ command: 'my-custom-tool' }],
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
writeFileSync(join(cursorDir, 'hooks.json'), JSON.stringify(existing));
|
|
107
|
-
// First install
|
|
108
|
-
writeCursorHooks(tempDir);
|
|
109
|
-
// Second install (should not duplicate)
|
|
110
|
-
writeCursorHooks(tempDir);
|
|
111
|
-
const config = JSON.parse(readFileSync(join(cursorDir, 'hooks.json'), 'utf-8'));
|
|
112
|
-
const promptHooks = config.hooks.beforeSubmitPrompt;
|
|
113
|
-
// Should have the custom hook + one rulemetric hook (not two)
|
|
114
|
-
const rulemetricHooks = promptHooks.filter((h) => h.command.includes('rulemetric'));
|
|
115
|
-
expect(rulemetricHooks).toHaveLength(1);
|
|
116
|
-
expect(promptHooks).toHaveLength(2); // custom + rulemetric
|
|
117
|
-
});
|
|
118
|
-
it('preserves existing hooks from other tools', () => {
|
|
119
|
-
const cursorDir = join(tempDir, '.cursor');
|
|
120
|
-
mkdirSync(cursorDir);
|
|
121
|
-
const existing = {
|
|
122
|
-
version: 1,
|
|
123
|
-
hooks: {
|
|
124
|
-
beforeSubmitPrompt: [{ command: 'other-tool run lint' }],
|
|
125
|
-
customEvent: [{ command: 'something-else' }],
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
writeFileSync(join(cursorDir, 'hooks.json'), JSON.stringify(existing));
|
|
129
|
-
writeCursorHooks(tempDir);
|
|
130
|
-
const config = JSON.parse(readFileSync(join(cursorDir, 'hooks.json'), 'utf-8'));
|
|
131
|
-
expect(config.hooks.customEvent).toEqual([{ command: 'something-else' }]);
|
|
132
|
-
expect(config.hooks.beforeSubmitPrompt).toHaveLength(2);
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
describe('writeCopilotHooks', () => {
|
|
136
|
-
it('returns null when .github/ does not exist', () => {
|
|
137
|
-
expect(writeCopilotHooks(tempDir)).toBeNull();
|
|
138
|
-
});
|
|
139
|
-
it('writes config and creates hooks dir', () => {
|
|
140
|
-
mkdirSync(join(tempDir, '.github'));
|
|
141
|
-
const result = writeCopilotHooks(tempDir);
|
|
142
|
-
expect(result).toBe(join(tempDir, '.github', 'hooks', 'rulemetric.json'));
|
|
143
|
-
expect(existsSync(result)).toBe(true);
|
|
144
|
-
const written = JSON.parse(readFileSync(result, 'utf-8'));
|
|
145
|
-
expect(written.version).toBe(1);
|
|
146
|
-
expect(written.hooks.sessionStart).toBeDefined();
|
|
147
|
-
});
|
|
148
|
-
it('creates .github/hooks/ directory if missing', () => {
|
|
149
|
-
mkdirSync(join(tempDir, '.github'));
|
|
150
|
-
const hooksDir = join(tempDir, '.github', 'hooks');
|
|
151
|
-
expect(existsSync(hooksDir)).toBe(false);
|
|
152
|
-
writeCopilotHooks(tempDir);
|
|
153
|
-
expect(existsSync(hooksDir)).toBe(true);
|
|
154
|
-
});
|
|
155
|
-
});
|
|
156
|
-
describe('writeCursorProxyConfig', () => {
|
|
157
|
-
it('writes http.proxy to .cursor/settings.json', () => {
|
|
158
|
-
mkdirSync(join(tempDir, '.cursor'));
|
|
159
|
-
const result = writeCursorProxyConfig(tempDir, 8787, '/nonexistent/cert.pem');
|
|
160
|
-
expect(result).toBe(true);
|
|
161
|
-
const settings = JSON.parse(readFileSync(join(tempDir, '.cursor', 'settings.json'), 'utf-8'));
|
|
162
|
-
expect(settings['http.proxy']).toBe('http://localhost:8787');
|
|
163
|
-
expect(settings['http.proxyStrictSSL']).toBe(false); // cert doesn't exist
|
|
164
|
-
});
|
|
165
|
-
it('preserves existing Cursor settings', () => {
|
|
166
|
-
mkdirSync(join(tempDir, '.cursor'));
|
|
167
|
-
writeFileSync(join(tempDir, '.cursor', 'settings.json'), JSON.stringify({ 'editor.fontSize': 14 }));
|
|
168
|
-
writeCursorProxyConfig(tempDir, 8787, '/nonexistent/cert.pem');
|
|
169
|
-
const settings = JSON.parse(readFileSync(join(tempDir, '.cursor', 'settings.json'), 'utf-8'));
|
|
170
|
-
expect(settings['editor.fontSize']).toBe(14);
|
|
171
|
-
expect(settings['http.proxy']).toBe('http://localhost:8787');
|
|
172
|
-
});
|
|
173
|
-
it('returns false when .cursor/ does not exist', () => {
|
|
174
|
-
expect(writeCursorProxyConfig(tempDir, 8787, '/cert.pem')).toBe(false);
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
describe('removeCursorHooks', () => {
|
|
178
|
-
it('returns false when no .cursor/hooks.json exists', () => {
|
|
179
|
-
expect(removeCursorHooks(tempDir)).toBe(false);
|
|
180
|
-
});
|
|
181
|
-
it('removes rulemetric entries and preserves others', () => {
|
|
182
|
-
const cursorDir = join(tempDir, '.cursor');
|
|
183
|
-
mkdirSync(cursorDir);
|
|
184
|
-
const config = {
|
|
185
|
-
version: 1,
|
|
186
|
-
hooks: {
|
|
187
|
-
beforeSubmitPrompt: [
|
|
188
|
-
{ command: 'other-tool lint' },
|
|
189
|
-
{ command: 'rulemetric hooks run user-prompt' },
|
|
190
|
-
],
|
|
191
|
-
stop: [{ command: 'rulemetric hooks run session-end' }],
|
|
192
|
-
},
|
|
193
|
-
};
|
|
194
|
-
writeFileSync(join(cursorDir, 'hooks.json'), JSON.stringify(config));
|
|
195
|
-
const result = removeCursorHooks(tempDir);
|
|
196
|
-
expect(result).toBe(true);
|
|
197
|
-
const updated = JSON.parse(readFileSync(join(cursorDir, 'hooks.json'), 'utf-8'));
|
|
198
|
-
// beforeSubmitPrompt should only have the other-tool entry
|
|
199
|
-
expect(updated.hooks.beforeSubmitPrompt).toEqual([{ command: 'other-tool lint' }]);
|
|
200
|
-
// stop should be removed entirely (was only rulemetric)
|
|
201
|
-
expect(updated.hooks.stop).toBeUndefined();
|
|
202
|
-
});
|
|
203
|
-
it('returns false when no rulemetric hooks are present', () => {
|
|
204
|
-
const cursorDir = join(tempDir, '.cursor');
|
|
205
|
-
mkdirSync(cursorDir);
|
|
206
|
-
const config = {
|
|
207
|
-
version: 1,
|
|
208
|
-
hooks: {
|
|
209
|
-
beforeSubmitPrompt: [{ command: 'other-tool lint' }],
|
|
210
|
-
},
|
|
211
|
-
};
|
|
212
|
-
writeFileSync(join(cursorDir, 'hooks.json'), JSON.stringify(config));
|
|
213
|
-
expect(removeCursorHooks(tempDir)).toBe(false);
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
describe('removeCopilotHooks', () => {
|
|
217
|
-
it('returns false when rulemetric.json does not exist', () => {
|
|
218
|
-
expect(removeCopilotHooks(tempDir)).toBe(false);
|
|
219
|
-
});
|
|
220
|
-
it('deletes rulemetric.json and returns true', () => {
|
|
221
|
-
const hooksDir = join(tempDir, '.github', 'hooks');
|
|
222
|
-
mkdirSync(hooksDir, { recursive: true });
|
|
223
|
-
const configPath = join(hooksDir, 'rulemetric.json');
|
|
224
|
-
writeFileSync(configPath, '{}');
|
|
225
|
-
expect(existsSync(configPath)).toBe(true);
|
|
226
|
-
const result = removeCopilotHooks(tempDir);
|
|
227
|
-
expect(result).toBe(true);
|
|
228
|
-
expect(existsSync(configPath)).toBe(false);
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
//# sourceMappingURL=hooks-config.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-config.test.js","sourceRoot":"","sources":["../../src/lib/hooks-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recommendation prompts matching Claude Code's /insights structure.
|
|
3
|
-
* Each prompt is sent to `claude -p` with the aggregated stats data.
|
|
4
|
-
*/
|
|
5
|
-
export interface PromptSpec {
|
|
6
|
-
name: string;
|
|
7
|
-
prompt: string;
|
|
8
|
-
maxTokens: number;
|
|
9
|
-
}
|
|
10
|
-
export declare const RECOMMENDATION_PROMPTS: PromptSpec[];
|
|
11
|
-
export declare const AT_A_GLANCE_PROMPT = "You're writing an \"At a Glance\" summary for a Claude Code usage insights report.\nUse this 4-part structure:\n1. **What's working** - What is the user's unique style and what impactful things have they done? Don't be fluffy.\n2. **What's hindering you** - Split into (a) Claude's fault and (b) user-side friction. Be honest but constructive.\n3. **Quick wins to try** - Specific Claude Code features they could try, or a compelling workflow technique.\n4. **Ambitious workflows for better models** - As models improve, what workflows should they prepare for?\nKeep each section to 2-3 sentences. Use a coaching tone.\nRESPOND WITH ONLY A VALID JSON OBJECT:\n{\n \"whats_working\": \"(refer to instructions above)\",\n \"whats_hindering\": \"(refer to instructions above)\",\n \"quick_wins\": \"(refer to instructions above)\",\n \"ambitious_workflows\": \"(refer to instructions above)\"\n}";
|
|
12
|
-
export declare const FACET_GENERATION_PROMPT = "Analyze this coding session and produce a structured analysis.\nThe session is from a non-Claude-Code tool, so analyze the conversation and tool usage patterns.\n\nRESPOND WITH ONLY A VALID JSON OBJECT:\n{\n \"underlying_goal\": \"1-2 sentence description of what the user was trying to accomplish\",\n \"goal_categories\": {\"category\": count},\n \"outcome\": \"achieved|mostly_achieved|partially_achieved|not_achieved|abandoned\",\n \"session_type\": \"quick_task|iterative_refinement|exploration|debugging|greenfield\",\n \"friction_counts\": {\"wrong_approach\": 0, \"tool_failure\": 0, \"excessive_changes\": 0, \"misunderstanding\": 0},\n \"friction_detail\": \"Brief description of any friction encountered, or empty string\",\n \"primary_success\": \"Brief description of main achievement, or empty string\",\n \"brief_summary\": \"2-3 sentence summary of the session\"\n}\n\nGoal categories to use: debugging, feature_development, refactoring, testing, documentation, investigation, exploration, code_review, deployment, configuration, end_to_end_testing, logging_documentation, ui_testing.\n\nOutcome guide:\n- achieved: Task completed successfully\n- mostly_achieved: Main goal done but minor items remain\n- partially_achieved: Some progress but significant work left\n- not_achieved: Attempted but failed\n- abandoned: User gave up or switched tasks";
|
|
13
|
-
//# sourceMappingURL=insights-prompts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"insights-prompts.d.ts","sourceRoot":"","sources":["../../src/lib/insights-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,sBAAsB,EAAE,UAAU,EAsG9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,q4BAa7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,g2CAsBQ,CAAC"}
|
package/dist/lib/llm-client.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export declare function getToolCli(tool: string): {
|
|
2
|
-
bin: string;
|
|
3
|
-
args: string[];
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* Run a prompt through a specific tool's CLI.
|
|
7
|
-
* Falls back to claude -p for tools without their own CLI.
|
|
8
|
-
*/
|
|
9
|
-
export declare function runToolPrompt(tool: string, prompt: string, data: string): Record<string, unknown> | null;
|
|
10
|
-
export type LlmBackend = 'claude-cli' | 'anthropic-sdk' | 'none';
|
|
11
|
-
/**
|
|
12
|
-
* Detect which LLM backend is available.
|
|
13
|
-
* Priority: claude CLI binary > ANTHROPIC_API_KEY env var > none.
|
|
14
|
-
* Result is cached after first call.
|
|
15
|
-
*/
|
|
16
|
-
export declare function detectLlmBackend(): LlmBackend;
|
|
17
|
-
/**
|
|
18
|
-
* Reset the cached backend detection (useful for testing).
|
|
19
|
-
*/
|
|
20
|
-
export declare function resetLlmBackendCache(): void;
|
|
21
|
-
/**
|
|
22
|
-
* Run a prompt through the detected LLM backend and parse JSON from the response.
|
|
23
|
-
* Returns the first JSON object found in the response, or null on failure.
|
|
24
|
-
*/
|
|
25
|
-
export declare function runLlmPrompt(prompt: string, data: string, maxTokens: number): Promise<Record<string, unknown> | null>;
|
|
26
|
-
//# sourceMappingURL=llm-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/lib/llm-client.ts"],"names":[],"mappings":"AAgBA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAExE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAgChC;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,eAAe,GAAG,MAAM,CAAC;AAIjE;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CA4B7C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAYzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.test.d.ts","sourceRoot":"","sources":["../../src/lib/llm-client.test.ts"],"names":[],"mappings":""}
|