crewly 1.20.154 → 1.20.155

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 (56) hide show
  1. package/config/skills/team-leader/delegate-task/execute.sh +17 -4
  2. package/dist/backend/backend/src/constants.d.ts +38 -0
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +38 -0
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +32 -0
  7. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  8. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +122 -8
  9. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  10. package/dist/backend/backend/src/index.d.ts.map +1 -1
  11. package/dist/backend/backend/src/index.js +13 -0
  12. package/dist/backend/backend/src/index.js.map +1 -1
  13. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +15 -0
  14. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  15. package/dist/backend/backend/src/services/agent/agent-registration.service.js +36 -0
  16. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  17. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +153 -1
  18. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +371 -22
  20. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +6 -0
  23. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +2 -0
  26. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  27. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +47 -0
  28. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +118 -3
  30. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  31. package/dist/backend/backend/src/types/event-bus.types.d.ts +5 -0
  32. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  33. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  34. package/dist/backend/build-info.json +2 -2
  35. package/dist/cli/backend/src/constants.d.ts +38 -0
  36. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  37. package/dist/cli/backend/src/constants.js +38 -0
  38. package/dist/cli/backend/src/constants.js.map +1 -1
  39. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +15 -0
  40. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  41. package/dist/cli/backend/src/services/agent/agent-registration.service.js +36 -0
  42. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  43. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +409 -0
  44. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -0
  45. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +961 -0
  46. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -0
  47. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  48. package/dist/cli/backend/src/services/event-bus/event-bus.service.js +6 -0
  49. package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  50. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  51. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +2 -0
  52. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  53. package/dist/cli/backend/src/types/event-bus.types.d.ts +5 -0
  54. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  55. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  56. package/package.json +1 -1
@@ -26,6 +26,15 @@
26
26
  * idle and nobody else just wrote to it; any failure falls back to plain
27
27
  * delivery — nothing here throws into dispatch.
28
28
  *
29
+ * Idle-boundary context cap: one task can run for 1000+ turns, so a new root
30
+ * alone does not bound the context. A periodic sweep
31
+ * ({@link FreshTaskConversationService.startContextCapSweep}) saves and
32
+ * clears an idle Claude Code member whose last turn carried more than
33
+ * `CREWLY_MEMBER_CONTEXT_CAP_TOKENS` (300k by default, `0` disables), then
34
+ * writes one line naming its active WorkItem and the handover. Same safety
35
+ * rules — never the orchestrator, never mid-turn, never while a message is
36
+ * queued for or being delivered to it — plus at most one cap per 20 minutes.
37
+ *
29
38
  * @module services/agent/fresh-task-conversation.service
30
39
  */
31
40
  import type { WorkItem } from '../../types/v2/work-item.types.js';
@@ -98,6 +107,60 @@ export declare function decideFreshConversation(input: FreshTaskDecisionInput):
98
107
  * @returns One line
99
108
  */
100
109
  export declare function freshConversationNote(handoverPath: string): string;
