@vibe-validate/config 0.12.1 → 0.13.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.
package/dist/schema.d.ts CHANGED
@@ -369,6 +369,36 @@ export declare const HooksConfigSchema: z.ZodObject<{
369
369
  } | undefined;
370
370
  }>;
371
371
  export type HooksConfig = z.infer<typeof HooksConfigSchema>;
372
+ /**
373
+ * Locking Configuration Schema
374
+ *
375
+ * Controls concurrent validation behavior and lock scoping.
376
+ */
377
+ export declare const LockingConfigSchema: z.ZodObject<{
378
+ /** Enable locking to prevent concurrent validations (default: true) */
379
+ enabled: z.ZodDefault<z.ZodBoolean>;
380
+ /**
381
+ * Concurrency scope for lock files (default: 'directory')
382
+ * - 'directory': Each working directory has its own lock (allows parallel worktrees)
383
+ * - 'project': All directories for the same project share a lock (prevents port/DB conflicts)
384
+ */
385
+ concurrencyScope: z.ZodDefault<z.ZodEnum<["directory", "project"]>>;
386
+ /**
387
+ * Project identifier for project-scoped locking (optional)
388
+ * Auto-detected from git remote URL or package.json if not specified.
389
+ * Required when concurrencyScope is 'project' and cannot be auto-detected.
390
+ */
391
+ projectId: z.ZodOptional<z.ZodString>;
392
+ }, "strict", z.ZodTypeAny, {
393
+ enabled: boolean;
394
+ concurrencyScope: "directory" | "project";
395
+ projectId?: string | undefined;
396
+ }, {
397
+ enabled?: boolean | undefined;
398
+ concurrencyScope?: "directory" | "project" | undefined;
399
+ projectId?: string | undefined;
400
+ }>;
401
+ export type LockingConfig = z.infer<typeof LockingConfigSchema>;
372
402
  /**
373
403
  * Full Configuration Schema
374
404
  *
@@ -589,6 +619,31 @@ export declare const VibeValidateConfigSchema: z.ZodObject<{
589
619
  } | undefined;
590
620
  } | undefined;
591
621
  }>>>;
622
+ /** Locking configuration (concurrency control) */
623
+ locking: z.ZodDefault<z.ZodOptional<z.ZodObject<{
624
+ /** Enable locking to prevent concurrent validations (default: true) */
625
+ enabled: z.ZodDefault<z.ZodBoolean>;
626
+ /**
627
+ * Concurrency scope for lock files (default: 'directory')
628
+ * - 'directory': Each working directory has its own lock (allows parallel worktrees)
629
+ * - 'project': All directories for the same project share a lock (prevents port/DB conflicts)
630
+ */
631
+ concurrencyScope: z.ZodDefault<z.ZodEnum<["directory", "project"]>>;
632
+ /**
633
+ * Project identifier for project-scoped locking (optional)
634
+ * Auto-detected from git remote URL or package.json if not specified.
635
+ * Required when concurrencyScope is 'project' and cannot be auto-detected.
636
+ */
637
+ projectId: z.ZodOptional<z.ZodString>;
638
+ }, "strict", z.ZodTypeAny, {
639
+ enabled: boolean;
640
+ concurrencyScope: "directory" | "project";
641
+ projectId?: string | undefined;
642
+ }, {
643
+ enabled?: boolean | undefined;
644
+ concurrencyScope?: "directory" | "project" | undefined;
645
+ projectId?: string | undefined;
646
+ }>>>;
592
647
  /**
593
648
  * Developer feedback for continuous quality improvement (optional, default: false)
594
649
  *
@@ -634,6 +689,11 @@ export declare const VibeValidateConfigSchema: z.ZodObject<{
634
689
  } | undefined;
635
690
  };
636
691
  };
692
+ locking: {
693
+ enabled: boolean;
694
+ concurrencyScope: "directory" | "project";
695
+ projectId?: string | undefined;
696
+ };
637
697
  developerFeedback: boolean;
638
698
  ci?: {
639
699
  failFast?: boolean | undefined;
@@ -682,6 +742,11 @@ export declare const VibeValidateConfigSchema: z.ZodObject<{
682
742
  } | undefined;
683
743
  } | undefined;
684
744
  } | undefined;
745
+ locking?: {
746
+ enabled?: boolean | undefined;
747
+ concurrencyScope?: "directory" | "project" | undefined;
748
+ projectId?: string | undefined;
749
+ } | undefined;
685
750
  developerFeedback?: boolean | undefined;
686
751
  }>;
687
752
  export type VibeValidateConfig = z.infer<typeof VibeValidateConfigSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -115,6 +115,27 @@ export const HooksConfigSchema = z.object({
115
115
  command: 'npx vibe-validate pre-commit',
116
116
  }),
117
117
  }).strict();
118
+ /**
119
+ * Locking Configuration Schema
120
+ *
121
+ * Controls concurrent validation behavior and lock scoping.
122
+ */
123
+ export const LockingConfigSchema = z.object({
124
+ /** Enable locking to prevent concurrent validations (default: true) */
125
+ enabled: z.boolean().default(true),
126
+ /**
127
+ * Concurrency scope for lock files (default: 'directory')
128
+ * - 'directory': Each working directory has its own lock (allows parallel worktrees)
129
+ * - 'project': All directories for the same project share a lock (prevents port/DB conflicts)
130
+ */
131
+ concurrencyScope: z.enum(['directory', 'project']).default('directory'),
132
+ /**
133
+ * Project identifier for project-scoped locking (optional)
134
+ * Auto-detected from git remote URL or package.json if not specified.
135
+ * Required when concurrencyScope is 'project' and cannot be auto-detected.
136
+ */
137
+ projectId: z.string().optional(),
138
+ }).strict();
118
139
  /**
119
140
  * Full Configuration Schema
120
141
  *
@@ -139,6 +160,11 @@ export const VibeValidateConfigSchema = z.object({
139
160
  command: 'npx vibe-validate pre-commit',
140
161
  },
141
162
  }),
163
+ /** Locking configuration (concurrency control) */
164
+ locking: LockingConfigSchema.optional().default({
165
+ enabled: true,
166
+ concurrencyScope: 'directory',
167
+ }),
142
168
  /**
143
169
  * Developer feedback for continuous quality improvement (optional, default: false)
144
170
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-validate/config",
3
- "version": "0.12.1",
3
+ "version": "0.13.0",
4
4
  "description": "Configuration system for vibe-validate with TypeScript-first design and config templates",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -185,6 +185,31 @@
185
185
  }
186
186
  }
187
187
  },
188
+ "locking": {
189
+ "type": "object",
190
+ "properties": {
191
+ "enabled": {
192
+ "type": "boolean",
193
+ "default": true
194
+ },
195
+ "concurrencyScope": {
196
+ "type": "string",
197
+ "enum": [
198
+ "directory",
199
+ "project"
200
+ ],
201
+ "default": "directory"
202
+ },
203
+ "projectId": {
204
+ "type": "string"
205
+ }
206
+ },
207
+ "additionalProperties": false,
208
+ "default": {
209
+ "enabled": true,
210
+ "concurrencyScope": "directory"
211
+ }
212
+ },
188
213
  "developerFeedback": {
189
214
  "type": "boolean",
190
215
  "default": false