@cat-factory/contracts 0.43.3 → 0.45.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,gDAAgD;AAChD,eAAO,MAAM,6BAA6B,6DAA6C,CAAA;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB;IACpC,iFAAiF;;IAEjF,sCAAsC;;IAEtC,kDAAkD;;IAElD,kCAAkC;;IAElC,gEAAgE;;IAEhE,oEAAoE;;IAEpE,+CAA+C;;IAE/C,oCAAoC;;;;;IAEpC;;;;;;;OAOG;;aAEH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;QAnCnC,iFAAiF;;QAEjF,sCAAsC;;QAEtC,kDAAkD;;QAElD,kCAAkC;;QAElC,gEAAgE;;QAEhE,oEAAoE;;QAEpE,+CAA+C;;QAE/C,oCAAoC;;;;;QAEpC;;;;;;;WAOG;;;IAiBH,yEAAyE;;IAEzE;;;;;;;OAOG;;IAEH;;;;;;;;OAQG;;IAEH;;;;;;;;OAQG;;aAEH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B;;IAErC,oEAAoE;;aAEpE,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA"}
1
+ {"version":3,"file":"provider-config.d.ts","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,gDAAgD;AAChD,eAAO,MAAM,6BAA6B,6DAA6C,CAAA;AACvF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB;IACpC,iFAAiF;;IAEjF,sCAAsC;;IAEtC,kDAAkD;;IAElD,kCAAkC;;IAElC,gEAAgE;;IAEhE,oEAAoE;;IAEpE,+CAA+C;;IAE/C,oCAAoC;;;;;IAEpC;;;;;;;OAOG;;aAEH,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;QAnCnC,iFAAiF;;QAEjF,sCAAsC;;QAEtC,kDAAkD;;QAElD,kCAAkC;;QAElC,gEAAgE;;QAEhE,oEAAoE;;QAEpE,+CAA+C;;QAE/C,oCAAoC;;;;;QAEpC;;;;;;;WAOG;;;IAiBH,yEAAyE;;IAEzE;;;;;;;OAOG;;IAEH;;;OAGG;;IAEH;;;OAGG;;IAEH,8FAA8F;;QA7D9F,iFAAiF;;QAEjF,sCAAsC;;QAEtC,kDAAkD;;QAElD,kCAAkC;;QAElC,gEAAgE;;QAEhE,oEAAoE;;QAEpE,+CAA+C;;QAE/C,oCAAoC;;;;;QAEpC;;;;;;;WAOG;;;IAwCH;;;;;;;;OAQG;;IAEH;;;;;;;;OAQG;;aAEH,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B;;IAErC,oEAAoE;;aAEpE,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,mDAAmC,CAAA;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,0DAA0D;AAC1D,eAAO,MAAM,yBAAyB;;;IAGpC,sFAAsF;;aAEtF,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,uFAAuF;AACvF,eAAO,MAAM,0BAA0B;;;;;QANrC,sFAAsF;;;aAStF,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;QAlBpC,sFAAsF;;;aAyBtF,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
@@ -63,6 +63,18 @@ export const providerDescriptorSchema = v.object({
63
63
  * and the register-time validation all read one source of truth.
64
64
  */
65
65
  missingRequired: v.array(v.string()),
66
+ /**
67
+ * Whether the provider implements a mechanical repo-config validation the UI can
68
+ * call ("validate repo" button) and the engine runs as a provision pre-flight.
69
+ */
70
+ supportsRepoValidation: v.optional(v.boolean()),
71
+ /**
72
+ * Whether the provider can mechanically bootstrap its config file into a repo
73
+ * ("set up config" flow). When true, `bootstrapInputs` carries the form fields.
74
+ */
75
+ supportsRepoBootstrap: v.optional(v.boolean()),
76
+ /** The variables the bootstrap form should collect (empty unless `supportsRepoBootstrap`). */
77
+ bootstrapInputs: v.optional(v.array(providerConfigFieldSchema)),
66
78
  /**
67
79
  * For a NATIVE provider: the base manifest the SPA overlays the flat `configFields`
68
80
  * values onto before POSTing (so the connect form is flat fields but storage stays a
@@ -90,4 +102,32 @@ export const connectionTestResultSchema = v.object({
90
102
  /** Human-readable detail — a success hint or the failure reason. */
91
103
  message: v.optional(v.string()),
92
104
  });
105
+ /** Severity of a single repo-config validation finding. */
106
+ export const repoValidationSeveritySchema = v.picklist(['error', 'warning']);
107
+ /** One finding from a provider repo-config validation. */
108
+ export const repoValidationIssueSchema = v.object({
109
+ severity: repoValidationSeveritySchema,
110
+ message: v.string(),
111
+ /** The repo-relative path the issue concerns, when applicable (e.g. `.kargo.yml`). */
112
+ path: v.optional(v.string()),
113
+ });
114
+ /** The outcome of a provider's repo-config validation (never throws to the client). */
115
+ export const repoValidationResultSchema = v.object({
116
+ ok: v.boolean(),
117
+ issues: v.array(repoValidationIssueSchema),
118
+ });
119
+ /**
120
+ * The outcome of a "bootstrap provider config in repo" operation: whether the repo
121
+ * now satisfies the provider (`ok`), whether anything was written (`committed`), where
122
+ * (`branch`/`prUrl`), whether the agent fallback ran (`usedAgent`), and any residual
123
+ * issues. Never throws to the client.
124
+ */
125
+ export const bootstrapRepoResultSchema = v.object({
126
+ ok: v.boolean(),
127
+ committed: v.boolean(),
128
+ branch: v.optional(v.string()),
129
+ prUrl: v.optional(v.string()),
130
+ usedAgent: v.optional(v.boolean()),
131
+ issues: v.array(repoValidationIssueSchema),
132
+ });
93
133
  //# sourceMappingURL=provider-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,qEAAqE;AACrE,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;AAClF,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAE9E,gDAAgD;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAGvF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,iFAAiF;IACjF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,sCAAsC;IACtC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,kDAAkD;IAClD,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjC,+CAA+C;IAC/C,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/C,oCAAoC;IACpC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAChF;;;;;;;OAOG;IACH,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAA;AAGF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;IAChD,yEAAyE;IACzE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB;;;;;;;OAOG;IACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC;;;;;;;;OAQG;IACH,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D;;;;;;;;OAQG;IACH,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CAC7D,CAAC,CAAA;AAGF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;IACf,oEAAoE;IACpE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAA"}
1
+ {"version":3,"file":"provider-config.js","sourceRoot":"","sources":["../src/provider-config.ts"],"names":[],"mappings":"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"}
@@ -709,10 +709,34 @@ export declare const getAccountSettingsContract: {
709
709
  }, undefined>;
710
710
  }, undefined>;
