@tianshu-ai/tianshu 0.5.9 → 0.7.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.
Files changed (153) hide show
  1. package/node_modules/@tianshu-ai/plugin-sdk/dist/bridge-token.d.ts +16 -0
  2. package/node_modules/@tianshu-ai/plugin-sdk/dist/bridge-token.d.ts.map +1 -0
  3. package/node_modules/@tianshu-ai/plugin-sdk/dist/bridge-token.js +8 -0
  4. package/node_modules/@tianshu-ai/plugin-sdk/dist/bridge-token.js.map +1 -0
  5. package/node_modules/@tianshu-ai/plugin-sdk/dist/capabilities.d.ts +4 -0
  6. package/node_modules/@tianshu-ai/plugin-sdk/dist/capabilities.d.ts.map +1 -1
  7. package/node_modules/@tianshu-ai/plugin-sdk/dist/capabilities.js +4 -0
  8. package/node_modules/@tianshu-ai/plugin-sdk/dist/capabilities.js.map +1 -1
  9. package/node_modules/@tianshu-ai/plugin-sdk/dist/client.d.ts +40 -0
  10. package/node_modules/@tianshu-ai/plugin-sdk/dist/client.d.ts.map +1 -1
  11. package/node_modules/@tianshu-ai/plugin-sdk/dist/client.js +46 -0
  12. package/node_modules/@tianshu-ai/plugin-sdk/dist/client.js.map +1 -1
  13. package/node_modules/@tianshu-ai/plugin-sdk/dist/index.d.ts +1 -0
  14. package/node_modules/@tianshu-ai/plugin-sdk/dist/index.d.ts.map +1 -1
  15. package/node_modules/@tianshu-ai/plugin-sdk/dist/index.js +1 -0
  16. package/node_modules/@tianshu-ai/plugin-sdk/dist/index.js.map +1 -1
  17. package/node_modules/@tianshu-ai/plugin-sdk/dist/server.d.ts +10 -0
  18. package/node_modules/@tianshu-ai/plugin-sdk/dist/server.d.ts.map +1 -1
  19. package/node_modules/@tianshu-ai/plugin-sdk/dist/server.js.map +1 -1
  20. package/node_modules/@tianshu-ai/plugin-sdk/src/bridge-token.ts +23 -0
  21. package/node_modules/@tianshu-ai/plugin-sdk/src/capabilities.ts +5 -0
  22. package/node_modules/@tianshu-ai/plugin-sdk/src/client.ts +107 -0
  23. package/node_modules/@tianshu-ai/plugin-sdk/src/index.ts +1 -0
  24. package/node_modules/@tianshu-ai/plugin-sdk/src/server.ts +7 -0
  25. package/package.json +1 -1
  26. package/packages/plugin-sdk/dist/bridge-token.d.ts +16 -0
  27. package/packages/plugin-sdk/dist/bridge-token.d.ts.map +1 -0
  28. package/packages/plugin-sdk/dist/bridge-token.js +8 -0
  29. package/packages/plugin-sdk/dist/bridge-token.js.map +1 -0
  30. package/packages/plugin-sdk/dist/capabilities.d.ts +4 -0
  31. package/packages/plugin-sdk/dist/capabilities.d.ts.map +1 -1
  32. package/packages/plugin-sdk/dist/capabilities.js +4 -0
  33. package/packages/plugin-sdk/dist/capabilities.js.map +1 -1
  34. package/packages/plugin-sdk/dist/client.d.ts +40 -0
  35. package/packages/plugin-sdk/dist/client.d.ts.map +1 -1
  36. package/packages/plugin-sdk/dist/client.js +46 -0
  37. package/packages/plugin-sdk/dist/client.js.map +1 -1
  38. package/packages/plugin-sdk/dist/index.d.ts +1 -0
  39. package/packages/plugin-sdk/dist/index.d.ts.map +1 -1
  40. package/packages/plugin-sdk/dist/index.js +1 -0
  41. package/packages/plugin-sdk/dist/index.js.map +1 -1
  42. package/packages/plugin-sdk/dist/server.d.ts +10 -0
  43. package/packages/plugin-sdk/dist/server.d.ts.map +1 -1
  44. package/packages/plugin-sdk/dist/server.js.map +1 -1
  45. package/packages/server/builtinConfig/plugins/board/locales/en.json +9 -0
  46. package/packages/server/builtinConfig/plugins/board/locales/zh.json +9 -0
  47. package/packages/server/builtinConfig/plugins/cron/locales/en.json +42 -0
  48. package/packages/server/builtinConfig/plugins/cron/locales/zh.json +42 -0
  49. package/packages/server/builtinConfig/plugins/files/locales/en.json +36 -0
  50. package/packages/server/builtinConfig/plugins/files/locales/zh.json +36 -0
  51. package/packages/server/builtinConfig/plugins/microsandbox/locales/en.json +169 -0
  52. package/packages/server/builtinConfig/plugins/microsandbox/locales/zh.json +169 -0
  53. package/packages/server/builtinConfig/plugins/openshell/locales/en.json +38 -0
  54. package/packages/server/builtinConfig/plugins/openshell/locales/zh.json +38 -0
  55. package/packages/server/builtinConfig/plugins/reverse-mcp/locales/en.json +55 -0
  56. package/packages/server/builtinConfig/plugins/reverse-mcp/locales/zh.json +55 -0
  57. package/packages/server/builtinConfig/plugins/reverse-mcp/manifest.json +42 -0
  58. package/packages/server/builtinConfig/plugins/web-search/locales/en.json +9 -0
  59. package/packages/server/builtinConfig/plugins/web-search/locales/zh.json +9 -0
  60. package/packages/server/builtinConfig/plugins/wechat/locales/en.json +50 -0
  61. package/packages/server/builtinConfig/plugins/wechat/locales/zh.json +50 -0
  62. package/packages/server/builtinConfig/plugins/wiki/locales/en.json +54 -0
  63. package/packages/server/builtinConfig/plugins/wiki/locales/zh.json +54 -0
  64. package/packages/server/builtinConfig/plugins/workboard/locales/en.json +206 -0
  65. package/packages/server/builtinConfig/plugins/workboard/locales/zh.json +206 -0
  66. package/packages/server/builtinConfig/plugins/workforce-studio/locales/en.json +249 -0
  67. package/packages/server/builtinConfig/plugins/workforce-studio/locales/zh.json +249 -0
  68. package/packages/server/dist/chat/agent-tool-adapter.d.ts +8 -0
  69. package/packages/server/dist/chat/agent-tool-adapter.d.ts.map +1 -1
  70. package/packages/server/dist/chat/agent-tool-adapter.js +39 -2
  71. package/packages/server/dist/chat/agent-tool-adapter.js.map +1 -1
  72. package/packages/server/dist/chat/handler.d.ts.map +1 -1
  73. package/packages/server/dist/chat/handler.js +6 -0
  74. package/packages/server/dist/chat/handler.js.map +1 -1
  75. package/packages/server/dist/index.js +28 -0
  76. package/packages/server/dist/index.js.map +1 -1
  77. package/packages/server/dist/plugins-routes.d.ts +3 -3
  78. package/packages/server/package.json +2 -2
  79. package/packages/web/dist/assets/{bundle-web-ZwzMnR5D.js → bundle-web-CcugWwmS.js} +1 -1
  80. package/packages/web/dist/assets/index-C6_VXm5K.css +2 -0
  81. package/packages/web/dist/assets/index-D922c3X6.js +80 -0
  82. package/packages/web/dist/assets/{react-force-graph-2d-DaB-G8Ey.js → react-force-graph-2d-CNeOEg3N.js} +1 -1
  83. package/packages/web/dist/index.html +2 -2
  84. package/packages/web/package.json +2 -2
  85. package/plugins/board/dist/client.d.ts.map +1 -1
  86. package/plugins/board/dist/client.js +3 -2
  87. package/plugins/board/dist/client.js.map +1 -1
  88. package/plugins/cron/dist/client.d.ts.map +1 -1
  89. package/plugins/cron/dist/client.js +30 -13
  90. package/plugins/cron/dist/client.js.map +1 -1
  91. package/plugins/files/dist/client.d.ts.map +1 -1
  92. package/plugins/files/dist/client.js +49 -35
  93. package/plugins/files/dist/client.js.map +1 -1
  94. package/plugins/microsandbox/dist/client.d.ts.map +1 -1
  95. package/plugins/microsandbox/dist/client.js +94 -67
  96. package/plugins/microsandbox/dist/client.js.map +1 -1
  97. package/plugins/openshell/dist/client.d.ts.map +1 -1
  98. package/plugins/openshell/dist/client.js +15 -11
  99. package/plugins/openshell/dist/client.js.map +1 -1
  100. package/plugins/reverse-mcp/dist/client.d.ts +4 -0
  101. package/plugins/reverse-mcp/dist/client.d.ts.map +1 -0
  102. package/plugins/reverse-mcp/dist/client.js +100 -0
  103. package/plugins/reverse-mcp/dist/client.js.map +1 -0
  104. package/plugins/reverse-mcp/dist/protocol.d.ts +55 -0
  105. package/plugins/reverse-mcp/dist/protocol.d.ts.map +1 -0
  106. package/plugins/reverse-mcp/dist/protocol.js +29 -0
  107. package/plugins/reverse-mcp/dist/protocol.js.map +1 -0
  108. package/plugins/reverse-mcp/dist/registry.d.ts +48 -0
  109. package/plugins/reverse-mcp/dist/registry.d.ts.map +1 -0
  110. package/plugins/reverse-mcp/dist/registry.js +109 -0
  111. package/plugins/reverse-mcp/dist/registry.js.map +1 -0
  112. package/plugins/reverse-mcp/dist/server.d.ts +6 -0
  113. package/plugins/reverse-mcp/dist/server.d.ts.map +1 -0
  114. package/plugins/reverse-mcp/dist/server.js +361 -0
  115. package/plugins/reverse-mcp/dist/server.js.map +7 -0
  116. package/plugins/reverse-mcp/dist/toolset.d.ts +14 -0
  117. package/plugins/reverse-mcp/dist/toolset.d.ts.map +1 -0
  118. package/plugins/reverse-mcp/dist/toolset.js +187 -0
  119. package/plugins/reverse-mcp/dist/toolset.js.map +1 -0
  120. package/plugins/reverse-mcp/manifest.json +42 -0
  121. package/plugins/reverse-mcp/package.json +38 -0
  122. package/plugins/wechat/dist/client.d.ts.map +1 -1
  123. package/plugins/wechat/dist/client.js +21 -16
  124. package/plugins/wechat/dist/client.js.map +1 -1
  125. package/plugins/wiki/dist/client.d.ts.map +1 -1
  126. package/plugins/wiki/dist/client.js +36 -17
  127. package/plugins/wiki/dist/client.js.map +1 -1
  128. package/plugins/workboard/dist/client.d.ts.map +1 -1
  129. package/plugins/workboard/dist/client.js +116 -68
  130. package/plugins/workboard/dist/client.js.map +1 -1
  131. package/plugins/workboard/dist/worker-agents-page.d.ts.map +1 -1
  132. package/plugins/workboard/dist/worker-agents-page.js +15 -9
  133. package/plugins/workboard/dist/worker-agents-page.js.map +1 -1
  134. package/plugins/workforce-studio/dist/client.d.ts.map +1 -1
  135. package/plugins/workforce-studio/dist/client.js +62 -52
  136. package/plugins/workforce-studio/dist/client.js.map +1 -1
  137. package/plugins/workforce-studio/dist/solution-editors.d.ts +7 -2
  138. package/plugins/workforce-studio/dist/solution-editors.d.ts.map +1 -1
  139. package/plugins/workforce-studio/dist/solution-editors.js +69 -68
  140. package/plugins/workforce-studio/dist/solution-editors.js.map +1 -1
  141. package/plugins/workforce-studio/dist/solution-inspector.d.ts +5 -1
  142. package/plugins/workforce-studio/dist/solution-inspector.d.ts.map +1 -1
  143. package/plugins/workforce-studio/dist/solution-inspector.js +45 -16
  144. package/plugins/workforce-studio/dist/solution-inspector.js.map +1 -1
  145. package/plugins/workforce-studio/dist/solution-tree.d.ts +5 -2
  146. package/plugins/workforce-studio/dist/solution-tree.d.ts.map +1 -1
  147. package/plugins/workforce-studio/dist/solution-tree.js +26 -24
  148. package/plugins/workforce-studio/dist/solution-tree.js.map +1 -1
  149. package/plugins/workforce-studio/dist/solution-view.d.ts.map +1 -1
  150. package/plugins/workforce-studio/dist/solution-view.js +25 -16
  151. package/plugins/workforce-studio/dist/solution-view.js.map +1 -1
  152. package/packages/web/dist/assets/index-BPUaBv6Q.js +0 -78
  153. package/packages/web/dist/assets/index-BPt5W96i.css +0 -2