110
+ /**
111
+ * The context cap for members, from the environment.
112
+ *
113
+ * @param env - Environment (tests)
114
+ * @returns Tokens; 0 means the cap is off. Unset or invalid → the default.
115
+ */
116
+ export declare function memberContextCapTokens(env?: NodeJS.ProcessEnv): number;
117
+ /** Everything the idle-boundary context-cap decision depends on. */
118
+ export interface ContextCapDecisionInput {
119
+ /** Agent session */
120
+ sessionName: string;
121
+ /** Its runtime */
122
+ runtimeType?: string;
123
+ /** Cap in tokens (0 = off) */
124
+ capTokens: number;
125
+ /** Env + settings kill-switch of the fresh-conversation feature */
126
+ enabled: boolean;
127
+ /** Last turn's context, or null when unknown */
128
+ contextTokens: number | null;
129
+ /** Agent is mid-turn */
130
+ busy: boolean;
131
+ /** How long the PTY has been quiet (null = unknown) */
132
+ quietMs: number | null;
133
+ /** A message is being delivered, was just delivered, or a prepare/clear is running */
134
+ deliveryActive: boolean;
135
+ /** Messages are queued for the agent */
136
+ queuedMessages: boolean;
137
+ /** When the session was last capped (ms), if ever */
138
+ lastCapAt: number | null;
139
+ /** Now (ms) */
140
+ now: number;
141
+ /** Id of the WorkItem the agent is on (null = none) */
142
+ activeWorkItemId: string | null;
143
+ }
144
+ /**
145
+ * Decide whether to cap (save + clear + re-orient) a member's conversation.
146
+ * Pure; the order of checks is also the order of the logged reasons.
147
+ *
148
+ * @param input - Decision inputs
149
+ * @returns The decision
150
+ */
151
+ export declare function decideContextCap(input: ContextCapDecisionInput): FreshTaskDecision;
152
+ /**
153
+ * The one line written after a context-cap clear. It must carry the WorkItem
154
+ * id: the new conversation id is found by it.
155
+ *
156
+ * @param args - WorkItem, handover file and the old context size
157
+ * @returns One line
158
+ */
159
+ export declare function contextCapReorientation(args: {
160
+ workItem: Pick<WorkItem, 'id' | 'title'>;
161
+ handoverPath: string;
162
+ contextTokens: number;
163
+ }): string;
101
164
  /** What the service needs to know about a session. */
