agent-afk 5.303.1 → 5.303.2

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.
@@ -5,6 +5,7 @@ import type { Telegraf } from 'telegraf';
5
5
  import { ScheduledTask } from './triggers.js';
6
6
  export { resolveWorktreePruneRoot } from './worktree-prune-task.js';
7
7
  export { daemonTraceLabel } from './session-spawn.js';
8
+ import { type TaskTurnCompleteArgs } from './scheduler.execute-agent-task.js';
8
9
  import { type SessionStartSkipReason } from './gates.js';
9
10
  export interface SchedulerOptions {
10
11
  sessionConfig?: Partial<AgentConfig>;
@@ -19,6 +20,7 @@ export interface SchedulerOptions {
19
20
  responseText: string;
20
21
  successfulToolNames: readonly string[];
21
22
  }) => boolean;
23
+ onTaskTurnComplete?: (args: TaskTurnCompleteArgs) => void;
22
24
  bot?: Telegraf;
23
25
  primaryChatId?: number;
24
26
  primaryThreadId?: number;
@@ -6,6 +6,7 @@ import type { StateStore } from '../state/state-store.js';
6
6
  import type { ScheduledTask } from './triggers.js';
7
7
  import type { TelemetryRecord, TelemetryTrigger, TaskCompletionDetails } from './scheduler.js';
8
8
  import type { Telegraf } from 'telegraf';
9
+ import type { Message } from '../types/message-types.js';
9
10
  interface AgentTaskOptions {
10
11
  bot?: Telegraf;
11
12
  primaryChatId?: number;
@@ -14,6 +15,14 @@ interface AgentTaskOptions {
14
15
  responseText: string;
15
16
  successfulToolNames: readonly string[];
16
17
  }) => boolean;
18
+ onTaskTurnComplete?: (args: TaskTurnCompleteArgs) => void;
19
+ }
20
+ export interface TaskTurnCompleteArgs {
21
+ task: ScheduledTask;
22
+ sessionId: string | undefined;
23
+ cwd: string | undefined;
24
+ userInput: string;
25
+ response: Message;
17
26
  }
