@cat-factory/contracts 0.81.0 → 0.81.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.
@@ -8,6 +8,29 @@ import * as v from 'valibot';
8
8
  * lock-step.)
9
9
  */
10
10
  export declare const DEFAULT_FRONTEND_MOCK_MAPPINGS_PATH = "mocks/";
11
+ /**
12
+ * The default in-container port the built frontend is served on for a UI test / preview.
13
+ * Deliberately NOT 8080 (the harness's own job HTTP server) nor the WireMock port. Used via
14
+ * {@link resolveFrontendServePort} — the single source of truth for the served port, shared by
15
+ * the server's `resolveServePort` and the reverse-origin derivation (`frontendOriginsForService`)
16
+ * so the tester origin a backend must allow (CORS) can't drift from the port the app is actually
17
+ * served on.
18
+ */
19
+ export declare const DEFAULT_FRONTEND_SERVE_PORT = 4173;
20
+ /** The in-container port the harness's own job HTTP server binds — a frontend must never serve on it. */
21
+ export declare const FRONTEND_HARNESS_JOB_PORT = 8080;
22
+ /** The in-container port WireMock binds for a frontend UI test (backend-chosen, not user config). */
23
+ export declare const FRONTEND_WIREMOCK_PORT = 8089;
24
+ /**
25
+ * The port a `frontend` frame's app is ACTUALLY served on: the user's `servePort` unless it
26
+ * collides with a reserved in-container port ({@link FRONTEND_HARNESS_JOB_PORT} 8080, or
27
+ * {@link FRONTEND_WIREMOCK_PORT} 8089), in which case it would fail to bind (or steal WireMock's
28
+ * port), so we fall back to {@link DEFAULT_FRONTEND_SERVE_PORT}. The inspector steers users to
29
+ * 4173, but nothing stops them typing a reserved port, so guard here. Shared by the harness infra
30
+ * spec (`buildFrontendInfraSpec`) and the reverse-origin derivation (`frontendOriginsForService`)
31
+ * so the served port and the CORS origin a backend must allow can't drift.
32
+ */
33
+ export declare function resolveFrontendServePort(requested: number | undefined): number;
11
34
  /** The package manager the frontend build uses. Defaults to `pnpm`. */
12
35
  export declare const frontendPackageManagerSchema: v.PicklistSchema<["pnpm", "npm", "yarn"], undefined>;
13
36
  export type FrontendPackageManager = v.InferOutput<typeof frontendPackageManagerSchema>;
@@ -62,6 +85,16 @@ export declare const frontendBackendBindingSchema: v.ObjectSchema<{
62
85
  }, undefined>], undefined>;
63
86
  }, undefined>;
64
87
  export type FrontendBackendBinding = v.InferOutput<typeof frontendBackendBindingSchema>;
