@fdcn/sourcefed 0.2.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.
- package/LICENSE +21 -0
- package/README.md +51 -0
- package/dist/chunk-B7T6IZYS.js +5155 -0
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-NGJ6F5ST.js +766 -0
- package/dist/cli.js +30491 -0
- package/dist/core-storage.js +13 -0
- package/dist/core.js +643 -0
- package/dist/daemon.js +5190 -0
- package/dist/data/core/SKILL.md +71 -0
- package/dist/data/core/references/commands.md +75 -0
- package/dist/data/sourcefed/SKILL.md +31 -0
- package/dist/guidance.md +71 -0
- package/dist/mcp.js +4800 -0
- package/dist/opencode.js +12646 -0
- package/dist/pi.js +249 -0
- package/dist/tui-compiled.mjs +4096 -0
- package/dist.dts/adapters/opencode/bridge.d.ts +20 -0
- package/dist.dts/adapters/opencode/index.d.ts +3 -0
- package/dist.dts/adapters/opencode/tool-result.d.ts +1 -0
- package/dist.dts/adapters/opencode/tools/monitor_create.d.ts +3 -0
- package/dist.dts/adapters/opencode/tools/monitor_list.d.ts +3 -0
- package/dist.dts/adapters/opencode/tools/monitor_start.d.ts +3 -0
- package/dist.dts/adapters/opencode/tools/monitor_status.d.ts +3 -0
- package/dist.dts/adapters/opencode/tools/monitor_stop.d.ts +3 -0
- package/dist.dts/adapters/opencode/tui/plugin.d.ts +3 -0
- package/dist.dts/adapters/opencode/tui/sidebar.d.ts +13 -0
- package/dist.dts/adapters/opencode/tui.d.ts +7 -0
- package/dist.dts/adapters/pi/src/dialog.d.ts +12 -0
- package/dist.dts/adapters/pi/src/index.d.ts +2 -0
- package/dist.dts/index.d.ts +1 -0
- package/dist.dts/packages/cli/src/index.d.ts +2 -0
- package/dist.dts/packages/cli/src/skills/command.d.ts +1 -0
- package/dist.dts/packages/cli/src/skills/discovery.d.ts +7 -0
- package/dist.dts/packages/cli/src/skills/frontmatter.d.ts +5 -0
- package/dist.dts/packages/cli/src/skills/index.d.ts +1 -0
- package/dist.dts/packages/core/src/events.d.ts +24 -0
- package/dist.dts/packages/core/src/events.test.d.ts +1 -0
- package/dist.dts/packages/core/src/index.d.ts +9 -0
- package/dist.dts/packages/core/src/monitors/index.d.ts +6 -0
- package/dist.dts/packages/core/src/monitors/monitor.d.ts +26 -0
- package/dist.dts/packages/core/src/monitors/poll/index.d.ts +1 -0
- package/dist.dts/packages/core/src/monitors/poll/monitor.d.ts +12 -0
- package/dist.dts/packages/core/src/monitors/poll/types/index.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/poll/types/poll-monitor-options.d.ts +6 -0
- package/dist.dts/packages/core/src/monitors/poll/types/poll-runner.d.ts +3 -0
- package/dist.dts/packages/core/src/monitors/poll/types/routed-event-cursor.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/poll/utils/event-delivery-id.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/poll/utils/tick.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/schema.d.ts +37 -0
- package/dist.dts/packages/core/src/monitors/service.d.ts +35 -0
- package/dist.dts/packages/core/src/monitors/service.test.d.ts +1 -0
- package/dist.dts/packages/core/src/monitors/transport.test.d.ts +1 -0
- package/dist.dts/packages/core/src/monitors/types/index.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/types/monitor-record.d.ts +3 -0
- package/dist.dts/packages/core/src/monitors/types/monitor-registry.d.ts +3 -0
- package/dist.dts/packages/core/src/monitors/utils/monitor-identity.d.ts +5 -0
- package/dist.dts/packages/core/src/monitors/utils/monitor-identity.test.d.ts +1 -0
- package/dist.dts/packages/core/src/monitors/webhook/index.d.ts +1 -0
- package/dist.dts/packages/core/src/monitors/webhook/monitor.d.ts +24 -0
- package/dist.dts/packages/core/src/monitors/webhook/types/index.d.ts +3 -0
- package/dist.dts/packages/core/src/monitors/webhook/types/pending-webhook-event.d.ts +19 -0
- package/dist.dts/packages/core/src/monitors/webhook/types/webhook-monitor-options.d.ts +13 -0
- package/dist.dts/packages/core/src/monitors/webhook/utils/constants.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/webhook/utils/deliver-webhook.d.ts +3 -0
- package/dist.dts/packages/core/src/monitors/webhook/utils/handle-webhook.d.ts +2 -0
- package/dist.dts/packages/core/src/monitors/webhook/utils/handle-webhook.test.d.ts +1 -0
- package/dist.dts/packages/core/src/monitors/webhook/utils/heartbeat-webhooks.d.ts +3 -0
- package/dist.dts/packages/core/src/runtime.d.ts +23 -0
- package/dist.dts/packages/core/src/runtime.test.d.ts +1 -0
- package/dist.dts/packages/core/src/sources/index.d.ts +1 -0
- package/dist.dts/packages/core/src/sources/schema.d.ts +4 -0
- package/dist.dts/packages/core/src/sources/types/index.d.ts +3 -0
- package/dist.dts/packages/core/src/sources/types/monitor-source.d.ts +3 -0
- package/dist.dts/packages/core/src/sources/types/source-input.d.ts +4 -0
- package/dist.dts/packages/core/src/sources/types/source-registry.d.ts +2 -0
- package/dist.dts/packages/core/src/storage/in-memory-monitor-store.d.ts +8 -0
- package/dist.dts/packages/core/src/storage/index.d.ts +2 -0
- package/dist.dts/packages/core/src/storage/json.d.ts +30 -0
- package/dist.dts/packages/core/src/storage/json.test.d.ts +1 -0
- package/dist.dts/packages/core/src/types/delivery.d.ts +1 -0
- package/dist.dts/packages/core/src/types/event-sink.d.ts +12 -0
- package/dist.dts/packages/core/src/types/index.d.ts +11 -0
- package/dist.dts/packages/core/src/types/monitor-context.d.ts +10 -0
- package/dist.dts/packages/core/src/types/monitor-create-input.d.ts +8 -0
- package/dist.dts/packages/core/src/types/monitor-event-queue.d.ts +18 -0
- package/dist.dts/packages/core/src/types/monitor-event.d.ts +10 -0
- package/dist.dts/packages/core/src/types/monitor-options.d.ts +7 -0
- package/dist.dts/packages/core/src/types/monitor-store.d.ts +6 -0
- package/dist.dts/packages/core/src/types/monitor-target.d.ts +4 -0
- package/dist.dts/packages/core/src/types/source-event.d.ts +9 -0
- package/dist.dts/packages/core/src/types/source-poll-result.d.ts +6 -0
- package/dist.dts/packages/core/src/utils/event-to-text.d.ts +2 -0
- package/dist.dts/packages/core/src/utils/to-monitor-event.d.ts +3 -0
- package/dist.dts/packages/daemon/src/client.d.ts +2 -0
- package/dist.dts/packages/daemon/src/client.test.d.ts +1 -0
- package/dist.dts/packages/daemon/src/daemon.d.ts +36 -0
- package/dist.dts/packages/daemon/src/daemon.test.d.ts +1 -0
- package/dist.dts/packages/daemon/src/dispatch.d.ts +2 -0
- package/dist.dts/packages/daemon/src/http.d.ts +5 -0
- package/dist.dts/packages/daemon/src/index.d.ts +8 -0
- package/dist.dts/packages/daemon/src/registry.d.ts +14 -0
- package/dist.dts/packages/daemon/src/types/client.d.ts +21 -0
- package/dist.dts/packages/daemon/src/types/daemon.d.ts +58 -0
- package/dist.dts/packages/daemon/src/types/index.d.ts +3 -0
- package/dist.dts/packages/daemon/src/types/protocol.d.ts +21 -0
- package/dist.dts/packages/daemon/src/utils/env.d.ts +1 -0
- package/dist.dts/packages/daemon/src/utils/http-server.d.ts +10 -0
- package/dist.dts/packages/daemon/src/utils/index.d.ts +6 -0
- package/dist.dts/packages/daemon/src/utils/request-router.d.ts +11 -0
- package/dist.dts/packages/daemon/src/utils/sink.d.ts +13 -0
- package/dist.dts/packages/daemon/src/utils/spawn.d.ts +19 -0
- package/dist.dts/packages/daemon/src/utils/target.d.ts +4 -0
- package/dist.dts/packages/mcp/src/index.d.ts +2 -0
- package/dist.dts/packages/mcp/src/server.d.ts +14 -0
- package/dist.dts/packages/mcp/src/server.test.d.ts +1 -0
- package/dist.dts/packages/mcp/src/uris.d.ts +3 -0
- package/dist.dts/packages/sourcefed/src/server.d.ts +7 -0
- package/dist.dts/providers/github/src/api/client.d.ts +3 -0
- package/dist.dts/providers/github/src/api/comments.d.ts +1 -0
- package/dist.dts/providers/github/src/api/github-api.test.d.ts +1 -0
- package/dist.dts/providers/github/src/api/index.d.ts +4 -0
- package/dist.dts/providers/github/src/api/logs.d.ts +5 -0
- package/dist.dts/providers/github/src/api/pr.d.ts +8 -0
- package/dist.dts/providers/github/src/github.test.d.ts +1 -0
- package/dist.dts/providers/github/src/index.d.ts +2 -0
- package/dist.dts/providers/github/src/monitor.d.ts +15 -0
- package/dist.dts/providers/github/src/poll/index.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/monitor.d.ts +3 -0
- package/dist.dts/providers/github/src/poll/utils/append-comments.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/utils/append-github-ci-event.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/utils/append-github-conflict-event.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/utils/append-github-reviews.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/utils/append-github-state-event.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/utils/ci-failure-detail.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/clean-ci-log.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/confirm-still-failing.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/empty-cursor.d.ts +2 -0
- package/dist.dts/providers/github/src/poll/utils/failure-run-ids.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/failure-run-log.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/format-failed-check.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/index.d.ts +1 -0
- package/dist.dts/providers/github/src/poll/utils/poll-github.d.ts +6 -0
- package/dist.dts/providers/github/src/poll/utils/poll-helpers.test.d.ts +1 -0
- package/dist.dts/providers/github/src/schema.d.ts +17 -0
- package/dist.dts/providers/github/src/types/cursor.d.ts +11 -0
- package/dist.dts/providers/github/src/types/event.d.ts +11 -0
- package/dist.dts/providers/github/src/types/index.d.ts +3 -0
- package/dist.dts/providers/github/src/types/source-record.d.ts +5 -0
- package/dist.dts/providers/github/src/webhook/index.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/monitor.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/types/context.d.ts +7 -0
- package/dist.dts/providers/github/src/webhook/types/event-handler.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/types/event-shape.d.ts +7 -0
- package/dist.dts/providers/github/src/webhook/types/index.d.ts +1 -0
- package/dist.dts/providers/github/src/webhook/utils/fallback-github-event.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/github-event-handlers.d.ts +2 -0
- package/dist.dts/providers/github/src/webhook/utils/index.d.ts +2 -0
- package/dist.dts/providers/github/src/webhook/utils/parse-check-run.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/parse-check-suite.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/parse-github-comment.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/parse-github-webhook.d.ts +2 -0
- package/dist.dts/providers/github/src/webhook/utils/parse-pull-request-review.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/parse-pull-request.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/pull-request-number.d.ts +1 -0
- package/dist.dts/providers/github/src/webhook/utils/update-github-cursor.d.ts +3 -0
- package/dist.dts/providers/github/src/webhook/utils/verify-github-webhook.d.ts +1 -0
- package/dist.dts/providers/github/src/webhook/utils/verify-hmac.d.ts +1 -0
- package/dist.dts/providers/jira/src/index.d.ts +2 -0
- package/dist.dts/providers/jira/src/monitor.d.ts +14 -0
- package/dist.dts/providers/jira/src/poll/index.d.ts +2 -0
- package/dist.dts/providers/jira/src/poll/monitor.d.ts +3 -0
- package/dist.dts/providers/jira/src/poll/utils/adf-text.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/append-jira-changelog.d.ts +2 -0
- package/dist.dts/providers/jira/src/poll/utils/append-jira-comments.d.ts +2 -0
- package/dist.dts/providers/jira/src/poll/utils/append-jira-description.d.ts +2 -0
- package/dist.dts/providers/jira/src/poll/utils/empty-cursor.d.ts +2 -0
- package/dist.dts/providers/jira/src/poll/utils/format-jira-changelog-item.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/index.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/is-terminal-status.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/jira-auth.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/jira-change-value.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/jira-changelog-event.d.ts +2 -0
- package/dist.dts/providers/jira/src/poll/utils/jira-fetch.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/meaningful-changelog-items.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/poll-helpers.test.d.ts +1 -0
- package/dist.dts/providers/jira/src/poll/utils/poll-jira.d.ts +6 -0
- package/dist.dts/providers/jira/src/schema.d.ts +10 -0
- package/dist.dts/providers/jira/src/types/cursor.d.ts +5 -0
- package/dist.dts/providers/jira/src/types/event.d.ts +11 -0
- package/dist.dts/providers/jira/src/types/index.d.ts +3 -0
- package/dist.dts/providers/jira/src/types/source-record.d.ts +4 -0
- package/dist.dts/providers/slack/src/index.d.ts +2 -0
- package/dist.dts/providers/slack/src/monitor.d.ts +15 -0
- package/dist.dts/providers/slack/src/poll/index.d.ts +2 -0
- package/dist.dts/providers/slack/src/poll/monitor.d.ts +3 -0
- package/dist.dts/providers/slack/src/poll/utils/index.d.ts +2 -0
- package/dist.dts/providers/slack/src/poll/utils/parse-slack-read-result.d.ts +5 -0
- package/dist.dts/providers/slack/src/poll/utils/poll-slack.d.ts +6 -0
- package/dist.dts/providers/slack/src/poll/utils/slack-api.d.ts +4 -0
- package/dist.dts/providers/slack/src/schema.d.ts +11 -0
- package/dist.dts/providers/slack/src/slack.test.d.ts +1 -0
- package/dist.dts/providers/slack/src/types/cursor.d.ts +5 -0
- package/dist.dts/providers/slack/src/types/event.d.ts +8 -0
- package/dist.dts/providers/slack/src/types/index.d.ts +4 -0
- package/dist.dts/providers/slack/src/types/message.d.ts +6 -0
- package/dist.dts/providers/slack/src/types/read-result.d.ts +10 -0
- package/dist.dts/providers/slack/src/types/source-record.d.ts +5 -0
- package/dist.dts/providers/slack/src/utils/index.d.ts +2 -0
- package/dist.dts/providers/slack/src/utils/message-at.d.ts +1 -0
- package/dist.dts/providers/slack/src/utils/message-timestamp.d.ts +1 -0
- package/dist.dts/providers/slack/src/webhook/index.d.ts +2 -0
- package/dist.dts/providers/slack/src/webhook/monitor.d.ts +3 -0
- package/dist.dts/providers/slack/src/webhook/utils/index.d.ts +3 -0
- package/dist.dts/providers/slack/src/webhook/utils/parse-slack-webhook.d.ts +2 -0
- package/dist.dts/providers/slack/src/webhook/utils/slack-signature.d.ts +1 -0
- package/dist.dts/providers/slack/src/webhook/utils/update-slack-cursor.d.ts +3 -0
- package/dist.dts/providers/slack/src/webhook/utils/valid-slack-signature.d.ts +1 -0
- package/dist.dts/tui.d.ts +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MonitorEvent } from "./monitor-event.js";
|
|
2
|
+
import type { MonitorTarget } from "./monitor-target.js";
|
|
3
|
+
import type { MonitorRecord } from "../monitors/types/monitor-record.js";
|
|
4
|
+
export type QueuedMonitorEvent = {
|
|
5
|
+
id: string;
|
|
6
|
+
monitorID: string;
|
|
7
|
+
target: MonitorTarget;
|
|
8
|
+
event: MonitorEvent;
|
|
9
|
+
queuedAt: string;
|
|
10
|
+
};
|
|
11
|
+
export interface MonitorEventQueue {
|
|
12
|
+
enqueue(input: {
|
|
13
|
+
monitor: MonitorRecord;
|
|
14
|
+
event: MonitorEvent;
|
|
15
|
+
}): Promise<QueuedMonitorEvent>;
|
|
16
|
+
read(target: MonitorTarget): Promise<QueuedMonitorEvent[]>;
|
|
17
|
+
acknowledge(target: MonitorTarget, eventIDs: string[]): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as v from "valibot";
|
|
2
|
+
import type { MonitorSource } from "#sourcefed/sources";
|
|
3
|
+
export type MonitorSchema<TSource extends MonitorSource> = v.BaseSchema<unknown, TSource, v.BaseIssue<unknown>>;
|
|
4
|
+
export type MonitorOptions<TSource extends MonitorSource> = {
|
|
5
|
+
type: TSource["type"];
|
|
6
|
+
schema: MonitorSchema<TSource>;
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { MonitorRuntime, type MonitorRecord, type MonitorTarget, type QueuedMonitorEvent } from "@fdcn/sourcefed/core";
|
|
2
|
+
import type { DaemonCreateInput, DaemonResult, LogEntryView, MonitorView, SourcefedDaemonOptions } from "./types";
|
|
3
|
+
export declare class SourcefedDaemon {
|
|
4
|
+
readonly runtime: MonitorRuntime;
|
|
5
|
+
private readonly store;
|
|
6
|
+
private readonly queue;
|
|
7
|
+
private readonly listeners;
|
|
8
|
+
private readonly observers;
|
|
9
|
+
private readonly received;
|
|
10
|
+
private readonly emitChains;
|
|
11
|
+
private readonly deliveryLog;
|
|
12
|
+
private releaseExclusive?;
|
|
13
|
+
private started;
|
|
14
|
+
constructor(options?: SourcefedDaemonOptions);
|
|
15
|
+
get service(): import("@fdcn/sourcefed/core").MonitorService;
|
|
16
|
+
get sourceTypes(): readonly string[];
|
|
17
|
+
start(): Promise<void>;
|
|
18
|
+
stop(): Promise<void>;
|
|
19
|
+
webhook(request: Request): Promise<Response>;
|
|
20
|
+
createMonitor(target: MonitorTarget, input: DaemonCreateInput): Promise<DaemonResult>;
|
|
21
|
+
listMonitors(target: MonitorTarget): Promise<DaemonResult>;
|
|
22
|
+
getMonitor(target: MonitorTarget, id: string): Promise<DaemonResult>;
|
|
23
|
+
stopMonitor(target: MonitorTarget, id: string): Promise<DaemonResult>;
|
|
24
|
+
startMonitor(target: MonitorTarget, id: string): Promise<DaemonResult>;
|
|
25
|
+
removeMonitor(target: MonitorTarget, id: string): Promise<DaemonResult>;
|
|
26
|
+
readEvents(target: MonitorTarget): Promise<QueuedMonitorEvent[]>;
|
|
27
|
+
readLogs(target: MonitorTarget): Promise<LogEntryView[]>;
|
|
28
|
+
acknowledgeEvents(target: MonitorTarget, eventIDs: string[]): Promise<DaemonResult>;
|
|
29
|
+
subscribe(target: MonitorTarget, onEvents: (events: QueuedMonitorEvent[]) => void): () => void;
|
|
30
|
+
observe(onEvent: (target: MonitorTarget) => void): () => void;
|
|
31
|
+
private appendLog;
|
|
32
|
+
private emit;
|
|
33
|
+
private deliver;
|
|
34
|
+
}
|
|
35
|
+
export declare function monitorView(monitor: MonitorRecord): MonitorView;
|
|
36
|
+
export declare function logEntryView(queued: QueuedMonitorEvent): LogEntryView;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { SourcefedDaemon, monitorView } from "./daemon.js";
|
|
2
|
+
export { SOURCE_TYPES } from "./registry.js";
|
|
3
|
+
export { connectDaemonClient } from "./client.js";
|
|
4
|
+
export { defaultDaemonUrl } from "./utils";
|
|
5
|
+
export { dispatchDaemonRequest } from "./dispatch.js";
|
|
6
|
+
export { handleDaemonHttpRequest } from "./http.js";
|
|
7
|
+
export { daemonCommand, daemonEnvironment, DEFAULT_DAEMON_URL, decodeTarget, encodeTarget, serveHttp, spawnLocalDaemon, type HttpServer, type HttpServerOptions } from "./utils";
|
|
8
|
+
export type { DaemonClient, DaemonClientOptions, DaemonCreateInput, DaemonEventFrame, DaemonFrame, DaemonRequest, DaemonResponse, DaemonResult, LogEntryView, MonitorView, SourcefedDaemonOptions, SpawnDaemonResult } from "./types";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Monitor, MonitorCreateInput, MonitorSource, SourceInput } from "@fdcn/sourcefed/core";
|
|
2
|
+
import { GithubMonitor } from "@fdcn/sourcefed/provider-github";
|
|
3
|
+
import { JiraMonitor } from "@fdcn/sourcefed/provider-jira";
|
|
4
|
+
import { SlackMonitor } from "@fdcn/sourcefed/provider-slack";
|
|
5
|
+
export declare const SOURCE_MAP: {
|
|
6
|
+
jira: JiraMonitor;
|
|
7
|
+
github: GithubMonitor;
|
|
8
|
+
slack: SlackMonitor;
|
|
9
|
+
};
|
|
10
|
+
export declare const SOURCE_TYPES: [string, ...string[]];
|
|
11
|
+
export declare function sourceDefinition(source: MonitorSource): Monitor<any>;
|
|
12
|
+
export declare function isSource(input: SourceInput): input is MonitorSource;
|
|
13
|
+
export declare function sourceForInput(type: MonitorSource["type"], input: MonitorCreateInput): SourceInput;
|
|
14
|
+
export declare function sourceForWebhookPath(pathname: string): Monitor<any> | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ChildProcess } from "node:child_process";
|
|
2
|
+
import type { MonitorTarget, QueuedMonitorEvent } from "@fdcn/sourcefed/core";
|
|
3
|
+
export type DaemonClientOptions = {
|
|
4
|
+
name: string;
|
|
5
|
+
url?: string;
|
|
6
|
+
token?: string;
|
|
7
|
+
command?: string;
|
|
8
|
+
args?: string[];
|
|
9
|
+
env?: Record<string, string>;
|
|
10
|
+
};
|
|
11
|
+
export interface DaemonClient {
|
|
12
|
+
request(method: string, params?: Record<string, unknown>): Promise<unknown>;
|
|
13
|
+
subscribe(target: MonitorTarget, onEvents: (events: QueuedMonitorEvent[]) => Promise<void>): Promise<{
|
|
14
|
+
close(): Promise<void>;
|
|
15
|
+
}>;
|
|
16
|
+
close(): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export type SpawnDaemonResult = {
|
|
19
|
+
url: string;
|
|
20
|
+
proc?: ChildProcess;
|
|
21
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { MonitorEventQueue, MonitorRecord, MonitorStore, QueuedMonitorEvent } from "@fdcn/sourcefed/core";
|
|
2
|
+
export type DaemonCreateInput = {
|
|
3
|
+
name: string;
|
|
4
|
+
sourceType: string;
|
|
5
|
+
issueKey?: string;
|
|
6
|
+
repo?: string;
|
|
7
|
+
prNumber?: number;
|
|
8
|
+
channelId?: string;
|
|
9
|
+
threadTs?: string;
|
|
10
|
+
threadUrl?: string;
|
|
11
|
+
pollIntervalSec?: number;
|
|
12
|
+
};
|
|
13
|
+
export type SourcefedDaemonOptions = {
|
|
14
|
+
store?: MonitorStore;
|
|
15
|
+
eventQueue?: MonitorEventQueue;
|
|
16
|
+
stateDir?: string;
|
|
17
|
+
pollLoopSec?: number;
|
|
18
|
+
};
|
|
19
|
+
export type MonitorView = {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
source: MonitorRecord["source"];
|
|
23
|
+
target: MonitorRecord["target"];
|
|
24
|
+
delivery: MonitorRecord["delivery"];
|
|
25
|
+
pollIntervalSec: number;
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
icon: string;
|
|
30
|
+
label: string;
|
|
31
|
+
detail: string;
|
|
32
|
+
describe: string;
|
|
33
|
+
unresponsive: boolean;
|
|
34
|
+
};
|
|
35
|
+
export type LogEntryView = {
|
|
36
|
+
id: string;
|
|
37
|
+
monitorID: string;
|
|
38
|
+
at: string;
|
|
39
|
+
kind: string;
|
|
40
|
+
summary: string;
|
|
41
|
+
body?: string;
|
|
42
|
+
actionable: boolean;
|
|
43
|
+
icon: string;
|
|
44
|
+
describe: string;
|
|
45
|
+
};
|
|
46
|
+
export type DaemonResult = {
|
|
47
|
+
ok: true;
|
|
48
|
+
created?: boolean;
|
|
49
|
+
monitor?: MonitorView;
|
|
50
|
+
monitors?: MonitorView[];
|
|
51
|
+
events?: QueuedMonitorEvent[];
|
|
52
|
+
logs?: LogEntryView[];
|
|
53
|
+
acknowledged?: string[];
|
|
54
|
+
removed?: boolean;
|
|
55
|
+
} | {
|
|
56
|
+
ok: false;
|
|
57
|
+
error: string;
|
|
58
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { DaemonCreateInput, DaemonResult, LogEntryView, MonitorView, SourcefedDaemonOptions } from "./daemon.js";
|
|
2
|
+
export type { DaemonClient, DaemonClientOptions, SpawnDaemonResult } from "./client.js";
|
|
3
|
+
export type { DaemonEventFrame, DaemonFrame, DaemonRequest, DaemonResponse } from "./protocol.js";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MonitorTarget, QueuedMonitorEvent } from "@fdcn/sourcefed/core";
|
|
2
|
+
export type DaemonRequest = {
|
|
3
|
+
id?: number;
|
|
4
|
+
method: string;
|
|
5
|
+
params?: Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
export type DaemonResponse = {
|
|
8
|
+
id?: number;
|
|
9
|
+
result?: unknown;
|
|
10
|
+
error?: string;
|
|
11
|
+
};
|
|
12
|
+
export type DaemonEventFrame = {
|
|
13
|
+
type: "event";
|
|
14
|
+
target: MonitorTarget;
|
|
15
|
+
events: QueuedMonitorEvent[];
|
|
16
|
+
};
|
|
17
|
+
export type DaemonFrame = DaemonResponse | DaemonEventFrame | {
|
|
18
|
+
type: "subscribed";
|
|
19
|
+
target: MonitorTarget;
|
|
20
|
+
};
|
|
21
|
+
export declare function parseDaemonFrame(line: string): DaemonFrame | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function daemonEnvironment(host?: string): Record<string, string>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type HttpServerOptions = {
|
|
2
|
+
hostname: string;
|
|
3
|
+
port: number;
|
|
4
|
+
handler: (request: Request) => Promise<Response> | Response;
|
|
5
|
+
};
|
|
6
|
+
export type HttpServer = {
|
|
7
|
+
port: number;
|
|
8
|
+
stop(): Promise<void>;
|
|
9
|
+
};
|
|
10
|
+
export declare function serveHttp(options: HttpServerOptions): Promise<HttpServer>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { daemonEnvironment } from "./env.js";
|
|
2
|
+
export { serveHttp, type HttpServer, type HttpServerOptions } from "./http-server.js";
|
|
3
|
+
export { RequestRouter } from "./request-router.js";
|
|
4
|
+
export { DEFAULT_DAEMON_URL, daemonCommand, defaultDaemonUrl, sleep, spawnLocalDaemon, withTimeout } from "./spawn.js";
|
|
5
|
+
export { NotifyingEventSink } from "./sink.js";
|
|
6
|
+
export { decodeTarget, encodeTarget, targetKey } from "./target.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class RequestRouter {
|
|
2
|
+
private readonly pending;
|
|
3
|
+
private cursor;
|
|
4
|
+
nextID(): number;
|
|
5
|
+
register(id: number): Promise<unknown>;
|
|
6
|
+
settle(id: number, frame: {
|
|
7
|
+
result?: unknown;
|
|
8
|
+
error?: string;
|
|
9
|
+
}): void;
|
|
10
|
+
rejectAll(error: Error): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MonitorEventQueue, MonitorEventSink, MonitorRecord, MonitorTarget } from "@fdcn/sourcefed/core";
|
|
2
|
+
export declare class NotifyingEventSink implements MonitorEventSink {
|
|
3
|
+
private readonly queue;
|
|
4
|
+
private readonly notify;
|
|
5
|
+
constructor(queue: MonitorEventQueue, notify: (target: MonitorTarget) => void);
|
|
6
|
+
deliver(input: {
|
|
7
|
+
monitor: MonitorRecord;
|
|
8
|
+
event: import("@fdcn/sourcefed/core").MonitorEvent;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
ok: boolean;
|
|
11
|
+
error?: string;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ChildProcess } from "node:child_process";
|
|
2
|
+
export declare const DEFAULT_DAEMON_URL = "http://127.0.0.1:18787";
|
|
3
|
+
export declare function defaultDaemonUrl(): string;
|
|
4
|
+
export declare function daemonCommand(cliEntryPath: string): {
|
|
5
|
+
command: string;
|
|
6
|
+
args: string[];
|
|
7
|
+
};
|
|
8
|
+
export declare function spawnLocalDaemon(options: {
|
|
9
|
+
command: string;
|
|
10
|
+
args: string[];
|
|
11
|
+
env?: Record<string, string>;
|
|
12
|
+
port?: number;
|
|
13
|
+
timeoutMs?: number;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
url: string;
|
|
16
|
+
proc?: ChildProcess;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function sleep(ms: number): Promise<void>;
|
|
19
|
+
export declare function withTimeout<T>(promise: Promise<T>, ms: number, message: string): Promise<T>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MonitorTarget } from "@fdcn/sourcefed/core";
|
|
2
|
+
export declare function encodeTarget(target: MonitorTarget): string;
|
|
3
|
+
export declare function decodeTarget(value: string): MonitorTarget | undefined;
|
|
4
|
+
export declare function targetKey(target: MonitorTarget): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createMcpHandler, McpServer } from "@modelcontextprotocol/server";
|
|
2
|
+
import type { SourcefedDaemon } from "@fdcn/sourcefed/daemon";
|
|
3
|
+
export type SourcefedMcp = {
|
|
4
|
+
runtime: SourcefedDaemon["runtime"];
|
|
5
|
+
handler: ReturnType<typeof createMcpHandler>;
|
|
6
|
+
close(): void;
|
|
7
|
+
};
|
|
8
|
+
export type SourcefedStdio = {
|
|
9
|
+
runtime: SourcefedDaemon["runtime"];
|
|
10
|
+
factory: () => McpServer;
|
|
11
|
+
close(): void;
|
|
12
|
+
};
|
|
13
|
+
export declare function createSourcefedMcp(daemon: SourcefedDaemon): SourcefedMcp;
|
|
14
|
+
export declare function createSourcefedStdio(daemon: SourcefedDaemon): SourcefedStdio;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function fetchGithubComments(path: string): Promise<any[] | undefined>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Monitor } from "@fdcn/sourcefed/core";
|
|
2
|
+
import type { MonitorCreateInput } from "@fdcn/sourcefed/core";
|
|
3
|
+
import type { GithubSourceRecord } from "./types";
|
|
4
|
+
import type { SourceInput } from "@fdcn/sourcefed/core";
|
|
5
|
+
export declare class GithubMonitor extends Monitor<GithubSourceRecord> {
|
|
6
|
+
readonly poll: import("@fdcn/sourcefed/core").PollMonitor<GithubSourceRecord>;
|
|
7
|
+
readonly webhook: import("@fdcn/sourcefed/core").WebhookMonitor<GithubSourceRecord>;
|
|
8
|
+
constructor();
|
|
9
|
+
readonly key: (source: GithubSourceRecord) => string;
|
|
10
|
+
readonly icon = "\uDB80\uDEA4";
|
|
11
|
+
readonly label: (source: GithubSourceRecord) => string;
|
|
12
|
+
readonly detail: (source: GithubSourceRecord) => string;
|
|
13
|
+
readonly describe: (source: GithubSourceRecord) => string;
|
|
14
|
+
build(input: MonitorCreateInput): SourceInput;
|
|
15
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { GithubCursor, GithubEvent } from "../../types";
|
|
2
|
+
export declare function appendComments(repo: string, prNumber: number, cursor: GithubCursor, events: GithubEvent[], comments: any[], idPrefix: string, historyPrimed: boolean, summary: (comment: any) => string, body: (comment: any) => string): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ciFailureDetail(repo: string, failed: any[]): Promise<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cleanCiLog(raw: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function confirmStillFailing(repo: string, prNumber: number, failed: any[]): Promise<any[]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function failureRunIds(failed: any[]): Set<string>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function failureRunLog(repo: string, runId: string): Promise<string | undefined>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function formatFailedCheck(check: any): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { pollGithub } from "./poll-github.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const GithubSourceSchema: v.ObjectSchema<{
|
|
3
|
+
readonly type: v.LiteralSchema<"github", undefined>;
|
|
4
|
+
readonly repo: v.StringSchema<undefined>;
|
|
5
|
+
readonly prNumber: v.NumberSchema<undefined>;
|
|
6
|
+
}, undefined>;
|
|
7
|
+
export declare const GithubCursorSchema: v.ObjectSchema<{
|
|
8
|
+
readonly reviewIds: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
9
|
+
readonly commentIds: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
10
|
+
readonly historyPrimed: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
|
|
11
|
+
readonly lineCommentsPrimed: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
|
|
12
|
+
readonly conversationCommentsPrimed: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
|
|
13
|
+
readonly ciState: v.StringSchema<undefined>;
|
|
14
|
+
readonly ciFailureState: v.OptionalSchema<v.StringSchema<undefined>, "">;
|
|
15
|
+
readonly mergeable: v.StringSchema<undefined>;
|
|
16
|
+
readonly prState: v.StringSchema<undefined>;
|
|
17
|
+
}, undefined>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface GithubCursor {
|
|
2
|
+
reviewIds: string[];
|
|
3
|
+
commentIds: string[];
|
|
4
|
+
historyPrimed: boolean;
|
|
5
|
+
lineCommentsPrimed: boolean;
|
|
6
|
+
conversationCommentsPrimed: boolean;
|
|
7
|
+
ciState: string;
|
|
8
|
+
ciFailureState: string;
|
|
9
|
+
mergeable: string;
|
|
10
|
+
prState: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { GithubEventHandler } from "./event-handler.js";
|