@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,57 +1,16 @@
1
- // @bun
2
- // src/adapters/blocknote-stub.tsx
3
- import { jsxDEV } from "react/jsx-dev-runtime";
4
- var blocknoteAdapterStub = {
5
- supportsNode(_kind) {
6
- return false;
7
- },
8
- createSchema(_registry) {
9
- return {};
10
- },
11
- renderNode(node, _ctx) {
12
- return /* @__PURE__ */ jsxDEV("div", {
13
- "data-blocknote-stub": true,
14
- "data-node-id": node.nodeId,
15
- children: node.title ?? node.kind
16
- }, undefined, false, undefined, this);
17
- },
18
- async serialize(node) {
19
- return { nodeId: node.nodeId, kind: node.kind };
20
- },
21
- async deserialize(input) {
22
- const o = input;
23
- return {
24
- nodeId: o?.nodeId ?? "stub",
25
- kind: o?.kind ?? "custom-widget"
26
- };
27
- }
28
- };
29
-
30
- // src/telemetry/surface-metrics.ts
31
- import {
32
- createCounter,
33
- createHistogram
34
- } from "@contractspec/lib.observability/metrics";
35
- var METER_NAME = "@contractspec/lib.surface-runtime";
36
- var resolutionDurationMs = createHistogram("bundle_surface_resolution_duration_ms", "Time to resolve bundle spec to surface plan in milliseconds", METER_NAME);
37
- var patchAcceptanceCounter = createCounter("bundle_surface_patch_acceptance_total", "Total AI patch proposals accepted by user", METER_NAME);
38
- var patchRejectionCounter = createCounter("bundle_surface_patch_rejection_total", "Total AI patch proposals rejected by user", METER_NAME);
39
- var policyDenialCounter = createCounter("bundle_surface_policy_denial_total", "Total policy denials (actions denied by policy)", METER_NAME);
40
- var surfaceFallbackCounter = createCounter("bundle_surface_fallback_total", "Total surface or layout fallbacks during resolution", METER_NAME);
41
- var missingRendererCounter = createCounter("bundle_surface_renderer_missing_total", "Total slots with no renderer for requested node kind", METER_NAME);
42
-
43
- // src/react/SlotRenderer.tsx
44
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
45
- 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 }) {
46
5
  if (nodes.length === 0) {
47
- return /* @__PURE__ */ jsxDEV2("div", {
6
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
48
7
  "data-slot-placeholder": true,
49
8
  "data-slot-id": slotId
50
9
  }, undefined, false, undefined, this);
51
10
  }
52
- return /* @__PURE__ */ jsxDEV2("div", {
11
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
53
12
  "data-slot": slotId,
54
- children: nodes.map((node) => /* @__PURE__ */ jsxDEV2(SlotNodeRenderer, {
13
+ children: nodes.map((node) => /* @__PURE__ */ jsxDEV_7x81h0kn(SlotNodeRenderer, {
55
14
  node,
56
15
  ctx,
57
16
  slotId
@@ -67,17 +26,17 @@ function SlotNodeRenderer({
67
26
  return blocknoteAdapterStub.renderNode(node, ctx);
68
27
  }
69
28
  if (node.kind === "entity-section") {
70
- return /* @__PURE__ */ jsxDEV2("section", {
29
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("section", {
71
30
  "data-node-id": node.nodeId,
72
31
  "data-kind": "entity-section",
73
32
  children: [
74
- /* @__PURE__ */ jsxDEV2("header", {
33
+ /* @__PURE__ */ jsxDEV_7x81h0kn("header", {
75
34
  "data-entity-section-header": true,
76
35
  children: node.title ?? "Section"
77
36
  }, undefined, false, undefined, this),
78
- /* @__PURE__ */ jsxDEV2("div", {
37
+ /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
79
38
  "data-entity-section-content": true,
80
- children: node.children?.map((child) => child ? /* @__PURE__ */ jsxDEV2(SlotNodeRenderer, {
39
+ children: node.children?.map((child) => child ? /* @__PURE__ */ jsxDEV_7x81h0kn(SlotNodeRenderer, {
81
40
  node: child,
82
41
  ctx,
83
42
  slotId
@@ -88,16 +47,16 @@ function SlotNodeRenderer({
88
47
  }
89
48
  if (node.kind === "entity-field") {
90
49
  const fieldId = node.sourceBinding?.fieldId;
91
- return /* @__PURE__ */ jsxDEV2("div", {
50
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
92
51
  "data-node-id": node.nodeId,
93
52
  "data-kind": "entity-field",
94
53
  "data-field-id": fieldId,
95
54
  children: [
96
- /* @__PURE__ */ jsxDEV2("span", {
55
+ /* @__PURE__ */ jsxDEV_7x81h0kn("span", {
97
56
  "data-entity-field-label": true,
98
57
  children: node.title ?? fieldId ?? "Field"
99
58
  }, undefined, false, undefined, this),
100
- /* @__PURE__ */ jsxDEV2("span", {
59
+ /* @__PURE__ */ jsxDEV_7x81h0kn("span", {
101
60
  "data-entity-field-value": true
102
61
  }, undefined, false, undefined, this)
103
62
  ]
@@ -107,13 +66,10 @@ function SlotNodeRenderer({
107
66
  nodeKind: node.kind,
108
67
  slotId
109
68
  });
110
- return /* @__PURE__ */ jsxDEV2("div", {
69
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
111
70
  "data-node-id": node.nodeId,
112
71
  "data-kind": node.kind,
113
72
  "data-renderer-missing": true,
114
73
  children: node.title ?? node.kind
115
74
  }, undefined, false, undefined, this);
116
75
  }
117
- export {
118
- SlotRenderer
119
- };
@@ -1,15 +1,13 @@
1
- // @bun
2
- // src/react/WidgetPalette.tsx
3
- import { jsxDEV } from "react/jsx-dev-runtime";
4
1
  "use client";
5
- function WidgetPalette({
2
+ import { jsxDEV as jsxDEV_7x81h0kn } from "react/jsx-dev-runtime";
3
+ export function WidgetPalette({
6
4
  registry,
7
5
  allowedNodeKinds,
8
6
  onInsert
9
7
  }) {
10
8
  const widgets = registry.listByTrust("core");
11
9
  const filtered = !allowedNodeKinds || allowedNodeKinds.includes("custom-widget") ? widgets : [];
12
- return /* @__PURE__ */ jsxDEV("div", {
10
+ return /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
13
11
  "data-widget-palette": true,
14
12
  style: {
15
13
  padding: "12px",
@@ -18,7 +16,7 @@ function WidgetPalette({
18
16
  backgroundColor: "var(--muted, #f9fafb)"
19
17
  },
20
18
  children: [
21
- /* @__PURE__ */ jsxDEV("div", {
19
+ /* @__PURE__ */ jsxDEV_7x81h0kn("div", {
22
20
  style: {
23
21
  fontSize: "12px",
24
22
  fontWeight: 600,
@@ -28,9 +26,9 @@ function WidgetPalette({
28
26
  },
29
27
  children: "Widgets"
30
28
  }, undefined, false, undefined, this),
31
- /* @__PURE__ */ jsxDEV("ul", {
29
+ /* @__PURE__ */ jsxDEV_7x81h0kn("ul", {
32
30
  style: { listStyle: "none", margin: 0, padding: 0 },
33
- children: filtered.map((w) => /* @__PURE__ */ jsxDEV("li", {
31
+ children: filtered.map((w) => /* @__PURE__ */ jsxDEV_7x81h0kn("li", {
34
32
  "data-widget-key": w.widgetKey,
35
33
  role: onInsert ? "button" : undefined,
36
34
  tabIndex: onInsert ? 0 : undefined,
@@ -55,6 +53,3 @@ function WidgetPalette({
55
53
  ]
56
54
  }, undefined, true, undefined, this);
57
55
  }
58
- export {
59
- WidgetPalette
60
- };