@tianshu-ai/tianshu 0.3.35 → 0.3.36

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.
Files changed (120) hide show
  1. package/node_modules/@tianshu-ai/plugin-sdk/dist/manifest.d.ts +46 -0
  2. package/node_modules/@tianshu-ai/plugin-sdk/dist/manifest.d.ts.map +1 -1
  3. package/node_modules/@tianshu-ai/plugin-sdk/dist/server.d.ts +120 -0
  4. package/node_modules/@tianshu-ai/plugin-sdk/dist/server.d.ts.map +1 -1
  5. package/node_modules/@tianshu-ai/plugin-sdk/dist/server.js.map +1 -1
  6. package/node_modules/@tianshu-ai/plugin-sdk/src/manifest.ts +47 -0
  7. package/node_modules/@tianshu-ai/plugin-sdk/src/server.ts +163 -0
  8. package/package.json +1 -1
  9. package/packages/plugin-sdk/dist/manifest.d.ts +46 -0
  10. package/packages/plugin-sdk/dist/manifest.d.ts.map +1 -1
  11. package/packages/plugin-sdk/dist/server.d.ts +120 -0
  12. package/packages/plugin-sdk/dist/server.d.ts.map +1 -1
  13. package/packages/plugin-sdk/dist/server.js.map +1 -1
  14. package/packages/server/builtinConfig/plugins/wechat/manifest.json +43 -0
  15. package/packages/server/dist/channels/adapter-manager.d.ts +40 -0
  16. package/packages/server/dist/channels/adapter-manager.d.ts.map +1 -0
  17. package/packages/server/dist/channels/adapter-manager.js +149 -0
  18. package/packages/server/dist/channels/adapter-manager.js.map +1 -0
  19. package/packages/server/dist/channels/bindings.d.ts +35 -0
  20. package/packages/server/dist/channels/bindings.d.ts.map +1 -0
  21. package/packages/server/dist/channels/bindings.js +119 -0
  22. package/packages/server/dist/channels/bindings.js.map +1 -0
  23. package/packages/server/dist/channels/hub.d.ts +48 -0
  24. package/packages/server/dist/channels/hub.d.ts.map +1 -0
  25. package/packages/server/dist/channels/hub.js +106 -0
  26. package/packages/server/dist/channels/hub.js.map +1 -0
  27. package/packages/server/dist/channels/index.d.ts +9 -0
  28. package/packages/server/dist/channels/index.d.ts.map +1 -0
  29. package/packages/server/dist/channels/index.js +11 -0
  30. package/packages/server/dist/channels/index.js.map +1 -0
  31. package/packages/server/dist/channels/router.d.ts +16 -0
  32. package/packages/server/dist/channels/router.d.ts.map +1 -0
  33. package/packages/server/dist/channels/router.js +127 -0
  34. package/packages/server/dist/channels/router.js.map +1 -0
  35. package/packages/server/dist/channels/sessions.d.ts +25 -0
  36. package/packages/server/dist/channels/sessions.d.ts.map +1 -0
  37. package/packages/server/dist/channels/sessions.js +81 -0
  38. package/packages/server/dist/channels/sessions.js.map +1 -0
  39. package/packages/server/dist/channels/types.d.ts +31 -0
  40. package/packages/server/dist/channels/types.d.ts.map +1 -0
  41. package/packages/server/dist/channels/types.js +17 -0
  42. package/packages/server/dist/channels/types.js.map +1 -0
  43. package/packages/server/dist/chat/handler.d.ts +10 -0
  44. package/packages/server/dist/chat/handler.d.ts.map +1 -1
  45. package/packages/server/dist/chat/handler.js +5 -1
  46. package/packages/server/dist/chat/handler.js.map +1 -1
  47. package/packages/server/dist/core/migrations/010-channels.d.ts +4 -0
  48. package/packages/server/dist/core/migrations/010-channels.d.ts.map +1 -0
  49. package/packages/server/dist/core/migrations/010-channels.js +60 -0
  50. package/packages/server/dist/core/migrations/010-channels.js.map +1 -0
  51. package/packages/server/dist/core/migrations/index.d.ts.map +1 -1
  52. package/packages/server/dist/core/migrations/index.js +2 -0
  53. package/packages/server/dist/core/migrations/index.js.map +1 -1
  54. package/packages/server/dist/core/plugins/registry.d.ts +18 -0
  55. package/packages/server/dist/core/plugins/registry.d.ts.map +1 -1
  56. package/packages/server/dist/core/plugins/registry.js +29 -0
  57. package/packages/server/dist/core/plugins/registry.js.map +1 -1
  58. package/packages/server/dist/index.js +31 -0
  59. package/packages/server/dist/index.js.map +1 -1
  60. package/packages/web/dist/assets/{angular-html-CHh9Jf0f.js → angular-html-Iamn8VeB.js} +1 -1
  61. package/packages/web/dist/assets/{angular-ts-DBEBqmsF.js → angular-ts-Dc_oiB71.js} +1 -1
  62. package/packages/web/dist/assets/{astro-D9PQ6jOh.js → astro-DHQtQe0F.js} +1 -1
  63. package/packages/web/dist/assets/{blade-jCcAPpiC.js → blade-PmaEpBP5.js} +1 -1
  64. package/packages/web/dist/assets/{bundle-web-CLb2SHtn.js → bundle-web-BPLQz4q7.js} +3 -3
  65. package/packages/web/dist/assets/{c-C_hjr95Y.js → c-6d0N850q.js} +1 -1
  66. package/packages/web/dist/assets/{coffee-Bkr9tGk3.js → coffee-D8kWvGFl.js} +1 -1
  67. package/packages/web/dist/assets/{cpp-CnAw1wGQ.js → cpp-CcjEAZiA.js} +1 -1
  68. package/packages/web/dist/assets/{css-D3llP9o3.js → css-BXLZJH0u.js} +1 -1
  69. package/packages/web/dist/assets/{glsl-FiLMT21s.js → glsl-B5wzeQ70.js} +1 -1
  70. package/packages/web/dist/assets/{graphql-XsB-g-EJ.js → graphql-C5sRBXVN.js} +1 -1
  71. package/packages/web/dist/assets/{haml-R-v_GVjQ.js → haml-CmlLXAwX.js} +1 -1
  72. package/packages/web/dist/assets/{handlebars-CS8GB886.js → handlebars-Cho472sw.js} +1 -1
  73. package/packages/web/dist/assets/{html-BhnSKwHw.js → html-CHJOEdwS.js} +1 -1
  74. package/packages/web/dist/assets/{html-derivative-Bv-KRRMp.js → html-derivative-CnnsD8XF.js} +1 -1
  75. package/packages/web/dist/assets/{http-kBAr2M-u.js → http-QdLrXf_j.js} +1 -1
  76. package/packages/web/dist/assets/{hurl-tL_Tl7F-.js → hurl-BVvBfFkA.js} +1 -1
  77. package/packages/web/dist/assets/{index-BTtkI_wR.js → index-dNBs1BYn.js} +25 -25
  78. package/packages/web/dist/assets/{java-GYVyDpBx.js → java-V8b8Q0RE.js} +1 -1
  79. package/packages/web/dist/assets/{javascript-Cmj37bu7.js → javascript-C3ati9Uv.js} +1 -1
  80. package/packages/web/dist/assets/{jinja-CBIRQJZI.js → jinja-IFferrAR.js} +1 -1
  81. package/packages/web/dist/assets/{jison-BUXJXMiB.js → jison-Du-VEKXM.js} +1 -1
  82. package/packages/web/dist/assets/{jsx-D1uRu3aK.js → jsx-DKW7cyot.js} +1 -1
  83. package/packages/web/dist/assets/{julia--MZijHAO.js → julia-DZx644uB.js} +1 -1
  84. package/packages/web/dist/assets/{marko-BkBmyCSX.js → marko-DUOUvUjN.js} +1 -1
  85. package/packages/web/dist/assets/{mdc-XWZCBukn.js → mdc-Ba06-lkg.js} +1 -1
  86. package/packages/web/dist/assets/{papaparse.min-BSf9tR5F.js → papaparse.min-DDRMXFnP.js} +1 -1
  87. package/packages/web/dist/assets/{php-sz_C1yJl.js → php-DBWTNhOc.js} +1 -1
  88. package/packages/web/dist/assets/{pug-CREJlqst.js → pug-BAVJkaVg.js} +1 -1
  89. package/packages/web/dist/assets/{regexp-Xt1IaOXU.js → regexp-BM38l-oV.js} +1 -1
  90. package/packages/web/dist/assets/{scss-CIkGbC-u.js → scss-BEtxFDif.js} +1 -1
  91. package/packages/web/dist/assets/{sql-DhupoNN8.js → sql-BWivcsR1.js} +1 -1
  92. package/packages/web/dist/assets/{svelte-BykbKG-B.js → svelte-BwreCCAO.js} +1 -1
  93. package/packages/web/dist/assets/{ts-tags-DG-8A91q.js → ts-tags-B1VvoL7n.js} +1 -1
  94. package/packages/web/dist/assets/{tsx-COuX1AyC.js → tsx-B38DHfPy.js} +1 -1
  95. package/packages/web/dist/assets/{typescript-CGT6b7mJ.js → typescript-BXszQdhG.js} +1 -1
  96. package/packages/web/dist/assets/{vue-BvccTTKa.js → vue-B8BzggBE.js} +1 -1
  97. package/packages/web/dist/assets/{vue-html-CR_QtHjX.js → vue-html-3A7KBMS_.js} +1 -1
  98. package/packages/web/dist/assets/{vue-vine-CkXWxUrH.js → vue-vine-DayxEfJh.js} +1 -1
  99. package/packages/web/dist/assets/{xml-BvSer_ob.js → xml-MqMTuZ7-.js} +1 -1
  100. package/packages/web/dist/index.html +1 -1
  101. package/plugins/wechat/dist/channel.d.ts +45 -0
  102. package/plugins/wechat/dist/channel.d.ts.map +1 -0
  103. package/plugins/wechat/dist/channel.js +258 -0
  104. package/plugins/wechat/dist/channel.js.map +1 -0
  105. package/plugins/wechat/dist/ilink-api.d.ts +107 -0
  106. package/plugins/wechat/dist/ilink-api.d.ts.map +1 -0
  107. package/plugins/wechat/dist/ilink-api.js +182 -0
  108. package/plugins/wechat/dist/ilink-api.js.map +1 -0
  109. package/plugins/wechat/dist/server.d.ts +4 -0
  110. package/plugins/wechat/dist/server.d.ts.map +1 -0
  111. package/plugins/wechat/dist/server.js +154 -0
  112. package/plugins/wechat/dist/server.js.map +1 -0
  113. package/plugins/wechat/dist/state.d.ts +18 -0
  114. package/plugins/wechat/dist/state.d.ts.map +1 -0
  115. package/plugins/wechat/dist/state.js +99 -0
  116. package/plugins/wechat/dist/state.js.map +1 -0
  117. package/plugins/wechat/manifest.json +43 -0
  118. package/plugins/wechat/node_modules/typescript/README.md +50 -0
  119. package/plugins/wechat/node_modules/typescript/package.json +120 -0
  120. package/plugins/wechat/package.json +30 -0