711
711
  readonly 200: v.ObjectSchema<{
712
- readonly config: v.ObjectSchema<{}, undefined>;
712
+ readonly config: v.ObjectSchema<{
713
+ readonly contentStorage: v.OptionalSchema<v.ObjectSchema<{
714
+ readonly backend: v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>;
715
+ readonly fs: v.OptionalSchema<v.ObjectSchema<{
716
+ readonly basePath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 1024, undefined>]>, undefined>;
717
+ }, undefined>, undefined>;
718
+ readonly s3: v.OptionalSchema<v.ObjectSchema<{
719
+ readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
720
+ readonly bucket: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>;
721
+ readonly prefix: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
722
+ readonly endpoint: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
723
+ readonly forcePathStyle: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
724
+ }, undefined>, undefined>;
725
+ }, undefined>, undefined>;
726
+ }, undefined>;
713
727
  readonly summary: v.ObjectSchema<{
714
728
  readonly slackOAuthConfigured: v.BooleanSchema<undefined>;
715
729
  readonly webSearch: v.NullableSchema<v.PicklistSchema<["brave", "searxng"], undefined>, undefined>;
730
+ readonly contentStorage: v.ObjectSchema<{
731
+ readonly backend: v.NullableSchema<v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>, undefined>;
732
+ readonly bucket: v.NullableSchema<v.StringSchema<undefined>, undefined>;
733
+ readonly basePath: v.NullableSchema<v.StringSchema<undefined>, undefined>;
734
+ readonly s3CredentialsConfigured: v.BooleanSchema<undefined>;
735
+ }, undefined>;
736
+ }, undefined>;
737
+ readonly contentStorageCapability: v.ObjectSchema<{
738
+ readonly supportedBackends: v.ArraySchema<v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>, undefined>;
739
+ readonly defaultBackend: v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>;
716
740
  }, undefined>;
717
741
  }, undefined>;
718
742
  };
