@slowcook-ai/cli 0.15.0-alpha.4 → 0.16.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +10 -0
  2. package/dist/cli.js +18 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/brew/agent.d.ts.map +1 -1
  5. package/dist/commands/brew/agent.js +26 -3
  6. package/dist/commands/brew/agent.js.map +1 -1
  7. package/dist/commands/init/index.d.ts.map +1 -1
  8. package/dist/commands/init/index.js +7 -0
  9. package/dist/commands/init/index.js.map +1 -1
  10. package/dist/commands/init/mock.d.ts +35 -0
  11. package/dist/commands/init/mock.d.ts.map +1 -0
  12. package/dist/commands/init/mock.js +500 -0
  13. package/dist/commands/init/mock.js.map +1 -0
  14. package/dist/commands/plate/classify.d.ts +65 -0
  15. package/dist/commands/plate/classify.d.ts.map +1 -0
  16. package/dist/commands/plate/classify.js +194 -0
  17. package/dist/commands/plate/classify.js.map +1 -0
  18. package/dist/commands/plate/index.d.ts.map +1 -1
  19. package/dist/commands/plate/index.js +121 -17
  20. package/dist/commands/plate/index.js.map +1 -1
  21. package/dist/commands/port/index.d.ts +21 -0
  22. package/dist/commands/port/index.d.ts.map +1 -0
  23. package/dist/commands/port/index.js +203 -0
  24. package/dist/commands/port/index.js.map +1 -0
  25. package/dist/commands/port/transform.d.ts +51 -0
  26. package/dist/commands/port/transform.d.ts.map +1 -0
  27. package/dist/commands/port/transform.js +102 -0
  28. package/dist/commands/port/transform.js.map +1 -0
  29. package/dist/commands/preview/config.d.ts +73 -0
  30. package/dist/commands/preview/config.d.ts.map +1 -0
  31. package/dist/commands/preview/config.js +200 -0
  32. package/dist/commands/preview/config.js.map +1 -0
  33. package/dist/commands/preview/deploy.d.ts +35 -0
  34. package/dist/commands/preview/deploy.d.ts.map +1 -0
  35. package/dist/commands/preview/deploy.js +247 -0
  36. package/dist/commands/preview/deploy.js.map +1 -0
  37. package/dist/commands/preview/index.d.ts +9 -0
  38. package/dist/commands/preview/index.d.ts.map +1 -0
  39. package/dist/commands/preview/index.js +67 -0
  40. package/dist/commands/preview/index.js.map +1 -0
  41. package/dist/commands/preview/ssh.d.ts +49 -0
  42. package/dist/commands/preview/ssh.d.ts.map +1 -0
  43. package/dist/commands/preview/ssh.js +99 -0
  44. package/dist/commands/preview/ssh.js.map +1 -0
  45. package/dist/commands/preview/teardown.d.ts +25 -0
  46. package/dist/commands/preview/teardown.d.ts.map +1 -0
  47. package/dist/commands/preview/teardown.js +164 -0
  48. package/dist/commands/preview/teardown.js.map +1 -0
  49. package/dist/commands/refine/proposals-synth.js +17 -1
  50. package/dist/commands/refine/proposals-synth.js.map +1 -1
  51. package/dist/commands/refine/spec-yaml.d.ts +100 -100
  52. package/dist/commands/vibe/emit.d.ts +6 -0
  53. package/dist/commands/vibe/emit.d.ts.map +1 -1
  54. package/dist/commands/vibe/emit.js +12 -0
  55. package/dist/commands/vibe/emit.js.map +1 -1
  56. package/dist/commands/vibe/index.d.ts.map +1 -1
  57. package/dist/commands/vibe/index.js +143 -44
  58. package/dist/commands/vibe/index.js.map +1 -1
  59. package/package.json +6 -5
@@ -42,22 +42,22 @@ export declare const SpecProposalsSchema: z.ZodObject<{
42
42
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
43
43
  proposed_by: string;
44
44
  rationale?: string | undefined;
45
+ tokens_to_reuse?: string[] | undefined;
46
+ tokens_to_add?: string[] | undefined;
47
+ components_to_reuse?: string[] | undefined;
45
48
  approved_by?: string | undefined;
46
49
  approved_at?: string | undefined;
47
50
  viewport_coverage?: string[] | undefined;
48
- components_to_reuse?: string[] | undefined;
49
- tokens_to_reuse?: string[] | undefined;
50
- tokens_to_add?: string[] | undefined;
51
51
  }, {
52
52
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
53
53
  proposed_by: string;
54
54
  rationale?: string | undefined;
55
+ tokens_to_reuse?: string[] | undefined;
56
+ tokens_to_add?: string[] | undefined;
57
+ components_to_reuse?: string[] | undefined;
55
58
  approved_by?: string | undefined;
56
59
  approved_at?: string | undefined;
57
60
  viewport_coverage?: string[] | undefined;
58
- components_to_reuse?: string[] | undefined;
59
- tokens_to_reuse?: string[] | undefined;
60
- tokens_to_add?: string[] | undefined;
61
61
  }>>;