88
+ /**
89
+ * The non-empty `envVar` names that appear on MORE THAN ONE backend binding. Two bindings
90
+ * sharing an env var is a real misconfiguration — the injected env is a map, so one silently
91
+ * clobbers the other (`resolveFrontendBindings` keeps the last). Advisory only: this is NOT a
92
+ * `v.check` on {@link frontendConfigSchema}, because a binding row persists per-blur and allows
93
+ * an empty `envVar` (a freshly-added row), so a schema-level reject would 422 a mid-edit PATCH
94
+ * (e.g. duplicate a row, then rename it). The inspector + the run-start soft note surface it
95
+ * instead. Empty names are ignored (an unfinished row is inert). Sorted for stable output.
96
+ */
97
+ export declare function duplicateBindingEnvVars(config: Pick<FrontendConfig, 'backendBindings'>): string[];
65
98
  /**
66
99
  * Which branch the frontend is built from for a UI test / preview:
67
100
  * - `'default'` — the frontend repo's default branch (the baseline).
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B;;;;;;;GAOG;AACH,eAAO,MAAM,mCAAmC,WAAW,CAAA;AAE3D,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,sDAAsC,CAAA;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,oDAAoC,CAAA;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,mDAAmC,CAAA;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;0BAQtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;IACvC;;;;;OAKG;;;;;;;;aAGH,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;0BAM/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;IAC/B,yDAAyD;;IAEzD,kFAAkF;;IAElF,6EAA6E;;IAE7E,6EAA6E;;IAE7E,qDAAqD;;IAErD,+EAA+E;;IAE/E;;;OAGG;;IAEH,2EAA2E;;IAE3E,qFAAqF;;;;;;;IAErF;;;;;OAKG;;IAEH,0DAA0D;;IAE1D;;;;OAIG;;QAtEH;;;;;WAKG;;;;;;;;;aAmEH,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAe5B;;;;;;;GAOG;AACH,eAAO,MAAM,mCAAmC,WAAW,CAAA;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAA;AAE/C,yGAAyG;AACzG,eAAO,MAAM,yBAAyB,OAAO,CAAA;AAE7C,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAE1C;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM9E;AAED,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,sDAAsC,CAAA;AAC/E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,oDAAoC,CAAA;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,mDAAmC,CAAA;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;0BAQtC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAErF;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;IACvC;;;;;OAKG;;;;;;;;aAGH,CAAA;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,MAAM,EAAE,CAUjG;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;0BAM/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;IAC/B,yDAAyD;;IAEzD,kFAAkF;;IAElF,6EAA6E;;IAE7E,6EAA6E;;IAE7E,qDAAqD;;IAErD,+EAA+E;;IAE/E;;;OAGG;;IAEH,2EAA2E;;IAE3E,qFAAqF;;;;;;;IAErF;;;;;OAKG;;IAEH,0DAA0D;;IAE1D;;;;OAIG;;QA3FH;;;;;WAKG;;;;;;;;;aAwFH,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
package/dist/frontend.js CHANGED
@@ -20,6 +20,36 @@ import * as v from 'valibot';
20
20
  * lock-step.)
21
21
  */
22
22
  export const DEFAULT_FRONTEND_MOCK_MAPPINGS_PATH = 'mocks/';
23
+ /**
24
+ * The default in-container port the built frontend is served on for a UI test / preview.
25
+ * Deliberately NOT 8080 (the harness's own job HTTP server) nor the WireMock port. Used via
26
+ * {@link resolveFrontendServePort} — the single source of truth for the served port, shared by
27
+ * the server's `resolveServePort` and the reverse-origin derivation (`frontendOriginsForService`)
28
+ * so the tester origin a backend must allow (CORS) can't drift from the port the app is actually
29
+ * served on.
30
+ */
31
+ export const DEFAULT_FRONTEND_SERVE_PORT = 4173;
32
+ /** The in-container port the harness's own job HTTP server binds — a frontend must never serve on it. */
33
+ export const FRONTEND_HARNESS_JOB_PORT = 8080;
34
+ /** The in-container port WireMock binds for a frontend UI test (backend-chosen, not user config). */
35
+ export const FRONTEND_WIREMOCK_PORT = 8089;
36
+ /**
37
+ * The port a `frontend` frame's app is ACTUALLY served on: the user's `servePort` unless it
38
+ * collides with a reserved in-container port ({@link FRONTEND_HARNESS_JOB_PORT} 8080, or
39
+ * {@link FRONTEND_WIREMOCK_PORT} 8089), in which case it would fail to bind (or steal WireMock's
40
+ * port), so we fall back to {@link DEFAULT_FRONTEND_SERVE_PORT}. The inspector steers users to
41
+ * 4173, but nothing stops them typing a reserved port, so guard here. Shared by the harness infra
42
+ * spec (`buildFrontendInfraSpec`) and the reverse-origin derivation (`frontendOriginsForService`)
43
+ * so the served port and the CORS origin a backend must allow can't drift.
44
+ */
45
+ export function resolveFrontendServePort(requested) {
46
+ if (requested === undefined)
47
+ return DEFAULT_FRONTEND_SERVE_PORT;
48
+ if (requested === FRONTEND_HARNESS_JOB_PORT || requested === FRONTEND_WIREMOCK_PORT) {
49
+ return DEFAULT_FRONTEND_SERVE_PORT;
50
+ }
51
+ return requested;
52
+ }
23
53
  /** The package manager the frontend build uses. Defaults to `pnpm`. */
24
54
  export const frontendPackageManagerSchema = v.picklist(['pnpm', 'npm', 'yarn']);