@@ -0,0 +1,16 @@
1
+ export interface BridgeTokenGrant {
2
+ /** The token to pass as `Authorization: Bearer <token>` on /ws.
3
+ * Empty string when auth is disabled (the dev resolver needs none). */
4
+ token: string;
5
+ /** Whether the host currently enforces auth. When false, the client
6
+ * may connect without a token. */
7
+ authEnabled: boolean;
8
+ /** Token expiry (epoch ms), or null when not applicable (no auth). */
9
+ expiresAt: number | null;
10
+ }
11
+ export interface BridgeTokenCapability {
12
+ /** Mint a connection token for the given user in the bound tenant.
13
+ * `ttlSec` defaults to a long-lived device token (host-decided). */
14
+ mint(userId: string, ttlSec?: number): BridgeTokenGrant;
15
+ }
16
+ //# sourceMappingURL=bridge-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-token.d.ts","sourceRoot":"","sources":["../src/bridge-token.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B;4EACwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd;uCACmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC;yEACqE;IACrE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACzD"}
@@ -0,0 +1,8 @@
1
+ // host.bridgeToken capability — mint a connection token for a local
2
+ // Bridge client (reverse-MCP). The token authenticates the client's
3
+ // inbound WebSocket via the host's existing identity resolver chain, so
4
+ // no new auth surface is introduced. Tenant + user are pinned by the
5
+ // host to the capability's bound context; a plugin cannot mint for
6
+ // another tenant/user.
7
+ export {};
8
+ //# sourceMappingURL=bridge-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-token.js","sourceRoot":"","sources":["../src/bridge-token.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,mEAAmE;AACnE,uBAAuB"}
@@ -59,6 +59,10 @@ export declare const KNOWN_CAPABILITIES: {
59
59
  readonly exclusive: true;
60
60
  readonly description: "File a compacted conversation segment into the user's LLM Wiki as a source page. Provided by the `wiki` plugin; the host's compaction path calls it (best-effort, fire-and-forget) after each compact so the rolling window's distilled history accrues into an Obsidian-style knowledge vault. No-op when the wiki plugin isn't enabled.";
61
61
  };