18
27
  export interface AgentTaskContext {
19
28
  options: AgentTaskOptions;
@@ -13,6 +13,7 @@ export interface DaemonOptions {
13
13
  now?: () => number;
14
14
  onTaskComplete?: SchedulerOptions['onTaskComplete'];
15
15
  doneUnverifiedProbe?: SchedulerOptions['doneUnverifiedProbe'];
16
+ onTaskTurnComplete?: SchedulerOptions['onTaskTurnComplete'];
16
17
  pullPollIntervalMs?: number;
17
18
  queueDir?: string;
18
19
  writePortFile?: boolean;
@@ -1,4 +1,6 @@
1
1
  export declare function sleep(ms: number, opts?: {
2
2
  unref?: boolean;
3
3
  }): Promise<void>;
4
- export declare function sleepWithAbort(ms: number, signal: AbortSignal): Promise<void>;
4
+ export declare function sleepWithAbort(ms: number, signal: AbortSignal, opts?: {
5
+ unref?: boolean;
6
+ }): Promise<void>;
@@ -15,7 +15,7 @@ export declare class LedgerLifecycle {
15
15
  private writer;
16
16
  private initAttempted;
17
17
  ensure(ctx: LedgerEnsureContext): void;
18
- recordUser(text: string): void;
18
+ recordUser(text: string, input?: string): void;
19
19
  recordEvent(event: OutputEvent): void;
20
20
  recordElicitation(reqId: string, request: ElicitationRequest): void;
21
21
  seal(reason: string): Promise<void>;
@@ -14,6 +14,7 @@ export type LedgerPayload = {
14
14
  } | {
15
15
  kind: 'user';
16
16
  text: string;
17
+ input?: string;
17
18
  } | {
18
19
  kind: 'assistant';
19
20
  text: string;
@@ -16,7 +16,7 @@ export declare class SessionLedgerWriter {
16
16
  get active(): boolean;
17
17
  record(payload: import('./session-ledger-project.js').LedgerPayload): void;
18
18
  recordEvent(event: OutputEvent): void;
19
- recordUser(text: string): void;
19
+ recordUser(text: string, input?: string): void;
20
20
  private _openStream;
21
21
  private _writeLine;
22
22
  close(reason?: string): Promise<void>;
@@ -1,4 +1,5 @@
1
- import type { AbortPayload, BackgroundAgentPayload, BrowserEventPayload, BudgetPayload, ClaimPayload, ClosurePayload, CompactionPayloadInput, HookDecisionPayload, PeerMessagePayload, QueuedUserMessagePayload, SessionPhasePayload, SubagentLifecyclePayload, ToolCallPayload, TraceSink } from './index.js';
1
+ import type { AbortPayload, BackgroundAgentPayload, BrowserEventPayload, BudgetPayload, ClaimPayload, ClosurePayload, CompactionPayloadInput, HookDecisionPayload, PeerMessagePayload, QueuedUserMessagePayload, SessionPhasePayload, SubagentLifecyclePayload, ToolCallPayload } from './types.js';
2
+ import type { TraceSink } from './writer.js';
2
3
  export declare const emitToolCall: (w: TraceSink | undefined, p: ToolCallPayload) => Promise<void>;
3
4
  export declare const emitHookDecision: (w: TraceSink | undefined, p: HookDecisionPayload) => Promise<void>;
4
5
  export declare const emitSubagentLifecycle: (w: TraceSink | undefined, p: SubagentLifecyclePayload) => Promise<void>;
@@ -1,6 +1,3 @@
1
- export type { AfkApprovalOutcome, AbortOrigin, AbortPayload, BackgroundAgentCancelledPayload, BackgroundAgentCompletedPayload, BackgroundAgentFailedPayload, BackgroundAgentJoinedPayload, BackgroundAgentPayload, BackgroundAgentStartedPayload, BrowserActAction, BrowserEventPayload, BrowserEventTarget, BrowserEventTool, BudgetPayload, ClaimPayload, QueuedUserMessagePayload, PeerMessagePayload, ClosurePayload, ClosureReason, CompactionPayloadInput, CompactionPayloadPersisted, CompactionSidecarRef, CompactionTrigger, HookDecisionPayload, HookEventName, SessionPhasePayload, SessionPhaseName, SessionSealedPayload, SubagentCancelledPayload, SubagentFailedPayload, SubagentLifecyclePayload, SubagentStartedPayload, SubagentSucceededPayload, ToolCallCompletedPayload, ToolCallPayload, ToolCallStartedPayload, TraceEvent, TraceEventInput, TraceEventKind, } from './types.js';
2
- export { AbortOriginSchema, AbortPayloadSchema, BackgroundAgentCancelledPayloadSchema, BackgroundAgentCompletedPayloadSchema, BackgroundAgentFailedPayloadSchema, BackgroundAgentJoinedPayloadSchema, BackgroundAgentPayloadSchema, BackgroundAgentStartedPayloadSchema, BrowserActActionSchema, BrowserEventPayloadSchema, BrowserEventTargetSchema, BrowserEventToolSchema, BudgetPayloadSchema, ClaimPayloadSchema, QueuedUserMessagePayloadSchema, PeerMessagePayloadSchema, ClosurePayloadSchema, ClosureReasonSchema, CompactionPayloadInputSchema, CompactionPayloadPersistedSchema, CompactionSidecarRefSchema, CompactionTriggerSchema, HookDecisionPayloadSchema, HookEventNameSchema, SessionPhaseNameSchema, SessionPhasePayloadSchema, SessionSealedPayloadSchema, SubagentCancelledPayloadSchema, SubagentFailedPayloadSchema, SubagentLifecyclePayloadSchema, SubagentStartedPayloadSchema, SubagentSucceededPayloadSchema, ToolCallCompletedPayloadSchema, ToolCallPayloadSchema, ToolCallStartedPayloadSchema, TraceEventInputSchema, TraceEventSchema, } from './events.js';
3
- export { InMemoryTraceWriter, NdjsonTraceWriter, } from './writer.js';
4
- export type { NdjsonTraceWriterOptions, TraceSink, TraceWriter } from './writer.js';
5
- export { emitSessionIdAssigned } from '../session/session-id-trace.js';
6
- export { emitPeerMessage } from './emit.js';
1
+ export type { AbortOrigin, BackgroundAgentPayload, ClosureReason, HookEventName, SessionPhasePayload, SubagentLifecyclePayload, TraceEvent, TraceEventInput, } from './types.js';
2
+ export { InMemoryTraceWriter, } from './writer.js';
3
+ export type { TraceSink, TraceWriter } from './writer.js';
@@ -0,0 +1,5 @@
1
+ import type { AgentModelInput } from '../../agent/types.js';
2
+ import type { TaskTurnCompleteArgs } from '../../agent/daemon/scheduler.execute-agent-task.js';
3
+ import type { SchedulerOptions } from '../../agent/daemon/scheduler.js';
4
+ export declare function makeDaemonTurnPersister(model: AgentModelInput): (args: TaskTurnCompleteArgs) => void;
5
+ export declare function daemonTurnHooks(model: AgentModelInput, doneUnverifiedProbe: NonNullable<SchedulerOptions['doneUnverifiedProbe']>): Pick<SchedulerOptions, 'doneUnverifiedProbe' | 'onTaskTurnComplete'>;
@@ -0,0 +1,26 @@
1
+ import type { ResponseMetadata } from '../agent/types/message-types.js';
2
+ import type { AgentModelInput, OutputEvent } from '../agent/types.js';
3
+ import type { SessionStats, ToolEvent } from './slash/types.js';
4
+ export interface SessionAutosaverOptions {
5
+ model: AgentModelInput;
6
+ source: NonNullable<SessionStats['source']>;
7
+ cwd?: string;
8
+ sessionId?: string;
9
+ name?: string;
10
+ onError?: (err: unknown) => void;
11
+ }
12
+ export interface SessionAutosaver {
13
+ readonly stats: SessionStats;
14
+ saveTurn(userInput: string, assistantText: string, metadata: ResponseMetadata | undefined, toolEvents?: ToolEvent[]): void;
15
+ }
16
+ export declare function createSessionAutosaver(opts: SessionAutosaverOptions): SessionAutosaver;
17
+ export interface CollectedTurn {
18
+ completed: boolean;
19
+ assistantText: string;
20
+ metadata: ResponseMetadata | undefined;
21
+ toolEvents: ToolEvent[];
22
+ }
23
+ export declare function createTurnCollector(): {
24
+ observe(event: OutputEvent): void;
25
+ result(): CollectedTurn;
26
+ };
@@ -60,7 +60,7 @@ export interface SessionStats {
60
60
  sessionId?: string;
61
61
  name?: string;
62
62
  cwd?: string;
63
- source?: 'cli' | 'telegram' | 'daemon';
63
+ source?: 'cli' | 'telegram' | 'daemon' | 'web';
64
64
  telegramChatId?: number;
65
65
  actor?: TraceActor;
66
66
  }