crewly 1.20.73 → 1.20.74

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 (51) hide show
  1. package/dist/backend/backend/src/constants.d.ts +64 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +64 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts +49 -0
  6. package/dist/backend/backend/src/controllers/browser/browser.controller.d.ts.map +1 -1
  7. package/dist/backend/backend/src/controllers/browser/browser.controller.js +119 -0
  8. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/browser/browser.routes.d.ts.map +1 -1
  10. package/dist/backend/backend/src/controllers/browser/browser.routes.js +8 -1
  11. package/dist/backend/backend/src/controllers/browser/browser.routes.js.map +1 -1
  12. package/dist/backend/backend/src/index.d.ts.map +1 -1
  13. package/dist/backend/backend/src/index.js +44 -5
  14. package/dist/backend/backend/src/index.js.map +1 -1
  15. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +41 -0
  16. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  17. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +52 -1
  18. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  19. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts +261 -0
  20. package/dist/backend/backend/src/services/browser/browser-session.service.d.ts.map +1 -0
  21. package/dist/backend/backend/src/services/browser/browser-session.service.js +432 -0
  22. package/dist/backend/backend/src/services/browser/browser-session.service.js.map +1 -0
  23. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts +209 -0
  24. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -0
  25. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +440 -0
  26. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -0
  27. package/dist/backend/backend/src/services/monitoring/model-pricing.d.ts +97 -0
  28. package/dist/backend/backend/src/services/monitoring/model-pricing.d.ts.map +1 -0
  29. package/dist/backend/backend/src/services/monitoring/model-pricing.js +120 -0
  30. package/dist/backend/backend/src/services/monitoring/model-pricing.js.map +1 -0
  31. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +8 -0
  32. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +1 -1
  34. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  35. package/dist/backend/build-info.json +2 -2
  36. package/dist/cli/backend/src/constants.d.ts +64 -0
  37. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  38. package/dist/cli/backend/src/constants.js +64 -0
  39. package/dist/cli/backend/src/constants.js.map +1 -1
  40. package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts +41 -0
  41. package/dist/cli/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  42. package/dist/cli/backend/src/services/agent/context-window-monitor.service.js +52 -1
  43. package/dist/cli/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  44. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +8 -0
  45. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  46. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +1 -1
  47. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  48. package/frontend/dist/assets/{index-26a16b91.css → index-a6480a0f.css} +1 -1
  49. package/frontend/dist/assets/{index-320b73bf.js → index-cc910352.js} +259 -259
  50. package/frontend/dist/index.html +2 -2
  51. package/package.json +1 -1