62
+ readonly "host.bridgeToken": {
63
+ readonly exclusive: true;
64
+ readonly description: "Mint a long-lived, revocable connection token scoped to the current tenant + user, for a local Bridge client to authenticate its inbound WebSocket (reverse-MCP). The token is a standard session credential the host's identity resolver already accepts, so no new auth path is added. When auth is disabled (dev), returns an empty token (the dev resolver needs none). Provided by the host; the reverse-mcp plugin uses it to render a ready-to-run connect command.";
65
+ };
62
66
  };
63
67
  export type CapabilityName = keyof typeof KNOWN_CAPABILITIES;
64
68
  /** True iff the given string is a registered capability name. */
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB;;iBAE3B,SAAS;iBACT,WAAW,EACT,8EAA8E;;;iBAGhF,SAAS;iBACT,WAAW,EACT,0SAA0S;;;iBAG5S,SAAS;iBACT,WAAW,EACT,0HAA0H;;;iBAG5H,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,sWAAsW;;;iBAGxW,SAAS;iBACT,WAAW,EACT,qTAAqT;;;iBAGvT,SAAS;iBACT,WAAW,EACT,oNAAoN;;;iBAGtN,SAAS;iBACT,WAAW,EACT,sRAAsR;;;iBAGxR,SAAS;iBACT,WAAW,EACT,iXAAiX;;;iBAGnX,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,uUAAuU;;;iBAGzU,SAAS;iBACT,WAAW,EACT,kWAAkW;;;iBAGpW,SAAS;iBACT,WAAW,EACT,0VAA0V;;;iBAG5V,SAAS;iBACT,WAAW,EACT,2UAA2U;;CAE9R,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE7D,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,cAAc,CAE/D;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEvE"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB;;iBAE3B,SAAS;iBACT,WAAW,EACT,8EAA8E;;;iBAGhF,SAAS;iBACT,WAAW,EACT,0SAA0S;;;iBAG5S,SAAS;iBACT,WAAW,EACT,0HAA0H;;;iBAG5H,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,sWAAsW;;;iBAGxW,SAAS;iBACT,WAAW,EACT,qTAAqT;;;iBAGvT,SAAS;iBACT,WAAW,EACT,oNAAoN;;;iBAGtN,SAAS;iBACT,WAAW,EACT,sRAAsR;;;iBAGxR,SAAS;iBACT,WAAW,EACT,iXAAiX;;;iBAGnX,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,uUAAuU;;;iBAGzU,SAAS;iBACT,WAAW,EACT,kWAAkW;;;iBAGpW,SAAS;iBACT,WAAW,EACT,0VAA0V;;;iBAG5V,SAAS;iBACT,WAAW,EACT,2UAA2U;;;iBAG7U,SAAS;iBACT,WAAW,EACT,4cAA4c;;CAE/Z,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE7D,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,cAAc,CAE/D;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEvE"}
@@ -69,6 +69,10 @@ export const KNOWN_CAPABILITIES = {
69
69
  exclusive: true,
70
70
  description: "File a compacted conversation segment into the user's LLM Wiki as a source page. Provided by the `wiki` plugin; the host's compaction path calls it (best-effort, fire-and-forget) after each compact so the rolling window's distilled history accrues into an Obsidian-style knowledge vault. No-op when the wiki plugin isn't enabled.",
71
71
  },