102
165
  export interface FreshTaskSessionInfo {
103
166
  /** Runtime */
@@ -142,6 +205,14 @@ export interface FreshTaskDeps {
142
205
  sleep: (ms: number) => Promise<void>;
143
206
  /** Environment */
144
207
  env: NodeJS.ProcessEnv;
208
+ /** Registered agent sessions (context-cap sweep) */
209
+ listSessions: () => string[];
210
+ /** Messages are queued for the session and not yet written */
211
+ hasQueuedMessages: (sessionName: string) => boolean;
212
+ /** How long the session's PTY has been quiet (ms), or null when unknown */
213
+ getQuietMs: (sessionName: string) => number | null;
214
+ /** Write one message into the session (paste + Enter); false when the session is gone */
215
+ sendMessage: (sessionName: string, text: string) => Promise<boolean>;
145
216
  }
146
217
  /** Result of {@link FreshTaskConversationService.prepareForTask}. */
147
218
  export interface PrepareForTaskResult {
@@ -150,8 +221,20 @@ export interface PrepareForTaskResult {
150
221
  /** Handover file for the old conversation (when cleared) */
151
222
  handoverPath?: string;
152
223
  }
224
+ /** Result of {@link FreshTaskConversationService.capContextIfNeeded}. */
225
+ export interface ContextCapResult {
226
+ /** The conversation was saved, cleared and the agent re-oriented */
227
+ capped: boolean;
228
+ /** Why (logged; the decision reason when not capped) */
229
+ reason: string;
230
+ /** Handover file for the old conversation (when capped) */
231
+ handoverPath?: string;
232
+ /** WorkItem the agent was re-oriented on (when capped) */
233
+ workItemId?: string;
234
+ }
153
235
  /**
154
- * Singleton that starts a fresh Claude Code conversation per new task.
236
+ * Singleton that starts a fresh Claude Code conversation per new task, and
237
+ * caps a long task's conversation at idle boundaries.
155
238
  */
156
239
  export declare class FreshTaskConversationService {
157
240
  private static instance;
@@ -162,6 +245,14 @@ export declare class FreshTaskConversationService {
162
245
  private readonly inFlight;
163
246
  /** Last time a message was written to a session (terminal write / deliver) */
164
247
  private readonly lastDelivery;
248
+ /** Deliveries currently being written to a session (see {@link beginDelivery}) */
249
+ private readonly deliveriesInFlight;
250
+ /** Last context-cap clear per session (rate limit) */
251
+ private readonly lastCapAt;
252
+ /** Context-cap sweep timer */
253
+ private capSweepTimer;
254
+ /** A sweep is running (sweeps never overlap) */
255
+ private capSweepRunning;
165
256
  private constructor();
166
257
  /**
167
258
  * @returns The singleton
@@ -176,6 +267,22 @@ export declare class FreshTaskConversationService {
176
267
  static createForTesting(deps: Partial<FreshTaskDeps>): FreshTaskConversationService;
177
268
  /** Drop the singleton (tests). */
178
269
  static resetInstance(): void;
270
+ /**
271
+ * Mark a delivery to a session as in progress until the returned function
272
+ * is called. Neither a new-task clear nor a context-cap clear starts while
273
+ * one is running: it would wipe the message before the agent reads it.
274
+ *
275
+ * @param sessionName - Session being written to
276
+ * @returns Call when the delivery has finished (idempotent)
277
+ */
278
+ beginDelivery(sessionName: string): () => void;
279
+ /**
280
+ * Whether a delivery is being written to the session right now.
281
+ *
282
+ * @param sessionName - Session
283
+ * @returns True while a {@link beginDelivery} is open
284
+ */
285
+ isDelivering(sessionName: string): boolean;
179
286
  /**
180
287
  * Record that a message is being written to a session. A clear right after
181
288
  * would wipe it before the agent reads it, so {@link prepareForTask} skips
@@ -210,7 +317,52 @@ export declare class FreshTaskConversationService {
210
317
  * @returns Whether it cleared, and the handover file when it did
211
318
  */
212
319
  prepareForTask(sessionName: string, workItem: Pick<WorkItem, 'id' | 'metadata'>): Promise<PrepareForTaskResult>;
320
+ /**
321
+ * Start the periodic context-cap sweep (idempotent). The timer is unref'd
322
+ * so it never keeps the process alive.
323
+ *
324
+ * @param intervalMs - Sweep interval
325
+ */
326
+ startContextCapSweep(intervalMs?: number): void;
327
+ /** Stop the periodic context-cap sweep. */
328
+ stopContextCapSweep(): void;
329
+ /**
330
+ * Check every registered session once. Sessions are handled one after
331
+ * another and sweeps never overlap. Never throws.
332
+ *
333
+ * @returns Per-session results (sessions skipped cheaply are omitted)
334
+ */
335
+ runContextCapSweep(): Promise<Record<string, ContextCapResult>>;
336
+ /**
337
+ * If the member is idle between turns and its last turn carried more than
338
+ * the cap, save the conversation (handover file + wiki), `/clear` it and
339
+ * write one line naming its WorkItem and the handover. Runs in the same
340
+ * per-session chain as {@link prepareForTask}, so terminal writes wait for
341
+ * it. Never throws.
342
+ *
343
+ * @param sessionName - Member session
344
+ * @returns What happened
345
+ */
346
+ capContextIfNeeded(sessionName: string): Promise<ContextCapResult>;
347
+ private doCapContext;
348
+ /**
349
+ * The WorkItem a member is on: running before accepted before proposed,
350
+ * then the most recently started.
351
+ */
352
+ private pickCurrentItem;
213
353
  private doPrepare;
354
+ /**
355
+ * Save the current conversation (handover file + memory/wiki copy, no
356
+ * agent turn) and write `/clear`. Shared by the new-task and the
357
+ * context-cap paths.
358
+ *
359
+ * @param sessionName - Agent session
360
+ * @param conv - Its cwd and current conversation id
361
+ * @param handover - Task the old conversation was on, and why it closed
362
+ * @returns The handover file and the time `/clear` was written, or null
363
+ * when nothing was cleared (transcript missing, session gone)
364
+ */
365
+ private saveAndClear;
214
366
  /**
215
367
  * Write the handover file (same shape as the orchestrator's restart handover).
216
368
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fresh-task-conversation.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/fresh-task-conversation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fresh-task-conversation.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/fresh-task-conversation.service.ts"],"names":[],"mappings":"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"}