@vmz/vmz 0.0.2 → 0.0.4

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 (83) hide show
  1. package/README.md +19 -13
  2. package/dist/application-cmd.d.ts +1 -2
  3. package/dist/application-cmd.js +9 -10
  4. package/dist/bundler-adapter.d.ts +2 -3
  5. package/dist/bundler-adapter.js +2 -3
  6. package/dist/cdn-policy.d.ts +178 -0
  7. package/dist/cdn-policy.js +344 -0
  8. package/dist/cli.d.ts +10 -2
  9. package/dist/cli.js +179 -16
  10. package/dist/content-addressed-assets.d.ts +69 -0
  11. package/dist/content-addressed-assets.js +206 -0
  12. package/dist/dev-session.d.ts +2 -2
  13. package/dist/dev-session.js +51 -16
  14. package/dist/document-build.js +1 -2
  15. package/dist/document-check.d.ts +1 -1
  16. package/dist/document-check.js +4 -4
  17. package/dist/document-cmd.d.ts +1 -2
  18. package/dist/document-cmd.js +2 -3
  19. package/dist/document-designs.js +31 -3
  20. package/dist/document-enrich.js +2 -3
  21. package/dist/document-evidence.d.ts +4 -4
  22. package/dist/document-evidence.js +20 -12
  23. package/dist/document-integrate.d.ts +0 -1
  24. package/dist/document-integrate.js +0 -1
  25. package/dist/document-interactive.d.ts +11 -11
  26. package/dist/document-interactive.js +12 -13
  27. package/dist/document-locale.d.ts +1 -1
  28. package/dist/document-locale.js +1 -1
  29. package/dist/document-markdown.d.ts +1 -2
  30. package/dist/document-markdown.js +13 -7
  31. package/dist/document-scan.d.ts +4 -4
  32. package/dist/document-scan.js +4 -4
  33. package/dist/document-schema.d.ts +28 -29
  34. package/dist/document-schema.js +28 -29
  35. package/dist/explain-cmd.js +3 -3
  36. package/dist/index.d.ts +349 -789
  37. package/dist/index.js +109 -85
  38. package/dist/invocation.d.ts +68 -0
  39. package/dist/invocation.js +169 -0
  40. package/dist/locale-check.d.ts +19 -3
  41. package/dist/locale-check.js +130 -6
  42. package/dist/locale-cmd.js +6 -7
  43. package/dist/locale-delivery.d.ts +38 -38
  44. package/dist/locale-delivery.js +39 -40
  45. package/dist/locale-router.d.ts +39 -40
  46. package/dist/locale-router.js +39 -40
  47. package/dist/locale-runtime.d.ts +39 -39
  48. package/dist/locale-runtime.js +44 -45
  49. package/dist/locale-schema.d.ts +1 -2
  50. package/dist/locale-schema.js +1 -2
  51. package/dist/locale-tooling.d.ts +13 -13
  52. package/dist/locale-tooling.js +14 -15
  53. package/dist/log.d.ts +1 -1
  54. package/dist/log.js +1 -1
  55. package/dist/packages.d.ts +1 -2
  56. package/dist/packages.js +1 -2
  57. package/dist/plugin-host.d.ts +11 -3
  58. package/dist/plugin-host.js +21 -5
  59. package/dist/port.d.ts +10 -0
  60. package/dist/port.js +46 -0
  61. package/dist/production-observability.d.ts +286 -0
  62. package/dist/production-observability.js +469 -0
  63. package/dist/production-test-pack.d.ts +158 -0
  64. package/dist/production-test-pack.js +452 -0
  65. package/dist/refactor-cmd.d.ts +1 -1
  66. package/dist/refactor-cmd.js +6 -6
  67. package/dist/release-cmd.d.ts +8 -0
  68. package/dist/release-cmd.js +126 -0
  69. package/dist/release-pack.d.ts +96 -0
  70. package/dist/release-pack.js +337 -0
  71. package/dist/resolve-native-cli.d.ts +14 -0
  72. package/dist/resolve-native-cli.js +84 -0
  73. package/dist/resolve.d.ts +1 -2
  74. package/dist/resolve.js +1 -2
  75. package/dist/site-delivery.d.ts +134 -0
  76. package/dist/site-delivery.js +345 -0
  77. package/dist/static-emit.d.ts +136 -0
  78. package/dist/static-emit.js +463 -0
  79. package/dist/test-cmd.d.ts +2 -2
  80. package/dist/test-cmd.js +37 -17
  81. package/dist/watch-diff.d.ts +1 -1
  82. package/dist/watch-diff.js +1 -1
  83. package/package.json +32 -17