72
+ "host.bridgeToken": {
73
+ exclusive: true,
74
+ description: "Mint a long-lived, revocable connection token scoped to the current tenant + user, for a local Bridge client to authenticate its inbound WebSocket (reverse-MCP). The token is a standard session credential the host's identity resolver already accepts, so no new auth path is added. When auth is disabled (dev), returns an empty token (the dev resolver needs none). Provided by the host; the reverse-mcp plugin uses it to render a ready-to-run connect command.",
75
+ },
72
76
  };
73
77
  /** True iff the given string is a registered capability name. */
74
78
  export function isCapabilityName(s) {
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,EAAE;AACF,mBAAmB;AACnB,kEAAkE;AAClE,+DAA+D;AAC/D,mCAAmC;AACnC,kEAAkE;AAClE,2DAA2D;AAO3D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;QACf,WAAW,EACT,8EAA8E;KACjF;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0SAA0S;KAC7S;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0HAA0H;KAC7H;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sWAAsW;KACzW;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,qTAAqT;KACxT;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,oNAAoN;KACvN;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sRAAsR;KACzR;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;QACf,WAAW,EACT,iXAAiX;KACpX;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uUAAuU;KAC1U;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,kWAAkW;KACrW;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0VAA0V;KAC7V;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,2UAA2U;KAC9U;CACgD,CAAC;AAIpD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,EAAE;AACF,mBAAmB;AACnB,kEAAkE;AAClE,+DAA+D;AAC/D,mCAAmC;AACnC,kEAAkE;AAClE,2DAA2D;AAO3D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;QACf,WAAW,EACT,8EAA8E;KACjF;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0SAA0S;KAC7S;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0HAA0H;KAC7H;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sWAAsW;KACzW;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,qTAAqT;KACxT;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,oNAAoN;KACvN;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sRAAsR;KACzR;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;QACf,WAAW,EACT,iXAAiX;KACpX;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uUAAuU;KAC1U;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,kWAAkW;KACrW;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0VAA0V;KAC7V;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,2UAA2U;KAC9U;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,4cAA4c;KAC/c;CACgD,CAAC;AAIpD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC"}
@@ -293,6 +293,46 @@ export declare function __resetUseThemeForTest(): void;
293
293
  /** Hook plugins call. Returns the live theme state; re-renders
294
294
  * the consuming component on theme change. */
295
295
  export declare function useTheme(): ThemeApi;
296
+ export type PluginLocale = "en" | "zh";
297
+ export interface LocaleApi {
298
+ /** Currently-active locale. Two values today (en / zh); the
299
+ * union may grow when the host adds locales. */
300
+ locale: PluginLocale;
301
+ /** Translate a FULL namespaced key. Plugin components typically
302
+ * reach `t` through `usePluginT(pluginId)` which auto-prefixes
303
+ * `plugin.<id>.`; direct callers pass the full key themselves.
304
+ * `{param}` placeholders in the resolved string are replaced
305
+ * with the matching entry from `params`. Missing translations
306
+ * fall back to the raw key so a call never renders empty. */
307
+ t: (key: string, params?: Record<string, string | number>) => string;
308
+ }
309
+ /** Host-only: install the live `useLocale()` accessor. The web
310
+ * bundle calls this once on bootstrap with a function that reads
311
+ * the host's locale state and merged plugin dictionaries. */
312
+ export declare function __installUseLocale(fn: () => LocaleApi): void;
313
+ /** Test helper. */
314
+ export declare function __resetUseLocaleForTest(): void;
315
+ /** Hook returning the host's current locale + translator. Safe to
316
+ * call outside a host (returns an identity `t` that echoes the
317
+ * key back) so plugin components stay renderable in tests. */
318
+ export declare function useLocale(): LocaleApi;
319
+ /**
320
+ * Convenience wrapper for a plugin's own component code. Returns a
321
+ * `t(shortKey, params?)` that auto-prefixes `plugin.<pluginId>.`
322
+ * before delegating to the host's installed translator.
323
+ *
324
+ * Example — inside the workboard plugin:
325
+ *
326
+ * const t = usePluginT("workboard");
327
+ * t("workers.title"); // → plugin.workboard.workers.title
328
+ * t("workers.busyCount", // → plugin.workboard.workers.busyCount
329
+ * { busy: 2, total: 5 }); // with {busy}/{total} interpolated
330
+ *
331
+ * The returned function re-derives on every render so a locale
332
+ * flip re-renders the consuming component (via the underlying
333
+ * `useLocale()` subscription).
334
+ */
335
+ export declare function usePluginT(pluginId: string): (key: string, params?: Record<string, string | number>) => string;
296
336
  export interface ChatNavApi {
297
337
  /** What the chat area is currently showing. null = webchat. */
298
338
  viewingSessionId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -147,6 +147,52 @@ export function useTheme() {
147
147
  }
148
148
  return fn();
149
149
  }
150
+ function localeSlot() {
151
+ return globalThis;
152
+ }
153
+ /** Host-only: install the live `useLocale()` accessor. The web
154
+ * bundle calls this once on bootstrap with a function that reads
155
+ * the host's locale state and merged plugin dictionaries. */
156
+ export function __installUseLocale(fn) {
157
+ localeSlot().__tianshuPluginSdkLocaleHook__ = fn;
158
+ }
159
+ /** Test helper. */
160
+ export function __resetUseLocaleForTest() {
161
+ delete localeSlot().__tianshuPluginSdkLocaleHook__;
162
+ }
163
+ /** Hook returning the host's current locale + translator. Safe to
164
+ * call outside a host (returns an identity `t` that echoes the
165
+ * key back) so plugin components stay renderable in tests. */
166
+ export function useLocale() {
167
+ const fn = localeSlot().__tianshuPluginSdkLocaleHook__;
168
+ if (!fn) {
169
+ return {
170
+ locale: "en",
171
+ t: (k) => k,
172
+ };
173
+ }
174
+ return fn();
175
+ }
176
+ /**
177
+ * Convenience wrapper for a plugin's own component code. Returns a
178
+ * `t(shortKey, params?)` that auto-prefixes `plugin.<pluginId>.`
179
+ * before delegating to the host's installed translator.
180
+ *
181
+ * Example — inside the workboard plugin:
182
+ *
183
+ * const t = usePluginT("workboard");
184
+ * t("workers.title"); // → plugin.workboard.workers.title
185
+ * t("workers.busyCount", // → plugin.workboard.workers.busyCount
186
+ * { busy: 2, total: 5 }); // with {busy}/{total} interpolated
187
+ *
188
+ * The returned function re-derives on every render so a locale
189
+ * flip re-renders the consuming component (via the underlying
190
+ * `useLocale()` subscription).
191
+ */
192
+ export function usePluginT(pluginId) {
193
+ const { t } = useLocale();
194
+ return (key, params) => t(`plugin.${pluginId}.${key}`, params);
195
+ }
150
196
  function chatNavSlot() {
151
197
  return globalThis;
152
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export * from "./manifest.js";
3
3
  export * from "./server.js";
4
4
  export * from "./agent-loop.js";
5
5
  export * from "./session-inbox.js";
6
+ export * from "./bridge-token.js";
6
7
  export * from "./catalog.js";
7
8
  export * from "./opencode-proxy.js";
8
9
  export * from "./lsp.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC"}
@@ -13,6 +13,7 @@ export * from "./manifest.js";
13
13
  export * from "./server.js";
14
14
  export * from "./agent-loop.js";
15
15
  export * from "./session-inbox.js";
16
+ export * from "./bridge-token.js";
16
17
  export * from "./catalog.js";
17
18
  export * from "./opencode-proxy.js";
18
19
  export * from "./lsp.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,qEAAqE;AACrE,iCAAiC;AACjC,EAAE;AACF,wEAAwE;AACxE,iEAAiE;AACjE,0BAA0B;AAE1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,qBAAqB,GAStB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,qEAAqE;AACrE,iCAAiC;AACjC,EAAE;AACF,wEAAwE;AACxE,iEAAiE;AACjE,0BAA0B;AAE1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,qBAAqB,GAStB,MAAM,kBAAkB,CAAC"}
