@humanbased/crosscheck 1.2.0-beta.2 → 1.2.0-beta.33

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 (98) hide show
  1. package/crosscheck.config.example.yml +42 -0
  2. package/dist/__tests__/can-write-verdict.test.d.ts +2 -0
  3. package/dist/__tests__/can-write-verdict.test.d.ts.map +1 -0
  4. package/dist/__tests__/can-write-verdict.test.js +31 -0
  5. package/dist/__tests__/can-write-verdict.test.js.map +1 -0
  6. package/dist/__tests__/linear-client.test.d.ts +2 -0
  7. package/dist/__tests__/linear-client.test.d.ts.map +1 -0
  8. package/dist/__tests__/linear-client.test.js +120 -0
  9. package/dist/__tests__/linear-client.test.js.map +1 -0
  10. package/dist/__tests__/linear-comment.test.d.ts +2 -0
  11. package/dist/__tests__/linear-comment.test.d.ts.map +1 -0
  12. package/dist/__tests__/linear-comment.test.js +151 -0
  13. package/dist/__tests__/linear-comment.test.js.map +1 -0
  14. package/dist/__tests__/linear-identity.test.d.ts +2 -0
  15. package/dist/__tests__/linear-identity.test.d.ts.map +1 -0
  16. package/dist/__tests__/linear-identity.test.js +253 -0
  17. package/dist/__tests__/linear-identity.test.js.map +1 -0
  18. package/dist/__tests__/linear-notify.test.d.ts +2 -0
  19. package/dist/__tests__/linear-notify.test.d.ts.map +1 -0
  20. package/dist/__tests__/linear-notify.test.js +144 -0
  21. package/dist/__tests__/linear-notify.test.js.map +1 -0
  22. package/dist/__tests__/linear-ref.test.d.ts +2 -0
  23. package/dist/__tests__/linear-ref.test.d.ts.map +1 -0
  24. package/dist/__tests__/linear-ref.test.js +261 -0
  25. package/dist/__tests__/linear-ref.test.js.map +1 -0
  26. package/dist/__tests__/linear-verify.test.d.ts +2 -0
  27. package/dist/__tests__/linear-verify.test.d.ts.map +1 -0
  28. package/dist/__tests__/linear-verify.test.js +113 -0
  29. package/dist/__tests__/linear-verify.test.js.map +1 -0
  30. package/dist/__tests__/linear-worker.test.d.ts +2 -0
  31. package/dist/__tests__/linear-worker.test.d.ts.map +1 -0
  32. package/dist/__tests__/linear-worker.test.js +83 -0
  33. package/dist/__tests__/linear-worker.test.js.map +1 -0
  34. package/dist/__tests__/linear-write-possible.test.d.ts +2 -0
  35. package/dist/__tests__/linear-write-possible.test.d.ts.map +1 -0
  36. package/dist/__tests__/linear-write-possible.test.js +30 -0
  37. package/dist/__tests__/linear-write-possible.test.js.map +1 -0
  38. package/dist/__tests__/optimize.test.js +1 -0
  39. package/dist/__tests__/optimize.test.js.map +1 -1
  40. package/dist/commands/review.d.ts.map +1 -1
  41. package/dist/commands/review.js +48 -1
  42. package/dist/commands/review.js.map +1 -1
  43. package/dist/commands/run.d.ts.map +1 -1
  44. package/dist/commands/run.js +23 -3
  45. package/dist/commands/run.js.map +1 -1
  46. package/dist/commands/status.d.ts.map +1 -1
  47. package/dist/commands/status.js +40 -1
  48. package/dist/commands/status.js.map +1 -1
  49. package/dist/commands/watch.d.ts.map +1 -1
  50. package/dist/commands/watch.js +52 -6
  51. package/dist/commands/watch.js.map +1 -1
  52. package/dist/config/loader.d.ts +3 -1
  53. package/dist/config/loader.d.ts.map +1 -1
  54. package/dist/config/loader.js +13 -0
  55. package/dist/config/loader.js.map +1 -1
  56. package/dist/config/schema.d.ts +208 -0
  57. package/dist/config/schema.d.ts.map +1 -1
  58. package/dist/config/schema.js +39 -0
  59. package/dist/config/schema.js.map +1 -1
  60. package/dist/issues/ticket-ref.d.ts.map +1 -1
  61. package/dist/issues/ticket-ref.js +6 -5
  62. package/dist/issues/ticket-ref.js.map +1 -1
  63. package/dist/lib/runner.d.ts +2 -0
  64. package/dist/lib/runner.d.ts.map +1 -1
  65. package/dist/lib/runner.js +58 -1
  66. package/dist/lib/runner.js.map +1 -1
  67. package/dist/lib/workflow.d.ts +9 -0
  68. package/dist/lib/workflow.d.ts.map +1 -1
  69. package/dist/lib/workflow.js +20 -0
  70. package/dist/lib/workflow.js.map +1 -1
  71. package/dist/linear/client.d.ts +18 -0
  72. package/dist/linear/client.d.ts.map +1 -0
  73. package/dist/linear/client.js +67 -0
  74. package/dist/linear/client.js.map +1 -0
  75. package/dist/linear/comment.d.ts +20 -0
  76. package/dist/linear/comment.d.ts.map +1 -0
  77. package/dist/linear/comment.js +53 -0
  78. package/dist/linear/comment.js.map +1 -0
  79. package/dist/linear/identity.d.ts +47 -0
  80. package/dist/linear/identity.d.ts.map +1 -0
  81. package/dist/linear/identity.js +151 -0
  82. package/dist/linear/identity.js.map +1 -0
  83. package/dist/linear/notify.d.ts +35 -0
  84. package/dist/linear/notify.d.ts.map +1 -0
  85. package/dist/linear/notify.js +65 -0
  86. package/dist/linear/notify.js.map +1 -0
  87. package/dist/linear/ref.d.ts +13 -0
  88. package/dist/linear/ref.d.ts.map +1 -0
  89. package/dist/linear/ref.js +90 -0
  90. package/dist/linear/ref.js.map +1 -0
  91. package/dist/linear/verify.d.ts +21 -0
  92. package/dist/linear/verify.d.ts.map +1 -0
  93. package/dist/linear/verify.js +65 -0
  94. package/dist/linear/verify.js.map +1 -0
  95. package/docs/linear-identity-contract.md +133 -0
  96. package/docs/linear-identity.md +224 -0
  97. package/get-started.md +39 -0
  98. package/package.json +1 -1