@@ -1,7 +1,6 @@
1
1
  // @ts-nocheck
2
2
  /**
3
- * Locale I5 tooling: explain · diff · extract · pseudo · cross-host conformance.
4
- * Design: 规划设计/vmz/28 §12–§13
3
+ * Locale tooling: explain · diff · extract · pseudo · cross-host conformance.
5
4
  */
6
5
  import fs from 'node:fs';
7
6
  import path from 'node:path';
@@ -11,10 +10,10 @@ import { assertHostMessageInvariant, buildLocaleDeliveryResolution } from './loc
11
10
  /**
12
11
  * Explain one MessageId: definition, params, variants, fallback, delivery reachability.
13
12
  * @param {{
14
- * messageId: string,
15
- * locale?: string|null,
16
- * deliveryId?: string|null,
17
- * checkReport: any,
13
+ * messageId: string,
14
+ * locale?: string|null,
15
+ * deliveryId?: string|null,
16
+ * checkReport: any,
18
17
  * }} input
19
18
  */
20
19
  export function explainLocaleMessage(input) {
@@ -81,9 +80,9 @@ export function explainLocaleMessage(input) {
81
80
  /**
82
81
  * Diff two locales' catalogs.
83
82
  * @param {{
84
- * baseLocale: string,
85
- * targetLocale: string,
86
- * messages: Array<{ messageId: string, variants: Record<string, { template: string, params?: any[] }> }>,
83
+ * baseLocale: string,
84
+ * targetLocale: string,
85
+ * messages: Array<{ messageId: string, variants: Record<string, { template: string, params?: any[] }> }>,
87
86
  * }} input
88
87
  */
89
88
  export function diffLocaleCatalogs(input) {
@@ -250,9 +249,9 @@ export function extractHardcodedText(projectRoot, opts = {}) {
250
249
  * Pseudo-localize a source locale for layout/overflow testing.
251
250
  * Preserves ICU placeholders; marks provenance — never a production fallback.
252
251
  * @param {{
253
- * sourceLocale: string,
254
- * messages: Array<{ messageId: string, variants: Record<string, { template: string }> }>,
255
- * production?: boolean,
252
+ * sourceLocale: string,
253
+ * messages: Array<{ messageId: string, variants: Record<string, { template: string }> }>,
254
+ * production?: boolean,
256
255
  * }} input
257
256
  */
258
257
  export function pseudoLocalizeCatalog(input) {
@@ -296,9 +295,9 @@ export function pseudoLocalizeCatalog(input) {
296
295
  /**
297
296
  * Cross-host conformance: same MessageId set + catalog hashes + formatter version.
298
297
  * @param {{
299
- * manifest: any,
300
- * messages: any[],
301
- * routeIds?: string[],
298
+ * manifest: any,
299
+ * messages: any[],
300
+ * routeIds?: string[],
302
301
  * }} input
303
302
  */
304
303
  export function checkLocaleConformance(input) {
package/dist/log.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Unified CLI logging / diagnostics (N2).
2
+ * Unified CLI logging / diagnostics .
3
3
  */
4
4
  export declare const log: {
5
5
  /** @param {...unknown} args */
package/dist/log.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // @ts-nocheck
2
2
  /**
3
- * Unified CLI logging / diagnostics (N2).
3
+ * Unified CLI logging / diagnostics .
4
4
  */
5
5
  /** @param {string} level */
6
6
  function stamp(level) {
@@ -1,6 +1,5 @@
1
1
  /**
2
- * npm / pnpm workspace package resolution helpers (N4.3).
3
- * Design: `规划设计/vmz/14` — Node owns package resolution; Rust owns semantics.
2
+ * npm / pnpm workspace package resolution helpers (session).
4
3
  */
5
4
  /**
6
5
  * @typedef {object} ResolvedPackage
package/dist/packages.js CHANGED
@@ -1,7 +1,6 @@
1
1
  // @ts-nocheck
2
2
  /**
3
- * npm / pnpm workspace package resolution helpers (N4.3).
4
- * Design: `规划设计/vmz/14` — Node owns package resolution; Rust owns semantics.
3
+ * npm / pnpm workspace package resolution helpers (session).
5
4
  */
6
5
  import { existsSync, readFileSync, readdirSync } from 'node:fs';
7
6
  import path from 'node:path';
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Plugin protocol v1 helpers (N3) + typed config loading.
3
- * Design: 瑙勫垝璁捐/vmz/14-Node-NAPI涓庢彃浠跺涓?md
2
+ * Plugin protocol v1 helpers + typed config loading.
4
3
  */
5
4
  import { contentHash, defineConfig, definePlugin } from '@vmz/plugin';
6
5
  export { contentHash, defineConfig, definePlugin };
@@ -13,11 +12,20 @@ export declare function importMaybeTs(full: any): Promise<any>;
13
12
  /**
14
13
  * Load `vmz.config.*` from project root (+ optional root `vmz.plugin.*`).
15
14
  * @param {string} project
16
- * @returns {Promise<{ plugins: import('@vmz/plugin').VmzPlugin[], engines: import('@vmz/plugin').VmzEngines, path: string | null, pluginPath: string | null }>}
15
+ * @returns {Promise<{
16
+ * plugins: import('@vmz/plugin').VmzPlugin[],
17
+ * engines: import('@vmz/plugin').VmzEngines,
18
+ * delivery: import('@vmz/plugin').SiteDeliveryAuthoring | null,
19
+ * application: { id?: string } | null,
20
+ * path: string | null,
21
+ * pluginPath: string | null,
22
+ * }>}
17
23
  */
18
24
  export declare function loadVmzConfig(project: any): Promise<{
19
25
  plugins: any[];
20
26
  engines: {};
27
+ delivery: any;
28
+ application: any;
21
29
  path: any;
22
30
  pluginPath: any;
23
31
  }>;
@@ -1,7 +1,6 @@
1
1
  // @ts-nocheck
2
2
  /**
3
- * Plugin protocol v1 helpers (N3) + typed config loading.
4
- * Design: 瑙勫垝璁捐/vmz/14-Node-NAPI涓庢彃浠跺涓?md
3
+ * Plugin protocol v1 helpers + typed config loading.
5
4
  */
6
5
  import { existsSync } from 'node:fs';
7
6
  import path from 'node:path';
@@ -33,13 +32,24 @@ export async function importMaybeTs(full) {
33
32
  /**
34
33
  * Load `vmz.config.*` from project root (+ optional root `vmz.plugin.*`).
35
34
  * @param {string} project
36
- * @returns {Promise<{ plugins: import('@vmz/plugin').VmzPlugin[], engines: import('@vmz/plugin').VmzEngines, path: string | null, pluginPath: string | null }>}
35
+ * @returns {Promise<{
36
+ * plugins: import('@vmz/plugin').VmzPlugin[],
37
+ * engines: import('@vmz/plugin').VmzEngines,
38
+ * delivery: import('@vmz/plugin').SiteDeliveryAuthoring | null,
39
+ * application: { id?: string } | null,
40
+ * path: string | null,
41
+ * pluginPath: string | null,
42
+ * }>}
37
43
  */
38
44
  export async function loadVmzConfig(project) {
39
45
  /** @type {import('@vmz/plugin').VmzPlugin[]} */
40
46
  const plugins = [];
41
47
  /** @type {import('@vmz/plugin').VmzEngines} */
42
48
  let engines = {};
49
+ /** @type {import('@vmz/plugin').SiteDeliveryAuthoring | null} */
50
+ let delivery = null;
51
+ /** @type {{ id?: string } | null} */
52
+ let application = null;
43
53
  /** @type {string | null} */
44
54
  let configPath = null;
45
55
  /** @type {string | null} */
@@ -52,6 +62,12 @@ export async function loadVmzConfig(project) {
52
62
  const cfg = await importMaybeTs(full);
53
63
  const raw = cfg?.plugins ?? [];
54
64
  engines = cfg?.engines && typeof cfg.engines === 'object' ? { ...cfg.engines } : {};
65
+ if (cfg?.delivery && typeof cfg.delivery === 'object') {
66
+ delivery = cfg.delivery;
67
+ }
68
+ if (cfg?.application && typeof cfg.application === 'object') {
69
+ application = cfg.application;
70
+ }
55
71
  for (const entry of raw) {
56
72
  plugins.push(await resolvePluginEntry(project, entry));
57
73
  }
@@ -65,7 +81,7 @@ export async function loadVmzConfig(project) {
65
81
  plugins.push(await resolvePluginEntry(project, full));
66
82
  break;
67
83
  }
68
- return { plugins, engines, path: configPath, pluginPath };
84
+ return { plugins, engines, delivery, application, path: configPath, pluginPath };
69
85
  }
70
86
  /**
71
87
  * @param {string} project
@@ -158,7 +174,7 @@ export async function applyPlugins(workspace, plugins, opts) {
158
174
  return reports;
159
175
  }
160
176
  /**
161
- * Only math/code/markdown register interchangeable engines (see design doc 23 §1.1).
177
+ * Only math/code/markdown register interchangeable engines (see design .
162
178
  * @param {{ code: Set<string>, math: Set<string>, markdown: Set<string> }} registered
163
179
  * @param {any} item
164
180
  */
package/dist/port.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Probe for a free TCP port starting at `start` (inclusive).
3
+ * Used by `vmz dev` when `--port` is omitted.
4
+ *
5
+ * @param {string} host
6
+ * @param {number} [start=5173]
7
+ * @param {number} [maxTries=50]
8
+ * @returns {Promise<number>}
9
+ */
10
+ export declare function findAvailablePort(host: any, start?: number, maxTries?: number): Promise<unknown>;
package/dist/port.js ADDED
@@ -0,0 +1,46 @@
1
+ // @ts-nocheck
2
+ import net from 'node:net';
3
+ /**
4
+ * Probe for a free TCP port starting at `start` (inclusive).
5
+ * Used by `vmz dev` when `--port` is omitted.
6
+ *
7
+ * @param {string} host
8
+ * @param {number} [start=5173]
9
+ * @param {number} [maxTries=50]
10
+ * @returns {Promise<number>}
11
+ */
12
+ export function findAvailablePort(host, start = 5173, maxTries = 50) {
13
+ const first = Number(start);
14
+ if (!Number.isFinite(first) || first <= 0) {
15
+ return Promise.reject(new Error(`invalid start port: ${start}`));
16
+ }
17
+ return new Promise((resolve, reject) => {
18
+ let port = first;
19
+ const attempt = () => {
20
+ if (port > first + maxTries) {
21
+ reject(new Error(`no free port in ${first}..${first + maxTries} on ${host}`));
22
+ return;
23
+ }
24
+ const server = net.createServer();
25
+ server.unref();
26
+ server.once('error', (err) => {
27
+ if (err && err.code === 'EADDRINUSE') {
28
+ port += 1;
29
+ attempt();
30
+ return;
31
+ }
32
+ reject(err);
33
+ });
34
+ server.once('listening', () => {
35
+ server.close((closeErr) => {
36
+ if (closeErr)
37
+ reject(closeErr);
38
+ else
39
+ resolve(port);
40
+ });
41
+ });
42
+ server.listen(port, host);
43
+ };
44
+ attempt();
45
+ });
46
+ }
@@ -0,0 +1,286 @@
1
+ /**
2
+ * A5: Production observability — trace facets, redaction, CSP/security,
3
+ * performance budgets, health/readiness, capability closure.
4
+ */
5
+ export declare const PRODUCTION_OBSERVABILITY_SCHEMA = "vmz.production.observability.v0";
6
+ export declare const PRODUCTION_TRACE_SCHEMA = "vmz.production.trace.v0";
7
+ /** Facets that production traces must be able to carry (08 A5). */
8
+ export declare const REQUIRED_TRACE_FACETS: readonly string[];
9
+ /**
10
+ * Default Browser Production Profile observability contract.
11
+ * @param {Record<string, unknown>} [overrides]
12
+ */
13
+ export declare function browserProductionObservability(overrides?: {}): {
14
+ schema: string;
15
+ id: any;
16
+ trace: {
17
+ schema: string;
18
+ requiredFacets: any;
19
+ retainOnFailure: any;
20
+ };
21
+ redaction: {
22
+ mode: string;
23
+ replaceWith: any;
24
+ allowPublicProvenance: boolean;
25
+ sensitiveKeyPattern: string;
26
+ };
27
+ security: {
28
+ csp: any;
29
+ requireIntegrityForRemote: boolean;
30
+ originIsolation: boolean;
31
+ requireNonceForInline: boolean;
32
+ cookieNamespace: any;
33
+ sessionNamespace: any;
34
+ };
35
+ capability: {
36
+ allowlistRequired: boolean;
37
+ inputOutputSchemaRequired: boolean;
38
+ timeoutMsDefault: number;
39
+ cancelSupported: boolean;
40
+ serverSecretClosure: boolean;
41
+ };
42
+ budgets: {
43
+ irrelevantBindingWork: number;
44
+ irrelevantRouteRegionRebuild: number;
45
+ wholeTreeRerender: number;
46
+ maxArtifactBytes: number;
47
+ maxHtmlBytes: number;
48
+ maxClientJsBytes: number;
49
+ maxPatchCountPerTransition: number;
50
+ };
51
+ health: {
52
+ livePath: any;
53
+ readyPath: any;
54
+ gracefulShutdown: {
55
+ stopAccepting: boolean;
56
+ drainInFlight: boolean;
57
+ timeoutMs: number;
58
+ };
59
+ };
60
+ sampling: {
61
+ diagnosticSampleRate: number;
62
+ rollbackOnErrorRate: number;
63
+ latencyBudgetMs: {
64
+ p95: number;
65
+ p99: number;
66
+ };
67
+ };
68
+ };
69
+ /**
70
+ * @param {unknown} raw
71
+ */
72
+ export declare function normalizeObservability(raw: any): {
73
+ schema: string;
74
+ id: any;
75
+ trace: {
76
+ schema: string;
77
+ requiredFacets: any;
78
+ retainOnFailure: any;
79
+ };
80
+ redaction: {
81
+ mode: string;
82
+ replaceWith: any;
83
+ allowPublicProvenance: boolean;
84
+ sensitiveKeyPattern: string;
85
+ };
86
+ security: {
87
+ csp: any;
88
+ requireIntegrityForRemote: boolean;
89
+ originIsolation: boolean;
90
+ requireNonceForInline: boolean;
91
+ cookieNamespace: any;
92
+ sessionNamespace: any;
93
+ };
94
+ capability: {
95
+ allowlistRequired: boolean;
96
+ inputOutputSchemaRequired: boolean;
97
+ timeoutMsDefault: number;
98
+ cancelSupported: boolean;
99
+ serverSecretClosure: boolean;
100
+ };
101
+ budgets: {
102
+ irrelevantBindingWork: number;
103
+ irrelevantRouteRegionRebuild: number;
104
+ wholeTreeRerender: number;
105
+ maxArtifactBytes: number;
106
+ maxHtmlBytes: number;
107
+ maxClientJsBytes: number;
108
+ maxPatchCountPerTransition: number;
109
+ };
110
+ health: {
111
+ livePath: any;
112
+ readyPath: any;
113
+ gracefulShutdown: {
114
+ stopAccepting: boolean;
115
+ drainInFlight: boolean;
116
+ timeoutMs: number;
117
+ };
118
+ };
119
+ sampling: {
120
+ diagnosticSampleRate: number;
121
+ rollbackOnErrorRate: number;
122
+ latencyBudgetMs: {
123
+ p95: number;
124
+ p99: number;
125
+ };
126
+ };
127
+ };
128
+ /**
129
+ * Redact sensitive keys recursively. Never returns secrets for public provenance.
130
+ * @param {unknown} value
131
+ * @param {Record<string, any>} [policy]
132
+ * @param {{ privilege?: 'public' | 'operator' }} [opts]
133
+ */
134
+ export declare function redactSensitive(value: any, policy?: {}, opts?: {}): any;
135
+ /**
136
+ * Validate a production trace carries required facets (as event.facet or mapped kind).
137
+ * @param {unknown} raw
138
+ * @param {string[]} [requiredFacets]
139
+ */
140
+ export declare function validateProductionTrace(raw: any, requiredFacets?: readonly string[]): {
141
+ ok: boolean;
142
+ covered: unknown[];
143
+ errors: any[];
144
+ };
145
+ /**
146
+ * Build a minimal valid production trace covering all required facets (for CI assembly).
147
+ * @param {Record<string, unknown>} [meta]
148
+ */
149
+ export declare function buildCoveringProductionTrace(meta?: {}): {
150
+ schema: string;
151
+ status: string;
152
+ applicationId: any;
153
+ artifactDigest: any;
154
+ events: {
155
+ facet: string;
156
+ kind: string;
157
+ stableId: {
158
+ kind: string;
159
+ id: string;
160
+ };
161
+ generation: number;
162
+ redacted: boolean;
163
+ payload: any;
164
+ }[];
165
+ };
166
+ /**
167
+ * @param {Record<string, any>} measured
168
+ * @param {Record<string, any>} budgets
169
+ */
170
+ export declare function checkProductionBudgets(measured: any, budgets: any): {
171
+ ok: boolean;
172
+ violations: any[];
173
+ };
174
+ /**
175
+ * Validate capability production closure (allowlist + schema + timeout + secret).
176
+ * @param {Record<string, any>} cap
177
+ * @param {Record<string, any>} policy
178
+ */
179
+ export declare function checkCapabilityClosure(cap: any, policy: any): {
180
+ ok: boolean;
181
+ errors: any[];
182
+ };
183
+ /**
184
+ * Merge CSP / security headers into a CDN policy headers list (HTML matches).
185
+ * @param {Record<string, any>} cdnPolicy
186
+ * @param {Record<string, any>} security
187
+ */
188
+ export declare function applySecurityHeadersToCdnPolicy(cdnPolicy: any, security: any): any;
189
+ /**
190
+ * Measure dist sizes for budget gates.
191
+ * @param {string} distDir
192
+ */
193
+ export declare function measureDistBudgets(distDir: any): {
194
+ artifactBytes: number;
195
+ htmlBytes: number;
196
+ clientJsBytes: number;
197
+ irrelevantBindingWork: number;
198
+ irrelevantRouteRegionRebuild: number;
199
+ wholeTreeRerender: number;
200
+ patchCount: number;
201
+ };
202
+ /**
203
+ * Write observability contract (+ covering trace sample) under dist/_vmz.
204
+ * @param {string} distDir
205
+ * @param {Record<string, unknown>} [overrides]
206
+ * @param {{ applicationId?: string, artifactDigest?: string }} [meta]
207
+ */
208
+ export declare function emitProductionObservability(distDir: any, overrides?: {}, meta?: {}): {
209
+ contract: {
210
+ schema: string;
211
+ id: any;
212
+ trace: {
213
+ schema: string;
214
+ requiredFacets: any;
215
+ retainOnFailure: any;
216
+ };
217
+ redaction: {
218
+ mode: string;
219
+ replaceWith: any;
220
+ allowPublicProvenance: boolean;
221
+ sensitiveKeyPattern: string;
222
+ };
223
+ security: {
224
+ csp: any;
225
+ requireIntegrityForRemote: boolean;
226
+ originIsolation: boolean;
227
+ requireNonceForInline: boolean;
228
+ cookieNamespace: any;
229
+ sessionNamespace: any;
230
+ };
231
+ capability: {
232
+ allowlistRequired: boolean;
233
+ inputOutputSchemaRequired: boolean;
234
+ timeoutMsDefault: number;
235
+ cancelSupported: boolean;
236
+ serverSecretClosure: boolean;
237
+ };
238
+ budgets: {
239
+ irrelevantBindingWork: number;
240
+ irrelevantRouteRegionRebuild: number;
241
+ wholeTreeRerender: number;
242
+ maxArtifactBytes: number;
243
+ maxHtmlBytes: number;
244
+ maxClientJsBytes: number;
245
+ maxPatchCountPerTransition: number;
246
+ };
247
+ health: {
248
+ livePath: any;
249
+ readyPath: any;
250
+ gracefulShutdown: {
251
+ stopAccepting: boolean;
252
+ drainInFlight: boolean;
253
+ timeoutMs: number;
254
+ };
255
+ };
256
+ sampling: {
257
+ diagnosticSampleRate: number;
258
+ rollbackOnErrorRate: number;
259
+ latencyBudgetMs: {
260
+ p95: number;
261
+ p99: number;
262
+ };
263
+ };
264
+ };
265
+ trace: {
266
+ schema: string;
267
+ status: string;
268
+ applicationId: any;
269
+ artifactDigest: any;
270
+ events: {
271
+ facet: string;
272
+ kind: string;
273
+ stableId: {
274
+ kind: string;
275
+ id: string;
276
+ };
277
+ generation: number;
278
+ redacted: boolean;
279
+ payload: any;
280
+ }[];
281
+ };
282
+ contractPath: string;
283
+ tracePath: string;
284
+ };
285
+ export declare function observabilityDigest(contract: any): any;
286
+ export declare function sha256Text(text: any): string;