agent-afk 5.334.0 → 5.335.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 (135) hide show
  1. package/dist/agent/auth/keychain.d.ts +4 -1
  2. package/dist/agent/daemon/handoff-store.d.ts +1 -1
  3. package/dist/agent/daemon/lease-store.d.ts +1 -0
  4. package/dist/agent/providers/anthropic-direct/provider-query-setup.credential.d.ts +1 -0
  5. package/dist/agent/providers/anthropic-direct/provider-query-setup.d.ts +1 -0
  6. package/dist/agent/providers/anthropic-direct/query/retry-context.d.ts +1 -0
  7. package/dist/agent/providers/anthropic-direct/query/retry-layer.d.ts +7 -0
  8. package/dist/agent/providers/anthropic-direct/query/usage-limit-catch-up.d.ts +3 -1
  9. package/dist/agent/providers/anthropic-direct/query-options.d.ts +1 -0
  10. package/dist/agent/session/preamble-strip.d.ts +1 -0
  11. package/dist/agent/session-control/index.d.ts +1 -1
  12. package/dist/agent/session-control/preferences.d.ts +1 -0
  13. package/dist/agent/session-ledger-project.d.ts +3 -0
  14. package/dist/agent/session-ledger-segments.d.ts +39 -0
  15. package/dist/agent/session-ledger.d.ts +2 -0
  16. package/dist/agent/trace/events.d.ts +2 -0
  17. package/dist/agent/trace/events.session-phase.d.ts +2 -0
  18. package/dist/agent/trace/types.session-phase.d.ts +1 -1
  19. package/dist/cli/commands/interactive/tool-lane.d.ts +2 -0
  20. package/dist/cli/commands/interactive/tool-lane.flush.d.ts +1 -0
  21. package/dist/cli/input/file-picker-predicate.d.ts +1 -0
  22. package/dist/cli/input/trigger.d.ts +1 -0
  23. package/dist/cli/session-store.d.ts +2 -0
  24. package/dist/cli/slash/commands/afk-md/targets.d.ts +1 -1
  25. package/dist/cli/slash/types.d.ts +2 -0
  26. package/dist/cli.mjs +516 -516
  27. package/dist/index.mjs +373 -373
  28. package/dist/insights/html.d.ts +1 -1
  29. package/dist/insights/html.helpers.d.ts +3 -0
  30. package/dist/telegram.mjs +393 -393
  31. package/dist/utils/git.d.ts +1 -0
  32. package/dist/web-server/elicitation-web.d.ts +1 -0
  33. package/dist/web-server/live-broker.d.ts +28 -0
  34. package/dist/web-server/model-catalog-groups.d.ts +19 -0
  35. package/dist/web-server/routes.commands.d.ts +1 -0
  36. package/dist/web-server/routes.commands.watchdog.d.ts +8 -0
  37. package/dist/web-server/routes.d.ts +1 -1
  38. package/dist/web-server/routes.models.d.ts +1 -1
  39. package/dist/web-server/routes.rewind.d.ts +3 -0
  40. package/dist/web-server/server.live.d.ts +10 -0
  41. package/dist/web-server/server.schedules.d.ts +2 -0
  42. package/dist/web-server/session-name-head.d.ts +6 -0
  43. package/dist/web-server/session-owner.autosave.d.ts +6 -1
  44. package/dist/web-server/session-owner.d.ts +5 -0
  45. package/dist/web-server/session-owner.mcp-warm.d.ts +6 -0
  46. package/dist/web-server/session-owner.projection.d.ts +16 -1
  47. package/dist/web-server/session-owner.wiring.d.ts +1 -0
  48. package/dist/web-server/session-source.d.ts +2 -0
  49. package/dist/web-server/shared/command-wire.d.ts +1 -0
  50. package/dist/web-server/shared/ledger-adapter.d.ts +7 -0
  51. package/dist/web-server/shared/live-wire.d.ts +24 -0
  52. package/dist/web-server/stream-route.d.ts +2 -1
  53. package/dist/web-ui-assets/assets/{angular-html-G2cKI8s3.js → angular-html-CGby4rdN.js} +1 -1
  54. package/dist/web-ui-assets/assets/{angular-ts-Dbg6n4y8.js → angular-ts-CWecJxeS.js} +1 -1
  55. package/dist/web-ui-assets/assets/{apl-D64VMgkV.js → apl-CQJLvokg.js} +1 -1
  56. package/dist/web-ui-assets/assets/{astro-Cl3AHcKf.js → astro-D6P7etYm.js} +1 -1
  57. package/dist/web-ui-assets/assets/{blade-BaqLOt4E.js → blade-B_syPIo5.js} +1 -1
  58. package/dist/web-ui-assets/assets/{c-CdaCEkA3.js → c-DJnZ7D_v.js} +1 -1
  59. package/dist/web-ui-assets/assets/{chapel-jSWw1lD8.js → chapel-CwJiH1oz.js} +1 -1
  60. package/dist/web-ui-assets/assets/{cobol-B3FAur3H.js → cobol-DhDMPXHb.js} +1 -1
  61. package/dist/web-ui-assets/assets/{coffee-C_YNnHKr.js → coffee-pjMGiauK.js} +1 -1
  62. package/dist/web-ui-assets/assets/{cpp-k2DmhdJn.js → cpp-DOvBr8ik.js} +1 -1
  63. package/dist/web-ui-assets/assets/{crystal-D0ZAEmEr.js → crystal-BoEUmsxb.js} +1 -1
  64. package/dist/web-ui-assets/assets/{css-D7ctuinT.js → css-B0rzsnnS.js} +1 -1
  65. package/dist/web-ui-assets/assets/dist-BqRGew0s.js +153 -0
  66. package/dist/web-ui-assets/assets/{edge-BT_sLNqb.js → edge-CUnkNqS-.js} +1 -1
  67. package/dist/web-ui-assets/assets/{elixir-BY-WcCQZ.js → elixir-C86qk8wq.js} +1 -1
  68. package/dist/web-ui-assets/assets/{elm-Bh9xmoSq.js → elm-D5Kj35b8.js} +1 -1
  69. package/dist/web-ui-assets/assets/{erb-D0HA_2hb.js → erb-CzdX9WmJ.js} +1 -1
  70. package/dist/web-ui-assets/assets/{git-rebase-phN5MgDL.js → git-rebase-BDh-Em6U.js} +1 -1
  71. package/dist/web-ui-assets/assets/{glimmer-js-p7ASjwLN.js → glimmer-js-DYSGQ13V.js} +1 -1
  72. package/dist/web-ui-assets/assets/{glimmer-ts-Dnn2i1-n.js → glimmer-ts-BNcakseI.js} +1 -1
  73. package/dist/web-ui-assets/assets/{glsl-kr7Sct5s.js → glsl-CCikFpzO.js} +1 -1
  74. package/dist/web-ui-assets/assets/{graphql-GY0lkyG6.js → graphql--BnF_OCZ.js} +1 -1
  75. package/dist/web-ui-assets/assets/{hack-CSnhnTh1.js → hack-BFlZESOv.js} +1 -1
  76. package/dist/web-ui-assets/assets/{haml-COJeGn3e.js → haml-Crrd40xD.js} +1 -1
  77. package/dist/web-ui-assets/assets/{handlebars-DcGpplin.js → handlebars-CNmaX2Gn.js} +1 -1
  78. package/dist/web-ui-assets/assets/{html-C_-nF5jA.js → html-DOqbnBCU.js} +1 -1
  79. package/dist/web-ui-assets/assets/{html-derivative-65GvQF5H.js → html-derivative-CETo96ct.js} +1 -1
  80. package/dist/web-ui-assets/assets/{http-CR-Y2vaj.js → http-DhOdqLhY.js} +1 -1
  81. package/dist/web-ui-assets/assets/{hurl-CT655Xcj.js → hurl-DCnWwPvH.js} +1 -1
  82. package/dist/web-ui-assets/assets/index-BFlteB-V.js +94 -0
  83. package/dist/web-ui-assets/assets/index-C6Xq_kK1.css +2 -0
  84. package/dist/web-ui-assets/assets/{java-BfXOkHiS.js → java-CnsooHft.js} +1 -1
  85. package/dist/web-ui-assets/assets/{javascript-bUx3f4E6.js → javascript-CI17tW_X.js} +1 -1
  86. package/dist/web-ui-assets/assets/{jinja-CeQJOvgo.js → jinja-DzZt4dze.js} +1 -1
  87. package/dist/web-ui-assets/assets/{jison-CDdJF1T3.js → jison-C_wtEGZd.js} +1 -1
  88. package/dist/web-ui-assets/assets/{json-CNUeAnq3.js → json-YF-Ww_JQ.js} +1 -1
  89. package/dist/web-ui-assets/assets/{jsx-jBPPj-2P.js → jsx-CHWO1Eyj.js} +1 -1
  90. package/dist/web-ui-assets/assets/{julia-Ffo4oiNj.js → julia-DwAew3DL.js} +1 -1
  91. package/dist/web-ui-assets/assets/{just-WoqMhLPN.js → just-CZoA6aZT.js} +1 -1
  92. package/dist/web-ui-assets/assets/{latex-DvTPJWnQ.js → latex-DX2xQe1n.js} +1 -1
  93. package/dist/web-ui-assets/assets/{liquid-BENhv3uZ.js → liquid-AfUcFT26.js} +1 -1
  94. package/dist/web-ui-assets/assets/{lua-BuWrCSeh.js → lua-C2cHMM8Z.js} +1 -1
  95. package/dist/web-ui-assets/assets/{marko-C57EDP9e.js → marko-DntcaETU.js} +1 -1
  96. package/dist/web-ui-assets/assets/{mdc-DTwJqrEn.js → mdc-CKuI14uF.js} +1 -1
  97. package/dist/web-ui-assets/assets/{nginx-btcrmW_3.js → nginx-BUZc8xEQ.js} +1 -1
  98. package/dist/web-ui-assets/assets/{nim-0qpAss6M.js → nim-BDiC38_I.js} +1 -1
  99. package/dist/web-ui-assets/assets/{org-ChOz5H9b.js → org-CWIZIDsu.js} +1 -1
  100. package/dist/web-ui-assets/assets/{perl-DkGTCu5B.js → perl-CqfKDEuA.js} +1 -1
  101. package/dist/web-ui-assets/assets/{php-BXq74HRi.js → php-C9t9xzO6.js} +1 -1
  102. package/dist/web-ui-assets/assets/{pug-VBly3Hrp.js → pug-BXdJu9Xj.js} +1 -1
  103. package/dist/web-ui-assets/assets/{qml-By9BHV0E.js → qml-CXLc9Ley.js} +1 -1
  104. package/dist/web-ui-assets/assets/{r-wD-EKGhX.js → r-DvmOp3Qj.js} +1 -1
  105. package/dist/web-ui-assets/assets/{razor-C7ua423D.js → razor-CehoHds_.js} +1 -1
  106. package/dist/web-ui-assets/assets/{regexp-CGw_3plU.js → regexp-2Jz6kFIo.js} +1 -1
  107. package/dist/web-ui-assets/assets/{rst-DYI5KAID.js → rst-li0c-OgO.js} +1 -1
  108. package/dist/web-ui-assets/assets/{ruby-RXd2KUyd.js → ruby-DgjL05GQ.js} +1 -1
  109. package/dist/web-ui-assets/assets/{sas-BI_hDd-V.js → sas-D3iTM-e_.js} +1 -1
  110. package/dist/web-ui-assets/assets/{scss-BE93nrLY.js → scss-BdXhMSvs.js} +1 -1
  111. package/dist/web-ui-assets/assets/{shellscript-Dm8eyzbm.js → shellscript-DZXSq2Sa.js} +1 -1
  112. package/dist/web-ui-assets/assets/{shellsession-Dl0JKALg.js → shellsession-afdkG2Th.js} +1 -1
  113. package/dist/web-ui-assets/assets/{soy-CKNrhHpK.js → soy-DAH22tJm.js} +1 -1
  114. package/dist/web-ui-assets/assets/{sql-CZNswWPI.js → sql-ChChe5fx.js} +1 -1
  115. package/dist/web-ui-assets/assets/{stata-DjmrbOUz.js → stata-K9GgWIOl.js} +1 -1
  116. package/dist/web-ui-assets/assets/{surrealql-DqqZx4Ju.js → surrealql-DSnomrcE.js} +1 -1
  117. package/dist/web-ui-assets/assets/{svelte-Chj9K27Z.js → svelte-CvOMu-RJ.js} +1 -1
  118. package/dist/web-ui-assets/assets/{templ-BTLqJqYd.js → templ-CZIzP5bt.js} +1 -1
  119. package/dist/web-ui-assets/assets/{tex-CglhV978.js → tex-DQPFp2kX.js} +1 -1
  120. package/dist/web-ui-assets/assets/{ts-tags-79bKA5Ly.js → ts-tags-DNZa03FK.js} +1 -1
  121. package/dist/web-ui-assets/assets/{tsx-CXyhTYi7.js → tsx-Bhiv3C2c.js} +1 -1
  122. package/dist/web-ui-assets/assets/{twig-BrJR9DgZ.js → twig-DM6grruK.js} +1 -1
  123. package/dist/web-ui-assets/assets/{typescript-BR4aBNWU.js → typescript-BEKhIfXq.js} +1 -1
  124. package/dist/web-ui-assets/assets/{typst-CAGgcUBq.js → typst-1k2A85Zx.js} +1 -1
  125. package/dist/web-ui-assets/assets/{vue-B5T6PehN.js → vue-Dm3l12e_.js} +1 -1
  126. package/dist/web-ui-assets/assets/{vue-html-CE1dGrtN.js → vue-html-DXMXrdEc.js} +1 -1
  127. package/dist/web-ui-assets/assets/{vue-vine-Cc40SVDS.js → vue-vine-B28qLIyO.js} +1 -1
  128. package/dist/web-ui-assets/assets/{xml-CAOCSYKi.js → xml-BhP5fEtT.js} +1 -1
  129. package/dist/web-ui-assets/assets/{xsl-fa6Mwxua.js → xsl-OsxZZhWC.js} +1 -1
  130. package/dist/web-ui-assets/assets/{yaml-CyELmWi2.js → yaml-BtFncb8y.js} +1 -1
  131. package/dist/web-ui-assets/index.html +2 -2
  132. package/package.json +1 -1
  133. package/dist/web-ui-assets/assets/dist-C2cBizxO.js +0 -13
  134. package/dist/web-ui-assets/assets/index-eYIUud5F.js +0 -88
  135. package/dist/web-ui-assets/assets/index-hjXgYuFP.css +0 -2