25
55
  /**
@@ -67,6 +97,29 @@ export const frontendBackendBindingSchema = v.object({
67
97
  envVar: v.pipe(v.string(), v.trim(), v.maxLength(200)),
68
98
  source: frontendBackendSourceSchema,
69
99
  });
100
+ /**
101
+ * The non-empty `envVar` names that appear on MORE THAN ONE backend binding. Two bindings
102
+ * sharing an env var is a real misconfiguration — the injected env is a map, so one silently
103
+ * clobbers the other (`resolveFrontendBindings` keeps the last). Advisory only: this is NOT a
104
+ * `v.check` on {@link frontendConfigSchema}, because a binding row persists per-blur and allows
105
+ * an empty `envVar` (a freshly-added row), so a schema-level reject would 422 a mid-edit PATCH
106
+ * (e.g. duplicate a row, then rename it). The inspector + the run-start soft note surface it
107
+ * instead. Empty names are ignored (an unfinished row is inert). Sorted for stable output.
108
+ */
109
+ export function duplicateBindingEnvVars(config) {
110
+ const seen = new Set();
111
+ const duplicates = new Set();
112
+ for (const binding of config.backendBindings) {
113
+ const name = binding.envVar.trim();
114
+ if (!name)
115
+ continue;
116
+ if (seen.has(name))
117
+ duplicates.add(name);
118
+ else
119
+ seen.add(name);
120
+ }
121
+ return [...duplicates].sort();
122
+ }
70
123
  /**
71
124
  * Which branch the frontend is built from for a UI test / preview:
72
125
  * - `'default'` — the frontend repo's default branch (the baseline).
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.js","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend.js","sourceRoot":"","sources":["../src/frontend.ts"],"names":[],"mappings":"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"}
@@ -305,6 +305,9 @@ export declare const getLinearInstallUrlContract: {
305
305
  export declare const listTasksContract: {
306
306
  readonly method: "get";
307
307
  readonly pathResolver: () => string;
308
+ readonly requestQuerySchema: v.ObjectSchema<{
309
+ readonly blockId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
310
+ }, undefined>;
308
311
  readonly responsesByStatusCode: {
309
312
  readonly '4xx': v.ObjectSchema<{
310
313
  readonly error: v.ObjectSchema<{
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAuD5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMvC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMpC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMrC,CAAA;AAIF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI5B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3B,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5B,CAAA"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAuD5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMvC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMpC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMrC,CAAA;AAIF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW5B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM9B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3B,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5B,CAAA"}
@@ -88,6 +88,13 @@ export const getLinearInstallUrlContract = defineApiContract({
88
88
  export const listTasksContract = defineApiContract({
89
89
  method: 'get',
90
90
  pathResolver: () => '/tasks',
91
+ // `blockId` (a service frame or a task/module under one) scopes the listed issues
92
+ // to that service's linked repository for a repo-backed source (GitHub Issues) —
93
+ // exactly as `searchTasks` does — so the quick-pick list never leaks in issues from
94
+ // sibling repos. Repo-less sources are unaffected. Omitted → the whole workspace.
95
+ requestQuerySchema: v.object({
96
+ blockId: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1))),
97
+ }),
91
98
  responsesByStatusCode: { 200: taskListSchema, ...errorResponses },
92
99
  });
93
100
  export const importTaskContract = defineApiContract({
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/routes/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,8DAA8D;AAC9D,8EAA8E;AAE9E,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AAEhD,oEAAoE;AACpE,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;CACxC,CAAC,CAAA;AACF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;CAC3C,CAAC,CAAA;AACF,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;AAChD,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CACzC,CAAC,CAAA;AACF,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAA;AACF,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;CAC5B,CAAC,CAAA;AACF,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACjC,CAAC,CAAA;AACF,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;IACnC,qBAAqB,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,cAAc,EAAE;CACzE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC5D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,UAAU;IAC/D,iBAAiB,EAAE,0BAA0B;IAC7C,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC3D,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,2BAA2B;IAC/C,qBAAqB,EAAE,EAAE,GAAG,EAAE,yBAAyB,EAAE,GAAG,cAAc,EAAE;CAC7E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACzD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,UAAU;IAC/D,iBAAiB,EAAE,uBAAuB;IAC1C,qBAAqB,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE;CACxE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC5D,MAAM,EAAE,QAAQ;IAChB,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,aAAa;IAClE,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;IAC1D,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,cAAc;IACnE,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,cAAc,EAAE;CAC9E,CAAC,CAAA;AAEF,mFAAmF;AACnF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,4BAA4B;IAChD,qBAAqB,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,cAAc,EAAE;CACzE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC3D,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,kCAAkC;IACtD,qBAAqB,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,cAAc,EAAE;CAC9E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;IACjD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ;IAC5B,kFAAkF;IAClF,iFAAiF;IACjF,oFAAoF;IACpF,kFAAkF;IAClF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;KAClE,CAAC;IACF,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;IAClD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,SAAS;IAC9D,iBAAiB,EAAE,gBAAgB;IACnC,qBAAqB,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE;CACpE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;IACnD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,SAAS;IAC9D,iBAAiB,EAAE,iBAAiB;IACpC,qBAAqB,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,cAAc,EAAE;CAC/E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;IAChD,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa;IACjC,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE;CACpE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,qBAAqB;IACzC,iBAAiB,EAAE,yBAAyB;IAC5C,qBAAqB,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,GAAG,cAAc,EAAE;CACnF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;IACjD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,MAAM,cAAc;IACnE,iBAAiB,EAAE,eAAe;IAClC,qBAAqB,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,cAAc,EAAE;CACzE,CAAC,CAAA"}
@@ -27,4 +27,22 @@ export declare function pipelineHasVisualStep(pipeline: Pick<Pipeline, 'agentKin
27
27
  * frontend→service links (never a per-frame point read).
28
28
  */
