@contractspec/bundle.library 3.10.1 → 3.10.2
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/.turbo/turbo-build.log +212 -206
- package/CHANGELOG.md +31 -0
- package/dist/components/docs/DocsIndexPage.js +2 -2
- package/dist/components/docs/docsManifest.js +1 -1
- package/dist/components/docs/guides/GuideProviderBackedKnowledgePage.d.ts +1 -0
- package/dist/components/docs/guides/GuideProviderBackedKnowledgePage.js +73 -0
- package/dist/components/docs/guides/GuidesIndexPage.js +1 -1
- package/dist/components/docs/guides/guides.docblocks.js +10 -1
- package/dist/components/docs/guides/index.d.ts +1 -0
- package/dist/components/docs/guides/index.js +132 -52
- package/dist/components/docs/index.js +414 -284
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -3
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +1 -1
- package/dist/components/docs/integrations/IntegrationsGoogleDrivePage.d.ts +1 -0
- package/dist/components/docs/integrations/IntegrationsGoogleDrivePage.js +22 -0
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
- package/dist/components/docs/integrations/index.d.ts +1 -0
- package/dist/components/docs/integrations/index.js +65 -45
- package/dist/components/docs/knowledge/KnowledgeGovernancePage.d.ts +1 -0
- package/dist/components/docs/knowledge/KnowledgeGovernancePage.js +23 -0
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +11 -2
- package/dist/components/docs/knowledge/index.d.ts +1 -0
- package/dist/components/docs/knowledge/index.js +49 -19
- package/dist/index.js +430 -300
- package/dist/node/components/docs/DocsIndexPage.js +2 -2
- package/dist/node/components/docs/docsManifest.js +1 -1
- package/dist/node/components/docs/guides/GuideProviderBackedKnowledgePage.js +72 -0
- package/dist/node/components/docs/guides/GuidesIndexPage.js +1 -1
- package/dist/node/components/docs/guides/guides.docblocks.js +10 -1
- package/dist/node/components/docs/guides/index.js +132 -52
- package/dist/node/components/docs/index.js +414 -284
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -3
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +1 -1
- package/dist/node/components/docs/integrations/IntegrationsGoogleDrivePage.js +21 -0
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -1
- package/dist/node/components/docs/integrations/index.js +65 -45
- package/dist/node/components/docs/knowledge/KnowledgeGovernancePage.js +22 -0
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -1
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +11 -2
- package/dist/node/components/docs/knowledge/index.js +49 -19
- package/dist/node/index.js +430 -300
- package/package.json +59 -23
- package/src/components/docs/docsManifest.ts +62 -0
- package/src/components/docs/generated/docs-index._common.json +32 -0
- package/src/components/docs/generated/docs-index.manifest.json +2 -2
- package/src/components/docs/generated/docs-index.notifications.json +7 -7
- package/src/components/docs/guides/GuideProviderBackedKnowledgePage.tsx +191 -0
- package/src/components/docs/guides/GuidesIndexPage.tsx +7 -0
- package/src/components/docs/guides/guides.docblocks.ts +20 -0
- package/src/components/docs/guides/index.ts +1 -0
- package/src/components/docs/integrations/IntegrationsGmailPage.tsx +23 -2
- package/src/components/docs/integrations/IntegrationsGoogleCalendarPage.tsx +2 -2
- package/src/components/docs/integrations/IntegrationsGoogleDrivePage.tsx +88 -0
- package/src/components/docs/integrations/IntegrationsOverviewPage.tsx +1 -0
- package/src/components/docs/integrations/index.ts +1 -0
- package/src/components/docs/knowledge/KnowledgeGovernancePage.tsx +94 -0
- package/src/components/docs/knowledge/KnowledgeOverviewPage.tsx +10 -0
- package/src/components/docs/knowledge/KnowledgeSourcesPage.tsx +45 -0
- package/src/components/docs/knowledge/index.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/bundle.library",
|
|
3
|
-
"version": "3.10.
|
|
3
|
+
"version": "3.10.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"clean": "rm -rf dist",
|
|
@@ -534,6 +534,12 @@
|
|
|
534
534
|
"node": "./dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js",
|
|
535
535
|
"default": "./dist/components/docs/guides/GuideNextjsOneEndpointPage.js"
|
|
536
536
|
},
|
|
537
|
+
"./components/docs/guides/GuideProviderBackedKnowledgePage": {
|
|
538
|
+
"types": "./dist/components/docs/guides/GuideProviderBackedKnowledgePage.d.ts",
|
|
539
|
+
"bun": "./dist/components/docs/guides/GuideProviderBackedKnowledgePage.js",
|
|
540
|
+
"node": "./dist/node/components/docs/guides/GuideProviderBackedKnowledgePage.js",
|
|
541
|
+
"default": "./dist/components/docs/guides/GuideProviderBackedKnowledgePage.js"
|
|
542
|
+
},
|
|
537
543
|
"./components/docs/guides/GuideReleaseCapsulesPage": {
|
|
538
544
|
"types": "./dist/components/docs/guides/GuideReleaseCapsulesPage.d.ts",
|
|
539
545
|
"bun": "./dist/components/docs/guides/GuideReleaseCapsulesPage.js",
|
|
@@ -594,6 +600,12 @@
|
|
|
594
600
|
"node": "./dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js",
|
|
595
601
|
"default": "./dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js"
|
|
596
602
|
},
|
|
603
|
+
"./components/docs/integrations/IntegrationsGoogleDrivePage": {
|
|
604
|
+
"types": "./dist/components/docs/integrations/IntegrationsGoogleDrivePage.d.ts",
|
|
605
|
+
"bun": "./dist/components/docs/integrations/IntegrationsGoogleDrivePage.js",
|
|
606
|
+
"node": "./dist/node/components/docs/integrations/IntegrationsGoogleDrivePage.js",
|
|
607
|
+
"default": "./dist/components/docs/integrations/IntegrationsGoogleDrivePage.js"
|
|
608
|
+
},
|
|
597
609
|
"./components/docs/integrations/IntegrationsHealthRoutingPage": {
|
|
598
610
|
"types": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.d.ts",
|
|
599
611
|
"bun": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.js",
|
|
@@ -750,6 +762,12 @@
|
|
|
750
762
|
"node": "./dist/node/components/docs/knowledge/KnowledgeExamplesPage.js",
|
|
751
763
|
"default": "./dist/components/docs/knowledge/KnowledgeExamplesPage.js"
|
|
752
764
|
},
|
|
765
|
+
"./components/docs/knowledge/KnowledgeGovernancePage": {
|
|
766
|
+
"types": "./dist/components/docs/knowledge/KnowledgeGovernancePage.d.ts",
|
|
767
|
+
"bun": "./dist/components/docs/knowledge/KnowledgeGovernancePage.js",
|
|
768
|
+
"node": "./dist/node/components/docs/knowledge/KnowledgeGovernancePage.js",
|
|
769
|
+
"default": "./dist/components/docs/knowledge/KnowledgeGovernancePage.js"
|
|
770
|
+
},
|
|
753
771
|
"./components/docs/knowledge/KnowledgeOverviewPage": {
|
|
754
772
|
"types": "./dist/components/docs/knowledge/KnowledgeOverviewPage.d.ts",
|
|
755
773
|
"bun": "./dist/components/docs/knowledge/KnowledgeOverviewPage.js",
|
|
@@ -2028,27 +2046,27 @@
|
|
|
2028
2046
|
"react": "19.2.0"
|
|
2029
2047
|
},
|
|
2030
2048
|
"dependencies": {
|
|
2031
|
-
"@contractspec/bundle.workspace": "4.7.
|
|
2049
|
+
"@contractspec/bundle.workspace": "4.7.1",
|
|
2032
2050
|
"@apollo/client": "^4.1.7",
|
|
2033
2051
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
2034
|
-
"@contractspec/example.data-grid-showcase": "3.8.
|
|
2035
|
-
"@contractspec/lib.ai-providers": "3.7.
|
|
2036
|
-
"@contractspec/lib.contracts-spec": "6.
|
|
2037
|
-
"@contractspec/lib.contracts-library": "3.7.
|
|
2038
|
-
"@contractspec/lib.content-gen": "3.7.
|
|
2039
|
-
"@contractspec/lib.contracts-runtime-server-mcp": "3.8.
|
|
2040
|
-
"@contractspec/lib.design-system": "4.4.
|
|
2041
|
-
"@contractspec/lib.surface-runtime": "0.5.
|
|
2042
|
-
"@contractspec/lib.provider-ranking": "0.7.
|
|
2043
|
-
"@contractspec/lib.example-shared-ui": "7.0.
|
|
2044
|
-
"@contractspec/lib.knowledge": "3.
|
|
2045
|
-
"@contractspec/lib.logger": "3.7.
|
|
2046
|
-
"@contractspec/lib.runtime-sandbox": "3.0.
|
|
2052
|
+
"@contractspec/example.data-grid-showcase": "3.8.25",
|
|
2053
|
+
"@contractspec/lib.ai-providers": "3.7.22",
|
|
2054
|
+
"@contractspec/lib.contracts-spec": "6.4.0",
|
|
2055
|
+
"@contractspec/lib.contracts-library": "3.7.29",
|
|
2056
|
+
"@contractspec/lib.content-gen": "3.7.29",
|
|
2057
|
+
"@contractspec/lib.contracts-runtime-server-mcp": "3.8.9",
|
|
2058
|
+
"@contractspec/lib.design-system": "4.4.4",
|
|
2059
|
+
"@contractspec/lib.surface-runtime": "0.5.29",
|
|
2060
|
+
"@contractspec/lib.provider-ranking": "0.7.22",
|
|
2061
|
+
"@contractspec/lib.example-shared-ui": "7.0.10",
|
|
2062
|
+
"@contractspec/lib.knowledge": "3.9.0",
|
|
2063
|
+
"@contractspec/lib.logger": "3.7.22",
|
|
2064
|
+
"@contractspec/lib.runtime-sandbox": "3.0.8",
|
|
2047
2065
|
"@contractspec/lib.schema": "3.7.14",
|
|
2048
|
-
"@contractspec/lib.ui-kit-web": "3.13.
|
|
2049
|
-
"@contractspec/lib.ui-link": "3.7.
|
|
2050
|
-
"@contractspec/module.context-storage": "0.7.
|
|
2051
|
-
"@contractspec/module.examples": "4.0.
|
|
2066
|
+
"@contractspec/lib.ui-kit-web": "3.13.4",
|
|
2067
|
+
"@contractspec/lib.ui-link": "3.7.24",
|
|
2068
|
+
"@contractspec/module.context-storage": "0.7.28",
|
|
2069
|
+
"@contractspec/module.examples": "4.0.10",
|
|
2052
2070
|
"@dnd-kit/core": "^6.1.0",
|
|
2053
2071
|
"@dnd-kit/sortable": "^10.0.0",
|
|
2054
2072
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -2064,10 +2082,10 @@
|
|
|
2064
2082
|
"posthog-react-native": "^4.43.10",
|
|
2065
2083
|
"react-hook-form": "^7.74.0",
|
|
2066
2084
|
"zod": "^4.3.5",
|
|
2067
|
-
"@contractspec/lib.contracts-integrations": "3.
|
|
2068
|
-
"@contractspec/lib.contracts-runtime-server-rest": "3.9.
|
|
2069
|
-
"@contractspec/lib.contracts-runtime-server-graphql": "3.8.
|
|
2070
|
-
"@contractspec/lib.contracts-runtime-client-react": "3.14.
|
|
2085
|
+
"@contractspec/lib.contracts-integrations": "3.10.0",
|
|
2086
|
+
"@contractspec/lib.contracts-runtime-server-rest": "3.9.2",
|
|
2087
|
+
"@contractspec/lib.contracts-runtime-server-graphql": "3.8.8",
|
|
2088
|
+
"@contractspec/lib.contracts-runtime-client-react": "3.14.2"
|
|
2071
2089
|
},
|
|
2072
2090
|
"devDependencies": {
|
|
2073
2091
|
"@types/react": "~19.2.14",
|
|
@@ -2601,6 +2619,12 @@
|
|
|
2601
2619
|
"node": "./dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js",
|
|
2602
2620
|
"default": "./dist/components/docs/guides/GuideNextjsOneEndpointPage.js"
|
|
2603
2621
|
},
|
|
2622
|
+
"./components/docs/guides/GuideProviderBackedKnowledgePage": {
|
|
2623
|
+
"types": "./dist/components/docs/guides/GuideProviderBackedKnowledgePage.d.ts",
|
|
2624
|
+
"bun": "./dist/components/docs/guides/GuideProviderBackedKnowledgePage.js",
|
|
2625
|
+
"node": "./dist/node/components/docs/guides/GuideProviderBackedKnowledgePage.js",
|
|
2626
|
+
"default": "./dist/components/docs/guides/GuideProviderBackedKnowledgePage.js"
|
|
2627
|
+
},
|
|
2604
2628
|
"./components/docs/guides/GuideReleaseCapsulesPage": {
|
|
2605
2629
|
"types": "./dist/components/docs/guides/GuideReleaseCapsulesPage.d.ts",
|
|
2606
2630
|
"bun": "./dist/components/docs/guides/GuideReleaseCapsulesPage.js",
|
|
@@ -2661,6 +2685,12 @@
|
|
|
2661
2685
|
"node": "./dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js",
|
|
2662
2686
|
"default": "./dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js"
|
|
2663
2687
|
},
|
|
2688
|
+
"./components/docs/integrations/IntegrationsGoogleDrivePage": {
|
|
2689
|
+
"types": "./dist/components/docs/integrations/IntegrationsGoogleDrivePage.d.ts",
|
|
2690
|
+
"bun": "./dist/components/docs/integrations/IntegrationsGoogleDrivePage.js",
|
|
2691
|
+
"node": "./dist/node/components/docs/integrations/IntegrationsGoogleDrivePage.js",
|
|
2692
|
+
"default": "./dist/components/docs/integrations/IntegrationsGoogleDrivePage.js"
|
|
2693
|
+
},
|
|
2664
2694
|
"./components/docs/integrations/IntegrationsHealthRoutingPage": {
|
|
2665
2695
|
"types": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.d.ts",
|
|
2666
2696
|
"bun": "./dist/components/docs/integrations/IntegrationsHealthRoutingPage.js",
|
|
@@ -2817,6 +2847,12 @@
|
|
|
2817
2847
|
"node": "./dist/node/components/docs/knowledge/KnowledgeExamplesPage.js",
|
|
2818
2848
|
"default": "./dist/components/docs/knowledge/KnowledgeExamplesPage.js"
|
|
2819
2849
|
},
|
|
2850
|
+
"./components/docs/knowledge/KnowledgeGovernancePage": {
|
|
2851
|
+
"types": "./dist/components/docs/knowledge/KnowledgeGovernancePage.d.ts",
|
|
2852
|
+
"bun": "./dist/components/docs/knowledge/KnowledgeGovernancePage.js",
|
|
2853
|
+
"node": "./dist/node/components/docs/knowledge/KnowledgeGovernancePage.js",
|
|
2854
|
+
"default": "./dist/components/docs/knowledge/KnowledgeGovernancePage.js"
|
|
2855
|
+
},
|
|
2820
2856
|
"./components/docs/knowledge/KnowledgeOverviewPage": {
|
|
2821
2857
|
"types": "./dist/components/docs/knowledge/KnowledgeOverviewPage.d.ts",
|
|
2822
2858
|
"bun": "./dist/components/docs/knowledge/KnowledgeOverviewPage.js",
|
|
@@ -411,6 +411,23 @@ export const DOCS_PAGES: readonly DocsPageEntry[] = [
|
|
|
411
411
|
audience: 'operator',
|
|
412
412
|
ctaMode: 'oss-next',
|
|
413
413
|
},
|
|
414
|
+
{
|
|
415
|
+
href: '/docs/guides/provider-backed-knowledge',
|
|
416
|
+
title: 'Adopt provider-backed knowledge',
|
|
417
|
+
description:
|
|
418
|
+
'Ingest Gmail and Google Drive into governed knowledge spaces with persisted provider deltas and mutation gates.',
|
|
419
|
+
section: 'build',
|
|
420
|
+
order: 68,
|
|
421
|
+
navTitle: 'Provider-backed knowledge',
|
|
422
|
+
primaryNav: true,
|
|
423
|
+
audience: 'operator',
|
|
424
|
+
ctaMode: 'oss-next',
|
|
425
|
+
aliases: [
|
|
426
|
+
'Gmail knowledge ingestion',
|
|
427
|
+
'Google Drive knowledge ingestion',
|
|
428
|
+
'ProviderDeltaSyncState',
|
|
429
|
+
],
|
|
430
|
+
},
|
|
414
431
|
{
|
|
415
432
|
href: '/docs/libraries',
|
|
416
433
|
title: 'Libraries overview',
|
|
@@ -604,6 +621,23 @@ export const DOCS_PAGES: readonly DocsPageEntry[] = [
|
|
|
604
621
|
audience: 'operator',
|
|
605
622
|
ctaMode: 'oss-next',
|
|
606
623
|
},
|
|
624
|
+
{
|
|
625
|
+
href: '/docs/knowledge/governance',
|
|
626
|
+
title: 'Knowledge mutation governance',
|
|
627
|
+
description:
|
|
628
|
+
'Gate provider-backed knowledge mutations with dry-runs, approvals, idempotency, audit evidence, and outbound-send policy.',
|
|
629
|
+
section: 'operate',
|
|
630
|
+
order: 72,
|
|
631
|
+
navTitle: 'Knowledge governance',
|
|
632
|
+
primaryNav: true,
|
|
633
|
+
audience: 'operator',
|
|
634
|
+
ctaMode: 'oss-next',
|
|
635
|
+
aliases: [
|
|
636
|
+
'knowledge.mutation.evaluateGovernance',
|
|
637
|
+
'KnowledgeMutationGovernance',
|
|
638
|
+
'outbound-send gates',
|
|
639
|
+
],
|
|
640
|
+
},
|
|
607
641
|
{
|
|
608
642
|
href: '/docs/advanced/telemetry',
|
|
609
643
|
title: 'Telemetry',
|
|
@@ -692,6 +726,34 @@ export const DOCS_PAGES: readonly DocsPageEntry[] = [
|
|
|
692
726
|
audience: 'operator',
|
|
693
727
|
ctaMode: 'oss-next',
|
|
694
728
|
},
|
|
729
|
+
{
|
|
730
|
+
href: '/docs/integrations/gmail',
|
|
731
|
+
title: 'Gmail integration',
|
|
732
|
+
description:
|
|
733
|
+
'Ingest email threads through delta-aware provider contracts and governed outbound-send mutations.',
|
|
734
|
+
section: 'integrations',
|
|
735
|
+
order: 55,
|
|
736
|
+
primaryNav: true,
|
|
737
|
+
audience: 'operator',
|
|
738
|
+
ctaMode: 'oss-next',
|
|
739
|
+
aliases: ['email knowledge ingestion', 'Gmail delta sync'],
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
href: '/docs/integrations/google-drive',
|
|
743
|
+
title: 'Google Drive integration',
|
|
744
|
+
description:
|
|
745
|
+
'Ingest Drive files and watches through explicit cursor, webhook, replay, dedupe, and tombstone contracts.',
|
|
746
|
+
section: 'integrations',
|
|
747
|
+
order: 56,
|
|
748
|
+
primaryNav: true,
|
|
749
|
+
audience: 'operator',
|
|
750
|
+
ctaMode: 'oss-next',
|
|
751
|
+
aliases: [
|
|
752
|
+
'Drive knowledge ingestion',
|
|
753
|
+
'Google Drive watchChanges',
|
|
754
|
+
'ProviderDeltaSyncState',
|
|
755
|
+
],
|
|
756
|
+
},
|
|
695
757
|
{
|
|
696
758
|
href: '/docs/integrations/stripe',
|
|
697
759
|
title: 'Stripe integration',
|
|
@@ -1392,6 +1392,22 @@
|
|
|
1392
1392
|
"kind": "reference",
|
|
1393
1393
|
"visibility": "public"
|
|
1394
1394
|
},
|
|
1395
|
+
{
|
|
1396
|
+
"id": "docs.tech.contracts.knowledge-provider-backed",
|
|
1397
|
+
"title": "Provider-backed knowledge",
|
|
1398
|
+
"summary": "Provider-backed knowledge syncs Gmail and Google Drive through explicit provider delta and mutation governance evidence.",
|
|
1399
|
+
"route": "/docs/tech/contracts/knowledge-provider-backed",
|
|
1400
|
+
"source": "docblock",
|
|
1401
|
+
"contentPath": "docblocks/docs/tech/contracts/knowledge-provider-backed.md",
|
|
1402
|
+
"tags": [
|
|
1403
|
+
"tech",
|
|
1404
|
+
"contracts",
|
|
1405
|
+
"knowledge",
|
|
1406
|
+
"integrations"
|
|
1407
|
+
],
|
|
1408
|
+
"kind": "reference",
|
|
1409
|
+
"visibility": "public"
|
|
1410
|
+
},
|
|
1395
1411
|
{
|
|
1396
1412
|
"id": "docs.tech.contracts.migrations",
|
|
1397
1413
|
"title": "MigrationSpec Overview",
|
|
@@ -1482,6 +1498,22 @@
|
|
|
1482
1498
|
"kind": "reference",
|
|
1483
1499
|
"visibility": "public"
|
|
1484
1500
|
},
|
|
1501
|
+
{
|
|
1502
|
+
"id": "docs.tech.contracts.pwa-updates",
|
|
1503
|
+
"title": "PWA update management",
|
|
1504
|
+
"summary": "Configure frontend update checks with app defaults and release overrides.",
|
|
1505
|
+
"route": "/docs/tech/contracts/pwa-updates",
|
|
1506
|
+
"source": "docblock",
|
|
1507
|
+
"contentPath": "docblocks/docs/tech/contracts/pwa-updates.md",
|
|
1508
|
+
"tags": [
|
|
1509
|
+
"tech",
|
|
1510
|
+
"contracts",
|
|
1511
|
+
"pwa",
|
|
1512
|
+
"updates"
|
|
1513
|
+
],
|
|
1514
|
+
"kind": "reference",
|
|
1515
|
+
"visibility": "public"
|
|
1516
|
+
},
|
|
1485
1517
|
{
|
|
1486
1518
|
"id": "docs.tech.contracts.README",
|
|
1487
1519
|
"title": "Contracts: Specs, Registry, Handlers, Adapters",
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generatedAt": "1970-01-01T00:00:00.000Z",
|
|
3
|
-
"total":
|
|
3
|
+
"total": 1145,
|
|
4
4
|
"version": null,
|
|
5
5
|
"contentRoot": "../../../../../../../generated/docs",
|
|
6
6
|
"chunks": [
|
|
7
7
|
{
|
|
8
8
|
"key": "_common",
|
|
9
9
|
"file": "docs-index._common.json",
|
|
10
|
-
"total":
|
|
10
|
+
"total": 183
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"key": "agent-console",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"id": "notifications/notifications.delete",
|
|
12
12
|
"title": "notifications.delete",
|
|
13
|
-
"summary": "Delete a notification.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, delete\n- **File**: `packages/
|
|
13
|
+
"summary": "Delete a notification.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, delete\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
14
14
|
"route": "/docs/reference/notifications/notifications.delete",
|
|
15
15
|
"source": "generated",
|
|
16
16
|
"contentPath": "notifications/notifications.delete.md"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{
|
|
19
19
|
"id": "notifications/notifications.list",
|
|
20
20
|
"title": "notifications.list",
|
|
21
|
-
"summary": "List notifications for the current user.\n- **Type**: operation (query)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, list\n- **File**: `packages/
|
|
21
|
+
"summary": "List notifications for the current user.\n- **Type**: operation (query)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, list\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
22
22
|
"route": "/docs/reference/notifications/notifications.list",
|
|
23
23
|
"source": "generated",
|
|
24
24
|
"contentPath": "notifications/notifications.list.md"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
{
|
|
27
27
|
"id": "notifications/notifications.markAllRead",
|
|
28
28
|
"title": "notifications.markAllRead",
|
|
29
|
-
"summary": "Mark all notifications as read.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, read\n- **File**: `packages/
|
|
29
|
+
"summary": "Mark all notifications as read.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, read\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
30
30
|
"route": "/docs/reference/notifications/notifications.markAllRead",
|
|
31
31
|
"source": "generated",
|
|
32
32
|
"contentPath": "notifications/notifications.markAllRead.md"
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
{
|
|
35
35
|
"id": "notifications/notifications.markRead",
|
|
36
36
|
"title": "notifications.markRead",
|
|
37
|
-
"summary": "Mark a notification as read.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, read\n- **File**: `packages/
|
|
37
|
+
"summary": "Mark a notification as read.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, read\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
38
38
|
"route": "/docs/reference/notifications/notifications.markRead",
|
|
39
39
|
"source": "generated",
|
|
40
40
|
"contentPath": "notifications/notifications.markRead.md"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
{
|
|
43
43
|
"id": "notifications/notifications.preferences.get",
|
|
44
44
|
"title": "notifications.preferences.get",
|
|
45
|
-
"summary": "Get notification preferences for current user.\n- **Type**: operation (query)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, preferences, get\n- **File**: `packages/
|
|
45
|
+
"summary": "Get notification preferences for current user.\n- **Type**: operation (query)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, preferences, get\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
46
46
|
"route": "/docs/reference/notifications/notifications.preferences.get",
|
|
47
47
|
"source": "generated",
|
|
48
48
|
"contentPath": "notifications/notifications.preferences.get.md"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
{
|
|
51
51
|
"id": "notifications/notifications.preferences.update",
|
|
52
52
|
"title": "notifications.preferences.update",
|
|
53
|
-
"summary": "Update notification preferences.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, preferences, update\n- **File**: `packages/
|
|
53
|
+
"summary": "Update notification preferences.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, preferences, update\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
54
54
|
"route": "/docs/reference/notifications/notifications.preferences.update",
|
|
55
55
|
"source": "generated",
|
|
56
56
|
"contentPath": "notifications/notifications.preferences.update.md"
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
{
|
|
59
59
|
"id": "notifications/notifications.send",
|
|
60
60
|
"title": "notifications.send",
|
|
61
|
-
"summary": "Send a notification to a user.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, send\n- **File**: `packages/
|
|
61
|
+
"summary": "Send a notification to a user.\n- **Type**: operation (command)\n- **Version**: 1.0.0\n- **Stability**: stable\n- **Owners**: platform.notifications\n- **Tags**: notifications, send\n- **File**: `packages/modules/notifications/src/contracts/index.ts`",
|
|
62
62
|
"route": "/docs/reference/notifications/notifications.send",
|
|
63
63
|
"source": "generated",
|
|
64
64
|
"contentPath": "notifications/notifications.send.md"
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { CodeBlock } from '@contractspec/lib.design-system';
|
|
2
|
+
import Link from '@contractspec/lib.ui-link';
|
|
3
|
+
import { ChevronRight } from 'lucide-react';
|
|
4
|
+
|
|
5
|
+
const evidenceChecklist = [
|
|
6
|
+
'ProviderDeltaSyncState persisted for each source after sync or watch renewal.',
|
|
7
|
+
'Tombstoned provider records are skipped before indexing or mutation.',
|
|
8
|
+
'Outbound mutations carry dry-run, approval, idempotency, audit, and send-gate evidence.',
|
|
9
|
+
'Connect adoption resolves existing knowledge and integration surfaces before new runtime code is added.',
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
export function GuideProviderBackedKnowledgePage() {
|
|
13
|
+
return (
|
|
14
|
+
<div className="space-y-8">
|
|
15
|
+
<div className="space-y-3">
|
|
16
|
+
<h1 className="font-bold text-4xl">Adopt provider-backed knowledge</h1>
|
|
17
|
+
<p className="text-lg text-muted-foreground">
|
|
18
|
+
Turn Gmail and Google Drive into queryable knowledge without hiding
|
|
19
|
+
provider state, webhook expiry, or mutation risk in background jobs.
|
|
20
|
+
The contract layer models the source, the integration layer models
|
|
21
|
+
provider deltas, and the knowledge runtime owns ingestion/query
|
|
22
|
+
orchestration.
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<div className="card-subtle space-y-4 p-6">
|
|
27
|
+
<h2 className="font-bold text-2xl">What you'll build</h2>
|
|
28
|
+
<ul className="space-y-2 text-muted-foreground text-sm">
|
|
29
|
+
<li>Gmail and Drive sources bound to explicit knowledge spaces.</li>
|
|
30
|
+
<li>
|
|
31
|
+
A checkpoint store for leases, cursors, webhook channel expiry, and
|
|
32
|
+
replay evidence.
|
|
33
|
+
</li>
|
|
34
|
+
<li>
|
|
35
|
+
A mutation gate that blocks unsafe external sends or provider
|
|
36
|
+
writes.
|
|
37
|
+
</li>
|
|
38
|
+
<li>
|
|
39
|
+
Connect adoption evidence proving you reused the existing
|
|
40
|
+
ContractSpec surfaces before adding custom provider code.
|
|
41
|
+
</li>
|
|
42
|
+
</ul>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div className="space-y-6">
|
|
46
|
+
<section className="space-y-3">
|
|
47
|
+
<h2 className="font-bold text-2xl">
|
|
48
|
+
1) Start from specs and sources
|
|
49
|
+
</h2>
|
|
50
|
+
<p className="text-muted-foreground text-sm">
|
|
51
|
+
Define the knowledge space and source binding before runtime sync.
|
|
52
|
+
Provider credentials stay in integration connections; source config
|
|
53
|
+
stores only identity, scope, and replayable sync state.
|
|
54
|
+
</p>
|
|
55
|
+
<CodeBlock
|
|
56
|
+
language="typescript"
|
|
57
|
+
filename="knowledge-source.ts"
|
|
58
|
+
code={`const source = {
|
|
59
|
+
meta: {
|
|
60
|
+
id: "src_drive_support",
|
|
61
|
+
tenantId: "tenant-acme",
|
|
62
|
+
integrationConnectionId: "conn_google_drive",
|
|
63
|
+
spaceKey: "knowledge.support-faq",
|
|
64
|
+
spaceVersion: "1.0.0",
|
|
65
|
+
label: "Support Drive",
|
|
66
|
+
sourceType: "google_drive",
|
|
67
|
+
createdAt: new Date(),
|
|
68
|
+
updatedAt: new Date(),
|
|
69
|
+
},
|
|
70
|
+
syncState: {
|
|
71
|
+
cursorId: "drive-start-page-token",
|
|
72
|
+
watermarkVersion: "drive-v1",
|
|
73
|
+
lease: {
|
|
74
|
+
holder: "knowledge-sync-worker",
|
|
75
|
+
expiresAt: new Date(Date.now() + 5 * 60_000),
|
|
76
|
+
renewalWindowMs: 60_000,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
config: {
|
|
80
|
+
query: "mimeType = 'text/plain' and trashed = false",
|
|
81
|
+
},
|
|
82
|
+
};`}
|
|
83
|
+
/>
|
|
84
|
+
</section>
|
|
85
|
+
|
|
86
|
+
<section className="space-y-3">
|
|
87
|
+
<h2 className="font-bold text-2xl">
|
|
88
|
+
2) Sync with checkpoints, not blind polling
|
|
89
|
+
</h2>
|
|
90
|
+
<p className="text-muted-foreground text-sm">
|
|
91
|
+
`KnowledgeRuntime` can load a stored provider delta before listing
|
|
92
|
+
Gmail or Drive, then save the next checkpoint after indexing. The
|
|
93
|
+
store can be a database table, workflow state, or Connect-backed
|
|
94
|
+
replay artifact.
|
|
95
|
+
</p>
|
|
96
|
+
<CodeBlock
|
|
97
|
+
language="typescript"
|
|
98
|
+
filename="knowledge-runtime.ts"
|
|
99
|
+
code={`const knowledge = createKnowledgeRuntime({
|
|
100
|
+
collection: "knowledge-support",
|
|
101
|
+
namespace: "tenant-acme",
|
|
102
|
+
embeddings,
|
|
103
|
+
vectorStore,
|
|
104
|
+
gmail,
|
|
105
|
+
drive,
|
|
106
|
+
deltaCheckpointStore,
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
await knowledge.syncGmail(
|
|
110
|
+
{ label: "support" },
|
|
111
|
+
{ sourceId: "src_gmail_support", evidenceRef: "audit://sync/gmail" },
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
await knowledge.syncDriveFiles(
|
|
115
|
+
{ query: "mimeType = 'text/plain' and trashed = false" },
|
|
116
|
+
{ sourceId: "src_drive_support", evidenceRef: "audit://sync/drive" },
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
await knowledge.watchDriveChanges(
|
|
120
|
+
{
|
|
121
|
+
channelId: "drive-watch-support",
|
|
122
|
+
webhookUrl: "https://app.example.com/webhooks/google-drive",
|
|
123
|
+
},
|
|
124
|
+
{ sourceId: "src_drive_support" },
|
|
125
|
+
);`}
|
|
126
|
+
/>
|
|
127
|
+
</section>
|
|
128
|
+
|
|
129
|
+
<section className="space-y-3">
|
|
130
|
+
<h2 className="font-bold text-2xl">
|
|
131
|
+
3) Gate mutations before provider writes
|
|
132
|
+
</h2>
|
|
133
|
+
<p className="text-muted-foreground text-sm">
|
|
134
|
+
External sends and provider mutations should produce a decision
|
|
135
|
+
envelope whether they execute, block, or run as dry-run. Persist
|
|
136
|
+
that envelope with the same audit trail as the provider checkpoint.
|
|
137
|
+
</p>
|
|
138
|
+
<CodeBlock
|
|
139
|
+
language="typescript"
|
|
140
|
+
filename="governed-mutation.ts"
|
|
141
|
+
code={`const result = await knowledge.runGovernedMutation(
|
|
142
|
+
{
|
|
143
|
+
operation: "gmail.message.send",
|
|
144
|
+
sourceId: "src_gmail_support",
|
|
145
|
+
requiresApproval: true,
|
|
146
|
+
outboundSend: true,
|
|
147
|
+
governance: {
|
|
148
|
+
idempotencyKey: "tenant:gmail-send:123",
|
|
149
|
+
auditEvidence: { evidenceRef: "audit://gmail-send/123" },
|
|
150
|
+
approvalRefs: [{ id: "approval-123" }],
|
|
151
|
+
outboundSendGate: {
|
|
152
|
+
status: "approved",
|
|
153
|
+
evidenceRef: "gate://gmail-send/123",
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
() => gmail.sendEmail(message),
|
|
158
|
+
{ audit: (envelope) => auditTrail.write(envelope) },
|
|
159
|
+
);`}
|
|
160
|
+
/>
|
|
161
|
+
</section>
|
|
162
|
+
|
|
163
|
+
<section className="card-subtle space-y-3 p-6">
|
|
164
|
+
<h2 className="font-bold text-2xl">4) Adoption evidence</h2>
|
|
165
|
+
<ul className="space-y-2 text-muted-foreground text-sm">
|
|
166
|
+
{evidenceChecklist.map((item) => (
|
|
167
|
+
<li key={item}>{item}</li>
|
|
168
|
+
))}
|
|
169
|
+
</ul>
|
|
170
|
+
<CodeBlock
|
|
171
|
+
language="bash"
|
|
172
|
+
filename="connect-adoption"
|
|
173
|
+
code={`contractspec connect adoption sync --json
|
|
174
|
+
|
|
175
|
+
printf '{"goal":"Wire provider-backed knowledge for Gmail and Drive"}' | \\
|
|
176
|
+
contractspec connect adoption resolve --family knowledge --stdin --json`}
|
|
177
|
+
/>
|
|
178
|
+
</section>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div className="flex items-center gap-4 pt-4">
|
|
182
|
+
<Link href="/docs/knowledge/sources" className="btn-ghost">
|
|
183
|
+
Knowledge sources
|
|
184
|
+
</Link>
|
|
185
|
+
<Link href="/docs/integrations/google-drive" className="btn-primary">
|
|
186
|
+
Google Drive integration <ChevronRight size={16} />
|
|
187
|
+
</Link>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
);
|
|
191
|
+
}
|
|
@@ -76,6 +76,13 @@ const guides = [
|
|
|
76
76
|
href: '/docs/guides/connect-in-a-repo',
|
|
77
77
|
time: '15 min',
|
|
78
78
|
},
|
|
79
|
+
{
|
|
80
|
+
title: 'Adopt provider-backed knowledge',
|
|
81
|
+
description:
|
|
82
|
+
'Sync Gmail and Google Drive into governed knowledge spaces with provider checkpoints, tombstones, and mutation gates.',
|
|
83
|
+
href: '/docs/guides/provider-backed-knowledge',
|
|
84
|
+
time: '30 min',
|
|
85
|
+
},
|
|
79
86
|
{
|
|
80
87
|
title: 'Author release capsules',
|
|
81
88
|
description:
|
|
@@ -120,6 +120,26 @@ Use the generated manifest and chunks under \`docs-index.manifest.json\` and \`d
|
|
|
120
120
|
|
|
121
121
|
Run ContractSpec CI checks to detect drift and breaking changes before merge.`,
|
|
122
122
|
},
|
|
123
|
+
{
|
|
124
|
+
id: 'docs.guides.provider-backed-knowledge',
|
|
125
|
+
title: 'Adopt provider-backed knowledge',
|
|
126
|
+
summary:
|
|
127
|
+
'Ingest Gmail and Google Drive with persisted deltas, replay checkpoints, tombstones, and mutation governance.',
|
|
128
|
+
kind: 'usage',
|
|
129
|
+
visibility: 'public',
|
|
130
|
+
route: '/docs/guides/provider-backed-knowledge',
|
|
131
|
+
tags: ['guides', 'knowledge', 'integrations', 'governance'],
|
|
132
|
+
body: `# Adopt provider-backed knowledge
|
|
133
|
+
|
|
134
|
+
Use \`@contractspec/lib.knowledge\` with Gmail and Google Drive providers to sync external knowledge through explicit \`ProviderDeltaSyncState\` checkpoints.
|
|
135
|
+
|
|
136
|
+
## Production baseline
|
|
137
|
+
|
|
138
|
+
- Persist provider cursor, watermark, webhook, replay, dedupe, idempotency, and tombstone state per source.
|
|
139
|
+
- Register \`knowledge.mutation.evaluateGovernance\` for mutation approval and audit evidence.
|
|
140
|
+
- Gate outbound sends and provider mutations through dry-run, approval, idempotency, and audit checks.
|
|
141
|
+
- Keep Connect review packets tied to the provider source and mutation evidence refs.`,
|
|
142
|
+
},
|
|
123
143
|
];
|
|
124
144
|
|
|
125
145
|
registerDocBlocks(guideDocBlocks);
|
|
@@ -11,6 +11,7 @@ export { GuideGenerateDocsClientsSchemasPage } from './GuideGenerateDocsClientsS
|
|
|
11
11
|
export { GuideHostBuilderWorkbenchPage } from './GuideHostBuilderWorkbenchPage';
|
|
12
12
|
export { GuideImportExistingCodebasesPage } from './GuideImportExistingCodebasesPage';
|
|
13
13
|
export { GuideNextjsOneEndpointPage } from './GuideNextjsOneEndpointPage';
|
|
14
|
+
export { GuideProviderBackedKnowledgePage } from './GuideProviderBackedKnowledgePage';
|
|
14
15
|
export { GuideReleaseCapsulesPage } from './GuideReleaseCapsulesPage';
|
|
15
16
|
export { GuideSpecValidationTypingPage } from './GuideSpecValidationTypingPage';
|
|
16
17
|
export { GuidesIndexPage } from './GuidesIndexPage';
|
|
@@ -67,15 +67,36 @@ outputs:
|
|
|
67
67
|
<li>Extract attachments and process them</li>
|
|
68
68
|
<li>Build email-to-task workflows</li>
|
|
69
69
|
<li>Monitor specific email threads</li>
|
|
70
|
+
<li>Sync threads into governed knowledge spaces with checkpointed deltas</li>
|
|
70
71
|
</ul>
|
|
71
72
|
</div>
|
|
72
73
|
|
|
74
|
+
<div className="space-y-4">
|
|
75
|
+
<h2 className="font-bold text-2xl">Knowledge sync and mutation gates</h2>
|
|
76
|
+
<p className="text-muted-foreground">
|
|
77
|
+
Gmail supports the shared <code>provider.delta.watch</code>{' '}
|
|
78
|
+
capability. Knowledge runtimes should persist provider cursor,
|
|
79
|
+
watermark, dedupe, idempotency, replay, and tombstone state before
|
|
80
|
+
acknowledging sync work. Outbound email sends should pass through
|
|
81
|
+
knowledge mutation governance so dry-runs, approvals, audit evidence,
|
|
82
|
+
and outbound-send gates are recorded.
|
|
83
|
+
</p>
|
|
84
|
+
<div className="flex flex-wrap gap-3">
|
|
85
|
+
<Link href="/docs/guides/provider-backed-knowledge" className="btn-ghost">
|
|
86
|
+
Provider-backed knowledge guide
|
|
87
|
+
</Link>
|
|
88
|
+
<Link href="/docs/knowledge/governance" className="btn-ghost">
|
|
89
|
+
Mutation governance
|
|
90
|
+
</Link>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
|
|
73
94
|
<div className="flex items-center gap-4 pt-4">
|
|
74
95
|
<Link href="/docs/integrations/resend" className="btn-ghost">
|
|
75
96
|
Previous: Resend
|
|
76
97
|
</Link>
|
|
77
|
-
<Link href="/docs/integrations/google-
|
|
78
|
-
Next: Google
|
|
98
|
+
<Link href="/docs/integrations/google-drive" className="btn-primary">
|
|
99
|
+
Next: Google Drive <ChevronRight size={16} />
|
|
79
100
|
</Link>
|
|
80
101
|
</div>
|
|
81
102
|
</div>
|
|
@@ -60,8 +60,8 @@ outputs:
|
|
|
60
60
|
</div>
|
|
61
61
|
|
|
62
62
|
<div className="flex items-center gap-4 pt-4">
|
|
63
|
-
<Link href="/docs/integrations/
|
|
64
|
-
Previous:
|
|
63
|
+
<Link href="/docs/integrations/google-drive" className="btn-ghost">
|
|
64
|
+
Previous: Google Drive
|
|
65
65
|
</Link>
|
|
66
66
|
<Link href="/docs/integrations/openai" className="btn-primary">
|
|
67
67
|
Next: OpenAI <ChevronRight size={16} />
|