crewly 1.20.214 → 1.20.216
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.
- package/config/hooks/agent-status/report.sh +45 -6
- package/config/roles/team-leader/fragments/role-boundary.md +2 -1
- package/config/roles/team-leader/prompt.md +9 -5
- package/config/roles/team-leader/role-boundaries.md +3 -2
- package/config/roles/team-leader/tl-addon.md +9 -5
- package/config/skills/agent/core/ask-owner/SKILL.md +9 -2
- package/config/skills/agent/core/ask-owner/execute.sh +1 -1
- package/config/skills/agent/core/project-tickets/SKILL.md +44 -12
- package/config/skills/agent/core/project-tickets/execute.sh +46 -13
- package/config/skills/agent/core/project-tickets/execute.test.sh +19 -0
- package/config/skills/team-leader/delegate-task/SKILL.md +40 -0
- package/config/skills/team-leader/delegate-task/execute.sh +39 -1
- package/dist/backend/backend/src/constants.d.ts +101 -10
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +119 -9
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts +2 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +26 -3
- package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +10 -2
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +17 -2
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +2 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +4 -2
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +32 -0
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team-lead-share.controller.d.ts +27 -0
- package/dist/backend/backend/src/controllers/team/team-lead-share.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/team/team-lead-share.controller.js +92 -0
- package/dist/backend/backend/src/controllers/team/team-lead-share.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.routes.js +4 -0
- package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +16 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +6 -0
- package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-contract.d.ts +25 -1
- package/dist/backend/backend/src/services/decisions/decision-contract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-contract.js +39 -2
- package/dist/backend/backend/src/services/decisions/decision-contract.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +17 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts +26 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-item-card.js +71 -1
- package/dist/backend/backend/src/services/open-items/open-item-card.js.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/open-items/open-items.service.js +6 -3
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js +46 -1
- package/dist/backend/backend/src/services/orc/reply-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +35 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js +75 -2
- package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed-command.d.ts +108 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed-command.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed-command.js +223 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed-command.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed.wiring.d.ts +57 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed.wiring.js +90 -0
- package/dist/backend/backend/src/services/project-tickets/autopilot-speed.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +18 -4
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +18 -4
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts +135 -14
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +111 -18
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts +73 -4
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js +86 -7
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js +7 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-trace.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +104 -4
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +424 -12
- package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +2 -1
- package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-initializer.js +10 -0
- package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +7 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +25 -2
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +74 -2
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/services/tl-delegation/lead-share.d.ts +108 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.d.ts.map +1 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.js +170 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.js.map +1 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.wiring.d.ts +32 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.wiring.js +47 -0
- package/dist/backend/backend/src/services/tl-delegation/lead-share.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.d.ts +207 -0
- package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.js +377 -0
- package/dist/backend/backend/src/services/tl-delegation/tl-delegation.service.js.map +1 -0
- package/dist/backend/backend/src/types/decision.types.d.ts +6 -1
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/decision.types.js +1 -1
- package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts +46 -4
- package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/ticket-autopilot.types.js +43 -2
- package/dist/backend/backend/src/types/ticket-autopilot.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +1 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/backend/src/utils/defaultPrompts.js +3 -3
- package/dist/backend/backend/src/utils/defaultPrompts.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +101 -10
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +119 -9
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +6 -0
- package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +25 -1
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-contract.js +39 -2
- package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +17 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts +26 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-item-card.js +71 -1
- package/dist/cli/backend/src/services/open-items/open-item-card.js.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/open-items/open-items.service.js +6 -3
- package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +35 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/work-item-destination.js +75 -2
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +2 -1
- package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +7 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +25 -2
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +74 -2
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +6 -1
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/decision.types.js +1 -1
- package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts +46 -4
- package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/ticket-autopilot.types.js +43 -2
- package/dist/cli/backend/src/types/ticket-autopilot.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +1 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/frontend/dist/assets/{index-917db1b8.js → index-bc4e2a93.js} +274 -274
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
* - whether to wake the driver now ({@link decideTriage});
|
|
9
9
|
* - whether to wake the driver to plan toward the goal when nothing is left
|
|
10
10
|
* to triage ({@link decideReplan}, specs/2026-10-04-autopilot-goal-replan.md);
|
|
11
|
-
* - whether to send the owner the evening digest ({@link decideDigest})
|
|
11
|
+
* - whether to send the owner the evening digest ({@link decideDigest});
|
|
12
|
+
* - why the autopilot is not producing work ({@link classifyStopReason},
|
|
13
|
+
* specs/2026-10-04-autopilot-speed-modes.md);
|
|
14
|
+
* - whether the driver's self-review is due ({@link decideSelfReview}).
|
|
12
15
|
*
|
|
13
16
|
* @module services/project-tickets/ticket-autopilot-decision
|
|
14
17
|
*/
|
|
@@ -195,6 +198,12 @@ export interface ReplanDecisionInput {
|
|
|
195
198
|
maxReplansPerDay: number;
|
|
196
199
|
/** Replans already created today (local day) */
|
|
197
200
|
replansToday: number;
|
|
201
|
+
/** When the last replan was created (epoch ms), if any */
|
|
202
|
+
lastReplanAt?: number;
|
|
203
|
+
/** A replan never starts sooner than this after the last one (the speed mode's gap, ms; 0 = none) */
|
|
204
|
+
minGapMs?: number;
|
|
205
|
+
/** Clock (epoch ms), for the gap */
|
|
206
|
+
now?: number;
|
|
198
207
|
/** Tokens used today by the project's team agents */
|
|
199
208
|
usedTodayTokens: number;
|
|
200
209
|
/** Daily budget in tokens (boosts included); Infinity = unlimited today */
|
|
@@ -211,7 +220,7 @@ export interface ReplanDecisionInput {
|
|
|
211
220
|
idleWithRoom: boolean;
|
|
212
221
|
}
|
|
213
222
|
/** Why the driver is not woken to replan. */
|
|
214
|
-
export type ReplanSkipReason = 'off' | 'no_driver' | 'no_goal' | 'replan_off' | 'budget_reached' | 'triage_in_flight' | 'replan_in_flight' | 'tickets_to_triage' | 'nobody_idle' | 'at_capacity' | 'replanned_today' | 'backed_off';
|
|
223
|
+
export type ReplanSkipReason = 'off' | 'no_driver' | 'no_goal' | 'replan_off' | 'budget_reached' | 'triage_in_flight' | 'replan_in_flight' | 'tickets_to_triage' | 'nobody_idle' | 'at_capacity' | 'replanned_today' | 'replan_too_soon' | 'backed_off';
|
|
215
224
|
/** Outcome of {@link decideReplan}. */
|
|
216
225
|
export type ReplanDecision = {
|
|
217
226
|
action: 'replan';
|
|
@@ -225,8 +234,9 @@ export type ReplanDecision = {
|
|
|
225
234
|
* step (specs/2026-10-04-autopilot-goal-replan.md). Checked in order,
|
|
226
235
|
* cheapest first: switch off → no driver → replans set to 0 → budget
|
|
227
236
|
* reached → a triage live → a replan live → tickets to triage → nobody idle
|
|
228
|
-
* → every idle member at the in-progress cap → today's replans used up
|
|
229
|
-
*
|
|
237
|
+
* → every idle member at the in-progress cap → today's replans used up (the
|
|
238
|
+
* mode's hard cap) → too soon after the last one (the mode's gap) → backing
|
|
239
|
+
* off → no goal (the only gate that reads files).
|
|
230
240
|
*
|
|
231
241
|
* The autopilot only wakes the driver; the driver opens the tickets. It never
|
|
232
242
|
* makes a ticket ready or starts work.
|
|
@@ -235,14 +245,11 @@ export type ReplanDecision = {
|
|
|
235
245
|
* @returns `replan`, or `skip` with the reason
|
|
236
246
|
*/
|
|
237
247
|
export declare function decideReplan(input: ReplanDecisionInput): ReplanDecision;
|
|
238
|
-
/**
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
* @returns Days to skip after the replan's day
|
|
244
|
-
*/
|
|
245
|
-
export declare function replanBackoffDays(streak: number): number;
|
|
248
|
+
/** How long the next replan waits after one that opened no tickets (the speed mode's retry). */
|
|
249
|
+
export interface EmptyReplanRetry {
|
|
250
|
+
unit: 'hours' | 'days';
|
|
251
|
+
amount: number;
|
|
252
|
+
}
|
|
246
253
|
/** The replan backoff as the autopilot remembers it. */
|
|
247
254
|
export interface ReplanBackoff {
|
|
248
255
|
/** Empty replans in a row */
|
|
@@ -251,12 +258,19 @@ export interface ReplanBackoff {
|
|
|
251
258
|
since: number;
|
|
252
259
|
/** First local day a replan may run again (YYYY-MM-DD) */
|
|
253
260
|
resumeDay: string;
|
|
261
|
+
/**
|
|
262
|
+
* When a replan may run again (epoch ms). Absent on backoffs stored before
|
|
263
|
+
* speed modes: those wait for `resumeDay`.
|
|
264
|
+
*/
|
|
265
|
+
resumeAt?: number;
|
|
254
266
|
}
|
|
255
267
|
/**
|
|
256
268
|
* The backoff after a finished replan: none when it opened a ticket (any
|
|
257
|
-
* ticket created since the replan was queued), else
|
|
269
|
+
* ticket created since the replan was queued), else the speed mode's retry:
|
|
270
|
+
* `hours` after now (Rush: 1 h), or the local day `days` after the replan's
|
|
271
|
+
* day (Normal: the next day, Chill: a week later).
|
|
258
272
|
*
|
|
259
|
-
* @param input - The replan, the tickets, the previous backoff, the clock
|
|
273
|
+
* @param input - The replan, the tickets, the previous backoff, the retry, the clock
|
|
260
274
|
* @returns The new backoff, or null (no backoff)
|
|
261
275
|
*/
|
|
262
276
|
export declare function nextReplanBackoff(input: {
|
|
@@ -266,6 +280,8 @@ export declare function nextReplanBackoff(input: {
|
|
|
266
280
|
replanDay: string;
|
|
267
281
|
tickets: Array<Pick<ProjectTicket, 'createdAt'>>;
|
|
268
282
|
previous?: ReplanBackoff | null;
|
|
283
|
+
/** The speed mode's retry (default: the next day) */
|
|
284
|
+
retry?: EmptyReplanRetry;
|
|
269
285
|
now: number;
|
|
270
286
|
}): ReplanBackoff | null;
|
|
271
287
|
/**
|
|
@@ -285,7 +301,112 @@ export declare function replanBackoffState(backoff: ReplanBackoff | null | undef
|
|
|
285
301
|
today: string;
|
|
286
302
|
tickets: Array<Pick<ProjectTicket, 'createdAt'>>;
|
|
287
303
|
goalChangedAt?: number | null;
|
|
304
|
+
now?: number;
|
|
288
305
|
}): 'holds' | 'lifted' | 'elapsed' | 'none';
|
|
306
|
+
/**
|
|
307
|
+
* Whether a stored backoff still holds at a moment (no lift checks): for
|
|
308
|
+
* status and stop-reason views.
|
|
309
|
+
*
|
|
310
|
+
* @param backoff - Stored backoff
|
|
311
|
+
* @param now - Clock (epoch ms)
|
|
312
|
+
* @param today - Local day key of `now`
|
|
313
|
+
* @returns True while it holds
|
|
314
|
+
*/
|
|
315
|
+
export declare function replanBackoffHolds(backoff: ReplanBackoff | null | undefined, now: number, today: string): boolean;
|
|
316
|
+
/** Why the autopilot is not producing work (specs/2026-10-04-autopilot-speed-modes.md). */
|
|
317
|
+
export type AutopilotStopReason = 'paused' | 'budget_reached' | 'system_error' | 'waiting_on_owner' | 'no_ideas';
|
|
318
|
+
/** Inputs of {@link classifyStopReason}. */
|
|
319
|
+
export interface StopReasonInput {
|
|
320
|
+
/** Teams on the project (paused ones included) */
|
|
321
|
+
teamsTotal: number;
|
|
322
|
+
/** Teams on the project that are not paused */
|
|
323
|
+
teamsActive: number;
|
|
324
|
+
usedTodayTokens: number;
|
|
325
|
+
/** Today's budget (Infinity = unlimited) */
|
|
326
|
+
dailyBudgetTokens: number;
|
|
327
|
+
/** Tickets in progress */
|
|
328
|
+
inProgress: number;
|
|
329
|
+
/** Tickets ready to take */
|
|
330
|
+
ready: number;
|
|
331
|
+
/** Backlog tickets the driver has not decided yet (triage will list them) */
|
|
332
|
+
toTriage: number;
|
|
333
|
+
/** A triage / goal replan of the project is live (the autopilot is producing work) */
|
|
334
|
+
liveAutopilotItem: boolean;
|
|
335
|
+
/** Project WorkItems that failed recently */
|
|
336
|
+
failedRecently: number;
|
|
337
|
+
/** An autopilot WorkItem queued long ago and never picked up */
|
|
338
|
+
stuckDelivery: boolean;
|
|
339
|
+
/** Open tickets waiting on the owner (review, needs-owner, retro-pending) */
|
|
340
|
+
waitingOnOwner: number;
|
|
341
|
+
/** The last goal replan opened no tickets and the retry has not come yet */
|
|
342
|
+
emptyReplanBackoff: boolean;
|
|
343
|
+
}
|
|
344
|
+
/** Outcome of {@link classifyStopReason}. */
|
|
345
|
+
export interface StopReasonResult {
|
|
346
|
+
/** The work is still moving (in progress, ready, being triaged or planned) */
|
|
347
|
+
running: boolean;
|
|
348
|
+
/** Why it stopped (null while running, or stopped for none of the named reasons) */
|
|
349
|
+
reason: AutopilotStopReason | null;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Why the autopilot is not producing work, most decisive first:
|
|
353
|
+
* every team paused → over the daily budget → stuck delivery → (still
|
|
354
|
+
* running? none) → failed work → waiting on the owner → the last replan had
|
|
355
|
+
* no ideas. A project stopped for none of these (between replans) has no
|
|
356
|
+
* reason: the next replan comes at the mode's gap.
|
|
357
|
+
*
|
|
358
|
+
* @param input - Project state
|
|
359
|
+
* @returns Running flag and the reason
|
|
360
|
+
*/
|
|
361
|
+
export declare function classifyStopReason(input: StopReasonInput): StopReasonResult;
|
|
362
|
+
/** Inputs of {@link decideSelfReview}. */
|
|
363
|
+
export interface SelfReviewDecisionInput {
|
|
364
|
+
enabled: boolean;
|
|
365
|
+
driver: string | null;
|
|
366
|
+
now: number;
|
|
367
|
+
/** The mode's cadence (ms) */
|
|
368
|
+
everyMs: number;
|
|
369
|
+
/** When the last self-review was asked (epoch ms) */
|
|
370
|
+
lastAskedAt?: number;
|
|
371
|
+
/** A self-review of the project is live */
|
|
372
|
+
live: boolean;
|
|
373
|
+
usedTodayTokens: number;
|
|
374
|
+
dailyBudgetTokens: number;
|
|
375
|
+
/** Something changed since the last one (tickets, goal, stop reason) */
|
|
376
|
+
changed: boolean;
|
|
377
|
+
anyoneIdle: boolean;
|
|
378
|
+
}
|
|
379
|
+
/** Why no self-review is asked. */
|
|
380
|
+
export type SelfReviewSkipReason = 'off' | 'no_driver' | 'budget_reached' | 'not_due' | 'in_flight' | 'unchanged';
|
|
381
|
+
/** Outcome of {@link decideSelfReview}. */
|
|
382
|
+
export type SelfReviewDecision = {
|
|
383
|
+
action: 'review';
|
|
384
|
+
} | {
|
|
385
|
+
action: 'skip';
|
|
386
|
+
reason: SelfReviewSkipReason;
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* Whether to ask the driver for a self-review now: at the mode's cadence,
|
|
390
|
+
* one live at a time, never over the budget, and skipped when nothing
|
|
391
|
+
* changed since the last one and nobody is idle (nothing to say, nobody to
|
|
392
|
+
* give the next bet to).
|
|
393
|
+
*
|
|
394
|
+
* @param input - Project state
|
|
395
|
+
* @returns `review`, or `skip` with the reason
|
|
396
|
+
*/
|
|
397
|
+
export declare function decideSelfReview(input: SelfReviewDecisionInput): SelfReviewDecision;
|
|
398
|
+
/**
|
|
399
|
+
* Whether a ticket description (or the create call's `metric`) names the
|
|
400
|
+
* goal metric it moves: a `Metric: …` line (any case, optional bullet /
|
|
401
|
+
* bold) of at least METRIC_MIN_CHARS characters.
|
|
402
|
+
*
|
|
403
|
+
* @param input - The create call's description and metric
|
|
404
|
+
* @returns The metric reference, or null when there is none
|
|
405
|
+
*/
|
|
406
|
+
export declare function ticketMetricRef(input: {
|
|
407
|
+
description?: string | null;
|
|
408
|
+
metric?: string | null;
|
|
409
|
+
}): string | null;
|
|
289
410
|
/**
|
|
290
411
|
* Tickets closed (done or cancelled) since a moment, newest first.
|
|
291
412
|
*
|
package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-autopilot-decision.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-decision.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ticket-autopilot-decision.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-decision.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
* - whether to wake the driver now ({@link decideTriage});
|
|
9
9
|
* - whether to wake the driver to plan toward the goal when nothing is left
|
|
10
10
|
* to triage ({@link decideReplan}, specs/2026-10-04-autopilot-goal-replan.md);
|
|
11
|
-
* - whether to send the owner the evening digest ({@link decideDigest})
|
|
11
|
+
* - whether to send the owner the evening digest ({@link decideDigest});
|
|
12
|
+
* - why the autopilot is not producing work ({@link classifyStopReason},
|
|
13
|
+
* specs/2026-10-04-autopilot-speed-modes.md);
|
|
14
|
+
* - whether the driver's self-review is due ({@link decideSelfReview}).
|
|
12
15
|
*
|
|
13
16
|
* @module services/project-tickets/ticket-autopilot-decision
|
|
14
17
|
*/
|
|
@@ -213,8 +216,9 @@ export function decideTriage(input) {
|
|
|
213
216
|
* step (specs/2026-10-04-autopilot-goal-replan.md). Checked in order,
|
|
214
217
|
* cheapest first: switch off → no driver → replans set to 0 → budget
|
|
215
218
|
* reached → a triage live → a replan live → tickets to triage → nobody idle
|
|
216
|
-
* → every idle member at the in-progress cap → today's replans used up
|
|
217
|
-
*
|
|
219
|
+
* → every idle member at the in-progress cap → today's replans used up (the
|
|
220
|
+
* mode's hard cap) → too soon after the last one (the mode's gap) → backing
|
|
221
|
+
* off → no goal (the only gate that reads files).
|
|
218
222
|
*
|
|
219
223
|
* The autopilot only wakes the driver; the driver opens the tickets. It never
|
|
220
224
|
* makes a ticket ready or starts work.
|
|
@@ -243,28 +247,25 @@ export function decideReplan(input) {
|
|
|
243
247
|
return { action: 'skip', reason: 'at_capacity' };
|
|
244
248
|
if (input.replansToday >= input.maxReplansPerDay)
|
|
245
249
|
return { action: 'skip', reason: 'replanned_today' };
|
|
250
|
+
if (input.lastReplanAt !== undefined &&
|
|
251
|
+
input.now !== undefined &&
|
|
252
|
+
(input.minGapMs ?? 0) > 0 &&
|
|
253
|
+
input.now - input.lastReplanAt < (input.minGapMs ?? 0)) {
|
|
254
|
+
return { action: 'skip', reason: 'replan_too_soon' };
|
|
255
|
+
}
|
|
246
256
|
if (input.backedOff)
|
|
247
257
|
return { action: 'skip', reason: 'backed_off' };
|
|
248
258
|
if (!input.hasGoal)
|
|
249
259
|
return { action: 'skip', reason: 'no_goal' };
|
|
250
260
|
return { action: 'replan' };
|
|
251
261
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Days skipped after the n-th replan in a row that opened no tickets:
|
|
254
|
-
* 2, 4, then 7 (doubling, capped at REPLAN_BACKOFF_MAX_DAYS).
|
|
255
|
-
*
|
|
256
|
-
* @param streak - Empty replans in a row (≥ 1)
|
|
257
|
-
* @returns Days to skip after the replan's day
|
|
258
|
-
*/
|
|
259
|
-
export function replanBackoffDays(streak) {
|
|
260
|
-
const C = TICKET_AUTOPILOT_CONSTANTS;
|
|
261
|
-
return Math.min(C.REPLAN_BACKOFF_MAX_DAYS, C.REPLAN_BACKOFF_FIRST_DAYS * 2 ** Math.max(0, streak - 1));
|
|
262
|
-
}
|
|
263
262
|
/**
|
|
264
263
|
* The backoff after a finished replan: none when it opened a ticket (any
|
|
265
|
-
* ticket created since the replan was queued), else
|
|
264
|
+
* ticket created since the replan was queued), else the speed mode's retry:
|
|
265
|
+
* `hours` after now (Rush: 1 h), or the local day `days` after the replan's
|
|
266
|
+
* day (Normal: the next day, Chill: a week later).
|
|
266
267
|
*
|
|
267
|
-
* @param input - The replan, the tickets, the previous backoff, the clock
|
|
268
|
+
* @param input - The replan, the tickets, the previous backoff, the retry, the clock
|
|
268
269
|
* @returns The new backoff, or null (no backoff)
|
|
269
270
|
*/
|
|
270
271
|
export function nextReplanBackoff(input) {
|
|
@@ -272,9 +273,14 @@ export function nextReplanBackoff(input) {
|
|
|
272
273
|
if (opened)
|
|
273
274
|
return null;
|
|
274
275
|
const streak = (input.previous?.streak ?? 0) + 1;
|
|
276
|
+
const retry = input.retry ?? { unit: 'days', amount: 1 };
|
|
277
|
+
if (retry.unit === 'hours') {
|
|
278
|
+
const resumeAt = input.now + Math.max(0, retry.amount) * 60 * 60 * 1000;
|
|
279
|
+
return { streak, since: input.now, resumeDay: localDateKey(new Date(resumeAt)), resumeAt };
|
|
280
|
+
}
|
|
275
281
|
const [y, m, d] = input.replanDay.split('-').map(Number);
|
|
276
|
-
const resume =
|
|
277
|
-
return { streak, since: input.now, resumeDay: resume };
|
|
282
|
+
const resume = new Date(y, m - 1, d + Math.max(1, retry.amount), 0, 0, 0, 0);
|
|
283
|
+
return { streak, since: input.now, resumeDay: localDateKey(resume), resumeAt: resume.getTime() };
|
|
278
284
|
}
|
|
279
285
|
/**
|
|
280
286
|
* Where a stored backoff stands today:
|
|
@@ -296,8 +302,95 @@ export function replanBackoffState(backoff, input) {
|
|
|
296
302
|
return 'lifted';
|
|
297
303
|
if (typeof input.goalChangedAt === 'number' && input.goalChangedAt > backoff.since)
|
|
298
304
|
return 'lifted';
|
|
305
|
+
if (typeof backoff.resumeAt === 'number' && input.now !== undefined)
|
|
306
|
+
return input.now >= backoff.resumeAt ? 'elapsed' : 'holds';
|
|
299
307
|
return input.today >= backoff.resumeDay ? 'elapsed' : 'holds';
|
|
300
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* Whether a stored backoff still holds at a moment (no lift checks): for
|
|
311
|
+
* status and stop-reason views.
|
|
312
|
+
*
|
|
313
|
+
* @param backoff - Stored backoff
|
|
314
|
+
* @param now - Clock (epoch ms)
|
|
315
|
+
* @param today - Local day key of `now`
|
|
316
|
+
* @returns True while it holds
|
|
317
|
+
*/
|
|
318
|
+
export function replanBackoffHolds(backoff, now, today) {
|
|
319
|
+
if (!backoff)
|
|
320
|
+
return false;
|
|
321
|
+
if (typeof backoff.resumeAt === 'number')
|
|
322
|
+
return now < backoff.resumeAt;
|
|
323
|
+
return today < backoff.resumeDay;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Why the autopilot is not producing work, most decisive first:
|
|
327
|
+
* every team paused → over the daily budget → stuck delivery → (still
|
|
328
|
+
* running? none) → failed work → waiting on the owner → the last replan had
|
|
329
|
+
* no ideas. A project stopped for none of these (between replans) has no
|
|
330
|
+
* reason: the next replan comes at the mode's gap.
|
|
331
|
+
*
|
|
332
|
+
* @param input - Project state
|
|
333
|
+
* @returns Running flag and the reason
|
|
334
|
+
*/
|
|
335
|
+
export function classifyStopReason(input) {
|
|
336
|
+
const running = input.inProgress > 0 || input.ready > 0 || input.toTriage > 0 || input.liveAutopilotItem;
|
|
337
|
+
if (input.teamsTotal > 0 && input.teamsActive === 0)
|
|
338
|
+
return { running: false, reason: 'paused' };
|
|
339
|
+
if (input.usedTodayTokens >= input.dailyBudgetTokens)
|
|
340
|
+
return { running: false, reason: 'budget_reached' };
|
|
341
|
+
if (input.stuckDelivery)
|
|
342
|
+
return { running: false, reason: 'system_error' };
|
|
343
|
+
if (running)
|
|
344
|
+
return { running: true, reason: null };
|
|
345
|
+
if (input.failedRecently > 0)
|
|
346
|
+
return { running: false, reason: 'system_error' };
|
|
347
|
+
if (input.waitingOnOwner > 0)
|
|
348
|
+
return { running: false, reason: 'waiting_on_owner' };
|
|
349
|
+
if (input.emptyReplanBackoff)
|
|
350
|
+
return { running: false, reason: 'no_ideas' };
|
|
351
|
+
return { running: false, reason: null };
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Whether to ask the driver for a self-review now: at the mode's cadence,
|
|
355
|
+
* one live at a time, never over the budget, and skipped when nothing
|
|
356
|
+
* changed since the last one and nobody is idle (nothing to say, nobody to
|
|
357
|
+
* give the next bet to).
|
|
358
|
+
*
|
|
359
|
+
* @param input - Project state
|
|
360
|
+
* @returns `review`, or `skip` with the reason
|
|
361
|
+
*/
|
|
362
|
+
export function decideSelfReview(input) {
|
|
363
|
+
if (!input.enabled)
|
|
364
|
+
return { action: 'skip', reason: 'off' };
|
|
365
|
+
if (!input.driver)
|
|
366
|
+
return { action: 'skip', reason: 'no_driver' };
|
|
367
|
+
if (input.usedTodayTokens >= input.dailyBudgetTokens)
|
|
368
|
+
return { action: 'skip', reason: 'budget_reached' };
|
|
369
|
+
if (input.lastAskedAt !== undefined && input.now - input.lastAskedAt < input.everyMs)
|
|
370
|
+
return { action: 'skip', reason: 'not_due' };
|
|
371
|
+
if (input.live)
|
|
372
|
+
return { action: 'skip', reason: 'in_flight' };
|
|
373
|
+
if (!input.changed && !input.anyoneIdle)
|
|
374
|
+
return { action: 'skip', reason: 'unchanged' };
|
|
375
|
+
return { action: 'review' };
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Whether a ticket description (or the create call's `metric`) names the
|
|
379
|
+
* goal metric it moves: a `Metric: …` line (any case, optional bullet /
|
|
380
|
+
* bold) of at least METRIC_MIN_CHARS characters.
|
|
381
|
+
*
|
|
382
|
+
* @param input - The create call's description and metric
|
|
383
|
+
* @returns The metric reference, or null when there is none
|
|
384
|
+
*/
|
|
385
|
+
export function ticketMetricRef(input) {
|
|
386
|
+
const C = TICKET_AUTOPILOT_CONSTANTS;
|
|
387
|
+
const direct = typeof input.metric === 'string' ? input.metric.replace(/\s+/g, ' ').trim() : '';
|
|
388
|
+
if (direct.length >= C.METRIC_MIN_CHARS)
|
|
389
|
+
return direct;
|
|
390
|
+
const m = /^\s*(?:[-*]\s*)?(?:\*\*)?metric(?:\*\*)?\s*[::](?:\*\*)?\s*(.+)$/im.exec(input.description ?? '');
|
|
391
|
+
const line = m ? m[1].trim() : '';
|
|
392
|
+
return line.length >= C.METRIC_MIN_CHARS ? line : null;
|
|
393
|
+
}
|
|
301
394
|
/**
|
|
302
395
|
* Tickets closed (done or cancelled) since a moment, newest first.
|
|
303
396
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-autopilot-decision.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-decision.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ticket-autopilot-decision.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-decision.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @module services/project-tickets/ticket-autopilot-messages
|
|
9
9
|
*/
|
|
10
10
|
import type { ProjectTicket } from '../../types/project-ticket.types.js';
|
|
11
|
-
import type { MemberAvailability, TriageCandidate } from './ticket-autopilot-decision.js';
|
|
11
|
+
import type { AutopilotStopReason, MemberAvailability, TriageCandidate } from './ticket-autopilot-decision.js';
|
|
12
12
|
import type { ReplanExperiment } from './ticket-autopilot-goal.js';
|
|
13
13
|
/**
|
|
14
14
|
* Actions that need the owner's explicit OK even with the autopilot on.
|
|
@@ -17,7 +17,8 @@ import type { ReplanExperiment } from './ticket-autopilot-goal.js';
|
|
|
17
17
|
export declare const TICKET_AUTOPILOT_BOUNDARIES: readonly string[];
|
|
18
18
|
/**
|
|
19
19
|
* How to delegate, in the triage brief (and, in the same words, in the
|
|
20
|
-
* team-leader prompts).
|
|
20
|
+
* team-leader prompts). Role is a preference, not a limit; idle members
|
|
21
|
+
* first; old splits are hints (crewly#1083).
|
|
21
22
|
*/
|
|
22
23
|
export declare const TICKET_AUTOPILOT_ASSIGNMENT_GUIDANCE: readonly string[];
|
|
23
24
|
/** Label of each availability in the triage brief. */
|
|
@@ -68,6 +69,34 @@ export declare function formatAge(iso: string, now: number): string;
|
|
|
68
69
|
export declare function buildTriageBrief(input: TriageBriefInput): string;
|
|
69
70
|
/** The ask of a goal replan, word for word (brief and WorkItem description). */
|
|
70
71
|
export declare const REPLAN_ASK = "Open the next tickets toward this goal, or say why there are none.";
|
|
72
|
+
/**
|
|
73
|
+
* The metric rule of replan tickets, word for word (replan brief and the
|
|
74
|
+
* create path's rejection; specs/2026-10-04-autopilot-speed-modes.md §3).
|
|
75
|
+
*/
|
|
76
|
+
export declare const REPLAN_METRIC_RULE = "Every ticket you open for this replan must name the goal metric it moves and the expected effect: add `--metric \"<goal metric> \u2192 <expected effect>\"` (e.g. `--metric \"weekly /feed visitors \u2192 +150\"`). A ticket without one is refused.";
|
|
77
|
+
/**
|
|
78
|
+
* Why the create path refused a replan ticket, for the agent to fix it.
|
|
79
|
+
*
|
|
80
|
+
* @param title - The refused ticket's title
|
|
81
|
+
* @param projectName - Project
|
|
82
|
+
* @returns One message
|
|
83
|
+
*/
|
|
84
|
+
export declare function replanMetricRejection(title: string, projectName: string): string;
|
|
85
|
+
/** Stop reasons in words (status, digest, trace). */
|
|
86
|
+
export declare const STOP_REASON_WORDS: Readonly<Record<AutopilotStopReason, string>>;
|
|
87
|
+
/** A self-review as stored and shown. */
|
|
88
|
+
export interface SelfReviewRecord {
|
|
89
|
+
/** When it was filed (ISO) */
|
|
90
|
+
at: string;
|
|
91
|
+
/** Who filed it (session or `owner`) */
|
|
92
|
+
by: string;
|
|
93
|
+
/** Gap to the target, in one or two lines */
|
|
94
|
+
gap: string;
|
|
95
|
+
/** What moved the metric since the last review */
|
|
96
|
+
moved: string;
|
|
97
|
+
/** The next bet */
|
|
98
|
+
nextBet: string;
|
|
99
|
+
}
|
|
71
100
|
/** Inputs of {@link buildReplanBrief}. */
|
|
72
101
|
export interface ReplanBriefInput {
|
|
73
102
|
project: {
|
|
@@ -86,6 +115,8 @@ export interface ReplanBriefInput {
|
|
|
86
115
|
maxInFlightPerMember: number;
|
|
87
116
|
/** Clock (epoch ms), for ages */
|
|
88
117
|
now: number;
|
|
118
|
+
/** The driver's latest self-review: its next bet drives this replan */
|
|
119
|
+
lastSelfReview?: SelfReviewRecord | null;
|
|
89
120
|
}
|
|
90
121
|
/**
|
|
91
122
|
* The goal replan brief the driver receives when the project has a goal but
|
|
@@ -96,6 +127,38 @@ export interface ReplanBriefInput {
|
|
|
96
127
|
* @returns Markdown brief
|
|
97
128
|
*/
|
|
98
129
|
export declare function buildReplanBrief(input: ReplanBriefInput): string;
|
|
130
|
+
/** Inputs of {@link buildSelfReviewBrief}. */
|
|
131
|
+
export interface SelfReviewBriefInput {
|
|
132
|
+
project: {
|
|
133
|
+
id: string;
|
|
134
|
+
name: string;
|
|
135
|
+
};
|
|
136
|
+
/** Speed mode, for the cadence line */
|
|
137
|
+
mode: string;
|
|
138
|
+
/** Cadence in words ("hourly", "daily", "weekly") */
|
|
139
|
+
cadence: string;
|
|
140
|
+
goal: string;
|
|
141
|
+
/** Tickets closed since the last self-review (or in the last day) */
|
|
142
|
+
closedSince: number;
|
|
143
|
+
open: {
|
|
144
|
+
ready: number;
|
|
145
|
+
inProgress: number;
|
|
146
|
+
backlog: number;
|
|
147
|
+
waitingOnOwner: number;
|
|
148
|
+
};
|
|
149
|
+
/** Why the autopilot is stopped, if it is */
|
|
150
|
+
stopReason: AutopilotStopReason | null;
|
|
151
|
+
previous?: SelfReviewRecord | null;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The short self-review brief (WorkItem `briefMarkdown`): the goal, a few
|
|
155
|
+
* numbers, and the three answers to file. Kept short on purpose — it runs
|
|
156
|
+
* at the speed mode's cadence.
|
|
157
|
+
*
|
|
158
|
+
* @param input - Project, goal, counts, previous review
|
|
159
|
+
* @returns Markdown brief
|
|
160
|
+
*/
|
|
161
|
+
export declare function buildSelfReviewBrief(input: SelfReviewBriefInput): string;
|
|
99
162
|
/** One project's section of the digest. */
|
|
100
163
|
export interface DigestProject {
|
|
101
164
|
name: string;
|
|
@@ -104,15 +167,21 @@ export interface DigestProject {
|
|
|
104
167
|
waitingOnOwner: ProjectTicket[];
|
|
105
168
|
/** Ticket id → link to its decision card / Slack thread */
|
|
106
169
|
links?: ReadonlyMap<string, string>;
|
|
170
|
+
/** Why the autopilot stopped (absent = running) */
|
|
171
|
+
stopReason?: AutopilotStopReason | null;
|
|
172
|
+
/** The latest self-review (today's) */
|
|
173
|
+
selfReview?: SelfReviewRecord | null;
|
|
107
174
|
}
|
|
108
175
|
/**
|
|
109
176
|
* The evening digest: per project, done today / in progress / waiting on the
|
|
110
|
-
* owner. Projects with nothing to report are left out.
|
|
177
|
+
* owner. Projects with nothing to report are left out. An extra block (the
|
|
178
|
+
* team leads' share of tokens, crewly#1083) is appended when given.
|
|
111
179
|
*
|
|
112
180
|
* @param projects - Per-project sections
|
|
181
|
+
* @param extraBlock - Text appended after the projects, or null
|
|
113
182
|
* @returns Message text, or null when there is nothing to say
|
|
114
183
|
*/
|
|
115
|
-
export declare function buildDigestMessage(projects: DigestProject[]): string | null;
|
|
184
|
+
export declare function buildDigestMessage(projects: DigestProject[], extraBlock?: string | null): string | null;
|
|
116
185
|
/**
|
|
117
186
|
* The once-a-day notice that the autopilot paused on its budget.
|
|
118
187
|
*
|
package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-autopilot-messages.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"ticket-autopilot-messages.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-autopilot-messages.ts"],"names":[],"mappings":"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"}
|