@@ -1,5 +1,8 @@
1
1
  export declare function _resetKeychainReadCache(): void;
2
- export declare function loadClaudeCodeOauthToken(): string | undefined;
2
+ export declare function loadClaudeCodeOauthToken(opts?: {
3
+ quiet?: boolean;
4
+ background?: boolean;
5
+ }): string | undefined;
3
6
  export declare function refreshClaudeCodeOauthToken(): Promise<string | undefined>;
4
7
  export declare function claudeCodeCredentialsPath(): string;
5
8
  export declare function parseAccountIdentifier(token: string): string;
@@ -3,7 +3,6 @@ export interface HandoffRoute {
3
3
  chatId: number;
4
4
  threadId?: number;
5
5
  }
6
- export declare const HANDOFF_STORE_NO_RECORD_PREFIX: "handoff-store: no record found";
7
6
  export interface UpdateHandoffResult {
8
7
  won: boolean;
9
8
  }
@@ -37,5 +36,6 @@ export interface UpdateHandoffAnswerOpts {
37
36
  handoffsDir?: string;
38
37
  responderIdentity?: string;
39
38
  }
39
+ export declare const HANDOFF_STORE_NO_RECORD_PREFIX: "handoff-store: no record found";
40
40
  export declare function updateHandoffAnswer(taskId: string, answer: unknown, source: string, opts?: UpdateHandoffAnswerOpts): Promise<UpdateHandoffResult>;
