@vicfei/dsh-super-agent 0.6.1 → 0.8.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { Trigger } from "./domain.js";
2
+ import type { ReplyChannel, Source, SourceState } from "./source.js";
3
+ /** The im.message.receive_v1 event body (fields we consume). */
4
+ export interface FeishuReceiveEvent {
5
+ sender?: {
6
+ sender_id?: {
7
+ open_id?: string;
8
+ };
9
+ sender_type?: string;
10
+ };
11
+ message?: {
12
+ message_id?: string;
13
+ chat_id?: string;
14
+ chat_type?: "p2p" | "group";
15
+ message_type?: string;
16
+ content?: string;
17
+ create_time?: string;
18
+ mentions?: {
19
+ id?: {
20
+ open_id?: string;
21
+ };
22
+ }[];
23
+ };
24
+ }
25
+ export interface FeishuOptions {
26
+ appId: string;
27
+ appSecret: string;
28
+ /** The bot's own open_id — precise @mention detection in groups (FEISHU_BOT_OPEN_ID).
29
+ * Without it, group messages are never "addressing" (fail-closed: allowed-list members
30
+ * still produce inferred via the listedNotAddressing cell). */
31
+ botOpenId?: string;
32
+ }
33
+ export declare function feishuTriggerFromEvent(e: FeishuReceiveEvent, botOpenId?: string): Trigger | null;
34
+ export declare class FeishuSource implements Source {
35
+ private readonly opts;
36
+ /** Test seam: replaces the SDK's WebSocket subscription. */
37
+ private readonly subscribe?;
38
+ readonly kind: "feishu";
39
+ private readonly buffer;
40
+ private starting;
41
+ constructor(opts: FeishuOptions,
42
+ /** Test seam: replaces the SDK's WebSocket subscription. */
43
+ subscribe?: ((onEvent: (e: FeishuReceiveEvent) => void) => Promise<void>) | undefined);
44
+ /** Connect the long connection (idempotent, concurrency-safe). */
45
+ start(): Promise<void>;
46
+ private connect;
47
+ collect(from: SourceState, opts?: {
48
+ exclude?: ReadonlySet<string>;
49
+ }): Promise<{
50
+ triggers: Trigger[];
51
+ next: SourceState;
52
+ }>;
53
+ }
54
+ export type FeishuSender = (chatId: string, text: string) => Promise<{
55
+ messageId: string;
56
+ }>;
57
+ export declare class FeishuReplyChannel implements ReplyChannel {
58
+ private readonly send;
59
+ constructor(send: FeishuSender);
60
+ matches(threadId: string): boolean;
61
+ deliver(threadId: string, body: string): Promise<{
62
+ externalId: string;
63
+ }>;
64
+ }
65
+ /** Build the real sender (tenant token managed by the SDK). */
66
+ export declare function createFeishuSender(appId: string, appSecret: string): Promise<FeishuSender>;
package/dist/feishu.js ADDED
@@ -0,0 +1,112 @@
1
+ // Feishu channel (v0.8 M8-2, issue #45) — a self-built enterprise app over the official SDK's
2
+ // WebSocket long connection (no public callback URL needed). The push-based event stream is
3
+ // bridged onto the pull-based Source contract through an internal buffer; dedup is the engine's
4
+ // trigger-id exactly-once (`feishu:msg:<message_id>`). Replies go out via im/v1 messages.
5
+ // Pure mapping is separated from transport so it is unit-testable without an app.
6
+ const BUFFER_CAP = 1000;
7
+ export function feishuTriggerFromEvent(e, botOpenId) {
8
+ const msg = e.message;
9
+ if (!msg?.message_id || !msg.chat_id)
10
+ return null;
11
+ const text = extractText(msg.content, msg.message_type);
12
+ const addressing = msg.chat_type !== "group"
13
+ ? true // a DM is inherently addressed
14
+ : botOpenId
15
+ ? (msg.mentions ?? []).some((m) => m.id?.open_id === botOpenId)
16
+ : false;
17
+ return {
18
+ id: `feishu:msg:${msg.message_id}`,
19
+ source: "feishu",
20
+ scope: msg.chat_type === "group" ? "im_group" : "im_dm",
21
+ threadId: `feishu:chat/${msg.chat_id}`,
22
+ author: { login: e.sender?.sender_id?.open_id ?? "unknown", isBot: e.sender?.sender_type === "app" },
23
+ addressing,
24
+ body: text,
25
+ ts: msg.create_time ? new Date(Number(msg.create_time)).toISOString() : new Date().toISOString(),
26
+ };
27
+ }
28
+ function extractText(content, type) {
29
+ if (type !== "text" || !content)
30
+ return type ? `[${type}]` : "";
31
+ try {
32
+ return JSON.parse(content).text ?? "";
33
+ }
34
+ catch {
35
+ return "";
36
+ }
37
+ }
38
+ export class FeishuSource {
39
+ opts;
40
+ subscribe;
41
+ kind = "feishu";
42
+ buffer = [];
43
+ starting = null;
44
+ constructor(opts,
45
+ /** Test seam: replaces the SDK's WebSocket subscription. */
46
+ subscribe) {
47
+ this.opts = opts;
48
+ this.subscribe = subscribe;
49
+ }
50
+ /** Connect the long connection (idempotent, concurrency-safe). */
51
+ start() {
52
+ this.starting ??= this.connect();
53
+ return this.starting;
54
+ }
55
+ async connect() {
56
+ const onEvent = (e) => {
57
+ const t = feishuTriggerFromEvent(e, this.opts.botOpenId);
58
+ if (!t)
59
+ return;
60
+ if (this.buffer.length >= BUFFER_CAP)
61
+ this.buffer.shift(); // drop oldest, never grow unbounded
62
+ this.buffer.push(t);
63
+ };
64
+ if (this.subscribe) {
65
+ await this.subscribe(onEvent);
66
+ return;
67
+ }
68
+ const lark = await import("@larksuiteoapi/node-sdk");
69
+ const ws = new lark.WSClient({ appId: this.opts.appId, appSecret: this.opts.appSecret });
70
+ const dispatcher = new lark.EventDispatcher({}).register({
71
+ "im.message.receive_v1": async (data) => onEvent(data),
72
+ });
73
+ await ws.start({ eventDispatcher: dispatcher });
74
+ }
75
+ async collect(from, opts = {}) {
76
+ await this.start();
77
+ const triggers = this.buffer.splice(0).filter((t) => !opts.exclude?.has(t.id));
78
+ return { triggers, next: from }; // push source: replay safety is the engine's idempotence
79
+ }
80
+ }
81
+ export class FeishuReplyChannel {
82
+ send;
83
+ constructor(send) {
84
+ this.send = send;
85
+ }
86
+ matches(threadId) {
87
+ return threadId.startsWith("feishu:");
88
+ }
89
+ async deliver(threadId, body) {
90
+ const chatId = threadId.slice("feishu:chat/".length);
91
+ if (!chatId || chatId.includes("/"))
92
+ throw new Error(`cannot resolve chat id from thread ${threadId}`);
93
+ const { messageId } = await this.send(chatId, body);
94
+ return { externalId: `msg:${messageId}` };
95
+ }
96
+ }
97
+ /** Build the real sender (tenant token managed by the SDK). */
98
+ export async function createFeishuSender(appId, appSecret) {
99
+ const lark = await import("@larksuiteoapi/node-sdk");
100
+ const client = new lark.Client({ appId, appSecret });
101
+ return async (chatId, text) => {
102
+ const res = await client.im.message.create({
103
+ params: { receive_id_type: "chat_id" },
104
+ data: { receive_id: chatId, content: JSON.stringify({ text }), msg_type: "text" },
105
+ });
106
+ const messageId = res.data?.message_id;
107
+ if (!messageId)
108
+ throw new Error("feishu send returned no message_id");
109
+ return { messageId };
110
+ };
111
+ }
112
+ //# sourceMappingURL=feishu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu.js","sourceRoot":"","sources":["../src/feishu.ts"],"names":[],"mappings":"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"}
@@ -94,6 +94,12 @@ export declare class GitHubClient {
94
94
  }>;