@@ -45,6 +45,12 @@ export interface ContextWindowState {
45
45
  runtimeType: RuntimeType;
46
46
  /** Last detected context usage percentage (0-100) */
47
47
  contextPercent: number;
48
+ /**
49
+ * Last measured absolute context size in tokens, when a source that can
50
+ * measure it (the Claude Code transcript reader) has reported one.
51
+ * Absent for runtimes we only observe through PTY percentages.
52
+ */
53
+ contextTokens?: number;
48
54
  /** Current severity level */
49
55
  level: ContextLevel;
50
56
  /** Timestamp of last context % detection */
@@ -66,6 +72,17 @@ export interface ContextWindowState {
66
72
  /** Handle for the compact wait timeout (cleared on session stop) */
67
73
  compactWaitTimer: ReturnType<typeof setTimeout> | null;
68
74
  }
75
+ /**
76
+ * Resolves the context-size ceiling, in tokens, above which an agent is asked
77
+ * to compact.
78
+ *
79
+ * Read from the environment on each call rather than cached so an operator can
80
+ * retune a running backend that is burning through a budget.
81
+ *
82
+ * @returns The ceiling in tokens; falls back to the configured default when
83
+ * the override is missing or not a positive number
84
+ */
85
+ export declare function getContextTokenCeiling(): number;
69
86
  /**
70
87
  * Monitors agent PTY sessions for context window usage and triggers
71
88
  * threshold-based warnings and auto-recovery.
@@ -189,6 +206,30 @@ export declare class ContextWindowMonitorService {
189
206
  * @param percent - New context usage percentage
190
207
  */
191
208
  updateContextUsage(sessionName: string, percent: number): void;
209
+ /**
210
+ * Update context usage from an absolute token count.
211
+ *
212
+ * The percentage path above depends on the runtime printing its context
213
+ * usage into the terminal. Claude Code does not — its context readout
214
+ * lives in a TUI status bar that never reaches PTY scrollback — so for
215
+ * claude-code agents that path silently never fires, and an agent can
216
+ * drag several hundred thousand tokens through every turn unnoticed.
217
+ *
218
+ * This entry point takes the measured figure instead, read from Claude
219
+ * Code's own transcript by
220
+ * {@link module:services/monitoring/claude-transcript-sync}, and scores it
221
+ * against an absolute ceiling rather than a fraction of the model's
222
+ * window. The window size is model-specific and not reported anywhere we
223
+ * can read; the ceiling is a policy we set, and it is the figure that
224
+ * actually maps to cost per turn.
225
+ *
226
+ * @param sessionName - PTY session name
227
+ * @param contextTokens - Total input tokens on the agent's latest turn
228
+ * (fresh + cache reads + cache writes)
229
+ * @param ceilingTokens - Ceiling to score against; defaults to the
230
+ * configured `CONTEXT_TOKEN_CEILING`
231
+ */
232
+ updateContextTokens(sessionName: string, contextTokens: number, ceilingTokens?: number): void;
192
233
  /**
193
234
  * Evaluate threshold transitions and take appropriate actions.
194
235
  *
@@ -1 +1 @@
1
- {"version":3,"file":"context-window-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/context-window-monitor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-window-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/context-window-monitor.service.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ import { PtyActivityTrackerService } from './pty-activity-tracker.service.js';
29
29
  import { RuntimeExitMonitorService } from './runtime-exit-monitor.service.js';
30
30
  import { stripAnsiCodes } from '../../utils/terminal-output.utils.js';
31
31
  import { getSettingsService } from '../settings/settings.service.js';
32
- import { CONTEXT_WINDOW_MONITOR_CONSTANTS, RUNTIME_COMPACT_COMMANDS, RUNTIME_TYPES, ORCHESTRATOR_SESSION_NAME, CREWLY_CONSTANTS, AGENT_SUSPEND_CONSTANTS, SESSION_COMMAND_DELAYS, } from '../../constants.js';
32
+ import { CONTEXT_WINDOW_MONITOR_CONSTANTS, CLAUDE_TRANSCRIPT_SYNC_CONSTANTS, RUNTIME_COMPACT_COMMANDS, RUNTIME_TYPES, ORCHESTRATOR_SESSION_NAME, CREWLY_CONSTANTS, AGENT_SUSPEND_CONSTANTS, SESSION_COMMAND_DELAYS, } from '../../constants.js';
33
33
  // =============================================================================
34
34
  // Regex patterns for detecting context usage percentages in PTY output
35
35
  // =============================================================================
@@ -65,6 +65,23 @@ const GEMINI_CONTEXT_TOKEN_PATTERNS = [
65
65
  * Conservative estimate: assume 1M tokens max (Gemini 2.0 Flash/Pro).
66
66
  */
67
67
  const GEMINI_DEFAULT_MAX_CONTEXT_TOKENS = 1_000_000;
68
+ /**
69
+ * Resolves the context-size ceiling, in tokens, above which an agent is asked
70
+ * to compact.
71
+ *
72
+ * Read from the environment on each call rather than cached so an operator can
73
+ * retune a running backend that is burning through a budget.
74
+ *
75
+ * @returns The ceiling in tokens; falls back to the configured default when
76
+ * the override is missing or not a positive number
77
+ */
78
+ export function getContextTokenCeiling() {
79
+ const raw = process.env.CREWLY_CONTEXT_TOKEN_CEILING;
80
+ const parsed = raw ? Number(raw) : NaN;
81
+ return Number.isFinite(parsed) && parsed > 0
82
+ ? parsed
83
+ : CLAUDE_TRANSCRIPT_SYNC_CONSTANTS.CONTEXT_TOKEN_CEILING;
84
+ }
68
85
  // =============================================================================
69
86
  // Service
70
87
  // =============================================================================
@@ -380,6 +397,40 @@ export class ContextWindowMonitorService {
380
397
  this.evaluateThresholds(state, previousLevel);
381
398
  }
382
399
  }
