@contractspec/lib.surface-runtime 0.3.0 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/adapters/ai-sdk-stub.js +1 -6
  2. package/dist/adapters/blocknote-stub.js +3 -8
  3. package/dist/adapters/dnd-kit-adapter.js +6 -11
  4. package/dist/adapters/dnd-kit-stub.js +1 -6
  5. package/dist/adapters/floating-ui-stub.js +4 -9
  6. package/dist/adapters/index.js +7 -176
  7. package/dist/adapters/interfaces.js +0 -1
  8. package/dist/adapters/motion-stub.js +2 -7
  9. package/dist/adapters/resizable-panels-stub.js +7 -12
  10. package/dist/browser/adapters/ai-sdk-stub.js +1 -5
  11. package/dist/browser/adapters/blocknote-stub.js +3 -7
  12. package/dist/browser/adapters/dnd-kit-adapter.js +6 -10
  13. package/dist/browser/adapters/dnd-kit-stub.js +1 -5
  14. package/dist/browser/adapters/floating-ui-stub.js +4 -8
  15. package/dist/browser/adapters/index.js +7 -175
  16. package/dist/browser/adapters/motion-stub.js +2 -6
  17. package/dist/browser/adapters/resizable-panels-stub.js +5 -9
  18. package/dist/browser/evals/golden-harness.js +4 -825
  19. package/dist/browser/examples/pm-workbench.bundle.js +2 -316
  20. package/dist/browser/i18n/catalogs/en.js +1 -5
  21. package/dist/browser/i18n/catalogs/es.js +1 -5
  22. package/dist/browser/i18n/catalogs/fr.js +1 -5
  23. package/dist/browser/i18n/catalogs/index.js +3 -133
  24. package/dist/browser/i18n/index.js +3 -168
  25. package/dist/browser/i18n/keys.js +1 -5
  26. package/dist/browser/i18n/messages.js +6 -137
  27. package/dist/browser/index.js +4 -2470
  28. package/dist/browser/react/BundleProvider.js +12 -19
  29. package/dist/browser/react/BundleRenderer.js +15 -662
  30. package/dist/browser/react/OverlayConflictResolver.js +12 -180
  31. package/dist/browser/react/PatchProposalCard.js +9 -177
  32. package/dist/browser/react/RegionRenderer.js +14 -60
  33. package/dist/browser/react/SlotRenderer.js +15 -58
  34. package/dist/browser/react/WidgetPalette.js +6 -10
  35. package/dist/browser/react/index.js +14 -794
  36. package/dist/browser/runtime/apply-surface-patch.js +3 -208
  37. package/dist/browser/runtime/audit-events.js +8 -19
  38. package/dist/browser/runtime/build-context.js +2 -6
  39. package/dist/browser/runtime/extension-registry.js +3 -9
  40. package/dist/browser/runtime/field-renderer-registry.js +5 -11
  41. package/dist/browser/runtime/index.js +54 -1487
  42. package/dist/browser/runtime/overlay-alignment.js +8 -19
  43. package/dist/browser/runtime/overlay-signer.js +2 -7
  44. package/dist/browser/runtime/override-store.js +3 -9
  45. package/dist/browser/runtime/planner-prompt.js +2 -6
  46. package/dist/browser/runtime/planner-tools.js +3 -9
  47. package/dist/browser/runtime/policy-eval.js +3 -135
  48. package/dist/browser/runtime/preference-adapter.js +2 -62
  49. package/dist/browser/runtime/resolve-bundle.js +10 -447
  50. package/dist/browser/runtime/resolve-preferences.js +3 -7
  51. package/dist/browser/runtime/rollback.js +2 -325
  52. package/dist/browser/runtime/widget-registry.js +1 -5
  53. package/dist/browser/spec/define-module-bundle.js +2 -67
  54. package/dist/browser/spec/index.js +9 -317
  55. package/dist/browser/spec/validate-bundle.js +3 -8
  56. package/dist/browser/spec/validate-surface-patch.js +5 -11
  57. package/dist/browser/telemetry/index.js +4 -16
  58. package/dist/browser/telemetry/surface-metrics.js +7 -16
  59. package/dist/evals/golden-context.js +0 -1
  60. package/dist/evals/golden-harness.js +4 -826
  61. package/dist/examples/pm-workbench.bundle.js +2 -317
  62. package/dist/i18n/catalogs/en.js +1 -6
  63. package/dist/i18n/catalogs/es.js +1 -6
  64. package/dist/i18n/catalogs/fr.js +1 -6
  65. package/dist/i18n/catalogs/index.js +3 -134
  66. package/dist/i18n/index.js +3 -169
  67. package/dist/i18n/keys.js +1 -6
  68. package/dist/i18n/messages.js +6 -138
  69. package/dist/index.js +4 -2471
  70. package/dist/node/adapters/ai-sdk-stub.js +1 -5
  71. package/dist/node/adapters/blocknote-stub.js +3 -7
  72. package/dist/node/adapters/dnd-kit-adapter.js +6 -10
  73. package/dist/node/adapters/dnd-kit-stub.js +1 -5
  74. package/dist/node/adapters/floating-ui-stub.js +4 -8
  75. package/dist/node/adapters/index.js +7 -175
  76. package/dist/node/adapters/motion-stub.js +2 -6
  77. package/dist/node/adapters/resizable-panels-stub.js +5 -9
  78. package/dist/node/evals/golden-harness.js +4 -825
  79. package/dist/node/examples/pm-workbench.bundle.js +2 -316
  80. package/dist/node/i18n/catalogs/en.js +1 -5
  81. package/dist/node/i18n/catalogs/es.js +1 -5
  82. package/dist/node/i18n/catalogs/fr.js +1 -5
  83. package/dist/node/i18n/catalogs/index.js +3 -133
  84. package/dist/node/i18n/index.js +3 -168
  85. package/dist/node/i18n/keys.js +1 -5
  86. package/dist/node/i18n/messages.js +6 -137
  87. package/dist/node/index.js +4 -2470
  88. package/dist/node/react/BundleProvider.js +12 -19
  89. package/dist/node/react/BundleRenderer.js +15 -662
  90. package/dist/node/react/OverlayConflictResolver.js +12 -180
  91. package/dist/node/react/PatchProposalCard.js +9 -177
  92. package/dist/node/react/RegionRenderer.js +14 -60
  93. package/dist/node/react/SlotRenderer.js +15 -58
  94. package/dist/node/react/WidgetPalette.js +6 -10
  95. package/dist/node/react/index.js +14 -794
  96. package/dist/node/runtime/apply-surface-patch.js +3 -208
  97. package/dist/node/runtime/audit-events.js +8 -19
  98. package/dist/node/runtime/build-context.js +2 -6
  99. package/dist/node/runtime/extension-registry.js +3 -9
  100. package/dist/node/runtime/field-renderer-registry.js +5 -11
  101. package/dist/node/runtime/index.js +54 -1487
  102. package/dist/node/runtime/overlay-alignment.js +8 -19
  103. package/dist/node/runtime/overlay-signer.js +2 -7
  104. package/dist/node/runtime/override-store.js +3 -9
  105. package/dist/node/runtime/planner-prompt.js +2 -6
  106. package/dist/node/runtime/planner-tools.js +3 -9
  107. package/dist/node/runtime/policy-eval.js +3 -135
  108. package/dist/node/runtime/preference-adapter.js +2 -62
  109. package/dist/node/runtime/resolve-bundle.js +10 -447
  110. package/dist/node/runtime/resolve-preferences.js +3 -7
  111. package/dist/node/runtime/rollback.js +2 -325
  112. package/dist/node/runtime/widget-registry.js +1 -5
  113. package/dist/node/spec/define-module-bundle.js +2 -67
  114. package/dist/node/spec/index.js +9 -317
  115. package/dist/node/spec/validate-bundle.js +3 -8
  116. package/dist/node/spec/validate-surface-patch.js +5 -11
  117. package/dist/node/telemetry/index.js +4 -16
  118. package/dist/node/telemetry/surface-metrics.js +7 -16
  119. package/dist/react/BundleProvider.js +12 -20
  120. package/dist/react/BundleRenderer.js +15 -663
  121. package/dist/react/OverlayConflictResolver.js +12 -181
  122. package/dist/react/PatchProposalCard.js +9 -178
  123. package/dist/react/RegionRenderer.js +14 -61
  124. package/dist/react/SlotRenderer.js +15 -59
  125. package/dist/react/WidgetPalette.js +6 -11
  126. package/dist/react/index.js +14 -795
  127. package/dist/runtime/apply-surface-patch.js +3 -209
  128. package/dist/runtime/audit-events.js +8 -20
  129. package/dist/runtime/build-context.js +2 -7
  130. package/dist/runtime/extension-registry.js +3 -10
  131. package/dist/runtime/field-renderer-registry.js +9 -16
  132. package/dist/runtime/index.js +54 -1488
  133. package/dist/runtime/overlay-alignment.js +8 -20
  134. package/dist/runtime/overlay-signer.js +2 -8
  135. package/dist/runtime/override-store.js +3 -10
  136. package/dist/runtime/planner-prompt.js +11 -9
  137. package/dist/runtime/planner-tools.js +4 -11
  138. package/dist/runtime/policy-eval.js +3 -136
  139. package/dist/runtime/preference-adapter.js +2 -63
  140. package/dist/runtime/resolve-bundle.js +10 -448
  141. package/dist/runtime/resolve-preferences.js +3 -8
  142. package/dist/runtime/rollback.js +2 -326
  143. package/dist/runtime/widget-registry.js +1 -6
  144. package/dist/spec/define-module-bundle.js +2 -68
  145. package/dist/spec/index.js +9 -318
  146. package/dist/spec/types.js +0 -1
  147. package/dist/spec/validate-bundle.js +3 -9
  148. package/dist/spec/validate-surface-patch.js +5 -12
  149. package/dist/spec/verification-snapshot-types.js +0 -1
  150. package/dist/telemetry/index.js +4 -17
  151. package/dist/telemetry/surface-metrics.js +7 -17
  152. package/package.json +7 -7
