@sulala/agent 0.1.6 → 0.1.7
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/README.md +3 -2
- package/context/airtable.md +35 -0
- package/context/asana.md +37 -0
- package/context/bluesky.md +26 -91
- package/context/calendar.md +63 -0
- package/context/country-info.md +13 -0
- package/context/create-skill.md +128 -0
- package/context/discord.md +30 -0
- package/context/docs.md +29 -0
- package/context/drive.md +49 -0
- package/context/dropbox.md +39 -0
- package/context/facebook.md +47 -0
- package/context/fetch-form-api.md +16 -0
- package/context/figma.md +30 -0
- package/context/github.md +58 -0
- package/context/gmail.md +52 -0
- package/context/google.md +28 -0
- package/context/hellohub.md +29 -0
- package/context/jira.md +46 -0
- package/context/linear.md +40 -0
- package/context/notion.md +45 -0
- package/context/portal-integrations.md +42 -0
- package/context/post-to-x.md +50 -0
- package/context/sheets.md +47 -0
- package/context/slack.md +48 -0
- package/context/slides.md +35 -0
- package/context/stripe.md +38 -0
- package/context/tes.md +7 -0
- package/context/test.md +7 -0
- package/context/zoom.md +28 -0
- package/dist/agent/google/calendar.d.ts +2 -0
- package/dist/agent/google/calendar.d.ts.map +1 -0
- package/dist/agent/google/calendar.js +119 -0
- package/dist/agent/google/calendar.js.map +1 -0
- package/dist/agent/google/drive.d.ts +2 -0
- package/dist/agent/google/drive.d.ts.map +1 -0
- package/dist/agent/google/drive.js +51 -0
- package/dist/agent/google/drive.js.map +1 -0
- package/dist/agent/google/get-token.d.ts +7 -0
- package/dist/agent/google/get-token.d.ts.map +1 -0
- package/dist/agent/google/get-token.js +37 -0
- package/dist/agent/google/get-token.js.map +1 -0
- package/dist/agent/google/gmail.d.ts +2 -0
- package/dist/agent/google/gmail.d.ts.map +1 -0
- package/dist/agent/google/gmail.js +138 -0
- package/dist/agent/google/gmail.js.map +1 -0
- package/dist/agent/google/index.d.ts +2 -0
- package/dist/agent/google/index.d.ts.map +1 -0
- package/dist/agent/google/index.js +13 -0
- package/dist/agent/google/index.js.map +1 -0
- package/dist/agent/loop.d.ts +8 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +226 -40
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/memory.d.ts +21 -0
- package/dist/agent/memory.d.ts.map +1 -0
- package/dist/agent/memory.js +33 -0
- package/dist/agent/memory.js.map +1 -0
- package/dist/agent/pending-actions.d.ts +21 -0
- package/dist/agent/pending-actions.d.ts.map +1 -0
- package/dist/agent/pending-actions.js +65 -0
- package/dist/agent/pending-actions.js.map +1 -0
- package/dist/agent/pi-runner.d.ts +27 -0
- package/dist/agent/pi-runner.d.ts.map +1 -0
- package/dist/agent/pi-runner.js +300 -0
- package/dist/agent/pi-runner.js.map +1 -0
- package/dist/agent/skill-generate.d.ts +63 -0
- package/dist/agent/skill-generate.d.ts.map +1 -0
- package/dist/agent/skill-generate.js +128 -0
- package/dist/agent/skill-generate.js.map +1 -0
- package/dist/agent/skill-install.d.ts.map +1 -1
- package/dist/agent/skill-install.js +80 -31
- package/dist/agent/skill-install.js.map +1 -1
- package/dist/agent/skill-templates.d.ts +17 -0
- package/dist/agent/skill-templates.d.ts.map +1 -0
- package/dist/agent/skill-templates.js +26 -0
- package/dist/agent/skill-templates.js.map +1 -0
- package/dist/agent/skills-config.d.ts +24 -2
- package/dist/agent/skills-config.d.ts.map +1 -1
- package/dist/agent/skills-config.js +107 -8
- package/dist/agent/skills-config.js.map +1 -1
- package/dist/agent/skills-watcher.js +1 -1
- package/dist/agent/skills.d.ts +9 -3
- package/dist/agent/skills.d.ts.map +1 -1
- package/dist/agent/skills.js +104 -9
- package/dist/agent/skills.js.map +1 -1
- package/dist/agent/tools.d.ts +25 -3
- package/dist/agent/tools.d.ts.map +1 -1
- package/dist/agent/tools.integrations.test.d.ts +2 -0
- package/dist/agent/tools.integrations.test.d.ts.map +1 -0
- package/dist/agent/tools.integrations.test.js +269 -0
- package/dist/agent/tools.integrations.test.js.map +1 -0
- package/dist/agent/tools.js +692 -39
- package/dist/agent/tools.js.map +1 -1
- package/dist/ai/orchestrator.d.ts +4 -1
- package/dist/ai/orchestrator.d.ts.map +1 -1
- package/dist/ai/orchestrator.js +246 -14
- package/dist/ai/orchestrator.js.map +1 -1
- package/dist/ai/pricing.d.ts +6 -0
- package/dist/ai/pricing.d.ts.map +1 -0
- package/dist/ai/pricing.js +39 -0
- package/dist/ai/pricing.js.map +1 -0
- package/dist/channels/discord.d.ts +15 -0
- package/dist/channels/discord.d.ts.map +1 -0
- package/dist/channels/discord.js +55 -0
- package/dist/channels/discord.js.map +1 -0
- package/dist/channels/stripe.d.ts +15 -0
- package/dist/channels/stripe.d.ts.map +1 -0
- package/dist/channels/stripe.js +58 -0
- package/dist/channels/stripe.js.map +1 -0
- package/dist/channels/telegram.d.ts +60 -0
- package/dist/channels/telegram.d.ts.map +1 -0
- package/dist/channels/telegram.js +562 -0
- package/dist/channels/telegram.js.map +1 -0
- package/dist/cli.js +66 -8
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +14 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +85 -1
- package/dist/config.js.map +1 -1
- package/dist/db/index.d.ts +83 -0
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +174 -2
- package/dist/db/index.js.map +1 -1
- package/dist/db/schema.sql +35 -0
- package/dist/gateway/server.d.ts.map +1 -1
- package/dist/gateway/server.js +1219 -27
- package/dist/gateway/server.js.map +1 -1
- package/dist/index.js +149 -6
- package/dist/index.js.map +1 -1
- package/dist/ollama-setup.d.ts +27 -0
- package/dist/ollama-setup.d.ts.map +1 -0
- package/dist/ollama-setup.js +191 -0
- package/dist/ollama-setup.js.map +1 -0
- package/dist/onboard-env.d.ts +1 -1
- package/dist/onboard-env.d.ts.map +1 -1
- package/dist/onboard-env.js +2 -0
- package/dist/onboard-env.js.map +1 -1
- package/dist/onboard.d.ts +3 -1
- package/dist/onboard.d.ts.map +1 -1
- package/dist/onboard.js +7 -2
- package/dist/onboard.js.map +1 -1
- package/dist/plugins/index.d.ts +10 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +32 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/redact.d.ts +15 -0
- package/dist/redact.d.ts.map +1 -0
- package/dist/redact.js +56 -0
- package/dist/redact.js.map +1 -0
- package/dist/scheduler/cron.d.ts +21 -0
- package/dist/scheduler/cron.d.ts.map +1 -1
- package/dist/scheduler/cron.js +60 -0
- package/dist/scheduler/cron.js.map +1 -1
- package/dist/system-capabilities.d.ts +11 -0
- package/dist/system-capabilities.d.ts.map +1 -0
- package/dist/system-capabilities.js +109 -0
- package/dist/system-capabilities.js.map +1 -0
- package/dist/types.d.ts +62 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/watcher/index.d.ts +2 -0
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js +31 -1
- package/dist/watcher/index.js.map +1 -1
- package/dist/workspace-automations.d.ts +16 -0
- package/dist/workspace-automations.d.ts.map +1 -0
- package/dist/workspace-automations.js +133 -0
- package/dist/workspace-automations.js.map +1 -0
- package/package.json +19 -3
- package/registry/bluesky.md +12 -89
- package/registry/skills-registry.json +6 -0
- package/src/db/schema.sql +35 -0
- package/src/index.ts +159 -6
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discord channel config: bot token for agent tools (list guilds, list channels, send message).
|
|
3
|
+
* Config can be set from env or from the dashboard (stored in DB); DB overrides env.
|
|
4
|
+
*/
|
|
5
|
+
import { config } from '../config.js';
|
|
6
|
+
import { getChannelConfig, setChannelConfig } from '../db/index.js';
|
|
7
|
+
const CHANNEL_KEY = 'discord';
|
|
8
|
+
function parseDiscordConfig(raw) {
|
|
9
|
+
if (!raw?.trim())
|
|
10
|
+
return null;
|
|
11
|
+
try {
|
|
12
|
+
const o = JSON.parse(raw);
|
|
13
|
+
const botToken = typeof o.botToken === 'string' ? o.botToken.trim() || null : null;
|
|
14
|
+
return { botToken };
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Effective token: DB overrides env. Used by agent Discord tools. */
|
|
21
|
+
export function getEffectiveDiscordBotToken() {
|
|
22
|
+
const fromDb = parseDiscordConfig(getChannelConfig(CHANNEL_KEY));
|
|
23
|
+
if (fromDb?.botToken)
|
|
24
|
+
return fromDb.botToken;
|
|
25
|
+
return config.discordBotToken;
|
|
26
|
+
}
|
|
27
|
+
/** State for API (no token). */
|
|
28
|
+
export function getDiscordChannelState() {
|
|
29
|
+
const token = getEffectiveDiscordBotToken();
|
|
30
|
+
return { configured: !!token?.trim() };
|
|
31
|
+
}
|
|
32
|
+
/** Save config to DB. Optionally validate token with Discord API. */
|
|
33
|
+
export async function setDiscordChannelConfig(body) {
|
|
34
|
+
const current = parseDiscordConfig(getChannelConfig(CHANNEL_KEY));
|
|
35
|
+
const botToken = body.botToken !== undefined ? (body.botToken?.trim() || null) : (current?.botToken ?? null);
|
|
36
|
+
if (botToken) {
|
|
37
|
+
try {
|
|
38
|
+
const res = await fetch('https://discord.com/api/v10/users/@me', {
|
|
39
|
+
headers: { Authorization: `Bot ${botToken}` },
|
|
40
|
+
});
|
|
41
|
+
if (!res.ok) {
|
|
42
|
+
const text = await res.text();
|
|
43
|
+
return { ok: false, error: `Invalid bot token: ${res.status} ${text.slice(0, 80)}` };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
48
|
+
return { ok: false, error: `Invalid bot token: ${msg}` };
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const next = { botToken };
|
|
52
|
+
setChannelConfig(CHANNEL_KEY, JSON.stringify(next));
|
|
53
|
+
return { ok: true };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=discord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discord.js","sourceRoot":"","sources":["../../src/channels/discord.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,WAAW,GAAG,SAAS,CAAC;AAM9B,SAAS,kBAAkB,CAAC,GAAkB;IAC5C,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACnF,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,2BAA2B;IACzC,MAAM,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IACjE,IAAI,MAAM,EAAE,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC7C,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,sBAAsB;IACpC,MAAM,KAAK,GAAG,2BAA2B,EAAE,CAAC;IAC5C,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAE7C;IACC,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAClE,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;IAE9F,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;gBAC/D,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,QAAQ,EAAE,EAAE;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,GAAG,EAAE,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC1B,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type StripeChannelState = {
|
|
2
|
+
configured: boolean;
|
|
3
|
+
};
|
|
4
|
+
/** Effective key: DB overrides env. Used by agent Stripe tools. */
|
|
5
|
+
export declare function getEffectiveStripeSecretKey(): string | null;
|
|
6
|
+
/** State for API (no key). */
|
|
7
|
+
export declare function getStripeChannelState(): StripeChannelState;
|
|
8
|
+
/** Save config to DB. Validate key with Stripe API. */
|
|
9
|
+
export declare function setStripeChannelConfig(body: {
|
|
10
|
+
secretKey?: string | null;
|
|
11
|
+
}): Promise<{
|
|
12
|
+
ok: boolean;
|
|
13
|
+
error?: string;
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=stripe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../src/channels/stripe.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAaF,mEAAmE;AACnE,wBAAgB,2BAA2B,IAAI,MAAM,GAAG,IAAI,CAI3D;AAED,8BAA8B;AAC9B,wBAAgB,qBAAqB,IAAI,kBAAkB,CAG1D;AAED,uDAAuD;AACvD,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B3C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stripe channel config: secret key for agent tools (customers, invoices).
|
|
3
|
+
* Config can be set from env or from the dashboard (stored in DB); DB overrides env.
|
|
4
|
+
*/
|
|
5
|
+
import { config } from '../config.js';
|
|
6
|
+
import { getChannelConfig, setChannelConfig } from '../db/index.js';
|
|
7
|
+
const CHANNEL_KEY = 'stripe';
|
|
8
|
+
function parseStripeConfig(raw) {
|
|
9
|
+
if (!raw?.trim())
|
|
10
|
+
return null;
|
|
11
|
+
try {
|
|
12
|
+
const o = JSON.parse(raw);
|
|
13
|
+
const secretKey = typeof o.secretKey === 'string' ? o.secretKey.trim() || null : null;
|
|
14
|
+
return { secretKey };
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Effective key: DB overrides env. Used by agent Stripe tools. */
|
|
21
|
+
export function getEffectiveStripeSecretKey() {
|
|
22
|
+
const fromDb = parseStripeConfig(getChannelConfig(CHANNEL_KEY));
|
|
23
|
+
if (fromDb?.secretKey)
|
|
24
|
+
return fromDb.secretKey;
|
|
25
|
+
return config.stripeSecretKey;
|
|
26
|
+
}
|
|
27
|
+
/** State for API (no key). */
|
|
28
|
+
export function getStripeChannelState() {
|
|
29
|
+
const key = getEffectiveStripeSecretKey();
|
|
30
|
+
return { configured: !!key?.trim() };
|
|
31
|
+
}
|
|
32
|
+
/** Save config to DB. Validate key with Stripe API. */
|
|
33
|
+
export async function setStripeChannelConfig(body) {
|
|
34
|
+
const current = parseStripeConfig(getChannelConfig(CHANNEL_KEY));
|
|
35
|
+
const secretKey = body.secretKey !== undefined ? (body.secretKey?.trim() || null) : (current?.secretKey ?? null);
|
|
36
|
+
if (secretKey) {
|
|
37
|
+
try {
|
|
38
|
+
const res = await fetch('https://api.stripe.com/v1/customers?limit=1', {
|
|
39
|
+
headers: { Authorization: `Bearer ${secretKey}` },
|
|
40
|
+
});
|
|
41
|
+
if (res.status === 401) {
|
|
42
|
+
return { ok: false, error: 'Invalid Stripe secret key (unauthorized)' };
|
|
43
|
+
}
|
|
44
|
+
if (!res.ok && res.status !== 404) {
|
|
45
|
+
const text = await res.text();
|
|
46
|
+
return { ok: false, error: `Stripe API error: ${res.status} ${text.slice(0, 80)}` };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
51
|
+
return { ok: false, error: `Invalid key or network error: ${msg}` };
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const next = { secretKey };
|
|
55
|
+
setChannelConfig(CHANNEL_KEY, JSON.stringify(next));
|
|
56
|
+
return { ok: true };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=stripe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/channels/stripe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve default AI provider and model (env only, no channel config).
|
|
3
|
+
* Prefers OpenRouter or OpenAI when API keys are set, same as Telegram.
|
|
4
|
+
* Used for scheduled jobs when provider/model are not specified.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolveDefaultProviderAndModel(overrides?: {
|
|
7
|
+
provider?: string | null;
|
|
8
|
+
model?: string | null;
|
|
9
|
+
}): {
|
|
10
|
+
provider: string;
|
|
11
|
+
model: string | undefined;
|
|
12
|
+
};
|
|
13
|
+
export type TelegramConfig = {
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
botToken: string | null;
|
|
16
|
+
dmPolicy: 'open' | 'allowlist' | 'disabled';
|
|
17
|
+
allowFrom: number[];
|
|
18
|
+
/** Chat ID to send job result notifications (e.g. from scheduled agent jobs). */
|
|
19
|
+
notificationChatId: number | null;
|
|
20
|
+
/** Optional: AI provider for Telegram messages (e.g. "ollama"). Falls back to AI_DEFAULT_PROVIDER. */
|
|
21
|
+
defaultProvider?: string | null;
|
|
22
|
+
/** Optional: AI model for Telegram messages (e.g. "llama3.2:1b"). For Ollama falls back to AI_OLLAMA_DEFAULT_MODEL. */
|
|
23
|
+
defaultModel?: string | null;
|
|
24
|
+
};
|
|
25
|
+
export type TelegramChannelState = {
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
configured: boolean;
|
|
28
|
+
dmPolicy: string;
|
|
29
|
+
allowFrom: number[];
|
|
30
|
+
status: 'connected' | 'not_configured' | 'error';
|
|
31
|
+
botUsername?: string | null;
|
|
32
|
+
error?: string | null;
|
|
33
|
+
/** AI provider for Telegram messages (e.g. "ollama", "openrouter"). Empty = use app default. */
|
|
34
|
+
defaultProvider?: string | null;
|
|
35
|
+
/** AI model for Telegram messages (e.g. "llama3.2", "openai/gpt-4o-mini"). Empty = use provider default. */
|
|
36
|
+
defaultModel?: string | null;
|
|
37
|
+
};
|
|
38
|
+
/** Effective config: DB overrides env. */
|
|
39
|
+
export declare function getEffectiveTelegramConfig(): TelegramConfig;
|
|
40
|
+
/** State for API (no token). */
|
|
41
|
+
export declare function getTelegramChannelState(): TelegramChannelState;
|
|
42
|
+
/** Save config to DB and restart the channel. */
|
|
43
|
+
export declare function setTelegramChannelConfig(body: {
|
|
44
|
+
enabled?: boolean;
|
|
45
|
+
botToken?: string | null;
|
|
46
|
+
dmPolicy?: 'open' | 'allowlist' | 'disabled';
|
|
47
|
+
allowFrom?: number[];
|
|
48
|
+
notificationChatId?: number | null;
|
|
49
|
+
defaultProvider?: string | null;
|
|
50
|
+
defaultModel?: string | null;
|
|
51
|
+
}): Promise<{
|
|
52
|
+
ok: boolean;
|
|
53
|
+
error?: string;
|
|
54
|
+
}>;
|
|
55
|
+
/** Send a notification message to the configured Telegram chat (job results, etc.). Returns true if sent. */
|
|
56
|
+
export declare function sendTelegramNotification(text: string): Promise<boolean>;
|
|
57
|
+
export declare function stopTelegramChannel(): Promise<void>;
|
|
58
|
+
export declare function restartTelegramChannel(): Promise<void>;
|
|
59
|
+
export declare function startTelegramChannel(): void;
|
|
60
|
+
//# sourceMappingURL=telegram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telegram.d.ts","sourceRoot":"","sources":["../../src/channels/telegram.ts"],"names":[],"mappings":"AAkDA;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,CAAC,EAAE;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAclD;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IAC5C,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iFAAiF;IACjF,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sGAAsG;IACtG,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,uHAAuH;IACvH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gGAAgG;IAChG,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,4GAA4G;IAC5G,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAuCF,0CAA0C;AAC1C,wBAAgB,0BAA0B,IAAI,cAAc,CAY3D;AAED,gCAAgC;AAChC,wBAAgB,uBAAuB,IAAI,oBAAoB,CAsB9D;AAED,iDAAiD;AACjD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqC3C;AAED,6GAA6G;AAC7G,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAc7E;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBzD;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5D;AAuCD,wBAAgB,oBAAoB,IAAI,IAAI,CA8T3C"}
|