@happyvertical/smrt-svelte 0.42.6 → 0.43.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.
- package/README.md +20 -0
- package/dist/Provider.svelte +49 -0
- package/dist/Provider.svelte.d.ts +15 -0
- package/dist/Provider.svelte.d.ts.map +1 -1
- package/dist/__tests__/data-surface-bridge.test.js +351 -0
- package/dist/components/forms/AddressInput.svelte +11 -0
- package/dist/components/forms/AddressInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/CheckboxInput.svelte +3 -1
- package/dist/components/forms/CheckboxInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/DateRangeInput.svelte +3 -0
- package/dist/components/forms/DateRangeInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/DateTimeInput.svelte +2 -0
- package/dist/components/forms/DateTimeInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/Form.svelte +172 -6
- package/dist/components/forms/Form.svelte.d.ts +8 -1
- package/dist/components/forms/Form.svelte.d.ts.map +1 -1
- package/dist/components/forms/MeasurementInput.svelte +3 -0
- package/dist/components/forms/MeasurementInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/MoneyInput.svelte +3 -0
- package/dist/components/forms/MoneyInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/NumberInput.svelte +3 -0
- package/dist/components/forms/NumberInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/PhoneInput.svelte +2 -0
- package/dist/components/forms/PhoneInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/SelectInput.svelte +7 -1
- package/dist/components/forms/SelectInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/TextInput.svelte +5 -1
- package/dist/components/forms/TextInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/TextareaInput.svelte +3 -1
- package/dist/components/forms/TextareaInput.svelte.d.ts.map +1 -1
- package/dist/components/forms/__tests__/Form.webmcp.test.js +216 -0
- package/dist/components/forms/__tests__/form-with-fields.fixture.svelte +25 -3
- package/dist/components/forms/__tests__/form-with-fields.fixture.svelte.d.ts +5 -0
- package/dist/components/forms/__tests__/form-with-fields.fixture.svelte.d.ts.map +1 -1
- package/dist/components/forms/__tests__/form-with-structured-fields.fixture.svelte +40 -0
- package/dist/components/forms/__tests__/form-with-structured-fields.fixture.svelte.d.ts +10 -0
- package/dist/components/forms/__tests__/form-with-structured-fields.fixture.svelte.d.ts.map +1 -0
- package/dist/data-surface.d.ts +104 -0
- package/dist/data-surface.d.ts.map +1 -0
- package/dist/data-surface.js +348 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/state/form-context.d.ts +2 -0
- package/dist/state/form-context.d.ts.map +1 -1
- package/dist/web/__tests__/webmcp-harness.svelte +14 -0
- package/dist/web/__tests__/webmcp-harness.svelte.d.ts +7 -0
- package/dist/web/__tests__/webmcp-harness.svelte.d.ts.map +1 -0
- package/dist/web/__tests__/webmcp.test.js +39 -0
- package/dist/web/webmcp.d.ts +21 -0
- package/dist/web/webmcp.svelte.d.ts +28 -0
- package/dist/web/webmcp.svelte.d.ts.map +1 -0
- package/dist/web/webmcp.svelte.js +27 -0
- package/package.json +17 -5
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** A tool exposed to the browser's WebMCP model context. */
|
|
2
|
+
export interface WebMcpToolSpec {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: Record<string, unknown>;
|
|
6
|
+
annotations?: {
|
|
7
|
+
readOnlyHint?: boolean;
|
|
8
|
+
untrustedContentHint?: boolean;
|
|
9
|
+
};
|
|
10
|
+
execute: (args: Record<string, unknown>) => string | Promise<string>;
|
|
11
|
+
}
|
|
12
|
+
declare global {
|
|
13
|
+
interface Document {
|
|
14
|
+
modelContext?: WebMcpModelContext;
|
|
15
|
+
}
|
|
16
|
+
interface WebMcpModelContext {
|
|
17
|
+
registerTool(tool: WebMcpToolSpec, options?: {
|
|
18
|
+
signal?: AbortSignal;
|
|
19
|
+
}): void;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Register a component-owned WebMCP intent for exactly that component's
|
|
24
|
+
* lifetime. The factory runs inside the effect so rune dependencies used by a
|
|
25
|
+
* bespoke intent cause the tool to be replaced when its spec changes.
|
|
26
|
+
*/
|
|
27
|
+
export declare function useWebMcpTool(factory: () => WebMcpToolSpec | null | undefined): void;
|
|
28
|
+
//# sourceMappingURL=webmcp.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webmcp.svelte.d.ts","sourceRoot":"","sources":["../../src/web/webmcp.svelte.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE;QACZ,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtE;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ;QAChB,YAAY,CAAC,EAAE,kBAAkB,CAAC;KACnC;IAED,UAAU,kBAAkB;QAC1B,YAAY,CACV,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,GACjC,IAAI,CAAC;KACT;CACF;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,SAAS,GAC/C,IAAI,CAYN"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
function getModelContext() {
|
|
2
|
+
// Do not read `document` at module evaluation time: this module is imported
|
|
3
|
+
// by SSR bundles and by browsers without the WebMCP origin trial.
|
|
4
|
+
const documentLike = globalThis.document;
|
|
5
|
+
const context = documentLike?.modelContext;
|
|
6
|
+
return context && typeof context.registerTool === 'function'
|
|
7
|
+
? context
|
|
8
|
+
: undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Register a component-owned WebMCP intent for exactly that component's
|
|
12
|
+
* lifetime. The factory runs inside the effect so rune dependencies used by a
|
|
13
|
+
* bespoke intent cause the tool to be replaced when its spec changes.
|
|
14
|
+
*/
|
|
15
|
+
export function useWebMcpTool(factory) {
|
|
16
|
+
$effect(() => {
|
|
17
|
+
const context = getModelContext();
|
|
18
|
+
if (!context)
|
|
19
|
+
return;
|
|
20
|
+
const spec = factory();
|
|
21
|
+
if (!spec)
|
|
22
|
+
return;
|
|
23
|
+
const controller = new AbortController();
|
|
24
|
+
context.registerTool(spec, { signal: controller.signal });
|
|
25
|
+
return () => controller.abort();
|
|
26
|
+
});
|
|
27
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-svelte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
4
4
|
"description": "Svelte 5 components for SMRT user management - auth, users, tenants, roles, permissions, groups",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"smrtRawPrimitives": "strict",
|
|
@@ -76,6 +76,18 @@
|
|
|
76
76
|
"svelte": "./dist/web/index.js",
|
|
77
77
|
"import": "./dist/web/index.js",
|
|
78
78
|
"default": "./dist/web/index.js"
|
|
79
|
+
},
|
|
80
|
+
"./data-surface": {
|
|
81
|
+
"types": "./dist/data-surface.d.ts",
|
|
82
|
+
"svelte": "./dist/data-surface.js",
|
|
83
|
+
"import": "./dist/data-surface.js",
|
|
84
|
+
"default": "./dist/data-surface.js"
|
|
85
|
+
},
|
|
86
|
+
"./data": {
|
|
87
|
+
"types": "./dist/data-surface.d.ts",
|
|
88
|
+
"svelte": "./dist/data-surface.js",
|
|
89
|
+
"import": "./dist/data-surface.js",
|
|
90
|
+
"default": "./dist/data-surface.js"
|
|
79
91
|
}
|
|
80
92
|
},
|
|
81
93
|
"files": [
|
|
@@ -111,10 +123,10 @@
|
|
|
111
123
|
"@tanstack/db": "^0.6.14",
|
|
112
124
|
"@tanstack/svelte-db": "^0.1.91",
|
|
113
125
|
"esm-env": "^1.2.2",
|
|
114
|
-
"@happyvertical/smrt-languages": "0.
|
|
115
|
-
"@happyvertical/smrt-types": "0.
|
|
116
|
-
"@happyvertical/smrt-
|
|
117
|
-
"@happyvertical/smrt-
|
|
126
|
+
"@happyvertical/smrt-languages": "0.43.0",
|
|
127
|
+
"@happyvertical/smrt-types": "0.43.0",
|
|
128
|
+
"@happyvertical/smrt-web": "0.43.0",
|
|
129
|
+
"@happyvertical/smrt-ui": "0.43.0"
|
|
118
130
|
},
|
|
119
131
|
"peerDependencies": {
|
|
120
132
|
"@huggingface/transformers": ">=3.8.1",
|