@@ -726,7 +750,21 @@ export declare const updateAccountSettingsContract: {
726
750
  accountId: string;
727
751
  }) => string;
728
752
  readonly requestBodySchema: v.ObjectSchema<{
729
- readonly config: v.OptionalSchema<v.ObjectSchema<{}, undefined>, undefined>;
753
+ readonly config: v.OptionalSchema<v.ObjectSchema<{
754
+ readonly contentStorage: v.OptionalSchema<v.ObjectSchema<{
755
+ readonly backend: v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>;
756
+ readonly fs: v.OptionalSchema<v.ObjectSchema<{
757
+ readonly basePath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 1024, undefined>]>, undefined>;
758
+ }, undefined>, undefined>;
759
+ readonly s3: v.OptionalSchema<v.ObjectSchema<{
760
+ readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
761
+ readonly bucket: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>;
762
+ readonly prefix: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
763
+ readonly endpoint: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
764
+ readonly forcePathStyle: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
765
+ }, undefined>, undefined>;
766
+ }, undefined>, undefined>;
767
+ }, undefined>, undefined>;
730
768
  readonly secrets: v.OptionalSchema<v.ObjectSchema<{
731
769
  readonly slackOAuth: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
732
770
  readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
@@ -738,6 +776,10 @@ export declare const updateAccountSettingsContract: {
738
776
  readonly searxngUrl: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>]>, undefined>;
739
777
  readonly searxngApiKey: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>;
740
778
  }, undefined>, undefined>, undefined>;
779
+ readonly s3: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
780
+ readonly accessKeyId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>;
781
+ readonly secretAccessKey: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>;
782
+ }, undefined>, undefined>, undefined>;
741
783
  }, undefined>, undefined>;
742
784
  }, undefined>;
743
785
  readonly responsesByStatusCode: {
@@ -764,10 +806,34 @@ export declare const updateAccountSettingsContract: {
764
806
  }, undefined>;
765
807
  }, undefined>;
766
808
  readonly 200: v.ObjectSchema<{
767
- readonly config: v.ObjectSchema<{}, undefined>;
809
+ readonly config: v.ObjectSchema<{
810
+ readonly contentStorage: v.OptionalSchema<v.ObjectSchema<{
811
+ readonly backend: v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>;
812
+ readonly fs: v.OptionalSchema<v.ObjectSchema<{
813
+ readonly basePath: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 1024, undefined>]>, undefined>;
814
+ }, undefined>, undefined>;
815
+ readonly s3: v.OptionalSchema<v.ObjectSchema<{
816
+ readonly region: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
817
+ readonly bucket: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 255, undefined>]>;
818
+ readonly prefix: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
819
+ readonly endpoint: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.UrlAction<string, undefined>, v.MaxLengthAction<string, 255, undefined>]>, undefined>;
820
+ readonly forcePathStyle: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
821
+ }, undefined>, undefined>;
822
+ }, undefined>, undefined>;
823
+ }, undefined>;
768
824
  readonly summary: v.ObjectSchema<{
769
825
  readonly slackOAuthConfigured: v.BooleanSchema<undefined>;
770
826
  readonly webSearch: v.NullableSchema<v.PicklistSchema<["brave", "searxng"], undefined>, undefined>;
827
+ readonly contentStorage: v.ObjectSchema<{
828
+ readonly backend: v.NullableSchema<v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>, undefined>;
829
+ readonly bucket: v.NullableSchema<v.StringSchema<undefined>, undefined>;
830
+ readonly basePath: v.NullableSchema<v.StringSchema<undefined>, undefined>;
831
+ readonly s3CredentialsConfigured: v.BooleanSchema<undefined>;
832
+ }, undefined>;
833
+ }, undefined>;
834
+ readonly contentStorageCapability: v.ObjectSchema<{
835
+ readonly supportedBackends: v.ArraySchema<v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>, undefined>;
836
+ readonly defaultBackend: v.PicklistSchema<["off", "fs", "s3", "r2", "db"], undefined>;
771
837
  }, undefined>;
772
838
  }, undefined>;
773
839
  };
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/routes/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyC5B,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMhC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjC,CAAA;AAIF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5B,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMxC,CAAA"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/routes/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyC5B,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI/B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMhC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMjC,CAAA;AAIF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQnC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM/B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM5B,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMxC,CAAA"}
@@ -6,6 +6,13 @@ import * as v from 'valibot';
6
6
  * shape: the server's `AppConfig.localMode` derives its type from it (see