41
41
  export {};
@@ -1,5 +1,6 @@
1
1
  import { type QueuedTask } from './queue-store.js';
2
2
  import { type TaskRecord, type TaskState } from './task-lifecycle.js';
3
+ export declare function atomicWriteJson(dest: string, data: unknown): void;
3
4
  export declare function leaseTask(task: QueuedTask, srcPath: string, leaseTtlMs?: number, queueDir?: string): TaskRecord;
4
5
  export declare function renewLease(taskId: string, leaseTtlMs?: number, queueDir?: string): void;
5
6
  export declare function setLeaseState(taskId: string, state: TaskState, queueDir?: string, expectedState?: TaskState): boolean;
@@ -0,0 +1 @@
1
+ export declare function deriveCredentialFromStore(token: string, tokenRefresherInstalled: boolean, readStore: () => string | undefined): boolean;
@@ -15,6 +15,7 @@ export interface QuerySetupResult {
15
15
  systemPrefix: Awaited<ReturnType<typeof setUpQueryClient>>['systemPrefix'];
16
16
  throttleQueue: ReturnType<typeof setUpQueryClient>['throttleQueue'];
17
17
  tokenRefresher: ReturnType<typeof setUpQueryClient>['tokenRefresher'];
18
+ credentialFromStore: boolean;
18
19
  queryDispatcher: ReturnType<typeof wireQueryDispatcher>['queryDispatcher'];
19
20
  runtimeStateSource: ReturnType<typeof wireQueryDispatcher>['runtimeStateSource'];
20
21
  toolDefs: ReturnType<typeof wireQueryDispatcher>['toolDefs'];
@@ -8,6 +8,7 @@ export interface RetryTierContext {
8
8
  readonly surface: string | undefined;
9
9
  readonly autoResumeOnUsageLimit: boolean;
10
10
  readonly tokenRefresher: (() => Promise<Anthropic | null>) | undefined;
11
+ readonly credentialFromStore?: boolean;
11
12
  getClient(): Anthropic;
12
13
  getClientToken(): string | undefined;
13
14
  rotateHeaders(runInput: Pick<RunTurnInput, 'effort' | 'fastMode' | 'thinkingBlockBinding'>): Record<string, string>;
@@ -11,6 +11,7 @@ export interface RetryLayerOptions {
11
11
  tokenRefresher?: () => Promise<Anthropic | null>;
12
12
  autoResumeOnUsageLimit: boolean;
13
13
  surface?: string;
14
+ credentialFromStore?: boolean;
14
15
  }
15
16
  export declare class RetryLayer {
16
17
  private _client;
@@ -21,6 +22,7 @@ export declare class RetryLayer {
21
22
  private readonly tokenRefresher?;
22
23
  private readonly autoResumeOnUsageLimit;
23
24
  private readonly surface?;
25
+ private readonly _credentialFromStore;
24
26
  private refreshPromise;
25
27
  private usageLimitWaitPromise;
26
28
  private credentialSnapshotStale;
@@ -34,5 +36,10 @@ export declare class RetryLayer {
34
36
  oldAccountId: string;
35
37
  swapped: boolean;
36
38
  } | null>;
39
+ syncClientWithStore(): Promise<{
40
+ accountId: string;
41
+ oldAccountId: string;
42
+ swapped: boolean;
43
+ } | null>;
37
44
  turnWithRetries(runInput: RunTurnInput, isClosed: () => boolean): AsyncGenerator<ProviderEvent, void, void>;
38
45
  }
@@ -1,3 +1,5 @@
1
1
  import type { RunTurnInput } from '../types.js';
2
2
  import type { RetryTierContext } from './retry-context.js';
3
- export declare function catchUpStaleCredential(ctx: RetryTierContext, runInput: RunTurnInput): Promise<boolean>;
3
+ export type CatchUpSource = 'usage-limit' | 'turn-start';
4
+ export declare function storeAheadOfClient(ctx: Pick<RetryTierContext, 'authMode' | 'getClientToken' | 'credentialFromStore'>): boolean;
5
+ export declare function catchUpStaleCredential(ctx: RetryTierContext, runInput: RunTurnInput, source?: CatchUpSource): Promise<boolean>;
@@ -27,6 +27,7 @@ export interface AnthropicDirectQueryOptions {
27
27
  userSystem: string | null;
28
28
  systemPrefix: ContentBlockParam[] | null;
29
29
  tokenRefresher?: () => Promise<Anthropic | null>;
30
+ credentialFromStore?: boolean;
30
31
  thinking?: import('@anthropic-ai/sdk/resources').ThinkingConfigParam;
31
32
  rawThinkingConfig?: import('../../types/sdk-types.js').ThinkingConfig;
32
33
  effort?: import('../../types/sdk-types.js').EffortLevel;
@@ -1,2 +1,3 @@
1
1
  export declare function isPreamble(text: string): boolean;
2
2
  export declare function extractUserContent(text: string): string | undefined;
3
+ export declare function stripPreamble(text: string): string;
@@ -1,5 +1,5 @@
1
1
  export { clearConversation } from './clear.js';
2
2
  export { compactConversation, type CompactConversationResult, type CompactProgress } from './compact.js';
3
3
  export { setSessionModel, type SetSessionModelResult } from './model.js';
4
- export { setSessionName, type SetSessionNameResult, type SessionNameOptions, THINKING_MODES, getSessionThinking, setSessionThinking, readSessionFast, setSessionFast, } from './preferences.js';
4
+ export { setSessionName, sessionDisplayName, type SetSessionNameResult, type SessionNameOptions, THINKING_MODES, getSessionThinking, setSessionThinking, readSessionFast, setSessionFast, } from './preferences.js';
5
5
  export { readSubscriptionUsage, readContextUsage, readLocalTokenUsage, readTokenUsage, readMcpStatus, readMcpOauthPending, type ContextUsage, type LocalTokenUsage, type TokenUsage, } from './reads.js';
@@ -13,6 +13,7 @@ export type SetSessionNameResult = {
13
13
  saveError?: unknown;
14
14
  };
15
15
  export declare function setSessionName(stats: SessionStats, raw: string, options?: SessionNameOptions): SetSessionNameResult;
16
+ export declare function sessionDisplayName(raw: string): string;
16
17
  export declare const THINKING_MODES: readonly ThinkingUiMode[];
17
18
  export declare function getSessionThinking(stats: Pick<SessionStats, 'thinkingUi'>): ThinkingUiMode;
18
19
  export declare function setSessionThinking(stats: Pick<SessionStats, 'thinkingUi'>, value: string): {
@@ -18,9 +18,11 @@ export type LedgerPayload = {
18
18
  } | {
19
19
  kind: 'assistant';
20
20
  text: string;
21
+ seg?: number;
21
22
  } | {
22
23
  kind: 'thinking';
23
24
  text: string;
25
+ seg?: number;
24
26
  } | {
25
27
  kind: 'tool';
26
28
  toolName: string;
@@ -103,6 +105,7 @@ export type LedgerPayload = {
103
105
  reason?: string;
104
106
  };
105
107
  export declare const MAX_TEXT_LEN = 8000;
108
+ export declare const MAX_ASSISTANT_TEXT_LEN = 256000;
106
109
  export declare const MAX_TOOL_INPUT_LEN = 400;
107
110
  export declare function clip(text: string, max: number): string;
108
111
  export declare function projectOutputEvent(event: OutputEvent): LedgerPayload | null;
@@ -0,0 +1,39 @@
1
+ import type { OutputEvent } from './types/session-types.js';
2
+ import { type LedgerPayload } from './session-ledger-project.js';
3
+ export type SegmentPart = 'text' | 'thinking';
4
+ export type SegmentStep = {
5
+ op: 'delta';
6
+ seg: number;
7
+ part: SegmentPart;
8
+ offset: number;
9
+ text: string;
10
+ } | {
11
+ op: 'reset';
12
+ seg: number;
13
+ part: SegmentPart;
14
+ } | {
15
+ op: 'seal';
16
+ seg: number;
17
+ part: SegmentPart;
18
+ } | {
19
+ op: 'record';
20
+ payload: LedgerPayload;
21
+ };
22
+ export declare function isSegmentEvent(event: OutputEvent): boolean;
23
+ export declare class SegmentTracker {
24
+ private next;
25
+ private text;
26
+ private thinking;
27
+ private lastSealedText;
28
+ beginTurn(): SegmentStep[];
29
+ openSegments(): {
30
+ seg: number;
31
+ part: SegmentPart;
32
+ text: string;
33
+ }[];
34
+ observe(event: OutputEvent): SegmentStep[];
35
+ flush(): SegmentStep[];
36
+ private append;
37
+ private message;
38
+ private seal;
39
+ }
@@ -12,10 +12,12 @@ export declare class SessionLedgerWriter {
12
12
  private pendingLines;
13
13
  private readyPromise;
14
14
  private readyResolve;
15
+ private readonly segments;
15
16
  constructor(sessionId: string);
16
17
  get active(): boolean;
17
18
  record(payload: import('./session-ledger-project.js').LedgerPayload): void;
18
19
  recordEvent(event: OutputEvent): void;
20
+ private writeSteps;
19
21
  recordUser(text: string, input?: string): void;
20
22
  private _openStream;
21
23
  private _writeLine;
@@ -722,6 +722,7 @@ export declare const TraceEventInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject
722
722
  ttfb_timeout: "ttfb_timeout";
723
723
  usage_limit_pause: "usage_limit_pause";
724
724
  usage_limit_resume: "usage_limit_resume";
725
+ credential_swap: "credential_swap";
725
726
  overload_pause: "overload_pause";
726
727
  overload_resume: "overload_resume";
727
728
  idle_watchdog_fired: "idle_watchdog_fired";
@@ -1206,6 +1207,7 @@ export declare const TraceEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1206
1207
  ttfb_timeout: "ttfb_timeout";
1207
1208
  usage_limit_pause: "usage_limit_pause";
1208
1209
  usage_limit_resume: "usage_limit_resume";
1210
+ credential_swap: "credential_swap";
1209
1211
  overload_pause: "overload_pause";
1210
1212
  overload_resume: "overload_resume";
1211
1213
  idle_watchdog_fired: "idle_watchdog_fired";
@@ -18,6 +18,7 @@ export declare const SessionPhaseNameSchema: z.ZodEnum<{
18
18
  ttfb_timeout: "ttfb_timeout";
19
19
  usage_limit_pause: "usage_limit_pause";
20
20
  usage_limit_resume: "usage_limit_resume";
21
+ credential_swap: "credential_swap";
21
22
  overload_pause: "overload_pause";
22
23
  overload_resume: "overload_resume";
23
24
  idle_watchdog_fired: "idle_watchdog_fired";
@@ -74,6 +75,7 @@ export declare const SessionPhasePayloadSchema: z.ZodObject<{
74
75
  ttfb_timeout: "ttfb_timeout";
75
76
  usage_limit_pause: "usage_limit_pause";
76
77
  usage_limit_resume: "usage_limit_resume";
78
+ credential_swap: "credential_swap";
77
79
  overload_pause: "overload_pause";
78
80
  overload_resume: "overload_resume";
79
81
  idle_watchdog_fired: "idle_watchdog_fired";
@@ -1,4 +1,4 @@
1
- export type SessionPhaseName = 'bootstrap_start' | 'bootstrap_done' | 'session_init_start' | 'session_init_done' | 'mcp_connect_start' | 'mcp_connect_done' | 'mcp_server_start' | 'mcp_server_done' | 'loop_start' | 'loop_end' | 'model_ttfb' | 'context_pressure_wind_down' | 'catalog_model_upgrade' | 'interrupt_halt' | 'rate_limit' | 'ttfb_timeout' | 'usage_limit_pause' | 'usage_limit_resume' | 'overload_pause' | 'overload_resume' | 'idle_watchdog_fired' | 'pause_extension_granted' | 'suspected_loop' | 'compaction_disabled' | 'boot_warning' | 'workspace_subscribed' | 'workspace_delivery' | 'gate_shape' | 'session_id_assigned' | 'many_image_degraded' | 'stream_accepted_after_drop' | 'connection_retry' | 'connection_retry_exhausted' | 'connection_failure' | 'connection_recovered' | 'connection_budget_exhausted' | 'usage_notice' | 'tool_degraded' | 'strategy_nudge_fired' | 'stop_inject_dropped' | 'stop_hook_continuation' | 'stop_hook_cap_reached' | 'orphan_repair' | 'thinking_block_dropped' | 'background_process_started' | 'background_process_settled' | 'compose_recovery_decision' | 'compose_leaf_tools_stripped' | 'hook_block_repeat_tripped' | 'billing_settled' | 'subagent_model_fallback' | 'round_cap_notice_dropped' | 'continuation_settle_degraded';
1
+ export type SessionPhaseName = 'bootstrap_start' | 'bootstrap_done' | 'session_init_start' | 'session_init_done' | 'mcp_connect_start' | 'mcp_connect_done' | 'mcp_server_start' | 'mcp_server_done' | 'loop_start' | 'loop_end' | 'model_ttfb' | 'context_pressure_wind_down' | 'catalog_model_upgrade' | 'interrupt_halt' | 'rate_limit' | 'ttfb_timeout' | 'usage_limit_pause' | 'usage_limit_resume' | 'credential_swap' | 'overload_pause' | 'overload_resume' | 'idle_watchdog_fired' | 'pause_extension_granted' | 'suspected_loop' | 'compaction_disabled' | 'boot_warning' | 'workspace_subscribed' | 'workspace_delivery' | 'gate_shape' | 'session_id_assigned' | 'many_image_degraded' | 'stream_accepted_after_drop' | 'connection_retry' | 'connection_retry_exhausted' | 'connection_failure' | 'connection_recovered' | 'connection_budget_exhausted' | 'usage_notice' | 'tool_degraded' | 'strategy_nudge_fired' | 'stop_inject_dropped' | 'stop_hook_continuation' | 'stop_hook_cap_reached' | 'orphan_repair' | 'thinking_block_dropped' | 'background_process_started' | 'background_process_settled' | 'compose_recovery_decision' | 'compose_leaf_tools_stripped' | 'hook_block_repeat_tripped' | 'billing_settled' | 'subagent_model_fallback' | 'round_cap_notice_dropped' | 'continuation_settle_degraded';
2
2
  export interface SessionPhasePayload {
3
3
  phase: SessionPhaseName;
4
4
  durationMs?: number;
@@ -11,6 +11,7 @@ export declare class ToolLane {
11
11
  private entries;
12
12
  private order;
13
13
  private agentIdStack;
14
+ private absorbedIds;
14
15
  private lastElapsedSecond;
15
16
  private activeTools;
16
17
  flash: ToolLaneFlash | null;
@@ -44,5 +45,6 @@ export declare class ToolLane {
44
45
  flushSource(parentId: string, homeDir?: string): string[];
45
46
  flushCompletedRoots(homeDir?: string): string[];
46
47
  flush(homeDir?: string): string[];
48
+ isAbsorbed(id: string): boolean;
47
49
  }
48
50
  export { formatToolLine, formatToolResultLine };
@@ -4,6 +4,7 @@ export interface ToolLaneFlushHost {
4
4
  order: string[];
5
5
  agentIdStack: string[];
6
6
  readonly compactScrollback: boolean;
7
+ absorbedIds: Set<string>;
7
8
  }
8
9
  export declare function flushSource(host: ToolLaneFlushHost, parentId: string, homeDir?: string): string[];
9
10
  export declare function flushCompletedRoots(host: ToolLaneFlushHost, homeDir?: string): string[];
@@ -0,0 +1 @@
1
+ export declare function shouldFilePickerSubmit(candidate: string | undefined): boolean;
@@ -6,6 +6,7 @@ export declare function buildSlashUniverse(): CommandEntry[];
6
6
  export interface FileDirent {
7
7
  name: string;
8
8
  isDirectory(): boolean;
9
+ isSymbolicLink?(): boolean;
9
10
  }
10
11
  export declare const FILE_SCAN_TTL_MS = 2000;
11
12
  export declare function invalidateFileScanCache(): void;
@@ -5,6 +5,8 @@ import { type SessionBinding, type SessionHandle } from '../agent/session/sessio
5
5
  export interface StoredSession {
6
6
  sessionId?: string;
7
7
  name?: string;
8
+ nameExplicit?: boolean;
9
+ displayName?: string;
8
10
  source?: 'cli' | 'telegram' | 'daemon' | 'web';
9
11
  telegramChatId?: number;
10
12
  model: AgentModelInput;
@@ -9,7 +9,7 @@ export interface AfkMdTarget {
9
9
  blank: boolean;
10
10
  duplicate: boolean;
11
11
  }
12
- export { OVERLAY_TOKEN_WARN_THRESHOLD as OVERLAY_TOKEN_WARN_THRESHOLD } from '../../../config/afk-md-tier.js';
12
+ export { OVERLAY_TOKEN_WARN_THRESHOLD } from '../../../config/afk-md-tier.js';
13
13
  export declare function resolveTargets(cwd?: string): AfkMdTarget[];
14
14
  export declare function targetFor(scope: AfkMdScope, cwd?: string): AfkMdTarget;
15
15
  export declare function contributes(t: AfkMdTarget): boolean;
@@ -63,6 +63,8 @@ export interface SessionStats {
63
63
  thinkingUi?: ThinkingUiMode;
64
64
  sessionId?: string;
65
65
  name?: string;
66
+ nameExplicit?: boolean;
67
+ displayName?: string;
66
68
  cwd?: string;
67
69
  repoRoot?: string;
68
70
  source?: 'cli' | 'telegram' | 'daemon' | 'web';