@cat-factory/contracts 0.229.0 → 0.230.1
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.
- package/dist/entities.d.ts +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/execution.d.ts +2 -2
- package/dist/execution.js +2 -2
- package/dist/form-fields.d.ts +203 -0
- package/dist/form-fields.d.ts.map +1 -0
- package/dist/form-fields.js +315 -0
- package/dist/form-fields.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/initiative-preset.d.ts +34 -93
- package/dist/initiative-preset.d.ts.map +1 -1
- package/dist/initiative-preset.js +30 -182
- package/dist/initiative-preset.js.map +1 -1
- package/dist/initiative.d.ts +14 -9
- package/dist/initiative.d.ts.map +1 -1
- package/dist/initiative.js +15 -15
- package/dist/initiative.js.map +1 -1
- package/dist/input-gate.js +1 -1
- package/dist/input-gate.js.map +1 -1
- package/dist/merge.d.ts +2 -2
- package/dist/merge.js +2 -2
- package/dist/primitives.d.ts +10 -5
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +11 -5
- package/dist/primitives.js.map +1 -1
- package/dist/public-decisions.d.ts +2 -2
- package/dist/public-decisions.js +3 -3
- package/dist/public-decisions.js.map +1 -1
- package/dist/requests.d.ts +1 -1
- package/dist/routes/board.d.ts +14 -14
- package/dist/routes/bug-hunt.d.ts +2 -2
- package/dist/routes/execution.d.ts +2 -2
- package/dist/routes/initiative.d.ts +17 -17
- package/dist/routes/input-gate.js +2 -2
- package/dist/routes/input-gate.js.map +1 -1
- package/dist/routes/public-decisions.d.ts +1 -1
- package/dist/routes/public-decisions.js +2 -2
- package/dist/routes/public-decisions.js.map +1 -1
- package/dist/routes/tasks.d.ts +3 -3
- package/dist/routes/workspaces.d.ts +42 -26
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/snapshot.d.ts +21 -13
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/task-types.d.ts +42 -28
- package/dist/task-types.d.ts.map +1 -1
- package/dist/task-types.js +30 -25
- package/dist/task-types.js.map +1 -1
- package/dist/workspace-settings.d.ts +1 -1
- package/dist/workspace-settings.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -77,6 +77,7 @@ export * from './package-registries.js';
|
|
|
77
77
|
export * from './agent-config.js';
|
|
78
78
|
export * from './result-views.js';
|
|
79
79
|
export * from './agent-presentation.js';
|
|
80
|
+
export * from './form-fields.js';
|
|
80
81
|
export * from './task-types.js';
|
|
81
82
|
export * from './testing.js';
|
|
82
83
|
export * from './compute-provisioning.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,68 +1,41 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
|
-
import { type
|
|
2
|
+
import { type DescriptorFieldShowWhen } from './form-fields.js';
|
|
3
|
+
import { type InitiativePresetInputs } from './initiative.js';
|
|
3
4
|
/**
|
|
4
|
-
* How a preset field is rendered/collected
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* How a preset field is rendered/collected: the whole shared union, a preset being the surface
|
|
6
|
+
* that motivated it. `password` is admitted here (a preset input may carry a token the planning
|
|
7
|
+
* flow needs) and refused for a task type, whose values reach prompts and telemetry.
|
|
7
8
|
*/
|
|
8
9
|
export declare const initiativePresetFieldTypeSchema: v.PicklistSchema<["text", "password", "select", "number", "checkbox", "textarea", "checkbox-group", "path"], undefined>;
|
|
9
10
|
export type InitiativePresetFieldType = v.InferOutput<typeof initiativePresetFieldTypeSchema>;
|
|
10
|
-
/**
|
|
11
|
-
* Single-condition visibility for a field: it renders only when the referenced field's value
|
|
12
|
-
* matches. `equals` compares a scalar value; `includes` tests membership in a `checkbox-group`
|
|
13
|
-
* value (the per-doc-type subfolder case — "show `diagramsDir` only when `docTypes` includes
|
|
14
|
-
* `diagrams`"). Deliberately ONE condition — resist growing this into a recursive schema
|
|
15
|
-
* renderer (that is the descriptor-forms initiative's separate line item).
|
|
16
|
-
*/
|
|
11
|
+
/** Single-condition visibility for a preset field (the shared {@link descriptorFieldShowWhenSchema}). */
|
|
17
12
|
export declare const initiativePresetShowWhenSchema: v.ObjectSchema<{
|
|
18
|
-
/** The `key` of the field whose value gates this one's visibility. */
|
|
19
13
|
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
20
|
-
/**
|
|
21
|
-
* Show when the referenced scalar value equals this. A union so `equals` can gate a
|
|
22
|
-
* `checkbox` (boolean) or `number` field, not only a `select`/`text` string — the
|
|
23
|
-
* comparison is strict, so the type must match the referenced field's value.
|
|
24
|
-
*/
|
|
25
14
|
readonly equals: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
26
|
-
/** Show when the referenced `checkbox-group` value includes this. */
|
|
27
15
|
readonly includes: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
28
16
|
}, undefined>;
|
|
29
|
-
export type InitiativePresetShowWhen =
|
|
17
|
+
export type InitiativePresetShowWhen = DescriptorFieldShowWhen;
|
|
30
18
|
/** One value a preset needs, rendered as a single form field. */
|
|
31
19
|
export declare const initiativePresetFieldSchema: v.ObjectSchema<{
|
|
32
|
-
/** Stable key the value is stored/sent under (e.g. `docTypes`, `docsRoot`). */
|
|
33
20
|
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>;
|
|
34
|
-
/** Human label for the form field (backend-supplied English). */
|
|
35
21
|
readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
36
|
-
|
|
37
|
-
readonly
|
|
38
|
-
/** Optional input placeholder. */
|
|
39
|
-
readonly placeholder: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
40
|
-
/** Whether the value is required (absent ⇒ optional). A hidden (`showWhen`) field is never required. */
|
|
22
|
+
readonly help: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 300, undefined>]>, undefined>;
|
|
23
|
+
readonly placeholder: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
41
24
|
readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
42
|
-
/** Field type; absent is treated as `text`. */
|
|
43
|
-
readonly type: v.OptionalSchema<v.PicklistSchema<["text", "password", "select", "number", "checkbox", "textarea", "checkbox-group", "path"], undefined>, undefined>;
|
|
44
|
-
/** Choices for a `select` / `checkbox-group` field. */
|
|
45
25
|
readonly options: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
46
|
-
readonly value: v.StringSchema<undefined>;
|
|
47
|
-
readonly label: v.StringSchema<undefined>;
|
|
26
|
+
readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
27
|
+
readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
48
28
|
}, undefined>, undefined>, undefined>;
|
|
49
|
-
|
|
50
|
-
readonly
|
|
51
|
-
/** The multi-select default for a `checkbox-group` field. */
|
|
52
|
-
readonly defaultValues: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
53
|
-
/** Single-condition visibility; absent ⇒ always shown. */
|
|
29
|
+
readonly default: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
30
|
+
readonly defaultValues: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, undefined>;
|
|
54
31
|
readonly showWhen: v.OptionalSchema<v.ObjectSchema<{
|
|
55
|
-
/** The `key` of the field whose value gates this one's visibility. */
|
|
56
32
|
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
57
|
-
/**
|
|
58
|
-
* Show when the referenced scalar value equals this. A union so `equals` can gate a
|
|
59
|
-
* `checkbox` (boolean) or `number` field, not only a `select`/`text` string — the
|
|
60
|
-
* comparison is strict, so the type must match the referenced field's value.
|
|
61
|
-
*/
|
|
62
33
|
readonly equals: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
63
|
-
/** Show when the referenced `checkbox-group` value includes this. */
|
|
64
34
|
readonly includes: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
65
35
|
}, undefined>, undefined>;
|
|
36
|
+
readonly maxLength: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 2000, undefined>]>, undefined>;
|
|
37
|
+
/** Field type; absent is treated as `text`. */
|
|
38
|
+
readonly type: v.OptionalSchema<v.PicklistSchema<["text", "password", "select", "number", "checkbox", "textarea", "checkbox-group", "path"], undefined>, undefined>;
|
|
66
39
|
}, undefined>;
|
|
67
40
|
export type InitiativePresetField = v.InferOutput<typeof initiativePresetFieldSchema>;
|
|
68
41
|
/** Display metadata for a preset in the create-initiative picker. */
|
|
@@ -163,40 +136,25 @@ export declare const initiativePresetDescriptorSchema: v.ObjectSchema<{
|
|
|
163
136
|
}, undefined>;
|
|
164
137
|
/** The form fields the user fills at create time (empty for the generic preset). */
|
|
165
138
|
readonly fields: v.ArraySchema<v.ObjectSchema<{
|
|
166
|
-
/** Stable key the value is stored/sent under (e.g. `docTypes`, `docsRoot`). */
|
|
167
139
|
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>;
|
|
168
|
-
/** Human label for the form field (backend-supplied English). */
|
|
169
140
|
readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
170
|
-
|
|
171
|
-
readonly
|
|
172
|
-
/** Optional input placeholder. */
|
|
173
|
-
readonly placeholder: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
174
|
-
/** Whether the value is required (absent ⇒ optional). A hidden (`showWhen`) field is never required. */
|
|
141
|
+
readonly help: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 300, undefined>]>, undefined>;
|
|
142
|
+
readonly placeholder: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
175
143
|
readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
176
|
-
/** Field type; absent is treated as `text`. */
|
|
177
|
-
readonly type: v.OptionalSchema<v.PicklistSchema<["text", "password", "select", "number", "checkbox", "textarea", "checkbox-group", "path"], undefined>, undefined>;
|
|
178
|
-
/** Choices for a `select` / `checkbox-group` field. */
|
|
179
144
|
readonly options: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
180
|
-
readonly value: v.StringSchema<undefined>;
|
|
181
|
-
readonly label: v.StringSchema<undefined>;
|
|
145
|
+
readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
146
|
+
readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
182
147
|
}, undefined>, undefined>, undefined>;
|
|
183
|
-
|
|
184
|
-
readonly
|
|
185
|
-
/** The multi-select default for a `checkbox-group` field. */
|
|
186
|
-
readonly defaultValues: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
187
|
-
/** Single-condition visibility; absent ⇒ always shown. */
|
|
148
|
+
readonly default: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>;
|
|
149
|
+
readonly defaultValues: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, undefined>;
|
|
188
150
|
readonly showWhen: v.OptionalSchema<v.ObjectSchema<{
|
|
189
|
-
/** The `key` of the field whose value gates this one's visibility. */
|
|
190
151
|
readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
191
|
-
/**
|
|
192
|
-
* Show when the referenced scalar value equals this. A union so `equals` can gate a
|
|
193
|
-
* `checkbox` (boolean) or `number` field, not only a `select`/`text` string — the
|
|
194
|
-
* comparison is strict, so the type must match the referenced field's value.
|
|
195
|
-
*/
|
|
196
152
|
readonly equals: v.OptionalSchema<v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>;
|
|
197
|
-
/** Show when the referenced `checkbox-group` value includes this. */
|
|
198
153
|
readonly includes: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
199
154
|
}, undefined>, undefined>;
|
|
155
|
+
readonly maxLength: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 2000, undefined>]>, undefined>;
|
|
156
|
+
/** Field type; absent is treated as `text`. */
|
|
157
|
+
readonly type: v.OptionalSchema<v.PicklistSchema<["text", "password", "select", "number", "checkbox", "textarea", "checkbox-group", "path"], undefined>, undefined>;
|
|
200
158
|
}, undefined>, undefined>;
|
|
201
159
|
/** The planning pipeline the SPA starts (e.g. `pl_initiative`, `pl_initiative_docs`). */
|
|
202
160
|
readonly planningPipelineId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
|
|
@@ -338,40 +296,23 @@ export type InitiativePresetDescriptor = v.InferOutput<typeof initiativePresetDe
|
|
|
338
296
|
/** Strictly parse a preset descriptor. Throws on shape violations. */
|
|
339
297
|
export declare function parseInitiativePresetDescriptor(value: unknown): InitiativePresetDescriptor;
|
|
340
298
|
/**
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
* traversal, no absolute path (`/…` or a Windows drive), no backslash / NUL. An empty string is
|
|
345
|
-
* NOT a valid path (callers treat "unset" separately). A trailing slash is tolerated.
|
|
299
|
+
* The field-list-shaped rules under their preset names: `isPresetFieldVisible` (a field's
|
|
300
|
+
* `showWhen` against the current inputs), `renderInitiativePresetValue` (one value as prose), and
|
|
301
|
+
* the `path` write-boundary guard. Aliases, not copies: one implementation, two vocabularies.
|
|
346
302
|
*/
|
|
347
|
-
export
|
|
348
|
-
/** Whether a field is visible given the current input values (its `showWhen` condition). */
|
|
349
|
-
export declare function isPresetFieldVisible(field: InitiativePresetField, inputs: InitiativePresetInputs): boolean;
|
|
303
|
+
export { isDescriptorFieldVisible as isPresetFieldVisible, isSafeRepoDirPath, renderDescriptorFieldValue as renderInitiativePresetValue, } from './form-fields.js';
|
|
350
304
|
/**
|
|
351
305
|
* Validate a filled preset form against its descriptor, returning a list of human-readable
|
|
352
|
-
* problems (EMPTY
|
|
353
|
-
* non-empty result to a single ValidationError
|
|
354
|
-
* per field, required VISIBLE fields present (a required `checkbox` must be CHECKED — an
|
|
355
|
-
* unchecked `false` counts as unset), `select`/`checkbox-group` values drawn from the declared
|
|
356
|
-
* options, and `path` values that stay inside the repo ({@link isSafeRepoDirPath}). Hidden
|
|
357
|
-
* fields (failing `showWhen`) are not required and their stale values are ignored.
|
|
306
|
+
* problems (EMPTY means valid). Pure + total (never throws), so the create controller can map a
|
|
307
|
+
* non-empty result to a single ValidationError and the SPA can disable submit off the same call.
|
|
358
308
|
*/
|
|
359
309
|
export declare function validateInitiativePresetInputs(descriptor: InitiativePresetDescriptor, inputs: InitiativePresetInputs): string[];
|
|
360
310
|
/**
|
|
361
|
-
* Reduce a filled preset form to the values SAFE to freeze on the entity:
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
* are dropped, so a hidden field can never freeze an unvalidated value (e.g. a `path` that escapes
|
|
365
|
-
* the repo). Pure + total; run AFTER validation, on a form already known valid.
|
|
311
|
+
* Reduce a filled preset form to the values SAFE to freeze on the entity: the declared, currently
|
|
312
|
+
* VISIBLE fields only, so a hidden field can never freeze an unvalidated value (e.g. a `path` that
|
|
313
|
+
* escapes the repo). Pure + total; run AFTER validation, on a form already known valid.
|
|
366
314
|
*/
|
|
367
315
|
export declare function sanitizeInitiativePresetInputs(descriptor: InitiativePresetDescriptor, inputs: InitiativePresetInputs): InitiativePresetInputs;
|
|
368
|
-
/**
|
|
369
|
-
* Render one filled preset value as human-readable prose (option labels preferred over raw
|
|
370
|
-
* values, `checkbox-group` joined, boolean → `Yes`/`No`). Shared by the create flow's skip-interview
|
|
371
|
-
* qa seeding and the SPA form review so a field reads identically in both. Backend-supplied English
|
|
372
|
-
* (the `describeConfig` convention). Pure + total.
|
|
373
|
-
*/
|
|
374
|
-
export declare function renderInitiativePresetValue(field: InitiativePresetField, value: InitiativePresetInputValue): string;
|
|
375
316
|
/** Strictly parse a bounded preset-inputs record. Throws on shape violations. */
|
|
376
317
|
export declare function parseInitiativePresetInputs(value: unknown): InitiativePresetInputs;
|
|
377
318
|
//# sourceMappingURL=initiative-preset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-preset.d.ts","sourceRoot":"","sources":["../src/initiative-preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAML,KAAK,
|
|
1
|
+
{"version":3,"file":"initiative-preset.d.ts","sourceRoot":"","sources":["../src/initiative-preset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as v from 'valibot';
|
|
2
|
+
import { descriptorFieldEntries, descriptorFieldShowWhenSchema, descriptorFieldTypeSchema, sanitizeDescriptorFields, validateDescriptorFields, } from './form-fields.js';
|
|
2
3
|
import { INITIATIVE_ID_MAX, INITIATIVE_SHORT_MAX, INITIATIVE_TITLE_MAX, initiativeExecutionPolicySchema, initiativePresetInputsSchema, } from './initiative.js';
|
|
3
4
|
// ---------------------------------------------------------------------------
|
|
4
5
|
// Initiative-preset wire contracts.
|
|
@@ -13,69 +14,25 @@ import { INITIATIVE_ID_MAX, INITIATIVE_SHORT_MAX, INITIATIVE_TITLE_MAX, initiati
|
|
|
13
14
|
// `docs/initiatives/initiative-presets-and-docs-refresh.md` and the kernel
|
|
14
15
|
// `initiative-preset-registry.ts`.
|
|
15
16
|
//
|
|
16
|
-
// The
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
// the surrounding chrome is i18n.
|
|
17
|
+
// The FIELD vocabulary itself is shared with the other descriptor-driven form surface (a reusable
|
|
18
|
+
// operation's per-case brief on a custom task type) and lives in `form-fields.ts`; a preset admits
|
|
19
|
+
// EVERY type in it, including `password`, and this module only re-exports the preset-named
|
|
20
|
+
// aliases plus the two descriptor-taking wrappers. Descriptor labels are backend-supplied English
|
|
21
|
+
// (the `describeConfig` convention); only the surrounding chrome is i18n.
|
|
22
22
|
// ---------------------------------------------------------------------------
|
|
23
23
|
/**
|
|
24
|
-
* How a preset field is rendered/collected
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* How a preset field is rendered/collected: the whole shared union, a preset being the surface
|
|
25
|
+
* that motivated it. `password` is admitted here (a preset input may carry a token the planning
|
|
26
|
+
* flow needs) and refused for a task type, whose values reach prompts and telemetry.
|
|
27
27
|
*/
|
|
28
|
-
export const initiativePresetFieldTypeSchema =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
'select',
|
|
32
|
-
'number',
|
|
33
|
-
'checkbox',
|
|
34
|
-
'textarea',
|
|
35
|
-
'checkbox-group',
|
|
36
|
-
'path',
|
|
37
|
-
]);
|
|
38
|
-
/**
|
|
39
|
-
* Single-condition visibility for a field: it renders only when the referenced field's value
|
|
40
|
-
* matches. `equals` compares a scalar value; `includes` tests membership in a `checkbox-group`
|
|
41
|
-
* value (the per-doc-type subfolder case — "show `diagramsDir` only when `docTypes` includes
|
|
42
|
-
* `diagrams`"). Deliberately ONE condition — resist growing this into a recursive schema
|
|
43
|
-
* renderer (that is the descriptor-forms initiative's separate line item).
|
|
44
|
-
*/
|
|
45
|
-
export const initiativePresetShowWhenSchema = v.object({
|
|
46
|
-
/** The `key` of the field whose value gates this one's visibility. */
|
|
47
|
-
key: v.pipe(v.string(), v.minLength(1)),
|
|
48
|
-
/**
|
|
49
|
-
* Show when the referenced scalar value equals this. A union so `equals` can gate a
|
|
50
|
-
* `checkbox` (boolean) or `number` field, not only a `select`/`text` string — the
|
|
51
|
-
* comparison is strict, so the type must match the referenced field's value.
|
|
52
|
-
*/
|
|
53
|
-
equals: v.optional(v.union([v.string(), v.boolean(), v.number()])),
|
|
54
|
-
/** Show when the referenced `checkbox-group` value includes this. */
|
|
55
|
-
includes: v.optional(v.string()),
|
|
56
|
-
});
|
|
28
|
+
export const initiativePresetFieldTypeSchema = descriptorFieldTypeSchema;
|
|
29
|
+
/** Single-condition visibility for a preset field (the shared {@link descriptorFieldShowWhenSchema}). */
|
|
30
|
+
export const initiativePresetShowWhenSchema = descriptorFieldShowWhenSchema;
|
|
57
31
|
/** One value a preset needs, rendered as a single form field. */
|
|
58
32
|
export const initiativePresetFieldSchema = v.object({
|
|
59
|
-
|
|
60
|
-
key: v.pipe(v.string(), v.minLength(1), v.maxLength(80)),
|
|
61
|
-
/** Human label for the form field (backend-supplied English). */
|
|
62
|
-
label: v.pipe(v.string(), v.minLength(1), v.maxLength(120)),
|
|
63
|
-
/** Optional helper text shown under the field. */
|
|
64
|
-
help: v.optional(v.string()),
|
|
65
|
-
/** Optional input placeholder. */
|
|
66
|
-
placeholder: v.optional(v.string()),
|
|
67
|
-
/** Whether the value is required (absent ⇒ optional). A hidden (`showWhen`) field is never required. */
|
|
68
|
-
required: v.optional(v.boolean()),
|
|
33
|
+
...descriptorFieldEntries,
|
|
69
34
|
/** Field type; absent is treated as `text`. */
|
|
70
35
|
type: v.optional(initiativePresetFieldTypeSchema),
|
|
71
|
-
/** Choices for a `select` / `checkbox-group` field. */
|
|
72
|
-
options: v.optional(v.array(v.object({ value: v.string(), label: v.string() }))),
|
|
73
|
-
/** The scalar default (`text`/`select`/`path`/`number`/`checkbox`); the form falls back to it when blank. */
|
|
74
|
-
default: v.optional(v.string()),
|
|
75
|
-
/** The multi-select default for a `checkbox-group` field. */
|
|
76
|
-
defaultValues: v.optional(v.array(v.string())),
|
|
77
|
-
/** Single-condition visibility; absent ⇒ always shown. */
|
|
78
|
-
showWhen: v.optional(initiativePresetShowWhenSchema),
|
|
79
36
|
});
|
|
80
37
|
/** Display metadata for a preset in the create-initiative picker. */
|
|
81
38
|
export const initiativePresetPresentationSchema = v.object({
|
|
@@ -184,143 +141,34 @@ export function parseInitiativePresetDescriptor(value) {
|
|
|
184
141
|
return v.parse(initiativePresetDescriptorSchema, value);
|
|
185
142
|
}
|
|
186
143
|
// ---------------------------------------------------------------------------
|
|
187
|
-
//
|
|
144
|
+
// Input validation (the shared pure rules, bound to a preset's descriptor).
|
|
145
|
+
//
|
|
146
|
+
// The rules themselves live in `form-fields.ts` and take a plain field list, because the other
|
|
147
|
+
// descriptor-driven surface (a custom task type's per-case form) has no preset descriptor to pass.
|
|
148
|
+
// These two wrappers exist because a preset's callers hold the DESCRIPTOR, not its fields, and the
|
|
149
|
+
// preset-named helpers below read as what they are at those call sites.
|
|
188
150
|
// ---------------------------------------------------------------------------
|
|
189
151
|
/**
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* traversal, no absolute path (`/…` or a Windows drive), no backslash / NUL. An empty string is
|
|
194
|
-
* NOT a valid path (callers treat "unset" separately). A trailing slash is tolerated.
|
|
152
|
+
* The field-list-shaped rules under their preset names: `isPresetFieldVisible` (a field's
|
|
153
|
+
* `showWhen` against the current inputs), `renderInitiativePresetValue` (one value as prose), and
|
|
154
|
+
* the `path` write-boundary guard. Aliases, not copies: one implementation, two vocabularies.
|
|
195
155
|
*/
|
|
196
|
-
export
|
|
197
|
-
const p = path.trim();
|
|
198
|
-
if (!p || p.length > 300)
|
|
199
|
-
return false;
|
|
200
|
-
if (p.startsWith('/') || /^[a-zA-Z]:/.test(p))
|
|
201
|
-
return false;
|
|
202
|
-
if (p.includes('\\') || p.includes('\0'))
|
|
203
|
-
return false;
|
|
204
|
-
return !p.split('/').some((segment) => segment === '..');
|
|
205
|
-
}
|
|
206
|
-
/** Whether a field is visible given the current input values (its `showWhen` condition). */
|
|
207
|
-
export function isPresetFieldVisible(field, inputs) {
|
|
208
|
-
const cond = field.showWhen;
|
|
209
|
-
if (!cond)
|
|
210
|
-
return true;
|
|
211
|
-
const value = inputs[cond.key];
|
|
212
|
-
if (cond.equals !== undefined) {
|
|
213
|
-
// An unchecked checkbox is ABSENT from the inputs (an off box stays unset — see the create
|
|
214
|
-
// form's `defaultPresetInputs` / renderer), so an absent value reads as `false` when the
|
|
215
|
-
// condition compares against a boolean. Without this, `equals: false` would never match at
|
|
216
|
-
// initial render (only after a toggle on→off), hiding a field that should be shown.
|
|
217
|
-
const actual = value === undefined && typeof cond.equals === 'boolean' ? false : value;
|
|
218
|
-
return actual === cond.equals;
|
|
219
|
-
}
|
|
220
|
-
if (cond.includes !== undefined)
|
|
221
|
-
return Array.isArray(value) && value.includes(cond.includes);
|
|
222
|
-
// A `showWhen` with neither predicate is a malformed condition — treat as always visible.
|
|
223
|
-
return true;
|
|
224
|
-
}
|
|
225
|
-
/** Whether a filled value matches the field's declared type (structural, pre-semantic check). */
|
|
226
|
-
function valueMatchesFieldType(field, value) {
|
|
227
|
-
switch (field.type) {
|
|
228
|
-
case 'checkbox-group':
|
|
229
|
-
return Array.isArray(value);
|
|
230
|
-
case 'checkbox':
|
|
231
|
-
return typeof value === 'boolean';
|
|
232
|
-
case 'number':
|
|
233
|
-
return typeof value === 'number';
|
|
234
|
-
default:
|
|
235
|
-
// text / password / select / textarea / path (and the untyped default) are strings.
|
|
236
|
-
return typeof value === 'string';
|
|
237
|
-
}
|
|
238
|
-
}
|
|
156
|
+
export { isDescriptorFieldVisible as isPresetFieldVisible, isSafeRepoDirPath, renderDescriptorFieldValue as renderInitiativePresetValue, } from './form-fields.js';
|
|
239
157
|
/**
|
|
240
158
|
* Validate a filled preset form against its descriptor, returning a list of human-readable
|
|
241
|
-
* problems (EMPTY
|
|
242
|
-
* non-empty result to a single ValidationError
|
|
243
|
-
* per field, required VISIBLE fields present (a required `checkbox` must be CHECKED — an
|
|
244
|
-
* unchecked `false` counts as unset), `select`/`checkbox-group` values drawn from the declared
|
|
245
|
-
* options, and `path` values that stay inside the repo ({@link isSafeRepoDirPath}). Hidden
|
|
246
|
-
* fields (failing `showWhen`) are not required and their stale values are ignored.
|
|
159
|
+
* problems (EMPTY means valid). Pure + total (never throws), so the create controller can map a
|
|
160
|
+
* non-empty result to a single ValidationError and the SPA can disable submit off the same call.
|
|
247
161
|
*/
|
|
248
162
|
export function validateInitiativePresetInputs(descriptor, inputs) {
|
|
249
|
-
|
|
250
|
-
const byKey = new Map(descriptor.fields.map((f) => [f.key, f]));
|
|
251
|
-
for (const key of Object.keys(inputs)) {
|
|
252
|
-
if (!byKey.has(key))
|
|
253
|
-
problems.push(`Unknown field "${key}".`);
|
|
254
|
-
}
|
|
255
|
-
for (const field of descriptor.fields) {
|
|
256
|
-
const visible = isPresetFieldVisible(field, inputs);
|
|
257
|
-
const value = inputs[field.key];
|
|
258
|
-
// A checkbox is "present" only when checked: a required checkbox means "must be checked",
|
|
259
|
-
// so an unchecked (`false`) box counts as unset and fails the required check below.
|
|
260
|
-
const present = value !== undefined &&
|
|
261
|
-
!(typeof value === 'string' && value.trim() === '') &&
|
|
262
|
-
!(Array.isArray(value) && value.length === 0) &&
|
|
263
|
-
value !== false;
|
|
264
|
-
if (!visible)
|
|
265
|
-
continue;
|
|
266
|
-
if (!present) {
|
|
267
|
-
if (field.required)
|
|
268
|
-
problems.push(`Field "${field.key}" is required.`);
|
|
269
|
-
continue;
|
|
270
|
-
}
|
|
271
|
-
if (!valueMatchesFieldType(field, value)) {
|
|
272
|
-
problems.push(`Field "${field.key}" has the wrong type for a ${field.type ?? 'text'} field.`);
|
|
273
|
-
continue;
|
|
274
|
-
}
|
|
275
|
-
const optionValues = new Set((field.options ?? []).map((o) => o.value));
|
|
276
|
-
if (field.type === 'select' && optionValues.size > 0 && !optionValues.has(value)) {
|
|
277
|
-
problems.push(`Field "${field.key}" has a value outside its options.`);
|
|
278
|
-
}
|
|
279
|
-
if (field.type === 'checkbox-group' && optionValues.size > 0) {
|
|
280
|
-
for (const entry of value) {
|
|
281
|
-
if (!optionValues.has(entry))
|
|
282
|
-
problems.push(`Field "${field.key}" has an option "${entry}" outside its choices.`);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
if (field.type === 'path' && !isSafeRepoDirPath(value)) {
|
|
286
|
-
problems.push(`Field "${field.key}" must be a relative path inside the repo (no "..", absolute, or backslash segments).`);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
return problems;
|
|
163
|
+
return validateDescriptorFields(descriptor.fields, inputs);
|
|
290
164
|
}
|
|
291
165
|
/**
|
|
292
|
-
* Reduce a filled preset form to the values SAFE to freeze on the entity:
|
|
293
|
-
*
|
|
294
|
-
*
|
|
295
|
-
* are dropped, so a hidden field can never freeze an unvalidated value (e.g. a `path` that escapes
|
|
296
|
-
* the repo). Pure + total; run AFTER validation, on a form already known valid.
|
|
166
|
+
* Reduce a filled preset form to the values SAFE to freeze on the entity: the declared, currently
|
|
167
|
+
* VISIBLE fields only, so a hidden field can never freeze an unvalidated value (e.g. a `path` that
|
|
168
|
+
* escapes the repo). Pure + total; run AFTER validation, on a form already known valid.
|
|
297
169
|
*/
|
|
298
170
|
export function sanitizeInitiativePresetInputs(descriptor, inputs) {
|
|
299
|
-
|
|
300
|
-
for (const field of descriptor.fields) {
|
|
301
|
-
if (!isPresetFieldVisible(field, inputs))
|
|
302
|
-
continue;
|
|
303
|
-
const value = inputs[field.key];
|
|
304
|
-
if (value !== undefined)
|
|
305
|
-
sanitized[field.key] = value;
|
|
306
|
-
}
|
|
307
|
-
return sanitized;
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Render one filled preset value as human-readable prose (option labels preferred over raw
|
|
311
|
-
* values, `checkbox-group` joined, boolean → `Yes`/`No`). Shared by the create flow's skip-interview
|
|
312
|
-
* qa seeding and the SPA form review so a field reads identically in both. Backend-supplied English
|
|
313
|
-
* (the `describeConfig` convention). Pure + total.
|
|
314
|
-
*/
|
|
315
|
-
export function renderInitiativePresetValue(field, value) {
|
|
316
|
-
const labelOf = (v) => (field.options ?? []).find((o) => o.value === v)?.label ?? v;
|
|
317
|
-
if (Array.isArray(value))
|
|
318
|
-
return value.map(labelOf).join(', ');
|
|
319
|
-
if (typeof value === 'boolean')
|
|
320
|
-
return value ? 'Yes' : 'No';
|
|
321
|
-
if (typeof value === 'number')
|
|
322
|
-
return String(value);
|
|
323
|
-
return labelOf(value);
|
|
171
|
+
return sanitizeDescriptorFields(descriptor.fields, inputs);
|
|
324
172
|
}
|
|
325
173
|
/** Strictly parse a bounded preset-inputs record. Throws on shape violations. */
|
|
326
174
|
export function parseInitiativePresetInputs(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initiative-preset.js","sourceRoot":"","sources":["../src/initiative-preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,
|
|
1
|
+
{"version":3,"file":"initiative-preset.js","sourceRoot":"","sources":["../src/initiative-preset.ts"],"names":[],"mappings":"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"}
|