charness 3.4.0 → 3.6.0
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/CHANGELOG.md +58 -0
- package/DEVELOPMENT.md +12 -1
- package/README.md +89 -6
- package/SETUP.md +199 -1
- package/dist/adapters/adapterEventRouting.d.ts +2 -2
- package/dist/adapters/adapterEventRouting.d.ts.map +1 -1
- package/dist/adapters/adapterEventRouting.js +4 -3
- package/dist/adapters/adapterEventRouting.js.map +1 -1
- package/dist/adapters/claudeCliAdapter.js +2 -2
- package/dist/adapters/claudeCliAdapter.js.map +1 -1
- package/dist/adapters/claudeConfigDir.d.ts +18 -0
- package/dist/adapters/claudeConfigDir.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.d.ts +82 -6
- package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
- package/dist/adapters/claudeJsonStreamAdapter.js +211 -14
- package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
- package/dist/adapters/createAdapter.d.ts +14 -1
- package/dist/adapters/createAdapter.d.ts.map +1 -1
- package/dist/adapters/createAdapter.js +54 -2
- package/dist/adapters/createAdapter.js.map +1 -1
- package/dist/adapters/openCodeAdapter.d.ts +5 -0
- package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
- package/dist/adapters/openCodeAdapter.js +7 -0
- package/dist/adapters/openCodeAdapter.js.map +1 -1
- package/dist/agentLogin/agentLogin.d.ts +18 -1
- package/dist/agentLogin/agentLogin.d.ts.map +1 -1
- package/dist/agentLogin/agentLogin.js +59 -18
- package/dist/agentLogin/agentLogin.js.map +1 -1
- package/dist/apiErrorRetry.d.ts +3 -1
- package/dist/apiErrorRetry.d.ts.map +1 -1
- package/dist/apiErrorRetry.js +11 -1
- package/dist/apiErrorRetry.js.map +1 -1
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +475 -105
- package/dist/bot.js.map +1 -1
- package/dist/cli/claudeProfiles.d.ts +1 -1
- package/dist/cli/claudeProfiles.d.ts.map +1 -1
- package/dist/cli/claudeProfiles.js +11 -6
- package/dist/cli/claudeProfiles.js.map +1 -1
- package/dist/connectors/jira/connector.d.ts +2 -0
- package/dist/connectors/jira/connector.d.ts.map +1 -1
- package/dist/connectors/jira/connector.js +5 -4
- package/dist/connectors/jira/connector.js.map +1 -1
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts +6 -2
- package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/claudeAccounts.js +127 -28
- package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -1
- package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/compaction.js +39 -8
- package/dist/connectors/telegram/commands/compaction.js.map +1 -1
- package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -1
- package/dist/connectors/telegram/commands/fallbackChain.js +6 -2
- package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
- package/dist/connectors/telegram/forumTopicCreated.d.ts +20 -0
- package/dist/connectors/telegram/forumTopicCreated.d.ts.map +1 -0
- package/dist/connectors/telegram/forumTopicCreated.js +16 -0
- package/dist/connectors/telegram/forumTopicCreated.js.map +1 -0
- package/dist/i18n/de.d.ts.map +1 -1
- package/dist/i18n/de.js +42 -1
- package/dist/i18n/de.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +42 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +42 -1
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/fr.d.ts.map +1 -1
- package/dist/i18n/fr.js +42 -1
- package/dist/i18n/fr.js.map +1 -1
- package/dist/i18n/hi.d.ts.map +1 -1
- package/dist/i18n/hi.js +42 -1
- package/dist/i18n/hi.js.map +1 -1
- package/dist/i18n/ja.d.ts.map +1 -1
- package/dist/i18n/ja.js +42 -1
- package/dist/i18n/ja.js.map +1 -1
- package/dist/i18n/ka.d.ts.map +1 -1
- package/dist/i18n/ka.js +42 -1
- package/dist/i18n/ka.js.map +1 -1
- package/dist/i18n/pt.d.ts.map +1 -1
- package/dist/i18n/pt.js +42 -1
- package/dist/i18n/pt.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +42 -1
- package/dist/i18n/ru.js.map +1 -1
- package/dist/i18n/uk.d.ts.map +1 -1
- package/dist/i18n/uk.js +42 -1
- package/dist/i18n/uk.js.map +1 -1
- package/dist/i18n/uz.d.ts.map +1 -1
- package/dist/i18n/uz.js +42 -1
- package/dist/i18n/uz.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +42 -1
- package/dist/i18n/zh.js.map +1 -1
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js.map +1 -1
- package/dist/rateLimiter.d.ts +6 -0
- package/dist/rateLimiter.d.ts.map +1 -1
- package/dist/rateLimiter.js +9 -0
- package/dist/rateLimiter.js.map +1 -1
- package/dist/requests/wakeUpEngine.d.ts +4 -0
- package/dist/requests/wakeUpEngine.d.ts.map +1 -1
- package/dist/requests/wakeUpEngine.js +3 -3
- package/dist/requests/wakeUpEngine.js.map +1 -1
- package/dist/requests/wakeUpRules.d.ts +2 -1
- package/dist/requests/wakeUpRules.d.ts.map +1 -1
- package/dist/requests/wakeUpRules.js +3 -2
- package/dist/requests/wakeUpRules.js.map +1 -1
- package/dist/scheduler/mcpSurface.d.ts.map +1 -1
- package/dist/scheduler/mcpSurface.js +5 -3
- package/dist/scheduler/mcpSurface.js.map +1 -1
- package/dist/selfUpdate/updateMessages.d.ts +1 -1
- package/dist/selfUpdate/updateMessages.d.ts.map +1 -1
- package/dist/selfUpdate/updateMessages.js.map +1 -1
- package/dist/state.d.ts +67 -5
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +76 -7
- package/dist/state.js.map +1 -1
- package/dist/testTimings.d.ts +45 -0
- package/dist/testTimings.d.ts.map +1 -0
- package/dist/testTimings.js +89 -0
- package/dist/testTimings.js.map +1 -0
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/adapterSwitchSessionIds.d.ts +5 -1
- package/dist/utils/adapterSwitchSessionIds.d.ts.map +1 -1
- package/dist/utils/adapterSwitchSessionIds.js +1 -1
- package/dist/utils/adapterSwitchSessionIds.js.map +1 -1
- package/dist/utils/adoptedToolList.d.ts +16 -21
- package/dist/utils/adoptedToolList.d.ts.map +1 -1
- package/dist/utils/adoptedToolList.js +18 -17
- package/dist/utils/adoptedToolList.js.map +1 -1
- package/dist/utils/anthropicApiKeyCheck.d.ts +19 -0
- package/dist/utils/anthropicApiKeyCheck.d.ts.map +1 -0
- package/dist/utils/anthropicApiKeyCheck.js +41 -0
- package/dist/utils/anthropicApiKeyCheck.js.map +1 -0
- package/dist/utils/claudeAccountPickerPlan.d.ts +6 -1
- package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -1
- package/dist/utils/claudeAccountPickerPlan.js +5 -1
- package/dist/utils/claudeAccountPickerPlan.js.map +1 -1
- package/dist/utils/claudeApiKeyHelper.d.ts +19 -0
- package/dist/utils/claudeApiKeyHelper.d.ts.map +1 -0
- package/dist/utils/claudeApiKeyHelper.js +32 -0
- package/dist/utils/claudeApiKeyHelper.js.map +1 -0
- package/dist/utils/claudeApiSpend.d.ts +73 -0
- package/dist/utils/claudeApiSpend.d.ts.map +1 -0
- package/dist/utils/claudeApiSpend.js +82 -0
- package/dist/utils/claudeApiSpend.js.map +1 -0
- package/dist/utils/claudeCompactHook.d.ts +11 -6
- package/dist/utils/claudeCompactHook.d.ts.map +1 -1
- package/dist/utils/claudeCompactHook.js +28 -11
- package/dist/utils/claudeCompactHook.js.map +1 -1
- package/dist/utils/claudeLimitSwitch.d.ts +2 -1
- package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
- package/dist/utils/claudeLimitSwitch.js +3 -2
- package/dist/utils/claudeLimitSwitch.js.map +1 -1
- package/dist/utils/claudeProfileUsageLines.d.ts +18 -3
- package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -1
- package/dist/utils/claudeProfileUsageLines.js +23 -2
- package/dist/utils/claudeProfileUsageLines.js.map +1 -1
- package/dist/utils/claudeProfiles.d.ts +57 -2
- package/dist/utils/claudeProfiles.d.ts.map +1 -1
- package/dist/utils/claudeProfiles.js +96 -3
- package/dist/utils/claudeProfiles.js.map +1 -1
- package/dist/utils/claudeScheduledJobs.d.ts +49 -0
- package/dist/utils/claudeScheduledJobs.d.ts.map +1 -0
- package/dist/utils/claudeScheduledJobs.js +62 -0
- package/dist/utils/claudeScheduledJobs.js.map +1 -0
- package/dist/utils/claudeStreamJson.d.ts +35 -2
- package/dist/utils/claudeStreamJson.d.ts.map +1 -1
- package/dist/utils/claudeStreamJson.js +31 -8
- package/dist/utils/claudeStreamJson.js.map +1 -1
- package/dist/utils/claudeTranscriptContent.d.ts +8 -0
- package/dist/utils/claudeTranscriptContent.d.ts.map +1 -1
- package/dist/utils/claudeTranscriptContent.js +44 -0
- package/dist/utils/claudeTranscriptContent.js.map +1 -1
- package/dist/utils/claudeUsage.d.ts +22 -6
- package/dist/utils/claudeUsage.d.ts.map +1 -1
- package/dist/utils/claudeUsage.js +12 -5
- package/dist/utils/claudeUsage.js.map +1 -1
- package/dist/utils/claudeUsageRefresher.d.ts +6 -0
- package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
- package/dist/utils/claudeUsageRefresher.js +2 -2
- package/dist/utils/claudeUsageRefresher.js.map +1 -1
- package/dist/utils/compactOnIdle.d.ts +12 -0
- package/dist/utils/compactOnIdle.d.ts.map +1 -1
- package/dist/utils/compactOnIdle.js +15 -1
- package/dist/utils/compactOnIdle.js.map +1 -1
- package/dist/utils/doctorLine.d.ts +13 -0
- package/dist/utils/doctorLine.d.ts.map +1 -0
- package/dist/utils/doctorLine.js +18 -0
- package/dist/utils/doctorLine.js.map +1 -0
- package/dist/utils/effortPickerPlan.d.ts +1 -2
- package/dist/utils/effortPickerPlan.d.ts.map +1 -1
- package/dist/utils/effortPickerPlan.js.map +1 -1
- package/dist/utils/fallbackChain.d.ts +15 -8
- package/dist/utils/fallbackChain.d.ts.map +1 -1
- package/dist/utils/fallbackChain.js +30 -13
- package/dist/utils/fallbackChain.js.map +1 -1
- package/dist/utils/jsonStreamHost.d.ts +19 -7
- package/dist/utils/jsonStreamHost.d.ts.map +1 -1
- package/dist/utils/jsonStreamHost.js +25 -11
- package/dist/utils/jsonStreamHost.js.map +1 -1
- package/dist/utils/jsonStreamPendingWork.d.ts +44 -0
- package/dist/utils/jsonStreamPendingWork.d.ts.map +1 -0
- package/dist/utils/jsonStreamPendingWork.js +48 -0
- package/dist/utils/jsonStreamPendingWork.js.map +1 -0
- package/dist/utils/limitsBoardPlan.d.ts +4 -2
- package/dist/utils/limitsBoardPlan.d.ts.map +1 -1
- package/dist/utils/limitsBoardPlan.js +12 -5
- package/dist/utils/limitsBoardPlan.js.map +1 -1
- package/dist/utils/lostWork.d.ts +117 -0
- package/dist/utils/lostWork.d.ts.map +1 -0
- package/dist/utils/lostWork.js +187 -0
- package/dist/utils/lostWork.js.map +1 -0
- package/dist/utils/nativeWindows.d.ts +29 -0
- package/dist/utils/nativeWindows.d.ts.map +1 -0
- package/dist/utils/nativeWindows.js +50 -0
- package/dist/utils/nativeWindows.js.map +1 -0
- package/dist/utils/recvPreviewRedaction.d.ts +7 -2
- package/dist/utils/recvPreviewRedaction.d.ts.map +1 -1
- package/dist/utils/recvPreviewRedaction.js +10 -4
- package/dist/utils/recvPreviewRedaction.js.map +1 -1
- package/dist/utils/threadStatusReport.d.ts +12 -1
- package/dist/utils/threadStatusReport.d.ts.map +1 -1
- package/dist/utils/threadStatusReport.js +13 -4
- package/dist/utils/threadStatusReport.js.map +1 -1
- package/dist/utils/updateScreenPlan.d.ts +1 -1
- package/dist/utils/updateScreenPlan.d.ts.map +1 -1
- package/dist/utils/updateScreenPlan.js.map +1 -1
- package/package.json +2 -2
|
@@ -28,7 +28,7 @@ export declare function parseClaudeProfilesCliArgs(argv: readonly string[]): {
|
|
|
28
28
|
ok: false;
|
|
29
29
|
error: string;
|
|
30
30
|
};
|
|
31
|
-
/** One human line: `✓ work /data/…/work mail@example.com personal max 5h 12% 🔄 in 2h · week 40% 🔄 in 2d 1h · Fable 3% 🔄 in 2d 1h` (no Fable part for an account without that window). */
|
|
31
|
+
/** One human line: `✓ work /data/…/work mail@example.com personal max 5h 12% 🔄 in 2h · week 40% 🔄 in 2d 1h · Fable 3% 🔄 in 2d 1h` (no Fable part for an account without that window; an account billed to API credits says so and has no windows). */
|
|
32
32
|
export declare function formatClaudeProfileCliLine(entry: ClaudeProfileReportEntry, nowMs: number): string;
|
|
33
33
|
/**
|
|
34
34
|
* @description Run the subcommand; returns the exit code. Output goes to stdout, a refusal to stderr.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeProfiles.d.ts","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAKL,KAAK,wBAAwB,EAE9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgB5I;AAED
|
|
1
|
+
{"version":3,"file":"claudeProfiles.d.ts","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAKL,KAAK,wBAAwB,EAE9B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgB5I;AAED,4PAA4P;AAC5P,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBjG;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE;IACF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACf,GACL,OAAO,CAAC,MAAM,CAAC,CA8BjB"}
|
|
@@ -47,24 +47,29 @@ function parseClaudeProfilesCliArgs(argv) {
|
|
|
47
47
|
return { ok: false, error: '--model needs a value' };
|
|
48
48
|
return { ok: true, args };
|
|
49
49
|
}
|
|
50
|
-
/** One human line: `✓ work /data/…/work mail@example.com personal max 5h 12% 🔄 in 2h · week 40% 🔄 in 2d 1h · Fable 3% 🔄 in 2d 1h` (no Fable part for an account without that window). */
|
|
50
|
+
/** One human line: `✓ work /data/…/work mail@example.com personal max 5h 12% 🔄 in 2h · week 40% 🔄 in 2d 1h · Fable 3% 🔄 in 2d 1h` (no Fable part for an account without that window; an account billed to API credits says so and has no windows). */
|
|
51
51
|
function formatClaudeProfileCliLine(entry, nowMs) {
|
|
52
52
|
const find = (kind) => entry.buckets.find((bucket) => bucket.kind === kind) ?? null;
|
|
53
53
|
const weeklyReset = find('weekly_all')?.resetsAt ?? null;
|
|
54
54
|
const read = (kind) => (0, claudeUsage_1.formatClaudeUsageBucket)(find(kind), nowMs, { fallbackResetsAt: kind === 'session' ? weeklyReset : null });
|
|
55
55
|
const marker = entry.isRecommended ? '✓' : entry.isEligible ? '•' : '✗';
|
|
56
|
+
const isApi = entry.billing === 'api';
|
|
56
57
|
const account = entry.loggedIn === false
|
|
57
58
|
? 'not signed in'
|
|
58
|
-
:
|
|
59
|
-
? '
|
|
60
|
-
:
|
|
61
|
-
|
|
59
|
+
: isApi
|
|
60
|
+
? `${entry.email ?? 'API key'} API billing (pay per use, never recommended)`
|
|
61
|
+
: entry.loggedIn === null && entry.email === null
|
|
62
|
+
? 'not probed yet (open /account once)'
|
|
63
|
+
: `${entry.email ?? '?'} ${entry.kind} ${entry.subscriptionType ?? '?'}`;
|
|
64
|
+
const formatWindows = () => (entry.buckets.length === 0
|
|
62
65
|
? 'usage not read yet'
|
|
63
66
|
: `${[
|
|
64
67
|
`5h ${read('session')}`,
|
|
65
68
|
`week ${read('weekly_all')}`,
|
|
66
69
|
...(find('weekly_scoped') === null ? [] : [`Fable ${read('weekly_scoped')}`]),
|
|
67
|
-
].join(' · ')}${entry.isUsageStale ? ' (stale)' : ''}
|
|
70
|
+
].join(' · ')}${entry.isUsageStale ? ' (stale)' : ''}`);
|
|
71
|
+
// An account billed to API credits has no windows; its limit is the balance.
|
|
72
|
+
const usage = isApi ? `no windows${entry.creditExhaustedAt === null ? '' : ' CREDITS USED UP'}` : formatWindows();
|
|
68
73
|
const limited = entry.limitedUntil && Date.parse(entry.limitedUntil) > nowMs ? ` LIMITED until ${entry.limitedUntil}` : '';
|
|
69
74
|
return `${marker} ${entry.name} ${entry.configDir ?? '(default: no CLAUDE_CONFIG_DIR)'} ${account} ${usage}${limited}`;
|
|
70
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeProfiles.js","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAoBH,gEAgBC;AAGD,
|
|
1
|
+
{"version":3,"file":"claudeProfiles.js","sourceRoot":"","sources":["../../src/cli/claudeProfiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,5 +73,7 @@ export declare function prepareJiraConnector(context: {
|
|
|
73
73
|
setupRetryBaseMs: number;
|
|
74
74
|
sleep: (ms: number) => Promise<void>;
|
|
75
75
|
};
|
|
76
|
+
/** A test instance's poll interval (`CHARNESS_TEST_TIMINGS`), below the 10 s floor `jira.json` allows; absent: the config's. */
|
|
77
|
+
pollIntervalMsOverride?: number;
|
|
76
78
|
}): Promise<JiraConnector>;
|
|
77
79
|
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/connector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACxG,OAAO,EAAiF,KAAK,eAAe,EAA2B,MAAM,WAAW,CAAC;AAIzJ,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAGvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;;;;;GAOG;AAEH,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;gBAAjB,OAAO,EAAE,MAAM,EAAE;CAIvC;AAED,wEAAwE;AACxE,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,eAAe,GAAG,aAAa,GAAG,kBAAkB,CAAC,CAAC;AAExI,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,6DAA6D;IAC7D,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,6EAA6E;IAC7E,UAAU,EAAE,cAAc,CAAC;IAC3B;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzF,wHAAwH;IACxH,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1F,iFAAiF;IACjF,KAAK,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAIjE;AA2FD,mIAAmI;AACnI,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,4GAA4G;AAC5G,eAAO,MAAM,yBAAyB,4FAA4F,CAAC;AAEnI,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,yEAAyE,CAAC;AAC/G,eAAO,MAAM,6BAA6B,sEAAsE,CAAC;AACjH,eAAO,MAAM,yBAAyB,2EAA2E,CAAC;AAElH,wHAAwH;AACxH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,MAAM,CAI3I;AAED,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,6HAA6H;IAC7H,UAAU,CAAC,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../src/connectors/jira/connector.ts"],"names":[],"mappings":"AAGA,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACxG,OAAO,EAAiF,KAAK,eAAe,EAA2B,MAAM,WAAW,CAAC;AAIzJ,OAAO,EAAwB,KAAK,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAGvF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;;;;;GAOG;AAEH,qBAAa,uBAAwB,SAAQ,KAAK;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;gBAAjB,OAAO,EAAE,MAAM,EAAE;CAIvC;AAED,wEAAwE;AACxE,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,eAAe,EAAE,kBAAkB,GAAG,eAAe,GAAG,aAAa,GAAG,kBAAkB,CAAC,CAAC;AAExI,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,6DAA6D;IAC7D,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,6EAA6E;IAC7E,UAAU,EAAE,cAAc,CAAC;IAC3B;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACzF,wHAAwH;IACxH,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1F,iFAAiF;IACjF,KAAK,CAAC,IAAI,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAIjE;AA2FD,mIAAmI;AACnI,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC,4GAA4G;AAC5G,eAAO,MAAM,yBAAyB,4FAA4F,CAAC;AAEnI,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,yEAAyE,CAAC;AAC/G,eAAO,MAAM,6BAA6B,sEAAsE,CAAC;AACjH,eAAO,MAAM,yBAAyB,2EAA2E,CAAC;AAElH,wHAAwH;AACxH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,MAAM,CAI3I;AAED,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,6HAA6H;IAC7H,UAAU,CAAC,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IAChF,gIAAgI;IAChI,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,aAAa,CAAC,CAiJzB"}
|
|
@@ -179,6 +179,7 @@ async function prepareJiraConnector(context) {
|
|
|
179
179
|
if (!loaded.ok)
|
|
180
180
|
throw new JiraConnectorStartError(loaded.errors);
|
|
181
181
|
const { config } = loaded;
|
|
182
|
+
const pollIntervalMs = context.pollIntervalMsOverride ?? config.pollIntervalMs;
|
|
182
183
|
const client = (0, client_1.createJiraClient)({
|
|
183
184
|
baseUrl: config.baseUrl,
|
|
184
185
|
email: config.email,
|
|
@@ -244,7 +245,7 @@ async function prepareJiraConnector(context) {
|
|
|
244
245
|
siteUrl: config.baseUrl,
|
|
245
246
|
projects,
|
|
246
247
|
runBudgetPer24h: config.runBudgetPer24h,
|
|
247
|
-
pollIntervalMs
|
|
248
|
+
pollIntervalMs,
|
|
248
249
|
contextLedger,
|
|
249
250
|
getSpillDir: (key) => path.join(getJiraFilesDir(key), exports.jiraSpillDirName),
|
|
250
251
|
triggerLog,
|
|
@@ -256,9 +257,9 @@ async function prepareJiraConnector(context) {
|
|
|
256
257
|
parkMention: (issueKey) => answerSink.parkMention(issueKey),
|
|
257
258
|
});
|
|
258
259
|
inbound.start();
|
|
259
|
-
console.log(`[jira] polling ${[...projects.keys()].join(', ')} every ${
|
|
260
|
+
console.log(`[jira] polling ${[...projects.keys()].join(', ')} every ${pollIntervalMs / 1000} s`);
|
|
260
261
|
// The allowlist as Jira receives it — what an operator reads to see which projects the AI account may act in.
|
|
261
|
-
const mentionWindowMs = config.isMentionWakeOn && trust !== null ? (0, inbound_1.getJiraMentionWindowMs)(
|
|
262
|
+
const mentionWindowMs = config.isMentionWakeOn && trust !== null ? (0, inbound_1.getJiraMentionWindowMs)(pollIntervalMs) : null;
|
|
262
263
|
console.log(`${exports.jiraPollJqlLogPrefix}${(0, inbound_1.buildJiraTriggerJql)(projects, mentionWindowMs)}`);
|
|
263
264
|
};
|
|
264
265
|
/** Check the setup again, with backoff, until Jira answers; then poll — or, if the setup turns out wrong, stop loudly (the process stays up). */
|
|
@@ -281,7 +282,7 @@ async function prepareJiraConnector(context) {
|
|
|
281
282
|
startPolling(deps, check);
|
|
282
283
|
}
|
|
283
284
|
});
|
|
284
|
-
}, (0, inbound_1.getJiraRetryDelayMs)(context.testTiming?.setupRetryBaseMs ??
|
|
285
|
+
}, (0, inbound_1.getJiraRetryDelayMs)(context.testTiming?.setupRetryBaseMs ?? pollIntervalMs, failureCount));
|
|
285
286
|
};
|
|
286
287
|
return {
|
|
287
288
|
adapterName: config.adapter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../../src/connectors/jira/connector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,kEAIC;AAwGD,8DAIC;AAKD,oDAsJC;AA7UD,2CAA6B;AAC7B,yDAA6D;AAC7D,qCAAqH;AACrH,6CAAyE;AACzE,qCAAwG;AACxG,uCAAyJ;AACzJ,6CAAsE;AACtE,mDAAoD;AACpD,iDAAsH;AACtH,qDAAuF;AACvF,mDAAoD;AACpD,mEAAmE;AAGnE,yDAAwF;AACxF,uCAAoC;AAEpC;;;;;;;GAOG;AAEH,MAAa,uBAAwB,SAAQ,KAAK;IAC3B;IAArB,YAAqB,OAAiB;QACpC,KAAK,CAAC,oCAAoC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAD7C,YAAO,GAAP,OAAO,CAAU;QAEpC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,0DAKC;AA8BD;;;;GAIG;AACH,SAAgB,2BAA2B,CAAC,KAAY;IACtD,IAAI,KAAK,YAAY,sBAAa;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,KAAK,YAAY,sBAAa;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IAC7G,OAAO,IAAI,CAAC;AACd,CAAC;AAsBD,qGAAqG;AACrG,KAAK,UAAU,MAAM,CAAI,MAAkB;IACzC,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,MAAM,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IACzF,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,MAAkB,EAAE,MAAkB,EAAE,GAAiB;IACrF,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9F,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC;IACpC,gGAAgG;IAChG,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAChG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QAClD,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAA,mCAAoB,EAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;KAC/F,CAAC,CAAC;IACH,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAQ,EAAE;QACzC,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxF,CAAC,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACrC,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IACrI,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,EAAE;QAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAmC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;QAC9B,IAAI,KAAK,YAAY,sBAAa,IAAI,KAAK,CAAC,MAAM,KAAK,uBAAuB,EAAE,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,sHAAsH,CAAC,CAAC;QACvI,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,wDAAwD,gBAAgB,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,YAAY,GAAG,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzD,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAA,gCAAuB,EAAC,UAAU,EAAE,OAAO,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAA,2BAAkB,EAAC,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACrG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACtF,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACnH,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IAC5D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACrG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACzE,CAAC;AAED,mIAAmI;AACtH,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAC1B,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAEvC,4GAA4G;AAC/F,QAAA,yBAAyB,GAAG,yFAAyF,CAAC;AAEnI,iFAAiF;AACpE,QAAA,wBAAwB,GAAG,sEAAsE,CAAC;AAClG,QAAA,6BAA6B,GAAG,mEAAmE,CAAC;AACpG,QAAA,yBAAyB,GAAG,wEAAwE,CAAC;AAElH,wHAAwH;AACxH,SAAgB,yBAAyB,CAAC,MAAyF;IACjI,IAAI,MAAM,CAAC,eAAe;QAAE,OAAO,gCAAwB,CAAC;IAC5D,IAAI,MAAM,CAAC,oBAAoB,KAAK,KAAK;QAAE,OAAO,iCAAyB,CAAC;IAC5E,OAAO,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,qCAA6B,CAAC,CAAC,CAAC,iCAAyB,CAAC;AACtG,CAAC;AAED,iEAAiE;AACpD,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,KAAK,UAAU,oBAAoB,CAAC,OAM1C;IACC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,+EAA+E;IAC/E,+DAA+D;IAC/D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACzF,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,CAAC,IAAI,CAAC,qCAAqC,UAAU,CAAC,MAAM,mCAAmC,CAAC,CAAC;IAC/I,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,iCAAyB,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,2BAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mCAAsB,CAAC,CAAC,CAAC;IACvG,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;IACxB,MAAM,gBAAgB,GAAG,uCAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,+CAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9H,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAE9B,oEAAoE;IACpE,MAAM,eAAe,GAAG,CAAC,GAAe,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAA,sCAAqB,EAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,wBAAgB,CAAC,CAAC;IAC9H,MAAM,aAAa,GAAG,iCAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,yHAAyH;IACzH,IAAA,sCAAmB,EAAC,IAAA,iCAAiB,EAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9E,qHAAqH;IACrH,IAAI,KAAK,GAAqB,IAAI,CAAC;IACnC,MAAM,UAAU,GAAG,IAAA,iCAAoB,EAAC;QACtC,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,SAAS;QAC7B,aAAa;QACb,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,GAAG;QACH,IAAI,EAAE,aAAK;QACX,gBAAgB;KACjB,CAAC,CAAC;IACH,IAAI,OAAO,GAAuB,IAAI,CAAC;IACvC,MAAM,iBAAiB,GAAG,CAAC,KAAiD,EAAQ,EAAE;QACpF,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;QAC/B,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,IAAA,8BAAe,EAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxH,CAAC,CAAC;IACF,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;QAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC/D,iIAAiI;IACjI,IAAI,uBAAuB,GAA6B,IAAI,CAAC;IAC7D,IAAI,eAAe,GAA0B,IAAI,CAAC;IAClD,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,YAAY,GAAG,CAAC,IAA8B,EAAE,KAAiD,EAAQ,EAAE;QAC/G,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;QAC/D,oEAAoE;QACpE,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,oBAAoB,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,UAAU,UAAU,sEAAsE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChI,CAAC;QACD,IAAI,YAAY,IAAI,YAAY,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,6BAA6B,YAAY,CAAC,SAAS,kEAAkE,CAAC,CAAC;QACtI,CAAC;QACD,OAAO,GAAG,IAAI,qBAAW,CAAC;YACxB,GAAG,IAAI;YACP,MAAM;YACN,WAAW,EAAE,MAAM,CAAC,SAAS;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ;YACR,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,aAAa;YACb,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,wBAAgB,CAAC;YACvE,UAAU;YACV,KAAK;YACL,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,GAAG;YACH,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC7E,eAAe,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;YAC/G,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC;QACzG,8GAA8G;QAC9G,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxH,OAAO,CAAC,GAAG,CAAC,GAAG,4BAAoB,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC;IAEF,iJAAiJ;IACjJ,MAAM,eAAe,GAAG,CAAC,IAA8B,EAAE,YAAoB,EAAQ,EAAE;QACrF,gFAAgF;QAChF,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,KAAK,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;gBACtD,IAAI,CAAC,SAAS;oBAAE,OAAO;gBACvB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC7B,uBAAuB,GAAG,KAAK,CAAC,OAAO,CAAC;oBACxC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;wBAAE,OAAO,CAAC,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;gBAC7F,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACzB,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAA,6BAAmB,EAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,IAAI,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;IACvG,CAAC,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,OAAO;QAC3B,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAC9D,UAAU;QACV,eAAe,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YAC3C,iDAAiD;YACjD,IAAI,OAAO,KAAK,SAAS;gBAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;gBAClE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;YAC3C,gHAAgH;YAChH,mGAAmG;YACnG,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,uBAAuB,KAAK,IAAI;oBAC7C,CAAC,CAAC,4DAA4D;oBAC9D,CAAC,CAAC,0CAA0C,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,+FAA+F,CAAC;gBAChL,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,YAAY,0BAA0B,MAAM,EAAE,EAAE,CAAC;YAC5F,CAAC;YACD,OAAO,IAAA,qCAAoB,EAAC,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QACrG,CAAC;QACD,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC9B,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,MAAM,4BAA4B,MAAM,4CAA4C,CAAC,CAAC;QAClH,CAAC;QACD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;gBAAE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;;gBAC3D,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,EAAE,GAAG,EAAE;YACT,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,eAAe;gBAAE,YAAY,CAAC,eAAe,CAAC,CAAC;YACnD,eAAe,GAAG,IAAI,CAAC;YACvB,OAAO,EAAE,IAAI,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../../src/connectors/jira/connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { type FallbackChainEntry } from '../../../utils/fallbackChain';
|
|
|
5
5
|
import type { BackendFamily } from '../../../utils/backendSwitchPlan';
|
|
6
6
|
import type { OperatorSwitchOutcome } from '../../../utils/operatorSwitchPlan';
|
|
7
7
|
import { type ClaudeAuthStatus } from '../../../utils/claudeProfiles';
|
|
8
|
+
import type { AnthropicApiKeyCheck } from '../../../utils/anthropicApiKeyCheck';
|
|
8
9
|
import type { BotCore } from './botCore';
|
|
9
10
|
/**
|
|
10
11
|
* How a profile change reached the topic's live session: the adapter's own answer, plus `restartRequired`
|
|
@@ -15,7 +16,7 @@ export type ClaudeProfileApplyOutcome = ClaudeConfigDirApplyResult | 'restartReq
|
|
|
15
16
|
* What the account picker needs from the bot: the shared core, where profiles live, the CLI status probe,
|
|
16
17
|
* the profile sign-in driver, and the hooks that move live sessions onto a changed pick.
|
|
17
18
|
*/
|
|
18
|
-
export interface ClaudeAccountsPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'editThreadMessage' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral'> {
|
|
19
|
+
export interface ClaudeAccountsPorts extends Pick<BotCore, 'bot' | 'command' | 'getState' | 'replyToThread' | 'editThreadMessage' | 'deleteThreadMessage' | 'authoriseContext' | 'withThreadLocale' | 'checkIsGeneral'> {
|
|
19
20
|
getDataDir: () => string;
|
|
20
21
|
/** The instance zone (`/timezone`) the reset instants are shown in. */
|
|
21
22
|
getInstanceTimezone: () => string;
|
|
@@ -58,6 +59,8 @@ export interface ClaudeAccountsPorts extends Pick<BotCore, 'bot' | 'command' | '
|
|
|
58
59
|
applyAutoSwitch: (key: SessionKey, isGeneral: boolean, enabled: boolean) => Promise<string>;
|
|
59
60
|
/** `~/.claude`, where the default login lives; injectable so a test signs out a temp directory, never the real one. */
|
|
60
61
|
getHomeClaudeDir?: () => string;
|
|
62
|
+
/** Whether the API accepts a pasted key (`utils/anthropicApiKeyCheck.ts`); injectable so a test never reaches the network. */
|
|
63
|
+
verifyAnthropicApiKey: (apiKey: string) => Promise<AnthropicApiKeyCheck>;
|
|
61
64
|
}
|
|
62
65
|
/**
|
|
63
66
|
* @description Build the `/account` feature over its ports: the command, its buttons, the name capture the
|
|
@@ -69,8 +72,9 @@ export declare function createClaudeAccounts(ports: ClaudeAccountsPorts): {
|
|
|
69
72
|
registerClaudeAccountCallbacks: () => void;
|
|
70
73
|
checkIsAwaitingProfileName: (key: SessionKey) => boolean;
|
|
71
74
|
cancelProfileNameCapture: (key: SessionKey) => boolean;
|
|
72
|
-
submitProfileName: (key: SessionKey, text: string) => Promise<void>;
|
|
75
|
+
submitProfileName: (key: SessionKey, text: string, messageId?: number) => Promise<void>;
|
|
73
76
|
pickClaudeAccount: (key: SessionKey, isGeneral: boolean, name: string) => Promise<string | null>;
|
|
74
77
|
onClaudeProfileAuthStatus: (_key: SessionKey, profile: ClaudeLoginProfile, status: ClaudeAuthStatus | null) => Promise<void>;
|
|
78
|
+
onClaudeProfileApiKey: (_key: SessionKey, profile: ClaudeLoginProfile, apiKey: string) => Promise<string>;
|
|
75
79
|
};
|
|
76
80
|
//# sourceMappingURL=claudeAccounts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claudeAccounts.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/claudeAccounts.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAoF,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACzJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"claudeAccounts.d.ts","sourceRoot":"","sources":["../../../../src/connectors/telegram/commands/claudeAccounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,12 +32,12 @@ const providerSnapshotLimit = 50;
|
|
|
32
32
|
* auth-status sink the sign-in driver reports to.
|
|
33
33
|
*/
|
|
34
34
|
function createClaudeAccounts(ports) {
|
|
35
|
-
const { bot, command, getState, replyToThread, editThreadMessage, authoriseContext, withThreadLocale, checkIsGeneral, getDataDir, getInstanceTimezone, refreshClaudeUsage, readClaudeAuthStatus, startClaudeProfileLogin, applyClaudeProfile, applyClaudeProfileEverywhere, switchTopicByOperator, detectOpenCodeProviders, listOpenCodeModels, getTopicRun, disconnectOpenCodeProvider, startOpenCodeConnect, applyAutoSwitch, getHomeClaudeDir, } = ports;
|
|
35
|
+
const { bot, command, getState, replyToThread, editThreadMessage, deleteThreadMessage, authoriseContext, withThreadLocale, checkIsGeneral, getDataDir, getInstanceTimezone, refreshClaudeUsage, readClaudeAuthStatus, startClaudeProfileLogin, applyClaudeProfile, applyClaudeProfileEverywhere, switchTopicByOperator, detectOpenCodeProviders, listOpenCodeModels, getTopicRun, disconnectOpenCodeProvider, startOpenCodeConnect, applyAutoSwitch, getHomeClaudeDir, verifyAnthropicApiKey, } = ports;
|
|
36
36
|
const answerWithWholeText = (0, callbackToast_1.createWholeTextAnswerer)(replyToThread);
|
|
37
37
|
/**
|
|
38
|
-
* Topics whose next plain message is an answer to «➕»: the name of a new Claude profile
|
|
39
|
-
* OpenCode provider to connect. One capture per topic; armed by the buttons /
|
|
40
|
-
* command or `/esc`.
|
|
38
|
+
* Topics whose next plain message is an answer to «➕»: the name of a new Claude profile (a subscription one, or one
|
|
39
|
+
* billed to the API), or the id of the OpenCode provider to connect. One capture per topic; armed by the buttons /
|
|
40
|
+
* `add`, disarmed by a slash command or `/esc`.
|
|
41
41
|
*/
|
|
42
42
|
const awaitingProfileName = new Map();
|
|
43
43
|
/** The OpenCode providers each screen MESSAGE listed — its disconnect buttons carry an index into this. */
|
|
@@ -91,6 +91,10 @@ function createClaudeAccounts(ports) {
|
|
|
91
91
|
function checkIsKnownProfile(name) {
|
|
92
92
|
return name === claudeProfiles_1.defaultClaudeProfileName || getState().getClaudeProfileRecord(name) !== undefined;
|
|
93
93
|
}
|
|
94
|
+
/** How a known profile pays, as last recorded (`default` from its hidden record); `null` when never recorded. */
|
|
95
|
+
function readBilling(name) {
|
|
96
|
+
return getState().getClaudeProfileInfo(name)?.billing ?? null;
|
|
97
|
+
}
|
|
94
98
|
/**
|
|
95
99
|
* @description Re-read every added profile's auth status (and the default's) and persist what changed, so the
|
|
96
100
|
* picker shows the CLI's truth, not the state of the last sign-in. One short `claude auth status` per profile,
|
|
@@ -120,6 +124,8 @@ function createClaudeAccounts(ports) {
|
|
|
120
124
|
await getState().upsertClaudeProfileRecord(name, {
|
|
121
125
|
// A removed `default` comes back by itself the moment it is signed in again.
|
|
122
126
|
...(name === claudeProfiles_1.defaultClaudeProfileName && status.loggedIn ? { isRemoved: undefined } : {}),
|
|
127
|
+
// The CLI's word on how the account pays wins over the kind it was added as, both ways.
|
|
128
|
+
...(status.billing !== null ? { billing: status.billing } : {}),
|
|
123
129
|
loggedIn: status.loggedIn,
|
|
124
130
|
email: status.email ?? undefined,
|
|
125
131
|
subscriptionType: status.subscriptionType ?? undefined,
|
|
@@ -127,19 +133,62 @@ function createClaudeAccounts(ports) {
|
|
|
127
133
|
statusCheckedAt: new Date().toISOString(),
|
|
128
134
|
});
|
|
129
135
|
}
|
|
130
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* The sign-in driver's report at the end of a profile sign-in: record it, then move live sessions onto it. A Console
|
|
138
|
+
* sign-in that created its key replaces an older pasted key of the same account (the latest sign-in wins); the record
|
|
139
|
+
* then takes the probe the sessions see — a failed Console sign-in over a working pasted key leaves the account
|
|
140
|
+
* signed in.
|
|
141
|
+
*/
|
|
131
142
|
async function onClaudeProfileAuthStatus(_key, profile, status) {
|
|
132
|
-
|
|
143
|
+
let recorded = status;
|
|
144
|
+
if (profile.billing === 'api' && profile.configDir !== null) {
|
|
145
|
+
if (status?.loggedIn && status.apiKeySource === claudeProfiles_1.claudeConsoleLoginKeySource)
|
|
146
|
+
(0, claudeProfiles_1.removeClaudeProfileApiKey)(profile.configDir);
|
|
147
|
+
recorded = await readClaudeAuthStatus(profile.configDir) ?? status;
|
|
148
|
+
}
|
|
149
|
+
await recordProfileStatus(profile.name, recorded);
|
|
150
|
+
// A sign-in is the operator acting on the account: a used-up-credits mark ends with it.
|
|
151
|
+
if (recorded?.loggedIn)
|
|
152
|
+
getState().setClaudeProfileCreditExhausted(profile.name, null);
|
|
133
153
|
// A topic may already have picked the profile before its sign-in: its sleeping session resumes under it by
|
|
134
154
|
// itself, and a live one is re-spawned now that the account exists.
|
|
155
|
+
if (recorded?.loggedIn)
|
|
156
|
+
await applyClaudeProfileEverywhere();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @description An API key pasted into an API account's sign-in (the driver already deleted the message and stopped
|
|
160
|
+
* the Console login): asked of the API first — a key it refuses is not stored — then kept in the profile's own
|
|
161
|
+
* directory (`0600`, read by the `apiKeyHelper` of that profile's launches only), the account probed and recorded,
|
|
162
|
+
* and live topics moved onto it. Returns the line to post; the key itself is never logged or echoed.
|
|
163
|
+
*/
|
|
164
|
+
async function onClaudeProfileApiKey(_key, profile, apiKey) {
|
|
165
|
+
if (profile.configDir === null || !checkIsKnownProfile(profile.name))
|
|
166
|
+
return (0, i18n_1.t)('account.apiKeyNoDirectory', { name: profile.name });
|
|
167
|
+
const check = await verifyAnthropicApiKey(apiKey);
|
|
168
|
+
if (check === 'invalid')
|
|
169
|
+
return (0, i18n_1.t)('account.apiKeyRejected', { name: profile.name });
|
|
170
|
+
try {
|
|
171
|
+
(0, claudeProfiles_1.createClaudeProfileLayout)({ dataDir: getDataDir(), name: profile.name });
|
|
172
|
+
(0, claudeProfiles_1.writeClaudeProfileApiKey)(profile.configDir, apiKey);
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
console.error(`[account] storing the API key of ${profile.name} failed:`, e instanceof Error ? e.message : e);
|
|
176
|
+
return (0, i18n_1.t)('account.createFailed', { name: profile.name });
|
|
177
|
+
}
|
|
178
|
+
const status = await readClaudeAuthStatus(profile.configDir);
|
|
179
|
+
await getState().upsertClaudeProfileRecord(profile.name, { billing: 'api' });
|
|
180
|
+
await recordProfileStatus(profile.name, status);
|
|
181
|
+
getState().setClaudeProfileCreditExhausted(profile.name, null);
|
|
135
182
|
if (status?.loggedIn)
|
|
136
183
|
await applyClaudeProfileEverywhere();
|
|
184
|
+
console.log(`[account] ${profile.name}: an API key was stored (${check === 'valid' ? 'accepted by the API' : 'not verified'})`);
|
|
185
|
+
return (0, i18n_1.t)(check === 'valid' ? 'account.apiKeySaved' : 'account.apiKeySavedUnverified', { name: profile.name });
|
|
137
186
|
}
|
|
138
187
|
function formatRow(row) {
|
|
139
188
|
const marker = row.isActive ? '✓ ' : '• ';
|
|
140
|
-
const account = row.loggedIn === false || (row.loggedIn === undefined && row.email === null)
|
|
189
|
+
const account = row.loggedIn === false || (row.loggedIn === undefined && row.email === null && row.billing !== 'api')
|
|
141
190
|
? (0, i18n_1.t)('account.row.loggedOut')
|
|
142
|
-
:
|
|
191
|
+
: formatAccountDetail(row);
|
|
143
192
|
const users = row.topicCount > 0 ? (0, i18n_1.t)('account.row.topics', { count: row.topicCount }) : '';
|
|
144
193
|
return `${marker}${row.name} — ${account}${users}${formatUsageLines(row.name)}`;
|
|
145
194
|
}
|
|
@@ -151,12 +200,21 @@ function createClaudeAccounts(ports) {
|
|
|
151
200
|
const lines = (0, claudeProfileUsageLines_1.formatClaudeProfileUsageLines)(getState().getClaudeProfileInfo(name), getInstanceTimezone(), Date.now());
|
|
152
201
|
return lines.map((line) => `\n${line}`).join('');
|
|
153
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* What a signed-in account is: `ops@example.com, personal max`; billed to the API `ops@example.com, 💳 API · pay per
|
|
205
|
+
* use`, or `💳 API key · pay per use` for a pasted key (no email to show).
|
|
206
|
+
*/
|
|
207
|
+
function formatAccountDetail(row) {
|
|
208
|
+
if (row.billing === 'api')
|
|
209
|
+
return row.email === null ? (0, i18n_1.t)('account.kind.apiKey') : `${row.email}, ${(0, i18n_1.t)('account.kind.api')}`;
|
|
210
|
+
return `${row.email ?? '?'}, ${(0, i18n_1.t)(`account.kind.${row.kind}`, { plan: row.subscriptionType ?? '?' })}`;
|
|
211
|
+
}
|
|
154
212
|
function formatRowButton(row) {
|
|
155
213
|
const marker = row.isActive ? '✓ ' : '';
|
|
156
|
-
const detail = row.loggedIn === false || (row.loggedIn === undefined && row.email === null)
|
|
214
|
+
const detail = row.loggedIn === false || (row.loggedIn === undefined && row.email === null && row.billing !== 'api')
|
|
157
215
|
? (0, i18n_1.t)('account.row.loggedOut')
|
|
158
216
|
: row.email ?? row.name;
|
|
159
|
-
return `${marker}${row.name} · ${detail}`;
|
|
217
|
+
return `${marker}${row.name} · ${detail}${row.billing === 'api' ? ' 💳' : ''}`;
|
|
160
218
|
}
|
|
161
219
|
async function buildPickerRows(key, isGeneral) {
|
|
162
220
|
// The usage poll runs beside the status probes; a snapshot younger than a minute is kept.
|
|
@@ -170,6 +228,7 @@ function createClaudeAccounts(ports) {
|
|
|
170
228
|
loggedIn: defaultStatus?.loggedIn,
|
|
171
229
|
email: defaultStatus?.email ?? null,
|
|
172
230
|
subscriptionType: defaultStatus?.subscriptionType ?? null,
|
|
231
|
+
billing: defaultStatus?.billing ?? readBilling(claudeProfiles_1.defaultClaudeProfileName),
|
|
173
232
|
},
|
|
174
233
|
activeName: resolveActiveName(key, isGeneral),
|
|
175
234
|
topicCounts,
|
|
@@ -236,6 +295,7 @@ function createClaudeAccounts(ports) {
|
|
|
236
295
|
telegraf_1.Markup.button.callback((0, i18n_1.t)('accounts.addClaudeButton'), claudeAccountPickerPlan_1.accountAddCallback),
|
|
237
296
|
telegraf_1.Markup.button.callback((0, i18n_1.t)('accounts.addProviderButton'), claudeAccountPickerPlan_1.accountAddProviderCallback),
|
|
238
297
|
]);
|
|
298
|
+
keyboardRows.push([telegraf_1.Markup.button.callback((0, i18n_1.t)('accounts.addClaudeApiButton'), claudeAccountPickerPlan_1.accountAddApiCallback)]);
|
|
239
299
|
if (!isGeneral && getState().getClaudeProfileOverride(key) !== undefined) {
|
|
240
300
|
keyboardRows.push([
|
|
241
301
|
telegraf_1.Markup.button.callback((0, i18n_1.t)('account.followButton', { name: getState().getClaudeProfileGlobalDefault() }), claudeAccountPickerPlan_1.accountFollowDefaultCallback),
|
|
@@ -286,13 +346,19 @@ function createClaudeAccounts(ports) {
|
|
|
286
346
|
if (status !== null && !status.loggedIn)
|
|
287
347
|
return (0, i18n_1.t)('account.notLoggedIn', { name });
|
|
288
348
|
}
|
|
349
|
+
// An account billed to the API says so whenever it is picked: from now on that topic (or every topic following General) costs money per request.
|
|
350
|
+
const meteredNote = readBilling(name) === 'api' ? `\n${(0, i18n_1.t)(isGeneral ? 'account.pickedApiGeneral' : 'account.pickedApi')}` : '';
|
|
289
351
|
if (isGeneral) {
|
|
352
|
+
// The operator's pick is the act that ends a used-up-credits mark (in a topic the switch path clears it).
|
|
353
|
+
getState().setClaudeProfileCreditExhausted(name, null);
|
|
290
354
|
await getState().setClaudeProfileGlobalDefault(name);
|
|
291
355
|
await applyClaudeProfileEverywhere();
|
|
292
|
-
return (0, i18n_1.t)('account.setGlobal', { name })
|
|
356
|
+
return `${(0, i18n_1.t)('account.setGlobal', { name })}${meteredNote}`;
|
|
293
357
|
}
|
|
294
358
|
const outcome = await switchTopicByOperator(key, { backend: 'claude', profile: name, model: null });
|
|
295
|
-
|
|
359
|
+
if (outcome.kind === 'asked')
|
|
360
|
+
return null;
|
|
361
|
+
return outcome.kind === 'switched' ? `${outcome.text}${meteredNote}` : outcome.text;
|
|
296
362
|
}
|
|
297
363
|
/** A topic drops its own pick; its session follows the instance default from now on. */
|
|
298
364
|
async function applyFollowDefault(key) {
|
|
@@ -304,9 +370,10 @@ function createClaudeAccounts(ports) {
|
|
|
304
370
|
/**
|
|
305
371
|
* @description Create a profile and start its sign-in: the directory with its shared links, the registry
|
|
306
372
|
* record (flushed before the sign-in, so a crash never leaves a signed-in directory the picker cannot see),
|
|
307
|
-
* then the relay posts the link.
|
|
373
|
+
* then the relay posts the link. An API account (`billing: 'api'`) is recorded as such and signs in to the Claude
|
|
374
|
+
* Console (`--console`), or takes a pasted API key. Returns the message to post BEFORE the link, or the refusal.
|
|
308
375
|
*/
|
|
309
|
-
async function addProfile(key, rawName) {
|
|
376
|
+
async function addProfile(key, rawName, billing = 'subscription') {
|
|
310
377
|
const name = (0, claudeProfiles_1.normaliseClaudeProfileName)(rawName);
|
|
311
378
|
if (!(0, claudeProfiles_1.checkIsValidClaudeProfileName)(name))
|
|
312
379
|
return (0, i18n_1.t)('account.invalidName', { max: claudeProfiles_1.claudeProfileNameMaxLength });
|
|
@@ -320,9 +387,9 @@ function createClaudeAccounts(ports) {
|
|
|
320
387
|
console.error(`[account] profile layout for ${name} failed:`, e instanceof Error ? e.message : e);
|
|
321
388
|
return (0, i18n_1.t)('account.createFailed', { name });
|
|
322
389
|
}
|
|
323
|
-
await getState().upsertClaudeProfileRecord(name, { createdAt: new Date().toISOString(), loggedIn: false });
|
|
324
|
-
await replyToThread(key, (0, i18n_1.t)('account.created', { name }));
|
|
325
|
-
await startClaudeProfileLogin(key, { name, configDir });
|
|
390
|
+
await getState().upsertClaudeProfileRecord(name, { createdAt: new Date().toISOString(), loggedIn: false, ...(billing === 'api' ? { billing } : {}) });
|
|
391
|
+
await replyToThread(key, (0, i18n_1.t)(billing === 'api' ? 'account.createdApi' : 'account.created', { name }));
|
|
392
|
+
await startClaudeProfileLogin(key, { name, configDir, ...(billing === 'api' ? { billing } : {}) });
|
|
326
393
|
return '';
|
|
327
394
|
}
|
|
328
395
|
/** Sign a known profile in (again); `default` is the plain `~/.claude` login. */
|
|
@@ -333,7 +400,9 @@ function createClaudeAccounts(ports) {
|
|
|
333
400
|
// The directory may be gone (a hand-cleaned DATA_DIR): recreate the layout so the login has a home.
|
|
334
401
|
(0, claudeProfiles_1.createClaudeProfileLayout)({ dataDir: getDataDir(), name });
|
|
335
402
|
}
|
|
336
|
-
|
|
403
|
+
// An API account signs in to the Claude Console again (or takes a pasted key), never the subscription.
|
|
404
|
+
const billing = readBilling(name);
|
|
405
|
+
await startClaudeProfileLogin(key, { name, configDir: resolveDir(name), ...(billing === 'api' ? { billing } : {}) });
|
|
337
406
|
return '';
|
|
338
407
|
}
|
|
339
408
|
/**
|
|
@@ -418,19 +487,30 @@ function createClaudeAccounts(ports) {
|
|
|
418
487
|
awaitingProfileName.delete((0, sessionKey_1.keyToString)(key));
|
|
419
488
|
await startOpenCodeConnect(key, providerId);
|
|
420
489
|
}
|
|
421
|
-
/**
|
|
422
|
-
|
|
423
|
-
|
|
490
|
+
/**
|
|
491
|
+
* The captured answer of «➕»: a Claude profile name (a subscription or an API account), or an OpenCode provider id,
|
|
492
|
+
* by what was asked. An API key pasted where the name was asked is a secret: deleted at once (`messageId`), never
|
|
493
|
+
* echoed, and the name is asked again — the key belongs to the sign-in that follows.
|
|
494
|
+
*/
|
|
495
|
+
async function submitProfileName(key, text, messageId) {
|
|
496
|
+
const asked = awaitingProfileName.get((0, sessionKey_1.keyToString)(key));
|
|
497
|
+
if (asked === 'providerId') {
|
|
424
498
|
await submitProviderId(key, text);
|
|
425
499
|
return;
|
|
426
500
|
}
|
|
501
|
+
if ((0, claudeProfiles_1.checkIsAnthropicSecretLike)(text)) {
|
|
502
|
+
if (messageId !== undefined)
|
|
503
|
+
await deleteThreadMessage(key, messageId);
|
|
504
|
+
await replyToThread(key, `${(0, i18n_1.t)('account.apiKeyAsName', { max: claudeProfiles_1.claudeProfileNameMaxLength })}\n${(0, i18n_1.t)('login.esc_hint')}`);
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
427
507
|
const name = (0, claudeProfiles_1.normaliseClaudeProfileName)(text);
|
|
428
508
|
if (!(0, claudeProfiles_1.checkIsValidClaudeProfileName)(name)) {
|
|
429
509
|
await replyToThread(key, `${(0, i18n_1.t)('account.invalidName', { max: claudeProfiles_1.claudeProfileNameMaxLength })}\n${(0, i18n_1.t)('login.esc_hint')}`);
|
|
430
510
|
return;
|
|
431
511
|
}
|
|
432
512
|
awaitingProfileName.delete((0, sessionKey_1.keyToString)(key));
|
|
433
|
-
const message = await addProfile(key, name);
|
|
513
|
+
const message = await addProfile(key, name, asked === 'claudeApiName' ? 'api' : 'subscription');
|
|
434
514
|
if (message)
|
|
435
515
|
await replyToThread(key, message);
|
|
436
516
|
}
|
|
@@ -480,25 +560,38 @@ function createClaudeAccounts(ports) {
|
|
|
480
560
|
}
|
|
481
561
|
// ── the command ──
|
|
482
562
|
function registerClaudeAccountCommands() {
|
|
483
|
-
// `/accounts` (hidden alias `/account`) — bare: the screen. `add <name>` creates a profile and signs it in
|
|
563
|
+
// `/accounts` (hidden alias `/account`) — bare: the screen. `add <name>` creates a profile and signs it in (`add <name> api`:
|
|
564
|
+
// an account billed to a Claude Console organization's API balance); `use <name>` switches
|
|
484
565
|
// this topic (General: the instance default); `login <name>` signs a profile in again; `remove <name>`
|
|
485
566
|
// deletes one. Not gated on a session: the pick is read at the next spawn, so it must be settable first.
|
|
486
|
-
command(['account', 'accounts'], async (
|
|
567
|
+
command(['account', 'accounts'], async (ctx, key, parsed) => {
|
|
568
|
+
// A key typed on the command line (`/accounts add console api sk-ant-…`) is a secret like a pasted one: the message
|
|
569
|
+
// is deleted, the key never echoed nor taken — it belongs to the sign-in that follows.
|
|
570
|
+
if ((0, claudeProfiles_1.checkIsAnthropicSecretLike)(parsed.argsText)) {
|
|
571
|
+
await deleteThreadMessage(key, ctx.message.message_id);
|
|
572
|
+
await replyToThread(key, (0, i18n_1.t)('account.apiKeyInCommand'));
|
|
573
|
+
return;
|
|
574
|
+
}
|
|
487
575
|
const isGeneral = checkIsGeneral(key);
|
|
488
576
|
const [verb = '', ...rest] = parsed.args;
|
|
489
577
|
const name = (0, claudeProfiles_1.normaliseClaudeProfileName)(rest.join(' '));
|
|
578
|
+
// `add <name> api`: the last word names the billing; the name is what precedes it.
|
|
579
|
+
const isApiAdd = verb.toLowerCase() === 'add' && rest.length >= 2 && rest.at(-1)?.toLowerCase() === 'api';
|
|
490
580
|
switch (verb.toLowerCase()) {
|
|
491
581
|
case '': {
|
|
492
582
|
await postPicker(key, isGeneral);
|
|
493
583
|
return;
|
|
494
584
|
}
|
|
495
585
|
case 'add': {
|
|
496
|
-
if (!name) {
|
|
497
|
-
|
|
498
|
-
|
|
586
|
+
if (!name || name === 'api') {
|
|
587
|
+
const asked = name === 'api' ? 'claudeApiName' : 'claudeName';
|
|
588
|
+
awaitingProfileName.set((0, sessionKey_1.keyToString)(key), asked);
|
|
589
|
+
await replyToThread(key, `${(0, i18n_1.t)(asked === 'claudeApiName' ? 'account.askNameApi' : 'account.askName', { max: claudeProfiles_1.claudeProfileNameMaxLength })}\n${(0, i18n_1.t)('login.esc_hint')}`);
|
|
499
590
|
return;
|
|
500
591
|
}
|
|
501
|
-
const message =
|
|
592
|
+
const message = isApiAdd
|
|
593
|
+
? await addProfile(key, (0, claudeProfiles_1.normaliseClaudeProfileName)(rest.slice(0, -1).join(' ')), 'api')
|
|
594
|
+
: await addProfile(key, name);
|
|
502
595
|
if (message)
|
|
503
596
|
await replyToThread(key, message);
|
|
504
597
|
return;
|
|
@@ -581,6 +674,11 @@ function createClaudeAccounts(ports) {
|
|
|
581
674
|
await (0, callbackToast_1.answerCallbackQuerySafely)(ctx);
|
|
582
675
|
await replyToThread(key, `${(0, i18n_1.t)('account.askName', { max: claudeProfiles_1.claudeProfileNameMaxLength })}\n${(0, i18n_1.t)('login.esc_hint')}`);
|
|
583
676
|
}));
|
|
677
|
+
bot.action(claudeAccountPickerPlan_1.accountAddApiCallback, (ctx) => handleTap(ctx, async (key) => {
|
|
678
|
+
awaitingProfileName.set((0, sessionKey_1.keyToString)(key), 'claudeApiName');
|
|
679
|
+
await (0, callbackToast_1.answerCallbackQuerySafely)(ctx);
|
|
680
|
+
await replyToThread(key, `${(0, i18n_1.t)('account.askNameApi', { max: claudeProfiles_1.claudeProfileNameMaxLength })}\n${(0, i18n_1.t)('login.esc_hint')}`);
|
|
681
|
+
}));
|
|
584
682
|
bot.action(claudeAccountPickerPlan_1.accountAddProviderCallback, (ctx) => handleTap(ctx, async (key) => {
|
|
585
683
|
awaitingProfileName.set((0, sessionKey_1.keyToString)(key), 'providerId');
|
|
586
684
|
await (0, callbackToast_1.answerCallbackQuerySafely)(ctx);
|
|
@@ -740,6 +838,7 @@ function createClaudeAccounts(ports) {
|
|
|
740
838
|
submitProfileName,
|
|
741
839
|
pickClaudeAccount: applyPick,
|
|
742
840
|
onClaudeProfileAuthStatus,
|
|
841
|
+
onClaudeProfileApiKey,
|
|
743
842
|
};
|
|
744
843
|
}
|
|
745
844
|
//# sourceMappingURL=claudeAccounts.js.map
|