29
29
  export declare function frameAllowsVisualPipeline(frame: Pick<Block, 'id' | 'type'> | undefined | null, blocks: readonly Pick<Block, 'level' | 'type' | 'frontendConfig'>[]): boolean;
30
+ /**
31
+ * The browser origins of every `frontend` frame that binds `serviceFrameId` as a backend
32
+ * service — the origins that service's ephemeral env must accept (CORS; also OAuth callback
33
+ * hosts). It is the REVERSE of `FrontendConfig.backendBindings` (frontend→service) and mirrors
34
+ * `frameAllowsVisualPipeline`'s single-pass scan (never a per-frame point read): a deployer
35
+ * exposes the result as `{{input.frontendOrigins}}` so an operator's `secretInjections`
36
+ * `valueTemplate` / helm `--set` can fold it into the backend's CORS env var.
37
+ *
38
+ * Only a binding with a NON-EMPTY `envVar` counts: an empty-`envVar` row is filtered out of the
39
+ * injected env (the frontend never receives that backend's URL, so its browser never calls it,
40
+ * so no cross-origin request to allow). Each contributing frontend emits its tester origin
41
+ * `http://localhost:<servePort>` — the port the app is ACTUALLY served on
42
+ * (`resolveFrontendServePort`, which sanitizes a reserved-port collision to the default), so the
43
+ * injected CORS origin can't drift from the served port. Deduped + sorted for a stable comma-join.
44
+ * (The browsable-preview origin is a local-mode differentiator added once the preview host port is
45
+ * pinned — see the frontend-preview initiative.)
46
+ */
47
+ export declare function frontendOriginsForService(serviceFrameId: string, blocks: readonly Pick<Block, 'level' | 'type' | 'frontendConfig'>[]): string[];
30
48
  //# sourceMappingURL=visual-pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"visual-pipeline.d.ts","sourceRoot":"","sources":["../src/visual-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAepD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,wBAAwB,CAAA;AAE9D,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,+CAA6D,CAAA;AAE3F,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,OAAO,CAIrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,EACpD,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAClE,OAAO,CAWT"}
