@komatikai/trailhead 4.4.4 → 4.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +43 -39
  2. package/dist/index.js +12147 -271
  3. package/dist/index.js.map +1 -1
  4. package/dist/licenses.txt +51 -0
  5. package/dist/sourcemap-register.js +1 -0
  6. package/package.json +8 -7
  7. package/dist/index.d.ts +0 -2
  8. package/dist/run-doctor.d.ts +0 -1
  9. package/dist/run-doctor.js +0 -83
  10. package/dist/run-doctor.js.map +0 -1
  11. package/dist/shared/ci-core.d.ts +0 -18
  12. package/dist/shared/ci-core.js +0 -210
  13. package/dist/shared/ci-core.js.map +0 -1
  14. package/dist/shared/ci-manifest.d.ts +0 -82
  15. package/dist/shared/ci-manifest.js +0 -51
  16. package/dist/shared/ci-manifest.js.map +0 -1
  17. package/dist/shared/config-core.d.ts +0 -5
  18. package/dist/shared/config-core.js +0 -127
  19. package/dist/shared/config-core.js.map +0 -1
  20. package/dist/shared/doctor.d.ts +0 -48
  21. package/dist/shared/doctor.js +0 -308
  22. package/dist/shared/doctor.js.map +0 -1
  23. package/dist/shared/release-ready.d.ts +0 -27
  24. package/dist/shared/release-ready.js +0 -97
  25. package/dist/shared/release-ready.js.map +0 -1
  26. package/dist/shared/submission-checks/detectors.d.ts +0 -23
  27. package/dist/shared/submission-checks/detectors.js +0 -547
  28. package/dist/shared/submission-checks/detectors.js.map +0 -1
  29. package/dist/shared/submission-checks/helpers.d.ts +0 -30
  30. package/dist/shared/submission-checks/helpers.js +0 -119
  31. package/dist/shared/submission-checks/helpers.js.map +0 -1
  32. package/dist/shared/submission-checks/phase0-detectors.d.ts +0 -18
  33. package/dist/shared/submission-checks/phase0-detectors.js +0 -374
  34. package/dist/shared/submission-checks/phase0-detectors.js.map +0 -1
  35. package/dist/shared/submission-checks/syntax-validity.d.ts +0 -2
  36. package/dist/shared/submission-checks/syntax-validity.js +0 -44
  37. package/dist/shared/submission-checks/syntax-validity.js.map +0 -1
  38. package/dist/shared/submission-checks/types.d.ts +0 -33
  39. package/dist/shared/submission-checks/types.js +0 -2
  40. package/dist/shared/submission-checks/types.js.map +0 -1
  41. package/dist/shared/submission-engine.d.ts +0 -19
  42. package/dist/shared/submission-engine.js +0 -51
  43. package/dist/shared/submission-engine.js.map +0 -1
  44. package/dist/shared/types.d.ts +0 -2644
  45. package/dist/shared/types.js +0 -487
  46. package/dist/shared/types.js.map +0 -1
