@dp-bohrium/widget-sdk 0.5.0 → 0.6.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/AGENTS.md +10 -4
- package/CHANGELOG.md +18 -1
- package/README.md +39 -17
- package/assets/licenses/ajv@8.20.0/LICENSE +22 -0
- package/assets/licenses/fast-deep-equal@3.1.3/LICENSE +21 -0
- package/assets/licenses/fast-uri@3.1.6/LICENSE +30 -0
- package/assets/licenses/json-schema-traverse@1.0.0/LICENSE +21 -0
- package/assets/licenses/require-from-string@2.0.2/license +21 -0
- package/assets/licenses/widget-contracts.LICENSE +21 -0
- package/assets/licenses/widget-sdk.LICENSE +21 -0
- package/assets/schemas/host-runtime-config.schema.json +305 -0
- package/assets/schemas/widget-manifest.schema.json +361 -0
- package/assets/schemas/widget-plugin-manifest.schema.json +162 -0
- package/assets/schemas/widget-runtime-contracts.schema.json +2870 -0
- package/assets/toolchain.json +24 -0
- package/conformance/bridge/capability-request.json +23 -0
- package/conformance/bridge/files-download-request.json +23 -0
- package/conformance/bridge/files-read-versioned-request.json +25 -0
- package/conformance/bridge/files-write-request.json +25 -0
- package/conformance/bridge/files-write-success.json +25 -0
- package/conformance/bridge/network-fetch-denied.json +16 -0
- package/conformance/bridge/network-fetch-request.json +19 -0
- package/conformance/bridge/network-fetch-success.json +22 -0
- package/conformance/bridge/presentation-change-surface-request.json +14 -0
- package/conformance/bridge/presentation-close-request.json +14 -0
- package/conformance/bridge/presentation-close-success.json +11 -0
- package/conformance/bridge/presentation-downgrade-success.json +14 -0
- package/conformance/bridge/presentation-focus-backward-request.json +14 -0
- package/conformance/bridge/presentation-focus-boundary-success.json +14 -0
- package/conformance/bridge/presentation-focus-forward-request.json +14 -0
- package/conformance/bridge/presentation-init.json +70 -0
- package/conformance/bridge/presentation-policy-denied.json +16 -0
- package/conformance/bridge/presentation-present-request.json +14 -0
- package/conformance/bridge/presentation-user-denied.json +16 -0
- package/conformance/bridge/ready.json +11 -0
- package/conformance/bridge/region-acquire-request.json +14 -0
- package/conformance/bridge/tasks-list-request.json +17 -0
- package/conformance/bridge/tasks-watch-request.json +18 -0
- package/conformance/bridge/ui-state-write-request.json +18 -0
- package/conformance/bundles/minimal-file-preview/entry.js +1 -0
- package/conformance/bundles/minimal-file-preview/manifest.json +12 -0
- package/conformance/bundles/minimal-file-preview/samples/file-preview.json +1 -0
- package/conformance/bundles/minimal-panel/entry.js +1 -0
- package/conformance/bundles/minimal-panel/manifest.json +11 -0
- package/conformance/bundles/minimal-panel/samples/panel.json +1 -0
- package/conformance/bundles/minimal-tool-result/entry.js +1 -0
- package/conformance/bundles/minimal-tool-result/manifest.json +11 -0
- package/conformance/bundles/minimal-tool-result/samples/tool-result.json +1 -0
- package/conformance/file-grants/write.json +8 -0
- package/conformance/file-responses/list.json +1 -0
- package/conformance/file-responses/metadata.json +11 -0
- package/conformance/file-responses/mutation-conflict.json +6 -0
- package/conformance/file-responses/permission-denied.json +6 -0
- package/conformance/file-responses/read-revision-only.json +8 -0
- package/conformance/file-responses/read-unversioned-range.json +12 -0
- package/conformance/file-responses/read-versioned.json +12 -0
- package/conformance/file-responses/resource-limit.json +1 -0
- package/conformance/file-responses/revision-conflict.json +6 -0
- package/conformance/file-responses/text-content.json +7 -0
- package/conformance/file-responses/write-outcome-unknown.json +6 -0
- package/conformance/file-responses/write-success.json +15 -0
- package/conformance/host-runtime-config/invalid-host-service-expiry.json +85 -0
- package/conformance/host-runtime-config/invalid-host-service-identity.json +85 -0
- package/conformance/host-runtime-config/invalid-host-service-permission.json +85 -0
- package/conformance/host-runtime-config/invalid-host-service-status.json +65 -0
- package/conformance/host-runtime-config/invalid-missing-manifest-fields.json +55 -0
- package/conformance/host-runtime-config/invalid-static-origins.json +60 -0
- package/conformance/host-runtime-config/valid-host-service-authorization-required.json +65 -0
- package/conformance/host-runtime-config/valid-host-service-authorization.json +85 -0
- package/conformance/host-runtime-config/valid-no-requested-permissions.json +52 -0
- package/conformance/host-runtime-config/valid.json +85 -0
- package/conformance/invalid-bridge-messages/network-fetch-mixed-case-forbidden-header.json +21 -0
- package/conformance/invalid-file-grants/extra-file-scope.json +9 -0
- package/conformance/invalid-file-grants/missing-write-limits.json +4 -0
- package/conformance/invalid-file-requests/arbitrary-path.json +16 -0
- package/conformance/invalid-file-requests/missing-expected-revision.json +14 -0
- package/conformance/invalid-file-requests/missing-mutation-id.json +14 -0
- package/conformance/invalid-file-requests/path-in-reference.json +16 -0
- package/conformance/invalid-file-results/read-empty-revision.json +5 -0
- package/conformance/invalid-file-results/read-null-revision.json +5 -0
- package/conformance/invalid-file-results/write-missing-mutation-id.json +11 -0
- package/conformance/invalid-manifests/missing-target.json +11 -0
- package/conformance/invalid-manifests/presentation-duplicate-surfaces.json +16 -0
- package/conformance/invalid-manifests/presentation-empty-surfaces.json +14 -0
- package/conformance/invalid-manifests/presentation-unknown-surface.json +16 -0
- package/conformance/invalid-manifests/unknown-field.json +12 -0
- package/conformance/invalid-network-requests/mixed-case-forbidden-header.json +11 -0
- package/conformance/invalid-presentation-grants/duplicate-surfaces.json +5 -0
- package/conformance/invalid-presentation-grants/empty-surfaces.json +5 -0
- package/conformance/invalid-presentation-grants/false-confirmation.json +5 -0
- package/conformance/invalid-presentation-grants/missing-confirmation.json +4 -0
- package/conformance/invalid-presentation-grants/unknown-surface.json +5 -0
- package/conformance/invalid-presentation-requests/change-surface-missing-surface.json +4 -0
- package/conformance/invalid-presentation-requests/close-with-surface.json +4 -0
- package/conformance/invalid-presentation-requests/focus-boundary-missing-direction.json +4 -0
- package/conformance/invalid-presentation-requests/focus-boundary-unknown-direction.json +4 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-coordinates.json +9 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-event-provenance.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-generation.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-identity.json +12 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-key.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-modifiers.json +11 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-selector.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-surface.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-target.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-timestamp.json +8 -0
- package/conformance/invalid-presentation-requests/focus-boundary-with-z-index.json +8 -0
- package/conformance/invalid-presentation-requests/present-missing-surface.json +4 -0
- package/conformance/invalid-presentation-requests/unknown-surface.json +4 -0
- package/conformance/invalid-presentation-requests/widget-controls-coordinates.json +9 -0
- package/conformance/invalid-presentation-requests/widget-controls-geometry.json +8 -0
- package/conformance/invalid-presentation-requests/widget-controls-instance-id.json +8 -0
- package/conformance/invalid-presentation-requests/widget-controls-principal.json +8 -0
- package/conformance/invalid-presentation-requests/widget-controls-run-id.json +4 -0
- package/conformance/invalid-presentation-requests/widget-controls-widget-id.json +8 -0
- package/conformance/invalid-presentation-requests/widget-controls-widget-version-id.json +8 -0
- package/conformance/invalid-presentation-requests/widget-controls-z-index.json +4 -0
- package/conformance/invalid-render-inputs/malformed.json +17 -0
- package/conformance/manifests/valid-file-preview.json +12 -0
- package/conformance/manifests/valid-file-write-preview.json +30 -0
- package/conformance/manifests/valid-network.json +15 -0
- package/conformance/manifests/valid-panel.json +11 -0
- package/conformance/manifests/valid-presentation-panel.json +21 -0
- package/conformance/manifests/valid-region-panel.json +18 -0
- package/conformance/manifests/valid-tool-result.json +14 -0
- package/conformance/render-inputs/compatibility/literature-search-paper-results.json +75 -0
- package/conformance/render-inputs/compatibility/scientific-bibliography-bibtex.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-dataset-csv.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-manuscript-latex.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-manuscript-markdown.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-molecule-mol.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-molecule-mol2.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-notebook-ipynb.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-paper-pdf.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-protein-pdb.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-source-python.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-structure-cif.json +47 -0
- package/conformance/render-inputs/compatibility/scientific-structure-poscar.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-structure-stru.json +10 -0
- package/conformance/render-inputs/compatibility/scientific-trajectory-xyz.json +10 -0
- package/conformance/render-inputs/compatibility/thinking-process-paper-search.json +25 -0
- package/conformance/render-inputs/compatibility/thinking-process-scholar-search.json +25 -0
- package/conformance/render-inputs/compatibility/thinking-process-web-search.json +25 -0
- package/conformance/render-inputs/compatibility/workspace-file-search.json +24 -0
- package/conformance/render-inputs/compatibility/workspace-file-tree.json +24 -0
- package/conformance/render-inputs/empty.json +10 -0
- package/conformance/render-inputs/file-preview.json +10 -0
- package/conformance/render-inputs/incremental-update.json +10 -0
- package/conformance/render-inputs/large.json +10 -0
- package/conformance/render-inputs/malformed.json +1 -0
- package/conformance/render-inputs/panel.json +10 -0
- package/conformance/render-inputs/partial-state-full-snapshot.json +40 -0
- package/conformance/render-inputs/tool-result.json +10 -0
- package/conformance/resource-budgets/corpus.json +431 -0
- package/dist/cli.mjs +15577 -0
- package/dist/contracts.d.ts +2 -0
- package/dist/contracts.js +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/{runtime-DVFTv55x.js → runtime-D7KxTtdu.js} +1 -1
- package/llms.txt +9 -1
- package/package.json +17 -3
- package/schemas/host-runtime-config.schema.json +305 -0
- package/schemas/widget-manifest.schema.json +361 -0
- package/schemas/widget-plugin-manifest.schema.json +162 -0
- package/schemas/widget-runtime-contracts.schema.json +2870 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"hostApiVersion": 1,
|
|
4
|
+
"configId": "config-public-1",
|
|
5
|
+
"hostId": "host-public-1",
|
|
6
|
+
"runId": "run-public-1",
|
|
7
|
+
"mode": "preview",
|
|
8
|
+
"issuedAt": "2026-09-03T10:00:00Z",
|
|
9
|
+
"expiresAt": "2026-09-03T11:00:00Z",
|
|
10
|
+
"recheckAt": "2026-09-03T10:30:00Z",
|
|
11
|
+
"securityProfile": "runtime-security-profile-v1",
|
|
12
|
+
"resourceBudget": {
|
|
13
|
+
"version": 1,
|
|
14
|
+
"bundle": { "compressedBytes": 1, "expandedBytes": 1, "fileCount": 1, "singleFileBytes": 1 },
|
|
15
|
+
"bridge": { "messageBytes": 1, "messagesPerSecond": 1, "pendingRequests": 1 },
|
|
16
|
+
"files": { "readBytesPerRequest": 1, "readBytesPerRun": 1, "callsPerMinute": 1, "listPageSize": 1 },
|
|
17
|
+
"timeouts": { "bundleLoadMs": 1, "handshakeMs": 1, "firstRenderMs": 1, "updateMs": 1, "capabilityMs": 1, "disposeGraceMs": 1 },
|
|
18
|
+
"concurrency": { "activeIframesPerPage": 1, "activeIframesPerRun": 1, "hiddenRecycleMs": 1 },
|
|
19
|
+
"retry": { "maxAttempts": 1, "initialDelayMs": 1, "maxDelayMs": 1, "totalMs": 1 },
|
|
20
|
+
"failure": { "consecutiveFailures": 1, "windowMs": 1 }
|
|
21
|
+
},
|
|
22
|
+
"runtime": {
|
|
23
|
+
"origin": "https://widgets.example.test",
|
|
24
|
+
"catalogRevision": "catalog-public-1",
|
|
25
|
+
"profile": "public-isolated"
|
|
26
|
+
},
|
|
27
|
+
"network": {
|
|
28
|
+
"mode": "unavailable",
|
|
29
|
+
"policyVersion": "network-policy-v1",
|
|
30
|
+
"limits": {
|
|
31
|
+
"timeoutMs": 10000,
|
|
32
|
+
"maxRedirects": 5,
|
|
33
|
+
"maxConcurrentRequests": 4,
|
|
34
|
+
"callsPerMinute": 60,
|
|
35
|
+
"requestHeaderBytes": 16384,
|
|
36
|
+
"responseHeaderBytes": 32768,
|
|
37
|
+
"requestBodyBytes": 1048576,
|
|
38
|
+
"responseBodyBytes": 8388608
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"bindings": [
|
|
42
|
+
{
|
|
43
|
+
"status": "loadable",
|
|
44
|
+
"bindingId": "binding-public-1",
|
|
45
|
+
"widgetId": "widget-public-1",
|
|
46
|
+
"widgetVersionId": "widget-version-public-1",
|
|
47
|
+
"digest": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
|
|
48
|
+
"trustClass": "external",
|
|
49
|
+
"runtimeProfile": "public-isolated",
|
|
50
|
+
"manifest": {
|
|
51
|
+
"name": "Public User Profile",
|
|
52
|
+
"widgetConfig": {
|
|
53
|
+
"schemaVersion": 1,
|
|
54
|
+
"hostApiVersion": 1,
|
|
55
|
+
"widgetSdkVersion": "0.1.0",
|
|
56
|
+
"entry": "entry.js",
|
|
57
|
+
"contribution": { "type": "panel", "id": "public-user-profile" },
|
|
58
|
+
"requestedPermissions": ["host.user.profile.read"],
|
|
59
|
+
"samples": [{ "id": "normal", "title": "Normal", "request": "samples/panel.json" }]
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"launch": { "url": "https://widgets.example.test/launch/public", "expiresAt": "2026-09-03T11:00:00Z" },
|
|
63
|
+
"grantedCapabilities": [
|
|
64
|
+
{
|
|
65
|
+
"name": "service.invoke",
|
|
66
|
+
"services": [{ "service": "host.user", "actions": ["profile.read"] }],
|
|
67
|
+
"limits": { "callsPerMinute": 10, "requestBytes": 4096, "responseBytes": 16384 }
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"serviceAuthorization": {
|
|
71
|
+
"kind": "host-service-authorization",
|
|
72
|
+
"policy": "host-user-data-v1",
|
|
73
|
+
"status": "granted",
|
|
74
|
+
"hostId": "host-public-1",
|
|
75
|
+
"widgetVersionId": "widget-version-public-1",
|
|
76
|
+
"bundleDigest": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
|
|
77
|
+
"reviewRevision": "review-public-1",
|
|
78
|
+
"grantRevision": "grant-public-1",
|
|
79
|
+
"reviewedPermissions": ["host.user.profile.read"],
|
|
80
|
+
"grantedPermissions": ["host.user.profile.read"],
|
|
81
|
+
"expiresAt": "2026-09-03T11:00:00Z"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"hostApiVersion": 1,
|
|
4
|
+
"configId": "config-public-no-permissions",
|
|
5
|
+
"hostId": "host-public-1",
|
|
6
|
+
"runId": "run-public-1",
|
|
7
|
+
"mode": "preview",
|
|
8
|
+
"issuedAt": "2026-09-03T10:00:00Z",
|
|
9
|
+
"expiresAt": "2026-09-03T11:00:00Z",
|
|
10
|
+
"recheckAt": "2026-09-03T10:30:00Z",
|
|
11
|
+
"securityProfile": "runtime-security-profile-v1",
|
|
12
|
+
"resourceBudget": {
|
|
13
|
+
"version": 1,
|
|
14
|
+
"bundle": { "compressedBytes": 1, "expandedBytes": 1, "fileCount": 1, "singleFileBytes": 1 },
|
|
15
|
+
"bridge": { "messageBytes": 1, "messagesPerSecond": 1, "pendingRequests": 1 },
|
|
16
|
+
"files": { "readBytesPerRequest": 1, "readBytesPerRun": 1, "callsPerMinute": 1, "listPageSize": 1 },
|
|
17
|
+
"timeouts": { "bundleLoadMs": 1, "handshakeMs": 1, "firstRenderMs": 1, "updateMs": 1, "capabilityMs": 1, "disposeGraceMs": 1 },
|
|
18
|
+
"concurrency": { "activeIframesPerPage": 1, "activeIframesPerRun": 1, "hiddenRecycleMs": 1 },
|
|
19
|
+
"retry": { "maxAttempts": 1, "initialDelayMs": 1, "maxDelayMs": 1, "totalMs": 1 },
|
|
20
|
+
"failure": { "consecutiveFailures": 1, "windowMs": 1 }
|
|
21
|
+
},
|
|
22
|
+
"runtime": { "origin": "https://widgets.example.test", "catalogRevision": "catalog-public-1", "profile": "public-isolated" },
|
|
23
|
+
"network": {
|
|
24
|
+
"mode": "unavailable",
|
|
25
|
+
"policyVersion": "network-policy-v1",
|
|
26
|
+
"limits": { "timeoutMs": 10000, "maxRedirects": 5, "maxConcurrentRequests": 4, "callsPerMinute": 60, "requestHeaderBytes": 16384, "responseHeaderBytes": 32768, "requestBodyBytes": 1048576, "responseBodyBytes": 8388608 }
|
|
27
|
+
},
|
|
28
|
+
"bindings": [
|
|
29
|
+
{
|
|
30
|
+
"status": "loadable",
|
|
31
|
+
"bindingId": "binding-public-no-permissions",
|
|
32
|
+
"widgetId": "widget-public-no-permissions",
|
|
33
|
+
"widgetVersionId": "widget-version-public-no-permissions",
|
|
34
|
+
"digest": "sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789",
|
|
35
|
+
"trustClass": "external",
|
|
36
|
+
"runtimeProfile": "public-isolated",
|
|
37
|
+
"manifest": {
|
|
38
|
+
"name": "Public Widget Without User Data",
|
|
39
|
+
"widgetConfig": {
|
|
40
|
+
"schemaVersion": 1,
|
|
41
|
+
"hostApiVersion": 1,
|
|
42
|
+
"widgetSdkVersion": "0.1.0",
|
|
43
|
+
"entry": "entry.js",
|
|
44
|
+
"contribution": { "type": "panel", "id": "public-no-user-data" },
|
|
45
|
+
"samples": [{ "id": "normal", "title": "Normal", "request": "samples/panel.json" }]
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"launch": { "url": "https://widgets.example.test/launch/public-no-permissions", "expiresAt": "2026-09-03T11:00:00Z" },
|
|
49
|
+
"grantedCapabilities": []
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"hostApiVersion": 1,
|
|
4
|
+
"configId": "config-1",
|
|
5
|
+
"runId": "run-1",
|
|
6
|
+
"mode": "preview",
|
|
7
|
+
"issuedAt": "2026-09-03T10:00:00Z",
|
|
8
|
+
"expiresAt": "2026-09-03T10:01:00Z",
|
|
9
|
+
"recheckAt": "2026-09-03T10:00:30Z",
|
|
10
|
+
"securityProfile": "runtime-security-profile-v1",
|
|
11
|
+
"resourceBudget": {
|
|
12
|
+
"version": 1,
|
|
13
|
+
"bundle": { "compressedBytes": 1, "expandedBytes": 1, "fileCount": 1, "singleFileBytes": 1 },
|
|
14
|
+
"bridge": { "messageBytes": 1, "messagesPerSecond": 1, "pendingRequests": 1 },
|
|
15
|
+
"files": { "readBytesPerRequest": 1, "readBytesPerRun": 1, "callsPerMinute": 1, "listPageSize": 1 },
|
|
16
|
+
"timeouts": { "bundleLoadMs": 1, "handshakeMs": 1, "firstRenderMs": 1, "updateMs": 1, "capabilityMs": 1, "disposeGraceMs": 1 },
|
|
17
|
+
"concurrency": { "activeIframesPerPage": 1, "activeIframesPerRun": 1, "hiddenRecycleMs": 1 },
|
|
18
|
+
"retry": { "maxAttempts": 1, "initialDelayMs": 1, "maxDelayMs": 1, "totalMs": 1 },
|
|
19
|
+
"failure": { "consecutiveFailures": 1, "windowMs": 1 }
|
|
20
|
+
},
|
|
21
|
+
"runtime": {
|
|
22
|
+
"origin": "https://widgets.example.test",
|
|
23
|
+
"catalogRevision": "catalog-2026-09-11.1"
|
|
24
|
+
},
|
|
25
|
+
"network": {
|
|
26
|
+
"mode": "runtime-consent",
|
|
27
|
+
"policyVersion": "network-policy-v1",
|
|
28
|
+
"limits": {
|
|
29
|
+
"timeoutMs": 10000,
|
|
30
|
+
"maxRedirects": 5,
|
|
31
|
+
"maxConcurrentRequests": 4,
|
|
32
|
+
"callsPerMinute": 60,
|
|
33
|
+
"requestHeaderBytes": 16384,
|
|
34
|
+
"responseHeaderBytes": 32768,
|
|
35
|
+
"requestBodyBytes": 1048576,
|
|
36
|
+
"responseBodyBytes": 8388608
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"bindings": [
|
|
40
|
+
{
|
|
41
|
+
"status": "loadable",
|
|
42
|
+
"bindingId": "binding-1",
|
|
43
|
+
"widgetId": "widget-1",
|
|
44
|
+
"widgetVersionId": "widget-version-1",
|
|
45
|
+
"digest": "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
|
|
46
|
+
"manifest": {
|
|
47
|
+
"name": "Analysis Summary",
|
|
48
|
+
"description": "A complete manifest.",
|
|
49
|
+
"widgetConfig": {
|
|
50
|
+
"schemaVersion": 1,
|
|
51
|
+
"hostApiVersion": 1,
|
|
52
|
+
"widgetSdkVersion": "0.0.1",
|
|
53
|
+
"entry": "entry.js",
|
|
54
|
+
"contribution": { "type": "panel", "id": "analysis-summary" },
|
|
55
|
+
"requestedCapabilities": { "network": { "fetch": true } },
|
|
56
|
+
"samples": [{ "id": "normal", "title": "Normal", "request": "samples/panel.json" }]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"launch": { "url": "https://widgets.example.test/launch/one-time", "expiresAt": "2026-09-03T10:01:00Z" },
|
|
60
|
+
"grantedCapabilities": [
|
|
61
|
+
{
|
|
62
|
+
"name": "network.fetch",
|
|
63
|
+
"limits": {
|
|
64
|
+
"timeoutMs": 10000,
|
|
65
|
+
"maxRedirects": 5,
|
|
66
|
+
"maxConcurrentRequests": 4,
|
|
67
|
+
"callsPerMinute": 60,
|
|
68
|
+
"requestHeaderBytes": 16384,
|
|
69
|
+
"responseHeaderBytes": 32768,
|
|
70
|
+
"requestBodyBytes": 1048576,
|
|
71
|
+
"responseBodyBytes": 8388608
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"status": "fallback",
|
|
78
|
+
"bindingId": "binding-2",
|
|
79
|
+
"widgetId": "widget-2",
|
|
80
|
+
"widgetVersionId": "widget-version-2",
|
|
81
|
+
"contribution": { "type": "file-preview", "extensions": ["cif"] },
|
|
82
|
+
"reason": "not-approved"
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocolVersion": 1,
|
|
3
|
+
"channelId": "0123456789abcdef0123456789abcdef",
|
|
4
|
+
"messageId": "widget-network-invalid-header-1",
|
|
5
|
+
"sequence": 4,
|
|
6
|
+
"type": "capability-request",
|
|
7
|
+
"payload": {
|
|
8
|
+
"requestId": "network-invalid-header-1",
|
|
9
|
+
"request": {
|
|
10
|
+
"operation": "network.fetch",
|
|
11
|
+
"input": {
|
|
12
|
+
"url": "https://api.example.test/private",
|
|
13
|
+
"auth": "required",
|
|
14
|
+
"method": "GET",
|
|
15
|
+
"headers": {
|
|
16
|
+
"pRoXy-AuThOrIzAtIoN": "must-stay-host-private"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"operation": "files.write",
|
|
3
|
+
"input": {
|
|
4
|
+
"file": {
|
|
5
|
+
"id": "file-001",
|
|
6
|
+
"kind": "file",
|
|
7
|
+
"name": "structure.xyz",
|
|
8
|
+
"revision": "rev-1"
|
|
9
|
+
},
|
|
10
|
+
"content": "1\n\nH 0 0 0\n",
|
|
11
|
+
"encoding": "utf8",
|
|
12
|
+
"expectedRevision": "rev-1",
|
|
13
|
+
"mutationId": "save-001",
|
|
14
|
+
"path": "/workspace/structure.xyz"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"operation": "files.write",
|
|
3
|
+
"input": {
|
|
4
|
+
"file": {
|
|
5
|
+
"id": "file-001",
|
|
6
|
+
"kind": "file",
|
|
7
|
+
"name": "structure.xyz",
|
|
8
|
+
"revision": "rev-1",
|
|
9
|
+
"path": "/workspace/structure.xyz"
|
|
10
|
+
},
|
|
11
|
+
"content": "1\n\nH 0 0 0\n",
|
|
12
|
+
"encoding": "utf8",
|
|
13
|
+
"expectedRevision": "rev-1",
|
|
14
|
+
"mutationId": "save-001"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Missing target",
|
|
3
|
+
"widgetConfig": {
|
|
4
|
+
"schemaVersion": 1,
|
|
5
|
+
"hostApiVersion": 1,
|
|
6
|
+
"widgetSdkVersion": "0.0.1",
|
|
7
|
+
"entry": "dist/widget.js",
|
|
8
|
+
"contribution": { "type": "panel" },
|
|
9
|
+
"samples": [{ "id": "normal", "title": "Normal", "request": "samples/normal.json" }]
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Invalid duplicate presentation surfaces",
|
|
3
|
+
"widgetConfig": {
|
|
4
|
+
"schemaVersion": 1,
|
|
5
|
+
"hostApiVersion": 1,
|
|
6
|
+
"widgetSdkVersion": "0.0.1",
|
|
7
|
+
"entry": "dist/widget.js",
|
|
8
|
+
"contribution": { "type": "panel", "id": "research-panel" },
|
|
9
|
+
"requestedCapabilities": {
|
|
10
|
+
"presentation": { "surfaces": ["floating", "floating"] }
|
|
11
|
+
},
|
|
12
|
+
"samples": [
|
|
13
|
+
{ "id": "normal", "title": "Panel", "request": "samples/panel.json" }
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Invalid empty presentation surfaces",
|
|
3
|
+
"widgetConfig": {
|
|
4
|
+
"schemaVersion": 1,
|
|
5
|
+
"hostApiVersion": 1,
|
|
6
|
+
"widgetSdkVersion": "0.0.1",
|
|
7
|
+
"entry": "dist/widget.js",
|
|
8
|
+
"contribution": { "type": "panel", "id": "research-panel" },
|
|
9
|
+
"requestedCapabilities": { "presentation": { "surfaces": [] } },
|
|
10
|
+
"samples": [
|
|
11
|
+
{ "id": "normal", "title": "Panel", "request": "samples/panel.json" }
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Invalid unknown presentation surface",
|
|
3
|
+
"widgetConfig": {
|
|
4
|
+
"schemaVersion": 1,
|
|
5
|
+
"hostApiVersion": 1,
|
|
6
|
+
"widgetSdkVersion": "0.0.1",
|
|
7
|
+
"entry": "dist/widget.js",
|
|
8
|
+
"contribution": { "type": "panel", "id": "research-panel" },
|
|
9
|
+
"requestedCapabilities": {
|
|
10
|
+
"presentation": { "surfaces": ["popover"] }
|
|
11
|
+
},
|
|
12
|
+
"samples": [
|
|
13
|
+
{ "id": "normal", "title": "Panel", "request": "samples/panel.json" }
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Unknown field",
|
|
3
|
+
"widgetConfig": {
|
|
4
|
+
"schemaVersion": 1,
|
|
5
|
+
"hostApiVersion": 1,
|
|
6
|
+
"widgetSdkVersion": "0.0.1",
|
|
7
|
+
"entry": "dist/widget.js",
|
|
8
|
+
"contribution": { "type": "panel", "id": "analysis-summary" },
|
|
9
|
+
"samples": [{ "id": "normal", "title": "Normal", "request": "samples/normal.json" }],
|
|
10
|
+
"internalToken": "must-not-be-accepted"
|
|
11
|
+
}
|
|
12
|
+
}
|