1
+ {"version":3,"file":"visual-pipeline.d.ts","sourceRoot":"","sources":["../src/visual-pipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAepD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,wBAAwB,CAAA;AAE9D,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,+CAA6D,CAAA;AAE3F,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,OAAO,CAIrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI,EACpD,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAClE,OAAO,CAWT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAClE,MAAM,EAAE,CAcV"}
@@ -1,3 +1,4 @@
1
+ import { resolveFrontendServePort } from './frontend.js';
1
2
  // ---------------------------------------------------------------------------
2
3
  // Visual-pipeline gating (shared by the SPA surface + the backend run-start gate).
3
4
  //
@@ -48,4 +49,35 @@ export function frameAllowsVisualPipeline(frame, blocks) {
48
49
  b.type === 'frontend' &&
49
50
  (b.frontendConfig?.backendBindings ?? []).some((bind) => bind.source.kind === 'service' && bind.source.serviceBlockId === frame.id));
50
51
  }
52
+ /**
53
+ * The browser origins of every `frontend` frame that binds `serviceFrameId` as a backend
54
+ * service — the origins that service's ephemeral env must accept (CORS; also OAuth callback
55
+ * hosts). It is the REVERSE of `FrontendConfig.backendBindings` (frontend→service) and mirrors
56
+ * `frameAllowsVisualPipeline`'s single-pass scan (never a per-frame point read): a deployer
57
+ * exposes the result as `{{input.frontendOrigins}}` so an operator's `secretInjections`
58
+ * `valueTemplate` / helm `--set` can fold it into the backend's CORS env var.
59
+ *
60
+ * Only a binding with a NON-EMPTY `envVar` counts: an empty-`envVar` row is filtered out of the
61
+ * injected env (the frontend never receives that backend's URL, so its browser never calls it,
62
+ * so no cross-origin request to allow). Each contributing frontend emits its tester origin
63
+ * `http://localhost:<servePort>` — the port the app is ACTUALLY served on
64
+ * (`resolveFrontendServePort`, which sanitizes a reserved-port collision to the default), so the
65
+ * injected CORS origin can't drift from the served port. Deduped + sorted for a stable comma-join.
66
+ * (The browsable-preview origin is a local-mode differentiator added once the preview host port is
67
+ * pinned — see the frontend-preview initiative.)
68
+ */
69
+ export function frontendOriginsForService(serviceFrameId, blocks) {
70
+ const origins = new Set();
71
+ for (const b of blocks) {
72
+ if (b.level !== 'frame' || b.type !== 'frontend' || !b.frontendConfig)
73
+ continue;
74
+ const bindsService = b.frontendConfig.backendBindings.some((bind) => bind.source.kind === 'service' &&
75
+ bind.source.serviceBlockId === serviceFrameId &&
76
+ bind.envVar.trim().length > 0);
77
+ if (!bindsService)
78
+ continue;
79
+ origins.add(`http://localhost:${resolveFrontendServePort(b.frontendConfig.servePort)}`);
80
+ }
81
+ return [...origins].sort();
82
+ }
51
83
  //# sourceMappingURL=visual-pipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visual-pipeline.js","sourceRoot":"","sources":["../src/visual-pipeline.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,mFAAmF;AACnF,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,oFAAoF;AACpF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAE9D,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,CAAU,CAAA;AAE3F,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,QAAsC;IAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,yBAAyB,CAC9E,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAoD,EACpD,MAAmE;IAEnE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAA;IAC1C,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,IAAI,KAAK,UAAU;QACrB,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,CAC5C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,EAAE,CACpF,CACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"visual-pipeline.js","sourceRoot":"","sources":["../src/visual-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAGxD,8EAA8E;AAC9E,mFAAmF;AACnF,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,oFAAoF;AACpF,iFAAiF;AACjF,iFAAiF;AACjF,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAA;AAE9D,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,oBAAoB,EAAE,yBAAyB,CAAU,CAAA;AAE3F,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,QAAsC;IAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,yBAAyB,CAC9E,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAoD,EACpD,MAAmE;IAEnE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IACxB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAA;IAC1C,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,IAAI,KAAK,UAAU;QACrB,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,CAC5C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,EAAE,CACpF,CACJ,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,yBAAyB,CACvC,cAAsB,EACtB,MAAmE;IAEnE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,cAAc;YAAE,SAAQ;QAC/E,MAAM,YAAY,GAAG,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CACxD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;YAC9B,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,cAAc;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAChC,CAAA;QACD,IAAI,CAAC,YAAY;YAAE,SAAQ;QAC3B,OAAO,CAAC,GAAG,CAAC,oBAAoB,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.81.0",
3
+ "version": "0.81.2",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",