@@ -352,6 +352,16 @@ export interface ToolResult {
352
352
  text: string;
353
353
  /** Optional structured payload preserved verbatim. */
354
354
  data?: unknown;
355
+ /** Optional images to include in the tool result so a vision model
356
+ * can SEE them this turn. Each entry is base64 image bytes (no
357
+ * `data:` prefix) + a mimeType. Use sparingly and on-demand: images
358
+ * count against context. Prefer returning a file PATH from a
359
+ * capture tool and only inlining bytes here from an explicit
360
+ * "view this image" tool the agent calls when it needs to look. */
361
+ images?: Array<{
362
+ base64: string;
363
+ mimeType?: string;
364
+ }>;
355
365
  /** Plugin-defined extras. Allowed but discouraged. */
356
366
  [key: string]: unknown;
357
367
  }
@@ -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;AAqZrE,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;AA4ZrE,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"}
@@ -0,0 +1,23 @@
1
+ // host.bridgeToken capability — mint a connection token for a local
2
+ // Bridge client (reverse-MCP). The token authenticates the client's
3
+ // inbound WebSocket via the host's existing identity resolver chain, so
4
+ // no new auth surface is introduced. Tenant + user are pinned by the
5
+ // host to the capability's bound context; a plugin cannot mint for
6
+ // another tenant/user.
7
+
8
+ export interface BridgeTokenGrant {
9
+ /** The token to pass as `Authorization: Bearer <token>` on /ws.
10
+ * Empty string when auth is disabled (the dev resolver needs none). */
11
+ token: string;
12
+ /** Whether the host currently enforces auth. When false, the client
13
+ * may connect without a token. */
14
+ authEnabled: boolean;
15
+ /** Token expiry (epoch ms), or null when not applicable (no auth). */
16
+ expiresAt: number | null;
17
+ }
18
+
19
+ export interface BridgeTokenCapability {
20
+ /** Mint a connection token for the given user in the bound tenant.
21
+ * `ttlSec` defaults to a long-lived device token (host-decided). */
22
+ mint(userId: string, ttlSec?: number): BridgeTokenGrant;
23
+ }
@@ -89,6 +89,11 @@ export const KNOWN_CAPABILITIES = {
89
89
  description:
90
90
  "File a compacted conversation segment into the user's LLM Wiki as a source page. Provided by the `wiki` plugin; the host's compaction path calls it (best-effort, fire-and-forget) after each compact so the rolling window's distilled history accrues into an Obsidian-style knowledge vault. No-op when the wiki plugin isn't enabled.",
91
91
  },
