agent-afk 5.321.9 → 5.322.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.
Files changed (34) hide show
  1. package/dist/agent/mcp/error-hints.d.ts +13 -0
  2. package/dist/agent/providers/openai-compatible/query/turn-driver.emit-terminal.d.ts +6 -0
  3. package/dist/agent/trace/cost.d.ts +1 -0
  4. package/dist/agent/trace/events.d.ts +2 -0
  5. package/dist/agent/trace/events.session-phase.d.ts +2 -0
  6. package/dist/agent/trace/types.session-phase.d.ts +1 -1
  7. package/dist/agent/types/config-types.d.ts +1 -0
  8. package/dist/agent/types/sdk-types.d.ts +2 -0
  9. package/dist/browser/real-chrome-advice.d.ts +10 -0
  10. package/dist/browser/real-chrome-probe.d.ts +24 -0
  11. package/dist/cli/commands/browser.connect-diagnosis.d.ts +4 -0
  12. package/dist/cli/commands/browser.d.ts +4 -5
  13. package/dist/cli/commands/chat.action-body.d.ts +2 -0
  14. package/dist/cli/commands/interactive/shared.d.ts +3 -1
  15. package/dist/cli/terminal-compositor.d.ts +1 -0
  16. package/dist/cli/terminal-compositor.frame.d.ts +1 -0
  17. package/dist/cli/terminal-compositor.lifecycle.d.ts +1 -0
  18. package/dist/cli/terminal-compositor.reset.d.ts +1 -0
  19. package/dist/cli.mjs +453 -445
  20. package/dist/config/env.d.ts +7 -0
  21. package/dist/config/env.paths.d.ts +7 -0
  22. package/dist/index.mjs +202 -198
  23. package/dist/remote/hosts.d.ts +2 -0
  24. package/dist/remote/remote-run.d.ts +2 -0
  25. package/dist/remote/remote-script.d.ts +2 -0
  26. package/dist/telegram/bg-result-notifier.d.ts +2 -0
  27. package/dist/telegram/handlers/message.d.ts +1 -0
  28. package/dist/telegram/handlers/message.wake-idle.d.ts +13 -0
  29. package/dist/telegram/session-context.d.ts +1 -0
  30. package/dist/telegram/session-manager.d.ts +1 -0
  31. package/dist/telegram/session-manager.session-builder.d.ts +1 -0
  32. package/dist/telegram/wire-telegram-executors.d.ts +1 -0
  33. package/dist/telegram.mjs +244 -236
  34. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ import type { ToolResult } from '../tools/types.js';
2
+ import type { McpServerConfig } from './types.js';
3
+ import { channelFromArgs, type RealChromeProbeResult } from '../../browser/real-chrome-probe.js';
4
+ export interface McpErrorHintRule {
5
+ id: string;
6
+ appliesTo(serverName: string, config: McpServerConfig): boolean;
7
+ hint(errorText: string, config: McpServerConfig): string | undefined;
8
+ }
9
+ export interface McpErrorHintDeps {
10
+ probe?: (channel: ReturnType<typeof channelFromArgs>) => RealChromeProbeResult;
11
+ }
12
+ export declare function chromeDevtoolsActivePortRule(deps?: McpErrorHintDeps): McpErrorHintRule;
13
+ export declare function applyMcpErrorHints(serverName: string, config: McpServerConfig, result: ToolResult, rules?: readonly McpErrorHintRule[]): ToolResult;
@@ -0,0 +1,6 @@
1
+ import type { ProviderEvent, ProviderUsage } from '../../../provider.js';
2
+ import { TOOL_USE_LOOP_CAPPED } from '../../shared/tool-loop-cap.js';
3
+ import { SOFT_DEADLINE_WIND_DOWN } from '../../shared/soft-deadline.js';
4
+ import { CONTEXT_PRESSURE_WIND_DOWN } from '../../shared/context-pressure.js';
5
+ import type { TurnDriverContext } from './turn-driver.js';
6
+ export declare function emitTurnTerminal(ctx: TurnDriverContext, finalAssistantText: string, droppedToolNames: string[], accumulatedUsage: ProviderUsage, windDownReason: typeof TOOL_USE_LOOP_CAPPED | typeof SOFT_DEADLINE_WIND_DOWN | typeof CONTEXT_PRESSURE_WIND_DOWN | null, turnStartTime: number): AsyncGenerator<ProviderEvent>;
@@ -21,6 +21,7 @@ export declare class SessionCostAccumulator {
21
21
  private closureSum;
22
22
  private closureCount;
23
23
  private lastClosureCost;
24
+ private lastClosureSubagentId;
24
25
  private readonly tokens;
25
26
  private sealRoot;
26
27
  private sealSubagent;
@@ -714,6 +714,7 @@ export declare const TraceEventInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject
714
714
  compose_recovery_decision: "compose_recovery_decision";
715
715
  compose_leaf_tools_stripped: "compose_leaf_tools_stripped";
716
716
  hook_block_repeat_tripped: "hook_block_repeat_tripped";
717
+ billing_settled: "billing_settled";
717
718
  }>;