@@ -225,6 +225,20 @@ export interface ContributesV1 {
225
225
  * unique within the plugin.
226
226
  */
227
227
  agentSeeds?: AgentSeedContribution[];
228
+ /**
229
+ * Chat-platform channel adapters the plugin contributes.
230
+ * Each entry registers a `ChannelAdapter` factory (keyed in
231
+ * the plugin's server-exports `channels` map). The host's
232
+ * channel hub picks adapters up by `id`, instantiates one per
233
+ * configured account binding, fans inbound messages into the
234
+ * router, and routes outbound replies back.
235
+ *
236
+ * Examples: feishu / telegram / discord / wechat / slack. The
237
+ * built-in `webchat` channel is not contributed via this
238
+ * mechanism — it sits inside the host directly because it
239
+ * shares the agent's WebSocket transport.
240
+ */
241
+ channels?: ChannelContribution[];
228
242
  /**
229
243
  * Static system-prompt fragments injected into the main chat
230
244
  * agent's prompt when this plugin is active for the current
@@ -438,5 +452,37 @@ export interface WsMessageContribution {
438
452
  /** Key in the plugin's server-exports `wsHandlers` map. */
439
453
  handler: string;
440
454
  }
455
+ /**
456
+ * Channel contribution — register a chat-platform adapter
457
+ * (Feishu / Telegram / WeChat / Discord / Slack / ...) the host's
458
+ * channel hub can instantiate per-binding.
459
+ *
460
+ * The plugin's `server.ts` exports a `channels` map keyed by
461
+ * `module`; each entry is a `ChannelAdapterFactory` (see
462
+ * `server.ts: ChannelAdapterFactory`). The host calls the factory
463
+ * once per binding (an account configured for this tenant), wires
464
+ * the resulting `ChannelAdapter` into the hub, then drives it via
465
+ * `start()` / `stop()` / `send()` / `onMessage()`.
466
+ */
467
+ export interface ChannelContribution {
468
+ /**
469
+ * Stable channel id. MUST be globally unique across plugins
470
+ * because the router uses it as the dispatch key (the
471
+ * "feishu" / "telegram" / "wechat" prefix on session titles
472
+ * and binding rows). Lowercase, no spaces, no version suffix.
473
+ */
474
+ id: string;
475
+ /** Human-readable name for admin / log UIs. */
476
+ displayName: string;
477
+ /** Key in the plugin's server-exports `channels` map. */
478
+ module: string;
479
+ /**
480
+ * Semver string marking the release this channel first
481
+ * appeared in. Same role as ToolContribution.since — the
482
+ * boot-time tool-delta detector treats new channels as a
483
+ * new capability surface worth telling the agent about.
484
+ */
485
+ since?: string;
486
+ }
441
487
  export {};
