@cat-factory/worker 0.52.3 → 0.52.5
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/dist/infrastructure/repositories/D1AgentRunRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1AgentRunRepository.js +2 -2
- package/dist/infrastructure/repositories/D1AgentRunRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1BlockRepository.d.ts +5 -0
- package/dist/infrastructure/repositories/D1BlockRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1BlockRepository.js +21 -0
- package/dist/infrastructure/repositories/D1BlockRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.d.ts +1 -0
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.js +17 -0
- package/dist/infrastructure/repositories/D1GitHubInstallationRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1NotificationRepository.d.ts +1 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1NotificationRepository.js +13 -0
- package/dist/infrastructure/repositories/D1NotificationRepository.js.map +1 -1
- package/dist/infrastructure/repositories/D1PipelineRepository.d.ts.map +1 -1
- package/dist/infrastructure/repositories/D1PipelineRepository.js +4 -4
- package/dist/infrastructure/repositories/D1PipelineRepository.js.map +1 -1
- package/dist/infrastructure/workflows/BootstrapWorkflow.d.ts.map +1 -1
- package/dist/infrastructure/workflows/BootstrapWorkflow.js +3 -1
- package/dist/infrastructure/workflows/BootstrapWorkflow.js.map +1 -1
- package/dist/infrastructure/workflows/EnvConfigRepairWorkflow.d.ts.map +1 -1
- package/dist/infrastructure/workflows/EnvConfigRepairWorkflow.js +3 -1
- package/dist/infrastructure/workflows/EnvConfigRepairWorkflow.js.map +1 -1
- package/dist/infrastructure/workflows/ExecutionWorkflow.d.ts.map +1 -1
- package/dist/infrastructure/workflows/ExecutionWorkflow.js +10 -5
- package/dist/infrastructure/workflows/ExecutionWorkflow.js.map +1 -1
- package/migrations/0032_pipeline_companion_toggles.sql +14 -0
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1AgentRunRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1AgentRunRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"D1AgentRunRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1AgentRunRepository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D;;;;;;GAMG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgBzE;IAEK,SAAS,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAmBlE;IAEK,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBjD;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { agentRunKindSchema } from '@cat-factory/contracts';
|
|
2
2
|
import { decodeEnum } from '@cat-factory/server';
|
|
3
|
+
import { chunkForIn } from './chunk';
|
|
3
4
|
/**
|
|
4
5
|
* Kind-spanning reads over the unified `agent_runs` table (migration 0019). Writes
|
|
5
6
|
* stay with the per-flow repositories (D1ExecutionRepository / D1BootstrapJobRepository),
|
|
@@ -52,8 +53,7 @@ export class D1AgentRunRepository {
|
|
|
52
53
|
return [];
|
|
53
54
|
const live = [];
|
|
54
55
|
// Chunk the IN list so a large set never blows the SQL variable limit (batch, not N+1).
|
|
55
|
-
for (
|
|
56
|
-
const chunk = ids.slice(i, i + 100);
|
|
56
|
+
for (const chunk of chunkForIn(ids)) {
|
|
57
57
|
const placeholders = chunk.map(() => '?').join(', ');
|
|
58
58
|
const { results } = await this.db
|
|
59
59
|
.prepare(`SELECT id FROM agent_runs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1AgentRunRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1AgentRunRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"D1AgentRunRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1AgentRunRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IACd,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,EAAU;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,+DAA+D,CAAC;aACxE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,KAAK,EAAoB,CAAA;QAC5B,OAAO,GAAG;YACR,CAAC,CAAC;gBACE,WAAW;gBACX,EAAE;gBACF,IAAI,EAAE,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE;oBAC7C,KAAK,EAAE,YAAY;oBACnB,MAAM,EAAE,MAAM;oBACd,EAAE;iBACH,CAAC;aACH;YACH,CAAC,CAAC,IAAI,CAAA;IACV,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,gBAAwB;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN;;6BAEqB,CACtB;aACA,IAAI,CAAC,gBAAgB,CAAC;aACtB,GAAG,EAA0E,CAAA;QAChF,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,IAAI,EAAE,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE;gBAC3C,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,MAAM;gBACd,EAAE,EAAE,CAAC,CAAC,EAAE;aACT,CAAC;SACH,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAC/B,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,wFAAwF;QACxF,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;iBAC9B,OAAO,CACN;oFAC0E,YAAY,GAAG,CAC1F;iBACA,IAAI,CAAC,GAAG,KAAK,CAAC;iBACd,GAAG,EAAkB,CAAA;YACxB,KAAK,MAAM,CAAC,IAAI,OAAO,IAAI,EAAE;gBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -15,6 +15,11 @@ export declare class D1BlockRepository implements BlockRepository {
|
|
|
15
15
|
serviceId: string | null;
|
|
16
16
|
block: Block;
|
|
17
17
|
} | null>;
|
|
18
|
+
findByIds(blockIds: string[]): Promise<Array<{
|
|
19
|
+
workspaceId: string;
|
|
20
|
+
serviceId: string | null;
|
|
21
|
+
block: Block;
|
|
22
|
+
}>>;
|
|
18
23
|
insert(workspaceId: string, block: Block, serviceId?: string | null): Promise<void>;
|
|
19
24
|
update(workspaceId: string, id: string, patch: BlockPatch): Promise<void>;
|
|
20
25
|
setService(workspaceId: string, ids: string[], serviceId: string | null): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1BlockRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAM3D,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAO3D;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAMvD;IAEK,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAa3D;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAMhE;IAEK,QAAQ,CACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC,CAWjF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAYxF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5F;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;CACF"}
|
|
1
|
+
{"version":3,"file":"D1BlockRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAM3D,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAO3D;IAEK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAMvD;IAEK,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAa3D;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAMhE;IAEK,QAAQ,CACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC,CAWjF;IAEK,SAAS,CACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC,CAmBjF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAYxF;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9E;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAS5F;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;CACF"}
|
|
@@ -57,6 +57,27 @@ export class D1BlockRepository {
|
|
|
57
57
|
block: rowToBlock(row),
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
+
async findByIds(blockIds) {
|
|
61
|
+
if (blockIds.length === 0)
|
|
62
|
+
return [];
|
|
63
|
+
const out = [];
|
|
64
|
+
// Chunk the IN list to stay under D1's bound-parameter limit.
|
|
65
|
+
for (const chunk of chunkForIn(blockIds)) {
|
|
66
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
67
|
+
const { results } = await this.db
|
|
68
|
+
.prepare(`SELECT * FROM blocks WHERE id IN (${placeholders})`)
|
|
69
|
+
.bind(...chunk)
|
|
70
|
+
.all();
|
|
71
|
+
for (const row of results ?? []) {
|
|
72
|
+
out.push({
|
|
73
|
+
workspaceId: row.workspace_id,
|
|
74
|
+
serviceId: row.service_id ?? null,
|
|
75
|
+
block: rowToBlock(row),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
60
81
|
async insert(workspaceId, block, serviceId) {
|
|
61
82
|
const values = {
|
|
62
83
|
workspace_id: workspaceId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1BlockRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D1BlockRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1BlockRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class D1GitHubInstallationRepository implements GitHubInstallatio
|
|
|
7
7
|
db: D1Database;
|
|
8
8
|
});
|
|
9
9
|
getByInstallationId(installationId: number): Promise<GitHubInstallation | null>;
|
|
10
|
+
listByInstallationIds(installationIds: number[]): Promise<GitHubInstallation[]>;
|
|
10
11
|
getByWorkspace(workspaceId: string): Promise<GitHubInstallation | null>;
|
|
11
12
|
listWorkspacesForInstallation(installationId: number): Promise<string[]>;
|
|
12
13
|
listActive(): Promise<GitHubInstallation[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1GitHubInstallationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1GitHubInstallationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"D1GitHubInstallationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1GitHubInstallationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAS3D,wFAAwF;AACxF,qBAAa,8BAA+B,YAAW,4BAA4B;IACjF,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAMpF;IAEK,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAcpF;IAEK,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAoB5E;IAEK,6BAA6B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkB7E;IAEK,UAAU,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAKhD;IAEK,MAAM,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ5D;IAEK,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/F;IAEK,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlE;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { chunkForIn } from './chunk';
|
|
1
2
|
import { buildUpsert, installationValues, rowToInstallation, } from './github-mappers';
|
|
2
3
|
/** D1-backed store of workspace → GitHub App installation bindings (migration 0004). */
|
|
3
4
|
export class D1GitHubInstallationRepository {
|
|
@@ -12,6 +13,22 @@ export class D1GitHubInstallationRepository {
|
|
|
12
13
|
.first();
|
|
13
14
|
return row ? rowToInstallation(row) : null;
|
|
14
15
|
}
|
|
16
|
+
async listByInstallationIds(installationIds) {
|
|
17
|
+
if (installationIds.length === 0)
|
|
18
|
+
return [];
|
|
19
|
+
const out = [];
|
|
20
|
+
// Chunk the IN list to stay under D1's bound-parameter limit. Tombstoned rows are
|
|
21
|
+
// included, exactly like the point read (`getByInstallationId`).
|
|
22
|
+
for (const chunk of chunkForIn(installationIds)) {
|
|
23
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
24
|
+
const { results } = await this.db
|
|
25
|
+
.prepare(`SELECT * FROM github_installations WHERE installation_id IN (${placeholders})`)
|
|
26
|
+
.bind(...chunk)
|
|
27
|
+
.all();
|
|
28
|
+
out.push(...(results ?? []).map(rowToInstallation));
|
|
29
|
+
}
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
15
32
|
async getByWorkspace(workspaceId) {
|
|
16
33
|
// The installation backing a workspace is either its own direct binding
|
|
17
34
|
// (the connector, or the auth-disabled path where account_id is null) OR one
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1GitHubInstallationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1GitHubInstallationRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AAEzB,wFAAwF;AACxF,MAAM,OAAO,8BAA8B;IACxB,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,cAAsB;QAC9C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,8DAA8D,CAAC;aACvE,IAAI,CAAC,cAAc,CAAC;aACpB,KAAK,EAAyB,CAAA;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,wEAAwE;QACxE,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,uCAAuC;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CACN;;;;;;;iBAOS,CACV;aACA,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,EAAyB,CAAA;QACjC,OAAO,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,cAAsB;QACxD,+EAA+E;QAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CACN;;;;;;;;;YASI,CACL;aACA,IAAI,CAAC,cAAc,CAAC;aACpB,GAAG,EAAkB,CAAA;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CAAC,6DAA6D,CAAC;aACtE,GAAG,EAAyB,CAAA;QAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,YAAgC;QAC3C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE;YAC3F,iBAAiB;SAClB,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,GAAG,KAAK,CAAC;aACd,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,cAAsB,EAAE,KAAa,EAAE,SAAiB;QAC9E,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,kGAAkG,CACnG;aACA,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC;aACtC,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,cAAsB,EAAE,EAAU;QACjD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,0EAA0E,CAAC;aACnF,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC;aACxB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"D1GitHubInstallationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1GitHubInstallationRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export declare class D1NotificationRepository implements NotificationRepository
|
|
|
16
16
|
listOpen(workspaceId: string): Promise<Notification[]>;
|
|
17
17
|
findOpenByBlock(workspaceId: string, blockId: string, type: NotificationType): Promise<Notification | null>;
|
|
18
18
|
upsert(workspaceId: string, notification: Notification): Promise<void>;
|
|
19
|
+
escalateStaleOpen(workspaceId: string, cutoff: number): Promise<Notification[]>;
|
|
19
20
|
upsertOpenForBlock(workspaceId: string, notification: Notification): Promise<Notification>;
|
|
20
21
|
}
|
|
21
22
|
//# sourceMappingURL=D1NotificationRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1NotificationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAOjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA4C3D;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMvE;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAU3D;IAEK,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAU9B;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC3E;IAEK,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuC/F;CACF"}
|
|
1
|
+
{"version":3,"file":"D1NotificationRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAOjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AA4C3D;;;;;GAKG;AACH,qBAAa,wBAAyB,YAAW,sBAAsB;IACrE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAMvE;IAEK,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAU3D;IAEK,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAU9B;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC3E;IAEK,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcpF;IAEK,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAuC/F;CACF"}
|
|
@@ -83,6 +83,19 @@ export class D1NotificationRepository {
|
|
|
83
83
|
.bind(workspaceId, notification.id, notification.type, notification.status, notification.severity ?? 'normal', notification.blockId, notification.executionId, notification.title, notification.body, notification.payload ? JSON.stringify(notification.payload) : null, notification.createdAt, notification.resolvedAt)
|
|
84
84
|
.run();
|
|
85
85
|
}
|
|
86
|
+
async escalateStaleOpen(workspaceId, cutoff) {
|
|
87
|
+
// One statement flips every overdue open card and returns the rows for re-delivery —
|
|
88
|
+
// the sweep never loops per-row upserts.
|
|
89
|
+
const { results } = await this.db
|
|
90
|
+
.prepare(`UPDATE notifications SET severity = 'urgent'
|
|
91
|
+
WHERE workspace_id = ? AND status = 'open'
|
|
92
|
+
AND (severity = 'normal' OR severity IS NULL)
|
|
93
|
+
AND created_at <= ?
|
|
94
|
+
RETURNING *`)
|
|
95
|
+
.bind(workspaceId, cutoff)
|
|
96
|
+
.all();
|
|
97
|
+
return (results ?? []).map(rowToNotification);
|
|
98
|
+
}
|
|
86
99
|
async upsertOpenForBlock(workspaceId, notification) {
|
|
87
100
|
// Atomic dedup: the conflict arbiter is the partial unique index on
|
|
88
101
|
// (workspace_id, block_id, type) WHERE status='open' (migration 0023). A second
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1NotificationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"D1NotificationRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1NotificationRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1PipelineRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PipelineRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAU9D;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAMnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"D1PipelineRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PipelineRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,UAAU,CAAA;KAAE,EAErC;IAEK,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAU9D;IAEK,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAMnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBnE;IAEK,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3D;CACF"}
|
|
@@ -24,8 +24,8 @@ export class D1PipelineRepository {
|
|
|
24
24
|
}
|
|
25
25
|
async insert(workspaceId, pipeline) {
|
|
26
26
|
await this.db
|
|
27
|
-
.prepare('INSERT INTO pipelines (workspace_id, id, name, agent_kinds, gates, thresholds, enabled, consensus, gating, labels, archived, builtin, version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')
|
|
28
|
-
.bind(workspaceId, pipeline.id, pipeline.name, JSON.stringify(pipeline.agentKinds), pipeline.gates ? JSON.stringify(pipeline.gates) : null, pipeline.thresholds ? JSON.stringify(pipeline.thresholds) : null, pipeline.enabled ? JSON.stringify(pipeline.enabled) : null, pipeline.consensus ? JSON.stringify(pipeline.consensus) : null, pipeline.gating ? JSON.stringify(pipeline.gating) : null, pipeline.labels ? JSON.stringify(pipeline.labels) : null, pipeline.archived ? 1 : null, pipeline.builtin ? 1 : null, pipeline.version ?? null)
|
|
27
|
+
.prepare('INSERT INTO pipelines (workspace_id, id, name, agent_kinds, gates, thresholds, enabled, consensus, gating, follow_ups, tester_quality, labels, archived, builtin, version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)')
|
|
28
|
+
.bind(workspaceId, pipeline.id, pipeline.name, JSON.stringify(pipeline.agentKinds), pipeline.gates ? JSON.stringify(pipeline.gates) : null, pipeline.thresholds ? JSON.stringify(pipeline.thresholds) : null, pipeline.enabled ? JSON.stringify(pipeline.enabled) : null, pipeline.consensus ? JSON.stringify(pipeline.consensus) : null, pipeline.gating ? JSON.stringify(pipeline.gating) : null, pipeline.followUps ? JSON.stringify(pipeline.followUps) : null, pipeline.testerQuality ? JSON.stringify(pipeline.testerQuality) : null, pipeline.labels ? JSON.stringify(pipeline.labels) : null, pipeline.archived ? 1 : null, pipeline.builtin ? 1 : null, pipeline.version ?? null)
|
|
29
29
|
.run();
|
|
30
30
|
}
|
|
31
31
|
async update(workspaceId, pipeline) {
|
|
@@ -33,8 +33,8 @@ export class D1PipelineRepository {
|
|
|
33
33
|
// its place in the catalog order. `builtin` is immutable, so it is not rewritten.
|
|
34
34
|
// `version` IS rewritten so a reseed bumps the stored copy to the current catalog version.
|
|
35
35
|
await this.db
|
|
36
|
-
.prepare('UPDATE pipelines SET name = ?, agent_kinds = ?, gates = ?, thresholds = ?, enabled = ?, consensus = ?, gating = ?, labels = ?, archived = ?, version = ? WHERE workspace_id = ? AND id = ?')
|
|
37
|
-
.bind(pipeline.name, JSON.stringify(pipeline.agentKinds), pipeline.gates ? JSON.stringify(pipeline.gates) : null, pipeline.thresholds ? JSON.stringify(pipeline.thresholds) : null, pipeline.enabled ? JSON.stringify(pipeline.enabled) : null, pipeline.consensus ? JSON.stringify(pipeline.consensus) : null, pipeline.gating ? JSON.stringify(pipeline.gating) : null, pipeline.labels ? JSON.stringify(pipeline.labels) : null, pipeline.archived ? 1 : null, pipeline.version ?? null, workspaceId, pipeline.id)
|
|
36
|
+
.prepare('UPDATE pipelines SET name = ?, agent_kinds = ?, gates = ?, thresholds = ?, enabled = ?, consensus = ?, gating = ?, follow_ups = ?, tester_quality = ?, labels = ?, archived = ?, version = ? WHERE workspace_id = ? AND id = ?')
|
|
37
|
+
.bind(pipeline.name, JSON.stringify(pipeline.agentKinds), pipeline.gates ? JSON.stringify(pipeline.gates) : null, pipeline.thresholds ? JSON.stringify(pipeline.thresholds) : null, pipeline.enabled ? JSON.stringify(pipeline.enabled) : null, pipeline.consensus ? JSON.stringify(pipeline.consensus) : null, pipeline.gating ? JSON.stringify(pipeline.gating) : null, pipeline.followUps ? JSON.stringify(pipeline.followUps) : null, pipeline.testerQuality ? JSON.stringify(pipeline.testerQuality) : null, pipeline.labels ? JSON.stringify(pipeline.labels) : null, pipeline.archived ? 1 : null, pipeline.version ?? null, workspaceId, pipeline.id)
|
|
38
38
|
.run();
|
|
39
39
|
}
|
|
40
40
|
async delete(workspaceId, id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"D1PipelineRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PipelineRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAA;AAE3D,MAAM,OAAO,oBAAoB;IACd,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,iFAAiF;QACjF,qEAAqE;QACrE,gFAAgF;QAChF,2EAA2E;QAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CAAC,+DAA+D,CAAC;aACxE,IAAI,CAAC,WAAW,CAAC;aACjB,GAAG,EAAe,CAAA;QACrB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,EAAU;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,2DAA2D,CAAC;aACpE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,KAAK,EAAe,CAAA;QACvB,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,QAAkB;QAClD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN
|
|
1
|
+
{"version":3,"file":"D1PipelineRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/repositories/D1PipelineRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,aAAa,EAAE,MAAM,WAAW,CAAA;AAE3D,MAAM,OAAO,oBAAoB;IACd,EAAE,CAAY;IAE/B,YAAY,EAAE,EAAE,EAAsB;QACpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,iFAAiF;QACjF,qEAAqE;QACrE,gFAAgF;QAChF,2EAA2E;QAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE;aAC9B,OAAO,CAAC,+DAA+D,CAAC;aACxE,IAAI,CAAC,WAAW,CAAC;aACjB,GAAG,EAAe,CAAA;QACrB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,EAAU;QACvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE;aACtB,OAAO,CAAC,2DAA2D,CAAC;aACpE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,KAAK,EAAe,CAAA;QACvB,OAAO,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,QAAkB;QAClD,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,iOAAiO,CAClO;aACA,IAAI,CACH,WAAW,EACX,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,IAAI,EACb,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAChE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAC9D,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAC9D,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EACtE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5B,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3B,QAAQ,CAAC,OAAO,IAAI,IAAI,CACzB;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,QAAkB;QAClD,oFAAoF;QACpF,kFAAkF;QAClF,2FAA2F;QAC3F,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CACN,gOAAgO,CACjO;aACA,IAAI,CACH,QAAQ,CAAC,IAAI,EACb,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACnC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EACtD,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAChE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAC9D,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAC9D,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EACtE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EACxD,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5B,QAAQ,CAAC,OAAO,IAAI,IAAI,EACxB,WAAW,EACX,QAAQ,CAAC,EAAE,CACZ;aACA,GAAG,EAAE,CAAA;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,EAAU;QAC1C,MAAM,IAAI,CAAC,EAAE;aACV,OAAO,CAAC,yDAAyD,CAAC;aAClE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;aACrB,GAAG,EAAE,CAAA;IACV,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapWorkflow.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/workflows/BootstrapWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAKjC,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtE,GAAG,CAChB,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAC7C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"BootstrapWorkflow.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/workflows/BootstrapWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAKjC,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtE,GAAG,CAChB,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAC7C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAsDf;CACF"}
|
|
@@ -20,6 +20,9 @@ const STEP_CONFIG = {
|
|
|
20
20
|
export class BootstrapWorkflow extends WorkflowEntrypoint {
|
|
21
21
|
async run(event, step) {
|
|
22
22
|
const { workspaceId, jobId } = event.payload;
|
|
23
|
+
// One DI-graph assembly per wake (pure wiring over env bindings, no I/O) shared by
|
|
24
|
+
// every poll in this invocation; a hibernation wake replays `run()` and rebuilds.
|
|
25
|
+
const container = buildContainer(this.env);
|
|
23
26
|
const execConfig = loadConfig(this.env).execution;
|
|
24
27
|
const pollInterval = execConfig.jobPollInterval;
|
|
25
28
|
const log = logger.child({ workspaceId, jobId, workflow: 'bootstrap' });
|
|
@@ -36,7 +39,6 @@ export class BootstrapWorkflow extends WorkflowEntrypoint {
|
|
|
36
39
|
let result;
|
|
37
40
|
try {
|
|
38
41
|
result = (await step.do(`poll-${p}`, STEP_CONFIG, async () => {
|
|
39
|
-
const container = buildContainer(this.env);
|
|
40
42
|
if (!container.bootstrap) {
|
|
41
43
|
throw new Error('Bootstrap module is not configured');
|
|
42
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapWorkflow.js","sourceRoot":"","sources":["../../../src/infrastructure/workflows/BootstrapWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhD,oFAAoF;AACpF,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE;IACjE,OAAO,EAAE,WAAW;CACQ,CAAA;AAE9B;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAgD;IAC5E,KAAK,CAAC,GAAG,CAChB,KAA6C,EAC7C,IAAkB;QAElB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;QAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,eAAwC,CAAA;QACxE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAA;QAEvE,6EAA6E;QAC7E,+EAA+E;QAC/E,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,+EAA+E;QAC/E,cAAc;QACd,IAAI,gBAAgB,GAAG,CAAC,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;YAChD,IAAI,MAA2B,CAAA;YAC/B,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;oBAC3D,
|
|
1
|
+
{"version":3,"file":"BootstrapWorkflow.js","sourceRoot":"","sources":["../../../src/infrastructure/workflows/BootstrapWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvConfigRepairWorkflow.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/workflows/EnvConfigRepairWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAKjC,0FAA0F;AAC1F,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,kBAAkB,CAC7D,GAAG,EACH,6BAA6B,CAC9B;IACgB,GAAG,CAChB,KAAK,EAAE,aAAa,CAAC,6BAA6B,CAAC,EACnD,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"EnvConfigRepairWorkflow.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/workflows/EnvConfigRepairWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAKjC,0FAA0F;AAC1F,MAAM,WAAW,6BAA6B;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,kBAAkB,CAC7D,GAAG,EACH,6BAA6B,CAC9B;IACgB,GAAG,CAChB,KAAK,EAAE,aAAa,CAAC,6BAA6B,CAAC,EACnD,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAgDf;CACF"}
|
|
@@ -19,6 +19,9 @@ const STEP_CONFIG = {
|
|
|
19
19
|
export class EnvConfigRepairWorkflow extends WorkflowEntrypoint {
|
|
20
20
|
async run(event, step) {
|
|
21
21
|
const { workspaceId, jobId } = event.payload;
|
|
22
|
+
// One DI-graph assembly per wake (pure wiring over env bindings, no I/O) shared by
|
|
23
|
+
// every poll in this invocation; a hibernation wake replays `run()` and rebuilds.
|
|
24
|
+
const container = buildContainer(this.env);
|
|
22
25
|
const execConfig = loadConfig(this.env).execution;
|
|
23
26
|
const pollInterval = execConfig.jobPollInterval;
|
|
24
27
|
const log = logger.child({ workspaceId, jobId, workflow: 'env-config-repair' });
|
|
@@ -32,7 +35,6 @@ export class EnvConfigRepairWorkflow extends WorkflowEntrypoint {
|
|
|
32
35
|
let result;
|
|
33
36
|
try {
|
|
34
37
|
result = (await step.do(`poll-${p}`, STEP_CONFIG, async () => {
|
|
35
|
-
const container = buildContainer(this.env);
|
|
36
38
|
if (!container.envConfigRepair) {
|
|
37
39
|
throw new Error('Env config repair module is not configured');
|
|
38
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvConfigRepairWorkflow.js","sourceRoot":"","sources":["../../../src/infrastructure/workflows/EnvConfigRepairWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhD,oFAAoF;AACpF,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE;IACjE,OAAO,EAAE,WAAW;CACQ,CAAA;AAE9B;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAwB,SAAQ,kBAG5C;IACU,KAAK,CAAC,GAAG,CAChB,KAAmD,EACnD,IAAkB;QAElB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;QAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,eAAwC,CAAA;QACxE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAA;QAE/E,sFAAsF;QACtF,mFAAmF;QACnF,uFAAuF;QACvF,2DAA2D;QAC3D,IAAI,gBAAgB,GAAG,CAAC,CAAA;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;YAChD,IAAI,MAAiC,CAAA;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;oBAC3D,
|
|
1
|
+
{"version":3,"file":"EnvConfigRepairWorkflow.js","sourceRoot":"","sources":["../../../src/infrastructure/workflows/EnvConfigRepairWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionWorkflow.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/workflows/ExecutionWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAIjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAQpE;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtE,GAAG,CAChB,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAC7C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"ExecutionWorkflow.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/workflows/ExecutionWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAIjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAQpE;;;;;;;GAOG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,CAAC;IACtE,GAAG,CAChB,KAAK,EAAE,aAAa,CAAC,uBAAuB,CAAC,EAC7C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,IAAI,CAAC,CAyLf;CACF"}
|
|
@@ -18,18 +18,23 @@ const STEP_CONFIG = {
|
|
|
18
18
|
export class ExecutionWorkflow extends WorkflowEntrypoint {
|
|
19
19
|
async run(event, step) {
|
|
20
20
|
const { workspaceId, executionId } = event.payload;
|
|
21
|
+
// One DI-graph assembly per wake: the container is pure wiring over env bindings
|
|
22
|
+
// (no I/O), so every step/poll in this invocation shares it instead of re-running
|
|
23
|
+
// the whole composition root per `step.do`. A hibernation wake replays `run()`
|
|
24
|
+
// from the top, so each wake still gets a fresh build.
|
|
25
|
+
const container = buildContainer(this.env);
|
|
21
26
|
const execConfig = loadConfig(this.env).execution;
|
|
22
27
|
const decisionTimeout = execConfig.decisionTimeout;
|
|
23
28
|
const jobPollInterval = execConfig.jobPollInterval;
|
|
24
29
|
const ciPollInterval = execConfig.ciPollInterval;
|
|
25
30
|
const failRun = async (i, message, kind = 'agent', detail = null) => {
|
|
26
31
|
logger.warn({ workspaceId, executionId, step: i }, `failing run: ${message}`);
|
|
27
|
-
await step.do(`fail-${i}`, () =>
|
|
32
|
+
await step.do(`fail-${i}`, () => container.executionService.failRun(workspaceId, executionId, message, kind, detail));
|
|
28
33
|
};
|
|
29
34
|
for (let i = 0;; i++) {
|
|
30
35
|
let result;
|
|
31
36
|
try {
|
|
32
|
-
result = (await step.do(`advance-${i}`, STEP_CONFIG, () =>
|
|
37
|
+
result = (await step.do(`advance-${i}`, STEP_CONFIG, () => container.executionService.advanceInstance(workspaceId, executionId, {
|
|
33
38
|
rethrowAgentErrors: true,
|
|
34
39
|
})));
|
|
35
40
|
}
|
|
@@ -58,7 +63,7 @@ export class ExecutionWorkflow extends WorkflowEntrypoint {
|
|
|
58
63
|
for (let p = 0; p < execConfig.jobMaxPolls; p++) {
|
|
59
64
|
await step.sleep(`poll-wait-${i}-${p}`, jobPollInterval);
|
|
60
65
|
try {
|
|
61
|
-
result = (await step.do(`poll-${i}-${p}`, STEP_CONFIG, () =>
|
|
66
|
+
result = (await step.do(`poll-${i}-${p}`, STEP_CONFIG, () => container.executionService.pollAgentJob(workspaceId, executionId)));
|
|
62
67
|
}
|
|
63
68
|
catch (error) {
|
|
64
69
|
pollReadFailures += 1;
|
|
@@ -96,7 +101,7 @@ export class ExecutionWorkflow extends WorkflowEntrypoint {
|
|
|
96
101
|
for (let p = 0; p < execConfig.ciMaxPolls; p++) {
|
|
97
102
|
await step.sleep(`gate-wait-${i}-${p}`, ciPollInterval);
|
|
98
103
|
try {
|
|
99
|
-
result = (await step.do(`gate-poll-${i}-${p}`, STEP_CONFIG, () =>
|
|
104
|
+
result = (await step.do(`gate-poll-${i}-${p}`, STEP_CONFIG, () => container.executionService.pollGate(workspaceId, executionId)));
|
|
100
105
|
}
|
|
101
106
|
catch (error) {
|
|
102
107
|
pollReadFailures += 1;
|
|
@@ -119,7 +124,7 @@ export class ExecutionWorkflow extends WorkflowEntrypoint {
|
|
|
119
124
|
// (post-release-health) PASSES (the window outlasted the budget with no
|
|
120
125
|
// regression), while CI/conflicts resolve to a `job_failed` timeout the
|
|
121
126
|
// checks below funnel through `failRun`. One policy, both runtimes.
|
|
122
|
-
result = (await step.do(`gate-exhausted-${i}`, STEP_CONFIG, () =>
|
|
127
|
+
result = (await step.do(`gate-exhausted-${i}`, STEP_CONFIG, () => container.executionService.resolveGatePollExhaustion(workspaceId, executionId)));
|
|
123
128
|
}
|
|
124
129
|
// Fall through: the now-updated `result` (continue / done / awaiting_job /
|
|
125
130
|
// job_failed) is handled by the checks below and the next outer-loop iteration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionWorkflow.js","sourceRoot":"","sources":["../../../src/infrastructure/workflows/ExecutionWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,oBAAoB,CAAA;AAI3B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,kFAAkF;AAClF,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE;IACjE,OAAO,EAAE,WAAW;CACQ,CAAA;AAE9B;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkB,SAAQ,kBAAgD;IAC5E,KAAK,CAAC,GAAG,CAChB,KAA6C,EAC7C,IAAkB;QAElB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;QAClD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;QACjD,MAAM,eAAe,GAAG,UAAU,CAAC,eAAwC,CAAA;QAC3E,MAAM,eAAe,GAAG,UAAU,CAAC,eAAwC,CAAA;QAC3E,MAAM,cAAc,GAAG,UAAU,CAAC,cAAuC,CAAA;QAEzE,MAAM,OAAO,GAAG,KAAK,EACnB,CAAS,EACT,OAAe,EACf,IAAI,GAAqB,OAAO,EAChC,MAAM,GAAkB,IAAI,EACb,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,gBAAgB,OAAO,EAAE,CAAC,CAAA;YAC7E,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAC9B,
|
|
1
|
+
{"version":3,"file":"ExecutionWorkflow.js","sourceRoot":"","sources":["../../../src/infrastructure/workflows/ExecutionWorkflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
-- Pipeline builder: persist the two per-step companion toggles that were previously
|
|
2
|
+
-- carried on the domain entity but dropped at the persistence layer.
|
|
3
|
+
--
|
|
4
|
+
-- `pipelines.follow_ups` — JSON array of per-step Follow-up companion toggles, parallel
|
|
5
|
+
-- to agent_kinds. `false` disables the Coder's Follow-up
|
|
6
|
+
-- companion on that step; null/absent ⇒ enabled (the default).
|
|
7
|
+
-- `pipelines.tester_quality` — JSON array of per-step test quality-control companion configs,
|
|
8
|
+
-- parallel to agent_kinds. An entry with `enabled: false` turns
|
|
9
|
+
-- the QC companion off on a Tester step; an entry with `gating`
|
|
10
|
+
-- makes the coverage audit conditional on the task estimate;
|
|
11
|
+
-- null/absent ⇒ enabled, ungated (the default).
|
|
12
|
+
|
|
13
|
+
ALTER TABLE pipelines ADD COLUMN follow_ups TEXT;
|
|
14
|
+
ALTER TABLE pipelines ADD COLUMN tester_quality TEXT;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/worker",
|
|
3
|
-
"version": "0.52.
|
|
3
|
+
"version": "0.52.5",
|
|
4
4
|
"description": "Reusable Cloudflare Worker library (Hono + D1) exposing the Agent Architecture Board core: the `createApp()` Hono factory, the default fetch/scheduled/queue handler, and the Durable Object + Workflow classes. Deployments (see deploy/backend) supply the wrangler.toml + config and re-export these.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,19 +42,19 @@
|
|
|
42
42
|
"pino": "^10.3.1",
|
|
43
43
|
"valibot": "^1.4.2",
|
|
44
44
|
"workers-ai-provider": "^3.2.1",
|
|
45
|
-
"@cat-factory/agents": "0.26.
|
|
46
|
-
"@cat-factory/consensus": "0.8.
|
|
47
|
-
"@cat-factory/contracts": "0.
|
|
48
|
-
"@cat-factory/gates": "0.2.
|
|
49
|
-
"@cat-factory/gitlab": "0.4.
|
|
50
|
-
"@cat-factory/integrations": "0.53.
|
|
51
|
-
"@cat-factory/kernel": "0.69.
|
|
52
|
-
"@cat-factory/observability-langfuse": "0.7.
|
|
53
|
-
"@cat-factory/orchestration": "0.
|
|
54
|
-
"@cat-factory/prompt-fragments": "0.9.
|
|
55
|
-
"@cat-factory/provider-cloudflare": "0.7.
|
|
56
|
-
"@cat-factory/server": "0.65.
|
|
57
|
-
"@cat-factory/spend": "0.10.
|
|
45
|
+
"@cat-factory/agents": "0.26.4",
|
|
46
|
+
"@cat-factory/consensus": "0.8.5",
|
|
47
|
+
"@cat-factory/contracts": "0.80.1",
|
|
48
|
+
"@cat-factory/gates": "0.2.63",
|
|
49
|
+
"@cat-factory/gitlab": "0.4.34",
|
|
50
|
+
"@cat-factory/integrations": "0.53.2",
|
|
51
|
+
"@cat-factory/kernel": "0.69.2",
|
|
52
|
+
"@cat-factory/observability-langfuse": "0.7.106",
|
|
53
|
+
"@cat-factory/orchestration": "0.57.1",
|
|
54
|
+
"@cat-factory/prompt-fragments": "0.9.37",
|
|
55
|
+
"@cat-factory/provider-cloudflare": "0.7.110",
|
|
56
|
+
"@cat-factory/server": "0.65.2",
|
|
57
|
+
"@cat-factory/spend": "0.10.67"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
60
|
"@cloudflare/vitest-pool-workers": "^0.16.20",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"typescript": "7.0.1-rc",
|
|
63
63
|
"vitest": "^4.1.9",
|
|
64
64
|
"wrangler": "^4.105.0",
|
|
65
|
-
"@cat-factory/conformance": "0.9.
|
|
65
|
+
"@cat-factory/conformance": "0.9.84"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"build": "tsc -b tsconfig.build.json",
|