7
7
  * `@cat-factory/server` config), and the SPA reads the inferred type directly.
8
8
  */
9
+ /**
10
+ * The source-control providers a PAT login can target. Mirrors kernel's `VcsProvider`
11
+ * (contracts sits below kernel, so it can't import it) — keep the two member lists in
12
+ * step. Drives the local-mode login UI's provider picker + the `/auth/pat` body.
13
+ */
14
+ export declare const vcsProviderSchema: v.PicklistSchema<["github", "gitlab"], undefined>;
15
+ export type VcsProviderWire = v.InferOutput<typeof vcsProviderSchema>;
9
16
  export declare const localModeConfigSchema: v.ObjectSchema<{
10
17
  /** True on the local-mode facade (a single developer running the whole product locally). */
11
18
  readonly enabled: v.BooleanSchema<undefined>;
@@ -14,6 +21,21 @@ export declare const localModeConfigSchema: v.ObjectSchema<{
14
21
  * pre-selected so the developer can create one in a click. Absent once a PAT is set.
15
22
  */
16
23
  readonly githubPatSetupUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
24
+ /**
25
+ * Source-control PAT login methods the local facade can serve, so the login screen
26
+ * renders the right controls without probing. Absent on non-local facades.
27
+ * - `configured` — providers with a PAT set server-side (env): one-click "Continue as …".
28
+ * - `available` — providers the user may paste a PAT for inline (a resolver is wired).
29
+ * - `setupUrls` — per-provider "create a PAT" link with the right scopes pre-selected,
30
+ * so the paste-a-PAT form can deep-link straight to the token page. The server owns
31
+ * the scopes (they differ per provider), so the SPA renders the link rather than
32
+ * hard-coding URLs. Keyed by provider; missing entry ⇒ no deep link for it.
33
+ */
34
+ readonly patLogin: v.OptionalSchema<v.ObjectSchema<{
35
+ readonly configured: v.ArraySchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
36
+ readonly available: v.ArraySchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
37
+ readonly setupUrls: v.OptionalSchema<v.RecordSchema<v.PicklistSchema<["github", "gitlab"], undefined>, v.StringSchema<undefined>, undefined>, undefined>;
38
+ }, undefined>, undefined>;
17
39
  }, undefined>;
18
40
  export type LocalModeConfig = v.InferOutput<typeof localModeConfigSchema>;
19
41
  export declare const authConfigContract: {
@@ -57,6 +79,21 @@ export declare const authConfigContract: {
57
79
  * pre-selected so the developer can create one in a click. Absent once a PAT is set.
58
80
  */
59
81
  readonly githubPatSetupUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
82
+ /**
83
+ * Source-control PAT login methods the local facade can serve, so the login screen
84
+ * renders the right controls without probing. Absent on non-local facades.
85
+ * - `configured` — providers with a PAT set server-side (env): one-click "Continue as …".
86
+ * - `available` — providers the user may paste a PAT for inline (a resolver is wired).
87
+ * - `setupUrls` — per-provider "create a PAT" link with the right scopes pre-selected,
88
+ * so the paste-a-PAT form can deep-link straight to the token page. The server owns
89
+ * the scopes (they differ per provider), so the SPA renders the link rather than
90
+ * hard-coding URLs. Keyed by provider; missing entry ⇒ no deep link for it.
91
+ */
92
+ readonly patLogin: v.OptionalSchema<v.ObjectSchema<{
93
+ readonly configured: v.ArraySchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
94
+ readonly available: v.ArraySchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
95
+ readonly setupUrls: v.OptionalSchema<v.RecordSchema<v.PicklistSchema<["github", "gitlab"], undefined>, v.StringSchema<undefined>, undefined>, undefined>;
96
+ }, undefined>, undefined>;
60
97
  }, undefined>, undefined>;
61
98
  }, undefined>;
62
99
  };
@@ -263,6 +300,48 @@ export declare const passwordLoginContract: {
263
300
  }, undefined>;
264
301
  };
265
302
  };