92
+ "host.bridgeToken": {
93
+ exclusive: true,
94
+ description:
95
+ "Mint a long-lived, revocable connection token scoped to the current tenant + user, for a local Bridge client to authenticate its inbound WebSocket (reverse-MCP). The token is a standard session credential the host's identity resolver already accepts, so no new auth path is added. When auth is disabled (dev), returns an empty token (the dev resolver needs none). Provided by the host; the reverse-mcp plugin uses it to render a ready-to-run connect command.",
96
+ },
92
97
  } as const satisfies Record<string, CapabilitySpec>;
93
98
 
94
99
  export type CapabilityName = keyof typeof KNOWN_CAPABILITIES;
@@ -559,6 +559,113 @@ export function useTheme(): ThemeApi {
559
559
  return fn();
560
560
  }
561
561
 
562
+ // ─── i18n — host-managed locale + translation surface for plugins
563
+ //
564
+ // Design (see feat/plugin-i18n):
565
+ // • Each plugin ships flat JSON dictionaries at
566
+ // `plugins/<id>/locales/{en,zh}.json`. The host merges them
567
+ // into a global dict under the namespace `plugin.<id>.*` —
568
+ // so workboard's `workers.title` key becomes the global key
569
+ // `plugin.workboard.workers.title` after merge.
570
+ // • The host installs ONE global accessor that returns
571
+ // `{ locale, t(fullKey, params?) }`. `t` expects the FULL
572
+ // namespaced key (host UI strings and plugin strings share
573
+ // the same lookup surface).
574
+ // • Plugin components almost always want to write short keys
575
+ // scoped to their own plugin id — so alongside the raw
576
+ // `useLocale()` we expose a tiny helper `usePluginT(id)`
577
+ // that auto-prefixes `plugin.<id>.` before delegating to
578
+ // the host's `t`. Idiomatic plugin usage:
579
+ //
580
+ // const t = usePluginT("workboard");
581
+ // return <h2>{t("workers.title")}</h2>;
582
+ //
583
+ // Same install-once + globalSlot pattern as useTheme /
584
+ // useComposer / useChatNav so duplicated SDK copies in plugin
585
+ // bundles still resolve to the host's installed hook.
586
+ //
587
+ // Fallback (pre-install, unit tests): `useLocale()` returns
588
+ // `{ locale: "en", t: (k) => k }` — a plugin rendered without a
589
+ // host still paints the raw key rather than crashing.
590
+ //
591
+ // `{param}` interpolation matches the host's own `translate`
592
+ // helper: the host is expected to implement the same substitution
593
+ // inside the `t` it installs. Keys with no matching translation
594
+ // fall through to the raw key (again, matching host behaviour).
595
+
596
+ export type PluginLocale = "en" | "zh";
597
+
598
+ export interface LocaleApi {
599
+ /** Currently-active locale. Two values today (en / zh); the
600
+ * union may grow when the host adds locales. */
601
+ locale: PluginLocale;
602
+ /** Translate a FULL namespaced key. Plugin components typically
603
+ * reach `t` through `usePluginT(pluginId)` which auto-prefixes
604
+ * `plugin.<id>.`; direct callers pass the full key themselves.
605
+ * `{param}` placeholders in the resolved string are replaced
606
+ * with the matching entry from `params`. Missing translations
607
+ * fall back to the raw key so a call never renders empty. */
608
+ t: (key: string, params?: Record<string, string | number>) => string;
609
+ }
610
+
611
+ interface LocaleGlobalSlot {
612
+ __tianshuPluginSdkLocaleHook__?: () => LocaleApi;
613
+ }
614
+
615
+ function localeSlot(): LocaleGlobalSlot {
616
+ return globalThis as unknown as LocaleGlobalSlot;
617
+ }
618
+
619
+ /** Host-only: install the live `useLocale()` accessor. The web
620
+ * bundle calls this once on bootstrap with a function that reads
621
+ * the host's locale state and merged plugin dictionaries. */
622
+ export function __installUseLocale(fn: () => LocaleApi): void {
623
+ localeSlot().__tianshuPluginSdkLocaleHook__ = fn;
624
+ }
625
+
626
+ /** Test helper. */
627
+ export function __resetUseLocaleForTest(): void {
628
+ delete localeSlot().__tianshuPluginSdkLocaleHook__;
629
+ }
630
+
631
+ /** Hook returning the host's current locale + translator. Safe to
632
+ * call outside a host (returns an identity `t` that echoes the
633
+ * key back) so plugin components stay renderable in tests. */
634
+ export function useLocale(): LocaleApi {
635
+ const fn = localeSlot().__tianshuPluginSdkLocaleHook__;
636
+ if (!fn) {
637
+ return {
638
+ locale: "en",
639
+ t: (k) => k,
640
+ };
641
+ }
642
+ return fn();
643
+ }
644
+
645
+ /**
646
+ * Convenience wrapper for a plugin's own component code. Returns a
647
+ * `t(shortKey, params?)` that auto-prefixes `plugin.<pluginId>.`
648
+ * before delegating to the host's installed translator.
649
+ *
650
+ * Example — inside the workboard plugin:
651
+ *
652
+ * const t = usePluginT("workboard");
653
+ * t("workers.title"); // → plugin.workboard.workers.title
654
+ * t("workers.busyCount", // → plugin.workboard.workers.busyCount
655
+ * { busy: 2, total: 5 }); // with {busy}/{total} interpolated
656
+ *
657
+ * The returned function re-derives on every render so a locale
658
+ * flip re-renders the consuming component (via the underlying
659
+ * `useLocale()` subscription).
660
+ */
661
+ export function usePluginT(
662
+ pluginId: string,
663
+ ): (key: string, params?: Record<string, string | number>) => string {
664
+ const { t } = useLocale();
665
+ return (key: string, params?: Record<string, string | number>) =>
666
+ t(`plugin.${pluginId}.${key}`, params);
667
+ }
668
+
562
669
  // ─── ChatNav — host-managed selection of which session the chat
