awb-agent-manager 1.0.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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +246 -0
  3. package/dist/lib/agent-lockfile.d.ts +37 -0
  4. package/dist/lib/agent-lockfile.js +205 -0
  5. package/dist/lib/agent-lockfile.js.map +1 -0
  6. package/dist/lib/agent-manager-commands.d.ts +34 -0
  7. package/dist/lib/agent-manager-commands.js +531 -0
  8. package/dist/lib/agent-manager-commands.js.map +1 -0
  9. package/dist/lib/base-session-manager.d.ts +127 -0
  10. package/dist/lib/base-session-manager.js +667 -0
  11. package/dist/lib/base-session-manager.js.map +1 -0
  12. package/dist/lib/chat-attachment-prep.d.ts +35 -0
  13. package/dist/lib/chat-attachment-prep.js +180 -0
  14. package/dist/lib/chat-attachment-prep.js.map +1 -0
  15. package/dist/lib/chat-session-manager.d.ts +29 -0
  16. package/dist/lib/chat-session-manager.js +400 -0
  17. package/dist/lib/chat-session-manager.js.map +1 -0
  18. package/dist/lib/circuit-breaker.d.ts +34 -0
  19. package/dist/lib/circuit-breaker.js +146 -0
  20. package/dist/lib/circuit-breaker.js.map +1 -0
  21. package/dist/lib/cli-adapters/antigravity.d.ts +15 -0
  22. package/dist/lib/cli-adapters/antigravity.js +114 -0
  23. package/dist/lib/cli-adapters/antigravity.js.map +1 -0
  24. package/dist/lib/cli-adapters/base.d.ts +115 -0
  25. package/dist/lib/cli-adapters/base.js +111 -0
  26. package/dist/lib/cli-adapters/base.js.map +1 -0
  27. package/dist/lib/cli-adapters/claude.d.ts +19 -0
  28. package/dist/lib/cli-adapters/claude.js +233 -0
  29. package/dist/lib/cli-adapters/claude.js.map +1 -0
  30. package/dist/lib/cli-adapters/codex.d.ts +14 -0
  31. package/dist/lib/cli-adapters/codex.js +152 -0
  32. package/dist/lib/cli-adapters/codex.js.map +1 -0
  33. package/dist/lib/cli-adapters/deepseek.d.ts +15 -0
  34. package/dist/lib/cli-adapters/deepseek.js +70 -0
  35. package/dist/lib/cli-adapters/deepseek.js.map +1 -0
  36. package/dist/lib/cli-adapters/index.d.ts +8 -0
  37. package/dist/lib/cli-adapters/index.js +27 -0
  38. package/dist/lib/cli-adapters/index.js.map +1 -0
  39. package/dist/lib/cli-adapters/model-introspect.d.ts +3 -0
  40. package/dist/lib/cli-adapters/model-introspect.js +65 -0
  41. package/dist/lib/cli-adapters/model-introspect.js.map +1 -0
  42. package/dist/lib/cli-error-signatures.d.ts +9 -0
  43. package/dist/lib/cli-error-signatures.js +22 -0
  44. package/dist/lib/cli-error-signatures.js.map +1 -0
  45. package/dist/lib/cli-output-summary.d.ts +2 -0
  46. package/dist/lib/cli-output-summary.js +104 -0
  47. package/dist/lib/cli-output-summary.js.map +1 -0
  48. package/dist/lib/cli-resolver.d.ts +2 -0
  49. package/dist/lib/cli-resolver.js +177 -0
  50. package/dist/lib/cli-resolver.js.map +1 -0
  51. package/dist/lib/config.d.ts +13 -0
  52. package/dist/lib/config.js +124 -0
  53. package/dist/lib/config.js.map +1 -0
  54. package/dist/lib/constants.d.ts +36 -0
  55. package/dist/lib/constants.js +51 -0
  56. package/dist/lib/constants.js.map +1 -0
  57. package/dist/lib/environment-provisioner.d.ts +31 -0
  58. package/dist/lib/environment-provisioner.js +182 -0
  59. package/dist/lib/environment-provisioner.js.map +1 -0
  60. package/dist/lib/error-log-uploader.d.ts +19 -0
  61. package/dist/lib/error-log-uploader.js +138 -0
  62. package/dist/lib/error-log-uploader.js.map +1 -0
  63. package/dist/lib/event-dispatcher.d.ts +149 -0
  64. package/dist/lib/event-dispatcher.js +799 -0
  65. package/dist/lib/event-dispatcher.js.map +1 -0
  66. package/dist/lib/event-log-recorder.d.ts +11 -0
  67. package/dist/lib/event-log-recorder.js +77 -0
  68. package/dist/lib/event-log-recorder.js.map +1 -0
  69. package/dist/lib/event-stream.d.ts +26 -0
  70. package/dist/lib/event-stream.js +177 -0
  71. package/dist/lib/event-stream.js.map +1 -0
  72. package/dist/lib/fs-browser.d.ts +30 -0
  73. package/dist/lib/fs-browser.js +287 -0
  74. package/dist/lib/fs-browser.js.map +1 -0
  75. package/dist/lib/host-mcp/logs.d.ts +19 -0
  76. package/dist/lib/host-mcp/logs.js +102 -0
  77. package/dist/lib/host-mcp/logs.js.map +1 -0
  78. package/dist/lib/host-mcp/platform.d.ts +24 -0
  79. package/dist/lib/host-mcp/platform.js +133 -0
  80. package/dist/lib/host-mcp/platform.js.map +1 -0
  81. package/dist/lib/host-mcp/screens.d.ts +22 -0
  82. package/dist/lib/host-mcp/screens.js +172 -0
  83. package/dist/lib/host-mcp/screens.js.map +1 -0
  84. package/dist/lib/host-mcp/server.d.ts +3 -0
  85. package/dist/lib/host-mcp/server.js +233 -0
  86. package/dist/lib/host-mcp/server.js.map +1 -0
  87. package/dist/lib/host-mcp/tools.d.ts +172 -0
  88. package/dist/lib/host-mcp/tools.js +1241 -0
  89. package/dist/lib/host-mcp/tools.js.map +1 -0
  90. package/dist/lib/instance-heartbeat.d.ts +55 -0
  91. package/dist/lib/instance-heartbeat.js +118 -0
  92. package/dist/lib/instance-heartbeat.js.map +1 -0
  93. package/dist/lib/legacy-import.d.ts +17 -0
  94. package/dist/lib/legacy-import.js +70 -0
  95. package/dist/lib/legacy-import.js.map +1 -0
  96. package/dist/lib/logging.d.ts +3 -0
  97. package/dist/lib/logging.js +65 -0
  98. package/dist/lib/logging.js.map +1 -0
  99. package/dist/lib/managed-agent-context.d.ts +25 -0
  100. package/dist/lib/managed-agent-context.js +33 -0
  101. package/dist/lib/managed-agent-context.js.map +1 -0
  102. package/dist/lib/managed-agent-store.d.ts +34 -0
  103. package/dist/lib/managed-agent-store.js +160 -0
  104. package/dist/lib/managed-agent-store.js.map +1 -0
  105. package/dist/lib/managed-agents.d.ts +24 -0
  106. package/dist/lib/managed-agents.js +87 -0
  107. package/dist/lib/managed-agents.js.map +1 -0
  108. package/dist/lib/mcp-client.d.ts +8 -0
  109. package/dist/lib/mcp-client.js +122 -0
  110. package/dist/lib/mcp-client.js.map +1 -0
  111. package/dist/lib/orphan-cleanup.d.ts +6 -0
  112. package/dist/lib/orphan-cleanup.js +108 -0
  113. package/dist/lib/orphan-cleanup.js.map +1 -0
  114. package/dist/lib/presence-heartbeat.d.ts +8 -0
  115. package/dist/lib/presence-heartbeat.js +61 -0
  116. package/dist/lib/presence-heartbeat.js.map +1 -0
  117. package/dist/lib/prompts.d.ts +29 -0
  118. package/dist/lib/prompts.js +208 -0
  119. package/dist/lib/prompts.js.map +1 -0
  120. package/dist/lib/rest.d.ts +61 -0
  121. package/dist/lib/rest.js +307 -0
  122. package/dist/lib/rest.js.map +1 -0
  123. package/dist/lib/run-provisioner.d.ts +21 -0
  124. package/dist/lib/run-provisioner.js +115 -0
  125. package/dist/lib/run-provisioner.js.map +1 -0
  126. package/dist/lib/self-path.d.ts +7 -0
  127. package/dist/lib/self-path.js +29 -0
  128. package/dist/lib/self-path.js.map +1 -0
  129. package/dist/lib/self-update.d.ts +46 -0
  130. package/dist/lib/self-update.js +482 -0
  131. package/dist/lib/self-update.js.map +1 -0
  132. package/dist/lib/service-install.d.ts +23 -0
  133. package/dist/lib/service-install.js +673 -0
  134. package/dist/lib/service-install.js.map +1 -0
  135. package/dist/lib/setup.d.ts +16 -0
  136. package/dist/lib/setup.js +157 -0
  137. package/dist/lib/setup.js.map +1 -0
  138. package/dist/lib/subagent-manager.d.ts +84 -0
  139. package/dist/lib/subagent-manager.js +793 -0
  140. package/dist/lib/subagent-manager.js.map +1 -0
  141. package/dist/lib/subagent-monitor.d.ts +43 -0
  142. package/dist/lib/subagent-monitor.js +229 -0
  143. package/dist/lib/subagent-monitor.js.map +1 -0
  144. package/dist/lib/ticket-session-manager.d.ts +23 -0
  145. package/dist/lib/ticket-session-manager.js +471 -0
  146. package/dist/lib/ticket-session-manager.js.map +1 -0
  147. package/dist/lib/worktree-manager.d.ts +39 -0
  148. package/dist/lib/worktree-manager.js +226 -0
  149. package/dist/lib/worktree-manager.js.map +1 -0
  150. package/dist/main.d.ts +2 -0
  151. package/dist/main.js +670 -0
  152. package/dist/main.js.map +1 -0
  153. package/dist/package.json +57 -0
  154. package/package.json +57 -0
