claude-task-worker 0.142.2 → 0.142.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.
@@ -2237,6 +2237,8 @@ var WEBHOOK_URL = process.env.CLAUDE_TASK_WORKER_SLACK_WEBHOOK_URL;
2237
2237
  var USAGE_POLL_INTERVAL_SECONDS = 600;
2238
2238
  var USAGE_BACKOFF_PATH = "/tmp/claude-usage-backoff.json";
2239
2239
  var USAGE_RATE_LIMIT_DEFAULT_BACKOFF_SECONDS = 600;
2240
+ var USAGE_CACHE_PATH = "/tmp/claude-usage-cache.json";
2241
+ var USAGE_CACHE_TTL_SECONDS = 600;
2240
2242
  async function send(payload) {
2241
2243
  if (!WEBHOOK_URL) return;
2242
2244
  try {
@@ -2297,24 +2299,34 @@ function writeBackoffUntil(until) {
2297
2299
  } catch {
2298
2300
  }
2299
2301
  }
2302
+ function readUsageCache(now = Date.now()) {
2303
+ try {
2304
+ const { fetchedAt, usage } = JSON.parse(readFileSync2(USAGE_CACHE_PATH, "utf-8"));
2305
+ return now - Number(fetchedAt) < USAGE_CACHE_TTL_SECONDS * 1e3 ? usage : null;
2306
+ } catch {
2307
+ return null;
2308
+ }
2309
+ }
2310
+ function writeUsageCache(usage) {
2311
+ try {
2312
+ const tmp = `${USAGE_CACHE_PATH}.${process.pid}.tmp`;
2313
+ writeFileSync4(tmp, JSON.stringify({ fetchedAt: Date.now(), usage }));
2314
+ renameSync3(tmp, USAGE_CACHE_PATH);
2315
+ } catch {
2316
+ }
2317
+ }
2300
2318
  async function fetchUsageInfo() {
2301
2319
  const backoffUntil = readBackoffUntil();
2302
2320
  if (Date.now() < backoffUntil) {
2303
2321
  console.error(`[slack] Usage API rate limited; skipping until ${new Date(backoffUntil).toISOString()}`);
2304
2322
  return null;
2305
2323
  }
2324
+ const cached = readUsageCache();
2325
+ if (cached) return cached;
2306
2326
  try {
2307
- const envToken = process.env.CLAUDE_CODE_OAUTH_TOKEN?.trim();
2308
- if (envToken) {
2309
- const res = await requestUsage(envToken);
2310
- if (res.status !== 401 && res.status !== 403) return await handleUsageResponse(res);
2311
- console.error(
2312
- `[slack] Usage API rejected CLAUDE_CODE_OAUTH_TOKEN (${res.status}); falling back to stored credentials`
2313
- );
2314
- }
2315
2327
  const { token, expiresAt } = await getStoredCredential();
2316
2328
  if (!token) {
2317
- console.error("[slack] No OAuth token found (set CLAUDE_CODE_OAUTH_TOKEN or sign in to Claude Code)");
2329
+ console.error("[slack] No OAuth token found (sign in to Claude Code)");
2318
2330
  return null;
2319
2331
  }
2320
2332
  if (expiresAt !== void 0 && expiresAt <= Date.now()) {
@@ -2323,7 +2335,9 @@ async function fetchUsageInfo() {
2323
2335
  );
2324
2336
  return null;
2325
2337
  }
2326
- return await handleUsageResponse(await requestUsage(token));
2338
+ const usage = await handleUsageResponse(await requestUsage(token));
2339
+ if (usage) writeUsageCache(usage);
2340
+ return usage;
2327
2341
  } catch (err) {
2328
2342
  console.error(`[slack] Failed to fetch usage info: ${err}`);
2329
2343
  return null;
package/dist/index.js CHANGED
@@ -65,7 +65,7 @@ import {
65
65
  shutdown,
66
66
  waitForAllProcesses,
67
67
  writeLastRun
68
- } from "./chunk-EYML7T7A.js";
68
+ } from "./chunk-QCQA2UJO.js";
69
69
  import {
70
70
  UserConfigError,
71
71
  assertCloudCompatibleCommand,
package/dist/lib.js CHANGED
@@ -55,7 +55,7 @@ import {
55
55
  removeWorktreeByBranch,
56
56
  run,
57
57
  syncDefaultBranch
58
- } from "./chunk-EYML7T7A.js";
58
+ } from "./chunk-QCQA2UJO.js";
59
59
  import {
60
60
  getPermissionMode,
61
61
  getRunMode,
package/dist/slack.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  /** `usage` コマンドが利用状況をポーリングする間隔 */
2
2
  export declare const USAGE_POLL_INTERVAL_SECONDS = 600;
3
+ /** 取得結果を使い回す期間。この間は usage API を叩かない */
4
+ export declare const USAGE_CACHE_TTL_SECONDS = 600;
3
5
  export declare function send(payload: Record<string, unknown>): Promise<void>;
4
6
  export interface UsageInfo {
5
7
  fiveHourUtilization: number | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-task-worker",
3
- "version": "0.142.2",
3
+ "version": "0.142.3",
4
4
  "description": "CLI tool that polls GitHub Issues/PRs and delegates work to Claude CLI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",