@urateam/core 0.1.31 → 0.1.33
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/__tests__/agent-stream.test.js +35 -1
- package/dist/__tests__/agent-stream.test.js.map +1 -1
- package/dist/__tests__/audit-immutability.test.js +7 -1
- package/dist/__tests__/audit-immutability.test.js.map +1 -1
- package/dist/__tests__/auth-monitor.test.d.ts +2 -0
- package/dist/__tests__/auth-monitor.test.d.ts.map +1 -0
- package/dist/__tests__/auth-monitor.test.js +253 -0
- package/dist/__tests__/auth-monitor.test.js.map +1 -0
- package/dist/__tests__/bec-186-repro.test.d.ts +16 -0
- package/dist/__tests__/bec-186-repro.test.d.ts.map +1 -0
- package/dist/__tests__/bec-186-repro.test.js +223 -0
- package/dist/__tests__/bec-186-repro.test.js.map +1 -0
- package/dist/__tests__/control-signals.test.d.ts +2 -0
- package/dist/__tests__/control-signals.test.d.ts.map +1 -0
- package/dist/__tests__/control-signals.test.js +77 -0
- package/dist/__tests__/control-signals.test.js.map +1 -0
- package/dist/__tests__/db-migrations.test.d.ts +2 -0
- package/dist/__tests__/db-migrations.test.d.ts.map +1 -0
- package/dist/__tests__/db-migrations.test.js +237 -0
- package/dist/__tests__/db-migrations.test.js.map +1 -0
- package/dist/__tests__/executor-issue-id.test.js +2 -0
- package/dist/__tests__/executor-issue-id.test.js.map +1 -1
- package/dist/__tests__/pm-slack-interface.test.js +45 -0
- package/dist/__tests__/pm-slack-interface.test.js.map +1 -1
- package/dist/__tests__/pm-triage.test.js +101 -0
- package/dist/__tests__/pm-triage.test.js.map +1 -1
- package/dist/__tests__/post-fanout-comments.test.js +36 -0
- package/dist/__tests__/post-fanout-comments.test.js.map +1 -1
- package/dist/__tests__/preflight-claude-auth.test.d.ts +2 -0
- package/dist/__tests__/preflight-claude-auth.test.d.ts.map +1 -0
- package/dist/__tests__/preflight-claude-auth.test.js +36 -0
- package/dist/__tests__/preflight-claude-auth.test.js.map +1 -0
- package/dist/__tests__/resolve-claude-auth.test.d.ts +2 -0
- package/dist/__tests__/resolve-claude-auth.test.d.ts.map +1 -0
- package/dist/__tests__/resolve-claude-auth.test.js +129 -0
- package/dist/__tests__/resolve-claude-auth.test.js.map +1 -0
- package/dist/__tests__/stage-models.test.js +4 -0
- package/dist/__tests__/stage-models.test.js.map +1 -1
- package/dist/__tests__/util-linear.test.d.ts +10 -0
- package/dist/__tests__/util-linear.test.d.ts.map +1 -0
- package/dist/__tests__/util-linear.test.js +244 -0
- package/dist/__tests__/util-linear.test.js.map +1 -0
- package/dist/audit/events.d.ts +37 -0
- package/dist/audit/events.d.ts.map +1 -1
- package/dist/audit/events.js +53 -0
- package/dist/audit/events.js.map +1 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +8 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrations/postgres/014_missing_indexes.sql +28 -0
- package/dist/db/migrations/sqlite/013_missing_indexes.sql +28 -0
- package/dist/executor/agent-stream.d.ts +16 -0
- package/dist/executor/agent-stream.d.ts.map +1 -1
- package/dist/executor/agent-stream.js +43 -1
- package/dist/executor/agent-stream.js.map +1 -1
- package/dist/executor/auth-check.d.ts +39 -0
- package/dist/executor/auth-check.d.ts.map +1 -1
- package/dist/executor/auth-check.js +31 -0
- package/dist/executor/auth-check.js.map +1 -1
- package/dist/executor/auth-monitor.d.ts +40 -0
- package/dist/executor/auth-monitor.d.ts.map +1 -0
- package/dist/executor/auth-monitor.js +114 -0
- package/dist/executor/auth-monitor.js.map +1 -0
- package/dist/executor/executor.d.ts.map +1 -1
- package/dist/executor/executor.js +7 -2
- package/dist/executor/executor.js.map +1 -1
- package/dist/executor/index.d.ts +2 -0
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +2 -0
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/review/post-fanout-comments.d.ts +8 -0
- package/dist/executor/review/post-fanout-comments.d.ts.map +1 -1
- package/dist/executor/review/post-fanout-comments.js +23 -3
- package/dist/executor/review/post-fanout-comments.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/notifier/composite.d.ts +1 -0
- package/dist/notifier/composite.d.ts.map +1 -1
- package/dist/notifier/composite.js +3 -0
- package/dist/notifier/composite.js.map +1 -1
- package/dist/notifier/linear.d.ts +1 -0
- package/dist/notifier/linear.d.ts.map +1 -1
- package/dist/notifier/linear.js +7 -0
- package/dist/notifier/linear.js.map +1 -1
- package/dist/pipeline/control-signals.d.ts +49 -0
- package/dist/pipeline/control-signals.d.ts.map +1 -0
- package/dist/pipeline/control-signals.js +93 -0
- package/dist/pipeline/control-signals.js.map +1 -0
- package/dist/pipeline/feedback-pipeline.d.ts +140 -0
- package/dist/pipeline/feedback-pipeline.d.ts.map +1 -0
- package/dist/pipeline/feedback-pipeline.js +427 -0
- package/dist/pipeline/feedback-pipeline.js.map +1 -0
- package/dist/pipeline/index.d.ts +1 -0
- package/dist/pipeline/index.d.ts.map +1 -1
- package/dist/pipeline/index.js +1 -0
- package/dist/pipeline/index.js.map +1 -1
- package/dist/pipeline/runner.d.ts +49 -33
- package/dist/pipeline/runner.d.ts.map +1 -1
- package/dist/pipeline/runner.js +143 -350
- package/dist/pipeline/runner.js.map +1 -1
- package/dist/pm/actions/promote.d.ts.map +1 -1
- package/dist/pm/actions/promote.js +15 -11
- package/dist/pm/actions/promote.js.map +1 -1
- package/dist/pm/actions/recover-stuck.d.ts.map +1 -1
- package/dist/pm/actions/recover-stuck.js +9 -5
- package/dist/pm/actions/recover-stuck.js.map +1 -1
- package/dist/pm/actions/triage.d.ts.map +1 -1
- package/dist/pm/actions/triage.js +67 -1
- package/dist/pm/actions/triage.js.map +1 -1
- package/dist/pm/linear-helpers.d.ts +10 -0
- package/dist/pm/linear-helpers.d.ts.map +1 -1
- package/dist/pm/linear-helpers.js +13 -21
- package/dist/pm/linear-helpers.js.map +1 -1
- package/dist/pm/pause-state.d.ts +29 -0
- package/dist/pm/pause-state.d.ts.map +1 -0
- package/dist/pm/pause-state.js +34 -0
- package/dist/pm/pause-state.js.map +1 -0
- package/dist/pm/scheduler.d.ts.map +1 -1
- package/dist/pm/scheduler.js +19 -0
- package/dist/pm/scheduler.js.map +1 -1
- package/dist/pm/slack-bulk.d.ts +34 -0
- package/dist/pm/slack-bulk.d.ts.map +1 -0
- package/dist/pm/slack-bulk.js +110 -0
- package/dist/pm/slack-bulk.js.map +1 -0
- package/dist/pm/slack-commands.d.ts +101 -0
- package/dist/pm/slack-commands.d.ts.map +1 -0
- package/dist/pm/slack-commands.js +309 -0
- package/dist/pm/slack-commands.js.map +1 -0
- package/dist/pm/slack-helpers.d.ts +10 -0
- package/dist/pm/slack-helpers.d.ts.map +1 -1
- package/dist/pm/slack-helpers.js +32 -0
- package/dist/pm/slack-helpers.js.map +1 -1
- package/dist/pm/slack-interface.d.ts +32 -58
- package/dist/pm/slack-interface.d.ts.map +1 -1
- package/dist/pm/slack-interface.js +150 -320
- package/dist/pm/slack-interface.js.map +1 -1
- package/dist/rbac/matrix.d.ts +2 -0
- package/dist/rbac/matrix.d.ts.map +1 -1
- package/dist/rbac/matrix.js +2 -0
- package/dist/rbac/matrix.js.map +1 -1
- package/dist/release-manager/index.d.ts +2 -0
- package/dist/release-manager/index.d.ts.map +1 -1
- package/dist/release-manager/index.js +2 -0
- package/dist/release-manager/index.js.map +1 -1
- package/dist/release-manager/release-helpers.d.ts +112 -0
- package/dist/release-manager/release-helpers.d.ts.map +1 -0
- package/dist/release-manager/release-helpers.js +164 -0
- package/dist/release-manager/release-helpers.js.map +1 -0
- package/dist/release-manager/release-tick.d.ts +101 -0
- package/dist/release-manager/release-tick.d.ts.map +1 -0
- package/dist/release-manager/release-tick.js +374 -0
- package/dist/release-manager/release-tick.js.map +1 -0
- package/dist/release-manager/scheduler.d.ts +28 -3
- package/dist/release-manager/scheduler.d.ts.map +1 -1
- package/dist/release-manager/scheduler.js +41 -417
- package/dist/release-manager/scheduler.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +10 -0
- package/dist/server.js.map +1 -1
- package/dist/sync/gh-linear-sync.d.ts.map +1 -1
- package/dist/sync/gh-linear-sync.js +2 -2
- package/dist/sync/gh-linear-sync.js.map +1 -1
- package/dist/types.d.ts +22 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -1
- package/dist/util/linear.d.ts +70 -0
- package/dist/util/linear.d.ts.map +1 -0
- package/dist/util/linear.js +108 -0
- package/dist/util/linear.js.map +1 -0
- package/dist/webhook/github-handler.d.ts +7 -1
- package/dist/webhook/github-handler.d.ts.map +1 -1
- package/dist/webhook/github-handler.js +82 -38
- package/dist/webhook/github-handler.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export { createDb, isPostgres, sqlDateGroup, sqlDaysAgoFilter } from "./db/index
|
|
|
12
12
|
export { pipelineRuns, stageRuns, agentLogs, activeWork, pmApprovals } from "./db/index.js";
|
|
13
13
|
export { createApp } from "./server.js";
|
|
14
14
|
export { PipelineRunner } from "./pipeline/index.js";
|
|
15
|
+
export { requestRunStop, getStopSignal, clearStopSignal } from "./pipeline/index.js";
|
|
15
16
|
export { formatPRCostSummary, } from "./pipeline/cost-summary.js";
|
|
16
17
|
export { defaultConfigs, validatePipelineConfigs, validateRepoConfigs, applyDeepReviewPassesOverride, applyAutoMergeOverride, resolvePipeline } from "./pipeline/index.js";
|
|
17
18
|
export { createWebhookHandler } from "./webhook/index.js";
|
|
@@ -28,7 +29,8 @@ export { checkRequirements, buildRalphContext } from "./executor/ralph.js";
|
|
|
28
29
|
export { cleanupWorktrees } from "./repo/git.js";
|
|
29
30
|
export { sweepStaleAgentBranches, } from "./repo/agent-branch-sweep.js";
|
|
30
31
|
export { runAgentBranchSweep, } from "./repo/agent-branch-sweep-runner.js";
|
|
31
|
-
export { isClaudeAuthValid, resetAuthCheckCache } from "./executor/auth-check.js";
|
|
32
|
+
export { isClaudeAuthValid, resetAuthCheckCache, resolveClaudeAuth } from "./executor/auth-check.js";
|
|
33
|
+
export { createAuthMonitor, runAuthMonitorCheck, AUTH_MONITOR_INTERVAL_MS } from "./executor/auth-monitor.js";
|
|
32
34
|
export { createGitHubClient } from "./repo/github.js";
|
|
33
35
|
export { buildGitHubConfigFromEnv } from "./repo/github-from-env.js";
|
|
34
36
|
export { postSlackMessage } from "./pm/slack-helpers.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,GAErB,MAAM,cAAc,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAW,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,cAAc,EAA+C,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,mBAAmB,GAGpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3K,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GAErB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAyB,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAuC,MAAM,4BAA4B,CAAC;AACjG,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAyB,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EACL,uBAAuB,GAIxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mBAAmB,GAEpB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ export declare class CompositeNotifier implements Notifier {
|
|
|
9
9
|
onHumanReviewNeeded(run: PipelineRun, prUrl: string, reason: string): Promise<void>;
|
|
10
10
|
onTokenBudgetAlert(run: PipelineRun, usedTokens: number, maxTokens: number): Promise<void>;
|
|
11
11
|
onDailyTokenSummary(summary: DailyTokenSummary): Promise<void>;
|
|
12
|
+
onPRMerged(run: PipelineRun): Promise<void>;
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=composite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/notifier/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExH,qBAAa,iBAAkB,YAAW,QAAQ;IACpC,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,QAAQ,EAAE;IAEnC,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1F,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/notifier/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExH,qBAAa,iBAAkB,YAAW,QAAQ;IACpC,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,QAAQ,EAAE;IAEnC,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3E,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1F,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9D,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAKlD"}
|
|
@@ -24,5 +24,8 @@ export class CompositeNotifier {
|
|
|
24
24
|
async onDailyTokenSummary(summary) {
|
|
25
25
|
await Promise.allSettled(this.notifiers.filter(n => n.onDailyTokenSummary).map(n => n.onDailyTokenSummary(summary)));
|
|
26
26
|
}
|
|
27
|
+
async onPRMerged(run) {
|
|
28
|
+
await Promise.allSettled(this.notifiers.filter(n => n.onPRMerged).map(n => n.onPRMerged(run)));
|
|
29
|
+
}
|
|
27
30
|
}
|
|
28
31
|
//# sourceMappingURL=composite.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/notifier/composite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,iBAAiB;IACR;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C,KAAK,CAAC,eAAe,CAAC,GAAgB;QACpC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAgB,EAAE,KAAa,EAAE,MAAmB;QACxE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAgB,EAAE,MAAsB;QAC/D,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAgB,EAAE,KAAoB;QAC3D,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAgB,EAAE,KAAa,EAAE,MAAc;QACvE,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAgB,EAAE,UAAkB,EAAE,SAAiB;QAC9E,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAC7G,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAA0B;QAClD,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAoB,CAAC,OAAO,CAAC,CAAC,CAC5F,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/notifier/composite.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,iBAAiB;IACR;IAApB,YAAoB,SAAqB;QAArB,cAAS,GAAT,SAAS,CAAY;IAAG,CAAC;IAE7C,KAAK,CAAC,eAAe,CAAC,GAAgB;QACpC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAgB,EAAE,KAAa,EAAE,MAAmB;QACxE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAgB,EAAE,MAAsB;QAC/D,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAgB,EAAE,KAAoB;QAC3D,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAgB,EAAE,KAAa,EAAE,MAAc;QACvE,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAgB,EAAE,UAAkB,EAAE,SAAiB;QAC9E,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAC7G,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAA0B;QAClD,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAoB,CAAC,OAAO,CAAC,CAAC,CAC5F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAgB;QAC/B,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,CACtE,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -20,6 +20,7 @@ export declare class LinearNotifier implements Notifier {
|
|
|
20
20
|
onPipelineComplete(run: PipelineRun, result: PipelineResult): Promise<void>;
|
|
21
21
|
onHumanReviewNeeded(run: PipelineRun, prUrl: string, reason: string): Promise<void>;
|
|
22
22
|
onTokenBudgetAlert(run: PipelineRun, usedTokens: number, maxTokens: number): Promise<void>;
|
|
23
|
+
onPRMerged(run: PipelineRun): Promise<void>;
|
|
23
24
|
onPipelineFailed(run: PipelineRun, error: PipelineError): Promise<void>;
|
|
24
25
|
private resolveIssueId;
|
|
25
26
|
private postComment;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/notifier/linear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKrG,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,YAAY,CAAsD;IAC1E,OAAO,CAAC,aAAa,CAA6B;gBAEtC,MAAM,EAAE,oBAAoB;YAI1B,SAAS;IASjB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhD,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B3E,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1F,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAY/D,cAAc;YAed,WAAW;YAYX,eAAe;CAuB9B"}
|
|
1
|
+
{"version":3,"file":"linear.d.ts","sourceRoot":"","sources":["../../src/notifier/linear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKrG,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAe,YAAW,QAAQ;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,YAAY,CAAsD;IAC1E,OAAO,CAAC,aAAa,CAA6B;gBAEtC,MAAM,EAAE,oBAAoB;YAI1B,SAAS;IASjB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhD,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBpF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B3E,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenF,kBAAkB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1F,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAY/D,cAAc;YAed,WAAW;YAYX,eAAe;CAuB9B"}
|
package/dist/notifier/linear.js
CHANGED
|
@@ -88,6 +88,13 @@ export class LinearNotifier {
|
|
|
88
88
|
`Usage: ${usedTokens.toLocaleString()} / ${maxTokens.toLocaleString()} tokens (${pct}%)\n` +
|
|
89
89
|
`The run will be aborted if the budget is exceeded.`);
|
|
90
90
|
}
|
|
91
|
+
async onPRMerged(run) {
|
|
92
|
+
await Promise.all([
|
|
93
|
+
this.postComment(run.issueId, `🤖 **Agent Run #${run.id.slice(0, 8)}** — PR Merged ✅\n\n` +
|
|
94
|
+
`The PR has been merged. Closing this ticket.`),
|
|
95
|
+
this.transitionState(run.issueId, LINEAR_STATES.DONE),
|
|
96
|
+
]);
|
|
97
|
+
}
|
|
91
98
|
async onPipelineFailed(run, error) {
|
|
92
99
|
await Promise.all([
|
|
93
100
|
this.postComment(run.issueId, `🤖 **Agent Run #${run.id.slice(0, 8)}** — Pipeline Failed ❌\n\n` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/notifier/linear.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"linear.js","sourceRoot":"","sources":["../../src/notifier/linear.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory per-run stop signals for the pipeline runner.
|
|
3
|
+
*
|
|
4
|
+
* Surfaces (dashboard, Slack, CLI) all funnel through `requestStop()` and the
|
|
5
|
+
* runner consults `getStopSignal()` between stages. The executor subscribes via
|
|
6
|
+
* `onStop()` so that "cancel" mode can interrupt an in-flight Agent SDK stream
|
|
7
|
+
* (graceful stops simply skip the remaining stages once the current one ends).
|
|
8
|
+
*
|
|
9
|
+
* Single-process state: resets on container restart. Cross-container
|
|
10
|
+
* coordination (Redis) is intentionally out of scope — matches the existing
|
|
11
|
+
* BEC-170 pause caveat.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Stop intent attached to a run.
|
|
15
|
+
*
|
|
16
|
+
* - `"cancel"` — interrupt the running stage immediately by aborting the Agent
|
|
17
|
+
* SDK stream; mark the run as aborted. Tokens already spent on the current
|
|
18
|
+
* stage are lost.
|
|
19
|
+
* - `"graceful"` — let the current stage finish, then skip remaining stages.
|
|
20
|
+
* No PR, no fanout. Strictly cheaper to clean up after.
|
|
21
|
+
*/
|
|
22
|
+
export type StopMode = "cancel" | "graceful";
|
|
23
|
+
/**
|
|
24
|
+
* Request a stop for `runId`. Idempotent. Calling with `"cancel"` after
|
|
25
|
+
* `"graceful"` upgrades the signal (cancel is strictly stronger). The reverse
|
|
26
|
+
* is a no-op so an in-flight cancel can't be downgraded mid-stream.
|
|
27
|
+
*
|
|
28
|
+
* Returns the effective mode after the call.
|
|
29
|
+
*/
|
|
30
|
+
export declare function requestStop(runId: string, mode: StopMode): StopMode;
|
|
31
|
+
/** Returns the current stop signal for `runId`, or `undefined` if none set. */
|
|
32
|
+
export declare function getStopSignal(runId: string): StopMode | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Clears any signal for `runId`. Called by the runner once it has finished
|
|
35
|
+
* processing the stop (e.g. after marking the run aborted).
|
|
36
|
+
*/
|
|
37
|
+
export declare function clearStopSignal(runId: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Subscribe a listener that fires when a `"cancel"` signal is recorded for
|
|
40
|
+
* `runId`. Returns an unsubscribe function. Use this in the executor to call
|
|
41
|
+
* `.return()` on the SDK iterator and break out of the stream.
|
|
42
|
+
*
|
|
43
|
+
* If a `"cancel"` signal is already pending when this is called, the listener
|
|
44
|
+
* is invoked synchronously so subscribers can't miss an early request.
|
|
45
|
+
*/
|
|
46
|
+
export declare function onStop(runId: string, listener: () => void): () => void;
|
|
47
|
+
/** Test/reset helper. Not exported from the package barrel. */
|
|
48
|
+
export declare function _clearAllSignals(): void;
|
|
49
|
+
//# sourceMappingURL=control-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-signals.d.ts","sourceRoot":"","sources":["../../src/pipeline/control-signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAK7C;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAuBnE;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEjE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGnD;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAiBtE;AAED,+DAA+D;AAC/D,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory per-run stop signals for the pipeline runner.
|
|
3
|
+
*
|
|
4
|
+
* Surfaces (dashboard, Slack, CLI) all funnel through `requestStop()` and the
|
|
5
|
+
* runner consults `getStopSignal()` between stages. The executor subscribes via
|
|
6
|
+
* `onStop()` so that "cancel" mode can interrupt an in-flight Agent SDK stream
|
|
7
|
+
* (graceful stops simply skip the remaining stages once the current one ends).
|
|
8
|
+
*
|
|
9
|
+
* Single-process state: resets on container restart. Cross-container
|
|
10
|
+
* coordination (Redis) is intentionally out of scope — matches the existing
|
|
11
|
+
* BEC-170 pause caveat.
|
|
12
|
+
*/
|
|
13
|
+
import { createLogger } from "../logger.js";
|
|
14
|
+
const log = createLogger({ component: "pipeline.control-signals" });
|
|
15
|
+
const signals = new Map();
|
|
16
|
+
const listeners = new Map();
|
|
17
|
+
/**
|
|
18
|
+
* Request a stop for `runId`. Idempotent. Calling with `"cancel"` after
|
|
19
|
+
* `"graceful"` upgrades the signal (cancel is strictly stronger). The reverse
|
|
20
|
+
* is a no-op so an in-flight cancel can't be downgraded mid-stream.
|
|
21
|
+
*
|
|
22
|
+
* Returns the effective mode after the call.
|
|
23
|
+
*/
|
|
24
|
+
export function requestStop(runId, mode) {
|
|
25
|
+
const existing = signals.get(runId);
|
|
26
|
+
if (existing === "cancel") {
|
|
27
|
+
// Already at strongest — no-op.
|
|
28
|
+
return existing;
|
|
29
|
+
}
|
|
30
|
+
signals.set(runId, mode);
|
|
31
|
+
log.info({ runId, mode, previous: existing ?? null }, "stop signal recorded");
|
|
32
|
+
// Notify listeners only on `"cancel"` — graceful is polled at stage boundaries
|
|
33
|
+
// and doesn't need to interrupt a running stream.
|
|
34
|
+
if (mode === "cancel") {
|
|
35
|
+
const subs = listeners.get(runId);
|
|
36
|
+
if (subs) {
|
|
37
|
+
for (const cb of subs) {
|
|
38
|
+
try {
|
|
39
|
+
cb();
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
log.warn({ runId, err }, "stop listener threw");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return mode;
|
|
48
|
+
}
|
|
49
|
+
/** Returns the current stop signal for `runId`, or `undefined` if none set. */
|
|
50
|
+
export function getStopSignal(runId) {
|
|
51
|
+
return signals.get(runId);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Clears any signal for `runId`. Called by the runner once it has finished
|
|
55
|
+
* processing the stop (e.g. after marking the run aborted).
|
|
56
|
+
*/
|
|
57
|
+
export function clearStopSignal(runId) {
|
|
58
|
+
signals.delete(runId);
|
|
59
|
+
listeners.delete(runId);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Subscribe a listener that fires when a `"cancel"` signal is recorded for
|
|
63
|
+
* `runId`. Returns an unsubscribe function. Use this in the executor to call
|
|
64
|
+
* `.return()` on the SDK iterator and break out of the stream.
|
|
65
|
+
*
|
|
66
|
+
* If a `"cancel"` signal is already pending when this is called, the listener
|
|
67
|
+
* is invoked synchronously so subscribers can't miss an early request.
|
|
68
|
+
*/
|
|
69
|
+
export function onStop(runId, listener) {
|
|
70
|
+
if (signals.get(runId) === "cancel") {
|
|
71
|
+
try {
|
|
72
|
+
listener();
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
log.warn({ runId, err }, "stop listener threw on immediate fire");
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
let set = listeners.get(runId);
|
|
79
|
+
if (!set) {
|
|
80
|
+
set = new Set();
|
|
81
|
+
listeners.set(runId, set);
|
|
82
|
+
}
|
|
83
|
+
set.add(listener);
|
|
84
|
+
return () => {
|
|
85
|
+
set?.delete(listener);
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/** Test/reset helper. Not exported from the package barrel. */
|
|
89
|
+
export function _clearAllSignals() {
|
|
90
|
+
signals.clear();
|
|
91
|
+
listeners.clear();
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=control-signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-signals.js","sourceRoot":"","sources":["../../src/pipeline/control-signals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAapE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;AAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,IAAc;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,gCAAgC;QAChC,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzB,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAC9E,+EAA+E;IAC/E,kDAAkD;IAClD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,EAAE,EAAE,CAAC;gBACP,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,QAAoB;IACxD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,EAAE,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,uCAAuC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAChB,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,GAAG,EAAE;QACV,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,SAAS,CAAC,KAAK,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { PipelineConfig, RepoConfig, Notifier, PipelineRun, SanitizedIssue, ReviewFeedbackContext } from "../types.js";
|
|
2
|
+
import type { AnyDb } from "../db/client.js";
|
|
3
|
+
import { type GitHubConfig } from "../repo/github.js";
|
|
4
|
+
import { type GitLabConfig } from "../repo/gitlab.js";
|
|
5
|
+
import type { ReviewFeedbackComment } from "../webhook/github-handler.js";
|
|
6
|
+
import type { WorkQueue } from "./queue.js";
|
|
7
|
+
import { type LockAdapter } from "./distributed-lock.js";
|
|
8
|
+
/**
|
|
9
|
+
* Map webhook-shaped `ReviewFeedbackComment[]` (the wire format we receive
|
|
10
|
+
* from GitHub) into the `ReviewFeedbackContext` that the implement template
|
|
11
|
+
* expects when handling PR review feedback.
|
|
12
|
+
*
|
|
13
|
+
* Routes the implement stage into the dedicated review-feedback prompt path
|
|
14
|
+
* (templates.ts:233-253) — "address review comments on existing branch, push
|
|
15
|
+
* to same branch, do NOT create a new PR" — instead of falling through to
|
|
16
|
+
* the standard "create branch and implement issue from scratch" prompt.
|
|
17
|
+
*
|
|
18
|
+
* `createdAt` is not captured by the GitHub webhook handler today, so the
|
|
19
|
+
* mapped comments use an empty string. The template only renders this for
|
|
20
|
+
* display; an empty value is harmless.
|
|
21
|
+
*/
|
|
22
|
+
export declare function buildReviewFeedbackContext(prUrl: string, prBranch: string, comments: ReviewFeedbackComment[]): ReviewFeedbackContext;
|
|
23
|
+
/**
|
|
24
|
+
* All dependencies required by executeFeedbackPipeline.
|
|
25
|
+
*
|
|
26
|
+
* PipelineRunner.startFeedback() constructs this context from its own
|
|
27
|
+
* instance fields and passes it through to the extracted function so the
|
|
28
|
+
* implementation can live outside the class while still accessing the same
|
|
29
|
+
* shared state (queues, locks, notifier, config).
|
|
30
|
+
*
|
|
31
|
+
* @param db - AnyDb instance (SQLite or Postgres)
|
|
32
|
+
* @param notifier - Composite notifier for Linear/Slack/Discord events
|
|
33
|
+
* @param repoCloneDir - Base directory for bare repository clones
|
|
34
|
+
* @param agentRunDir - Base directory for per-run agent worktrees
|
|
35
|
+
* @param githubConfig - Optional GitHub App credentials (re-request review)
|
|
36
|
+
* @param gitlabConfig - Optional GitLab credentials (authenticated clone URL)
|
|
37
|
+
* @param pushQueue - Concurrency-1 queue serialising push operations
|
|
38
|
+
* @param lockAdapter - Distributed branch lock adapter
|
|
39
|
+
* @param prLockTimeoutMs - Max wait time (ms) for the distributed branch lock
|
|
40
|
+
* @param budgetAlertedRuns - Mutable set of runIds that already fired 80% alert
|
|
41
|
+
* @param checkTokenBudget - Bound method: checks/enforces the token budget
|
|
42
|
+
* @param failPipeline - Bound method: marks run as failed and notifies
|
|
43
|
+
* @param injectAgentConfig - Bound method: writes CLAUDE.md into worktree
|
|
44
|
+
*/
|
|
45
|
+
export interface FeedbackPipelineContext {
|
|
46
|
+
db: AnyDb;
|
|
47
|
+
notifier: Notifier;
|
|
48
|
+
repoCloneDir: string;
|
|
49
|
+
agentRunDir: string;
|
|
50
|
+
githubConfig?: GitHubConfig;
|
|
51
|
+
gitlabConfig?: GitLabConfig;
|
|
52
|
+
pushQueue: WorkQueue;
|
|
53
|
+
lockAdapter: LockAdapter;
|
|
54
|
+
prLockTimeoutMs: number;
|
|
55
|
+
budgetAlertedRuns: Set<string>;
|
|
56
|
+
checkTokenBudget(db: AnyDb, runId: string, run: PipelineRun, config: PipelineConfig, stage: string): Promise<boolean>;
|
|
57
|
+
failPipeline(db: AnyDb, runId: string, run: PipelineRun, stage: string, errorMsg: string, retriesExhausted: boolean): Promise<void>;
|
|
58
|
+
injectAgentConfig(worktreePath: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Operator-initiated stop. Mirrors the main pipeline's path so feedback
|
|
61
|
+
* runs honour cancel/graceful signals. Passes the prUrl so the per-PR
|
|
62
|
+
* rate-limit slot is freed immediately rather than waiting on the queue's
|
|
63
|
+
* `finally` block.
|
|
64
|
+
*/
|
|
65
|
+
markRunCancelled(db: AnyDb, runId: string, run: PipelineRun, mode: "cancel" | "graceful", feedbackPrUrl?: string): Promise<void>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Execute a review-feedback pipeline run.
|
|
69
|
+
*
|
|
70
|
+
* Key differences from executePipeline():
|
|
71
|
+
* - Checks out the EXISTING PR branch (not a new one).
|
|
72
|
+
* - Skips triage, reproduce, await-approval stages.
|
|
73
|
+
* - Does NOT create a new PR — pushes to the same branch.
|
|
74
|
+
* - Optionally re-requests review via GitHub App after push.
|
|
75
|
+
* - Feedback comment context is injected into the implement stage prompt.
|
|
76
|
+
*
|
|
77
|
+
* @param ctx - All dependencies (db, notifier, queues, config, etc.)
|
|
78
|
+
* @param runId - Unique ID for this pipeline run
|
|
79
|
+
* @param run - In-memory PipelineRun state object
|
|
80
|
+
* @param config - Pipeline configuration (stages, maxTokens, etc.)
|
|
81
|
+
* @param repoConfig - Repository configuration (URL, provider, etc.)
|
|
82
|
+
* @param sanitizedIssue - Sanitized issue data for prompt construction
|
|
83
|
+
* @param branch - Existing PR branch to check out and push to
|
|
84
|
+
* @param prUrl - URL of the pull request being addressed
|
|
85
|
+
* @param prNumber - PR number (required for re-requesting review)
|
|
86
|
+
* @param feedbackComments - Raw feedback comments from the GitHub webhook
|
|
87
|
+
* @param rerequestReview - Whether to re-request review after pushing
|
|
88
|
+
*/
|
|
89
|
+
export declare function executeFeedbackPipeline(ctx: FeedbackPipelineContext, runId: string, run: PipelineRun, config: PipelineConfig, repoConfig: RepoConfig, sanitizedIssue: SanitizedIssue, branch: string, prUrl: string, prNumber: number | undefined, feedbackComments: ReviewFeedbackComment[], rerequestReview: boolean): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Minimal issue reference required by the feedback pipeline orchestration.
|
|
92
|
+
* Structural subset of LinearIssue; passing a full LinearIssue is valid.
|
|
93
|
+
*/
|
|
94
|
+
export type FeedbackIssueRef = {
|
|
95
|
+
identifier: string;
|
|
96
|
+
title: string;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Extended context for orchestrating a feedback pipeline run.
|
|
100
|
+
* Adds the state-management dependencies that startFeedbackPipeline needs
|
|
101
|
+
* on top of the execution dependencies in FeedbackPipelineContext.
|
|
102
|
+
*
|
|
103
|
+
* @param activeFeedbackRuns - Mutable map of in-flight feedback runs (prUrl → runId) for rate-limiting
|
|
104
|
+
* @param queue - Main execution queue from PipelineRunner
|
|
105
|
+
* @param buildPipelineRun - Factory that constructs an in-memory PipelineRun from issue/config data
|
|
106
|
+
*/
|
|
107
|
+
export interface FeedbackStartContext extends FeedbackPipelineContext {
|
|
108
|
+
activeFeedbackRuns: Map<string, string>;
|
|
109
|
+
queue: WorkQueue;
|
|
110
|
+
buildPipelineRun(runId: string, issue: FeedbackIssueRef, pipelineKey: string, repoConfig: RepoConfig, branch: string): PipelineRun;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Orchestrate a review-feedback pipeline run.
|
|
114
|
+
*
|
|
115
|
+
* Handles the setup phase that wraps executeFeedbackPipeline:
|
|
116
|
+
* - Rate-limit check (one run per PR at a time).
|
|
117
|
+
* - DB record insertion (status = "queued").
|
|
118
|
+
* - In-memory PipelineRun construction.
|
|
119
|
+
* - Enqueue execution via the main work queue.
|
|
120
|
+
*
|
|
121
|
+
* PipelineRunner.startFeedback() is a thin wrapper that delegates here,
|
|
122
|
+
* passing its instance state through FeedbackStartContext.
|
|
123
|
+
*
|
|
124
|
+
* @param ctx - Runner-level dependencies (db, notifier, queues, locks, etc.)
|
|
125
|
+
* @param params - Issue / PR / feedback data for this run
|
|
126
|
+
*/
|
|
127
|
+
export declare function startFeedbackPipeline(ctx: FeedbackStartContext, params: {
|
|
128
|
+
issue: FeedbackIssueRef;
|
|
129
|
+
pipelineKey: string;
|
|
130
|
+
pipelineConfig: PipelineConfig;
|
|
131
|
+
repoConfig: RepoConfig;
|
|
132
|
+
sanitizedIssue: SanitizedIssue;
|
|
133
|
+
branch: string;
|
|
134
|
+
prUrl: string;
|
|
135
|
+
prNumber?: number;
|
|
136
|
+
parentRunId?: string;
|
|
137
|
+
feedbackComments: ReviewFeedbackComment[];
|
|
138
|
+
rerequestReview?: boolean;
|
|
139
|
+
}): Promise<void>;
|
|
140
|
+
//# sourceMappingURL=feedback-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/feedback-pipeline.ts"],"names":[],"mappings":"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"}
|