303
+ export declare const patLoginContract: {
304
+ readonly method: "post";
305
+ readonly pathResolver: () => string;
306
+ readonly requestBodySchema: v.ObjectSchema<{
307
+ readonly provider: v.PicklistSchema<["github", "gitlab"], undefined>;
308
+ readonly token: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 4000, undefined>]>, undefined>;
309
+ }, undefined>;
310
+ readonly responsesByStatusCode: {
311
+ readonly '4xx': v.ObjectSchema<{
312
+ readonly error: v.ObjectSchema<{
313
+ readonly code: v.StringSchema<undefined>;
314
+ readonly message: v.StringSchema<undefined>;
315
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
316
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
317
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
318
+ readonly message: v.StringSchema<undefined>;
319
+ }, undefined>, undefined>, undefined>;
320
+ }, undefined>;
321
+ }, undefined>;
322
+ readonly '5xx': v.ObjectSchema<{
323
+ readonly error: v.ObjectSchema<{
324
+ readonly code: v.StringSchema<undefined>;
325
+ readonly message: v.StringSchema<undefined>;
326
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
327
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
328
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
329
+ readonly message: v.StringSchema<undefined>;
330
+ }, undefined>, undefined>, undefined>;
331
+ }, undefined>;
332
+ }, undefined>;
333
+ readonly 200: v.ObjectSchema<{
334
+ readonly token: v.StringSchema<undefined>;
335
+ readonly user: v.ObjectSchema<{
336
+ readonly id: v.StringSchema<undefined>;
337
+ readonly login: v.StringSchema<undefined>;
338
+ readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
339
+ readonly avatarUrl: v.NullableSchema<v.StringSchema<undefined>, undefined>;
340
+ readonly email: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
341
+ }, undefined>;
342
+ }, undefined>;
343
+ };
344
+ };
266
345
  export declare const forgotPasswordContract: {
267
346
  readonly method: "post";
268
347
  readonly pathResolver: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA2B5B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;IAChC,4FAA4F;;IAE5F;;;OAGG;;aAEH,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAmCzE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA3C7B,4FAA4F;;gBAE5F;;;mBAGG;;;;;CA0CH,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzB,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAMF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAIF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzB,CAAA"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA2B5B;;;;;GAKG;AACH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,mDAAmC,CAAA;AACjE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAErE,eAAO,MAAM,qBAAqB;IAChC,4FAA4F;;IAE5F;;;OAGG;;IAEH;;;;;;;;;OASG;;;;;;aAQH,CAAA;AACF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAmCzE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA5D7B,4FAA4F;;gBAE5F;;;mBAGG;;gBAEH;;;;;;;;;mBASG;;;;;;;;;CAgDH,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIjC,CAAA;AAIF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzB,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAQF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAQ3B,CAAA;AAMF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMnC,CAAA;AAIF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzB,CAAA"}
