@tianshu-ai/tianshu 0.81.0 → 0.83.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 (53) hide show
  1. package/README.md +32 -5
  2. package/node_modules/@tianshu-ai/plugin-sdk/dist/manifest.d.ts +58 -0
  3. package/node_modules/@tianshu-ai/plugin-sdk/dist/manifest.d.ts.map +1 -1
  4. package/node_modules/@tianshu-ai/plugin-sdk/src/manifest.ts +61 -0
  5. package/package.json +1 -1
  6. package/packages/plugin-sdk/dist/manifest.d.ts +58 -0
  7. package/packages/plugin-sdk/dist/manifest.d.ts.map +1 -1
  8. package/packages/server/builtinConfig/plugins/datasource/manifest.json +27 -0
  9. package/packages/server/builtinConfig/plugins/files/manifest.json +22 -0
  10. package/packages/server/builtinConfig/plugins/reverse-mcp/manifest.json +7 -0
  11. package/packages/server/builtinConfig/plugins/web-search/manifest.json +12 -0
  12. package/packages/server/dist/chat/handler.d.ts.map +1 -1
  13. package/packages/server/dist/chat/handler.js +28 -2
  14. package/packages/server/dist/chat/handler.js.map +1 -1
  15. package/packages/server/dist/chat/ws-protocol.d.ts +16 -0
  16. package/packages/server/dist/chat/ws-protocol.d.ts.map +1 -1
  17. package/packages/server/dist/chat/ws-protocol.js.map +1 -1
  18. package/packages/server/dist/core/plugins/discovery.d.ts.map +1 -1
  19. package/packages/server/dist/core/plugins/discovery.js +10 -2
  20. package/packages/server/dist/core/plugins/discovery.js.map +1 -1
  21. package/packages/server/dist/core/plugins/manifest.d.ts.map +1 -1
  22. package/packages/server/dist/core/plugins/manifest.js +72 -0
  23. package/packages/server/dist/core/plugins/manifest.js.map +1 -1
  24. package/packages/server/dist/setup/cli-agent.d.ts.map +1 -1
  25. package/packages/server/dist/setup/cli-agent.js +6 -5
  26. package/packages/server/dist/setup/cli-agent.js.map +1 -1
  27. package/packages/server/dist/setup/service-backend.d.ts +3 -3
  28. package/packages/server/dist/setup/service-backend.d.ts.map +1 -1
  29. package/packages/server/dist/setup/service-backend.js +13 -7
  30. package/packages/server/dist/setup/service-backend.js.map +1 -1
  31. package/packages/server/dist/setup/start-server.d.ts.map +1 -1
  32. package/packages/server/dist/setup/start-server.js +21 -4
  33. package/packages/server/dist/setup/start-server.js.map +1 -1
  34. package/packages/server/dist/setup/windows-service.d.ts +53 -0
  35. package/packages/server/dist/setup/windows-service.d.ts.map +1 -0
  36. package/packages/server/dist/setup/windows-service.js +328 -0
  37. package/packages/server/dist/setup/windows-service.js.map +1 -0
  38. package/packages/web/dist/assets/{DataSourceConfigForm-gP3ZJatB.js → DataSourceConfigForm-DD7BZ8-3.js} +1 -1
  39. package/packages/web/dist/assets/{bundle-web-BdM-MjNc.js → bundle-web-Cp4WTRlg.js} +1 -1
  40. package/packages/web/dist/assets/index-DFVYfz5E.css +2 -0
  41. package/packages/web/dist/assets/index-E6B_1zAu.js +326 -0
  42. package/packages/web/dist/assets/{react-force-graph-2d-BIMCyjqc.js → react-force-graph-2d-BgO0yF-8.js} +1 -1
  43. package/packages/web/dist/index.html +2 -2
  44. package/plugins/datasource/manifest.json +27 -0
  45. package/plugins/files/dist/index.d.ts +1 -0
  46. package/plugins/files/dist/index.d.ts.map +1 -0
  47. package/plugins/files/dist/index.js +2 -0
  48. package/plugins/files/dist/index.js.map +1 -0
  49. package/plugins/files/manifest.json +22 -0
  50. package/plugins/reverse-mcp/manifest.json +7 -0
  51. package/plugins/web-search/manifest.json +12 -0
  52. package/packages/web/dist/assets/index-BI3Esm5S.css +0 -2
  53. package/packages/web/dist/assets/index-BLu2GnFL.js +0 -298
