@superblocksteam/shared 0.9586.6 → 0.9589.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.
Files changed (200) hide show
  1. package/dist/database-lifecycle/index.d.ts +115 -0
  2. package/dist/database-lifecycle/index.d.ts.map +1 -0
  3. package/dist/database-lifecycle/index.js +143 -0
  4. package/dist/database-lifecycle/index.js.map +1 -0
  5. package/dist/database-lifecycle/index.test.d.ts +2 -0
  6. package/dist/database-lifecycle/index.test.d.ts.map +1 -0
  7. package/dist/database-lifecycle/index.test.js +110 -0
  8. package/dist/database-lifecycle/index.test.js.map +1 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/plugins/index.d.ts.map +1 -1
  14. package/dist/plugins/index.js +4 -0
  15. package/dist/plugins/index.js.map +1 -1
  16. package/dist/plugins/templates/dropbox.d.ts.map +1 -1
  17. package/dist/plugins/templates/dropbox.js +5 -1
  18. package/dist/plugins/templates/dropbox.js.map +1 -1
  19. package/dist/plugins/templates/shared/auth.d.ts +2 -0
  20. package/dist/plugins/templates/shared/auth.d.ts.map +1 -1
  21. package/dist/plugins/templates/shared/auth.js +1 -0
  22. package/dist/plugins/templates/shared/auth.js.map +1 -1
  23. package/dist/types/ai/index.d.ts +1 -0
  24. package/dist/types/ai/index.d.ts.map +1 -1
  25. package/dist/types/ai/index.js +1 -0
  26. package/dist/types/ai/index.js.map +1 -1
  27. package/dist/types/ai/provider-credential.d.ts +53 -0
  28. package/dist/types/ai/provider-credential.d.ts.map +1 -0
  29. package/dist/types/ai/provider-credential.js +10 -0
  30. package/dist/types/ai/provider-credential.js.map +1 -0
  31. package/dist/types/audit/ocsf.d.ts.map +1 -1
  32. package/dist/types/audit/ocsf.js +8 -2
  33. package/dist/types/audit/ocsf.js.map +1 -1
  34. package/dist/types/commit/index.d.ts +1 -0
  35. package/dist/types/commit/index.d.ts.map +1 -1
  36. package/dist/types/commit/index.js.map +1 -1
  37. package/dist/types/common/env.d.ts +25 -0
  38. package/dist/types/common/env.d.ts.map +1 -1
  39. package/dist/types/common/env.js +29 -1
  40. package/dist/types/common/env.js.map +1 -1
  41. package/dist/types/common/env.test.d.ts +2 -0
  42. package/dist/types/common/env.test.d.ts.map +1 -0
  43. package/dist/types/common/env.test.js +24 -0
  44. package/dist/types/common/env.test.js.map +1 -0
  45. package/dist/types/common/response.d.ts +2 -2
  46. package/dist/types/common/response.d.ts.map +1 -1
  47. package/dist/types/common/response.js.map +1 -1
  48. package/dist/types/credentials/index.d.ts +7 -7
  49. package/dist/types/credentials/index.d.ts.map +1 -1
  50. package/dist/types/index.d.ts +2 -0
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/dist/types/index.js +2 -0
  53. package/dist/types/index.js.map +1 -1
  54. package/dist/types/integration/index.d.ts +5 -2
  55. package/dist/types/integration/index.d.ts.map +1 -1
  56. package/dist/types/integration/index.js +5 -2
  57. package/dist/types/integration/index.js.map +1 -1
  58. package/dist/types/organization/agent.js +10 -40
  59. package/dist/types/organization/agent.js.map +1 -1
  60. package/dist/types/plugin/form.d.ts +1 -0
  61. package/dist/types/plugin/form.d.ts.map +1 -1
  62. package/dist/types/policyGate/index.d.ts +32 -0
  63. package/dist/types/policyGate/index.d.ts.map +1 -0
  64. package/dist/types/policyGate/index.js +3 -0
  65. package/dist/types/policyGate/index.js.map +1 -0
  66. package/dist/types/rbac/index.d.ts +8 -0
  67. package/dist/types/rbac/index.d.ts.map +1 -1
  68. package/dist/types/rbac/index.js +5 -0
  69. package/dist/types/rbac/index.js.map +1 -1
  70. package/dist/types/response/GetPolicyGateReadinessResponseBody.d.ts +3 -0
  71. package/dist/types/response/GetPolicyGateReadinessResponseBody.d.ts.map +1 -0
  72. package/dist/types/response/GetPolicyGateReadinessResponseBody.js +3 -0
  73. package/dist/types/response/GetPolicyGateReadinessResponseBody.js.map +1 -0
  74. package/dist/types/response/index.d.ts +1 -0
  75. package/dist/types/response/index.d.ts.map +1 -1
  76. package/dist/types/response/index.js +1 -0
  77. package/dist/types/response/index.js.map +1 -1
  78. package/dist/types/reviewPolicy/index.d.ts +105 -0
  79. package/dist/types/reviewPolicy/index.d.ts.map +1 -0
  80. package/dist/types/reviewPolicy/index.js +47 -0
  81. package/dist/types/reviewPolicy/index.js.map +1 -0
  82. package/dist/utils/git-url.d.ts +0 -1
  83. package/dist/utils/git-url.d.ts.map +1 -1
  84. package/dist/utils/git-url.js +1 -2
  85. package/dist/utils/git-url.js.map +1 -1
  86. package/dist/utils/git-url.test.js +0 -5
  87. package/dist/utils/git-url.test.js.map +1 -1
  88. package/dist-esm/database-lifecycle/index.d.ts +115 -0
  89. package/dist-esm/database-lifecycle/index.d.ts.map +1 -0
  90. package/dist-esm/database-lifecycle/index.js +131 -0
  91. package/dist-esm/database-lifecycle/index.js.map +1 -0
  92. package/dist-esm/database-lifecycle/index.test.d.ts +2 -0
  93. package/dist-esm/database-lifecycle/index.test.d.ts.map +1 -0
  94. package/dist-esm/database-lifecycle/index.test.js +108 -0
  95. package/dist-esm/database-lifecycle/index.test.js.map +1 -0
  96. package/dist-esm/index.d.ts +1 -0
  97. package/dist-esm/index.d.ts.map +1 -1
  98. package/dist-esm/index.js +1 -0
  99. package/dist-esm/index.js.map +1 -1
  100. package/dist-esm/plugins/index.d.ts.map +1 -1
  101. package/dist-esm/plugins/index.js +4 -0
  102. package/dist-esm/plugins/index.js.map +1 -1
  103. package/dist-esm/plugins/templates/dropbox.d.ts.map +1 -1
  104. package/dist-esm/plugins/templates/dropbox.js +5 -1
  105. package/dist-esm/plugins/templates/dropbox.js.map +1 -1
  106. package/dist-esm/plugins/templates/shared/auth.d.ts +2 -0
  107. package/dist-esm/plugins/templates/shared/auth.d.ts.map +1 -1
  108. package/dist-esm/plugins/templates/shared/auth.js +1 -0
  109. package/dist-esm/plugins/templates/shared/auth.js.map +1 -1
  110. package/dist-esm/types/ai/index.d.ts +1 -0
  111. package/dist-esm/types/ai/index.d.ts.map +1 -1
  112. package/dist-esm/types/ai/index.js +1 -0
  113. package/dist-esm/types/ai/index.js.map +1 -1
  114. package/dist-esm/types/ai/provider-credential.d.ts +53 -0
  115. package/dist-esm/types/ai/provider-credential.d.ts.map +1 -0
  116. package/dist-esm/types/ai/provider-credential.js +7 -0
  117. package/dist-esm/types/ai/provider-credential.js.map +1 -0
  118. package/dist-esm/types/audit/ocsf.d.ts.map +1 -1
  119. package/dist-esm/types/audit/ocsf.js +8 -2
  120. package/dist-esm/types/audit/ocsf.js.map +1 -1
  121. package/dist-esm/types/commit/index.d.ts +1 -0
  122. package/dist-esm/types/commit/index.d.ts.map +1 -1
  123. package/dist-esm/types/commit/index.js.map +1 -1
  124. package/dist-esm/types/common/env.d.ts +25 -0
  125. package/dist-esm/types/common/env.d.ts.map +1 -1
  126. package/dist-esm/types/common/env.js +27 -0
  127. package/dist-esm/types/common/env.js.map +1 -1
  128. package/dist-esm/types/common/env.test.d.ts +2 -0
  129. package/dist-esm/types/common/env.test.d.ts.map +1 -0
  130. package/dist-esm/types/common/env.test.js +22 -0
  131. package/dist-esm/types/common/env.test.js.map +1 -0
  132. package/dist-esm/types/common/response.d.ts +2 -2
  133. package/dist-esm/types/common/response.d.ts.map +1 -1
  134. package/dist-esm/types/common/response.js.map +1 -1
  135. package/dist-esm/types/credentials/index.d.ts +7 -7
  136. package/dist-esm/types/credentials/index.d.ts.map +1 -1
  137. package/dist-esm/types/index.d.ts +2 -0
  138. package/dist-esm/types/index.d.ts.map +1 -1
  139. package/dist-esm/types/index.js +2 -0
  140. package/dist-esm/types/index.js.map +1 -1
  141. package/dist-esm/types/integration/index.d.ts +5 -2
  142. package/dist-esm/types/integration/index.d.ts.map +1 -1
  143. package/dist-esm/types/integration/index.js +5 -2
  144. package/dist-esm/types/integration/index.js.map +1 -1
  145. package/dist-esm/types/organization/agent.js +1 -1
  146. package/dist-esm/types/organization/agent.js.map +1 -1
  147. package/dist-esm/types/plugin/form.d.ts +1 -0
  148. package/dist-esm/types/plugin/form.d.ts.map +1 -1
  149. package/dist-esm/types/policyGate/index.d.ts +32 -0
  150. package/dist-esm/types/policyGate/index.d.ts.map +1 -0
  151. package/dist-esm/types/policyGate/index.js +2 -0
  152. package/dist-esm/types/policyGate/index.js.map +1 -0
  153. package/dist-esm/types/rbac/index.d.ts +8 -0
  154. package/dist-esm/types/rbac/index.d.ts.map +1 -1
  155. package/dist-esm/types/rbac/index.js +5 -0
  156. package/dist-esm/types/rbac/index.js.map +1 -1
  157. package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.d.ts +3 -0
  158. package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.d.ts.map +1 -0
  159. package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.js +2 -0
  160. package/dist-esm/types/response/GetPolicyGateReadinessResponseBody.js.map +1 -0
  161. package/dist-esm/types/response/index.d.ts +1 -0
  162. package/dist-esm/types/response/index.d.ts.map +1 -1
  163. package/dist-esm/types/response/index.js +1 -0
  164. package/dist-esm/types/response/index.js.map +1 -1
  165. package/dist-esm/types/reviewPolicy/index.d.ts +105 -0
  166. package/dist-esm/types/reviewPolicy/index.d.ts.map +1 -0
  167. package/dist-esm/types/reviewPolicy/index.js +44 -0
  168. package/dist-esm/types/reviewPolicy/index.js.map +1 -0
  169. package/dist-esm/utils/git-url.d.ts +0 -1
  170. package/dist-esm/utils/git-url.d.ts.map +1 -1
  171. package/dist-esm/utils/git-url.js +0 -1
  172. package/dist-esm/utils/git-url.js.map +1 -1
  173. package/dist-esm/utils/git-url.test.js +1 -6
  174. package/dist-esm/utils/git-url.test.js.map +1 -1
  175. package/package.json +3 -3
  176. package/src/database-lifecycle/index.test.ts +132 -0
  177. package/src/database-lifecycle/index.ts +278 -0
  178. package/src/index.ts +1 -0
  179. package/src/plugins/index.ts +4 -0
  180. package/src/plugins/templates/dropbox.ts +5 -1
  181. package/src/plugins/templates/shared/auth.ts +3 -0
  182. package/src/types/ai/index.ts +1 -0
  183. package/src/types/ai/provider-credential.ts +61 -0
  184. package/src/types/audit/ocsf.ts +8 -2
  185. package/src/types/commit/index.ts +1 -0
  186. package/src/types/common/env.test.ts +27 -0
  187. package/src/types/common/env.ts +28 -0
  188. package/src/types/common/response.ts +2 -2
  189. package/src/types/credentials/index.ts +7 -7
  190. package/src/types/index.ts +2 -0
  191. package/src/types/integration/index.ts +9 -2
  192. package/src/types/organization/agent.ts +1 -1
  193. package/src/types/plugin/form.ts +1 -0
  194. package/src/types/policyGate/index.ts +52 -0
  195. package/src/types/rbac/index.ts +6 -0
  196. package/src/types/response/GetPolicyGateReadinessResponseBody.ts +3 -0
  197. package/src/types/response/index.ts +1 -0
  198. package/src/types/reviewPolicy/index.ts +132 -0
  199. package/src/utils/git-url.test.ts +1 -14
  200. package/src/utils/git-url.ts +0 -2
