@symbiotejs/symbiote 3.8.0 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -19
- package/core/webmcp.js +60 -39
- package/docs/webmcp.md +5 -9
- package/llms-full.txt +16 -26
- package/package.json +1 -1
- package/types/core/webmcp.d.ts +3 -3
- package/types/core/webmcp.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
[](https://github.com/symbiotejs/symbiote.js/actions/workflows/tests.yml)
|
|
2
2
|
[](https://www.npmjs.com/package/@symbiotejs/symbiote)
|
|
3
3
|
[](https://www.npmjs.com/package/@symbiotejs/symbiote)
|
|
4
|
-

|
|
5
|
-

|
|
6
4
|

|
|
7
5
|
|
|
8
6
|
# Symbiote.js
|
|
9
7
|
|
|
10
8
|
<img src="https://rnd-pro.com/svg/symbiote/index.svg" width="200" alt="Symbiote.js">
|
|
11
9
|
|
|
12
|
-
A lightweight, standards-first UI library built on Web Components. No virtual DOM, no compiler, no build step required - works directly in the browser. A bundler is recommended for production performance, but entirely optional.
|
|
10
|
+
A lightweight, standards-first UI library built on Web Components. No virtual DOM, no compiler, no black boxes, no excess repaints. No build step required - works directly in the browser. A bundler is recommended for production performance, but entirely optional.
|
|
13
11
|
|
|
14
|
-
Symbiote.js gives you the convenience of a modern framework while staying close to the native platform - HTML, CSS, and DOM APIs. Components are
|
|
12
|
+
Symbiote.js gives you the convenience of a modern framework while staying close to the native platform - HTML, CSS, and DOM APIs. Components are custom elements that work everywhere: in any framework, in plain HTML, in a micro-frontend architecture. And with **isomorphic mode**, the same component code works on the server and the client - server-rendered pages hydrate automatically, no diffing, no mismatch errors.
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
Here are the three most important differences between Symbiote.js and other frameworks:
|
|
15
|
+
1. Natural DOM Extension Philosophy - designed to extend platform, not to replace it
|
|
16
|
+
2. Runtime-Agnostic HTML Templates - outstanding flexibility for rendering strategies and further customization
|
|
17
|
+
3. Powerful App-wide State Management - combine data contexts without bloated boilerplate or external tools
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
## What's new in v3.x?
|
|
20
|
+
|
|
21
|
+
- **WebMCP support** - expose live Symbiote UI actions as browser-native tools for agents. See the [WebMCP docs](https://github.com/symbiotejs/symbiote.js/blob/webmcp/docs/webmcp.md).
|
|
19
22
|
- **Server-Side Rendering** - render components to HTML with `SSR.processHtml()` or stream chunks with `SSR.renderToStream()`. Client-side hydration via `ssrMode` attaches bindings to existing DOM without re-rendering.
|
|
20
23
|
- **Isomorphic components** - `isoMode` flag makes components work in both SSR and client-only scenarios automatically. If server-rendered content exists, it hydrates; otherwise it renders the template from scratch. One component, zero conditional logic.
|
|
21
|
-
- **Computed properties** - reactive derived state with microtask batching.
|
|
24
|
+
- **Computed properties refined** - reactive derived state with microtask batching.
|
|
22
25
|
- **Path-based router** - optional `AppRouter` module with `:param` extraction, route guards, and lazy loading.
|
|
23
26
|
- **Exit animations** - `animateOut(el)` for CSS-driven exit transitions, integrated into itemize API.
|
|
24
27
|
- **Dev mode** - `Symbiote.devMode` enables verbose warnings; import `devMessages.js` for full human-readable messages.
|
|
@@ -336,18 +339,7 @@ CSS values are parsed automatically - quoted strings become strings, numbers bec
|
|
|
336
339
|
- **Reusable component libraries** - works in React, Vue, Angular, or plain HTML
|
|
337
340
|
- **SSR-powered apps** - lightweight server rendering without framework lock-in
|
|
338
341
|
- **Framework-agnostic solutions** - one codebase, any context
|
|
339
|
-
|
|
340
|
-
## Bundle size
|
|
341
|
-
|
|
342
|
-
| Library | Minified | Gzip | Brotli |
|
|
343
|
-
|---------|----------|------|--------|
|
|
344
|
-
| **Symbiote.js** (core) | 23.6 kb | 8.1 kb | **7.3 kb** |
|
|
345
|
-
| **Symbiote.js** (full, with AppRouter + WebMCP export) | 35.6 kb | 12.1 kb | **11.0 kb** |
|
|
346
|
-
| **Symbiote.js** (WebMCP extension) | 31.4 kb | 10.6 kb | **9.6 kb** |
|
|
347
|
-
| **Lit** 3.3 | 15.5 kb | 6.0 kb | **~5.1 kb** |
|
|
348
|
-
| **React 19 + ReactDOM** | ~186 kb | ~59 kb | **~50 kb** |
|
|
349
|
-
|
|
350
|
-
Symbiote and Lit have similar base sizes, but Symbiote's **7.3 kb** core includes more built-in features: global state management, lists (itemize API), exit animations, computed properties etc. Lit needs additional packages for comparable features. React is **~7× larger** before adding a router, state manager, or SSR framework.
|
|
342
|
+
- **Modern AI-first web** - expose the application state to WebMCP tools automatically
|
|
351
343
|
|
|
352
344
|
## Browser support
|
|
353
345
|
|
package/core/webmcp.js
CHANGED
|
@@ -22,7 +22,7 @@ import { parseProp } from './parseProp.js';
|
|
|
22
22
|
* @property {string | ((owner?: any) => string)} [description]
|
|
23
23
|
* @property {Object | ((owner?: any) => Object)} [inputSchema]
|
|
24
24
|
* @property {(args?: Object, owner?: any, event?: Event) => any} [execute]
|
|
25
|
-
* @property {() => boolean} [when]
|
|
25
|
+
* @property {(owner?: any) => boolean} [when]
|
|
26
26
|
* @property {string[]} [deps]
|
|
27
27
|
* @property {string[]} [exposedTo]
|
|
28
28
|
* @property {Object} [annotations]
|
|
@@ -53,6 +53,7 @@ let installedClasses = new WeakSet();
|
|
|
53
53
|
let pendingOwnerSync = new WeakSet();
|
|
54
54
|
/** @type {WeakMap<object, number>} */
|
|
55
55
|
let ownerVersions = new WeakMap();
|
|
56
|
+
let _modelContext;
|
|
56
57
|
|
|
57
58
|
function isToolDescriptor(val) {
|
|
58
59
|
return !!val?.[DICT.MCP_TOOL_DESCRIPTOR_MARKER];
|
|
@@ -244,13 +245,16 @@ function ownerId(owner) {
|
|
|
244
245
|
}
|
|
245
246
|
|
|
246
247
|
function getModelContext() {
|
|
248
|
+
if (_modelContext) return _modelContext;
|
|
247
249
|
let docCtx = /** @type {any} */ (globalThis.document)?.modelContext;
|
|
248
250
|
if (docCtx?.registerTool) {
|
|
249
|
-
|
|
251
|
+
_modelContext = docCtx;
|
|
252
|
+
return _modelContext;
|
|
250
253
|
}
|
|
251
254
|
let navCtx = /** @type {any} */ (globalThis.navigator)?.modelContext;
|
|
252
255
|
if (navCtx?.registerTool) {
|
|
253
|
-
|
|
256
|
+
_modelContext = navCtx;
|
|
257
|
+
return _modelContext;
|
|
254
258
|
}
|
|
255
259
|
return null;
|
|
256
260
|
}
|
|
@@ -591,13 +595,16 @@ function scheduleOwnerSync(owner) {
|
|
|
591
595
|
}
|
|
592
596
|
|
|
593
597
|
export class ToolDescriptor {
|
|
598
|
+
/** @type {((args?: Object, owner?: any, event?: Event) => any) | undefined} */
|
|
599
|
+
#fn;
|
|
600
|
+
|
|
594
601
|
/** @param {ToolDescriptorOptions} options */
|
|
595
602
|
constructor(options = {}) {
|
|
596
603
|
this[DICT.MCP_TOOL_DESCRIPTOR_MARKER] = true;
|
|
597
604
|
this.name = options.name;
|
|
598
605
|
this.description = options.description || 'Symbiote WebMCP tool.';
|
|
599
606
|
this.inputSchema = options.inputSchema || emptySchema();
|
|
600
|
-
this
|
|
607
|
+
this.#fn = options.execute;
|
|
601
608
|
this.when = options.when;
|
|
602
609
|
this.deps = options.deps || [];
|
|
603
610
|
this.exposedTo = options.exposedTo;
|
|
@@ -611,15 +618,15 @@ export class ToolDescriptor {
|
|
|
611
618
|
* @returns {any}
|
|
612
619
|
*/
|
|
613
620
|
execute(args = {}, owner, event) {
|
|
614
|
-
if (typeof this
|
|
621
|
+
if (typeof this.#fn !== 'function') {
|
|
615
622
|
throw new Error('ToolDescriptor requires an execute function.');
|
|
616
623
|
}
|
|
617
|
-
return this
|
|
624
|
+
return this.#fn.call(owner, args || {}, owner, event);
|
|
618
625
|
}
|
|
619
626
|
}
|
|
620
627
|
|
|
621
628
|
export const webMCPRegistry = (() => {
|
|
622
|
-
let existing = PubSub.getCtx(REGISTRY_UID
|
|
629
|
+
let existing = PubSub.getCtx(REGISTRY_UID);
|
|
623
630
|
let root = existing || PubSub.registerCtx({}, REGISTRY_UID);
|
|
624
631
|
ensureNestedCtx(root, 'tools');
|
|
625
632
|
ensureNestedCtx(root, 'owners');
|
|
@@ -662,32 +669,23 @@ export function registerWebMCPTool(owner, key, descriptor) {
|
|
|
662
669
|
webMCPRegistry.store.tools.add(publicName, resolvedEntry, true);
|
|
663
670
|
}
|
|
664
671
|
return resolvedEntry;
|
|
672
|
+
}).catch((e) => {
|
|
673
|
+
setDiagnostic('lastError', e);
|
|
674
|
+
throw e;
|
|
665
675
|
});
|
|
666
676
|
}
|
|
667
677
|
webMCPRegistry.store.tools.add(publicName, entry, true);
|
|
668
678
|
return entry;
|
|
669
679
|
}
|
|
670
680
|
|
|
671
|
-
/**
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
let id = ownerId(owner);
|
|
680
|
-
let desired = collectDesiredTools(owner);
|
|
681
|
-
setupDeps(owner, desired);
|
|
682
|
-
let owners = webMCPRegistry.store.owners;
|
|
683
|
-
let ownerEntry = owners.has(id)
|
|
684
|
-
? owners.read(id)
|
|
685
|
-
: {
|
|
686
|
-
ownerId: id,
|
|
687
|
-
ownerType: ownerType(owner),
|
|
688
|
-
ownerName: ownerName(owner),
|
|
689
|
-
toolsByKey: {},
|
|
690
|
-
};
|
|
681
|
+
/**
|
|
682
|
+
* @param {any} owner
|
|
683
|
+
* @param {string} id
|
|
684
|
+
* @param {{ownerId: string, ownerType: string, ownerName: string, toolsByKey: Record<string, string>}} ownerEntry
|
|
685
|
+
* @param {Array<{key: string, baseName: string, descriptor: ToolDescriptor, executor: Function}>} desired
|
|
686
|
+
* @param {string} componentDescription
|
|
687
|
+
*/
|
|
688
|
+
function applyDesiredTools(owner, id, ownerEntry, desired, componentDescription) {
|
|
691
689
|
let nextKeys = new Set();
|
|
692
690
|
for (let item of desired) {
|
|
693
691
|
nextKeys.add(item.key);
|
|
@@ -703,17 +701,9 @@ export function syncWebMCPTools(owner) {
|
|
|
703
701
|
if (hasToolName(publicName)) {
|
|
704
702
|
unregisterToolName(publicName);
|
|
705
703
|
}
|
|
706
|
-
let entry =
|
|
704
|
+
let entry = makeEntryWithComponentDescription(publicName, item.key, item.descriptor, owner, item.executor, componentDescription);
|
|
707
705
|
ownerEntry.toolsByKey[item.key] = publicName;
|
|
708
|
-
|
|
709
|
-
entry.then((resolvedEntry) => {
|
|
710
|
-
if (isCurrentOwnerVersion(owner, version)) {
|
|
711
|
-
webMCPRegistry.store.tools.add(publicName, resolvedEntry, true);
|
|
712
|
-
}
|
|
713
|
-
});
|
|
714
|
-
} else {
|
|
715
|
-
webMCPRegistry.store.tools.add(publicName, entry, true);
|
|
716
|
-
}
|
|
706
|
+
webMCPRegistry.store.tools.add(publicName, entry, true);
|
|
717
707
|
}
|
|
718
708
|
for (let key in ownerEntry.toolsByKey) {
|
|
719
709
|
if (!nextKeys.has(key)) {
|
|
@@ -723,9 +713,40 @@ export function syncWebMCPTools(owner) {
|
|
|
723
713
|
}
|
|
724
714
|
if (Object.keys(ownerEntry.toolsByKey).length) {
|
|
725
715
|
updateOwnerEntry(id, ownerEntry);
|
|
726
|
-
} else if (owners.has(id)) {
|
|
727
|
-
owners.delete(id);
|
|
716
|
+
} else if (webMCPRegistry.store.owners.has(id)) {
|
|
717
|
+
webMCPRegistry.store.owners.delete(id);
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
/** @param {any} owner */
|
|
722
|
+
export function syncWebMCPTools(owner) {
|
|
723
|
+
if (!owner) return;
|
|
724
|
+
if (isElementOwner(owner) && !owner.isConnected) {
|
|
725
|
+
unregisterWebMCPTools(owner);
|
|
726
|
+
return;
|
|
727
|
+
}
|
|
728
|
+
let version = bumpOwnerVersion(owner);
|
|
729
|
+
let id = ownerId(owner);
|
|
730
|
+
let desired = collectDesiredTools(owner);
|
|
731
|
+
setupDeps(owner, desired);
|
|
732
|
+
let owners = webMCPRegistry.store.owners;
|
|
733
|
+
let ownerEntry = owners.has(id)
|
|
734
|
+
? owners.read(id)
|
|
735
|
+
: {
|
|
736
|
+
ownerId: id,
|
|
737
|
+
ownerType: ownerType(owner),
|
|
738
|
+
ownerName: ownerName(owner),
|
|
739
|
+
toolsByKey: {},
|
|
740
|
+
};
|
|
741
|
+
let componentDescription = readComponentDescription(owner);
|
|
742
|
+
if (typeof componentDescription !== 'string') {
|
|
743
|
+
componentDescription.then((resolved) => {
|
|
744
|
+
if (!isCurrentOwnerVersion(owner, version)) return;
|
|
745
|
+
applyDesiredTools(owner, id, ownerEntry, desired, resolved);
|
|
746
|
+
}).catch((e) => setDiagnostic('lastError', e));
|
|
747
|
+
return;
|
|
728
748
|
}
|
|
749
|
+
applyDesiredTools(owner, id, ownerEntry, desired, componentDescription);
|
|
729
750
|
}
|
|
730
751
|
|
|
731
752
|
/** @param {any} owner */
|
package/docs/webmcp.md
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
# WebMCP
|
|
1
|
+
# WebMCP
|
|
2
2
|
|
|
3
|
-
Symbiote.js can expose the current browser UI state as native WebMCP tools.
|
|
4
|
-
|
|
5
|
-
Install the experimental npm release with the `webmcp` tag:
|
|
6
|
-
|
|
7
|
-
```shell
|
|
8
|
-
npm i @symbiotejs/symbiote@webmcp
|
|
9
|
-
```
|
|
3
|
+
Symbiote.js can expose the current browser UI state as native WebMCP tools.
|
|
10
4
|
|
|
11
5
|
## Activation
|
|
12
6
|
|
|
@@ -14,7 +8,7 @@ WebMCP is optional. Import the extension before WebMCP-enabled components render
|
|
|
14
8
|
|
|
15
9
|
```js
|
|
16
10
|
import Symbiote, { html } from '@symbiotejs/symbiote';
|
|
17
|
-
import
|
|
11
|
+
import '@symbiotejs/symbiote/webmcp';
|
|
18
12
|
```
|
|
19
13
|
|
|
20
14
|
## Automatic Tools
|
|
@@ -64,6 +58,8 @@ removeItem_in_task-list_task-item_alpha
|
|
|
64
58
|
Use `ToolDescriptor` for descriptions, input schemas, execution logic, and dynamic visibility:
|
|
65
59
|
|
|
66
60
|
```js
|
|
61
|
+
import { ToolDescriptor } from '@symbiotejs/symbiote/webmcp';
|
|
62
|
+
|
|
67
63
|
class WebmcpPanel extends Symbiote {
|
|
68
64
|
componentDescription = async () => {
|
|
69
65
|
return 'Visible order editor with selected item state.';
|
package/llms-full.txt
CHANGED
|
@@ -2,16 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
<img src="https://rnd-pro.com/svg/symbiote/index.svg" width="200" alt="Symbiote.js">
|
|
4
4
|
|
|
5
|
-
A lightweight, standards-first UI library built on Web Components. No virtual DOM, no compiler, no build step required - works directly in the browser. A bundler is recommended for production performance, but entirely optional.
|
|
5
|
+
A lightweight, standards-first UI library built on Web Components. No virtual DOM, no compiler, no black boxes, no excess repaints. No build step required - works directly in the browser. A bundler is recommended for production performance, but entirely optional.
|
|
6
6
|
|
|
7
|
-
Symbiote.js gives you the convenience of a modern framework while staying close to the native platform - HTML, CSS, and DOM APIs. Components are
|
|
7
|
+
Symbiote.js gives you the convenience of a modern framework while staying close to the native platform - HTML, CSS, and DOM APIs. Components are custom elements that work everywhere: in any framework, in plain HTML, in a micro-frontend architecture. And with **isomorphic mode**, the same component code works on the server and the client - server-rendered pages hydrate automatically, no diffing, no mismatch errors.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Here are the three most important differences between Symbiote.js and other frameworks:
|
|
10
|
+
1. Natural DOM Extension Philosophy - designed to extend platform, not to replace it
|
|
11
|
+
2. Runtime-Agnostic HTML Templates - outstanding flexibility for rendering strategies and further customization
|
|
12
|
+
3. Powerful App-wide State Management - combine data contexts without bloated boilerplate or external tools
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
## What's new in v3.x?
|
|
15
|
+
|
|
16
|
+
- **WebMCP support** - expose live Symbiote UI actions as browser-native tools for agents. See the [WebMCP docs](https://github.com/symbiotejs/symbiote.js/blob/webmcp/docs/webmcp.md).
|
|
12
17
|
- **Server-Side Rendering** - render components to HTML with `SSR.processHtml()` or stream chunks with `SSR.renderToStream()`. Client-side hydration via `ssrMode` attaches bindings to existing DOM without re-rendering.
|
|
13
18
|
- **Isomorphic components** - `isoMode` flag makes components work in both SSR and client-only scenarios automatically. If server-rendered content exists, it hydrates; otherwise it renders the template from scratch. One component, zero conditional logic.
|
|
14
|
-
- **Computed properties** - reactive derived state with microtask batching.
|
|
19
|
+
- **Computed properties refined** - reactive derived state with microtask batching.
|
|
15
20
|
- **Path-based router** - optional `AppRouter` module with `:param` extraction, route guards, and lazy loading.
|
|
16
21
|
- **Exit animations** - `animateOut(el)` for CSS-driven exit transitions, integrated into itemize API.
|
|
17
22
|
- **Dev mode** - `Symbiote.devMode` enables verbose warnings; import `devMessages.js` for full human-readable messages.
|
|
@@ -329,18 +334,7 @@ CSS values are parsed automatically - quoted strings become strings, numbers bec
|
|
|
329
334
|
- **Reusable component libraries** - works in React, Vue, Angular, or plain HTML
|
|
330
335
|
- **SSR-powered apps** - lightweight server rendering without framework lock-in
|
|
331
336
|
- **Framework-agnostic solutions** - one codebase, any context
|
|
332
|
-
|
|
333
|
-
## Bundle size
|
|
334
|
-
|
|
335
|
-
| Library | Minified | Gzip | Brotli |
|
|
336
|
-
|---------|----------|------|--------|
|
|
337
|
-
| **Symbiote.js** (core) | 23.6 kb | 8.1 kb | **7.3 kb** |
|
|
338
|
-
| **Symbiote.js** (full, with AppRouter + WebMCP export) | 35.6 kb | 12.1 kb | **11.0 kb** |
|
|
339
|
-
| **Symbiote.js** (WebMCP extension) | 31.4 kb | 10.6 kb | **9.6 kb** |
|
|
340
|
-
| **Lit** 3.3 | 15.5 kb | 6.0 kb | **~5.1 kb** |
|
|
341
|
-
| **React 19 + ReactDOM** | ~186 kb | ~59 kb | **~50 kb** |
|
|
342
|
-
|
|
343
|
-
Symbiote and Lit have similar base sizes, but Symbiote's **7.3 kb** core includes more built-in features: global state management, lists (itemize API), exit animations, computed properties etc. Lit needs additional packages for comparable features. React is **~7× larger** before adding a router, state manager, or SSR framework.
|
|
337
|
+
- **Modern AI-first web** - expose the application state to WebMCP tools automatically
|
|
344
338
|
|
|
345
339
|
## Browser support
|
|
346
340
|
|
|
@@ -5149,15 +5143,9 @@ Use Symbiote dev/runtime diagnostics for template binding correctness, because t
|
|
|
5149
5143
|
|
|
5150
5144
|
---
|
|
5151
5145
|
|
|
5152
|
-
# WebMCP
|
|
5153
|
-
|
|
5154
|
-
Symbiote.js can expose the current browser UI state as native WebMCP tools. This feature is experimental and intended for testing with browser builds that expose native WebMCP APIs, such as Chrome Canary 150.
|
|
5155
|
-
|
|
5156
|
-
Install the experimental npm release with the `webmcp` tag:
|
|
5146
|
+
# WebMCP
|
|
5157
5147
|
|
|
5158
|
-
|
|
5159
|
-
npm i @symbiotejs/symbiote@webmcp
|
|
5160
|
-
```
|
|
5148
|
+
Symbiote.js can expose the current browser UI state as native WebMCP tools.
|
|
5161
5149
|
|
|
5162
5150
|
## Activation
|
|
5163
5151
|
|
|
@@ -5165,7 +5153,7 @@ WebMCP is optional. Import the extension before WebMCP-enabled components render
|
|
|
5165
5153
|
|
|
5166
5154
|
```js
|
|
5167
5155
|
import Symbiote, { html } from '@symbiotejs/symbiote';
|
|
5168
|
-
import
|
|
5156
|
+
import '@symbiotejs/symbiote/webmcp';
|
|
5169
5157
|
```
|
|
5170
5158
|
|
|
5171
5159
|
## Automatic Tools
|
|
@@ -5215,6 +5203,8 @@ removeItem_in_task-list_task-item_alpha
|
|
|
5215
5203
|
Use `ToolDescriptor` for descriptions, input schemas, execution logic, and dynamic visibility:
|
|
5216
5204
|
|
|
5217
5205
|
```js
|
|
5206
|
+
import { ToolDescriptor } from '@symbiotejs/symbiote/webmcp';
|
|
5207
|
+
|
|
5218
5208
|
class WebmcpPanel extends Symbiote {
|
|
5219
5209
|
componentDescription = async () => {
|
|
5220
5210
|
return 'Visible order editor with selected item state.';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@symbiotejs/symbiote",
|
|
4
|
-
"version": "3.8.
|
|
4
|
+
"version": "3.8.1",
|
|
5
5
|
"description": "Symbiote.js - zero-dependency close-to-platform frontend library to build super-powered web components",
|
|
6
6
|
"author": "team@rnd-pro.com",
|
|
7
7
|
"license": "MIT",
|
package/types/core/webmcp.d.ts
CHANGED
|
@@ -12,12 +12,12 @@ export class ToolDescriptor {
|
|
|
12
12
|
name: string;
|
|
13
13
|
description: string | ((owner?: any) => string);
|
|
14
14
|
inputSchema: any;
|
|
15
|
-
|
|
16
|
-
when: () => boolean;
|
|
15
|
+
when: (owner?: any) => boolean;
|
|
17
16
|
deps: string[];
|
|
18
17
|
exposedTo: string[];
|
|
19
18
|
annotations: any;
|
|
20
19
|
execute(args?: any, owner?: any, event?: Event): any;
|
|
20
|
+
#private;
|
|
21
21
|
}
|
|
22
22
|
export const webMCPRegistry: PubSub<any>;
|
|
23
23
|
declare namespace _default {
|
|
@@ -43,7 +43,7 @@ export type ToolDescriptorOptions = {
|
|
|
43
43
|
description?: string | ((owner?: any) => string);
|
|
44
44
|
inputSchema?: any | ((owner?: any) => any);
|
|
45
45
|
execute?: (args?: any, owner?: any, event?: Event) => any;
|
|
46
|
-
when?: () => boolean;
|
|
46
|
+
when?: (owner?: any) => boolean;
|
|
47
47
|
deps?: string[];
|
|
48
48
|
exposedTo?: string[];
|
|
49
49
|
annotations?: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webmcp.d.ts","sourceRoot":"","sources":["../../core/webmcp.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webmcp.d.ts","sourceRoot":"","sources":["../../core/webmcp.js"],"names":[],"mappings":"AAqoBA,0CALW,GAAG,OACH,MAAM,cACN,cAAc,GACZ,CAAC,mBAAmB,GAAG;IAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CAAC,CAAC,GAAG,OAAO,CAAC,mBAAmB,GAAG;IAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CAAC,CAAC,CAmC9I;AA2CD,uCADY,GAAG,QA6Bd;AAGD,6CADY,GAAG,QAyBd;AAGD,wCADc,mBAAmB,EAAE,CAIlC;AAGD,8CADY,OAAO,QAAQ,QA+B1B;AA3ND;IAKE,sBADY,qBAAqB,EAWhC;IARC,aAAwB;IACxB,gCAvkB6B,GAAG,KAAK,MAAM,EAukBsB;IACjE,iBAAuD;IAEvD,eAvkBmB,GAAG,KAAK,OAAO,CAukBV;IACxB,eAA8B;IAC9B,oBAAkC;IAClC,iBAAsC;IASxC,4BAJW,GAAG,UACH,KAAK,GACH,GAAG,CAOf;;CACF;AAED,yCAUK;;;;;;;;;;;;UArnBS,MAAM;UACN,MAAM;;;cAKN,oBAAoB,EAAE;cACtB,OAAO;;;WAKP,MAAM;kBACN,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;kBAClC,MAAS,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,QAAW,CAAC;cAClC,CAAC,IAAI,CAAC,KAAQ,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,GAAG;WAClD,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,OAAO;WACxB,MAAM,EAAE;gBACR,MAAM,EAAE;;;;UAMR,MAAM;SACN,MAAM;aACN,MAAM;eACN,WAAW,GAAG,SAAS;eACvB,MAAM;0BACN,MAAM;iBACN,MAAM;;YAEN,OAAO;kBACP,OAAO;;qBAxCA,eAAe;mBADjB,aAAa"}
|