@@ -1,487 +0,0 @@
1
- import { z } from "zod";
2
- export const GateDecision = z.enum(["allow", "warn", "block"]);
3
- export const HealthCheckResult = z.object({
4
- target: z.string(),
5
- status: GateDecision,
6
- latencyMs: z.number(),
7
- detail: z.record(z.unknown()).optional(),
8
- });
9
- export const RiskFactor = z.object({
10
- type: z.enum([
11
- "code_churn",
12
- "test_coverage",
13
- "file_count",
14
- "sensitive_files",
15
- "author_history",
16
- "dependency_changes",
17
- "pr_age",
18
- "security_alerts",
19
- "deployment_history",
20
- "canary_status",
21
- "ci_integrity",
22
- "workflow_security",
23
- "prompt_injection_risk",
24
- "supply_chain",
25
- "pr_scope",
26
- "duplicate_logic",
27
- "cross_repo_impact",
28
- ]),
29
- score: z.number().min(0).max(100),
30
- detail: z.record(z.unknown()).optional(),
31
- });
32
- export const PrProvenance = z.object({
33
- type: z.enum([
34
- "human",
35
- "dependabot",
36
- "copilot",
37
- "codex",
38
- "claude",
39
- "custom-bot",
40
- "unknown",
41
- ]),
42
- confidence: z.number().min(0).max(1),
43
- source: z.string().optional(),
44
- });
45
- export const GateMode = z.enum(["release-ready", "advisory", "risk-only"]);
46
- export const AgentBriefMode = z.enum(["off", "collapsed", "expanded"]);
47
- export const CiCheckStatusEnum = z.enum([
48
- "pass",
49
- "fail",
50
- "skip",
51
- "pending",
52
- "stale",
53
- "missing",
54
- ]);
55
- export const CiCheck = z.object({
56
- name: z.string(),
57
- status: CiCheckStatusEnum,
58
- conclusion: z.string().optional(),
59
- detailsUrl: z.string().url().optional(),
60
- required: z.boolean(),
61
- });
62
- export const CiSummary = z.object({
63
- checks: z.array(CiCheck),
64
- allRequiredPassed: z.boolean(),
65
- pendingCount: z.number().int().min(0),
66
- failedCount: z.number().int().min(0),
67
- missingCount: z.number().int().min(0),
68
- });
69
- export const MatchedContext = z.object({
70
- name: z.string(),
71
- environment: z.string().optional(),
72
- });
73
- export const RemediationSeverity = z.enum(["blocking", "warn", "advisory"]);
74
- export const SubmissionCheckCode = z.enum([
75
- "artifact_integrity",
76
- "mock_placeholder",
77
- "context_freshness",
78
- "destructive_sql",
79
- "secrets",
80
- "path_format",
81
- "syntax_validity",
82
- "import_resolution",
83
- "rls_new_tables",
84
- "auth_route_auth",
85
- "hardcoded_env",
86
- "external_package_deps",
87
- "sql_syntax_basic",
88
- "large_file",
89
- "soul_integrity",
90
- // Phase 0 — agent suggestion quality (advisory / weight=0 in komatik-agents)
91
- "output_size_min",
92
- "action_extraction_present",
93
- "delta_section_present",
94
- "preamble_absent",
95
- "graduation_signals_section_present",
96
- "fabricated_id_check",
97
- "session_narrative_detection",
98
- "incompleteness_self_flag",
99
- "referenced_files_exist",
100
- "prerequisite_secrets_check",
101
- "dependency_dag_validation",
102
- "uncommitted_fix_check",
103
- "verification_owner_assigned",
104
- "external_interface_validation",
105
- ]);
106
- export const SubmissionCheckResult = z.object({
107
- code: SubmissionCheckCode,
108
- severity: RemediationSeverity,
109
- title: z.string(),
110
- detail: z.string(),
111
- files: z.array(z.string()).default([]),
112
- suggested_action: z.string().optional(),
113
- autofix_eligible: z.boolean().default(false),
114
- });
115
- export const RemediationAutofixClass = z.enum([
116
- "format",
117
- "lint",
118
- "import-fix",
119
- "type-narrow",
120
- "test-scaffold",
121
- "doc-update",
122
- "dependency-bump",
123
- ]);
124
- export const RemediationFix = z.object({
125
- code: z.string(),
126
- severity: RemediationSeverity,
127
- title: z.string(),
128
- detail: z.string(),
129
- files: z.array(z.string()).default([]),
130
- suggested_action: z.string().optional(),
131
- suggested_command: z.string().optional(),
132
- autofix_eligible: z.boolean().default(false),
133
- autofix_class: RemediationAutofixClass.optional(),
134
- policy_link: z.string().url().optional(),
135
- });
136
- export const RemediationNextAction = z.enum([
137
- "ready_to_merge",
138
- "fix_and_retry",
139
- "human_review_required",
140
- "max_rounds_exceeded",
141
- ]);
142
- export const Remediation = z.object({
143
- schema: z.literal("trailhead.remediation.v1").default("trailhead.remediation.v1"),
144
- release_ready: z.boolean(),
145
- fixes: z.array(RemediationFix),
146
- blocking_count: z.number().int().min(0),
147
- warn_count: z.number().int().min(0),
148
- advisory_count: z.number().int().min(0),
149
- autofix_eligible_count: z.number().int().min(0),
150
- loop_round: z.number().int().min(0).default(0),
151
- max_loop_rounds: z.number().int().min(0).default(3),
152
- previous_evaluation_id: z.string().optional(),
153
- fixes_resolved: z.array(z.string()).default([]),
154
- fixes_introduced: z.array(z.string()).default([]),
155
- next_action: RemediationNextAction,
156
- });
157
- export const PolicyOverrideChanges = z.object({
158
- failMode: z.enum(["open", "closed"]).optional(),
159
- riskThreshold: z.number().min(0).max(100).optional(),
160
- warnThreshold: z.number().min(0).max(100).optional(),
161
- releaseReady: z.literal(true).optional(),
162
- });
163
- export const PolicyOverrideAudit = z.object({
164
- source: z.enum(["workflow", "label"]).default("workflow"),
165
- owner: z.string(),
166
- reason: z.string(),
167
- linkedTicket: z.string(),
168
- expiresAt: z.string(),
169
- appliedAt: z.string(),
170
- changes: PolicyOverrideChanges.default({}),
171
- preOverrideDecision: GateDecision.optional(),
172
- preOverrideReleaseReady: z.boolean().optional(),
173
- preOverrideReasons: z.array(z.string()).optional(),
174
- });
175
- export const CreditMeterResult = z.object({
176
- metered: z.boolean(),
177
- skipped: z.boolean().optional(),
178
- reason: z.string().optional(),
179
- shadow: z.boolean().optional(),
180
- would_charge: z.number().optional(),
181
- charged: z.number().optional(),
182
- balance: z.number().optional(),
183
- allowed: z.boolean().optional(),
184
- ok: z.boolean().optional(),
185
- });
186
- export const GateEvaluation = z.object({
187
- id: z.string(),
188
- repoId: z.string(),
189
- commitSha: z.string(),
190
- prNumber: z.number().optional(),
191
- healthScore: z.number().min(0).max(100),
192
- riskScore: z.number().min(0).max(100),
193
- gateDecision: GateDecision,
194
- healthChecks: z.array(HealthCheckResult),
195
- riskFactors: z.array(RiskFactor),
196
- files: z.array(z.string()).optional(),
197
- evaluationMs: z.number(),
198
- reportUrl: z.string().url().optional(),
199
- environment: z.string().optional(),
200
- service: z.string().optional(),
201
- policyFindings: z.array(z.string()).optional(),
202
- pr: z
203
- .object({
204
- provenance: PrProvenance.optional(),
205
- headRef: z.string().optional(),
206
- })
207
- .optional(),
208
- session_correlation: z
209
- .object({
210
- burst_count: z.number().int().min(0),
211
- window: z.string(),
212
- })
213
- .optional(),
214
- escalation_status: z
215
- .object({
216
- enabled: z.boolean(),
217
- target_count: z.number().int().min(0),
218
- acknowledge_sla_minutes: z.number().int().min(1).optional(),
219
- resolve_sla_minutes: z.number().int().min(1).optional(),
220
- })
221
- .optional(),
222
- trust_profile: z
223
- .object({
224
- strictness: z.enum(["baseline", "elevated", "strict"]),
225
- reason: z.string(),
226
- score: z.number().min(0).max(1).optional(),
227
- profile: z.enum(["fast-track", "standard", "probation"]).optional(),
228
- factors: z.record(z.number()).optional(),
229
- })
230
- .optional(),
231
- policyOverride: PolicyOverrideAudit.optional(),
232
- labelOverrideFeedback: z
233
- .object({
234
- status: z.enum(["applied", "rejected"]),
235
- message: z.string(),
236
- })
237
- .optional(),
238
- releaseReady: z.boolean().optional(),
239
- releaseReadyReasons: z.array(z.string()).optional(),
240
- ci: CiSummary.optional(),
241
- context: MatchedContext.optional(),
242
- gateMode: GateMode.optional(),
243
- storePersisted: z.boolean().optional(),
244
- credit_meter: CreditMeterResult.optional(),
245
- remediation: Remediation.optional(),
246
- agentBriefMode: AgentBriefMode.optional(),
247
- submissionChecks: z.array(SubmissionCheckResult).optional(),
248
- cross_repo_impact: z
249
- .object({
250
- services: z.array(z.object({
251
- serviceName: z.string(),
252
- touchedFiles: z.array(z.string()),
253
- consumers: z.array(z.object({
254
- id: z.string(),
255
- repo: z.string().optional(),
256
- branch: z.string().optional(),
257
- })),
258
- notify_webhook: z.string().url().optional(),
259
- })),
260
- })
261
- .optional(),
262
- });
263
- export const GateApiResponse = z.object({
264
- id: z.string().optional(),
265
- reportUrl: z.string().url().optional(),
266
- healthScore: z.number().min(0).max(100).optional(),
267
- riskScore: z.number().min(0).max(100).optional(),
268
- gateDecision: GateDecision.optional(),
269
- healthChecks: z.array(HealthCheckResult).optional(),
270
- riskFactors: z.array(RiskFactor).optional(),
271
- });
272
- export const FreezeWindow = z.object({
273
- days: z.array(z.string()).default([]),
274
- afterHour: z.number().min(0).max(23).optional(),
275
- beforeHour: z.number().min(0).max(23).optional(),
276
- timezone: z.string().default("UTC"),
277
- message: z.string().optional(),
278
- });
279
- export const EnvironmentConfig = z.object({
280
- risk: z.number().min(0).max(100).optional(),
281
- warn: z.number().min(0).max(100).optional(),
282
- require_security_clear: z.boolean().optional(),
283
- });
284
- export const ServiceConsumerRef = z.object({
285
- repo: z.string().min(1),
286
- name: z.string().optional(),
287
- branch: z.string().optional(),
288
- notify_webhook: z.string().url().optional(),
289
- });
290
- export const ServiceConsumer = z.union([z.string(), ServiceConsumerRef]);
291
- export const ConsumerRegistry = z.record(z.string(), ServiceConsumerRef);
292
- export const ServiceMapping = z.object({
293
- paths: z.array(z.string()),
294
- environment: z.string().optional(),
295
- consumers: z.array(ServiceConsumer).default([]),
296
- contracts: z.array(z.string()).default([]),
297
- notify_webhook: z.string().url().optional(),
298
- });
299
- export const SecurityConfig = z.object({
300
- severity_threshold: z.enum(["error", "warning", "note", "none"]).default("warning"),
301
- block_on_critical: z.boolean().default(true),
302
- ignore_rules: z.array(z.string()).default([]),
303
- });
304
- export const CanaryConfig = z.object({
305
- webhook_type: z.enum(["vercel", "generic"]).default("vercel"),
306
- field_map: z.record(z.string()).optional(),
307
- rollback_on_failure: z.boolean().default(false),
308
- });
309
- export const RiskProfileMatch = z.object({
310
- files_include: z.array(z.string()).default([]),
311
- files_exclude: z.array(z.string()).default([]),
312
- min_files: z.number().int().min(1).optional(),
313
- max_files: z.number().int().min(1).optional(),
314
- });
315
- export const RiskProfile = z.object({
316
- name: z.string().optional(),
317
- match: RiskProfileMatch,
318
- weights: z.record(z.number().min(0).max(10)).default({}),
319
- });
320
- export const ContextMatch = z.object({
321
- base_branch: z.array(z.string()).default([]),
322
- head_branch: z.array(z.string()).default([]),
323
- labels: z.array(z.string()).default([]),
324
- });
325
- export const ContextCiConfig = z.object({
326
- required_checks: z.array(z.string()).default([]),
327
- optional_checks: z.array(z.string()).default([]),
328
- missing_required: z.enum(["fail", "skip"]).default("fail"),
329
- });
330
- export const TrailheadContext = z.object({
331
- name: z.string(),
332
- match: ContextMatch,
333
- environment: z.string().optional(),
334
- thresholds: z
335
- .object({
336
- risk: z.number().min(0).max(100).optional(),
337
- warn: z.number().min(0).max(100).optional(),
338
- })
339
- .default({}),
340
- ci: ContextCiConfig.default({}),
341
- });
342
- export const GateConfig = z.object({
343
- mode: GateMode.default("risk-only"),
344
- check_name: z.string().default("Trailhead — Release Ready"),
345
- agent_brief: AgentBriefMode.optional(),
346
- });
347
- export const RemediationConfig = z.object({
348
- enabled: z.boolean().default(true),
349
- max_loop_rounds: z.number().int().min(0).default(3),
350
- });
351
- export const OverrideConfig = z.object({
352
- enabled: z.boolean().default(true),
353
- max_per_week: z.number().int().min(1).default(5),
354
- });
355
- export const TuningConfig = z.object({
356
- auto_downgrade: z.boolean().default(true),
357
- digest_webhook_url: z.string().url().optional(),
358
- fp_threshold: z.number().min(0).max(1).default(0.15),
359
- });
360
- export const SubmissionConfig = z.object({
361
- enabled: z.boolean().default(false),
362
- mode: z.enum(["warn", "block"]).default("block"),
363
- stale_terms: z.array(z.string()).optional(),
364
- auth_route_allowlist: z.array(z.string()).optional(),
365
- max_file_lines: z.number().int().positive().optional(),
366
- /** Path substrings to skip for context_freshness (e.g. archived suggestion dirs). */
367
- path_ignore: z.array(z.string()).optional(),
368
- /** Legacy naming allowlist — skip stale-term hits on imports, slugs in strings, etc. */
369
- naming_allowlist: z
370
- .object({
371
- skip_extensions: z.array(z.string()).optional(),
372
- skip_path_patterns: z.array(z.string()).optional(),
373
- skip_comment_markers: z.array(z.string()).optional(),
374
- skip_in_imports: z.boolean().optional(),
375
- })
376
- .optional(),
377
- });
378
- export const RepoConfig = z.object({
379
- schema_version: z.number().int().positive().default(1),
380
- gate: GateConfig.default({}),
381
- remediation: RemediationConfig.optional(),
382
- override: OverrideConfig.optional(),
383
- tuning: TuningConfig.optional(),
384
- submission: SubmissionConfig.optional(),
385
- contexts: z.array(TrailheadContext).default([]),
386
- sensitivity: z
387
- .object({
388
- high: z.array(z.string()).default([]),
389
- medium: z.array(z.string()).default([]),
390
- low: z.array(z.string()).default([]),
391
- })
392
- .default({}),
393
- weights: z.record(z.number().min(0).max(10)).default({}),
394
- profiles: z.array(RiskProfile).default([]),
395
- thresholds: z
396
- .object({
397
- risk: z.number().min(0).max(100).optional(),
398
- warn: z.number().min(0).max(100).optional(),
399
- })
400
- .default({}),
401
- ignore: z.array(z.string()).default([]),
402
- freeze: z.array(FreezeWindow).default([]),
403
- environments: z.record(EnvironmentConfig).default({}),
404
- services: z.record(ServiceMapping).default({}),
405
- consumer_registry: z.record(ServiceConsumerRef).default({}),
406
- security: SecurityConfig.default({}),
407
- canary: CanaryConfig.optional(),
408
- escalation: z
409
- .object({
410
- targets: z.array(z.string()).default([]),
411
- acknowledge_sla_minutes: z.number().int().min(1).default(30),
412
- resolve_sla_minutes: z.number().int().min(1).default(240),
413
- })
414
- .default({}),
415
- policies: z
416
- .object({
417
- agent_prs: z
418
- .object({
419
- enabled: z.boolean().default(false),
420
- risk_threshold: z.number().min(0).max(100).optional(),
421
- required_approvals: z.number().int().min(0).default(1),
422
- require_code_owner_approval: z.boolean().default(false),
423
- code_owner_reviewers: z.array(z.string()).default([]),
424
- sensitive_paths: z.array(z.string()).default([]),
425
- strict_on_unknown_provenance: z.boolean().default(true),
426
- })
427
- .default({}),
428
- session_correlation: z
429
- .object({
430
- enabled: z.boolean().default(false),
431
- threshold: z.number().int().min(2).default(3),
432
- window_minutes: z.number().int().min(5).default(60),
433
- mode: z.enum(["warn", "block"]).default("warn"),
434
- })
435
- .default({}),
436
- ci_integrity: z
437
- .object({
438
- enabled: z.boolean().default(true),
439
- mode: z.enum(["warn", "block"]).default("block"),
440
- })
441
- .default({}),
442
- workflow_security: z
443
- .object({
444
- enabled: z.boolean().default(true),
445
- mode: z.enum(["warn", "block"]).default("block"),
446
- allow_unpinned_actions: z.array(z.string()).default([]),
447
- })
448
- .default({}),
449
- prompt_injection: z
450
- .object({
451
- enabled: z.boolean().default(true),
452
- mode: z.enum(["warn", "block"]).default("block"),
453
- })
454
- .default({}),
455
- supply_chain: z
456
- .object({
457
- enabled: z.boolean().default(true),
458
- mode: z.enum(["warn", "block"]).default("warn"),
459
- force_score_on_critical: z.number().min(0).max(100).default(80),
460
- })
461
- .default({}),
462
- pr_scope: z
463
- .object({
464
- enabled: z.boolean().default(true),
465
- max_files: z.number().int().min(1).default(50),
466
- max_changes: z.number().int().min(1).default(2000),
467
- mode: z.enum(["warn", "block"]).default("warn"),
468
- require_plan_for_agent_prs: z.boolean().default(false),
469
- })
470
- .default({}),
471
- duplicate_logic: z
472
- .object({
473
- enabled: z.boolean().default(true),
474
- mode: z.enum(["warn", "block"]).default("warn"),
475
- })
476
- .default({}),
477
- cross_repo_impact: z
478
- .object({
479
- enabled: z.boolean().default(true),
480
- mode: z.enum(["warn", "block"]).default("warn"),
481
- consumer_registry_path: z.string().optional(),
482
- })
483
- .default({}),
484
- })
485
- .default({}),
486
- });
487
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}