400
+ /**
401
+ * Update context usage from an absolute token count.
402
+ *
403
+ * The percentage path above depends on the runtime printing its context
404
+ * usage into the terminal. Claude Code does not — its context readout
405
+ * lives in a TUI status bar that never reaches PTY scrollback — so for
406
+ * claude-code agents that path silently never fires, and an agent can
407
+ * drag several hundred thousand tokens through every turn unnoticed.
408
+ *
409
+ * This entry point takes the measured figure instead, read from Claude
410
+ * Code's own transcript by
411
+ * {@link module:services/monitoring/claude-transcript-sync}, and scores it
412
+ * against an absolute ceiling rather than a fraction of the model's
413
+ * window. The window size is model-specific and not reported anywhere we
414
+ * can read; the ceiling is a policy we set, and it is the figure that
415
+ * actually maps to cost per turn.
416
+ *
417
+ * @param sessionName - PTY session name
418
+ * @param contextTokens - Total input tokens on the agent's latest turn
419
+ * (fresh + cache reads + cache writes)
420
+ * @param ceilingTokens - Ceiling to score against; defaults to the
421
+ * configured `CONTEXT_TOKEN_CEILING`
422
+ */
423
+ updateContextTokens(sessionName, contextTokens, ceilingTokens) {
424
+ const ceiling = ceilingTokens ?? getContextTokenCeiling();
425
+ if (ceiling <= 0)
426
+ return;
427
+ const percent = Math.max(0, Math.min(100, Math.round((contextTokens / ceiling) * 100)));
428
+ const state = this.contextStates.get(sessionName);
429
+ if (state) {
430
+ state.contextTokens = contextTokens;
431
+ }
432
+ this.updateContextUsage(sessionName, percent);
433
+ }
383
434
  /**
384
435
  * Evaluate threshold transitions and take appropriate actions.
385
436
  *
@@ -1 +1 @@
1
- {"version":3,"file":"context-window-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/context-window-monitor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-window-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/context-window-monitor.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Browser Session Service
3
+ *
4
+ * Makes an agent's browser work watchable. Every `/api/browser/*` action an
5
+ * agent takes is folded into a per-agent {@link BrowserSession} — what it is
6
+ * doing, where, and a recent picture of the page — so the owner can follow
7
+ * along instead of reading a transcript of tool calls after the fact.
8
+ *
9
+ * Why this exists as its own object rather than a log line: an agent driving
10
+ * a browser is the one activity where the interesting state lives outside
11
+ * Crewly entirely. Without a picture, an agent that cannot see what it is
12
+ * doing will describe the page confidently and wrongly, and the owner has no
13
+ * way to catch it. The most damaging version of that already happened here —
14
+ * an agent that could not attach an image to Slack published a screenshot of
15
+ * a half-filled account-transfer form to a public URL instead.
16
+ *
17
+ * Which leads to the rule this module enforces by construction:
18
+ *
19
+ * **Frames are owner-surface only.** They live in memory, are never written
20
+ * to disk, never attached to a chat message, and never posted to Slack or
21
+ * any other multi-party surface. The only way to read one is an authenticated
22
+ * fetch of {@link BrowserSessionService.getFrame} by someone already looking
23
+ * at this Crewly instance. A screenshot of whatever the owner happened to be
24
+ * logged into is exactly the kind of thing that must not be broadcast.
25
+ *
26
+ * Capture cadence is driven by whether anyone is actually looking. A session
27
+ * nobody is watching refreshes rarely and only after the agent did something;
28
+ * a session being watched refreshes at roughly a frame a second. There is no
29
+ * subscribe/unsubscribe protocol to leak — a viewer is simply someone who
30
+ * fetched a frame recently, which self-expires.
31
+ *
32
+ * @module services/browser/browser-session.service
33
+ */
34
+ /** What an agent is doing with the browser right now. */
35
+ export type BrowserSessionStatus = 'navigating' | 'reading' | 'acting' | 'stopped' | 'done';
36
+ /** A captured picture of the page, held in memory only. */
37
+ export interface BrowserFrame {
38
+ /** Base64-encoded image bytes, as the extension returned them */
39
+ base64: string;
40
+ /** `image/jpeg` or `image/png`, derived from what the extension sent */
41
+ mimeType: string;
42
+ /** When the capture completed (epoch ms) */
43
+ capturedAt: number;
44
+ /** Device pixel ratio the capture was taken at, when reported */
45
+ devicePixelRatio?: number;
46
+ }
47
+ /** One agent's live browser activity. */
48
+ export interface BrowserSession {
49
+ /** Stable id; one live session per agent session */
50
+ id: string;
51
+ /** Owning agent session (`X-Agent-Session`) */
52
+ agentSession: string;
53
+ /** Display name for the UI, when the agent sent one */
54
+ agentName?: string;
55
+ /** What the agent said it is trying to accomplish, from the takeover banner */
56
+ goal?: string;
57
+ /** Chrome tab the agent is bound to, when known */
58
+ tabId?: number;
59
+ /** Last URL we saw the agent target */
60
+ url?: string;
61
+ /** Current activity */
62
+ status: BrowserSessionStatus;
63
+ /** Human-readable description of the most recent action */
64
+ lastAction: string;
65
+ /** When that action happened (epoch ms) */
66
+ lastActionAt: number;
67
+ /** When the agent first touched the browser in this session (epoch ms) */
68
+ startedAt: number;
69
+ /** When the session finished or was stopped (epoch ms) */
70
+ endedAt?: number;
71
+ /** Capture time of the frame currently held, if any (epoch ms) */
72
+ frameAt?: number;
73
+ /** Why the last capture attempt failed, if it did */
74
+ frameError?: string;
75
+ }
76
+ /**
77
+ * How a capture is actually performed.
78
+ *
79
+ * Injected rather than imported so this service does not reach into the
80
+ * bridge/proxy dispatch logic — the controller already owns that decision
81
+ * (direct WS vs relay vs proxy) and hands us a closure over it.
82
+ *
83
+ * @param agentSession - The agent whose bound tab should be captured
84
+ * @param options - Encoding controls passed through to the extension
85
+ * @returns The extension's screenshot result
86
+ */
87
+ export type FrameCapturer = (agentSession: string, options: {
88
+ format: string;
89
+ quality: number;
90
+ scale: number;
91
+ }) => Promise<{
92
+ base64?: string;
93
+ format?: string;
94
+ devicePixelRatio?: number;
95
+ } | null>;
96
+ /**
97
+ * Turns a tool call into a sentence a person can read.
98
+ *
99
+ * @param tool - Tool name as dispatched to the extension
100
+ * @param params - Params sent with it
101
+ * @returns A short description, e.g. `Clicked “Sign in”`
102
+ */
103
+ export declare function describeAction(tool: string, params?: Record<string, unknown>): string;
104
+ /**
105
+ * Maps a tool to the status it puts the session into.
106
+ *
107
+ * @param tool - Tool name
108
+ * @returns The status to show
109
+ */
110
+ export declare function statusForTool(tool: string): BrowserSessionStatus;
111
+ /**
112
+ * Tracks what each agent is doing in the browser and keeps a recent frame.
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const sessions = BrowserSessionService.getInstance();
117
+ * sessions.setCapturer(capture);
118
+ * sessions.noteAction({ agentSession: 'pia', tool: 'navigate', params: { url } });
119
+ * ```
120
+ */
121
+ export declare class BrowserSessionService {
122
+ private static instance;
123
+ private readonly logger;
124
+ private readonly sessions;
125
+ /** Frame bytes, held apart from the session so metadata stays cheap to copy. */
126
+ private readonly frames;
127
+ /** Last time someone fetched this session's frame (epoch ms). */
128
+ private readonly lastViewedAt;
129
+ /** Sessions that acted since their last capture. */
130
+ private readonly dirty;
131
+ /** Sessions with a capture in flight, so ticks cannot pile up on a slow page. */
132
+ private readonly capturing;
133
+ private capturer;
134
+ private timer;
135
+ private constructor();
136
+ /**
137
+ * Get the shared instance.
138
+ *
139
+ * @returns The singleton service
140
+ */
141
+ static getInstance(): BrowserSessionService;
142
+ /** Drops the singleton and stops its timer (tests). */
143
+ static resetInstance(): void;
144
+ /**
145
+ * Provide the function used to capture a frame.
146
+ *
147
+ * Until this is set the service still tracks actions; it simply has no
148
+ * pictures, which is the correct behaviour on an install with no browser
149
+ * extension connected.
150
+ *
151
+ * @param capturer - How to capture, or null to disable capture
152
+ */
153
+ setCapturer(capturer: FrameCapturer | null): void;
154
+ /** Starts the capture loop. Safe to call twice. */
155
+ start(): void;
156
+ /** Stops the capture loop. Sessions and frames are left in place. */
157
+ stop(): void;
158
+ /**
159
+ * Record that an agent performed a browser action.
160
+ *
161
+ * Called from the single dispatch choke point in the browser controller,
162
+ * so every tool is covered without each handler having to remember.
163
+ *
164
+ * @param input - The action that just succeeded
165
+ */
166
+ noteAction(input: {
167
+ agentSession: string;
168
+ tool: string;
169
+ params?: Record<string, unknown>;
170
+ agentName?: string;
171
+ goal?: string;
172
+ tabId?: number;
173
+ }): void;
174
+ /**
175
+ * Mark a session as finished.
176
+ *
177
+ * @param agentSession - The agent whose session ended
178
+ * @param reason - `done` when the agent finished, `stopped` when a person
179
+ * ended it
180
+ */
181
+ endSession(agentSession: string, reason?: 'done' | 'stopped'): void;
182
+ /**
183
+ * All sessions, newest activity first.
184
+ *
185
+ * @param includeFinished - Include sessions that are done or stopped
186
+ * @returns Copies of the session records; frames are not included
187
+ */
188
+ listSessions(includeFinished?: boolean): BrowserSession[];
189
+ /**
190
+ * One session by id.
191
+ *
192
+ * @param id - Session id (the agent session name)
193
+ * @returns A copy, or undefined
194
+ */
195
+ getSession(id: string): BrowserSession | undefined;
196
+ /**
197
+ * Read the current frame, registering the caller as a viewer.
198
+ *
199
+ * Fetching a frame is what marks a session as watched, which is what
200
+ * raises its capture rate. There is no separate subscribe call to get out
201
+ * of sync, and interest expires on its own when nobody fetches.
202
+ *
203
+ * @param id - Session id
204
+ * @returns The frame, or undefined when none has been captured
205
+ */
206
+ getFrame(id: string): BrowserFrame | undefined;
207
+ /**
208
+ * Whether anyone has looked at this session recently.
209
+ *
210
+ * @param id - Session id
211
+ * @param now - Clock override for tests
212
+ * @returns True when a frame was fetched inside the watch window
213
+ */
214
+ isWatched(id: string, now?: number): boolean;
215
+ /**
216
+ * Decide whether a session is due for a capture.
217
+ *
218
+ * Watched sessions refresh on a short interval whether or not the agent
219
+ * did anything, because the page can change on its own. Unwatched ones
220
+ * refresh only after an action, and slowly — a picture nobody is looking
221
+ * at is pure cost on the agent's browser.
222
+ *
223
+ * @param id - Session id
224
+ * @param now - Clock override for tests
225
+ * @returns True when a frame should be captured now
226
+ */
227
+ shouldCapture(id: string, now?: number): boolean;
228
+ /**
229
+ * One pass of the capture loop.
230
+ *
231
+ * @returns How many sessions were captured
232
+ */
233
+ tick(): Promise<number>;
234
+ /**
235
+ * Capture one session's frame.
236
+ *
237
+ * A failure is recorded on the session and otherwise swallowed: a page
238
+ * that cannot be captured (a restricted URL, a tab the user closed) must
239
+ * not stop the agent or the loop.
240
+ *
241
+ * @param id - Session id
242
+ * @returns True when a new frame was stored
243
+ */
244
+ captureFrame(id: string): Promise<boolean>;
245
+ /**
246
+ * Forget sessions that finished a while ago, and their frames.
247
+ *
248
+ * @param now - Clock override for tests
249
+ * @returns How many sessions were dropped
250
+ */
251
+ prune(now?: number): number;
252
+ /** Drops all state (tests). */
253
+ clear(): void;
254
+ }
255
+ /**
256
+ * Convenience accessor for the shared browser session service.
257
+ *
258
+ * @returns The singleton instance
259
+ */
260
+ export declare function getBrowserSessions(): BrowserSessionService;
261
+ //# sourceMappingURL=browser-session.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-session.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/browser/browser-session.service.ts"],"names":[],"mappings":"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"}