@@ -24,6 +24,12 @@ const sessionUserViewSchema = v.object({
24
24
  * shape: the server's `AppConfig.localMode` derives its type from it (see
25
25
  * `@cat-factory/server` config), and the SPA reads the inferred type directly.
26
26
  */
27
+ /**
28
+ * The source-control providers a PAT login can target. Mirrors kernel's `VcsProvider`
29
+ * (contracts sits below kernel, so it can't import it) — keep the two member lists in
30
+ * step. Drives the local-mode login UI's provider picker + the `/auth/pat` body.
31
+ */
32
+ export const vcsProviderSchema = v.picklist(['github', 'gitlab']);
27
33
  export const localModeConfigSchema = v.object({
28
34
  /** True on the local-mode facade (a single developer running the whole product locally). */
29
35
  enabled: v.boolean(),
@@ -32,6 +38,21 @@ export const localModeConfigSchema = v.object({
32
38
  * pre-selected so the developer can create one in a click. Absent once a PAT is set.
33
39
  */
34
40
  githubPatSetupUrl: v.optional(v.string()),
41
+ /**
42
+ * Source-control PAT login methods the local facade can serve, so the login screen
43
+ * renders the right controls without probing. Absent on non-local facades.
44
+ * - `configured` — providers with a PAT set server-side (env): one-click "Continue as …".
45
+ * - `available` — providers the user may paste a PAT for inline (a resolver is wired).
46
+ * - `setupUrls` — per-provider "create a PAT" link with the right scopes pre-selected,
47
+ * so the paste-a-PAT form can deep-link straight to the token page. The server owns
48
+ * the scopes (they differ per provider), so the SPA renders the link rather than
49
+ * hard-coding URLs. Keyed by provider; missing entry ⇒ no deep link for it.
50
+ */
51
+ patLogin: v.optional(v.object({
52
+ configured: v.array(vcsProviderSchema),
53
+ available: v.array(vcsProviderSchema),
54
+ setupUrls: v.optional(v.record(vcsProviderSchema, v.string())),
55
+ })),
35
56
  });
36
57
  const authConfigViewSchema = v.object({
37
58
  enabled: v.boolean(),
@@ -100,6 +121,20 @@ export const passwordLoginContract = defineApiContract({
100
121
  requestBodySchema: passwordLoginSchema,
101
122
  responsesByStatusCode: { 200: loginResultSchema, ...errorResponses },
102
123
  });
124
+ // ---- Source-control PAT login (local mode) --------------------------------
125
+ // Log in as the account a source-control PAT belongs to. `token` omitted ⇒ use the
126
+ // server-configured PAT for that provider (the one-click path); `token` present ⇒ the
127
+ // user pasted one inline. Returns the same `{ token, user }` as password login. Served
128
+ // only where an identity resolver is wired (local mode); 503 otherwise.
129
+ export const patLoginContract = defineApiContract({
130
+ method: 'post',
131
+ pathResolver: () => '/pat',
132
+ requestBodySchema: v.object({
133
+ provider: vcsProviderSchema,
134
+ token: v.optional(v.pipe(v.string(), v.trim(), v.minLength(1), v.maxLength(4000))),
135
+ }),
136
+ responsesByStatusCode: { 200: loginResultSchema, ...errorResponses },
137
+ });
103
138
  // ---- Forgot / reset password ----------------------------------------------
104
139
  // Request a reset link. ALWAYS succeeds (204) regardless of whether the email is
105
140
  // registered, so the response can't be used to enumerate accounts.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/routes/auth.ts"],"names":[],"mappings":"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"}
@@ -297,6 +297,22 @@ export declare const describeEnvironmentProviderContract: {
297
297
  }, undefined>, undefined>;
298
298
  readonly supportsTest: v.BooleanSchema<undefined>;
299
299
  readonly missingRequired: v.ArraySchema<v.StringSchema<undefined>, undefined>;
300
+ readonly supportsRepoValidation: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
301
+ readonly supportsRepoBootstrap: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
302
+ readonly bootstrapInputs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
303
+ readonly key: v.StringSchema<undefined>;
304
+ readonly label: v.StringSchema<undefined>;
305
+ readonly help: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
306
+ readonly placeholder: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
307
+ readonly secret: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
308
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
309
+ readonly type: v.OptionalSchema<v.PicklistSchema<["text", "password", "select"], undefined>, undefined>;
310
+ readonly options: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
311
+ readonly value: v.StringSchema<undefined>;
312
+ readonly label: v.StringSchema<undefined>;
313
+ }, undefined>, undefined>, undefined>;
314
+ readonly default: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
315
+ }, undefined>, undefined>, undefined>;
300
316
  readonly manifestTemplate: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
301
317
  readonly savedManifest: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
302
318
  }, undefined>;
@@ -447,6 +463,97 @@ export declare const testEnvironmentConnectionContract: {
447
463
  }, undefined>;
448
464
  };
449
465
  };