563
670
  // area is currently viewing.
564
671
  //
@@ -14,6 +14,7 @@ export * from "./manifest.js";
14
14
  export * from "./server.js";
15
15
  export * from "./agent-loop.js";
16
16
  export * from "./session-inbox.js";
17
+ export * from "./bridge-token.js";
17
18
  export * from "./catalog.js";
18
19
  export * from "./opencode-proxy.js";
19
20
  export * from "./lsp.js";
@@ -374,6 +374,13 @@ export interface ToolResult {
374
374
  text: string;
375
375
  /** Optional structured payload preserved verbatim. */
376
376
  data?: unknown;
377
+ /** Optional images to include in the tool result so a vision model
378
+ * can SEE them this turn. Each entry is base64 image bytes (no
379
+ * `data:` prefix) + a mimeType. Use sparingly and on-demand: images
380
+ * count against context. Prefer returning a file PATH from a
381
+ * capture tool and only inlining bytes here from an explicit
382
+ * "view this image" tool the agent calls when it needs to look. */
383
+ images?: Array<{ base64: string; mimeType?: string }>;
377
384
  /** Plugin-defined extras. Allowed but discouraged. */
378
385
  [key: string]: unknown;
379
386
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tianshu-ai/tianshu",
3
- "version": "0.5.9",
3
+ "version": "0.7.0",
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",
@@ -0,0 +1,16 @@
1
+ export interface BridgeTokenGrant {
2
+ /** The token to pass as `Authorization: Bearer <token>` on /ws.
3
+ * Empty string when auth is disabled (the dev resolver needs none). */
4
+ token: string;
5
+ /** Whether the host currently enforces auth. When false, the client
6
+ * may connect without a token. */
7
+ authEnabled: boolean;
8
+ /** Token expiry (epoch ms), or null when not applicable (no auth). */
9
+ expiresAt: number | null;
10
+ }
11
+ export interface BridgeTokenCapability {
12
+ /** Mint a connection token for the given user in the bound tenant.
13
+ * `ttlSec` defaults to a long-lived device token (host-decided). */
14
+ mint(userId: string, ttlSec?: number): BridgeTokenGrant;
15
+ }
16
+ //# sourceMappingURL=bridge-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-token.d.ts","sourceRoot":"","sources":["../src/bridge-token.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B;4EACwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd;uCACmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,sEAAsE;IACtE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC;yEACqE;IACrE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACzD"}
@@ -0,0 +1,8 @@
1
+ // host.bridgeToken capability — mint a connection token for a local
2
+ // Bridge client (reverse-MCP). The token authenticates the client's
3
+ // inbound WebSocket via the host's existing identity resolver chain, so
4
+ // no new auth surface is introduced. Tenant + user are pinned by the
5
+ // host to the capability's bound context; a plugin cannot mint for
6
+ // another tenant/user.
7
+ export {};
8
+ //# sourceMappingURL=bridge-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-token.js","sourceRoot":"","sources":["../src/bridge-token.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,oEAAoE;AACpE,wEAAwE;AACxE,qEAAqE;AACrE,mEAAmE;AACnE,uBAAuB"}
@@ -59,6 +59,10 @@ export declare const KNOWN_CAPABILITIES: {
59
59
  readonly exclusive: true;
60
60
  readonly description: "File a compacted conversation segment into the user's LLM Wiki as a source page. Provided by the `wiki` plugin; the host's compaction path calls it (best-effort, fire-and-forget) after each compact so the rolling window's distilled history accrues into an Obsidian-style knowledge vault. No-op when the wiki plugin isn't enabled.";
61
61
  };
62
+ readonly "host.bridgeToken": {
63
+ readonly exclusive: true;
64
+ readonly description: "Mint a long-lived, revocable connection token scoped to the current tenant + user, for a local Bridge client to authenticate its inbound WebSocket (reverse-MCP). The token is a standard session credential the host's identity resolver already accepts, so no new auth path is added. When auth is disabled (dev), returns an empty token (the dev resolver needs none). Provided by the host; the reverse-mcp plugin uses it to render a ready-to-run connect command.";
65
+ };
62
66
  };
63
67
  export type CapabilityName = keyof typeof KNOWN_CAPABILITIES;