718
719
  durationMs: z.ZodOptional<z.ZodNumber>;
719
720
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
@@ -1173,6 +1174,7 @@ export declare const TraceEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1173
1174
  compose_recovery_decision: "compose_recovery_decision";
1174
1175
  compose_leaf_tools_stripped: "compose_leaf_tools_stripped";
1175
1176
  hook_block_repeat_tripped: "hook_block_repeat_tripped";
1177
+ billing_settled: "billing_settled";
1176
1178
  }>;
1177
1179
  durationMs: z.ZodOptional<z.ZodNumber>;
1178
1180
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
@@ -49,6 +49,7 @@ export declare const SessionPhaseNameSchema: z.ZodEnum<{
49
49
  compose_recovery_decision: "compose_recovery_decision";
50
50
  compose_leaf_tools_stripped: "compose_leaf_tools_stripped";
51
51
  hook_block_repeat_tripped: "hook_block_repeat_tripped";
52
+ billing_settled: "billing_settled";
52
53
  }>;
53
54
  export declare const SessionPhasePayloadSchema: z.ZodObject<{
54
55
  phase: z.ZodEnum<{
@@ -101,6 +102,7 @@ export declare const SessionPhasePayloadSchema: z.ZodObject<{
101
102
  compose_recovery_decision: "compose_recovery_decision";
102
103
  compose_leaf_tools_stripped: "compose_leaf_tools_stripped";
103
104
  hook_block_repeat_tripped: "hook_block_repeat_tripped";
105
+ billing_settled: "billing_settled";
104
106
  }>;
105
107
  durationMs: z.ZodOptional<z.ZodNumber>;
106
108
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
@@ -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';
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';
2
2
  export interface SessionPhasePayload {
3
3
  phase: SessionPhaseName;
4
4
  durationMs?: number;
@@ -118,5 +118,6 @@ export interface AgentConfig {
118
118
  };
119
119
  telegramChatId?: number;
120
120
  telegramThreadId?: number;
121
+ telegramOnInjectable?: () => void;
121
122
  customTools?: import('../tools/custom-tool.js').CustomToolDef[];
122
123
  }
@@ -1,5 +1,7 @@
1
1
  export type EffortLevel = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
2
2
  export type PermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'dontAsk' | 'auto' | 'autonomous';
3
+ export declare const VALID_PERMISSION_MODES: ReadonlySet<string>;
4
+ export declare function isValidPermissionMode(value: string): value is PermissionMode;
3
5
  export type SettingSource = 'user' | 'project' | 'local';
4
6
  export type ApiKeySource = 'user' | 'project' | 'org' | 'temporary' | 'oauth';
5
7
  export type SDKStatus = 'compacting' | 'requesting' | null;
@@ -0,0 +1,10 @@
1
+ import { type RealChromeProbeResult } from './real-chrome-probe.js';
2
+ export declare const REMOTE_DEBUGGING_URL = "chrome://inspect/#remote-debugging";
3
+ export declare const MAC_FILES_AND_FOLDERS_URL = "x-apple.systempreferences:com.apple.preference.security?Privacy_FilesAndFolders";
4
+ export interface RealChromeAdvice {
5
+ headline: string;
6
+ steps: string[];
7
+ openUrl?: string;
8
+ }
9
+ export declare function adviseRealChrome(probe: RealChromeProbeResult): RealChromeAdvice;
10
+ export declare function formatRealChromeAdvice(advice: RealChromeAdvice): string;
@@ -0,0 +1,24 @@
1
+ export declare const CHROME_DEVTOOLS_SERVER_NAME = "chrome-devtools";
2
+ export declare const REAL_CHROME_CHANNELS: readonly ["stable", "beta", "canary", "dev"];
3
+ export type RealChromeChannel = (typeof REAL_CHROME_CHANNELS)[number];
4
+ export type RealChromeState = 'ok' | 'missing' | 'blocked' | 'unknown';
5
+ export interface RealChromeProbeResult {
6
+ state: RealChromeState;
7
+ channel: RealChromeChannel;
8
+ platform: NodeJS.Platform;
9
+ userDataDir: string | null;
10
+ errorCode?: string;
11
+ terminalBundleId?: string;
12
+ }
13
+ export interface RealChromeProbeOptions {
14
+ channel?: RealChromeChannel;
15
+ platform?: NodeJS.Platform;
16
+ home?: string;
17
+ localAppData?: string;
18
+ terminalBundleId?: string;
19
+ touchFile?: (file: string) => void;
20
+ }
21
+ export declare function chromeAppName(channel: RealChromeChannel): string;
22
+ export declare function resolveChromeUserDataDir(channel: RealChromeChannel, platform: NodeJS.Platform, home: string, localAppData: string | undefined): string | null;
23
+ export declare function probeRealChrome(opts?: RealChromeProbeOptions): RealChromeProbeResult;
24
+ export declare function channelFromArgs(args: readonly string[] | undefined): RealChromeChannel;
@@ -0,0 +1,4 @@
1
+ import { type RealChromeChannel } from '../../browser/real-chrome-probe.js';
2
+ export declare const CHROME_DEVTOOLS_MCP_FALLBACK_VERSION = "1.11.0";
3
+ export declare function resolveChromeDevtoolsMcpVersion(): string;
4
+ export declare function printConnectDiagnosis(channel: RealChromeChannel, open: boolean, platform?: NodeJS.Platform): void;
@@ -1,11 +1,10 @@
1
1
  import { Command } from 'commander';
2
2
  import { type McpConfigFile } from '../../agent/mcp/index.js';
3
3
  import type { McpServerConfig } from '../../agent/mcp/types.js';
4
- export declare const CHROME_DEVTOOLS_SERVER_NAME = "chrome-devtools";
5
- declare const VALID_CHANNELS: readonly ["stable", "beta", "canary", "dev"];
6
- type ChromeChannel = (typeof VALID_CHANNELS)[number];
7
- export declare function buildChromeDevtoolsEntry(channel?: ChromeChannel): McpServerConfig;
4
+ import { CHROME_DEVTOOLS_SERVER_NAME, type RealChromeChannel } from '../../browser/real-chrome-probe.js';
5
+ export { CHROME_DEVTOOLS_SERVER_NAME };
6
+ type ChromeChannel = RealChromeChannel;
7
+ export declare function buildChromeDevtoolsEntry(channel?: ChromeChannel, version?: string): McpServerConfig;
8
8
  export declare function readMcpConfigFile(path: string): McpConfigFile;
9
9
  export declare function writeMcpConfigFileAtomic(path: string, cfg: McpConfigFile): void;
10
10
  export declare function registerBrowserCommand(program: Command): void;
11
- export {};
@@ -1,5 +1,6 @@
1
1
  import type { AgentSession } from '../../agent/session.js';
2
2
  import type { AgentModelInput } from '../../agent/types.js';
3
+ import type { PermissionMode } from '../../agent/types/sdk-types.js';
3
4
  import { parseThinking, parseEffort } from '../shared-helpers.js';
4
5
  import { setupWorktree } from './interactive/worktree.js';
5
6
  import { resolveResumeTarget, resumeConfigFor } from '../resume-session.js';
@@ -30,6 +31,7 @@ export interface ChatActionOptions {
30
31
  sessionId?: string;
31
32
  post?: string;
32
33
  postPr?: string;
34
+ permissionMode?: PermissionMode;
33
35
  dangerouslySkipPermissions?: boolean;
34
36
  }
35
37
  export declare function resolvePostTargets(post: string | undefined): PostTarget[];
@@ -6,6 +6,7 @@ import type { SessionRef } from '../../../agent/session-ref.js';
6
6
  import type { MemoryStore } from '../../../agent/memory/index.js';
7
7
  import type { StateStore } from '../../../agent/state/state-store.js';
8
8
  import type { AgentModelInput } from '../../../agent/types.js';
9
+ import type { PermissionMode } from '../../../agent/types/sdk-types.js';
9
10
  import type { BackgroundAgentRegistry } from '../../../agent/background-registry.js';
10
11
  import type { BackgroundSummarizer } from '../../../agent/background-summarizer.js';
11
12
  import type { SubagentControl } from '../../../agent/tools/subagent-executor.js';
@@ -36,6 +37,7 @@ export interface CliOptions {
36
37
  continue?: boolean;
37
38
  debug?: boolean;
38
39
  dangerouslySkipPermissions?: boolean;
40
+ permissionMode?: PermissionMode;
39
41
  worktree?: string | true;
40
42
  worktreeAutoname?: boolean;
41
43
  worktreeBase?: string;
@@ -169,5 +171,5 @@ export declare function formatStatusFields(stats: SessionStats, sampler?: Contex
169
171
  contextLimit: number;
170
172
  contextUsedTokens: number | undefined;
171
173
  contextSparkline: string | undefined;
172
- permissionMode: import("../../../agent/types.js").PermissionMode;
174
+ permissionMode: PermissionMode;
173
175
  };
@@ -87,6 +87,7 @@ export declare class TerminalCompositor {
87
87
  committedBandArchivedPrefix: number;
88
88
  bandReflowCache: BandReflowCache | null;
89
89
  lastKnownRows: number;
90
+ lastKnownCols: number;
90
91
  pendingResizeErase: {
91
92
  top: number;
92
93
  bottom: number;
@@ -35,6 +35,7 @@ export interface FrameHost {
35
35
  anchorRow: number | undefined;
36
36
  placementMode: FramePlacementMode;
37
37
  lastKnownRows: number;
38
+ lastKnownCols: number;
38
39
  commitInFlight: boolean;
39
40
  cprPending: boolean;
40
41
  resizeGeometryStale: boolean;
@@ -31,6 +31,7 @@ export interface LifecycleHost {
31
31
  readonly caretBlinkController: CaretBlinkController;
32
32
  readonly ghostEngine: SuggestEngine | undefined;
33
33
  lastKnownRows: number;
34
+ lastKnownCols: number;
34
35
  pendingResizeErase: {
35
36
  top: number;
36
37
  bottom: number;
@@ -31,6 +31,7 @@ export interface ResetStateHost {
31
31
  bandGeometryStale: boolean;
32
32
  resizeGeometryStale: boolean;
33
33
  lastKnownRows: number;
34
+ lastKnownCols: number;
34
35
  cprPending: boolean;
35
36
  pickerController: PickerController | null;
36
37
  inputMode: CompositorInputMode;