@@ -0,0 +1,127 @@
1
+ import { type ChildProcessByStdio } from 'node:child_process';
2
+ import type { Readable, Writable } from 'node:stream';
3
+ import { type CliAdapter, type HarnessSpec, type ParseResult, type ResolvedEffortPreset, type TurnImage } from './cli-adapters/base.js';
4
+ import type { AwbConfig } from './rest.js';
5
+ import type { SubagentMonitor, SubagentTapHandle } from './subagent-monitor.js';
6
+ export interface BaseSessionOptions {
7
+ keyField: string;
8
+ logTag: string;
9
+ cfgPrefix: string;
10
+ kindLabel: 'chat_session' | 'ticket_session';
11
+ }
12
+ export interface SessionDelegationConfig {
13
+ enabled?: boolean;
14
+ maxConcurrent?: number;
15
+ ttlMinutes?: number;
16
+ idleMinutes?: number;
17
+ maxTurnsPerSession?: number;
18
+ claudeBin?: string;
19
+ persistentChatSessions?: boolean;
20
+ persistentTicketSessions?: boolean;
21
+ worktreeIsolation?: boolean;
22
+ }
23
+ export interface SessionAwareConfig extends AwbConfig {
24
+ delegation: SessionDelegationConfig;
25
+ }
26
+ export interface MonitorMeta {
27
+ ticket_id?: string;
28
+ ticket_title?: string;
29
+ role?: string;
30
+ trigger_source?: string;
31
+ }
32
+ export interface SpawnOpts {
33
+ onProgress?: (stage: string) => void;
34
+ monitorMeta?: MonitorMeta;
35
+ agentContext?: {
36
+ agent_id: string;
37
+ api_key: string;
38
+ cwd: string;
39
+ mcp_config_path: string;
40
+ cli: string;
41
+ cli_home_dir: string;
42
+ model?: string | null;
43
+ extra_env?: Record<string, string>;
44
+ credential_provider?: string | null;
45
+ };
46
+ firstTurnImages?: TurnImage[];
47
+ harness?: HarnessSpec | null;
48
+ effortPreset?: ResolvedEffortPreset | null;
49
+ envVars?: Record<string, string>;
50
+ }
51
+ interface TurnState {
52
+ onProgress: (stage: string) => void;
53
+ stage: string | null;
54
+ fired: {
55
+ thinking: boolean;
56
+ composing: boolean;
57
+ };
58
+ heartbeatTimer: NodeJS.Timeout | null;
59
+ }
60
+ export interface SessionRecord {
61
+ [key: string]: any;
62
+ pid: number;
63
+ cli_type: string;
64
+ adapter: CliAdapter;
65
+ child: ChildProcessByStdio<Writable, Readable, Readable>;
66
+ configPath: string | null;
67
+ configPathIsTemp: boolean;
68
+ pidPath: string | null;
69
+ turnCount: number;
70
+ startedAt: number;
71
+ lastTouchedAt: number;
72
+ idleTimer: NodeJS.Timeout | null;
73
+ unrespondedTurnCount: number;
74
+ unrespondedSince: number | null;
75
+ unhealthyKilled: boolean;
76
+ tap: SubagentTapHandle | null;
77
+ _currentTurn?: TurnState | null;
78
+ onResult?: (raw: any) => void;
79
+ splitRequested?: boolean;
80
+ splitReason?: string;
81
+ _effectiveApiKey?: string;
82
+ _lastLivenessPostAtMs?: number;
83
+ }
84
+ export interface InflightReservation {
85
+ agentId?: string;
86
+ ticketId?: string;
87
+ roomId?: string;
88
+ }
89
+ export declare class BaseSessionManager {
90
+ #private;
91
+ protected readonly _config: SessionAwareConfig;
92
+ protected readonly _sessions: Map<string, SessionRecord>;
93
+ protected readonly _inflight: Map<string, InflightReservation>;
94
+ protected readonly _outputRings: Map<number, string[]>;
95
+ constructor(config: SessionAwareConfig, options: BaseSessionOptions);
96
+ protected get _adapter(): CliAdapter;
97
+ protected _adapterFor(cli: string | null | undefined): CliAdapter;
98
+ setMonitor(monitor: SubagentMonitor | null): void;
99
+ protected _getSession(sessionKey: string): SessionRecord | undefined;
100
+ protected _isPidAlive(pid: number): boolean;
101
+ protected _getLiveSession(sessionKey: string): SessionRecord | undefined;
102
+ protected _ensureCapacity(): boolean;
103
+ protected _spawnSession(sessionKey: string, rolePrompt: string, firstTurnText: string, { onProgress, monitorMeta, agentContext, firstTurnImages, harness: rawHarness, effortPreset, envVars }?: SpawnOpts): Promise<SessionRecord | null>;
104
+ protected _sendFollowUp(sess: SessionRecord, turnText: string, { checkMaxTurns, onProgress, images, }?: {
105
+ checkMaxTurns?: boolean;
106
+ onProgress?: (stage: string) => void;
107
+ images?: TurnImage[];
108
+ }): void;
109
+ protected _writeTurn(sess: SessionRecord, text: string, images?: TurnImage[]): void;
110
+ protected _collectOutputTail(pid: number, maxChars: number): string;
111
+ protected _clearOutputBuffer(pid: number): void;
112
+ protected _resetIdleTimer(sess: SessionRecord): void;
113
+ protected _onStdoutParsed(_sess: SessionRecord, _parsed: ParseResult, _rawLine: string): void;
114
+ protected _onStderrLine(_sess: SessionRecord, _line: string): void;
115
+ protected _onChildExit(_sess: SessionRecord, _code: number | null, _signal: NodeJS.Signals | null): Promise<void>;
116
+ protected _rememberDedup(key: string): boolean;
117
+ protected _forgetDedup(key: string): void;
118
+ stopForAgent(agentId: string): Promise<{
119
+ count: number;
120
+ inflight: Array<{
121
+ ticketId: string;
122
+ role: string;
123
+ }>;
124
+ }>;
125
+ stop(): Promise<void>;
126
+ }
127
+ export {};