@@ -0,0 +1,52 @@
1
+ export type PolicyGateReadinessAction =
2
+ | 'contact_admin'
3
+ | 'fix_with_clark'
4
+ | 'request_approval'
5
+ | 'request_suppression'
6
+ | 'rerun_gate'
7
+ | 'view_report'
8
+ | 'wait';
9
+
10
+ export type PolicyGateReadinessFindingSummary = {
11
+ advisory: number;
12
+ approvalRequired: number;
13
+ blocking: number;
14
+ suppressed: number;
15
+ };
16
+
17
+ export type PolicyGateReadinessItem = {
18
+ actions: PolicyGateReadinessAction[];
19
+ findingSummary: PolicyGateReadinessFindingSummary;
20
+ itemId: string;
21
+ itemType: 'security_agent' | 'security_scan';
22
+ mode: 'advisory' | 'approval' | 'blocking' | 'report_only';
23
+ policyId: string;
24
+ policyVersionId: string;
25
+ reviewRunId?: string;
26
+ staleReason?: string;
27
+ status: PolicyGateReadinessItemStatus;
28
+ };
29
+
30
+ export type PolicyGateReadinessItemStatus =
31
+ | 'advisory_findings'
32
+ | 'approval_required'
33
+ | 'blocked'
34
+ | 'failed'
35
+ | 'missing'
36
+ | 'passed'
37
+ | 'running'
38
+ | 'stale';
39
+
40
+ export type PolicyGateReadinessResponse = {
41
+ items: PolicyGateReadinessItem[];
42
+ status: PolicyGateReadinessStatus;
43
+ target: PolicyGateReadinessTarget;
44
+ };
45
+
46
+ export type PolicyGateReadinessStatus = 'allowed' | 'approval_required' | 'blocked' | 'failed' | 'running' | 'stale';
47
+
48
+ export type PolicyGateReadinessTarget = {
49
+ applicationId: string;
50
+ commitId: string;
51
+ directoryContentsHash: string | null;
52
+ };
@@ -124,6 +124,7 @@ export enum AssignmentTypeEnum {
124
124
  }