466
+ export declare const validateEnvironmentRepoContract: {
467
+ readonly method: "post";
468
+ readonly pathResolver: () => string;
469
+ readonly requestBodySchema: v.ObjectSchema<{
470
+ readonly owner: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
471
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
472
+ readonly gitRef: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
473
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
474
+ }, undefined>;
475
+ readonly responsesByStatusCode: {
476
+ readonly '4xx': v.ObjectSchema<{
477
+ readonly error: v.ObjectSchema<{
478
+ readonly code: v.StringSchema<undefined>;
479
+ readonly message: v.StringSchema<undefined>;
480
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
481
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
482
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
483
+ readonly message: v.StringSchema<undefined>;
484
+ }, undefined>, undefined>, undefined>;
485
+ }, undefined>;
486
+ }, undefined>;
487
+ readonly '5xx': v.ObjectSchema<{
488
+ readonly error: v.ObjectSchema<{
489
+ readonly code: v.StringSchema<undefined>;
490
+ readonly message: v.StringSchema<undefined>;
491
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
492
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
493
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
494
+ readonly message: v.StringSchema<undefined>;
495
+ }, undefined>, undefined>, undefined>;
496
+ }, undefined>;
497
+ }, undefined>;
498
+ readonly 200: v.ObjectSchema<{
499
+ readonly ok: v.BooleanSchema<undefined>;
500
+ readonly issues: v.ArraySchema<v.ObjectSchema<{
501
+ readonly severity: v.PicklistSchema<["error", "warning"], undefined>;
502
+ readonly message: v.StringSchema<undefined>;
503
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
504
+ }, undefined>, undefined>;
505
+ }, undefined>;
506
+ };
507
+ };
508
+ export declare const bootstrapEnvironmentRepoContract: {
509
+ readonly method: "post";
510
+ readonly pathResolver: () => string;
511
+ readonly requestBodySchema: v.ObjectSchema<{
512
+ readonly owner: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
513
+ readonly repo: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
514
+ readonly gitRef: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>, undefined>;
515
+ readonly provider: v.OptionalSchema<v.PicklistSchema<["github", "gitlab"], undefined>, undefined>;
516
+ readonly inputs: v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>;
517
+ readonly openPr: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
518
+ readonly allowAgentFallback: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
519
+ }, undefined>;
520
+ readonly responsesByStatusCode: {
521
+ readonly '4xx': v.ObjectSchema<{
522
+ readonly error: v.ObjectSchema<{
523
+ readonly code: v.StringSchema<undefined>;
524
+ readonly message: v.StringSchema<undefined>;
525
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
526
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
527
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
528
+ readonly message: v.StringSchema<undefined>;
529
+ }, undefined>, undefined>, undefined>;
530
+ }, undefined>;
531
+ }, undefined>;
532
+ readonly '5xx': v.ObjectSchema<{
533
+ readonly error: v.ObjectSchema<{
534
+ readonly code: v.StringSchema<undefined>;
535
+ readonly message: v.StringSchema<undefined>;
536
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
537
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
538
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
539
+ readonly message: v.StringSchema<undefined>;
540
+ }, undefined>, undefined>, undefined>;
541
+ }, undefined>;
542
+ }, undefined>;
543
+ readonly 200: v.ObjectSchema<{
544
+ readonly ok: v.BooleanSchema<undefined>;
545
+ readonly committed: v.BooleanSchema<undefined>;
546
+ readonly branch: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
547
+ readonly prUrl: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
548
+ readonly usedAgent: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
549
+ readonly issues: v.ArraySchema<v.ObjectSchema<{
550
+ readonly severity: v.PicklistSchema<["error", "warning"], undefined>;
551
+ readonly message: v.StringSchema<undefined>;
552
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
553
+ }, undefined>, undefined>;
554
+ }, undefined>;
555
+ };
556
+ };
450
557
  export declare const listEnvironmentsContract: {
451
558
  readonly method: "get";
452
559
  readonly pathResolver: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/routes/environments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AA4B5B,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK9C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAInC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMtC,CAAA"}
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../src/routes/environments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmC5B,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3C,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK9C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIhD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI9C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAIF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1C,CAAA;AAIF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAInC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMtC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
2
2
  import * as v from 'valibot';
3
- import { environmentConnectionSchema, environmentHandleSchema, provisionEnvironmentSchema, registerEnvironmentProviderSchema, testEnvironmentConnectionSchema, updateEnvironmentSecretsSchema, } from '../environments.js';
4
- import { connectionTestResultSchema, providerDescriptorSchema } from '../provider-config.js';
3
+ import { bootstrapEnvironmentRepoSchema, environmentConnectionSchema, environmentHandleSchema, provisionEnvironmentSchema, registerEnvironmentProviderSchema, testEnvironmentConnectionSchema, updateEnvironmentSecretsSchema, validateEnvironmentRepoSchema, } from '../environments.js';
4
+ import { bootstrapRepoResultSchema, connectionTestResultSchema, providerDescriptorSchema, repoValidationResultSchema, } from '../provider-config.js';
5
5
  import { errorResponses, singleStringParam } from './_shared.js';
6
6
  // ---------------------------------------------------------------------------
7
7
  // Ephemeral-environment route contracts: provider registration (manifest +
@@ -49,6 +49,22 @@ export const testEnvironmentConnectionContract = defineApiContract({
49
49
  requestBodySchema: testEnvironmentConnectionSchema,
50
50
  responsesByStatusCode: { 200: connectionTestResultSchema, ...errorResponses },
51
51
  });
52
+ // Validate that a target repo satisfies the provider's config expectations (e.g. a
53
+ // Kargo `.kargo.yml` is present + well-formed). Nothing persisted.
54
+ export const validateEnvironmentRepoContract = defineApiContract({
55
+ method: 'post',
56
+ pathResolver: () => '/environments/connection/validate-repo',
57
+ requestBodySchema: validateEnvironmentRepoSchema,
58
+ responsesByStatusCode: { 200: repoValidationResultSchema, ...errorResponses },
59
+ });
60
+ // Mechanically bootstrap (and optionally agent-repair) the provider's config file in
61
+ // a target repo from UI-collected variables.
62
+ export const bootstrapEnvironmentRepoContract = defineApiContract({
63
+ method: 'post',
64
+ pathResolver: () => '/environments/connection/bootstrap-repo',
65
+ requestBodySchema: bootstrapEnvironmentRepoSchema,
66
+ responsesByStatusCode: { 200: bootstrapRepoResultSchema, ...errorResponses },
67
+ });
52
68
  export const listEnvironmentsContract = defineApiContract({
53
69
  method: 'get',
54
70
  pathResolver: () => '/environments',
@@ -1 +1 @@
1
- {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/routes/environments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,iCAAiC,EACjC,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,2EAA2E;AAC3E,iFAAiF;AACjF,2EAA2E;AAC3E,8EAA8E;AAC9E,0CAA0C;AAC1C,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAAA;AAE9D,oEAAoE;AACpE,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACpD,CAAC,CAAA;AACF,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,0BAA0B;IAC9C,qBAAqB,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,GAAG,cAAc,EAAE;CACnF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,iBAAiB,CAAC;IACnE,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,0BAA0B;IAC9C,iBAAiB,EAAE,iCAAiC;IACpD,qBAAqB,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,cAAc,EAAE;CAC/E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,kCAAkC;IACtD,iBAAiB,EAAE,8BAA8B;IACjD,qBAAqB,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,cAAc,EAAE;CAC/E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG,iBAAiB,CAAC;IACrE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,GAAG,EAAE,CAAC,0BAA0B;IAC9C,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,iBAAiB,CAAC;IACnE,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB;IAC5C,qBAAqB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,cAAc,EAAE;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,iBAAiB,CAAC;IACjE,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,+BAA+B;IACnD,iBAAiB,EAAE,+BAA+B;IAClD,qBAAqB,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,cAAc,EAAE;CAC9E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACxD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,eAAe;IACnC,qBAAqB,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,cAAc,EAAE;CAC/E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;IACtD,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,iBAAiB,aAAa,EAAE;IACrE,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC5D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,iBAAiB,aAAa,SAAS;IAC5E,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC5D,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,yBAAyB;IAC7C,iBAAiB,EAAE,0BAA0B;IAC7C,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,mBAAmB;IAC5C,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,iBAAiB,aAAa,WAAW;IAC9E,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA"}
1
+ {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../src/routes/environments.ts"],"names":[],"mappings":"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"}
@@ -293,6 +293,22 @@ export declare const describeRunnerPoolProviderContract: {
293
293
  }, undefined>, undefined>;
294
294
  readonly supportsTest: v.BooleanSchema<undefined>;
295
295
  readonly missingRequired: v.ArraySchema<v.StringSchema<undefined>, undefined>;
296
+ readonly supportsRepoValidation: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
297
+ readonly supportsRepoBootstrap: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
298
+ readonly bootstrapInputs: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
299
+ readonly key: v.StringSchema<undefined>;
300
+ readonly label: v.StringSchema<undefined>;
301
+ readonly help: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
302
+ readonly placeholder: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
303
+ readonly secret: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
304
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
305
+ readonly type: v.OptionalSchema<v.PicklistSchema<["text", "password", "select"], undefined>, undefined>;
306
+ readonly options: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
307
+ readonly value: v.StringSchema<undefined>;
308
+ readonly label: v.StringSchema<undefined>;
309
+ }, undefined>, undefined>, undefined>;
310
+ readonly default: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
311
+ }, undefined>, undefined>, undefined>;
296
312
  readonly manifestTemplate: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
297
313
  readonly savedManifest: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
298
314
  }, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../../src/routes/runners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAoB5B,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI1C,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1C,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIvC,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI7C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA"}
1
+ {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../../src/routes/runners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAoB5B,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI1C,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1C,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIvC,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI7C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK3C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.43.3",
3
+ "version": "0.45.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",