@@ -421,6 +421,109 @@ export declare const BrandConfigSchema: z.ZodObject<{
421
421
  comment_footer?: string | undefined;
422
422
  reviewer_attribution?: string | undefined;
423
423
  }>;
424
+ export declare const LinearAuthConfigSchema: z.ZodObject<{
425
+ mode: z.ZodDefault<z.ZodEnum<["api_key", "client_credentials"]>>;
426
+ api_key_env: z.ZodDefault<z.ZodString>;
427
+ client_id_env: z.ZodDefault<z.ZodString>;
428
+ client_secret_env: z.ZodDefault<z.ZodString>;
429
+ scopes: z.ZodDefault<z.ZodString>;
430
+ }, "strip", z.ZodTypeAny, {
431
+ mode: "api_key" | "client_credentials";
432
+ api_key_env: string;
433
+ client_id_env: string;
434
+ client_secret_env: string;
435
+ scopes: string;
436
+ }, {
437
+ mode?: "api_key" | "client_credentials" | undefined;
438
+ api_key_env?: string | undefined;
439
+ client_id_env?: string | undefined;
440
+ client_secret_env?: string | undefined;
441
+ scopes?: string | undefined;
442
+ }>;
443
+ export declare const LinearIdentityConfigSchema: z.ZodObject<{
444
+ actor: z.ZodDefault<z.ZodString>;
445
+ signature: z.ZodDefault<z.ZodString>;
446
+ per_step_actor: z.ZodDefault<z.ZodBoolean>;
447
+ }, "strip", z.ZodTypeAny, {
448
+ actor: string;
449
+ signature: string;
450
+ per_step_actor: boolean;
451
+ }, {
452
+ actor?: string | undefined;
453
+ signature?: string | undefined;
454
+ per_step_actor?: boolean | undefined;
455
+ }>;
456
+ export declare const LinearVerdictFilterSchema: z.ZodEnum<["APPROVE", "NEEDS_WORK", "BLOCK", "UNKNOWN"]>;
457
+ export type LinearVerdictFilter = z.infer<typeof LinearVerdictFilterSchema>;
458
+ export declare const LinearConfigSchema: z.ZodObject<{
459
+ enabled: z.ZodDefault<z.ZodBoolean>;
460
+ auth: z.ZodDefault<z.ZodObject<{
461
+ mode: z.ZodDefault<z.ZodEnum<["api_key", "client_credentials"]>>;
462
+ api_key_env: z.ZodDefault<z.ZodString>;
463
+ client_id_env: z.ZodDefault<z.ZodString>;
464
+ client_secret_env: z.ZodDefault<z.ZodString>;
465
+ scopes: z.ZodDefault<z.ZodString>;
466
+ }, "strip", z.ZodTypeAny, {
467
+ mode: "api_key" | "client_credentials";
468
+ api_key_env: string;
469
+ client_id_env: string;
470
+ client_secret_env: string;
471
+ scopes: string;
472
+ }, {
473
+ mode?: "api_key" | "client_credentials" | undefined;
474
+ api_key_env?: string | undefined;
475
+ client_id_env?: string | undefined;
476
+ client_secret_env?: string | undefined;
477
+ scopes?: string | undefined;
478
+ }>>;
479
+ identity: z.ZodDefault<z.ZodObject<{
480
+ actor: z.ZodDefault<z.ZodString>;
481
+ signature: z.ZodDefault<z.ZodString>;
482
+ per_step_actor: z.ZodDefault<z.ZodBoolean>;
483
+ }, "strip", z.ZodTypeAny, {
484
+ actor: string;
485
+ signature: string;
486
+ per_step_actor: boolean;
487
+ }, {
488
+ actor?: string | undefined;
489
+ signature?: string | undefined;
490
+ per_step_actor?: boolean | undefined;
491
+ }>>;
492
+ comment_on: z.ZodDefault<z.ZodArray<z.ZodEnum<["APPROVE", "NEEDS_WORK", "BLOCK", "UNKNOWN"]>, "many">>;
493
+ team_keys: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
494
+ }, "strip", z.ZodTypeAny, {
495
+ enabled: boolean;
496
+ auth: {
497
+ mode: "api_key" | "client_credentials";
498
+ api_key_env: string;
499
+ client_id_env: string;
500
+ client_secret_env: string;
501
+ scopes: string;
502
+ };
503
+ team_keys: string[];
504
+ identity: {
505
+ actor: string;
506
+ signature: string;
507
+ per_step_actor: boolean;
508
+ };
509
+ comment_on: ("APPROVE" | "NEEDS_WORK" | "BLOCK" | "UNKNOWN")[];
510
+ }, {
511
+ enabled?: boolean | undefined;
512
+ auth?: {
513
+ mode?: "api_key" | "client_credentials" | undefined;
514
+ api_key_env?: string | undefined;
515
+ client_id_env?: string | undefined;
516
+ client_secret_env?: string | undefined;
517
+ scopes?: string | undefined;
518
+ } | undefined;
519
+ team_keys?: string[] | undefined;
520
+ identity?: {
521
+ actor?: string | undefined;
522
+ signature?: string | undefined;
523
+ per_step_actor?: boolean | undefined;
524
+ } | undefined;
525
+ comment_on?: ("APPROVE" | "NEEDS_WORK" | "BLOCK" | "UNKNOWN")[] | undefined;
526
+ }>;
424
527
  export declare const ConfigSchema: z.ZodObject<{
425
528
  deployment: z.ZodOptional<z.ZodEnum<["personal", "team"]>>;
426
529
  mode: z.ZodDefault<z.ZodEnum<["single-vendor", "cross-vendor"]>>;
@@ -811,6 +914,75 @@ export declare const ConfigSchema: z.ZodObject<{
811
914
  comment_footer?: string | undefined;
812
915
  reviewer_attribution?: string | undefined;
813
916
  }>>;
917
+ linear: z.ZodDefault<z.ZodObject<{
918
+ enabled: z.ZodDefault<z.ZodBoolean>;
919
+ auth: z.ZodDefault<z.ZodObject<{
920
+ mode: z.ZodDefault<z.ZodEnum<["api_key", "client_credentials"]>>;
921
+ api_key_env: z.ZodDefault<z.ZodString>;
922
+ client_id_env: z.ZodDefault<z.ZodString>;
923
+ client_secret_env: z.ZodDefault<z.ZodString>;
924
+ scopes: z.ZodDefault<z.ZodString>;
925
+ }, "strip", z.ZodTypeAny, {
926
+ mode: "api_key" | "client_credentials";
927
+ api_key_env: string;
928
+ client_id_env: string;
929
+ client_secret_env: string;
930
+ scopes: string;
931
+ }, {
932
+ mode?: "api_key" | "client_credentials" | undefined;
933
+ api_key_env?: string | undefined;
934
+ client_id_env?: string | undefined;
935
+ client_secret_env?: string | undefined;
936
+ scopes?: string | undefined;
937
+ }>>;
938
+ identity: z.ZodDefault<z.ZodObject<{
939
+ actor: z.ZodDefault<z.ZodString>;
940
+ signature: z.ZodDefault<z.ZodString>;
941
+ per_step_actor: z.ZodDefault<z.ZodBoolean>;
942
+ }, "strip", z.ZodTypeAny, {
943
+ actor: string;
944
+ signature: string;
945
+ per_step_actor: boolean;
946
+ }, {
947
+ actor?: string | undefined;
948
+ signature?: string | undefined;
949
+ per_step_actor?: boolean | undefined;
950
+ }>>;
951
+ comment_on: z.ZodDefault<z.ZodArray<z.ZodEnum<["APPROVE", "NEEDS_WORK", "BLOCK", "UNKNOWN"]>, "many">>;
952
+ team_keys: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
953
+ }, "strip", z.ZodTypeAny, {
954
+ enabled: boolean;
955
+ auth: {
956
+ mode: "api_key" | "client_credentials";
957
+ api_key_env: string;
958
+ client_id_env: string;
959
+ client_secret_env: string;
960
+ scopes: string;
961
+ };
962
+ team_keys: string[];
963
+ identity: {
964
+ actor: string;
965
+ signature: string;
966
+ per_step_actor: boolean;
967
+ };
968
+ comment_on: ("APPROVE" | "NEEDS_WORK" | "BLOCK" | "UNKNOWN")[];
969
+ }, {
970
+ enabled?: boolean | undefined;
971
+ auth?: {
972
+ mode?: "api_key" | "client_credentials" | undefined;
973
+ api_key_env?: string | undefined;
974
+ client_id_env?: string | undefined;
975
+ client_secret_env?: string | undefined;
976
+ scopes?: string | undefined;
977
+ } | undefined;
978
+ team_keys?: string[] | undefined;
979
+ identity?: {
980
+ actor?: string | undefined;
981
+ signature?: string | undefined;
982
+ per_step_actor?: boolean | undefined;
983
+ } | undefined;
984
+ comment_on?: ("APPROVE" | "NEEDS_WORK" | "BLOCK" | "UNKNOWN")[] | undefined;
985
+ }>>;
814
986
  }, "strip", z.ZodTypeAny, {
815
987
  quality: {
816
988
  tier: "fast" | "balanced" | "thorough";
@@ -819,6 +991,23 @@ export declare const ConfigSchema: z.ZodObject<{
819
991
  custom_prompt?: string | undefined;
820
992
  };
821
993
  mode: "single-vendor" | "cross-vendor";
994
+ linear: {
995
+ enabled: boolean;
996
+ auth: {
997
+ mode: "api_key" | "client_credentials";
998
+ api_key_env: string;
999
+ client_id_env: string;
1000
+ client_secret_env: string;
1001
+ scopes: string;
1002
+ };
1003
+ team_keys: string[];
1004
+ identity: {
1005
+ actor: string;
1006
+ signature: string;
1007
+ per_step_actor: boolean;
1008
+ };
1009
+ comment_on: ("APPROVE" | "NEEDS_WORK" | "BLOCK" | "UNKNOWN")[];
1010
+ };
822
1011
  clone_protocol: "ssh" | "https";
823
1012
  vendors: {
824
1013
  claude: {
@@ -932,6 +1121,23 @@ export declare const ConfigSchema: z.ZodObject<{
932
1121
  custom_prompt?: string | undefined;
933
1122
  } | undefined;
934
1123
  mode?: "single-vendor" | "cross-vendor" | undefined;
1124
+ linear?: {
1125
+ enabled?: boolean | undefined;
1126
+ auth?: {
1127
+ mode?: "api_key" | "client_credentials" | undefined;
1128
+ api_key_env?: string | undefined;
1129
+ client_id_env?: string | undefined;
1130
+ client_secret_env?: string | undefined;
1131
+ scopes?: string | undefined;
1132
+ } | undefined;
1133
+ team_keys?: string[] | undefined;
1134
+ identity?: {
1135
+ actor?: string | undefined;
1136
+ signature?: string | undefined;
1137
+ per_step_actor?: boolean | undefined;
1138
+ } | undefined;
1139
+ comment_on?: ("APPROVE" | "NEEDS_WORK" | "BLOCK" | "UNKNOWN")[] | undefined;
1140
+ } | undefined;
935
1141
  deployment?: "personal" | "team" | undefined;
936
1142
  clone_protocol?: "ssh" | "https" | undefined;
937
1143
  vendors?: {
@@ -1053,4 +1259,6 @@ export type DisplayTheme = z.infer<typeof DisplayThemeSchema>;
1053
1259
  export type BacktraceConfig = z.infer<typeof BacktraceConfigSchema>;
1054
1260
  export type IssueEnrichmentConfig = z.infer<typeof IssueEnrichmentConfigSchema>;
1055
1261
  export type WatchConfig = z.infer<typeof WatchConfigSchema>;
1262
+ export type LinearConfig = z.infer<typeof LinearConfigSchema>;
1263
+ export type LinearAuthConfig = z.infer<typeof LinearAuthConfigSchema>;
1056
1264
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAIF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;EAS9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAA;AAEF,eAAO,MAAM,sBAAsB,yCAAuC,CAAA;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAQrE,eAAO,MAAM,wBAAwB,EAAE,SAAS,gBAAgB,EAAiC,CAAA;AAEjG,eAAO,MAAM,uBAAuB,+IAgBlC,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;EAM3B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAiC9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAA;AAmBF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAK3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAM7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAetC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;;EAIhC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;EAK/B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAOnC,CAAA;AAKF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAA;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAajC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EASrC,CAAA;AAEF,eAAO,MAAM,yBAAyB,0DAAwD,CAAA;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU7B,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BvB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;AACjD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACnE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAC/E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
@@ -209,6 +209,44 @@ export const BrandConfigSchema = z.object({
209
209
  comment_footer: z.string().default(''),
210
210
  reviewer_attribution: z.string().default(''),
211
211
  });
212
+ // Tiered Linear identity — see src/linear/identity.ts for the tier semantics.
213
+ // Disabled by default, so existing configs are unaffected.
214
+ export const LinearAuthConfigSchema = z.object({
215
+ // api_key — T0: personal/workspace key + signature line.
216
+ // client_credentials — T1: OAuth app token minted per run + createAsUser (botActor).
217
+ mode: z.enum(['api_key', 'client_credentials']).default('api_key'),
218
+ // Env var NAMES, never the secrets themselves. Values are read in config/loader.ts.
219
+ api_key_env: z.string().default('LINEAR_API_KEY'),
220
+ client_id_env: z.string().default('LINEAR_CLIENT_ID'),
221
+ client_secret_env: z.string().default('LINEAR_CLIENT_SECRET'),
222
+ // Linear documents the token request as taking a COMMA-separated list. Space
223
+ // separated input is normalised on the wire, so both forms work.
224
+ // NOTE: `read,write` does NOT cover initiatives — initiative:read /
225
+ // initiative:write are separate scopes that must be requested explicitly.
226
+ scopes: z.string().default('read,write'),
227
+ });
228
+ export const LinearIdentityConfigSchema = z.object({
229
+ // createAsUser base name in T1; the {actor} placeholder in the signature template.
230
+ actor: z.string().default('crosscheck'),
231
+ signature: z.string().default('🤖 {actor} · {product}'),
232
+ // Suffix the actor with the workflow step that produced the write, so a review,
233
+ // a recheck and a fix are distinguishable rather than all reading as one bot:
234
+ // crosscheck/review, crosscheck/fix, crosscheck/recheck
235
+ // Set false for a single flat actor name.
236
+ per_step_actor: z.boolean().default(true),
237
+ });
238
+ export const LinearVerdictFilterSchema = z.enum(['APPROVE', 'NEEDS_WORK', 'BLOCK', 'UNKNOWN']);
239
+ export const LinearConfigSchema = z.object({
240
+ enabled: z.boolean().default(false),
241
+ auth: LinearAuthConfigSchema.default({}),
242
+ identity: LinearIdentityConfigSchema.default({}),
243
+ // Which verdicts get mirrored to the linked Linear issue.
244
+ comment_on: z.array(LinearVerdictFilterSchema).default(['APPROVE', 'NEEDS_WORK', 'BLOCK']),
245
+ // Team key prefixes (e.g. ['IN']) that may be matched as bare identifiers in a
246
+ // branch/title/body. Leave empty to only follow explicit linear.app issue URLs —
247
+ // see src/linear/ref.ts for why bare matching is opt-in.
248
+ team_keys: z.array(z.string()).default([]),
249
+ });
212
250
  export const ConfigSchema = z.object({
213
251
  // Absent = not yet configured; watch/serve will prompt on first run.
214
252
  deployment: z.enum(['personal', 'team']).optional(),
@@ -239,5 +277,6 @@ export const ConfigSchema = z.object({
239
277
  post_review: PostReviewConfigSchema.default({}),
240
278
  display: DisplayConfigSchema.default({}),
241
279
  brand: BrandConfigSchema.default({}),
280
+ linear: LinearConfigSchema.default({}),
242
281
  });
243
282
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACjE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClE,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,oEAAoE;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAClE,CAAC,CAAA;AAEF,oEAAoE;AACpE,kFAAkF;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IAC/D,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC5D,gFAAgF;IAChF,sFAAsF;IACtF,wFAAwF;IACxF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAClE,qFAAqF;IACrF,yEAAyE;IACzE,6EAA6E;IAC7E,8DAA8D;IAC9D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;CACxC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;AAG1E,iFAAiF;AACjF,6CAA6C;AAC7C,uEAAuE;AACvE,yEAAyE;AACzE,2BAA2B;AAC3B,+EAA+E;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAgC,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AAEjG,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACvG,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IACxD,CAAC,CAAA;IACD,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,4CAA4C,CAAC,CAAA;QAClD,OAAM;IACR,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC,yCAAyC,CAAC,CAAA;QAC/C,OAAM;IACR,CAAC;IACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/E,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,oEAAoE,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,+EAA+E;IAC/E,+EAA+E;IAC/E,+EAA+E;CAChF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;QAClD,kCAAkC,EAAG,6BAA6B;QAClE,wBAAwB,EAAa,sCAAsC;KAC5E,CAAC;IACF,uBAAuB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;QACnD,mCAAmC,EAAE,6BAA6B;QAClE,uBAAuB,EAAc,gCAAgC;KACtE,CAAC;IACF,6EAA6E;IAC7E,6EAA6E;IAC7E,gDAAgD;IAChD,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IAChE,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9D,iDAAiD;IACjD,iFAAiF;IACjF,uFAAuF;IACvF,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,sEAAsE;IACtE,qCAAqC;IACrC,mFAAmF;IACnF,4EAA4E;IAC5E,EAAE;IACF,kFAAkF;IAClF,qFAAqF;IACrF,iFAAiF;IACjF,sDAAsD;IACtD,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,qFAAqF;IACrF,8BAA8B;IAC9B,kFAAkF;IAClF,mEAAmE;IACnE,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;CAClF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;CAC7C,CAAC,CAAA;AAEF,qFAAqF;AACrF,iFAAiF;AACjF,EAAE;AACF,iFAAiF;AACjF,qFAAqF;AACrF,mFAAmF;AACnF,uDAAuD;AACvD,EAAE;AACF,yDAAyD;AACzD,yEAAyE;AACzE,EAAE;AACF,mFAAmF;AACnF,yCAAyC;AACzC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5D,0DAA0D;IAC1D,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,wFAAwF;IACxF,qFAAqF;IACrF,8EAA8E;IAC9E,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAC/C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CAChD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,6DAA6D;IAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,2EAA2E;IAC3E,4EAA4E;IAC5E,2EAA2E;IAC3E,qCAAqC;IACrC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,sBAAsB;IACtB,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,+DAA+D;IAC/D,4FAA4F;IAC5F,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,kFAAkF;IAClF,wFAAwF;IACxF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACjD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,4FAA4F;IAC5F,mEAAmE;IACnE,gFAAgF;IAChF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC3E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;CACxC,CAAC,CAAA;AAEF,+EAA+E;AAC/E,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,wFAAwF;IACxF,+EAA+E;IAC/E,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;IAC9C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,qEAAqE;IACrE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACvE,6CAA6C;IAC7C,8DAA8D;IAC9D,yFAAyF;IACzF,gFAAgF;IAChF,oEAAoE;IACpE,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACvD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,KAAK,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;KACvC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACd,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,SAAS,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,gBAAgB,EAAE,2BAA2B,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,WAAW,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;CACrC,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-ref.d.ts","sourceRoot":"","sources":["../../src/issues/ticket-ref.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IAExB,GAAG,EAAE,MAAM,CAAA;IAEX,MAAM,EAAE,MAAM,CAAA;IAEd,EAAE,EAAE,MAAM,CAAA;CACX;AAOD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAK1D;AAMD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAChF,QAAQ,GAAE,MAAM,EAAO,GACtB,SAAS,EAAE,CAgBb"}
1
+ {"version":3,"file":"ticket-ref.d.ts","sourceRoot":"","sources":["../../src/issues/ticket-ref.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IAExB,GAAG,EAAE,MAAM,CAAA;IAEX,MAAM,EAAE,MAAM,CAAA;IAEd,EAAE,EAAE,MAAM,CAAA;CACX;AAQD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAK1D;AAMD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAChF,QAAQ,GAAE,MAAM,EAAO,GACtB,SAAS,EAAE,CAgBb"}
@@ -1,12 +1,13 @@
1
1
  // Pure ticket-reference extraction. crosscheck otherwise infers a PR's intent
2
2
  // from the diff; these helpers recover the tracker ID (e.g. IN-2017) from the
3
3
  // PR title / branch / body so the review can be anchored to the stated goal.
4
- // A tracker identifier: 2+ leading letters, then digits — the shape Linear and
5
- // Jira both use. Matched case-insensitively; the source is upper-cased first so
6
- // a branch like `claude/in-2017-slug` still yields `IN-2017`.
7
- const TICKET_PATTERN = /\b([A-Z][A-Z0-9]{1,9})-(\d+)\b/g;
4
+ // A tracker identifier: 1-10 key characters, then digits. Linear permits
5
+ // one-character team keys (X-42), so requiring two silently skipped those
6
+ // workspaces entirely. Matched case-insensitively; the source is upper-cased
7
+ // first so a branch like `claude/in-2017-slug` still yields `IN-2017`.
8
+ const TICKET_PATTERN = /\b([A-Z][A-Z0-9]{0,9})-(\d+)\b/g;
8
9
  export function parseTicketId(id) {
9
- const m = /^([A-Za-z][A-Za-z0-9]{1,9})-(\d+)$/.exec(id.trim());
10
+ const m = /^([A-Za-z][A-Za-z0-9]{0,9})-(\d+)$/.exec(id.trim());
10
11
  if (!m)
11
12
  return null;
12
13
  const key = m[1].toUpperCase();
@@ -1 +1 @@
1
- {"version":3,"file":"ticket-ref.js","sourceRoot":"","sources":["../../src/issues/ticket-ref.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAW7E,+EAA+E;AAC/E,gFAAgF;AAChF,8DAA8D;AAC9D,MAAM,cAAc,GAAG,iCAAiC,CAAA;AAExD,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,CAAC,GAAG,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC5D,CAAC;AAED,6EAA6E;AAC7E,2EAA2E;AAC3E,gFAAgF;AAChF,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAC/B,OAAgF,EAChF,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACnD,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"ticket-ref.js","sourceRoot":"","sources":["../../src/issues/ticket-ref.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAW7E,yEAAyE;AACzE,0EAA0E;AAC1E,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,cAAc,GAAG,iCAAiC,CAAA;AAExD,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,CAAC,GAAG,oCAAoC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AAC5D,CAAC;AAED,6EAA6E;AAC7E,2EAA2E;AAC3E,gFAAgF;AAChF,qDAAqD;AACrD,MAAM,UAAU,iBAAiB,CAC/B,OAAgF,EAChF,WAAqB,EAAE;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,GAAG;YAAE,SAAQ;QAClB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAChB,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACnD,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACnC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -2,6 +2,7 @@ import type { Config } from '../config/schema.js';
2
2
  import type { PREvent } from '../github/webhook.js';
3
3
  import type { PROrigin } from '../github/detector.js';
4
4
  import type { Vendor } from '../lib/vendor.js';
5
+ import { type ResolvedLinearAuth } from '../linear/identity.js';
5
6
  import { type StepResult } from '../lib/workflow.js';
6
7
  import type { PRPhase } from '../lib/board.js';
7
8
  export declare function isRetryableFixError(err: unknown): boolean;
@@ -57,6 +58,7 @@ export interface WorkflowContext {
57
58
  isRecheckRun?: boolean;
58
59
  round?: number;
59
60
  dryRun?: boolean;
61
+ linearAuth?: ResolvedLinearAuth | null;
60
62
  steps?: import('./workflow.js').WorkflowStep[];
61
63
  smartSwitchFallback?: 'claude' | 'codex';
62
64
  pushedShas?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/lib/runner.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,17 @@ import { runFixStep, runCodexFixStep } from '../reviewers/fix.js';
9
9
  import { runConflictResolveStep, findConflictedFiles } from '../reviewers/conflict-resolve.js';
10
10
  import { parseVerdict, prependVerdictToComment, NULL_VERDICT_WARNING, applySeverityGate, SEVERITY_GATE_NOTE } from '../lib/verdict.js';
11
11
  import { createGithubClient, postReviewComment, getLastCrossCheckCommentId, getLastCrossCheckReviewComment } from '../github/client.js';
12
+ import { resolveLinearAuth, withWorker } from '../linear/identity.js';
13
+ import { notifyLinear } from '../linear/notify.js';
14
+ import { shouldPostToLinear } from '../linear/comment.js';
15
+ import { getLinearCredentials } from '../config/loader.js';
12
16
  import { acquireRemoteLock, releaseRemoteLock } from '../github/review-status.js';
13
17
  import { log as fileLog, logError, classifyError } from '../lib/logger.js';
14
18
  import { buildCommitTrailers } from '../lib/annotation.js';
15
19
  import { resolveClaudeModel, resolveCodexModel } from '../lib/review-models.js';
16
20
  import { buildStepIdentityFields } from '../lib/event-fields.js';
17
21
  import { buildFixAppliedCommentBody, buildConflictResolvedCommentBody, buildRetriedReviewBanner } from '../lib/comment-bodies.js';
18
- import { loadWorkflow, loadHarnessSection, evaluateWhen } from '../lib/workflow.js';
22
+ import { linearWritePossible, loadWorkflow, loadHarnessSection, evaluateWhen } from '../lib/workflow.js';
19
23
  import { isSubscriptionLimitError, isVendorUnavailableError } from '../lib/smart-switch.js';
20
24
  import { tierTimeoutMs } from '../reviewers/tier-timeouts.js';
21
25
  const MAX_CROSSCHECK_COMMITS = 5;
@@ -356,6 +360,17 @@ export async function runWorkflow(ctx) {
356
360
  // can iterate the same list and release these shas if SIGINT/SIGTERM fires
357
361
  // mid-workflow (process.exit there bypasses our finally below).
358
362
  const pushedShasNeedingRelease = ctx.pushedShas ?? [];
363
+ // Linear write-back identity. Resolved up front — before any expensive step —
364
+ // and allowed to throw. The contract is that a configured-but-failing
365
+ // client_credentials mint ABORTS rather than degrading, because silently
366
+ // continuing would either drop the write or re-attribute it to a human. This
367
+ // matches commands/review.ts; the two paths must not disagree.
368
+ // The contract is one token per command run. runWorkflow is re-entered for every
369
+ // fix/recheck round under --crazy and max_rounds, so minting here would mint per
370
+ // round and let a late transient failure abort work already done. The caller
371
+ // resolves once and passes it in; resolving here is the single-round fallback.
372
+ // A dry run posts nothing, so it never mints.
373
+ let linearAuth = ctx.linearAuth ?? null;
359
374
  let workflowFailed = false;
360
375
  let workflowError = undefined;
361
376
  let failedStep = undefined;
@@ -386,6 +401,16 @@ export async function runWorkflow(ctx) {
386
401
  let currentStepName;
387
402
  emitPRComplexity(ctx, triggerField);
388
403
  try {
404
+ // Inside the try so a preflight failure still reaches the completion handler in
405
+ // the finally — resolving above it meant a failed mint skipped workflow_complete
406
+ // entirely and left no record of the run.
407
+ // canWriteVerdict here too: the caller passes null deliberately when the selected
408
+ // steps cannot write a verdict, and this fallback previously read that as
409
+ // "unresolved" and resolved anyway — defeating the gate one line upstream.
410
+ if (!ctx.dryRun && !linearAuth && linearWritePossible(config.linear, steps)) {
411
+ linearAuth = await resolveLinearAuth(config.linear, getLinearCredentials(config.linear.auth));
412
+ fileLog({ level: 'info', event: 'linear_auth_resolved', repo: `${owner}/${repoName}`, pr: prNumber, mode: linearAuth.mode, actor: linearAuth.actor });
413
+ }
389
414
  for (const step of steps) {
390
415
  currentStepName = step.name;
391
416
  stepsRun.push(step.name);
@@ -582,6 +607,38 @@ export async function runWorkflow(ctx) {
582
607
  const commentId = await postReviewComment(octokit, owner, repoName, prNumber, commentBody, reviewer, config.brand, origin, verdict ?? undefined, priorReviewId, isRecheck, model, effectiveType, ctx.round ?? 1, annotationSha, nextStepAnnotation, ctx.trigger === 'kickass' ? 'kickass' : undefined);
583
608
  const commentUrl = `github.com/${owner}/${repoName}/pull/${prNumber}`;
584
609
  fileLog({ level: 'info', event: 'comment_posted', repo: `${owner}/${repoName}`, pr: prNumber, url: `https://${commentUrl}` });
610
+ // Mirror the verdict onto the PR's Linear issue. `run` and `watch` both
611
+ // land here, so this is the path that matters — reviews posted from
612
+ // commands/review.ts are the exception, not the rule.
613
+ if (linearAuth && shouldPostToLinear(verdict ?? null, config.linear.comment_on)) {
614
+ {
615
+ // Attribute to crosscheck/review, /fix, /recheck rather than a flat actor.
616
+ const stepAuth = config.linear.identity.per_step_actor ? withWorker(linearAuth, effectiveType) : linearAuth;
617
+ const linearResult = await notifyLinear({
618
+ auth: stepAuth,
619
+ config: config.linear,
620
+ pr: { branch: pr.head.ref, title: pr.title, body: pr.body ?? '', url: `https://${commentUrl}`, sha: annotationSha },
621
+ verdict: verdict ?? null,
622
+ reviewer,
623
+ origin,
624
+ model,
625
+ stepType: effectiveType,
626
+ round: ctx.round ?? 1,
627
+ service: config.brand.service_name,
628
+ });
629
+ fileLog({
630
+ level: linearResult.status === 'failed' ? 'warn' : 'info',
631
+ event: 'linear_comment', repo: `${owner}/${repoName}`, pr: prNumber,
632
+ status: linearResult.status, reason: linearResult.reason, issue: linearResult.identifier,
633
+ });
634
+ if (linearResult.status === 'posted') {
635
+ log(chalk.dim(` linear: commented on ${linearResult.identifier}`));
636
+ }
637
+ else if (linearResult.status === 'failed') {
638
+ log(chalk.yellow(` linear: write failed — ${linearResult.reason}`));
639
+ }
640
+ }
641
+ }
585
642
  results[step.name] = { verdict, commentBody, commentUrl, commentId, tokens_used: tokensUsed, input_tokens: inputTokens, output_tokens: outputTokens, vendor: reviewer, model };
586
643
  }
587
644
  }