fix: make apiProxy injection optional

Resolves the optional apiProxy injection, keeps HTML as the compatibility default, synchronizes generated entrypoints, and adds a regression test.
This commit is contained in:
徐跃恒
2026-09-15 21:36:14 +08:00
committed by GitHub
parent 93f3bec975
commit 72e1d399a7
7 changed files with 22 additions and 13 deletions
+5 -4
View File
@@ -1,15 +1,16 @@
import Schema from '@deepseek-ai/schemastery';
import { TelegramBridge } from './bridge.js';
export const name = 'dsh-telegram-channel';
/** agents: followup; apiProxy: workspace/session catalog + /model (Cordis requires inject to read ctx.apiProxy). */
export const inject = ['agents', 'apiProxy'];
/** agents: followup; apiProxy is optional and resolved at runtime via ctx.get;
* when absent, catalog helpers degrade to the live-agents view. */
export const inject = ['agents'];
export const Config = Schema.object({
token: Schema.string().default(''),
allowedUserIds: Schema.array(Schema.number()).default([]),
allowAllUsers: Schema.boolean().default(false),
maxMessageLength: Schema.number().default(4096),
pollingTimeoutSec: Schema.number().default(30),
rendering: Schema.string().default('rich'),
rendering: Schema.string().default('html'),
});
function resolveAllowedUserIds(config) {
if (config.allowedUserIds && config.allowedUserIds.length > 0) {
@@ -37,7 +38,7 @@ export function apply(ctx, config) {
allowAllUsers: config.allowAllUsers ?? false,
maxMessageLength: config.maxMessageLength ?? 4096,
pollingTimeoutSec: config.pollingTimeoutSec ?? 30,
rendering: config.rendering === 'html' ? 'html' : 'rich',
rendering: config.rendering === 'rich' ? 'rich' : 'html',
});
ctx.effect(() => {
bridge.start();