package/README.md CHANGED
@@ -51,7 +51,7 @@
51
51
  | What | Why |
52
52
  |----------------|----------------------------------------------------|
53
53
  | **Node 22+** | Runtime. Use a Node manager (`nvm` / `volta` / `asdf`); avoid system Node with `sudo`. |
54
- | **Docker** (recommended) *or* **macOS Apple Silicon / Linux + KVM** | Sandbox layer. The default **OpenShell** backend needs a running Docker daemon (Docker Desktop / Colima / OrbStack / …). The alternative **microsandbox** backend needs hardware virt instead of Docker. Pick one — they're mutually exclusive. Chat still works without either, but `exec` / browser tools won't. |
54
+ | **Sandbox layer** (choose one) | **macOS / Linux**: OpenShell (Docker, recommended) or microsandbox (VZ.framework / KVM). **Windows**: Local Bridge — shell commands run directly on the host (no isolation, see Windows notes below). Chat still works without any sandbox, but `exec` / browser tools won't. |
55
55
  | **An LLM API key** | Anthropic, OpenAI, or Google. Or a local model server reachable on the network. |
56
56
 
57
57
  ### One command
@@ -102,13 +102,40 @@ tianshu setup --non-interactive --provider=openai --api-key=*** \
102
102
  tianshu start
