@rulemetric/cli 0.2.1 → 0.2.2
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 +27 -11
- 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 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/dashboard/Dashboard.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { render, Box, Text, useInput, useApp } from 'ink';\nimport { ORANGE, DIM, PERIODS, PERIOD_LABELS } from './types.js';\nimport type { Period, LocalStats, ApiInsights } from './types.js';\nimport { loadLocalStats, loadApiInsights, loadLinkedInstructions } from './data.js';\nimport { Overview } from './panels/overview.js';\nimport { OutcomesPanel } from './panels/outcomes.js';\nimport { FrictionPanel } from './panels/friction.js';\nimport { InstructionsPanel } from './panels/instructions.js';\nimport { InsightsPanel } from './panels/insights.js';\nimport { LauncherOverlay } from './launcher/LauncherOverlay.js';\nimport { readActiveOrg } from '../lib/active-org.js';\n\nconst MIN_WIDE = 90;\n\ntype Layout = { dashWidth: number; wide: boolean; halfWidth: number; barWidth: number };\n\nfunction getLayout(): Layout {\n const termWidth = process.stdout.columns || 80;\n const dashWidth = Math.min(160, termWidth);\n const wide = dashWidth >= MIN_WIDE;\n const halfWidth = wide ? Math.floor(dashWidth / 2) : dashWidth;\n const barWidth = Math.max(6, Math.min(10, halfWidth - 34));\n return { dashWidth, wide, halfWidth, barWidth };\n}\n\nfunction PeriodTabs({ active, providerName }: { active: Period; providerName?: string }) {\n return (\n <Box justifyContent=\"space-between\" paddingX={1}>\n <Box gap={1}>\n {PERIODS.map(p => (\n <Text key={p} bold={active === p} color={active === p ? ORANGE : DIM}>\n {active === p ? `[ ${PERIOD_LABELS[p]} ]` : ` ${PERIOD_LABELS[p]} `}\n </Text>\n ))}\n </Box>\n {providerName && (\n <Text color={ORANGE} bold>{providerName}</Text>\n )}\n </Box>\n );\n}\n\nfunction StatusBar({ width, insightsFocused = false }: { width: number; insightsFocused?: boolean }) {\n return (\n <Box borderStyle=\"round\" borderColor={DIM} width={width} justifyContent=\"center\" paddingX={1}>\n <Text>\n <Text color={ORANGE} bold>{'<'}</Text><Text color={ORANGE}>{'>'}</Text><Text dimColor> switch </Text>\n <Text color={ORANGE} bold>q</Text><Text dimColor> quit </Text>\n <Text color={ORANGE} bold>s</Text><Text dimColor> {insightsFocused ? 'back' : 'suggestions'} </Text>\n <Text color={ORANGE} bold>1</Text><Text dimColor>-</Text><Text color={ORANGE} bold>5</Text><Text dimColor> period </Text>\n <Text color={ORANGE} bold>r</Text><Text dimColor> refresh </Text>\n <Text color={ORANGE} bold>n</Text><Text dimColor> new session </Text>\n <Text color={ORANGE} bold>l</Text><Text dimColor> launcher</Text>\n </Text>\n </Box>\n );\n}\n\nfunction Row({ wide, width, children }: { wide: boolean; width: number; children: React.ReactNode }) {\n if (wide) return <Box width={width}>{children}</Box>;\n return <>{children}</>;\n}\n\nfunction InteractiveDashboard({ initialLocal, initialApi, initialInstructions, initialPeriod, initialLauncherFocused = false }: {\n initialLocal: LocalStats;\n initialApi: ApiInsights | null;\n initialInstructions: Array<{ name: string; linkedSessions: number }> | null;\n initialPeriod: Period;\n initialLauncherFocused?: boolean;\n}) {\n const { exit } = useApp();\n const [period, setPeriod] = useState<Period>(initialPeriod);\n const [local, setLocal] = useState(initialLocal);\n const [api, setApi] = useState(initialApi);\n const [instructions, setInstructions] = useState(initialInstructions);\n const [loading, setLoading] = useState(false);\n const [insightsFocused, setInsightsFocused] = useState(false);\n const [launcherFocused, setLauncherFocused] = useState(initialLauncherFocused);\n const activeOrgSlug = readActiveOrg()?.orgSlug ?? null;\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const layout = getLayout();\n\n const reload = useCallback(async () => {\n setLoading(true);\n const [newLocal, newApi, newInstructions] = await Promise.all([\n loadLocalStats(),\n loadApiInsights(),\n loadLinkedInstructions(),\n ]);\n setLocal(newLocal);\n setApi(newApi);\n setInstructions(newInstructions);\n setLoading(false);\n }, []);\n\n // Auto-refresh every 30s\n useEffect(() => {\n const id = setInterval(reload, 30_000);\n return () => clearInterval(id);\n }, [reload]);\n\n const switchPeriod = useCallback((np: Period) => {\n if (np === period) return;\n setPeriod(np);\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(reload, 300);\n }, [period, reload]);\n\n useInput((input, key) => {\n if (launcherFocused) return;\n if (input === 'q') {\n if (insightsFocused) { setInsightsFocused(false); return; }\n exit();\n return;\n }\n if (input === 's') { setInsightsFocused(f => !f); return; }\n if (key.escape && insightsFocused) { setInsightsFocused(false); return; }\n if (input === 'l' && !insightsFocused) { setLauncherFocused(true); return; }\n // When insights is focused, let it handle up/down/enter\n if (insightsFocused) return;\n if (input === 'r') { reload(); return; }\n if (input === 'n') {\n import('@rulemetric/session').then(({ getLauncher }) => {\n getLauncher('claude_code').launch({ projectPath: process.cwd(), mode: 'interactive' });\n });\n return;\n }\n const idx = PERIODS.indexOf(period);\n if (key.leftArrow) switchPeriod(PERIODS[(idx - 1 + PERIODS.length) % PERIODS.length]);\n else if (key.rightArrow || key.tab) switchPeriod(PERIODS[(idx + 1) % PERIODS.length]);\n else if (input === '1') switchPeriod('today');\n else if (input === '2') switchPeriod('week');\n else if (input === '3') switchPeriod('30days');\n else if (input === '4') switchPeriod('month');\n else if (input === '5') switchPeriod('all');\n });\n\n const { dashWidth, wide, halfWidth, barWidth } = layout;\n const pw = wide ? halfWidth : dashWidth;\n\n if (loading) {\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <PeriodTabs active={period} />\n <Box borderStyle=\"round\" borderColor={ORANGE} paddingX={1} width={dashWidth}>\n <Text dimColor>Loading {PERIOD_LABELS[period]}...</Text>\n </Box>\n <StatusBar width={dashWidth} />\n </Box>\n );\n }\n\n if (launcherFocused) {\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <LauncherOverlay\n onClose={() => setLauncherFocused(false)}\n activeOrg={activeOrgSlug}\n defaultProjectPath={process.cwd()}\n width={dashWidth}\n />\n </Box>\n );\n }\n\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <PeriodTabs active={period} />\n <Overview local={local} api={api} label={PERIOD_LABELS[period]} width={dashWidth} />\n <Row wide={wide} width={dashWidth}>\n <OutcomesPanel api={api} width={pw} barWidth={barWidth} />\n <FrictionPanel api={api} width={pw} barWidth={barWidth} />\n </Row>\n <InstructionsPanel instructions={instructions} width={dashWidth} barWidth={barWidth} />\n <InsightsPanel api={api} width={dashWidth} focused={insightsFocused} />\n <StatusBar width={dashWidth} insightsFocused={insightsFocused} />\n </Box>\n );\n}\n\nexport async function renderDashboard(\n period: Period = 'week',\n options: { openLauncher?: boolean } = {},\n): Promise<void> {\n // Load data in parallel \u2014 local files + API\n const [local, api, instructions] = await Promise.all([\n loadLocalStats(),\n loadApiInsights(),\n loadLinkedInstructions(),\n ]);\n\n const isTTY = process.stdin.isTTY && process.stdout.isTTY;\n if (isTTY) {\n const { waitUntilExit } = render(\n <InteractiveDashboard\n initialLocal={local}\n initialApi={api}\n initialInstructions={instructions}\n initialPeriod={period}\n initialLauncherFocused={options.openLauncher ?? false}\n />,\n );\n await waitUntilExit();\n } else {\n // Non-interactive: render once and exit\n const layout = getLayout();\n const { unmount } = render(\n <Box flexDirection=\"column\" width={layout.dashWidth}>\n <Overview local={local} api={api} label={PERIOD_LABELS[period]} width={layout.dashWidth} />\n <OutcomesPanel api={api} width={layout.dashWidth} barWidth={layout.barWidth} />\n <FrictionPanel api={api} width={layout.dashWidth} barWidth={layout.barWidth} />\n <InstructionsPanel instructions={instructions} width={layout.dashWidth} barWidth={layout.barWidth} />\n <InsightsPanel api={api} width={layout.dashWidth} />\n </Box>,\n { patchConsole: false },\n );\n unmount();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/dashboard/data.js
CHANGED
|
@@ -1,137 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
loadEnvFile(path.join(process.cwd(), '.env.local'));
|
|
15
|
-
}
|
|
16
|
-
function loadEnvFile(filePath) {
|
|
17
|
-
try {
|
|
18
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
19
|
-
for (const line of content.split('\n')) {
|
|
20
|
-
const trimmed = line.trim();
|
|
21
|
-
if (!trimmed || trimmed.startsWith('#'))
|
|
22
|
-
continue;
|
|
23
|
-
const eqIdx = trimmed.indexOf('=');
|
|
24
|
-
if (eqIdx < 0)
|
|
25
|
-
continue;
|
|
26
|
-
const key = trimmed.slice(0, eqIdx).trim();
|
|
27
|
-
const value = trimmed.slice(eqIdx + 1).trim();
|
|
28
|
-
if (!process.env[key]) {
|
|
29
|
-
process.env[key] = value;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return !!(process.env.RULEMETRIC_API_KEY || process.env.RULEMETRIC_ACCESS_TOKEN);
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// Load on import
|
|
39
|
-
ensureEnv();
|
|
40
|
-
/** Read local JSONL files and compute basic stats. */
|
|
41
|
-
export async function loadLocalStats(providerFilter) {
|
|
42
|
-
const stats = {
|
|
43
|
-
totalSessions: 0,
|
|
44
|
-
totalCalls: 0,
|
|
45
|
-
totalInputTokens: 0,
|
|
46
|
-
totalOutputTokens: 0,
|
|
47
|
-
totalCacheReadTokens: 0,
|
|
48
|
-
totalCacheWriteTokens: 0,
|
|
49
|
-
totalCostUSD: 0,
|
|
50
|
-
providers: {},
|
|
51
|
-
};
|
|
52
|
-
const sources = await discoverAllSessions(providerFilter);
|
|
53
|
-
stats.providers = {};
|
|
54
|
-
for (const s of sources) {
|
|
55
|
-
stats.providers[s.provider] = (stats.providers[s.provider] || 0) + 1;
|
|
56
|
-
}
|
|
57
|
-
// Parse Claude Code sessions from local JSONL files
|
|
58
|
-
const adapter = new ClaudeCodeAdapter();
|
|
59
|
-
const claudeSources = sources.filter(s => s.provider === 'claude');
|
|
60
|
-
for (const source of claudeSources) {
|
|
61
|
-
try {
|
|
62
|
-
const files = fs.readdirSync(source.path).filter(f => f.endsWith('.jsonl'));
|
|
63
|
-
stats.totalSessions += files.length;
|
|
64
|
-
for (const file of files) {
|
|
65
|
-
const content = fs.readFileSync(path.join(source.path, file), 'utf-8');
|
|
66
|
-
const parsed = adapter.parse(content);
|
|
67
|
-
for (const event of parsed.events) {
|
|
68
|
-
if (event.tokenUsage) {
|
|
69
|
-
stats.totalCalls++;
|
|
70
|
-
stats.totalInputTokens += event.tokenUsage.input;
|
|
71
|
-
stats.totalOutputTokens += event.tokenUsage.output;
|
|
72
|
-
stats.totalCacheReadTokens += event.tokenUsage.cacheRead ?? 0;
|
|
73
|
-
stats.totalCacheWriteTokens += event.tokenUsage.cacheWrite ?? 0;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// Skip unreadable directories
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
// Estimate cost (Opus pricing as default)
|
|
83
|
-
const inputCostPerM = 15;
|
|
84
|
-
const outputCostPerM = 75;
|
|
85
|
-
stats.totalCostUSD = Math.round(((stats.totalInputTokens / 1_000_000) * inputCostPerM +
|
|
86
|
-
(stats.totalOutputTokens / 1_000_000) * outputCostPerM +
|
|
87
|
-
(stats.totalCacheReadTokens / 1_000_000) * (inputCostPerM * 0.1) +
|
|
88
|
-
(stats.totalCacheWriteTokens / 1_000_000) * (inputCostPerM * 1.25)) * 100) / 100;
|
|
89
|
-
return stats;
|
|
90
|
-
}
|
|
91
|
-
/** Fetch enriched insights from the API. Returns null if API is unreachable. */
|
|
92
|
-
export async function loadApiInsights(projectPath) {
|
|
93
|
-
const apiUrl = process.env.RULEMETRIC_API_URL ?? 'http://localhost:3000';
|
|
94
|
-
const apiKey = process.env.RULEMETRIC_API_KEY;
|
|
95
|
-
const accessToken = process.env.RULEMETRIC_ACCESS_TOKEN;
|
|
96
|
-
const token = apiKey ?? accessToken;
|
|
97
|
-
if (!token)
|
|
98
|
-
return null;
|
|
99
|
-
const params = new URLSearchParams();
|
|
100
|
-
if (projectPath)
|
|
101
|
-
params.set('projectPath', projectPath);
|
|
102
|
-
try {
|
|
103
|
-
const resp = await fetch(`${apiUrl}/api/insights/compute?${params}`, {
|
|
104
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
105
|
-
signal: AbortSignal.timeout(5000),
|
|
106
|
-
});
|
|
107
|
-
if (!resp.ok)
|
|
108
|
-
return null;
|
|
109
|
-
return await resp.json();
|
|
110
|
-
}
|
|
111
|
-
catch {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/** Fetch linked instructions from the API. */
|
|
116
|
-
export async function loadLinkedInstructions(projectPath) {
|
|
117
|
-
const apiUrl = process.env.RULEMETRIC_API_URL ?? 'http://localhost:3000';
|
|
118
|
-
const token = process.env.RULEMETRIC_API_KEY ?? process.env.RULEMETRIC_ACCESS_TOKEN;
|
|
119
|
-
if (!token)
|
|
120
|
-
return null;
|
|
121
|
-
const params = new URLSearchParams();
|
|
122
|
-
if (projectPath)
|
|
123
|
-
params.set('projectPath', projectPath);
|
|
124
|
-
try {
|
|
125
|
-
const resp = await fetch(`${apiUrl}/api/insights/linked-instructions?${params}`, {
|
|
126
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
127
|
-
signal: AbortSignal.timeout(5000),
|
|
128
|
-
});
|
|
129
|
-
if (!resp.ok)
|
|
130
|
-
return null;
|
|
131
|
-
return await resp.json();
|
|
132
|
-
}
|
|
133
|
-
catch {
|
|
134
|
-
return null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=data.js.map
|
|
1
|
+
import {
|
|
2
|
+
loadApiInsights,
|
|
3
|
+
loadLinkedInstructions,
|
|
4
|
+
loadLocalStats
|
|
5
|
+
} from "../chunk-RJ7BHDLM.js";
|
|
6
|
+
import "../chunk-B5KNTGMJ.js";
|
|
7
|
+
import "../chunk-NSBPE2FW.js";
|
|
8
|
+
export {
|
|
9
|
+
loadApiInsights,
|
|
10
|
+
loadLinkedInstructions,
|
|
11
|
+
loadLocalStats
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": [],
|
|
4
|
+
"sourcesContent": [],
|
|
5
|
+
"mappings": "",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LauncherOverlay
|
|
3
|
+
} from "../../chunk-CROYS75W.js";
|
|
4
|
+
import "../../chunk-DTFXCHHI.js";
|
|
5
|
+
import "../../chunk-KHJUQFIK.js";
|
|
6
|
+
import "../../chunk-N52AHNBH.js";
|
|
7
|
+
import "../../chunk-QD6X4L4L.js";
|
|
8
|
+
import "../../chunk-RH7NHVSK.js";
|
|
9
|
+
import "../../chunk-QJQS6TUN.js";
|
|
10
|
+
import "../../chunk-NSBPE2FW.js";
|
|
11
|
+
export {
|
|
12
|
+
LauncherOverlay
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=LauncherOverlay.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cancelLaunchJob,
|
|
3
|
+
createLaunchJob,
|
|
4
|
+
fetchLaunchJobs,
|
|
5
|
+
listLaunchers
|
|
6
|
+
} from "../../chunk-N52AHNBH.js";
|
|
7
|
+
import "../../chunk-NSBPE2FW.js";
|
|
8
|
+
export {
|
|
9
|
+
cancelLaunchJob,
|
|
10
|
+
createLaunchJob,
|
|
11
|
+
fetchLaunchJobs,
|
|
12
|
+
listLaunchers
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -1,22 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (sorted.length === 0) {
|
|
12
|
-
return (_jsx(Panel, { title: "Friction Points", color: ORANGE, width: width, children: _jsx(Text, { dimColor: true, children: "No friction detected \u2014 nice!" }) }));
|
|
13
|
-
}
|
|
14
|
-
const max = sorted[0][1];
|
|
15
|
-
const total = sorted.reduce((s, [, v]) => s + v, 0);
|
|
16
|
-
const nw = Math.max(8, width - barWidth - 20);
|
|
17
|
-
return (_jsx(Panel, { title: `Friction Points (${total} incidents)`, color: RED, width: width, children: sorted.map(([key, value]) => {
|
|
18
|
-
const pct = total > 0 ? Math.round((value / total) * 100) : 0;
|
|
19
|
-
return (_jsxs(Text, { wrap: "truncate-end", children: [_jsx(HBar, { value: value, max: max, width: barWidth }), _jsxs(Text, { color: ORANGE, children: [" ", fit(friendlyLabel(key), nw)] }), _jsx(Text, { children: String(value).padStart(5) }), _jsx(Text, { dimColor: true, children: String(pct + '%').padStart(5) })] }, key));
|
|
20
|
-
}) }));
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=friction.js.map
|
|
1
|
+
import {
|
|
2
|
+
FrictionPanel
|
|
3
|
+
} from "../../chunk-XC6M4CSW.js";
|
|
4
|
+
import "../../chunk-DQ3KELXD.js";
|
|
5
|
+
import "../../chunk-QJQS6TUN.js";
|
|
6
|
+
import "../../chunk-NSBPE2FW.js";
|
|
7
|
+
export {
|
|
8
|
+
FrictionPanel
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=friction.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": [],
|
|
4
|
+
"sourcesContent": [],
|
|
5
|
+
"mappings": "",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,109 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const items = [];
|
|
12
|
-
// Features to try
|
|
13
|
-
for (const f of recs.suggestions?.features_to_try ?? []) {
|
|
14
|
-
if (!f.example_code)
|
|
15
|
-
continue;
|
|
16
|
-
items.push({
|
|
17
|
-
label: f.feature,
|
|
18
|
-
description: f.why_for_you || f.one_liner,
|
|
19
|
-
command: f.example_code,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
// Usage patterns
|
|
23
|
-
for (const u of recs.suggestions?.usage_patterns ?? []) {
|
|
24
|
-
if (!u.copyable_prompt)
|
|
25
|
-
continue;
|
|
26
|
-
items.push({
|
|
27
|
-
label: u.title,
|
|
28
|
-
description: u.suggestion,
|
|
29
|
-
command: u.copyable_prompt,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
// On the horizon
|
|
33
|
-
for (const o of recs.on_the_horizon?.opportunities ?? []) {
|
|
34
|
-
if (!o.copyable_prompt)
|
|
35
|
-
continue;
|
|
36
|
-
items.push({
|
|
37
|
-
label: o.title,
|
|
38
|
-
description: o.whats_possible,
|
|
39
|
-
command: o.copyable_prompt,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return items;
|
|
43
|
-
}
|
|
44
|
-
/** Format a prompt as a CLI command if it isn't one already. */
|
|
45
|
-
function toCliCommand(prompt) {
|
|
46
|
-
const trimmed = prompt.trim();
|
|
47
|
-
if (/^(claude|rulemetric|pnpm|npm|npx|git)\s/.test(trimmed)) {
|
|
48
|
-
return trimmed;
|
|
49
|
-
}
|
|
50
|
-
return `claude -p '${trimmed.replace(/'/g, "'\\''")}'`;
|
|
51
|
-
}
|
|
52
|
-
/** Copy text to system clipboard (best-effort). */
|
|
53
|
-
function copyToClipboard(text) {
|
|
54
|
-
try {
|
|
55
|
-
const { execSync } = require('node:child_process');
|
|
56
|
-
if (process.platform === 'darwin') {
|
|
57
|
-
execSync('pbcopy', { input: text, stdio: ['pipe', 'ignore', 'ignore'] });
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
execSync('xclip -selection clipboard', { input: text, stdio: ['pipe', 'ignore', 'ignore'] });
|
|
61
|
-
}
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
catch {
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
export function InsightsPanel({ api, width, focused, onSelect }) {
|
|
69
|
-
const [selectedIdx, setSelectedIdx] = useState(0);
|
|
70
|
-
const [copiedIdx, setCopiedIdx] = useState(null);
|
|
71
|
-
const suggestions = useMemo(() => api ? extractSuggestions(api) : [], [api]);
|
|
72
|
-
const atAGlance = api?.recommendations?.at_a_glance;
|
|
73
|
-
useInput((input, key) => {
|
|
74
|
-
if (!focused || suggestions.length === 0)
|
|
75
|
-
return;
|
|
76
|
-
if (key.upArrow) {
|
|
77
|
-
setSelectedIdx(i => Math.max(0, i - 1));
|
|
78
|
-
}
|
|
79
|
-
else if (key.downArrow) {
|
|
80
|
-
setSelectedIdx(i => Math.min(suggestions.length - 1, i + 1));
|
|
81
|
-
}
|
|
82
|
-
else if (key.return) {
|
|
83
|
-
const item = suggestions[selectedIdx];
|
|
84
|
-
if (item) {
|
|
85
|
-
const cmd = toCliCommand(item.command);
|
|
86
|
-
const copied = copyToClipboard(cmd);
|
|
87
|
-
if (copied) {
|
|
88
|
-
setCopiedIdx(selectedIdx);
|
|
89
|
-
setTimeout(() => setCopiedIdx(null), 2000);
|
|
90
|
-
}
|
|
91
|
-
onSelect?.(cmd);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
if (!api) {
|
|
96
|
-
return (_jsx(Panel, { title: "Insights", color: ORANGE, width: width, children: _jsx(Text, { dimColor: true, children: "API offline \u2014 no insights" }) }));
|
|
97
|
-
}
|
|
98
|
-
if (!atAGlance && suggestions.length === 0) {
|
|
99
|
-
return (_jsx(Panel, { title: "Insights", color: ORANGE, width: width, children: _jsx(Text, { dimColor: true, children: "No recommendations yet. Run: rulemetric insights sync" }) }));
|
|
100
|
-
}
|
|
101
|
-
const maxLabel = Math.min(30, Math.max(...suggestions.map(s => s.label.length), 10));
|
|
102
|
-
const descWidth = Math.max(10, width - maxLabel - 12);
|
|
103
|
-
return (_jsxs(Panel, { title: focused ? '▸ Insights & Suggestions' : 'Insights & Suggestions', color: focused ? ORANGE : DIM, width: width, children: [atAGlance && Object.entries(atAGlance).length > 0 && (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: Object.entries(atAGlance).map(([key, value]) => (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: DIM, bold: true, children: key.replace(/_/g, ' ').toUpperCase() }), _jsx(Text, { wrap: "wrap", children: String(value).slice(0, 200) })] }, key))) })), suggestions.length > 0 && (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { marginBottom: 0, children: [_jsx(Text, { color: ORANGE, bold: true, children: "Suggestions" }), focused && _jsx(Text, { dimColor: true, children: " \u2191\u2193 navigate \u23CE copy command" })] }), suggestions.map((s, i) => {
|
|
104
|
-
const isSelected = focused && i === selectedIdx;
|
|
105
|
-
const isCopied = i === copiedIdx;
|
|
106
|
-
return (_jsxs(Box, { children: [_jsx(Text, { color: isSelected ? ORANGE : DIM, children: isSelected ? '▸ ' : ' ' }), _jsx(Text, { color: isSelected ? ORANGE : BLUE, bold: isSelected, children: fit(s.label, maxLabel) }), _jsx(Text, { color: DIM, children: " \u2502 " }), _jsx(Text, { color: isSelected ? undefined : DIM, wrap: "truncate-end", children: fit(s.description, descWidth) }), isCopied && _jsx(Text, { color: GREEN, children: " \u2713 copied" })] }, i));
|
|
107
|
-
})] }))] }));
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=insights.js.map
|
|
1
|
+
import {
|
|
2
|
+
InsightsPanel
|
|
3
|
+
} from "../../chunk-4SCZK7AL.js";
|
|
4
|
+
import "../../chunk-DQ3KELXD.js";
|
|
5
|
+
import "../../chunk-QJQS6TUN.js";
|
|
6
|
+
import "../../chunk-NSBPE2FW.js";
|
|
7
|
+
export {
|
|
8
|
+
InsightsPanel
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=insights.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": [],
|
|
4
|
+
"sourcesContent": [],
|
|
5
|
+
"mappings": "",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
const sorted = [...instructions].sort((a, b) => b.linkedSessions - a.linkedSessions).slice(0, 10);
|
|
13
|
-
const max = sorted[0].linkedSessions;
|
|
14
|
-
const nw = Math.max(8, width - barWidth - 15);
|
|
15
|
-
return (_jsxs(Panel, { title: `Active Instructions (${instructions.length})`, color: BLUE, width: width, children: [_jsxs(Text, { dimColor: true, wrap: "truncate-end", children: [''.padEnd(barWidth + 1 + nw), 'sessions'.padStart(9)] }), sorted.map(inst => (_jsxs(Text, { wrap: "truncate-end", children: [_jsx(HBar, { value: inst.linkedSessions, max: max, width: barWidth }), _jsxs(Text, { color: DIM, children: [" ", fit(inst.name, nw)] }), _jsx(Text, { children: String(inst.linkedSessions).padStart(9) })] }, inst.name)))] }));
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=instructions.js.map
|
|
1
|
+
import {
|
|
2
|
+
InstructionsPanel
|
|
3
|
+
} from "../../chunk-BT6Z6545.js";
|
|
4
|
+
import "../../chunk-DQ3KELXD.js";
|
|
5
|
+
import "../../chunk-QJQS6TUN.js";
|
|
6
|
+
import "../../chunk-NSBPE2FW.js";
|
|
7
|
+
export {
|
|
8
|
+
InstructionsPanel
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": [],
|
|
4
|
+
"sourcesContent": [],
|
|
5
|
+
"mappings": "",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|