442
488
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,19 @@ export interface PluginServerExports {
92
92
  * itself — plugins do that inside `activate()`.
93
93
  */
94
94
  sandboxes?: Record<string, SandboxRunner>;
95
+ /**
96
+ * Chat-platform channel adapters (Feishu / Telegram / WeChat /
97
+ * ...). Keys match the `module` strings declared in
98
+ * `manifest.contributes.channels[]`. Each entry is a *factory*
99
+ * — the host calls it once per configured binding (account
100
+ * pair) so multiple instances of the same plugin can coexist
101
+ * (e.g. two Feishu apps for two tenants). The factory returns
102
+ * a `ChannelAdapter` the host wires into its channel hub.
103
+ *
104
+ * Plugins that don't contribute any channel adapter leave this
105
+ * undefined.
106
+ */
107
+ channels?: Record<string, ChannelAdapterFactory>;
95
108
  /**
96
109
  * Per-task sandbox lifecycle manager (`sandbox.taskPool`
97
110
  * capability). The host registers it under that capability so
@@ -483,4 +496,111 @@ export interface PluginServerModule {
483
496
  activate(ctx: PluginContext): Promise<PluginServerExports> | PluginServerExports;
484
497
  deactivate?(): Promise<void> | void;
485
498
  }
499
+ /** Identifier of a chat platform. "webchat" is reserved for the
500
+ * host's built-in WebSocket transport; other plugins pick
501
+ * lowercase identifiers like "feishu" / "telegram" / "wechat". */
502
+ export type ChannelId = string;
503
+ /** A normalised inbound message. Adapters convert their native
504
+ * event shapes into this. Everything downstream operates on it. */
505
+ export interface InboundChannelMessage {
506
+ /** Channel that produced this message (e.g. "feishu"). */
507
+ channelId: ChannelId;
508
+ /** Per-channel chat handle. For Feishu this is `chat_id` (group)
509
+ * or the sender's `open_id` (DM). Treat as opaque outside the
510
+ * adapter. */
511
+ chatId: string;
512
+ /** True when the chat is 1:1 with the bot. */
513
+ isDirect: boolean;
514
+ /** Stable identifier for the human/bot that sent the message,
515
+ * in the channel's native ID space. */
516
+ senderId: string;
517
+ /** Display name if the adapter could resolve one. */
518
+ senderName?: string;
519
+ /** Plain-text content. Adapters strip mentions / markup. */
520
+ text: string;
521
+ /** Native message id, used for replies + dedup. */
522
+ messageId: string;
523
+ /** When the channel says it was sent (ms epoch). */
524
+ timestamp: number;
525
+ /** Whether the bot itself was @-mentioned (groups only). */
526
+ mentionsBot?: boolean;
527
+ /** Original payload, for adapters that need extra context. */
528
+ raw?: unknown;
529
+ }
530
+ /** Outbound message handed to the adapter for delivery. The
531
+ * adapter decides format (plain text vs card vs whatever the
532
+ * platform supports natively). */
533
+ export interface OutboundChannelMessage {
534
+ /** Target chat handle in the channel's native ID space. */
535
+ target: string;
536
+ /** Plain-text body. Adapters MAY apply minimal markdown if the
537
+ * platform supports it. */
538
+ text: string;
539
+ /** Reply to a specific message id when the channel supports
540
+ * threading. */
541
+ replyTo?: string;
542
+ }
543
+ /** Semantic reactions the host emits to signal processing state
544
+ * to a remote chat ("received", "working", "done", "error").
545
+ * Each adapter maps these onto the platform's native reaction
546
+ * set; adapters that don't support reactions silently no-op. */
547
+ export type ChannelReactionKind = "received" | "working" | "done" | "error";
548
+ /** Context handed to a channel factory at binding instantiation. */
549
+ export interface ChannelAdapterContext {
550
+ /** Binding row id — a stable key for this account's adapter
551
+ * instance. */
552
+ bindingId: string;
553
+ /** Tenant the binding belongs to. */
554
+ tenantId: string;
555
+ /** Per-binding configuration (account credentials, optional
556
+ * display name, etc.). Schema is plugin-defined and validated
557
+ * by the plugin before mapping to its internal config. */
558
+ config: Record<string, unknown>;
559
+ /** Plugin-scoped logger, same shape as the rest of the SDK. */
560
+ log: {
561
+ info: (msg: string, meta?: Record<string, unknown>) => void;
562
+ warn: (msg: string, meta?: Record<string, unknown>) => void;
563
+ error: (msg: string, meta?: Record<string, unknown>) => void;
564
+ };
565
+ /** State directory the adapter can persist tokens / sync
566
+ * buffers / etc. Created by the host before the factory runs. */
567
+ stateDir: string;
568
+ }
569
+ /** Factory the plugin exports per channel module. The host calls
570
+ * it once per binding. The factory MAY do async work (loading
571
+ * cached tokens etc.); the host awaits it before `start()`. */
572
+ export type ChannelAdapterFactory = (ctx: ChannelAdapterContext) => Promise<ChannelAdapter> | ChannelAdapter;
573
+ /** The runtime interface every channel adapter implements. */
574
+ export interface ChannelAdapter {
575
+ /** Channel identifier; must match `InboundChannelMessage.channelId`. */
576
+ readonly id: ChannelId;
577
+ /** Human-readable name for logs / UI. */
578
+ readonly displayName: string;
579
+ /** Establish whatever connection the channel needs.
580
+ * Idempotent. Resolves when messages can flow. */
581
+ start(): Promise<void>;
582
+ /** Tear down gracefully. Idempotent. */
583
+ stop(): Promise<void>;
584
+ /** Send a message to the channel. */
585
+ send(message: OutboundChannelMessage): Promise<void>;
586
+ /** Add a reaction to a remote message. Returns an opaque id
587
+ * the host can pass back to remove the reaction later, or
588
+ * `null` if the platform doesn't expose one. Adapters that
589
+ * don't support reactions return `null` and no-op. */
590
+ addReaction?(messageId: string, kind: ChannelReactionKind): Promise<string | null>;
591
+ /** Remove a reaction previously added via `addReaction`. */
592
+ removeReaction?(messageId: string, reactionId: string): Promise<void>;
593
+ /** Resolve a human-readable display name for a chat handle.
594
+ * Used by the host to label channel sessions in the sidebar
595
+ * so users see "张三" / "产品群" instead of opaque ids. */
596
+ resolveDisplayName?(handle: string, kind: "user" | "chat"): Promise<string | null>;
597
+ /** Register the inbound-message listener. The hub calls this
598
+ * exactly once at startup; adapters MAY reject duplicates. */
599
+ onMessage(handler: (msg: InboundChannelMessage) => void): void;
600
+ /** Register an error listener. Hub logs into the binding row
601
+ * so admins can see auth failures / reconnect storms / etc.
602
+ * Adapters MUST NOT throw from these handlers — errors that
603
+ * reach the hub are best-effort signals, not transactions. */
604
+ onError(handler: (err: Error) => void): void;
605
+ }
486
606
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,qEAAqE;AA2TrE,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAc;IACnD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5E,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAc;IACtD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,qEAAqE;AAwUrE,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAc;IACnD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5E,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAc;IACtD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9E,CAAC"}
@@ -244,6 +244,20 @@ export interface ContributesV1 {
244
244
  * unique within the plugin.
245
245
  */
246
246
  agentSeeds?: AgentSeedContribution[];
247
+ /**
248
+ * Chat-platform channel adapters the plugin contributes.
249
+ * Each entry registers a `ChannelAdapter` factory (keyed in
250
+ * the plugin's server-exports `channels` map). The host's
251
+ * channel hub picks adapters up by `id`, instantiates one per
252
+ * configured account binding, fans inbound messages into the
253
+ * router, and routes outbound replies back.
254
+ *
255
+ * Examples: feishu / telegram / discord / wechat / slack. The
256
+ * built-in `webchat` channel is not contributed via this
257
+ * mechanism — it sits inside the host directly because it
258
+ * shares the agent's WebSocket transport.
259
+ */
260
+ channels?: ChannelContribution[];
247
261
  /**
248
262
  * Static system-prompt fragments injected into the main chat
249
263
  * agent's prompt when this plugin is active for the current
@@ -473,4 +487,37 @@ export interface WsMessageContribution {
473
487
  handler: string;
474
488
  }
475
489
 
490
+ /**
491
+ * Channel contribution — register a chat-platform adapter
492
+ * (Feishu / Telegram / WeChat / Discord / Slack / ...) the host's
493
+ * channel hub can instantiate per-binding.
494
+ *
495
+ * The plugin's `server.ts` exports a `channels` map keyed by
496
+ * `module`; each entry is a `ChannelAdapterFactory` (see
497
+ * `server.ts: ChannelAdapterFactory`). The host calls the factory
498
+ * once per binding (an account configured for this tenant), wires
499
+ * the resulting `ChannelAdapter` into the hub, then drives it via
500
+ * `start()` / `stop()` / `send()` / `onMessage()`.
501
+ */
502
+ export interface ChannelContribution {
503
+ /**
504
+ * Stable channel id. MUST be globally unique across plugins
505
+ * because the router uses it as the dispatch key (the
506
+ * "feishu" / "telegram" / "wechat" prefix on session titles
507
+ * and binding rows). Lowercase, no spaces, no version suffix.
508
+ */
509
+ id: string;
510
+ /** Human-readable name for admin / log UIs. */
511
+ displayName: string;
512
+ /** Key in the plugin's server-exports `channels` map. */
513
+ module: string;
514
+ /**
515
+ * Semver string marking the release this channel first
516
+ * appeared in. Same role as ToolContribution.since — the
517
+ * boot-time tool-delta detector treats new channels as a
518
+ * new capability surface worth telling the agent about.
519
+ */
520
+ since?: string;
521
+ }
522
+
476
523
 
@@ -102,6 +102,19 @@ export interface PluginServerExports {
102
102
  * itself — plugins do that inside `activate()`.
103
103
  */
104
104
  sandboxes?: Record<string, SandboxRunner>;
105
+ /**
106
+ * Chat-platform channel adapters (Feishu / Telegram / WeChat /
107
+ * ...). Keys match the `module` strings declared in
108
+ * `manifest.contributes.channels[]`. Each entry is a *factory*
109
+ * — the host calls it once per configured binding (account
110
+ * pair) so multiple instances of the same plugin can coexist
111
+ * (e.g. two Feishu apps for two tenants). The factory returns
112
+ * a `ChannelAdapter` the host wires into its channel hub.
113
+ *
114
+ * Plugins that don't contribute any channel adapter leave this
115
+ * undefined.
116
+ */
117
+ channels?: Record<string, ChannelAdapterFactory>;
105
118
  /**
106
119
  * Per-task sandbox lifecycle manager (`sandbox.taskPool`
107
120
  * capability). The host registers it under that capability so
@@ -529,3 +542,153 @@ export interface PluginServerModule {
529
542
  activate(ctx: PluginContext): Promise<PluginServerExports> | PluginServerExports;
530
543
  deactivate?(): Promise<void> | void;
531
544
  }
545
+
546
+ // ─── Channel adapters ─────────────────────────────────────────────────
547
+ //
548
+ // A `ChannelAdapter` translates between an external chat platform
549
+ // (Feishu, Telegram, WeChat, Discord, Slack, ...) and tianshu's
550
+ // internal message bus. Plugins implement adapters and surface them
551
+ // through `manifest.contributes.channels[]` + `exports.channels`.
552
+ //
553
+ // Lifecycle:
554
+ // 1. The host loads each binding row from `channel_bindings`
555
+ // (tenant + channel + account credentials).
556
+ // 2. For each binding, the host calls the plugin's channel
557
+ // factory with a `ChannelAdapterContext`. The factory
558
+ // returns an adapter instance.
559
+ // 3. Host calls `adapter.start()` to open the underlying
560
+ // transport.
561
+ // 4. Inbound platform messages flow through
562
+ // `adapter.onMessage(handler)` → host hub → agent router.
563
+ // 5. Agent replies route back via `adapter.send(outbound)`.
564
+ // 6. On binding removal / plugin deactivation the host calls
565
+ // `adapter.stop()`.
566
+ //
567
+ // Adapters MUST be idempotent on start/stop and MUST drop the
568
+ // bot's own echo messages (the router double-checks senderId, but
569
+ // each platform has its own loopback semantics the adapter knows
570
+ // best). They SHOULD NOT crash on transient transport errors;
571
+ // surface them via `onError` so the hub can mark the binding as
572
+ // degraded without taking down the whole channel system.
573
+
574
+ /** Identifier of a chat platform. "webchat" is reserved for the
575
+ * host's built-in WebSocket transport; other plugins pick
576
+ * lowercase identifiers like "feishu" / "telegram" / "wechat". */
577
+ export type ChannelId = string;
578
+
579
+ /** A normalised inbound message. Adapters convert their native
580
+ * event shapes into this. Everything downstream operates on it. */
581
+ export interface InboundChannelMessage {
582
+ /** Channel that produced this message (e.g. "feishu"). */
583
+ channelId: ChannelId;
584
+ /** Per-channel chat handle. For Feishu this is `chat_id` (group)
585
+ * or the sender's `open_id` (DM). Treat as opaque outside the
586
+ * adapter. */
587
+ chatId: string;
588
+ /** True when the chat is 1:1 with the bot. */
589
+ isDirect: boolean;
590
+ /** Stable identifier for the human/bot that sent the message,
591
+ * in the channel's native ID space. */
592
+ senderId: string;
593
+ /** Display name if the adapter could resolve one. */
594
+ senderName?: string;
595
+ /** Plain-text content. Adapters strip mentions / markup. */
596
+ text: string;
597
+ /** Native message id, used for replies + dedup. */
598
+ messageId: string;
599
+ /** When the channel says it was sent (ms epoch). */
600
+ timestamp: number;
601
+ /** Whether the bot itself was @-mentioned (groups only). */
602
+ mentionsBot?: boolean;
603
+ /** Original payload, for adapters that need extra context. */
604
+ raw?: unknown;
605
+ }
606
+
607
+ /** Outbound message handed to the adapter for delivery. The
608
+ * adapter decides format (plain text vs card vs whatever the
609
+ * platform supports natively). */
610
+ export interface OutboundChannelMessage {
611
+ /** Target chat handle in the channel's native ID space. */
612
+ target: string;
613
+ /** Plain-text body. Adapters MAY apply minimal markdown if the
614
+ * platform supports it. */
615
+ text: string;
616
+ /** Reply to a specific message id when the channel supports
617
+ * threading. */
618
+ replyTo?: string;
619
+ }
620
+
621
+ /** Semantic reactions the host emits to signal processing state
622
+ * to a remote chat ("received", "working", "done", "error").
623
+ * Each adapter maps these onto the platform's native reaction
624
+ * set; adapters that don't support reactions silently no-op. */
625
+ export type ChannelReactionKind = "received" | "working" | "done" | "error";
626
+
627
+ /** Context handed to a channel factory at binding instantiation. */
628
+ export interface ChannelAdapterContext {
629
+ /** Binding row id — a stable key for this account's adapter
630
+ * instance. */
631
+ bindingId: string;
632
+ /** Tenant the binding belongs to. */
633
+ tenantId: string;
634
+ /** Per-binding configuration (account credentials, optional
635
+ * display name, etc.). Schema is plugin-defined and validated
636
+ * by the plugin before mapping to its internal config. */
637
+ config: Record<string, unknown>;
638
+ /** Plugin-scoped logger, same shape as the rest of the SDK. */
639
+ log: {
640
+ info: (msg: string, meta?: Record<string, unknown>) => void;
641
+ warn: (msg: string, meta?: Record<string, unknown>) => void;
642
+ error: (msg: string, meta?: Record<string, unknown>) => void;
643
+ };
644
+ /** State directory the adapter can persist tokens / sync
645
+ * buffers / etc. Created by the host before the factory runs. */
646
+ stateDir: string;
647
+ }
648
+
649
+ /** Factory the plugin exports per channel module. The host calls
650
+ * it once per binding. The factory MAY do async work (loading
651
+ * cached tokens etc.); the host awaits it before `start()`. */
652
+ export type ChannelAdapterFactory = (
653
+ ctx: ChannelAdapterContext,
654
+ ) => Promise<ChannelAdapter> | ChannelAdapter;
655
+
656
+ /** The runtime interface every channel adapter implements. */
657
+ export interface ChannelAdapter {
658
+ /** Channel identifier; must match `InboundChannelMessage.channelId`. */
659
+ readonly id: ChannelId;
660
+ /** Human-readable name for logs / UI. */
661
+ readonly displayName: string;
662
+ /** Establish whatever connection the channel needs.
663
+ * Idempotent. Resolves when messages can flow. */
664
+ start(): Promise<void>;
665
+ /** Tear down gracefully. Idempotent. */
666
+ stop(): Promise<void>;
667
+ /** Send a message to the channel. */
668
+ send(message: OutboundChannelMessage): Promise<void>;
669
+ /** Add a reaction to a remote message. Returns an opaque id
670
+ * the host can pass back to remove the reaction later, or
671
+ * `null` if the platform doesn't expose one. Adapters that
672
+ * don't support reactions return `null` and no-op. */
673
+ addReaction?(
674
+ messageId: string,
675
+ kind: ChannelReactionKind,
676
+ ): Promise<string | null>;
677
+ /** Remove a reaction previously added via `addReaction`. */
678
+ removeReaction?(messageId: string, reactionId: string): Promise<void>;
679
+ /** Resolve a human-readable display name for a chat handle.
680
+ * Used by the host to label channel sessions in the sidebar
681
+ * so users see "张三" / "产品群" instead of opaque ids. */
682
+ resolveDisplayName?(
683
+ handle: string,
684
+ kind: "user" | "chat",
685
+ ): Promise<string | null>;
686
+ /** Register the inbound-message listener. The hub calls this
687
+ * exactly once at startup; adapters MAY reject duplicates. */
688
+ onMessage(handler: (msg: InboundChannelMessage) => void): void;
689
+ /** Register an error listener. Hub logs into the binding row
690
+ * so admins can see auth failures / reconnect storms / etc.
691
+ * Adapters MUST NOT throw from these handlers — errors that
692
+ * reach the hub are best-effort signals, not transactions. */
693
+ onError(handler: (err: Error) => void): void;
694
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tianshu-ai/tianshu",
3
- "version": "0.3.35",
3
+ "version": "0.3.36",
4
4
  "description": "An open AI agent platform with a sidecar browser. Built in public.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/tianshu-ai/tianshu",
@@ -225,6 +225,20 @@ export interface ContributesV1 {
225
225
  * unique within the plugin.
226
226
  */
227
227
  agentSeeds?: AgentSeedContribution[];
228
+ /**
229
+ * Chat-platform channel adapters the plugin contributes.
230
+ * Each entry registers a `ChannelAdapter` factory (keyed in
231
+ * the plugin's server-exports `channels` map). The host's
232
+ * channel hub picks adapters up by `id`, instantiates one per
233
+ * configured account binding, fans inbound messages into the
234
+ * router, and routes outbound replies back.
235
+ *
236
+ * Examples: feishu / telegram / discord / wechat / slack. The
237
+ * built-in `webchat` channel is not contributed via this
238
+ * mechanism — it sits inside the host directly because it
239
+ * shares the agent's WebSocket transport.
240
+ */
241
+ channels?: ChannelContribution[];
228
242
  /**
229
243
  * Static system-prompt fragments injected into the main chat
230
244
  * agent's prompt when this plugin is active for the current
@@ -438,5 +452,37 @@ export interface WsMessageContribution {
438
452
  /** Key in the plugin's server-exports `wsHandlers` map. */
439
453
  handler: string;
440
454
  }
455
+ /**
456
+ * Channel contribution — register a chat-platform adapter
457
+ * (Feishu / Telegram / WeChat / Discord / Slack / ...) the host's
458
+ * channel hub can instantiate per-binding.
459
+ *
460
+ * The plugin's `server.ts` exports a `channels` map keyed by
461
+ * `module`; each entry is a `ChannelAdapterFactory` (see
462
+ * `server.ts: ChannelAdapterFactory`). The host calls the factory
463
+ * once per binding (an account configured for this tenant), wires
464
+ * the resulting `ChannelAdapter` into the hub, then drives it via
465
+ * `start()` / `stop()` / `send()` / `onMessage()`.
466
+ */
467
+ export interface ChannelContribution {
468
+ /**
469
+ * Stable channel id. MUST be globally unique across plugins
470
+ * because the router uses it as the dispatch key (the
471
+ * "feishu" / "telegram" / "wechat" prefix on session titles
472
+ * and binding rows). Lowercase, no spaces, no version suffix.
473
+ */
474
+ id: string;
475
+ /** Human-readable name for admin / log UIs. */
476
+ displayName: string;
477
+ /** Key in the plugin's server-exports `channels` map. */
478
+ module: string;
479
+ /**
480
+ * Semver string marking the release this channel first
481
+ * appeared in. Same role as ToolContribution.since — the
482
+ * boot-time tool-delta detector treats new channels as a
483
+ * new capability surface worth telling the agent about.
484
+ */
485
+ since?: string;
486
+ }
441
487
  export {};
442
488
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}