64
68
  /** True iff the given string is a registered capability name. */
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB;;iBAE3B,SAAS;iBACT,WAAW,EACT,8EAA8E;;;iBAGhF,SAAS;iBACT,WAAW,EACT,0SAA0S;;;iBAG5S,SAAS;iBACT,WAAW,EACT,0HAA0H;;;iBAG5H,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,sWAAsW;;;iBAGxW,SAAS;iBACT,WAAW,EACT,qTAAqT;;;iBAGvT,SAAS;iBACT,WAAW,EACT,oNAAoN;;;iBAGtN,SAAS;iBACT,WAAW,EACT,sRAAsR;;;iBAGxR,SAAS;iBACT,WAAW,EACT,iXAAiX;;;iBAGnX,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,uUAAuU;;;iBAGzU,SAAS;iBACT,WAAW,EACT,kWAAkW;;;iBAGpW,SAAS;iBACT,WAAW,EACT,0VAA0V;;;iBAG5V,SAAS;iBACT,WAAW,EACT,2UAA2U;;CAE9R,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE7D,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,cAAc,CAE/D;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEvE"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB;;iBAE3B,SAAS;iBACT,WAAW,EACT,8EAA8E;;;iBAGhF,SAAS;iBACT,WAAW,EACT,0SAA0S;;;iBAG5S,SAAS;iBACT,WAAW,EACT,0HAA0H;;;iBAG5H,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,sWAAsW;;;iBAGxW,SAAS;iBACT,WAAW,EACT,qTAAqT;;;iBAGvT,SAAS;iBACT,WAAW,EACT,oNAAoN;;;iBAGtN,SAAS;iBACT,WAAW,EACT,sRAAsR;;;iBAGxR,SAAS;iBACT,WAAW,EACT,iXAAiX;;;iBAGnX,SAAS;iBACT,WAAW,EACT,uTAAuT;;;iBAGzT,SAAS;iBACT,WAAW,EACT,uUAAuU;;;iBAGzU,SAAS;iBACT,WAAW,EACT,kWAAkW;;;iBAGpW,SAAS;iBACT,WAAW,EACT,0VAA0V;;;iBAG5V,SAAS;iBACT,WAAW,EACT,2UAA2U;;;iBAG7U,SAAS;iBACT,WAAW,EACT,4cAA4c;;CAE/Z,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,kBAAkB,CAAC;AAE7D,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,cAAc,CAE/D;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEvE"}
@@ -69,6 +69,10 @@ export const KNOWN_CAPABILITIES = {
69
69
  exclusive: true,
70
70
  description: "File a compacted conversation segment into the user's LLM Wiki as a source page. Provided by the `wiki` plugin; the host's compaction path calls it (best-effort, fire-and-forget) after each compact so the rolling window's distilled history accrues into an Obsidian-style knowledge vault. No-op when the wiki plugin isn't enabled.",
71
71
  },
72
+ "host.bridgeToken": {
73
+ exclusive: true,
74
+ description: "Mint a long-lived, revocable connection token scoped to the current tenant + user, for a local Bridge client to authenticate its inbound WebSocket (reverse-MCP). The token is a standard session credential the host's identity resolver already accepts, so no new auth path is added. When auth is disabled (dev), returns an empty token (the dev resolver needs none). Provided by the host; the reverse-mcp plugin uses it to render a ready-to-run connect command.",
75
+ },
72
76
  };
73
77
  /** True iff the given string is a registered capability name. */
74
78
  export function isCapabilityName(s) {
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,EAAE;AACF,mBAAmB;AACnB,kEAAkE;AAClE,+DAA+D;AAC/D,mCAAmC;AACnC,kEAAkE;AAClE,2DAA2D;AAO3D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;QACf,WAAW,EACT,8EAA8E;KACjF;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0SAA0S;KAC7S;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0HAA0H;KAC7H;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sWAAsW;KACzW;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,qTAAqT;KACxT;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,oNAAoN;KACvN;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sRAAsR;KACzR;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;QACf,WAAW,EACT,iXAAiX;KACpX;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uUAAuU;KAC1U;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,kWAAkW;KACrW;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0VAA0V;KAC7V;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,2UAA2U;KAC9U;CACgD,CAAC;AAIpD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,iEAAiE;AACjE,iEAAiE;AACjE,sEAAsE;AACtE,oEAAoE;AACpE,0DAA0D;AAC1D,EAAE;AACF,mBAAmB;AACnB,kEAAkE;AAClE,+DAA+D;AAC/D,mCAAmC;AACnC,kEAAkE;AAClE,2DAA2D;AAO3D,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,eAAe,EAAE;QACf,SAAS,EAAE,IAAI;QACf,WAAW,EACT,8EAA8E;KACjF;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0SAA0S;KAC7S;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0HAA0H;KAC7H;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sWAAsW;KACzW;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,qTAAqT;KACxT;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,oNAAoN;KACvN;IACD,mBAAmB,EAAE;QACnB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,sRAAsR;KACzR;IACD,UAAU,EAAE;QACV,SAAS,EAAE,IAAI;QACf,WAAW,EACT,iXAAiX;KACpX;IACD,sBAAsB,EAAE;QACtB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uTAAuT;KAC1T;IACD,wBAAwB,EAAE;QACxB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,uUAAuU;KAC1U;IACD,gBAAgB,EAAE;QAChB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,kWAAkW;KACrW;IACD,oBAAoB,EAAE;QACpB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,0VAA0V;KAC7V;IACD,aAAa,EAAE;QACb,SAAS,EAAE,IAAI;QACf,WAAW,EACT,2UAA2U;KAC9U;IACD,kBAAkB,EAAE;QAClB,SAAS,EAAE,IAAI;QACf,WAAW,EACT,4cAA4c;KAC/c;CACgD,CAAC;AAIpD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,CAAS;IACxC,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC"}