@urateam/core 0.1.30 → 0.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/__tests__/agent-stream.test.js +35 -1
  2. package/dist/__tests__/agent-stream.test.js.map +1 -1
  3. package/dist/__tests__/bec-185-reproduce.test.d.ts +16 -0
  4. package/dist/__tests__/bec-185-reproduce.test.d.ts.map +1 -0
  5. package/dist/__tests__/bec-185-reproduce.test.js +16 -0
  6. package/dist/__tests__/bec-185-reproduce.test.js.map +1 -0
  7. package/dist/__tests__/control-signals.test.d.ts +2 -0
  8. package/dist/__tests__/control-signals.test.d.ts.map +1 -0
  9. package/dist/__tests__/control-signals.test.js +77 -0
  10. package/dist/__tests__/control-signals.test.js.map +1 -0
  11. package/dist/__tests__/gh-linear-sync.test.js +57 -2
  12. package/dist/__tests__/gh-linear-sync.test.js.map +1 -1
  13. package/dist/__tests__/openrouter-client.test.js +34 -0
  14. package/dist/__tests__/openrouter-client.test.js.map +1 -1
  15. package/dist/__tests__/pm-slack-interface.test.js +45 -0
  16. package/dist/__tests__/pm-slack-interface.test.js.map +1 -1
  17. package/dist/__tests__/pm-triage.test.js +101 -0
  18. package/dist/__tests__/pm-triage.test.js.map +1 -1
  19. package/dist/__tests__/util-linear.test.d.ts +10 -0
  20. package/dist/__tests__/util-linear.test.d.ts.map +1 -0
  21. package/dist/__tests__/util-linear.test.js +244 -0
  22. package/dist/__tests__/util-linear.test.js.map +1 -0
  23. package/dist/audit/events.d.ts +24 -0
  24. package/dist/audit/events.d.ts.map +1 -1
  25. package/dist/audit/events.js +32 -0
  26. package/dist/audit/events.js.map +1 -1
  27. package/dist/executor/agent-stream.d.ts +16 -0
  28. package/dist/executor/agent-stream.d.ts.map +1 -1
  29. package/dist/executor/agent-stream.js +43 -1
  30. package/dist/executor/agent-stream.js.map +1 -1
  31. package/dist/executor/executor.d.ts.map +1 -1
  32. package/dist/executor/executor.js +24 -5
  33. package/dist/executor/executor.js.map +1 -1
  34. package/dist/executor/review/openrouter-client.d.ts.map +1 -1
  35. package/dist/executor/review/openrouter-client.js +8 -0
  36. package/dist/executor/review/openrouter-client.js.map +1 -1
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/notifier/linear.d.ts +0 -1
  42. package/dist/notifier/linear.d.ts.map +1 -1
  43. package/dist/notifier/linear.js +2 -5
  44. package/dist/notifier/linear.js.map +1 -1
  45. package/dist/pipeline/control-signals.d.ts +49 -0
  46. package/dist/pipeline/control-signals.d.ts.map +1 -0
  47. package/dist/pipeline/control-signals.js +93 -0
  48. package/dist/pipeline/control-signals.js.map +1 -0
  49. package/dist/pipeline/feedback-pipeline.d.ts +140 -0
  50. package/dist/pipeline/feedback-pipeline.d.ts.map +1 -0
  51. package/dist/pipeline/feedback-pipeline.js +427 -0
  52. package/dist/pipeline/feedback-pipeline.js.map +1 -0
  53. package/dist/pipeline/index.d.ts +1 -0
  54. package/dist/pipeline/index.d.ts.map +1 -1
  55. package/dist/pipeline/index.js +1 -0
  56. package/dist/pipeline/index.js.map +1 -1
  57. package/dist/pipeline/runner.d.ts +49 -33
  58. package/dist/pipeline/runner.d.ts.map +1 -1
  59. package/dist/pipeline/runner.js +136 -349
  60. package/dist/pipeline/runner.js.map +1 -1
  61. package/dist/pm/actions/promote.d.ts.map +1 -1
  62. package/dist/pm/actions/promote.js +15 -11
  63. package/dist/pm/actions/promote.js.map +1 -1
  64. package/dist/pm/actions/recover-stuck.d.ts.map +1 -1
  65. package/dist/pm/actions/recover-stuck.js +9 -5
  66. package/dist/pm/actions/recover-stuck.js.map +1 -1
  67. package/dist/pm/actions/triage.d.ts.map +1 -1
  68. package/dist/pm/actions/triage.js +67 -1
  69. package/dist/pm/actions/triage.js.map +1 -1
  70. package/dist/pm/linear-helpers.d.ts +10 -0
  71. package/dist/pm/linear-helpers.d.ts.map +1 -1
  72. package/dist/pm/linear-helpers.js +13 -21
  73. package/dist/pm/linear-helpers.js.map +1 -1
  74. package/dist/pm/pause-state.d.ts +29 -0
  75. package/dist/pm/pause-state.d.ts.map +1 -0
  76. package/dist/pm/pause-state.js +34 -0
  77. package/dist/pm/pause-state.js.map +1 -0
  78. package/dist/pm/slack-bulk.d.ts +34 -0
  79. package/dist/pm/slack-bulk.d.ts.map +1 -0
  80. package/dist/pm/slack-bulk.js +110 -0
  81. package/dist/pm/slack-bulk.js.map +1 -0
  82. package/dist/pm/slack-commands.d.ts +101 -0
  83. package/dist/pm/slack-commands.d.ts.map +1 -0
  84. package/dist/pm/slack-commands.js +309 -0
  85. package/dist/pm/slack-commands.js.map +1 -0
  86. package/dist/pm/slack-helpers.d.ts +10 -0
  87. package/dist/pm/slack-helpers.d.ts.map +1 -1
  88. package/dist/pm/slack-helpers.js +32 -0
  89. package/dist/pm/slack-helpers.js.map +1 -1
  90. package/dist/pm/slack-interface.d.ts +32 -58
  91. package/dist/pm/slack-interface.d.ts.map +1 -1
  92. package/dist/pm/slack-interface.js +150 -320
  93. package/dist/pm/slack-interface.js.map +1 -1
  94. package/dist/rbac/matrix.d.ts +2 -0
  95. package/dist/rbac/matrix.d.ts.map +1 -1
  96. package/dist/rbac/matrix.js +2 -0
  97. package/dist/rbac/matrix.js.map +1 -1
  98. package/dist/server.d.ts.map +1 -1
  99. package/dist/server.js +7 -0
  100. package/dist/server.js.map +1 -1
  101. package/dist/sync/gh-linear-sync.d.ts +5 -1
  102. package/dist/sync/gh-linear-sync.d.ts.map +1 -1
  103. package/dist/sync/gh-linear-sync.js +104 -44
  104. package/dist/sync/gh-linear-sync.js.map +1 -1
  105. package/dist/types.d.ts +13 -4
  106. package/dist/types.d.ts.map +1 -1
  107. package/dist/types.js +6 -0
  108. package/dist/types.js.map +1 -1
  109. package/dist/util/linear.d.ts +70 -0
  110. package/dist/util/linear.d.ts.map +1 -0
  111. package/dist/util/linear.js +108 -0
  112. package/dist/util/linear.js.map +1 -0
  113. package/package.json +1 -1