@@ -1,56 +1,16 @@
1
- // src/adapters/blocknote-stub.tsx
2
- import { jsxDEV } from "react/jsx-dev-runtime";
3
- var blocknoteAdapterStub = {
4
- supportsNode(_kind) {
5
- return false;
6
- },
7
- createSchema(_registry) {
8
- return {};
9
- },
10
- renderNode(node, _ctx) {
11
- return /* @__PURE__ */ jsxDEV("div", {
12
- "data-blocknote-stub": true,
13
- "data-node-id": node.nodeId,
14
- children: node.title ?? node.kind
15
- }, undefined, false, undefined, this);
16
- },
17
- async serialize(node) {
18
- return { nodeId: node.nodeId, kind: node.kind };
19
- },
20
- async deserialize(input) {
21
- const o = input;
22
- return {
23
- nodeId: o?.nodeId ?? "stub",
24
- kind: o?.kind ?? "custom-widget"
25
- };
26
- }
27
- };
28
-
29
- // src/telemetry/surface-metrics.ts
30
- import {
31
- createCounter,
32
- createHistogram
33
- } from "@contractspec/lib.observability/metrics";
34
- var METER_NAME = "@contractspec/lib.surface-runtime";
35
- var resolutionDurationMs = createHistogram("bundle_surface_resolution_duration_ms", "Time to resolve bundle spec to surface plan in milliseconds", METER_NAME);
36
- var patchAcceptanceCounter = createCounter("bundle_surface_patch_acceptance_total", "Total AI patch proposals accepted by user", METER_NAME);
37
- var patchRejectionCounter = createCounter("bundle_surface_patch_rejection_total", "Total AI patch proposals rejected by user", METER_NAME);
38
- var policyDenialCounter = createCounter("bundle_surface_policy_denial_total", "Total policy denials (actions denied by policy)", METER_NAME);
39
- var surfaceFallbackCounter = createCounter("bundle_surface_fallback_total", "Total surface or layout fallbacks during resolution", METER_NAME);
40
- var missingRendererCounter = createCounter("bundle_surface_renderer_missing_total", "Total slots with no renderer for requested node kind", METER_NAME);
41
-
42
- // src/react/SlotRenderer.tsx
43
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
44
- function SlotRenderer({ slotId, ctx, nodes }) {
1
+ import { jsxDEV as jsxDEV_7x81h0kn } from "react/jsx-dev-runtime";
2
+ import { blocknoteAdapterStub } from "../adapters/blocknote-stub";
3
+ import { missingRendererCounter } from "../telemetry/surface-metrics";
4
+ export function SlotRenderer({ slotId, ctx, nodes }) {
45
5
  if (nodes.length === 0) {
46
- return /* @__PURE__ */ jsxDEV2("div", {
6
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
47
7
  "data-slot-placeholder": true,
48
8
  "data-slot-id": slotId
49
9
  }, undefined, false, undefined, this);
50
10
  }
51
- return /* @__PURE__ */ jsxDEV2("div", {
11
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
52
12
  "data-slot": slotId,
53
- children: nodes.map((node) => /* @__PURE__ */ jsxDEV2(SlotNodeRenderer, {
13
+ children: nodes.map((node) => /* @__PURE__ */ jsxDEV_7x81h0kn(SlotNodeRenderer, {
54
14
  node,
55
15
  ctx,
56
16
  slotId
@@ -66,17 +26,17 @@ function SlotNodeRenderer({
66
26
  return blocknoteAdapterStub.renderNode(node, ctx);
67
27
  }
68
28
  if (node.kind === "entity-section") {
69
- return /* @__PURE__ */ jsxDEV2("section", {
29
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("section", {
70
30
  "data-node-id": node.nodeId,
71
31
  "data-kind": "entity-section",
72
32
  children: [
73
- /* @__PURE__ */ jsxDEV2("header", {
33
+ /* @__PURE__ */ jsxDEV_7x81h0kn("header", {
74
34
  "data-entity-section-header": true,
75
35
  children: node.title ?? "Section"
76
36
  }, undefined, false, undefined, this),
77
- /* @__PURE__ */ jsxDEV2("div", {
37
+ /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
78
38
  "data-entity-section-content": true,
79
- children: node.children?.map((child) => child ? /* @__PURE__ */ jsxDEV2(SlotNodeRenderer, {
39
+ children: node.children?.map((child) => child ? /* @__PURE__ */ jsxDEV_7x81h0kn(SlotNodeRenderer, {
80
40
  node: child,
81
41
  ctx,
82
42
  slotId
@@ -87,16 +47,16 @@ function SlotNodeRenderer({
87
47
  }
88
48
  if (node.kind === "entity-field") {
89
49
  const fieldId = node.sourceBinding?.fieldId;
90
- return /* @__PURE__ */ jsxDEV2("div", {
50
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
91
51
  "data-node-id": node.nodeId,
92
52
  "data-kind": "entity-field",
93
53
  "data-field-id": fieldId,
94
54
  children: [
95
- /* @__PURE__ */ jsxDEV2("span", {
55
+ /* @__PURE__ */ jsxDEV_7x81h0kn("span", {
96
56
  "data-entity-field-label": true,
97
57
  children: node.title ?? fieldId ?? "Field"
98
58
  }, undefined, false, undefined, this),
99
- /* @__PURE__ */ jsxDEV2("span", {
59
+ /* @__PURE__ */ jsxDEV_7x81h0kn("span", {
100
60
  "data-entity-field-value": true
101
61
  }, undefined, false, undefined, this)
102
62
  ]
@@ -106,13 +66,10 @@ function SlotNodeRenderer({
106
66
  nodeKind: node.kind,
107
67
  slotId
108
68
  });
109
- return /* @__PURE__ */ jsxDEV2("div", {
69
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
110
70
  "data-node-id": node.nodeId,
111
71
  "data-kind": node.kind,
112
72
  "data-renderer-missing": true,
113
73
  children: node.title ?? node.kind
114
74
  }, undefined, false, undefined, this);
115
75
  }
116
- export {
117
- SlotRenderer
118
- };
@@ -1,14 +1,13 @@
1
- // src/react/WidgetPalette.tsx
2
- import { jsxDEV } from "react/jsx-dev-runtime";
3
1
  "use client";
4
- function WidgetPalette({
2
+ import { jsxDEV as jsxDEV_7x81h0kn } from "react/jsx-dev-runtime";
3
+ export function WidgetPalette({
5
4
  registry,
6
5
  allowedNodeKinds,
7
6
  onInsert
8
7
  }) {
9
8
  const widgets = registry.listByTrust("core");
10
9
  const filtered = !allowedNodeKinds || allowedNodeKinds.includes("custom-widget") ? widgets : [];
11
- return /* @__PURE__ */ jsxDEV("div", {
10
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
12
11
  "data-widget-palette": true,
13
12
  style: {
14
13
  padding: "12px",
@@ -17,7 +16,7 @@ function WidgetPalette({
17
16
  backgroundColor: "var(--muted, #f9fafb)"
18
17
  },
19
18
  children: [
20
- /* @__PURE__ */ jsxDEV("div", {
19
+ /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
21
20
  style: {
22
21
  fontSize: "12px",
23
22
  fontWeight: 600,
@@ -27,9 +26,9 @@ function WidgetPalette({
27
26
  },
28
27
  children: "Widgets"
29
28
  }, undefined, false, undefined, this),
30
- /* @__PURE__ */ jsxDEV("ul", {
29
+ /* @__PURE__ */ jsxDEV_7x81h0kn("ul", {
31
30
  style: { listStyle: "none", margin: 0, padding: 0 },
32
- children: filtered.map((w) => /* @__PURE__ */ jsxDEV("li", {
31
+ children: filtered.map((w) => /* @__PURE__ */ jsxDEV_7x81h0kn("li", {
33
32
  "data-widget-key": w.widgetKey,
34
33
  role: onInsert ? "button" : undefined,
35
34
  tabIndex: onInsert ? 0 : undefined,
@@ -54,6 +53,3 @@ function WidgetPalette({
54
53
  ]
55
54
  }, undefined, true, undefined, this);
56
55
  }
57
- export {
58
- WidgetPalette
59
- };