95
95
  getPull(repo: string, number: number): Promise<GhPullDetail>;
96
96
  listReviews(repo: string, number: number): Promise<GhReview[]>;
97
+ /** Aggregated Checks-API state for a commit (v0.7-2 merge brake). Neutral/skipped count as pass. */
98
+ listCheckRuns(repo: string, sha: string): Promise<{
99
+ total: number;
100
+ failures: number;
101
+ pending: number;
102
+ }>;
97
103
  /** SHA-pinned merge: if the head moved since evaluation, GitHub rejects — we never merge unreviewed bytes. */
98
104
  mergePullRequest(repo: string, number: number, opts: {
99
105
  sha: string;
@@ -85,6 +85,15 @@ export class GitHubClient {
85
85
  listReviews(repo, number) {
86
86
  return this.request("GET", `/repos/${repo}/pulls/${number}/reviews`);
87
87
  }
88
+ /** Aggregated Checks-API state for a commit (v0.7-2 merge brake). Neutral/skipped count as pass. */
89
+ async listCheckRuns(repo, sha) {
90
+ const data = await this.request("GET", `/repos/${repo}/commits/${sha}/check-runs`);
91
+ return {
92
+ total: data.total_count,
93
+ failures: data.check_runs.filter((r) => ["failure", "timed_out", "cancelled", "action_required", "startup_failure"].includes(r.conclusion ?? "")).length,
94
+ pending: data.check_runs.filter((r) => r.status !== "completed").length,
95
+ };
96
+ }
88
97
  /** SHA-pinned merge: if the head moved since evaluation, GitHub rejects — we never merge unreviewed bytes. */
89
98
  mergePullRequest(repo, number, opts) {
90
99
  return this.request("PUT", `/repos/${repo}/pulls/${number}/merge`, opts);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,0FAA0F;AA6D1F,MAAM,OAAO,YAAY;IACN,SAAS,CAAe;IACxB,OAAO,CAAS;IAEjC,YAAY,OAAsG,EAAE;QAClH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,wBAAwB,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAClD,CAAC;IAEgB,KAAK,CAAS;IACd,aAAa,CAAuB;IAErD,0FAA0F;IAC1F,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IACjF,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,KAAK,GAAG,IAAI;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YACzD,MAAM;YACN,OAAO,EAAE;gBACP,MAAM,EAAE,6BAA6B;gBACrC,sBAAsB,EAAE,YAAY;gBACpC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtE;YACD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtD,oFAAoF;YACpF,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,iFAAiF;YACjF,MAAM,IAAI,GACR,GAAG,CAAC,MAAM,KAAK,GAAG;gBAChB,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC9C,CAAC,CAAC,sDAAsD;oBACxD,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG;wBAClB,CAAC,CAAC,sDAAsD;wBACxD,CAAC,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,cAAc,MAAM,IAAI,IAAI,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;IACjC,CAAC;IAED,kFAAkF;IAC1E,IAAI,CAAI,IAAY,EAAE,IAAY;QACxC,OAAO,IAAI,CAAC,OAAO,CAAM,KAAK,EAAE,UAAU,IAAI,GAAG,IAAI,oDAAoD,CAAC,CAAC;IAC7G,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,mDAAmD;IACnD,gBAAgB,CAAC,IAAY,EAAE,WAAmB,EAAE,IAAY;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAiB,MAAM,EAAE,UAAU,IAAI,WAAW,WAAW,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzG,CAAC;IAEO,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvD,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAA6B,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,iEAAiE;IACjE,iBAAiB,CAAC,IAAY,EAAE,EAA+D;QAC7F,OAAO,IAAI,CAAC,OAAO,CAAuC,MAAM,EAAE,UAAU,IAAI,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,MAAc;QAClC,OAAO,IAAI,CAAC,OAAO,CAAe,KAAK,EAAE,UAAU,IAAI,UAAU,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO,IAAI,CAAC,OAAO,CAAa,KAAK,EAAE,UAAU,IAAI,UAAU,MAAM,UAAU,CAAC,CAAC;IACnF,CAAC;IAED,8GAA8G;IAC9G,gBAAgB,CAAC,IAAY,EAAE,MAAc,EAAE,IAAkE;QAC/G,OAAO,IAAI,CAAC,OAAO,CAAoC,KAAK,EAAE,UAAU,IAAI,UAAU,MAAM,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9G,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,MAAc;QACvC,OAAO,IAAI,CAAC,OAAO,CAAU,QAAQ,EAAE,UAAU,IAAI,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/github/client.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Trigger } from "../domain.js";
2
+ import type { Source, SourceState } from "../source.js";
2
3
  import { GitHubClient } from "./client.js";
3
- import type { SourceState, StateStore } from "./state.js";
4
+ import type { StateStore } from "./state.js";
4
5
  export interface GitHubSourceOptions {
5
6
  /** owner/repo */
6
7
  repo: string;
@@ -12,8 +13,9 @@ export interface GitHubSourceOptions {
12
13
  }
13
14
  /** True for App accounts and `[bot]` logins — bots cap at inferred strength in the gate. */
14
15
  export declare function isBotActor(login: string, type: string): boolean;
15
- export declare class GitHubSource {
16
+ export declare class GitHubSource implements Source {
16
17
  private readonly opts;
18
+ readonly kind: "github";
17
19
  constructor(opts: GitHubSourceOptions);
18
20
  /**
19
21
  * Pure collection: compute triggers newer than `from` and the next state, persisting nothing.
@@ -17,6 +17,7 @@ function issueNumberFromUrl(url) {
17
17
  }
18
18
  export class GitHubSource {
19
19
  opts;
20
+ kind = "github";
20
21
  constructor(opts) {
21
22
  this.opts = opts;
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/github/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/github/source.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
+ import type { SourceState } from "../source.js";
1
2
  export type Feed = "issue" | "issue_comment" | "pr" | "review_comment";
2
- export interface SourceState {
3
- /** Max item id already taken per feed; 0 = never polled. Item ids are increasing ints. */
4
- positions: Record<Feed, number>;
5
- }
3
+ export type { SourceState } from "../source.js";
6
4
  export interface StateStore {
7
5
  load(): SourceState;
8
6
  save(state: SourceState): void;
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/github/state.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,iGAAiG;AACjG,mGAAmG;AACnG,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAc1C,MAAM,OAAO,eAAe;IACT,IAAI,CAAS;IAE9B,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAC7F,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAgB,CAAC;YACvE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/github/state.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,iGAAiG;AACjG,mGAAmG;AACnG,8EAA8E;AAE9E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAY1C,MAAM,OAAO,eAAe;IACT,IAAI,CAAS;IAE9B,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;QAC/F,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAgB,CAAC;YACvE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAkB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpF,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB;IAChD,CAAC;CACF"}
package/dist/merge.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { MergePolicy, Policy } from "./domain.js";
2
2
  import type { Engine } from "./engine.js";
3
3
  import type { GitHubClient, GhPullDetail, GhReview } from "./github/client.js";
4
+ import type { ReplyChannel } from "./source.js";
4
5
  export interface MergeCheck {
5
6
  ok: boolean;
6
7
  reasons: string[];
@@ -8,13 +9,19 @@ export interface MergeCheck {
8
9
  approvedBy?: string;
9
10
  changedLines: number;
10
11
  }
12
+ /** Aggregated CI state for the head commit, fetched by the sweep (evaluateMerge stays pure). */
13
+ export interface CiState {
14
+ total: number;
15
+ failures: number;
16
+ pending: number;
17
+ }
11
18
  /**
12
19
  * Pure evaluation (unit-tested like the gate): would this PR merge under this policy?
13
- * Structural first (draft / conflict / branch / size), then review stances — a reviewer's
20
+ * Structural first (draft / conflict / branch / size / CI), then review stances — a reviewer's
14
21
  * latest APPROVED | CHANGES_REQUESTED | DISMISSED review is their effective stance
15
22
  * (COMMENTED/PENDING don't move it; a dismissal clears it).
16
23
  */
17
- export declare function evaluateMerge(pr: GhPullDetail, reviews: GhReview[], policy: MergePolicy, allowedList: string[]): MergeCheck;
24
+ export declare function evaluateMerge(pr: GhPullDetail, reviews: GhReview[], policy: MergePolicy, allowedList: string[], ci?: CiState): MergeCheck;
18
25
  export interface MergeSweepLine {
19
26
  pr: number;
20
27
  action: "merged" | "waiting" | "closed" | "already-merged";
@@ -25,4 +32,4 @@ export interface MergeSweepLine {
25
32
  * merge only zero-reason PRs, post a clipped merge reply through the outbox, prune the branch.
26
33
  * Per-delivery errors degrade to "waiting" — the next cycle retries (fail-closed).
27
34
  */
28
- export declare function runMergeSweep(engine: Engine, client: GitHubClient, repo: string, policy: Policy, log?: (l: string) => void): Promise<MergeSweepLine[]>;
35
+ export declare function runMergeSweep(engine: Engine, client: GitHubClient, repo: string, policy: Policy, channels?: ReplyChannel[], log?: (l: string) => void): Promise<MergeSweepLine[]>;
package/dist/merge.js CHANGED
@@ -4,18 +4,18 @@
4
4
  // exact SHA that was approved — if the head moved, GitHub rejects and the next cycle re-evaluates.
5
5
  import { clipReply } from "./clip.js";
6
6
  import { mergePolicyOf } from "./domain.js";
7
- import { drainReplyEffects } from "./work.js";
7
+ import { GitHubReplyChannel, drainReplyEffects } from "./work.js";
8
8
  const TICKET_BRANCH = /^dsh\/ticket-\d+$/;
9
9
  function isBotReview(r) {
10
10
  return !r.user || r.user.type === "Bot" || r.user.login.endsWith("[bot]");
11
11
  }
12
12
  /**
13
13
  * Pure evaluation (unit-tested like the gate): would this PR merge under this policy?
14
- * Structural first (draft / conflict / branch / size), then review stances — a reviewer's
14
+ * Structural first (draft / conflict / branch / size / CI), then review stances — a reviewer's
15
15
  * latest APPROVED | CHANGES_REQUESTED | DISMISSED review is their effective stance
16
16
  * (COMMENTED/PENDING don't move it; a dismissal clears it).
17
17
  */
18
- export function evaluateMerge(pr, reviews, policy, allowedList) {
18
+ export function evaluateMerge(pr, reviews, policy, allowedList, ci) {
19
19
  const reasons = [];
20
20
  const changedLines = pr.additions + pr.deletions;
21
21
  let approvedBy;
@@ -31,6 +31,16 @@ export function evaluateMerge(pr, reviews, policy, allowedList) {
31
31
  reasons.push(`not a ticket branch: ${pr.head.ref}`);
32
32
  if (changedLines > policy.maxChangedLines)
33
33
  reasons.push(`±${changedLines} lines > cap ${policy.maxChangedLines}`);
34
+ if (policy.requireCi) {
35
+ if (!ci)
36
+ reasons.push("CI state unavailable");
37
+ else if (ci.total === 0)
38
+ reasons.push(`no CI reported on head ${pr.head.sha.slice(0, 7)}`);
39
+ else if (ci.failures > 0)
40
+ reasons.push(`CI failing on head (${ci.failures} check${ci.failures === 1 ? "" : "s"})`);
41
+ else if (ci.pending > 0)
42
+ reasons.push(`CI still running (${ci.pending} check${ci.pending === 1 ? "" : "s"})`);
43
+ }
34
44
  if (reasons.length === 0) {
35
45
  const allowed = new Set(allowedList.map((s) => s.toLowerCase()));
36
46
  const stance = new Map();
@@ -72,7 +82,7 @@ export function evaluateMerge(pr, reviews, policy, allowedList) {
72
82
  * merge only zero-reason PRs, post a clipped merge reply through the outbox, prune the branch.
73
83
  * Per-delivery errors degrade to "waiting" — the next cycle retries (fail-closed).
74
84
  */
75
- export async function runMergeSweep(engine, client, repo, policy, log = () => { }) {
85
+ export async function runMergeSweep(engine, client, repo, policy, channels = [], log = () => { }) {
76
86
  const merge = mergePolicyOf(policy);
77
87
  if (!merge.enabled)
78
88
  return [];
@@ -92,7 +102,8 @@ export async function runMergeSweep(engine, client, repo, policy, log = () => {
92
102
  continue;
93
103
  }
94
104
  const reviews = await client.listReviews(repo, d.prNumber);
95
- const check = evaluateMerge(pr, reviews, merge, policy.allowedList);
105
+ const ci = merge.requireCi ? await client.listCheckRuns(repo, pr.head.sha) : undefined;
106
+ const check = evaluateMerge(pr, reviews, merge, policy.allowedList, ci);
96
107
  if (!check.ok) {
97
108
  out.push({ pr: d.prNumber, action: "waiting", reasons: check.reasons });
98
109
  log(`#${d.prNumber} holds: ${check.reasons.join("; ")}`);
@@ -122,8 +133,10 @@ export async function runMergeSweep(engine, client, repo, policy, log = () => {
122
133
  log(`#${d.prNumber} sweep error: ${e instanceof Error ? e.message : e}`);
123
134
  }
124
135
  }
125
- if (out.length > 0)
126
- await drainReplyEffects(engine, client, repo);
136
+ if (out.length > 0) {
137
+ // Merge receipts go to the ticket's thread — which may be an IM thread (v0.8 routing).
138
+ await drainReplyEffects(engine, channels.length > 0 ? channels : [new GitHubReplyChannel(client, repo)]);
139
+ }
127
140
  return out;
128
141
  }
129
142
  //# sourceMappingURL=merge.js.map
package/dist/merge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"merge.js","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"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"}
package/dist/panel.html CHANGED
@@ -117,8 +117,10 @@ async function render() {
117
117
  .map(st => p.tickets.filter(t => t.stage === st).length)
118
118
  .map((n, i) => n > 0 ? `<span class="quiet">${['queued','working','needs-person','ended'][i]}:${n}</span>` : '')
119
119
  .filter(Boolean).join(' · ');
120
+ const fu = p.tickets.reduce((n, t) => n + (t.followUps || 0), 0);
121
+ const fuTag = fu > 0 ? ` · <span class="quiet">follow-ups:${fu}</span>` : '';
120
122
  const dels = p.deliveries.map(d => `PR #${d.prNumber} ${d.state}`).join(' · ');
121
- return `<div class="card"><b>${esc(who)}</b> — ${counts || 'no open work'}${dels ? `<div class="quiet">${dels}</div>` : ''}</div>`;
123
+ return `<div class="card"><b>${esc(who)}</b> — ${counts || 'no open work'}${fuTag}${dels ? `<div class="quiet">${dels}</div>` : ''}</div>`;
122
124
  }).join('');
123
125
 
124
126
  const deliveries = s.deliveries || [];
@@ -0,0 +1,57 @@
1
+ import type { Trigger } from "./domain.js";
2
+ import type { ReplyChannel, Source, SourceState } from "./source.js";
3
+ /** The Events API `message` body (fields we consume). */
4
+ export interface SlackMessageEvent {
5
+ type?: string;
6
+ subtype?: string;
7
+ channel?: string;
8
+ channel_type?: "channel" | "group" | "im" | "mpim";
9
+ user?: string;
10
+ bot_id?: string;
11
+ text?: string;
12
+ ts?: string;
13
+ }
14
+ export interface SlackOptions {
15
+ /** xapp-… token (Socket Mode). */
16
+ appToken: string;
17
+ /** xoxb-… token (Web API). */
18
+ botToken: string;
19
+ /** The bot's own user id — defaults to auth.test discovery. */
20
+ botUserId?: string;
21
+ }
22
+ export declare function slackTriggerFromEvent(e: SlackMessageEvent, botUserId?: string): Trigger | null;
23
+ export declare class SlackSource implements Source {
24
+ private readonly opts;
25
+ /** Test seam: replaces the Socket Mode subscription. */
26
+ private readonly subscribe?;
27
+ readonly kind: "slack";
28
+ private readonly buffer;
29
+ private starting;
30
+ constructor(opts: SlackOptions,
31
+ /** Test seam: replaces the Socket Mode subscription. */
32
+ subscribe?: ((onEvent: (e: SlackMessageEvent) => void) => Promise<void>) | undefined);
33
+ start(): Promise<void>;
34
+ private connect;
35
+ collect(from: SourceState, opts?: {
36
+ exclude?: ReadonlySet<string>;
37
+ }): Promise<{
38
+ triggers: Trigger[];
39
+ next: SourceState;
40
+ }>;
41
+ }
42
+ export type SlackSender = (channel: string, text: string) => Promise<{
43
+ ts: string;
44
+ }>;
45
+ export declare class SlackReplyChannel implements ReplyChannel {
46
+ private readonly send;
47
+ constructor(send: SlackSender);
48
+ matches(threadId: string): boolean;
49
+ deliver(threadId: string, body: string): Promise<{
50
+ externalId: string;
51
+ }>;
52
+ }
53
+ /** Build the real sender; also resolves the bot's own user id (auth.test) for @mention detection. */
54
+ export declare function createSlackSender(botToken: string): Promise<{
55
+ send: SlackSender;
56
+ botUserId?: string;
57
+ }>;