103
103
  ```
104
104
 
105
- On macOS this installs a launchd agent
106
- (`~/Library/LaunchAgents/ai.tianshu.prod.plist`) that auto-starts
107
- at login and auto-restarts on crash. On Linux a systemd unit
108
- (`tianshu-prod.service`) is installed instead.
105
+ This installs a background service that auto-starts at login
106
+ and auto-restarts on crash:
107
+ - **macOS**: launchd agent (`~/Library/LaunchAgents/ai.tianshu.prod.plist`)
108
+ - **Linux**: systemd unit (`tianshu-prod.service`)
109
+ - **Windows**: Task Scheduler task (`Tianshu-Prod`,
110
+ logs at `%LOCALAPPDATA%\tianshu\logs\`)
109
111
 
110
112
  Open <http://localhost:3110> and start chatting.
111
113
 
114
+ ### Windows notes
115
+
116
+ Windows is supported with one caveat: **neither OpenShell nor
117
+ microsandbox runs natively**. OpenShell has no Windows binary
118
+ upstream; microsandbox needs Hyper-V plumbing we don't ship.
119
+ Use the **Local Bridge** plugin (`reverse-mcp`) instead — the
120
+ agent's shell commands execute directly on your Windows host
121
+ via a lightweight local client. Zero native dependencies,
122
+ but no sandbox isolation either; only use it for workflows
123
+ you'd trust yourself to run manually.
124
+
125
+ Setup after `tianshu start` finishes:
126
+ 1. In the web UI, **Settings → Plugins**, enable `reverse-mcp`
127
+ and disable any sandbox plugin.
128
+ 2. Install the Local Bridge client:
129
+ `npm install -g @tianshu-ai/local-bridge`
130
+ 3. Run `tianshu-local-bridge` in a terminal — it dials in to
131
+ the server and registers as the agent's shell + browser.
132
+ 4. Everything else (chat, workspace files, plugins, settings)
133
+ works the same as on macOS/Linux.
134
+
135
+ If you want full sandbox isolation on Windows, run tianshu
136
+ inside WSL2 instead — standard Linux install path, with the
137
+ native OpenShell backend.
138
+
112
139
  ### Finish setup in the UI — Maintenance Mode
113
140
 
114
141
  Once the server is running, open the web UI. Click **Maintenance
@@ -339,6 +339,56 @@ export interface PluginEntryRef {
339
339
  */
340
340
  entry: string;
341
341
  }
342
+ /**
343
+ * Declarative display hint for a plugin-contributed tool's input/output
344
+ * in the chat UI's expanded tool-call detail view. Plugins declare these
345
+ * in `contributes.toolDisplay[]`; the host collects them and ships them
346
+ * to the frontend so `ToolCallDetail` can pick a renderer without
347
+ * hard-coding tool-name checks.
348
+ *
349
+ * `tool` supports trailing wildcards: `"ds_*"` matches `ds_query`,
350
+ * `ds_execute`, etc. Exact names take priority over wildcards.
351
+ */
352
+ export interface ToolDisplayContribution {
353
+ /** Tool name. Supports trailing wildcard: `"ds_*"` matches any
354
+ * tool whose name starts with `ds_`. */
355
+ tool: string;
356
+ /** Input (arguments) display configuration. */
357
+ input?: {
358
+ /** Rendering format for the tool's arguments.
359
+ * - `"terminal"` — faux-terminal (`$ command` + stdout).
360
+ * - `"key-value"` — labelled key: value pairs.
361
+ * - `"sql"` — SQL-highlighted code block.
362
+ * - `"code"` — generic code block (use `language` on output).
363
+ * - `"hidden"` — don't show input at all.
364
+ */
365
+ format: "terminal" | "key-value" | "sql" | "code" | "hidden";
366
+ /** Parameter label overrides: `{ panel: "Panel", action: "Action" }`. */
367
+ labels?: Record<string, string>;
368
+ /** Only show these parameters (whitelist). */
369
+ pick?: string[];
370
+ /** Hide these parameters (blacklist, e.g. `["_title"]`). */
371
+ omit?: string[];
372
+ };
373
+ /** Output (result) display configuration. */
374
+ output?: {
375
+ /** Rendering format for the tool's result.
376
+ * - `"terminal"` — faux-terminal output.
377
+ * - `"markdown"` — render as Markdown.
378
+ * - `"table"` — tabular display.
379
+ * - `"json"` — syntax-highlighted JSON.
380
+ * - `"code"` — code block with optional language.
381
+ * - `"files"` — structured file list with icons and sizes.
382
+ * - `"plain"` — monospace pre block.
383
+ */
384
+ format: "terminal" | "markdown" | "table" | "json" | "code" | "files" | "plain";
385
+ /** Extract this field from a JSON result object for display
386
+ * (e.g. `"message"`, `"stdout"`). */
387
+ extract?: string;
388
+ /** Language hint for `"code"` format (e.g. `"sql"`, `"json"`). */
389
+ language?: string;
390
+ };
391
+ }
342
392
  export interface ContributesV1 {
343
393
  topBarButtons?: TopBarButtonContribution[];
344
394
  rightPanels?: RightPanelContribution[];
@@ -450,6 +500,14 @@ export interface ContributesV1 {
450
500
  attachmentRenderers?: AttachmentRendererContribution[];
451
501
  apiRoutes?: ApiRouteContribution[];
452
502
  wsMessages?: WsMessageContribution[];
503
+ /**
504
+ * Declarative display hints for this plugin's tools in the chat
505
+ * UI's expanded tool-call detail view. Each entry maps a tool name
506
+ * (or wildcard pattern) to input/output rendering preferences.
507
+ * The host collects all active plugins' entries and ships the
508
+ * merged config to the frontend on WS connect.
509
+ */
510
+ toolDisplay?: ToolDisplayContribution[];
453
511
  }
454
512
  export type SandboxKind = "shell" | "bridge";
455
513
  export interface SandboxContribution {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;sCACkC;IAClC,YAAY,EAAE,sBAAsB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,sBAAsB;IACrC;;iBAEa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;6DAEyD;IACzD,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;IAClD;;;;;8CAK0C;IAC1C,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B;;;;qDAIiD;IACjD,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC;;;qBAGiB;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ;;4CAEwC;IACxC,EAAE,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC;IACzC;2DACuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC;6CACyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GACzB,qBAAqB,GACrB,uBAAuB,GACvB,uBAAuB,GACvB,uBAAuB,GACvB,uBAAuB,CAAC;AAE5B,UAAU,qBAAqB;IAC7B,yEAAyE;IACzE,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd;qDACiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,IAAI,EAAE,QAAQ,CAAC;IACf;qDACiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;iCAE6B;IAC7B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD;;;iEAG6D;IAC7D,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC3C,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC/C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,EAAE,gCAAgC,EAAE,CAAC;IAC3D;;;;;OAKG;IACH,eAAe,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAC/C;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,8BAA8B,EAAE,CAAC;IACvD,SAAS,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACtC;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX;;;+CAG2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;sDACkD;IAClD,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC;mBACe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf;4BACwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gCAAgC;IAC/C,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB;yCACqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;0EAGsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;wDACoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;+CAC2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;gCAE4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
@@ -363,6 +363,59 @@ export interface PluginEntryRef {
363
363
  entry: string;
364
364
  }
365
365
 
366
+ // ─── Tool Display (ADR-0003 §14) ──────────────────────────────────
367
+
368
+ /**
369
+ * Declarative display hint for a plugin-contributed tool's input/output
370
+ * in the chat UI's expanded tool-call detail view. Plugins declare these
371
+ * in `contributes.toolDisplay[]`; the host collects them and ships them
372
+ * to the frontend so `ToolCallDetail` can pick a renderer without
373
+ * hard-coding tool-name checks.
374
+ *
375
+ * `tool` supports trailing wildcards: `"ds_*"` matches `ds_query`,
376
+ * `ds_execute`, etc. Exact names take priority over wildcards.
377
+ */
378
+ export interface ToolDisplayContribution {
379
+ /** Tool name. Supports trailing wildcard: `"ds_*"` matches any
380
+ * tool whose name starts with `ds_`. */
381
+ tool: string;
382
+ /** Input (arguments) display configuration. */
383
+ input?: {
384
+ /** Rendering format for the tool's arguments.
385
+ * - `"terminal"` — faux-terminal (`$ command` + stdout).
386
+ * - `"key-value"` — labelled key: value pairs.
387
+ * - `"sql"` — SQL-highlighted code block.
388
+ * - `"code"` — generic code block (use `language` on output).
389
+ * - `"hidden"` — don't show input at all.
390
+ */
391
+ format: "terminal" | "key-value" | "sql" | "code" | "hidden";
392
+ /** Parameter label overrides: `{ panel: "Panel", action: "Action" }`. */
393
+ labels?: Record<string, string>;
394
+ /** Only show these parameters (whitelist). */
395
+ pick?: string[];
396
+ /** Hide these parameters (blacklist, e.g. `["_title"]`). */
397
+ omit?: string[];
398
+ };
399
+ /** Output (result) display configuration. */
400
+ output?: {
401
+ /** Rendering format for the tool's result.
402
+ * - `"terminal"` — faux-terminal output.
403
+ * - `"markdown"` — render as Markdown.
404
+ * - `"table"` — tabular display.
405
+ * - `"json"` — syntax-highlighted JSON.
406
+ * - `"code"` — code block with optional language.
407
+ * - `"files"` — structured file list with icons and sizes.
408
+ * - `"plain"` — monospace pre block.
409
+ */
410
+ format: "terminal" | "markdown" | "table" | "json" | "code" | "files" | "plain";
411
+ /** Extract this field from a JSON result object for display
412
+ * (e.g. `"message"`, `"stdout"`). */
413
+ extract?: string;
414
+ /** Language hint for `"code"` format (e.g. `"sql"`, `"json"`). */
415
+ language?: string;
416
+ };
417
+ }
418
+
366
419
  export interface ContributesV1 {
367
420
  topBarButtons?: TopBarButtonContribution[];
368
421
  rightPanels?: RightPanelContribution[];
@@ -474,6 +527,14 @@ export interface ContributesV1 {
474
527
  attachmentRenderers?: AttachmentRendererContribution[];
475
528
  apiRoutes?: ApiRouteContribution[];
476
529
  wsMessages?: WsMessageContribution[];
530
+ /**
531
+ * Declarative display hints for this plugin's tools in the chat
532
+ * UI's expanded tool-call detail view. Each entry maps a tool name
533
+ * (or wildcard pattern) to input/output rendering preferences.
534
+ * The host collects all active plugins' entries and ships the
535
+ * merged config to the frontend on WS connect.
536
+ */
537
+ toolDisplay?: ToolDisplayContribution[];
477
538
  }
478
539
 
479
540
  export type SandboxKind = "shell" | "bridge";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tianshu-ai/tianshu",
3
- "version": "0.81.0",
3
+ "version": "0.83.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",
@@ -339,6 +339,56 @@ export interface PluginEntryRef {
339
339
  */
340
340
  entry: string;
341
341
  }
342
+ /**
343
+ * Declarative display hint for a plugin-contributed tool's input/output
344
+ * in the chat UI's expanded tool-call detail view. Plugins declare these
345
+ * in `contributes.toolDisplay[]`; the host collects them and ships them
346
+ * to the frontend so `ToolCallDetail` can pick a renderer without
347
+ * hard-coding tool-name checks.
348
+ *
349
+ * `tool` supports trailing wildcards: `"ds_*"` matches `ds_query`,
350
+ * `ds_execute`, etc. Exact names take priority over wildcards.
351
+ */
352
+ export interface ToolDisplayContribution {
353
+ /** Tool name. Supports trailing wildcard: `"ds_*"` matches any
354
+ * tool whose name starts with `ds_`. */
355
+ tool: string;
356
+ /** Input (arguments) display configuration. */
357
+ input?: {
358
+ /** Rendering format for the tool's arguments.
359
+ * - `"terminal"` — faux-terminal (`$ command` + stdout).
360
+ * - `"key-value"` — labelled key: value pairs.
361
+ * - `"sql"` — SQL-highlighted code block.
362
+ * - `"code"` — generic code block (use `language` on output).
363
+ * - `"hidden"` — don't show input at all.
364
+ */
365
+ format: "terminal" | "key-value" | "sql" | "code" | "hidden";
366
+ /** Parameter label overrides: `{ panel: "Panel", action: "Action" }`. */
367
+ labels?: Record<string, string>;
368
+ /** Only show these parameters (whitelist). */
369
+ pick?: string[];
370
+ /** Hide these parameters (blacklist, e.g. `["_title"]`). */
371
+ omit?: string[];
372
+ };
373
+ /** Output (result) display configuration. */
374
+ output?: {
375
+ /** Rendering format for the tool's result.
376
+ * - `"terminal"` — faux-terminal output.
377
+ * - `"markdown"` — render as Markdown.
378
+ * - `"table"` — tabular display.
379
+ * - `"json"` — syntax-highlighted JSON.
380
+ * - `"code"` — code block with optional language.
381
+ * - `"files"` — structured file list with icons and sizes.
382
+ * - `"plain"` — monospace pre block.
383
+ */
384
+ format: "terminal" | "markdown" | "table" | "json" | "code" | "files" | "plain";
385
+ /** Extract this field from a JSON result object for display
386
+ * (e.g. `"message"`, `"stdout"`). */
387
+ extract?: string;
388
+ /** Language hint for `"code"` format (e.g. `"sql"`, `"json"`). */
389
+ language?: string;
390
+ };
391
+ }
342
392
  export interface ContributesV1 {
343
393
  topBarButtons?: TopBarButtonContribution[];
344
394
  rightPanels?: RightPanelContribution[];
@@ -450,6 +500,14 @@ export interface ContributesV1 {
450
500
  attachmentRenderers?: AttachmentRendererContribution[];
451
501
  apiRoutes?: ApiRouteContribution[];
452
502
  wsMessages?: WsMessageContribution[];
503
+ /**
504
+ * Declarative display hints for this plugin's tools in the chat
505
+ * UI's expanded tool-call detail view. Each entry maps a tool name
506
+ * (or wildcard pattern) to input/output rendering preferences.
507
+ * The host collects all active plugins' entries and ships the
508
+ * merged config to the frontend on WS connect.
509
+ */
510
+ toolDisplay?: ToolDisplayContribution[];
453
511
  }
454
512
  export type SandboxKind = "shell" | "bridge";
455
513
  export interface SandboxContribution {
@@ -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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"}
@@ -39,6 +39,33 @@
39
39
  "text": "Data Source tools: ds_list (list connections), ds_query (read query), ds_execute (write query), ds_schema (inspect schema), ds_panel (push query to UI panel).\nSupported types: MySQL (SQL), Neo4j (Cypher), REST API (HTTP method + path, e.g. 'GET /users?limit=10').\n\nWhen creating Board apps (HTML dashboards), use the injected board.ds() API to query databases directly from the board:\n\n const { connections } = await board.dsList()\n // connections: [{name, type, description}]\n\n const { columns, rows, rowCount, error } = await board.ds(source, query, params?)\n // source: data source name from dsList()\n // query: SQL or Cypher string\n // params: optional query parameters object\n\nExample:\n const { rows } = await board.ds('helu-graph', 'MATCH (p:Product) RETURN p.title, p.price LIMIT 10');\n rows.forEach(r => console.log(r['p.title']));\n\nboard.ds() and board.dsList() are available globally on window.board in any board app. No API keys needed."
40
40
  }
41
41
  ],
42
+ "toolDisplay": [
43
+ {
44
+ "tool": "ds_query",
45
+ "input": { "format": "sql", "omit": ["_title"] },
46
+ "output": { "format": "table" }
47
+ },
48
+ {
49
+ "tool": "ds_execute",
50
+ "input": { "format": "sql", "omit": ["_title"] },
51
+ "output": { "format": "plain" }
52
+ },
53
+ {
54
+ "tool": "ds_schema",
55
+ "input": { "format": "key-value", "labels": { "source": "Source", "table": "Table" } },
56
+ "output": { "format": "json" }
57
+ },
58
+ {
59
+ "tool": "ds_list",
60
+ "input": { "format": "hidden" },
61
+ "output": { "format": "json" }
62
+ },
63
+ {
64
+ "tool": "ds_panel",
65
+ "input": { "format": "sql", "omit": ["_title"] },
66
+ "output": { "format": "plain" }
67
+ }
68
+ ],
42
69
  "apiRoutes": [
43
70
  { "method": "GET", "path": "/status", "handler": "getStatus" },
44
71
  { "method": "GET", "path": "/connections", "handler": "listConnections" },
@@ -153,6 +153,28 @@
153
153
  "since": "0.1.0"
154
154
  }
155
155
  ],
156
+ "toolDisplay": [
157
+ {
158
+ "tool": "read_file",
159
+ "input": { "format": "key-value", "pick": ["path"], "labels": { "path": "File" } },
160
+ "output": { "format": "code" }
161
+ },
162
+ {
163
+ "tool": "write_file",
164
+ "input": { "format": "key-value", "pick": ["path"], "labels": { "path": "File" } },
165
+ "output": { "format": "plain" }
166
+ },
167
+ {
168
+ "tool": "edit_file",
169
+ "input": { "format": "code" },
170
+ "output": { "format": "plain" }
171
+ },
172
+ {
173
+ "tool": "list_dir",
174
+ "input": { "format": "key-value", "pick": ["path"], "labels": { "path": "Directory" } },
175
+ "output": { "format": "files" }
176
+ }
177
+ ],
156
178
  "skills": [
157
179
  {
158
180
  "id": "workspace-layout",
@@ -81,6 +81,13 @@
81
81
  "kind": "shell",
82
82
  "module": "bridgeShell"
83
83
  }
84
+ ],
85
+ "toolDisplay": [
86
+ {
87
+ "tool": "bridge_*_exec",
88
+ "input": { "format": "terminal" },
89
+ "output": { "format": "terminal" }
90
+ }
84
91
  ]
85
92
  },
86
93
  "provides": [
@@ -13,6 +13,18 @@
13
13
  { "id": "web_search", "module": "WebSearchTool", "since": "0.1.0" },
14
14
  { "id": "web_fetch", "module": "WebFetchTool", "since": "0.2.0" }
15
15
  ],
16
+ "toolDisplay": [
17
+ {
18
+ "tool": "web_search",
19
+ "input": { "format": "key-value", "pick": ["query"], "labels": { "query": "Query" } },
20
+ "output": { "format": "markdown" }
21
+ },
22
+ {
23
+ "tool": "web_fetch",
24
+ "input": { "format": "key-value", "pick": ["url"], "labels": { "url": "URL" } },
25
+ "output": { "format": "markdown" }
26
+ }
27
+ ],
16
28
  "skills": [
17
29
  {
18
30
  "id": "web-search-howto",
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/chat/handler.ts"],"names":[],"mappings":"AAqDA,OAAO,EACL,mBAAmB,EACnB,cAAc,EAGd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAmC1B,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAOL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAavB,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AA6B1B,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAyR7D;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;4BAGwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,eAAe,EAAE,WAAW,CAAC;IAC9C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyyClE;AAmXD,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC3D,2BAA2B,CAAC,EAAE,MAAM,GACnC,MAAM,CAuCR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB3E;AA0ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CA0Ef;AA2XD,wBAAgB,cAAc,IAAI,WAAW,EAAE,CAkC9C;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/chat/handler.ts"],"names":[],"mappings":"AAqDA,OAAO,EACL,mBAAmB,EACnB,cAAc,EAGd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAQL,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAmC1B,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAOL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAavB,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;AA6B1B,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA2R7D;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;4BAGwB;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,eAAe,EAAE,WAAW,CAAC;IAC9C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAyyClE;AAmXD,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,WAAW,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC3D,2BAA2B,CAAC,EAAE,MAAM,GACnC,MAAM,CAuCR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB3E;AA0ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,aAAa,EAClB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CA0Ef;AA2XD,wBAAgB,cAAc,IAAI,WAAW,EAAE,CAkC9C;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -93,7 +93,9 @@ export function attachChatHandler(opts) {
93
93
  return;
94
94
  socket.send(JSON.stringify(msg));
95
95
  };
96
- send({ type: "connected", tenantId: ctx.tenantId, userId });
96
+ // Collect tool display hints from all active plugins for this tenant.
97
+ const toolDisplay = collectToolDisplay(pluginRegistry, ctx.tenantId);
98
+ send({ type: "connected", tenantId: ctx.tenantId, userId, ...(toolDisplay.length > 0 ? { toolDisplay } : {}) });
97
99
  // Re-push any pending ask_user interactions so a page
98
100
  // refresh (or reconnect) restores the option buttons.
99
101
  import("./pending-interactions.js").then(({ getAllPending }) => {
@@ -145,7 +147,7 @@ export function attachChatHandler(opts) {
145
147
  }
146
148
  switch (parsed.type) {
147
149
  case "hello":
148
- send({ type: "connected", tenantId: ctx.tenantId, userId });
150
+ send({ type: "connected", tenantId: ctx.tenantId, userId, ...(toolDisplay.length > 0 ? { toolDisplay } : {}) });
149
151
  return;
150
152
  case "history": {
151
153
  const opts = makeWireOpts(ctx);
@@ -2361,6 +2363,30 @@ export function loadHostSkills() {
2361
2363
  hostSkillsCache = result.skills;
2362
2364
  return hostSkillsCache;
2363
2365
  }
2366
+ /**
2367
+ * Collect all toolDisplay entries from active plugins for a tenant.
2368
+ * Returns a flat array ready to ship over the WS `connected` event.
2369
+ */
2370
+ function collectToolDisplay(pluginRegistry, tenantId) {
2371
+ if (!pluginRegistry)
2372
+ return [];
2373
+ const out = [];
2374
+ for (const entry of pluginRegistry.listForTenant(tenantId)) {
2375
+ if (entry.state !== "active")
2376
+ continue;
2377
+ const displays = entry.manifest.contributes?.toolDisplay;
2378
+ if (!displays || displays.length === 0)
2379
+ continue;
2380
+ for (const d of displays) {
2381
+ out.push({
2382
+ tool: d.tool,
2383
+ ...(d.input ? { input: d.input } : {}),
2384
+ ...(d.output ? { output: d.output } : {}),
2385
+ });
2386
+ }
2387
+ }
2388
+ return out;
2389
+ }
2364
2390
  function emptyHostCapabilities() {
2365
2391
  return {
2366
2392
  get: () => undefined,