replen 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/commands.js +19 -1
  2. package/package.json +1 -1
package/dist/commands.js CHANGED
@@ -75,7 +75,16 @@ export async function runProgress(argv) {
75
75
  }
76
76
  if (!status.inFlight) {
77
77
  if (!json) {
78
- console.log(`— done · ${status.matches ?? 0} matches · run #${status.runId ?? "?"}`);
78
+ const quota = parseQuotaReason(status.pausedReason ?? null);
79
+ if (quota) {
80
+ console.log("");
81
+ console.log(`✗ ${quota === "primary" ? "Primary" : "Sensitive"} LLM is out of credits.`);
82
+ console.log(" Top up your API key's balance, or rotate to a different provider on /settings.");
83
+ process.exitCode = 1;
84
+ }
85
+ else {
86
+ console.log(`— done · ${status.matches ?? 0} matches · run #${status.runId ?? "?"}`);
87
+ }
79
88
  }
80
89
  return;
81
90
  }
@@ -197,6 +206,15 @@ function renderMatchLine(m, opts = {}) {
197
206
  const repo = m.repo ?? "(no repo)";
198
207
  console.log(` ${star} #${m.matchId} ${repo} → ${m.project} · ${m.relevance}${score}${stars}${lic}${handoff}`);
199
208
  }
209
+ function parseQuotaReason(reason) {
210
+ if (!reason)
211
+ return null;
212
+ if (reason.startsWith("llm-quota:primary"))
213
+ return "primary";
214
+ if (reason.startsWith("llm-quota:sensitive"))
215
+ return "sensitive";
216
+ return null;
217
+ }
200
218
  function marker(kind) {
201
219
  switch (kind) {
202
220
  case "match":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replen",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Smart AI Development workflows. The AI that asks 'can we do this better?' - replen reads your codebase against the live ecosystem every morning, surfaces drop-in libraries, ideas to port, and patterns to learn from. A proactive layer for your AI coding workflow. One-command setup: opens a browser to sign in, then wires the MCP server into Claude Code / Codex.",
5
5
  "type": "module",
6
6
  "bin": {