@contractspec/lib.surface-runtime 0.2.3 → 0.3.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.
Files changed (153) 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 -2466
  28. package/dist/browser/react/BundleProvider.js +12 -19
  29. package/dist/browser/react/BundleRenderer.js +19 -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 -790
  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 -2467
  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 -2466
  88. package/dist/node/react/BundleProvider.js +12 -19
  89. package/dist/node/react/BundleRenderer.js +19 -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 -790
  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.d.ts +3 -1
  121. package/dist/react/BundleRenderer.js +19 -663
  122. package/dist/react/OverlayConflictResolver.js +12 -181
  123. package/dist/react/PatchProposalCard.js +9 -178
  124. package/dist/react/RegionRenderer.js +14 -61
  125. package/dist/react/SlotRenderer.js +15 -59
  126. package/dist/react/WidgetPalette.js +6 -11
  127. package/dist/react/index.js +14 -791
  128. package/dist/runtime/apply-surface-patch.js +3 -209
  129. package/dist/runtime/audit-events.js +8 -20
  130. package/dist/runtime/build-context.js +2 -7
  131. package/dist/runtime/extension-registry.js +3 -10
  132. package/dist/runtime/field-renderer-registry.js +9 -16
  133. package/dist/runtime/index.js +54 -1488
  134. package/dist/runtime/overlay-alignment.js +8 -20
  135. package/dist/runtime/overlay-signer.js +2 -8
  136. package/dist/runtime/override-store.js +3 -10
  137. package/dist/runtime/planner-prompt.js +11 -9
  138. package/dist/runtime/planner-tools.js +4 -11
  139. package/dist/runtime/policy-eval.js +3 -136
  140. package/dist/runtime/preference-adapter.js +2 -63
  141. package/dist/runtime/resolve-bundle.js +10 -448
  142. package/dist/runtime/resolve-preferences.js +3 -8
  143. package/dist/runtime/rollback.js +2 -326
  144. package/dist/runtime/widget-registry.js +1 -6
  145. package/dist/spec/define-module-bundle.js +2 -68
  146. package/dist/spec/index.js +9 -318
  147. package/dist/spec/types.js +0 -1
  148. package/dist/spec/validate-bundle.js +3 -9
  149. package/dist/spec/validate-surface-patch.js +5 -12
  150. package/dist/spec/verification-snapshot-types.js +0 -1
  151. package/dist/telemetry/index.js +4 -17
  152. package/dist/telemetry/surface-metrics.js +7 -17
  153. 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
- };