125
125
 
126
126
  export enum PrincipalTypeEnum {
127
+ APPLICATION = 'application',
127
128
  GROUP = 'group',
128
129
  USER = 'user'
129
130
  // ORGANIZATION = 'organization',
@@ -133,6 +134,7 @@ export enum PrincipalTypeEnum {
133
134
  export enum ResourceTypeEnum {
134
135
  ACCESS_TOKENS = 'access_tokens',
135
136
  AGENTS = 'agents',
137
+ AI_INFERENCE = 'ai.inference',
136
138
  APPLICATIONS = 'apps',
137
139
  APPLICATIONS_APIS = 'apps.apis',
138
140
  APPLICATIONS_PAGES = 'apps.pages',
@@ -190,6 +192,9 @@ export const ActionTypeByResourceType = {
190
192
  READ: ActionTypeEnum.READ,
191
193
  MANAGE: ActionTypeEnum.MANAGE
192
194
  },
195
+ AI_INFERENCE: {
196
+ MANAGE: ActionTypeEnum.MANAGE
197
+ },
193
198
  INTEGRATIONS_DEFAULT_AI: {
194
199
  MANAGE: ActionTypeEnum.MANAGE
195
200
  },
@@ -309,6 +314,7 @@ export type AssignmentDto = {
309
314
  // group and user maps to principalId in the model
310
315
  // that means we will either have group or user in this object
311
316
  group?: GroupBrief;
317
+ principalApplication?: ResourceBrief & { devEnvEnabled: boolean };
312
318
  user?: {
313
319
  id: string;
314
320
  name: string;
@@ -0,0 +1,3 @@
1
+ import { PolicyGateReadinessResponse } from '../policyGate/index.js';
2
+
3
+ export type GetPolicyGateReadinessResponseBody = PolicyGateReadinessResponse;
@@ -28,6 +28,7 @@ export * from './PutApiUpdateResponseBody.js';
28
28
  export * from './GetApplicationDeploymentsResponseBody.js';
29
29
  export * from './GetApiDeploymentsResponseBody.js';
30
30
  export * from './GetPermissionEntitiesResponseBody.js';
31
+ export * from './GetPolicyGateReadinessResponseBody.js';
31
32
  export * from './GetGroupPermissionEntitiesResponseBody.js';
32
33
  export * from './GetAuditLogsEntitiesResponseBody.js';
33
34
  export * from './GetAuditLogsResponseBody.js';
@@ -0,0 +1,132 @@
1
+ export const AI_AGENT_STATUSES = ['active', 'disabled'] as const;
2
+
3
+ export const REVIEW_POLICY_NAME_MAX_LENGTH = 120;
4
+ export const REVIEW_POLICY_PROMPT_MAX_LENGTH = 10000;
5
+
6
+ export const REVIEW_POLICY_TYPES = ['built_in_security_scan', 'security_agent'] as const;
7
+ export const REVIEW_POLICY_SOURCES = ['admin_configured', 'superblocks_managed'] as const;
8
+ export const REVIEW_POLICY_TRIGGERS = ['before_deploy', 'after_checkpoint', 'manual'] as const;
9
+ export const REVIEW_POLICY_EXECUTION_CONTEXTS = [
10
+ 'edit_mode_app',
11
+ 'superblocks_sabs_built_assets',
12
+ 'superblocks_sabs_dependency_metadata',
13
+ 'superblocks_sabs_source_snapshot'
14
+ ] as const;
15
+ export const REVIEW_POLICY_RUNTIMES = ['superblocks_dev_server_agent', 'superblocks_sabs'] as const;
16
+ export const REVIEW_POLICY_MODES = ['advisory', 'blocking'] as const;
17
+ export const REVIEW_POLICY_RUNNER_TYPES = ['built_in_security_scan', 'llm_security_agent'] as const;
18
+ export const REVIEW_FINDING_SOURCE_PHASES = ['built_asset', 'dependency', 'edit_mode_app', 'iac', 'image', 'source'] as const;
19
+ export const REVIEW_FINDING_CATEGORIES = [
20
+ 'external_policy',
21
+ 'misconfiguration',
22
+ 'security_agent',
23
+ 'secret',
24
+ 'sensitive_data',
25
+ 'vulnerability'
26
+ ] as const;
27
+
28
+ // Severity and confidence order is semantically meaningful from strongest to weakest.
29
+ export const REVIEW_FINDING_SEVERITIES = ['critical', 'high', 'medium', 'low', 'info'] as const;
30
+ export const REVIEW_FINDING_CONFIDENCES = ['high', 'medium', 'low'] as const;
31
+ export const REVIEW_FINDING_SUPPRESSION_STATUSES = ['active', 'expired', 'revoked'] as const;
32
+
33
+ // Lifecycle ordering is semantically meaningful; matches AiAgentRun status sequence with review-specific states.
34
+ export const REVIEW_RUN_STATUSES = [
35
+ 'queued',
36
+ 'running',
37
+ 'passed',
38
+ 'findings',
39
+ 'blocked',
40
+ 'errored',
41
+ 'timed_out',
42
+ 'canceled',
43
+ 'stale'
44
+ ] as const;
45
+
46
+ // Lifecycle ordering is semantically meaningful.
47
+ export const REVIEW_RUN_DECISIONS = ['allowed', 'advisory_allowed', 'blocked', 'error_blocked', 'not_applicable'] as const;
48
+ export const REVIEW_RUN_TRIGGERED_BYS = ['system', 'user'] as const;
49
+
50
+ export type AiAgentStatus = (typeof AI_AGENT_STATUSES)[number];
51
+ export type ReviewPolicyStatus = AiAgentStatus;
52
+ export type ReviewPolicyType = (typeof REVIEW_POLICY_TYPES)[number];
53
+ export type ReviewPolicySource = (typeof REVIEW_POLICY_SOURCES)[number];
54
+ export type ReviewPolicyTrigger = (typeof REVIEW_POLICY_TRIGGERS)[number];
55
+ export type ReviewPolicyExecutionContext = (typeof REVIEW_POLICY_EXECUTION_CONTEXTS)[number];
56
+ export type ReviewPolicyRuntime = (typeof REVIEW_POLICY_RUNTIMES)[number];
57
+ export type ReviewPolicyMode = (typeof REVIEW_POLICY_MODES)[number];
58
+ export type ReviewPolicyRunnerType = (typeof REVIEW_POLICY_RUNNER_TYPES)[number];
59
+ export type ReviewFindingSourcePhase = (typeof REVIEW_FINDING_SOURCE_PHASES)[number];
60
+ export type ReviewFindingCategory = (typeof REVIEW_FINDING_CATEGORIES)[number];
61
+ export type ReviewFindingSeverity = (typeof REVIEW_FINDING_SEVERITIES)[number];
62
+ export type ReviewFindingConfidence = (typeof REVIEW_FINDING_CONFIDENCES)[number];
63
+ export type ReviewFindingSuppressionStatus = (typeof REVIEW_FINDING_SUPPRESSION_STATUSES)[number];
64
+ export type ReviewRunStatus = (typeof REVIEW_RUN_STATUSES)[number];
65
+ export type ReviewRunDecision = (typeof REVIEW_RUN_DECISIONS)[number];
66
+ export type ReviewRunTriggeredBy = (typeof REVIEW_RUN_TRIGGERED_BYS)[number];
67
+
68
+ export type ReviewPolicyScopeType = 'all_apps' | 'limited';
69
+
70
+ export interface ReviewPolicyLastRunDto {
71
+ id: string;
72
+ status: ReviewRunStatus;
73
+ created: string;
74
+ }
75
+
76
+ export interface ReviewPolicyDto {
77
+ id: string;
78
+ organizationId: string;
79
+ aiAgentId: string;
80
+ activeVersionId: string;
81
+ versionNumber: number;
82
+ policyType: ReviewPolicyType;
83
+ source: ReviewPolicySource;
84
+ name: string;
85
+ status: AiAgentStatus;
86
+ mode: ReviewPolicyMode;
87
+ scope: { type: ReviewPolicyScopeType };
88
+ lastRun: ReviewPolicyLastRunDto | null;
89
+ createdBy: string | null;
90
+ created: string;
91
+ }
92
+
93
+ export interface ReviewPolicyDetailDto extends ReviewPolicyDto {
94
+ prompt: string;
95
+ }
96
+
97
+ export interface ReviewPolicyRunDto {
98
+ id: string;
99
+ applicationId: string;
100
+ applicationName: string | null;
101
+ applicationCommitId: string;
102
+ policyVersionNumber: number;
103
+ findingsCount: number;
104
+ profileId: string;
105
+ status: ReviewRunStatus;
106
+ decision: ReviewRunDecision | null;
107
+ decisionReason: string | null;
108
+ startedAt: string | null;
109
+ completedAt: string | null;
110
+ created: string;
111
+ errorCode: string | null;
112
+ errorMessage: string | null;
113
+ }
114
+
115
+ export interface ReviewPolicyRunsDto {
116
+ policy: ReviewPolicyDto;
117
+ runs: ReviewPolicyRunDto[];
118
+ }
119
+
120
+ export interface ReviewPolicySummaryDto {
121
+ activeAgents: number;
122
+ agentRuns24h: number;
123
+ securityScans24h: number;
124
+ findings24h: number;
125
+ }
126
+
127
+ export type CreateReviewPolicyBody =
128
+ | { policyType: 'built_in_security_scan' }
129
+ | { policyType: 'security_agent'; name: string; prompt: string };
130
+
131
+ export type UpdateReviewPolicyBody = { status: AiAgentStatus };
132
+ export type UpdateReviewPolicyConfigBody = { activeVersionId: string; name: string; prompt: string };
@@ -1,13 +1,6 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
 
3
- import {
4
- GITHUB_PAT_SETTINGS_URL,
5
- getGitHubCompareUrl,
6
- gitRemoteUrlToWeb,
7
- isGitHubUrl,
8
- isValidGitUrl,
9
- sshGitUrlToHttps
10
- } from './git-url.js';
3
+ import { getGitHubCompareUrl, gitRemoteUrlToWeb, isGitHubUrl, isValidGitUrl, sshGitUrlToHttps } from './git-url.js';
11
4
 
12
5
  describe('isValidGitUrl', () => {
13
6
  it.each([
@@ -151,9 +144,3 @@ describe('sshGitUrlToHttps', () => {
151
144
  expect(sshGitUrlToHttps('not-a-url')).toBeNull();
152
145
  });
153
146
  });
154
-
155
- describe('GITHUB_PAT_SETTINGS_URL', () => {
156
- it('is a valid URL', () => {
157
- expect(GITHUB_PAT_SETTINGS_URL).toBe('https://github.com/settings/tokens');
158
- });
159
- });
@@ -10,8 +10,6 @@ const SSH_GIT_URL_RE = /^[\w-]+@[\w.-]+:[\w./-]+(\.git)?$/;
10
10
  // ssh:// protocol format: ssh://git@host/path
11
11
  const SSH_PROTOCOL_RE = /^ssh:\/\/[\w-]+@[\w.-]+(\/[\w./-]+)+(\.git)?\/?$/i;
12
12
 
13
- export const GITHUB_PAT_SETTINGS_URL = 'https://github.com/settings/tokens';
14
-
15
13
  export function isValidGitUrl(url: string): boolean {
16
14
  const trimmed = url.trim();
17
15
  return HTTPS_GIT_URL_RE.test(trimmed) || SSH_GIT_URL_RE.test(trimmed) || SSH_PROTOCOL_RE.test(trimmed);