@hasna/bridge 0.1.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 +17 -0
- package/README.md +94 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +6717 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4448 -0
- package/dist/lib/agents.d.ts +13 -0
- package/dist/lib/agents.d.ts.map +1 -0
- package/dist/lib/config.d.ts +11 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/doctor.d.ts +3 -0
- package/dist/lib/doctor.d.ts.map +1 -0
- package/dist/lib/paths.d.ts +4 -0
- package/dist/lib/paths.d.ts.map +1 -0
- package/dist/lib/router.d.ts +11 -0
- package/dist/lib/router.d.ts.map +1 -0
- package/dist/lib/state.d.ts +8 -0
- package/dist/lib/state.d.ts.map +1 -0
- package/dist/lib/telegram.d.ts +28 -0
- package/dist/lib/telegram.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +4356 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -0
- package/docs/architecture.md +47 -0
- package/examples/bridge.config.example.json +49 -0
- package/package.json +71 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AgentConfig, AgentRunInput, AgentRunResult, BridgeConfig, ProfileConfig } from "../types.js";
|
|
2
|
+
export interface BuiltAgentCommand {
|
|
3
|
+
command: string[];
|
|
4
|
+
cwd?: string;
|
|
5
|
+
env?: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveAgent(config: BridgeConfig, agentId: string): {
|
|
8
|
+
agent: AgentConfig;
|
|
9
|
+
profile?: ProfileConfig;
|
|
10
|
+
};
|
|
11
|
+
export declare function buildAgentCommand(config: BridgeConfig, agentId: string, input: AgentRunInput): BuiltAgentCommand;
|
|
12
|
+
export declare function runAgent(config: BridgeConfig, agentId: string, input: AgentRunInput): Promise<AgentRunResult>;
|
|
13
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3G,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAmBD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,CASnH;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,iBAAiB,CA8BhH;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAqCnH"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type AgentConfig, type BridgeConfig, type ChannelConfig, type ProfileConfig, type RouteConfig } from "../types.js";
|
|
2
|
+
export declare function emptyConfig(): BridgeConfig;
|
|
3
|
+
export declare function parseConfig(value: unknown): BridgeConfig;
|
|
4
|
+
export declare function loadConfig(configPath?: string): Promise<BridgeConfig>;
|
|
5
|
+
export declare function saveConfig(config: BridgeConfig, configPath?: string): Promise<void>;
|
|
6
|
+
export declare function ensureConfig(configPath?: string): Promise<BridgeConfig>;
|
|
7
|
+
export declare function upsertChannel(channel: ChannelConfig, configPath?: string): Promise<BridgeConfig>;
|
|
8
|
+
export declare function upsertProfile(profile: ProfileConfig, configPath?: string): Promise<BridgeConfig>;
|
|
9
|
+
export declare function upsertAgent(agent: AgentConfig, configPath?: string): Promise<BridgeConfig>;
|
|
10
|
+
export declare function upsertRoute(route: RouteConfig, configPath?: string): Promise<BridgeConfig>;
|
|
11
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAmF5I,wBAAgB,WAAW,IAAI,YAAY,CAQ1C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAGxD;AAED,wBAAsB,UAAU,CAAC,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAUxF;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,SAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtG;AAED,wBAAsB,YAAY,CAAC,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAI1F;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAKnH;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAKnH;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAK7G;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAK7G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAU7D,wBAAsB,MAAM,CAAC,UAAU,SAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2CpF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/lib/paths.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BridgeConfig, BridgeMessage, RoutedMessageResult, RouteConfig } from "../types.js";
|
|
2
|
+
import { runAgent } from "./agents.js";
|
|
3
|
+
import { sendTelegramMessage } from "./telegram.js";
|
|
4
|
+
export interface RouteMessageOptions {
|
|
5
|
+
run?: typeof runAgent;
|
|
6
|
+
sendTelegram?: typeof sendTelegramMessage;
|
|
7
|
+
writeConsole?: ((text: string) => void) | false;
|
|
8
|
+
}
|
|
9
|
+
export declare function matchingRoutes(config: BridgeConfig, message: BridgeMessage): RouteConfig[];
|
|
10
|
+
export declare function routeMessage(config: BridgeConfig, message: BridgeMessage, options?: RouteMessageOptions): Promise<RoutedMessageResult[]>;
|
|
11
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/lib/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAiB,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAsC,MAAM,eAAe,CAAC;AAExF,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,OAAO,QAAQ,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,mBAAmB,CAAC;IAC1C,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC;CACjD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,WAAW,EAAE,CAa1F;AAMD,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA2BhC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface BridgeState {
|
|
2
|
+
telegramOffsets: Record<string, number>;
|
|
3
|
+
}
|
|
4
|
+
export declare function defaultStatePath(): string;
|
|
5
|
+
export declare function emptyState(): BridgeState;
|
|
6
|
+
export declare function loadState(statePath?: string): Promise<BridgeState>;
|
|
7
|
+
export declare function saveState(state: BridgeState, statePath?: string): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,UAAU,IAAI,WAAW,CAExC;AAED,wBAAsB,SAAS,CAAC,SAAS,SAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAepF;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,SAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjG"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BridgeMessage, TelegramChannelConfig } from "../types.js";
|
|
2
|
+
export interface TelegramUpdate {
|
|
3
|
+
update_id: number;
|
|
4
|
+
message?: {
|
|
5
|
+
message_id: number;
|
|
6
|
+
text?: string;
|
|
7
|
+
chat: {
|
|
8
|
+
id: number | string;
|
|
9
|
+
type?: string;
|
|
10
|
+
username?: string;
|
|
11
|
+
};
|
|
12
|
+
from?: {
|
|
13
|
+
id: number | string;
|
|
14
|
+
username?: string;
|
|
15
|
+
first_name?: string;
|
|
16
|
+
};
|
|
17
|
+
date?: number;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare function telegramToken(channel: TelegramChannelConfig): string;
|
|
21
|
+
export declare function telegramChatAllowed(channel: TelegramChannelConfig, chatId: string | undefined): boolean;
|
|
22
|
+
export declare function sendTelegramMessage(token: string, chatId: string, text: string): Promise<unknown>;
|
|
23
|
+
export declare function getTelegramUpdates(token: string, options?: {
|
|
24
|
+
offset?: number;
|
|
25
|
+
timeoutSeconds?: number;
|
|
26
|
+
}): Promise<TelegramUpdate[]>;
|
|
27
|
+
export declare function telegramUpdateToMessage(channelId: string, update: TelegramUpdate): BridgeMessage | undefined;
|
|
28
|
+
//# sourceMappingURL=telegram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/lib/telegram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAChE,IAAI,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAKpE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIvG;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASvG;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,cAAc,EAAE,CAAC,CAU3B;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,SAAS,CAa5G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASpE,wBAAgB,WAAW,IAAI,SAAS,CA8BvC"}
|