crewly 1.20.297 → 1.20.299
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/roles/developer/prompt.md +1 -1
- package/config/skills/orchestrator/drive-logs/SKILL.md +42 -0
- package/config/skills/orchestrator/drive-logs/execute.sh +37 -0
- package/dist/backend/backend/src/constants.d.ts +30 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +30 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/drive-logs/drive-logs.controller.d.ts +31 -0
- package/dist/backend/backend/src/controllers/drive-logs/drive-logs.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/drive-logs/drive-logs.controller.js +58 -0
- package/dist/backend/backend/src/controllers/drive-logs/drive-logs.controller.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +13 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +3 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/briefing/briefing.service.d.ts +15 -0
- package/dist/backend/backend/src/services/briefing/briefing.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/briefing/briefing.service.js +6 -0
- package/dist/backend/backend/src/services/briefing/briefing.service.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-agent.service.d.ts +10 -1
- package/dist/backend/backend/src/services/drive/drive-agent.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-agent.service.js +25 -3
- package/dist/backend/backend/src/services/drive/drive-agent.service.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.d.ts +5 -1
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.js +8 -2
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing.contract.d.ts +32 -0
- package/dist/backend/backend/src/services/drive/drive-briefing.contract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing.wiring.d.ts +3 -0
- package/dist/backend/backend/src/services/drive/drive-briefing.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing.wiring.js +2 -1
- package/dist/backend/backend/src/services/drive/drive-briefing.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-cloud.contract.d.ts +1 -1
- package/dist/backend/backend/src/services/drive/drive-cloud.contract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-cloud.contract.js +1 -1
- package/dist/backend/backend/src/services/drive/drive-cloud.contract.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-log.store.d.ts +81 -0
- package/dist/backend/backend/src/services/drive/drive-log.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/drive/drive-log.store.js +140 -0
- package/dist/backend/backend/src/services/drive/drive-log.store.js.map +1 -0
- package/dist/backend/backend/src/services/drive/drive-org-overview.d.ts +45 -0
- package/dist/backend/backend/src/services/drive/drive-org-overview.d.ts.map +1 -0
- package/dist/backend/backend/src/services/drive/drive-org-overview.js +102 -0
- package/dist/backend/backend/src/services/drive/drive-org-overview.js.map +1 -0
- package/dist/backend/backend/src/services/worktree/worktree-dirty.d.ts +61 -0
- package/dist/backend/backend/src/services/worktree/worktree-dirty.d.ts.map +1 -0
- package/dist/backend/backend/src/services/worktree/worktree-dirty.js +121 -0
- package/dist/backend/backend/src/services/worktree/worktree-dirty.js.map +1 -0
- package/dist/backend/backend/src/services/worktree/worktree-janitor.git.d.ts +2 -0
- package/dist/backend/backend/src/services/worktree/worktree-janitor.git.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.git.js +6 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.git.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts +49 -5
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js +116 -15
- package/dist/backend/backend/src/services/worktree/worktree-janitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/worktree/worktree-landed.d.ts +76 -0
- package/dist/backend/backend/src/services/worktree/worktree-landed.d.ts.map +1 -0
- package/dist/backend/backend/src/services/worktree/worktree-landed.js +132 -0
- package/dist/backend/backend/src/services/worktree/worktree-landed.js.map +1 -0
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +30 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +30 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive mode session logs on this machine (specs/2026-10-09-drive-mode-v3.md §10),
|
|
3
|
+
* mounted at `/api/drive-logs`:
|
|
4
|
+
*
|
|
5
|
+
* - `GET /` — recent logs, newest first (`?limit=`)
|
|
6
|
+
* - `GET /:id` — one log as markdown (`?format=jsonl` for the events); `id` is `<date>-<sessionId>` or the session id
|
|
7
|
+
*
|
|
8
|
+
* @module controllers/drive-logs/drive-logs.controller
|
|
9
|
+
*/
|
|
10
|
+
import { Router, type Request, type Response } from 'express';
|
|
11
|
+
/**
|
|
12
|
+
* GET /api/drive-logs
|
|
13
|
+
*
|
|
14
|
+
* @param req - Query `limit`
|
|
15
|
+
* @param res - 200 `{ success, data: DriveLogEntry[] }`
|
|
16
|
+
*/
|
|
17
|
+
export declare function listDriveLogs(req: Request, res: Response): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* GET /api/drive-logs/:id
|
|
20
|
+
*
|
|
21
|
+
* @param req - Param `id`, query `format` (`md` | `jsonl`)
|
|
22
|
+
* @param res - 200 `{ success, data: text }`; 404 when there is no such log
|
|
23
|
+
*/
|
|
24
|
+
export declare function readDriveLog(req: Request, res: Response): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Create the Drive logs router.
|
|
27
|
+
*
|
|
28
|
+
* @returns Router for `/api/drive-logs`
|
|
29
|
+
*/
|
|
30
|
+
export declare function createDriveLogsRouter(): Router;
|
|
31
|
+
//# sourceMappingURL=drive-logs.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-logs.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/drive-logs/drive-logs.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG9D;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive mode session logs on this machine (specs/2026-10-09-drive-mode-v3.md §10),
|
|
3
|
+
* mounted at `/api/drive-logs`:
|
|
4
|
+
*
|
|
5
|
+
* - `GET /` — recent logs, newest first (`?limit=`)
|
|
6
|
+
* - `GET /:id` — one log as markdown (`?format=jsonl` for the events); `id` is `<date>-<sessionId>` or the session id
|
|
7
|
+
*
|
|
8
|
+
* @module controllers/drive-logs/drive-logs.controller
|
|
9
|
+
*/
|
|
10
|
+
import { Router } from 'express';
|
|
11
|
+
import { getDriveLogStore } from '../../services/drive/drive-log.store.js';
|
|
12
|
+
/**
|
|
13
|
+
* GET /api/drive-logs
|
|
14
|
+
*
|
|
15
|
+
* @param req - Query `limit`
|
|
16
|
+
* @param res - 200 `{ success, data: DriveLogEntry[] }`
|
|
17
|
+
*/
|
|
18
|
+
export async function listDriveLogs(req, res) {
|
|
19
|
+
try {
|
|
20
|
+
const limit = Number(req.query.limit);
|
|
21
|
+
res.json({ success: true, data: await getDriveLogStore().list(Number.isFinite(limit) && limit > 0 ? limit : undefined) });
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
res.status(500).json({ success: false, error: err instanceof Error ? err.message : String(err) });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* GET /api/drive-logs/:id
|
|
29
|
+
*
|
|
30
|
+
* @param req - Param `id`, query `format` (`md` | `jsonl`)
|
|
31
|
+
* @param res - 200 `{ success, data: text }`; 404 when there is no such log
|
|
32
|
+
*/
|
|
33
|
+
export async function readDriveLog(req, res) {
|
|
34
|
+
try {
|
|
35
|
+
const format = req.query.format === 'jsonl' ? 'jsonl' : 'md';
|
|
36
|
+
const text = await getDriveLogStore().read(String(req.params.id ?? ''), format);
|
|
37
|
+
if (text === null) {
|
|
38
|
+
res.status(404).json({ success: false, error: 'No such Drive log. List them with GET /api/drive-logs.' });
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
res.json({ success: true, data: text });
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
res.status(500).json({ success: false, error: err instanceof Error ? err.message : String(err) });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create the Drive logs router.
|
|
49
|
+
*
|
|
50
|
+
* @returns Router for `/api/drive-logs`
|
|
51
|
+
*/
|
|
52
|
+
export function createDriveLogsRouter() {
|
|
53
|
+
const router = Router();
|
|
54
|
+
router.get('/', listDriveLogs);
|
|
55
|
+
router.get('/:id', readDriveLog);
|
|
56
|
+
return router;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=drive-logs.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-logs.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/drive-logs/drive-logs.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAA+B,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,GAAa;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC5H,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,GAAa;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,gBAAgB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAChF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,wDAAwD,EAAE,CAAC,CAAC;YAC1G,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":";AA4CA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAiUjD,qBAAa,YAAY;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,EAAE,CAAiB;IAC3B,iFAAiF;IACjF,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAqE;IACnF,gFAAgF;IAChF,OAAO,CAAC,iBAAiB,CAAC,CAAyD;IAEnF,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,4BAA4B,CAAgC;IACpE,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,eAAe,CAAmB;IAC1C,qEAAqE;IACrE,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,sBAAsB,CAAuC;IACrE,OAAO,CAAC,sBAAsB,CAAiD;IAC/E,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,0BAA0B,CAA2C;IAC7E,kGAAkG;IAClG,OAAO,CAAC,sBAAsB,CAAuC;IAGrE,OAAO,CAAC,+BAA+B,CAAgD;IACvF,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB,CAAqC;IACjE,8HAA8H;IAC9H,OAAO,CAAC,0BAA0B,CAA2C;IAC7E,OAAO,CAAC,6BAA6B,CAA8C;IACnF,OAAO,CAAC,wBAAwB,CAAyC;IACzE,OAAO,CAAC,2BAA2B,CAA+B;IAClE,OAAO,CAAC,0BAA0B,CAA8B;IAChE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAA0C;IACpE,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB,CAAmG;IAK5H,OAAO,CAAC,aAAa,CAAuE;IAC5F,OAAO,CAAC,gBAAgB,CAET;IAGf,OAAO,CAAC,cAAc,CAAS;IAC/B,oEAAoE;IACpE,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,qBAAqB,CAA2G;IACxI,0EAA0E;IAC1E,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,gBAAgB,CAAiG;IACzH,oFAAoF;IACpF,OAAO,CAAC,oBAAoB,CAAK;IACjC,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB,CAA8B;IAC5D,yGAAyG;IACzG,OAAO,CAAC,sBAAsB,CAAuB;IACrD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAMhC;IACH,oGAAoG;IACpG,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,wBAAwB,CAA+B;gBAEnD,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAsE3C,OAAO,CAAC,kBAAkB;IAovC1B,OAAO,CAAC,mBAAmB;IAuE3B,OAAO,CAAC,eAAe;IA4MvB,OAAO,CAAC,kBAAkB;IA0BpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2552,6 +2552,11 @@ export class CrewlyServer {
|
|
|
2552
2552
|
const found = await ProjectTicketService.getInstance().get(ticket.projectPath, ticket.id);
|
|
2553
2553
|
return found?.status === 'done' || found?.status === 'cancelled';
|
|
2554
2554
|
},
|
|
2555
|
+
// The owner's voice decision goes into the ticket's record at once.
|
|
2556
|
+
noteDecision: async ({ ticket, agentName, summary, answer }) => {
|
|
2557
|
+
const { ProjectTicketService } = await import('./services/project-tickets/project-ticket.service.js');
|
|
2558
|
+
await ProjectTicketService.getInstance().appendLog(ticket.projectPath, ticket.id, 'owner (Drive)', `Owner decided in Drive: "${answer}" (${agentName}: ${summary.slice(0, 160)}). Proceed on this.`);
|
|
2559
|
+
},
|
|
2555
2560
|
store: new BriefingStateStore(),
|
|
2556
2561
|
}));
|
|
2557
2562
|
}
|
|
@@ -2801,6 +2806,8 @@ export class CrewlyServer {
|
|
|
2801
2806
|
ownerFeed: (sinceMs, limit) => chatService.getOwnerFeed({ sinceMs, limit }),
|
|
2802
2807
|
orchestratorRunning: () => getSessionBackendSync()?.sessionExists(ORCHESTRATOR_SESSION_NAME) ?? false,
|
|
2803
2808
|
orchestratorName: CLOUD_TALK_CONSTANTS.ORCHESTRATOR_DISPLAY_NAME,
|
|
2809
|
+
// Charters and chore-free work lists for the high-level overview.
|
|
2810
|
+
roster: async () => (await import('./services/team-roster/team-roster.service.js')).TeamRosterService.getInstance().getRoster(),
|
|
2804
2811
|
})),
|
|
2805
2812
|
cloud: {
|
|
2806
2813
|
getToken: () => cloudClient.getToken(),
|
|
@@ -3988,6 +3995,12 @@ export class CrewlyServer {
|
|
|
3988
3995
|
const r = await this.apiController.agentRegistrationService.sendMessageToAgent(session, message);
|
|
3989
3996
|
return r.success;
|
|
3990
3997
|
});
|
|
3998
|
+
// Finished work cleans up after itself: a WorkItem / ticket reaching
|
|
3999
|
+
// done or verified schedules one debounced janitor pass (safe rules
|
|
4000
|
+
// unchanged — only landed, clean, unattended worktrees go).
|
|
4001
|
+
this.eventBusService.onInProcess(['task:done', 'task:verified'], () => {
|
|
4002
|
+
WorktreeJanitorService.getInstance().requestTidy();
|
|
4003
|
+
});
|
|
3991
4004
|
if (WorktreeJanitorService.getInstance().start()) {
|
|
3992
4005
|
this.logger.info('WorktreeJanitorService scheduled');
|
|
3993
4006
|
}
|