@@ -1,23 +1,10 @@
1
- import type { PipelineConfig, RepoConfig, Notifier, SanitizedIssue, ReviewFeedbackContext } from "../types.js";
2
- import type { Db } from "../db/client.js";
1
+ import type { PipelineConfig, RepoConfig, Notifier, PipelineRun, SanitizedIssue } from "../types.js";
2
+ import type { Db, AnyDb } from "../db/client.js";
3
+ import { type StopMode } from "./control-signals.js";
3
4
  import { type GitHubConfig } from "../repo/github.js";
4
5
  import { type GitLabConfig } from "../repo/gitlab.js";
5
6
  import type { ReviewFeedbackComment } from "../webhook/github-handler.js";
6
- /**
7
- * Map webhook-shaped `ReviewFeedbackComment[]` (the wire format we receive
8
- * from GitHub) into the `ReviewFeedbackContext` that the implement template
9
- * expects when handling PR review feedback.
10
- *
11
- * Routes the implement stage into the dedicated review-feedback prompt path
12
- * (templates.ts:233-253) — "address review comments on existing branch, push
13
- * to same branch, do NOT create a new PR" — instead of falling through to
14
- * the standard "create branch and implement issue from scratch" prompt.
15
- *
16
- * `createdAt` is not captured by the GitHub webhook handler today, so the
17
- * mapped comments use an empty string. The template only renders this for
18
- * display; an empty value is harmless.
19
- */
20
- export declare function buildReviewFeedbackContext(prUrl: string, prBranch: string, comments: ReviewFeedbackComment[]): ReviewFeedbackContext;
7
+ export { buildReviewFeedbackContext } from "./feedback-pipeline.js";
21
8
  export interface PipelineRunnerConfig {
22
9
  db: Db;
23
10
  notifier: Notifier;
@@ -67,17 +54,57 @@ export declare class PipelineRunner {
67
54
  resume(issueId: string): Promise<void>;
68
55
  pause(issueId: string): Promise<void>;
69
56
  abort(issueId: string): Promise<void>;
57
+ /**
58
+ * Operator-initiated stop for a single run, addressed by runId.
59
+ *
60
+ * - `"cancel"` aborts the active Agent SDK stream immediately. The current
61
+ * stage exits with `status: "cancelled"`; the pipeline marks the run
62
+ * `cancelled` and returns without creating a PR.
63
+ * - `"graceful"` lets the current stage complete, then skips remaining
64
+ * stages. Slower than cancel but leaves the worktree consistent.
65
+ *
66
+ * Idempotent. Returns the issueId resolved from the active map (or null if
67
+ * the runId isn't currently active). The caller is responsible for emitting
68
+ * the audit event since it knows the actor.
69
+ */
70
+ requestStop(runId: string, mode: StopMode): {
71
+ issueId: string | null;
72
+ mode: StopMode;
73
+ };
74
+ /**
75
+ * Halt the whole container's autonomous work:
76
+ * 1. Pauses the PM Agent (BEC-170 mechanism) so no new runs get promoted.
77
+ * 2. Sends a `"cancel"` signal to every active pipeline + feedback run.
78
+ *
79
+ * Returns the set of run ids that were cancelled — the caller emits the
80
+ * audit event. Reversible: PM Agent can be unpaused via `/pm resume` and
81
+ * individual runs can be re-triggered via the retry button. Cancelled runs
82
+ * stay cancelled.
83
+ */
84
+ haltAll(): {
85
+ cancelledRunIds: string[];
86
+ };
87
+ /**
88
+ * Mark a run as cancelled in the DB and clean up bookkeeping. Shared by the
89
+ * pre-stage graceful path and the mid-stream cancel path.
90
+ *
91
+ * For feedback-pipeline runs, pass `feedbackPrUrl` so the per-PR rate-limit
92
+ * slot is freed immediately rather than waiting on the queue's `finally`
93
+ * block. The queue's `finally` still fires (idempotent — Map.delete on a
94
+ * missing key is a no-op), this just shortens the window during which a new
95
+ * feedback comment on the same PR is rejected as "already active".
96
+ */
97
+ markRunCancelled(db: AnyDb, runId: string, run: PipelineRun, mode: StopMode, feedbackPrUrl?: string): Promise<void>;
98
+ private markRunCancelledImpl;
70
99
  isActive(issueId: string): boolean;
71
100
  /** Returns true if a review-feedback run is already in progress for the given PR URL. */
72
101
  isActiveFeedback(prUrl: string): boolean;
73
102
  /**
74
103
  * Start a review-feedback pipeline run triggered by a PR review comment.
75
104
  *
76
- * Unlike start(), this method:
77
- * - Does NOT create a new branch — it checks out the existing PR branch.
78
- * - Skips triage and reproduce stages, entering directly at implement.
79
- * - Does NOT create a new PR — it pushes to the same branch.
80
- * - Optionally re-requests review after pushing.
105
+ * Thin wrapper — all orchestration logic (rate-limiting, DB insert, queue
106
+ * management) and execution are delegated to feedback-pipeline.ts.
107
+ * See startFeedbackPipeline() for full documentation.
81
108
  */
82
109
  startFeedback(params: {
83
110
  issue: LinearIssue;
@@ -135,17 +162,6 @@ export declare class PipelineRunner {
135
162
  * notification. Defaults to today (UTC).
136
163
  */
137
164
  sendDailyTokenSummary(date?: Date): Promise<void>;
138
- /**
139
- * Execute a review-feedback pipeline run.
140
- *
141
- * Key differences from executePipeline():
142
- * - Checks out the EXISTING PR branch (not a new one).
143
- * - Skips triage, reproduce, await-approval stages.
144
- * - Does NOT create a new PR — pushes to the same branch.
145
- * - Optionally re-requests review via GitHub App after push.
146
- * - Feedback comment context is injected into the implement stage prompt.
147
- */
148
- private executeFeedbackPipeline;
149
165
  private buildPipelineRun;
150
166
  }
151
167
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"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"}