62
62
  routes: z.ZodOptional<z.ZodObject<{
63
63
  status: z.ZodEnum<["pending", "approved", "rejected", "deferred", "blocked_on_clarification"]>;
@@ -305,20 +305,20 @@ export declare const SpecProposalsSchema: z.ZodObject<{
305
305
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
306
306
  proposed_by: string;
307
307
  rationale?: string | undefined;
308
- approved_by?: string | undefined;
309
- approved_at?: string | undefined;
310
308
  by_domain?: Record<string, {
311
309
  seed: Record<string, unknown>;
312
310
  }> | undefined;
311
+ approved_by?: string | undefined;
312
+ approved_at?: string | undefined;
313
313
  }, {
314
314
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
315
315
  proposed_by: string;
316
316
  rationale?: string | undefined;
317
- approved_by?: string | undefined;
318
- approved_at?: string | undefined;
319
317
  by_domain?: Record<string, {
320
318
  seed: Record<string, unknown>;
321
319
  }> | undefined;
320
+ approved_by?: string | undefined;
321
+ approved_at?: string | undefined;
322
322
  }>>;
323
323
  }, "strip", z.ZodTypeAny, {
324
324
  routes?: {
@@ -352,12 +352,22 @@ export declare const SpecProposalsSchema: z.ZodObject<{
352
352
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
353
353
  proposed_by: string;
354
354
  rationale?: string | undefined;
355
+ tokens_to_reuse?: string[] | undefined;
356
+ tokens_to_add?: string[] | undefined;
357
+ components_to_reuse?: string[] | undefined;
355
358
  approved_by?: string | undefined;
356
359
  approved_at?: string | undefined;
357
360
  viewport_coverage?: string[] | undefined;
358
- components_to_reuse?: string[] | undefined;
359
- tokens_to_reuse?: string[] | undefined;
360
- tokens_to_add?: string[] | undefined;
361
+ } | undefined;
362
+ fixtures?: {
363
+ status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
364
+ proposed_by: string;
365
+ rationale?: string | undefined;
366
+ by_domain?: Record<string, {
367
+ seed: Record<string, unknown>;
368
+ }> | undefined;
369
+ approved_by?: string | undefined;
370
+ approved_at?: string | undefined;
361
371
  } | undefined;
362
372
  perf_budget?: {
363
373
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -402,16 +412,6 @@ export declare const SpecProposalsSchema: z.ZodObject<{
402
412
  responses?: Record<string, unknown> | undefined;
403
413
  }[] | undefined;
404
414
  } | undefined;
405
- fixtures?: {
406
- status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
407
- proposed_by: string;
408
- rationale?: string | undefined;
409
- approved_by?: string | undefined;
410
- approved_at?: string | undefined;
411
- by_domain?: Record<string, {
412
- seed: Record<string, unknown>;
413
- }> | undefined;
414
- } | undefined;
415
415
  }, {
416
416
  routes?: {
417
417
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -444,12 +444,22 @@ export declare const SpecProposalsSchema: z.ZodObject<{
444
444
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
445
445
  proposed_by: string;
446
446
  rationale?: string | undefined;
447
+ tokens_to_reuse?: string[] | undefined;
448
+ tokens_to_add?: string[] | undefined;
449
+ components_to_reuse?: string[] | undefined;
447
450
  approved_by?: string | undefined;
448
451
  approved_at?: string | undefined;
449
452
  viewport_coverage?: string[] | undefined;
450
- components_to_reuse?: string[] | undefined;
451
- tokens_to_reuse?: string[] | undefined;
452
- tokens_to_add?: string[] | undefined;
453
+ } | undefined;
454
+ fixtures?: {
455
+ status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
456
+ proposed_by: string;
457
+ rationale?: string | undefined;
458
+ by_domain?: Record<string, {
459
+ seed: Record<string, unknown>;
460
+ }> | undefined;
461
+ approved_by?: string | undefined;
462
+ approved_at?: string | undefined;
453
463
  } | undefined;
454
464
  perf_budget?: {
455
465
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -494,16 +504,6 @@ export declare const SpecProposalsSchema: z.ZodObject<{
494
504
  responses?: Record<string, unknown> | undefined;
495
505
  }[] | undefined;
496
506
  } | undefined;
497
- fixtures?: {
498
- status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
499
- proposed_by: string;
500
- rationale?: string | undefined;
501
- approved_by?: string | undefined;
502
- approved_at?: string | undefined;
503
- by_domain?: Record<string, {
504
- seed: Record<string, unknown>;
505
- }> | undefined;
506
- } | undefined;
507
507
  }>;
508
508
  export declare function readIndex(repoRoot: string): SpecIndex;
509
509
  export declare function writeIndex(repoRoot: string, index: SpecIndex): void;
@@ -657,22 +657,22 @@ export declare const schemas: {
657
657
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
658
658
  proposed_by: string;
659
659
  rationale?: string | undefined;
660
+ tokens_to_reuse?: string[] | undefined;
661
+ tokens_to_add?: string[] | undefined;
662
+ components_to_reuse?: string[] | undefined;
660
663
  approved_by?: string | undefined;
661
664
  approved_at?: string | undefined;
662
665
  viewport_coverage?: string[] | undefined;
663
- components_to_reuse?: string[] | undefined;
664
- tokens_to_reuse?: string[] | undefined;
665
- tokens_to_add?: string[] | undefined;
666
666
  }, {
667
667
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
668
668
  proposed_by: string;
669
669
  rationale?: string | undefined;
670
+ tokens_to_reuse?: string[] | undefined;
671
+ tokens_to_add?: string[] | undefined;
672
+ components_to_reuse?: string[] | undefined;
670
673
  approved_by?: string | undefined;
671
674
  approved_at?: string | undefined;
672
675
  viewport_coverage?: string[] | undefined;
673
- components_to_reuse?: string[] | undefined;
674
- tokens_to_reuse?: string[] | undefined;
675
- tokens_to_add?: string[] | undefined;
676
676
  }>>;
677
677
  routes: z.ZodOptional<z.ZodObject<{
678
678
  status: z.ZodEnum<["pending", "approved", "rejected", "deferred", "blocked_on_clarification"]>;
@@ -920,20 +920,20 @@ export declare const schemas: {
920
920
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
921
921
  proposed_by: string;
922
922
  rationale?: string | undefined;
923
- approved_by?: string | undefined;
924
- approved_at?: string | undefined;
925
923
  by_domain?: Record<string, {
926
924
  seed: Record<string, unknown>;
927
925
  }> | undefined;
926
+ approved_by?: string | undefined;
927
+ approved_at?: string | undefined;
928
928
  }, {
929
929
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
930
930
  proposed_by: string;
931
931
  rationale?: string | undefined;
932
- approved_by?: string | undefined;
933
- approved_at?: string | undefined;
934
932
  by_domain?: Record<string, {
935
933
  seed: Record<string, unknown>;
936
934
  }> | undefined;
935
+ approved_by?: string | undefined;
936
+ approved_at?: string | undefined;
937
937
  }>>;
938
938
  }, "strip", z.ZodTypeAny, {
939
939
  routes?: {
@@ -967,12 +967,22 @@ export declare const schemas: {
967
967
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
968
968
  proposed_by: string;
969
969
  rationale?: string | undefined;
970
+ tokens_to_reuse?: string[] | undefined;
971
+ tokens_to_add?: string[] | undefined;
972
+ components_to_reuse?: string[] | undefined;
970
973
  approved_by?: string | undefined;
971
974
  approved_at?: string | undefined;
972
975
  viewport_coverage?: string[] | undefined;
973
- components_to_reuse?: string[] | undefined;
974
- tokens_to_reuse?: string[] | undefined;
975
- tokens_to_add?: string[] | undefined;
976
+ } | undefined;
977
+ fixtures?: {
978
+ status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
979
+ proposed_by: string;
980
+ rationale?: string | undefined;
981
+ by_domain?: Record<string, {
982
+ seed: Record<string, unknown>;
983
+ }> | undefined;
984
+ approved_by?: string | undefined;
985
+ approved_at?: string | undefined;
976
986
  } | undefined;
977
987
  perf_budget?: {
978
988
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -1017,16 +1027,6 @@ export declare const schemas: {
1017
1027
  responses?: Record<string, unknown> | undefined;
1018
1028
  }[] | undefined;
1019
1029
  } | undefined;
1020
- fixtures?: {
1021
- status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1022
- proposed_by: string;
1023
- rationale?: string | undefined;
1024
- approved_by?: string | undefined;
1025
- approved_at?: string | undefined;
1026
- by_domain?: Record<string, {
1027
- seed: Record<string, unknown>;
1028
- }> | undefined;
1029
- } | undefined;
1030
1030
  }, {
1031
1031
  routes?: {
1032
1032
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -1059,12 +1059,22 @@ export declare const schemas: {
1059
1059
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1060
1060
  proposed_by: string;
1061
1061
  rationale?: string | undefined;
1062
+ tokens_to_reuse?: string[] | undefined;
1063
+ tokens_to_add?: string[] | undefined;
1064
+ components_to_reuse?: string[] | undefined;
1062
1065
  approved_by?: string | undefined;
1063
1066
  approved_at?: string | undefined;
1064
1067
  viewport_coverage?: string[] | undefined;
1065
- components_to_reuse?: string[] | undefined;
1066
- tokens_to_reuse?: string[] | undefined;
1067
- tokens_to_add?: string[] | undefined;
1068
+ } | undefined;
1069
+ fixtures?: {
1070
+ status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1071
+ proposed_by: string;
1072
+ rationale?: string | undefined;
1073
+ by_domain?: Record<string, {
1074
+ seed: Record<string, unknown>;
1075
+ }> | undefined;
1076
+ approved_by?: string | undefined;
1077
+ approved_at?: string | undefined;
1068
1078
  } | undefined;
1069
1079
  perf_budget?: {
1070
1080
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -1109,24 +1119,14 @@ export declare const schemas: {
1109
1119
  responses?: Record<string, unknown> | undefined;
1110
1120
  }[] | undefined;
1111
1121
  } | undefined;
1112
- fixtures?: {
1113
- status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1114
- proposed_by: string;
1115
- rationale?: string | undefined;
1116
- approved_by?: string | undefined;
1117
- approved_at?: string | undefined;
1118
- by_domain?: Record<string, {
1119
- seed: Record<string, unknown>;
1120
- }> | undefined;
1121
- } | undefined;
1122
1122
  }>>;
1123
1123
  }, "strip", z.ZodTypeAny, {
1124
1124
  status: "draft" | "active" | "superseded";
1125
+ created_at: string;
1125
1126
  title: string;
1126
1127
  supersedes: string[];
1127
1128
  superseded_by: string | null;
1128
1129
  story_id: string;
1129
- created_at: string;
1130
1130
  actors: {
1131
1131
  name: string;
1132
1132
  notes?: string | undefined;
@@ -1179,12 +1179,22 @@ export declare const schemas: {
1179
1179
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1180
1180
  proposed_by: string;
1181
1181
  rationale?: string | undefined;
1182
+ tokens_to_reuse?: string[] | undefined;
1183
+ tokens_to_add?: string[] | undefined;
1184
+ components_to_reuse?: string[] | undefined;
1182
1185
  approved_by?: string | undefined;
1183
1186
  approved_at?: string | undefined;
1184
1187
  viewport_coverage?: string[] | undefined;
1185
- components_to_reuse?: string[] | undefined;
1186
- tokens_to_reuse?: string[] | undefined;
1187
- tokens_to_add?: string[] | undefined;
1188
+ } | undefined;
1189
+ fixtures?: {
1190
+ status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1191
+ proposed_by: string;
1192
+ rationale?: string | undefined;
1193
+ by_domain?: Record<string, {
1194
+ seed: Record<string, unknown>;
1195
+ }> | undefined;
1196
+ approved_by?: string | undefined;
1197
+ approved_at?: string | undefined;
1188
1198
  } | undefined;
1189
1199
  perf_budget?: {
1190
1200
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -1229,24 +1239,14 @@ export declare const schemas: {
1229
1239
  responses?: Record<string, unknown> | undefined;
1230
1240
  }[] | undefined;
1231
1241
  } | undefined;
1232
- fixtures?: {
1233
- status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1234
- proposed_by: string;
1235
- rationale?: string | undefined;
1236
- approved_by?: string | undefined;
1237
- approved_at?: string | undefined;
1238
- by_domain?: Record<string, {
1239
- seed: Record<string, unknown>;
1240
- }> | undefined;
1241
- } | undefined;
1242
1242
  } | undefined;
1243
1243
  }, {
1244
1244
  status: "draft" | "active" | "superseded";
1245
+ created_at: string;
1245
1246
  title: string;
1246
1247
  supersedes: string[];
1247
1248
  superseded_by: string | null;
1248
1249
  story_id: string;
1249
- created_at: string;
1250
1250
  actors: {
1251
1251
  name: string;
1252
1252
  notes?: string | undefined;
@@ -1299,12 +1299,22 @@ export declare const schemas: {
1299
1299
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1300
1300
  proposed_by: string;
1301
1301
  rationale?: string | undefined;
1302
+ tokens_to_reuse?: string[] | undefined;
1303
+ tokens_to_add?: string[] | undefined;
1304
+ components_to_reuse?: string[] | undefined;
1302
1305
  approved_by?: string | undefined;
1303
1306
  approved_at?: string | undefined;
1304
1307
  viewport_coverage?: string[] | undefined;
1305
- components_to_reuse?: string[] | undefined;
1306
- tokens_to_reuse?: string[] | undefined;
1307
- tokens_to_add?: string[] | undefined;
1308
+ } | undefined;
1309
+ fixtures?: {
1310
+ status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1311
+ proposed_by: string;
1312
+ rationale?: string | undefined;
1313
+ by_domain?: Record<string, {
1314
+ seed: Record<string, unknown>;
1315
+ }> | undefined;
1316
+ approved_by?: string | undefined;
1317
+ approved_at?: string | undefined;
1308
1318
  } | undefined;
1309
1319
  perf_budget?: {
1310
1320
  status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
@@ -1349,16 +1359,6 @@ export declare const schemas: {
1349
1359
  responses?: Record<string, unknown> | undefined;
1350
1360
  }[] | undefined;
1351
1361
  } | undefined;
1352
- fixtures?: {
1353
- status: "pending" | "approved" | "rejected" | "deferred" | "blocked_on_clarification";
1354
- proposed_by: string;
1355
- rationale?: string | undefined;
1356
- approved_by?: string | undefined;
1357
- approved_at?: string | undefined;
1358
- by_domain?: Record<string, {
1359
- seed: Record<string, unknown>;
1360
- }> | undefined;
1361
- } | undefined;
1362
1362
  } | undefined;
1363
1363
  }>;
1364
1364
  SpecIndexEntry: z.ZodObject<{
@@ -34,6 +34,12 @@ export declare function parseVibeOutput(body: string): VibeOutput;
34
34
  * Rejects absolute paths, parent-dir escapes, and paths that normalize
35
35
  * outside the repo.
36
36
  *
37
+ * 0.16.0-α.4 — also requires the path start with `mock/`. Vibe writes
38
+ * ONLY into the mock app (per the singular-mock-app architecture); any
39
+ * write to `src/` or elsewhere is a sign the prompt steering failed.
40
+ * The hard signal here is structural — the agent can't accidentally
41
+ * leak into production source.
42
+ *
37
43
  * Returns the absolute target path on success; throws on rejection.
38
44
  */
39
45
  export declare function validateAndResolveVibePath(repoRoot: string, relPath: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/emit.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAMD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuBxD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CAoBR;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,EAAE,GACrB,MAAM,EAAE,CASV"}
1
+ {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/emit.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAMD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuBxD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,MAAM,CA4BR;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,aAAa,EAAE,GACrB,MAAM,EAAE,CASV"}
@@ -29,6 +29,12 @@ export function parseVibeOutput(body) {
29
29
  * Rejects absolute paths, parent-dir escapes, and paths that normalize
30
30
  * outside the repo.
31
31
  *
32
+ * 0.16.0-α.4 — also requires the path start with `mock/`. Vibe writes
33
+ * ONLY into the mock app (per the singular-mock-app architecture); any
34
+ * write to `src/` or elsewhere is a sign the prompt steering failed.
35
+ * The hard signal here is structural — the agent can't accidentally
36
+ * leak into production source.
37
+ *
32
38
  * Returns the absolute target path on success; throws on rejection.
33
39
  */
34
40
  export function validateAndResolveVibePath(repoRoot, relPath) {
@@ -39,6 +45,12 @@ export function validateAndResolveVibePath(repoRoot, relPath) {
39
45
  if (normalized.startsWith("..") || normalized === "..") {
40
46
  throw new Error(`Vibe path safety: refusing parent-dir escape: ${JSON.stringify(relPath)}`);
41
47
  }
48
+ // 0.16.0-α.4 — vibe writes only into mock/ (the singular mock app).
49
+ // The mock + production filesystems are kept separate; any leak into
50
+ // src/ or root would break the architecture's structural guarantees.
51
+ if (!normalized.startsWith("mock/") && normalized !== "mock") {
52
+ throw new Error(`Vibe path safety: refusing write outside mock/: ${JSON.stringify(relPath)}. Vibe writes ONLY into the mock app; production src/ is brew's territory.`);
53
+ }
42
54
  // Defense in depth: after join, ensure result starts with repoRoot.
43
55
  const abs = join(repoRoot, normalized);
44
56
  if (!abs.startsWith(repoRoot + sep) && abs !== repoRoot) {
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../src/commands/vibe/emit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../../src/commands/vibe/emit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgMH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/vibe/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuRH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH5E"}