opencode-swarm 7.119.0 → 7.121.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 (75) hide show
  1. package/dist/cli/{config-doctor-p73yfdz0.js → config-doctor-404c8mf8.js} +3 -3
  2. package/dist/cli/config-fingerprint-v22xh5a2.js +10 -0
  3. package/dist/cli/{core-gf1t2jmn.js → core-xnwasfpc.js} +1 -1
  4. package/dist/cli/curation-policy-re2kaysb.js +25 -0
  5. package/dist/cli/{curator-5xfkejsq.js → curator-8m0pf9cz.js} +30 -23
  6. package/dist/cli/{curator-drift-nn71xfz6.js → curator-drift-6b2fjsgr.js} +3 -2
  7. package/dist/cli/curator-llm-factory-jta9tggm.js +50 -0
  8. package/dist/cli/{evidence-summary-service-cy3k37je.js → evidence-summary-service-jtx5q3r6.js} +9 -7
  9. package/dist/cli/{gate-evidence-j2m4cd85.js → gate-evidence-tbpezk28.js} +5 -5
  10. package/dist/cli/guardrail-explain-nsfm5ksb.js +51 -0
  11. package/dist/cli/{guardrail-log-qjqgg7pz.js → guardrail-log-dhpp0kmn.js} +4 -4
  12. package/dist/cli/{hive-promoter-03m8pwg6.js → hive-promoter-8303gnfk.js} +30 -23
  13. package/dist/cli/index-0e1v02hq.js +343 -0
  14. package/dist/cli/{index-jbdgpqpj.js → index-0k4r8111.js} +28 -10
  15. package/dist/cli/index-0mbmfmt0.js +349 -0
  16. package/dist/cli/{index-5bcrp3bc.js → index-22e127jw.js} +3 -3
  17. package/dist/cli/{index-pjhfe7c3.js → index-3366gs26.js} +43 -7
  18. package/dist/cli/{index-7pspktns.js → index-3je67dcz.js} +2 -2
  19. package/dist/cli/{index-wpgv6hht.js → index-3jvqw5hy.js} +13 -26
  20. package/dist/cli/{index-05ee8pws.js → index-3ygv9535.js} +32 -25
  21. package/dist/cli/{index-bfwt3abw.js → index-4rhcth7a.js} +1 -1
  22. package/dist/cli/{index-n6fa2hhk.js → index-51gg9947.js} +1 -1
  23. package/dist/cli/index-69ms9ny1.js +261 -0
  24. package/dist/cli/{index-42cx6g2h.js → index-76kvm9z5.js} +1 -1
  25. package/dist/cli/{index-r2ysfdet.js → index-78b192v7.js} +7 -7
  26. package/dist/cli/{index-vwvkpg0d.js → index-816rkp4y.js} +3 -92
  27. package/dist/cli/index-89s4mhmw.js +6 -0
  28. package/dist/cli/index-9xpgytj9.js +386 -0
  29. package/dist/cli/index-ae75rja9.js +26 -0
  30. package/dist/cli/index-fndvr7fr.js +135 -0
  31. package/dist/cli/{index-mr3pnc4h.js → index-gmc34yzt.js} +1926 -2005
  32. package/dist/cli/index-gnp9x6se.js +93 -0
  33. package/dist/cli/{index-0pfqcjp6.js → index-h07wn84h.js} +1 -1
  34. package/dist/cli/{index-p45sshb5.js → index-j5xv8zbp.js} +17 -352
  35. package/dist/cli/{index-g2wrs7jy.js → index-kyvg2cmp.js} +1 -1
  36. package/dist/cli/{index-5hze8ztj.js → index-nhgw7de8.js} +7 -5
  37. package/dist/cli/{index-abjjn4yh.js → index-qg11yf8q.js} +4 -4
  38. package/dist/cli/index-rtry5xyf.js +27 -0
  39. package/dist/cli/{index-qx5z58a7.js → index-rywkdacj.js} +93 -11
  40. package/dist/cli/{index-pdk1n8yh.js → index-tftv9xh9.js} +44 -2
  41. package/dist/cli/{index-11q1t6g0.js → index-vqcgmy4y.js} +1 -1
  42. package/dist/cli/{index-q4kgsvdd.js → index-wtn8wf7h.js} +1 -1
  43. package/dist/cli/{index-bcg89pt8.js → index-zvae4m8g.js} +1 -1
  44. package/dist/cli/index.js +30 -23
  45. package/dist/cli/{knowledge-escalator-gt1q632m.js → knowledge-escalator-0ejqs8c9.js} +9 -8
  46. package/dist/cli/{knowledge-events-0bjdtdsb.js → knowledge-events-wx9e37ba.js} +6 -5
  47. package/dist/cli/knowledge-link-sy85fw3w.js +37 -0
  48. package/dist/cli/{knowledge-store-fm2300xf.js → knowledge-store-rnajx33a.js} +17 -6
  49. package/dist/cli/{knowledge-validator-91kx3eqv.js → knowledge-validator-1f4mkzmc.js} +11 -7
  50. package/dist/cli/{pending-delegations-9cn17983.js → pending-delegations-0z3znsec.js} +5 -5
  51. package/dist/cli/{pr-subscriptions-8a6jwek2.js → pr-subscriptions-x653151h.js} +4 -4
  52. package/dist/cli/scan-cursor-qapm0sxj.js +25 -0
  53. package/dist/cli/{schema-7c484wjz.js → schema-vwxpsk6j.js} +2 -2
  54. package/dist/cli/{scope-persistence-fm0gzhnk.js → scope-persistence-mfr36yc9.js} +2 -2
  55. package/dist/cli/{skill-generator-3f8dqjj2.js → skill-generator-tkv7s12g.js} +12 -9
  56. package/dist/config/schema.d.ts +8 -8
  57. package/dist/config/skill-mirrors.d.ts +1 -1
  58. package/dist/hooks/curator-postmortem.d.ts +6 -4
  59. package/dist/hooks/curator.d.ts +5 -1
  60. package/dist/hooks/hive-promoter.d.ts +3 -1
  61. package/dist/hooks/knowledge-store.d.ts +54 -1
  62. package/dist/hooks/knowledge-types.d.ts +107 -2
  63. package/dist/hooks/knowledge-validator.d.ts +25 -4
  64. package/dist/index.js +387 -384
  65. package/dist/knowledge/curation-policy.d.ts +125 -0
  66. package/dist/knowledge/family-manifest.d.ts +30 -2
  67. package/dist/knowledge/family-migration.d.ts +16 -4
  68. package/dist/knowledge/scan-cursor.d.ts +107 -0
  69. package/dist/knowledge/worktree-identity.d.ts +39 -0
  70. package/dist/memory/schema.d.ts +1 -1
  71. package/dist/services/knowledge-diagnostics.d.ts +29 -0
  72. package/package.json +1 -1
  73. package/dist/cli/curator-llm-factory-rwwnmdvk.js +0 -43
  74. package/dist/cli/guardrail-explain-kacpc2zm.js +0 -44
  75. /package/dist/cli/{index-vvk2g744.js → index-7g4c7s5r.js} +0 -0
@@ -0,0 +1,93 @@
1
+ // @bun
2
+ import {
3
+ exports_external
4
+ } from "./index-293f68mj.js";
5
+
6
+ // src/config/spec-schema.ts
7
+ var ObligationSchema = exports_external.enum(["MUST", "SHALL", "SHOULD", "MAY"]);
8
+ var SpecRequirementSchema = exports_external.object({
9
+ id: exports_external.string().regex(/^FR-(?!000)\d{3}$/, "Requirement ID must match FR-### pattern (e.g., FR-001)"),
10
+ obligation: ObligationSchema,
11
+ text: exports_external.string().min(1)
12
+ });
13
+ var SpecScenarioSchema = exports_external.object({
14
+ name: exports_external.string().min(1),
15
+ given: exports_external.array(exports_external.string()).optional().default([]),
16
+ when: exports_external.array(exports_external.string()).min(1, 'Scenario must have at least one "when" clause'),
17
+ thenClauses: exports_external.array(exports_external.string()).min(1, 'Scenario must have at least one "then" clause')
18
+ });
19
+ var SpecSectionSchema = exports_external.object({
20
+ name: exports_external.string().min(1),
21
+ requirements: exports_external.array(SpecRequirementSchema).default([])
22
+ });
23
+ var SwarmSpecSchema = exports_external.object({
24
+ title: exports_external.string().min(1),
25
+ purpose: exports_external.string().min(1),
26
+ sections: exports_external.array(SpecSectionSchema).min(1, "Spec must have at least one section")
27
+ });
28
+ var SpecDeltaSchema = exports_external.object({
29
+ added: exports_external.array(SpecRequirementSchema).default([]),
30
+ modified: exports_external.array(SpecRequirementSchema).default([]),
31
+ removed: exports_external.array(SpecRequirementSchema).default([])
32
+ });
33
+ var DeltaSpecSchema = exports_external.union([
34
+ SwarmSpecSchema,
35
+ SpecDeltaSchema
36
+ ]);
37
+ var FENCED_BLOCK_PATTERN = /```[\s\S]*?```/g;
38
+ var INLINE_CODE_PATTERN = /`[^`]*`/g;
39
+ var FR_ID_PATTERN = /\bFR-\d{3}\b/g;
40
+ var OBLIGATION_PATTERN = /\b(MUST|SHALL|SHOULD|MAY)\b/g;
41
+ var SECTION_HEADER_PATTERN = /^##\s+.+$/gm;
42
+ function stripCodeBlocks(content) {
43
+ return content.replace(FENCED_BLOCK_PATTERN, "").replace(INLINE_CODE_PATTERN, "");
44
+ }
45
+ function getLineNumber(content, position) {
46
+ const prefix = content.substring(0, position);
47
+ return (prefix.match(/\n/g) || []).length + 1;
48
+ }
49
+ function validateSpecContent(content) {
50
+ const issues = [];
51
+ if (!content || content.trim().length === 0) {
52
+ return { valid: false, issues: [{ line: 1, message: "Content is empty" }] };
53
+ }
54
+ const strippedContent = stripCodeBlocks(content);
55
+ const frMatches = strippedContent.match(FR_ID_PATTERN);
56
+ if (!frMatches || frMatches.length === 0) {
57
+ issues.push({
58
+ line: 1,
59
+ message: "No FR-### requirement IDs found in spec content"
60
+ });
61
+ }
62
+ const obligationMatches = strippedContent.match(OBLIGATION_PATTERN);
63
+ if (!obligationMatches || obligationMatches.length === 0) {
64
+ issues.push({
65
+ line: 1,
66
+ message: "No obligation keywords (MUST, SHALL, SHOULD, MAY) found in spec content"
67
+ });
68
+ }
69
+ const sectionMatches = strippedContent.match(SECTION_HEADER_PATTERN);
70
+ if (!sectionMatches || sectionMatches.length === 0) {
71
+ issues.push({
72
+ line: 1,
73
+ message: "No section headers (## Section Name) found in spec content"
74
+ });
75
+ }
76
+ const idMatches = strippedContent.matchAll(/\bFR-(\d{3})\b/g);
77
+ for (const idMatch of idMatches) {
78
+ const num = parseInt(idMatch[1], 10);
79
+ if (num === 0) {
80
+ const pos = idMatch.index;
81
+ issues.push({
82
+ line: getLineNumber(strippedContent, pos),
83
+ message: `Invalid FR-ID "${idMatch[0]}" \u2014 number must be 001-999`
84
+ });
85
+ }
86
+ }
87
+ return {
88
+ valid: issues.length === 0,
89
+ issues
90
+ };
91
+ }
92
+
93
+ export { ObligationSchema, SpecRequirementSchema, SpecScenarioSchema, SpecSectionSchema, SwarmSpecSchema, SpecDeltaSchema, DeltaSpecSchema, validateSpecContent };
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  withEvidenceLock
4
- } from "./index-42cx6g2h.js";
4
+ } from "./index-76kvm9z5.js";
5
5
  import {
6
6
  invalidateCachedArtifact
7
7
  } from "./index-fsrp8wp3.js";
@@ -1,7 +1,15 @@
1
1
  // @bun
2
2
  import {
3
3
  readEffectiveSpecSync
4
- } from "./index-vwvkpg0d.js";
4
+ } from "./index-816rkp4y.js";
5
+ import {
6
+ EVIDENCE_MAX_JSON_BYTES,
7
+ EvidenceBundleSchema,
8
+ EvidenceSchema,
9
+ ExecutionProfileSchema,
10
+ PlanSchema,
11
+ TaskStatusSchema
12
+ } from "./index-0mbmfmt0.js";
5
13
  import {
6
14
  _internals,
7
15
  buildDefaultPolicy,
@@ -25,23 +33,23 @@ import {
25
33
  readTaskEvidence,
26
34
  readTaskEvidenceRaw,
27
35
  sanitizeTaskId
28
- } from "./index-abjjn4yh.js";
36
+ } from "./index-qg11yf8q.js";
29
37
  import {
30
38
  atomicWriteFile
31
- } from "./index-0pfqcjp6.js";
32
- import {
33
- ZodError,
34
- exports_external
35
- } from "./index-293f68mj.js";
39
+ } from "./index-h07wn84h.js";
36
40
  import {
37
41
  withEvidenceLock
38
- } from "./index-42cx6g2h.js";
42
+ } from "./index-76kvm9z5.js";
39
43
  import {
40
44
  readCachedParsedFile
41
45
  } from "./index-fsrp8wp3.js";
42
46
  import {
43
47
  emit
44
48
  } from "./index-q2rrv0cy.js";
49
+ import {
50
+ ZodError,
51
+ exports_external
52
+ } from "./index-293f68mj.js";
45
53
  import {
46
54
  bunHash,
47
55
  bunWrite,
@@ -863,67 +871,6 @@ import {
863
871
  import * as fsPromises from "fs/promises";
864
872
  import * as path9 from "path";
865
873
 
866
- // src/config/plan-schema.ts
867
- var ExecutionProfileSchema = exports_external.object({
868
- parallelization_enabled: exports_external.boolean().default(false),
869
- max_concurrent_tasks: exports_external.number().int().min(1).max(64).default(10),
870
- council_parallel: exports_external.boolean().default(true),
871
- locked: exports_external.boolean().default(false),
872
- auto_proceed: exports_external.boolean().default(false)
873
- });
874
- var TaskStatusSchema = exports_external.enum([
875
- "pending",
876
- "in_progress",
877
- "completed",
878
- "blocked",
879
- "closed"
880
- ]);
881
- var TaskSizeSchema = exports_external.enum(["small", "medium", "large"]);
882
- var PhaseStatusSchema = exports_external.enum([
883
- "pending",
884
- "in_progress",
885
- "complete",
886
- "completed",
887
- "blocked",
888
- "closed"
889
- ]);
890
- var MigrationStatusSchema = exports_external.enum([
891
- "native",
892
- "migrated",
893
- "migration_failed"
894
- ]);
895
- var TaskSchema = exports_external.object({
896
- id: exports_external.string(),
897
- phase: exports_external.number().int().min(1),
898
- status: TaskStatusSchema.default("pending"),
899
- size: TaskSizeSchema.default("small"),
900
- description: exports_external.string().min(1),
901
- depends: exports_external.array(exports_external.string()).default([]),
902
- acceptance: exports_external.string().optional(),
903
- files_touched: exports_external.array(exports_external.string()).default([]),
904
- evidence_path: exports_external.string().optional(),
905
- blocked_reason: exports_external.string().optional()
906
- });
907
- var PhaseSchema = exports_external.object({
908
- id: exports_external.number().int().min(1),
909
- name: exports_external.string().min(1),
910
- status: PhaseStatusSchema.default("pending"),
911
- tasks: exports_external.array(TaskSchema).default([]),
912
- type: exports_external.enum(["code", "non-code"]).optional(),
913
- required_agents: exports_external.array(exports_external.string()).optional()
914
- });
915
- var PlanSchema = exports_external.object({
916
- schema_version: exports_external.literal("1.0.0"),
917
- title: exports_external.string().min(1),
918
- swarm: exports_external.string().min(1),
919
- current_phase: exports_external.number().int().min(1).optional(),
920
- phases: exports_external.array(PhaseSchema).min(1),
921
- migration_status: MigrationStatusSchema.optional(),
922
- specMtime: exports_external.string().optional(),
923
- specHash: exports_external.string().optional(),
924
- execution_profile: ExecutionProfileSchema.optional()
925
- });
926
-
927
874
  // src/git/branch.ts
928
875
  init_executor();
929
876
  import * as child_process from "child_process";
@@ -3881,288 +3828,6 @@ import * as fs7 from "fs/promises";
3881
3828
  import * as os4 from "os";
3882
3829
  import * as path13 from "path";
3883
3830
 
3884
- // src/config/evidence-schema.ts
3885
- var EVIDENCE_MAX_JSON_BYTES = 500 * 1024;
3886
- var EVIDENCE_MAX_PATCH_BYTES = 5 * 1024 * 1024;
3887
- var EVIDENCE_MAX_TASK_BYTES = 20 * 1024 * 1024;
3888
- var EvidenceTypeSchema = exports_external.enum([
3889
- "review",
3890
- "test",
3891
- "diff",
3892
- "approval",
3893
- "note",
3894
- "retrospective",
3895
- "syntax",
3896
- "placeholder",
3897
- "sast",
3898
- "sbom",
3899
- "build",
3900
- "quality_budget",
3901
- "secretscan",
3902
- "mutation-gate",
3903
- "drift-verification",
3904
- "hallucination-verification"
3905
- ]);
3906
- var EvidenceVerdictSchema = exports_external.enum([
3907
- "pass",
3908
- "fail",
3909
- "warn",
3910
- "skip",
3911
- "approved",
3912
- "rejected",
3913
- "info"
3914
- ]);
3915
- var BaseEvidenceSchema = exports_external.object({
3916
- task_id: exports_external.string().min(1),
3917
- type: EvidenceTypeSchema,
3918
- timestamp: exports_external.string().datetime(),
3919
- agent: exports_external.string().min(1),
3920
- verdict: EvidenceVerdictSchema,
3921
- summary: exports_external.string().min(1),
3922
- metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
3923
- });
3924
- var ReviewEvidenceSchema = BaseEvidenceSchema.extend({
3925
- type: exports_external.literal("review"),
3926
- risk: exports_external.enum(["low", "medium", "high", "critical"]),
3927
- issues: exports_external.array(exports_external.object({
3928
- severity: exports_external.enum(["error", "warning", "info"]),
3929
- message: exports_external.string().min(1),
3930
- file: exports_external.string().optional(),
3931
- line: exports_external.number().int().optional()
3932
- })).default([])
3933
- });
3934
- var TestEvidenceSchema = BaseEvidenceSchema.extend({
3935
- type: exports_external.literal("test"),
3936
- tests_passed: exports_external.number().int().min(0),
3937
- tests_failed: exports_external.number().int().min(0),
3938
- test_file: exports_external.string().optional(),
3939
- failures: exports_external.array(exports_external.object({
3940
- name: exports_external.string().min(1),
3941
- message: exports_external.string().min(1)
3942
- })).default([])
3943
- });
3944
- var DiffEvidenceSchema = BaseEvidenceSchema.extend({
3945
- type: exports_external.literal("diff"),
3946
- files_changed: exports_external.array(exports_external.string()).default([]),
3947
- additions: exports_external.number().int().min(0).default(0),
3948
- deletions: exports_external.number().int().min(0).default(0),
3949
- patch_path: exports_external.string().optional()
3950
- });
3951
- var ApprovalEvidenceSchema = BaseEvidenceSchema.extend({
3952
- type: exports_external.literal("approval")
3953
- });
3954
- var NoteEvidenceSchema = BaseEvidenceSchema.extend({
3955
- type: exports_external.literal("note")
3956
- });
3957
- var RetrospectiveEvidenceSchema = BaseEvidenceSchema.extend({
3958
- type: exports_external.literal("retrospective"),
3959
- phase_number: exports_external.number().int().min(1).max(99),
3960
- total_tool_calls: exports_external.number().int().min(0).max(9999),
3961
- coder_revisions: exports_external.number().int().min(0).max(999),
3962
- reviewer_rejections: exports_external.number().int().min(0).max(999),
3963
- loop_detections: exports_external.number().int().min(0).max(9999).optional(),
3964
- circuit_breaker_trips: exports_external.number().int().min(0).max(9999).optional(),
3965
- test_failures: exports_external.number().int().min(0).max(9999),
3966
- security_findings: exports_external.number().int().min(0).max(999),
3967
- integration_issues: exports_external.number().int().min(0).max(999),
3968
- task_count: exports_external.number().int().min(1).max(9999),
3969
- task_complexity: exports_external.enum(["trivial", "simple", "moderate", "complex"]),
3970
- top_rejection_reasons: exports_external.array(exports_external.string()).default([]),
3971
- lessons_learned: exports_external.array(exports_external.string()).max(5).default([]),
3972
- user_directives: exports_external.array(exports_external.object({
3973
- directive: exports_external.string().min(1),
3974
- category: exports_external.enum([
3975
- "tooling",
3976
- "code_style",
3977
- "architecture",
3978
- "process",
3979
- "other"
3980
- ]),
3981
- scope: exports_external.enum(["session", "project", "global"])
3982
- })).default([]),
3983
- approaches_tried: exports_external.array(exports_external.object({
3984
- approach: exports_external.string().min(1),
3985
- result: exports_external.enum(["success", "failure", "partial"]),
3986
- abandoned_reason: exports_external.string().optional()
3987
- })).max(10).default([]),
3988
- error_taxonomy: exports_external.array(exports_external.enum([
3989
- "planning_error",
3990
- "interface_mismatch",
3991
- "logic_error",
3992
- "scope_creep",
3993
- "gate_evasion"
3994
- ])).default([])
3995
- });
3996
- var SyntaxEvidenceSchema = BaseEvidenceSchema.extend({
3997
- type: exports_external.literal("syntax"),
3998
- files_checked: exports_external.number().int(),
3999
- files_failed: exports_external.number().int(),
4000
- skipped_count: exports_external.number().int().default(0),
4001
- files: exports_external.array(exports_external.object({
4002
- path: exports_external.string(),
4003
- language: exports_external.string(),
4004
- ok: exports_external.boolean(),
4005
- errors: exports_external.array(exports_external.object({
4006
- line: exports_external.number().int(),
4007
- column: exports_external.number().int(),
4008
- message: exports_external.string()
4009
- })).default([]),
4010
- skipped_reason: exports_external.string().optional()
4011
- })).default([])
4012
- });
4013
- var PlaceholderEvidenceSchema = BaseEvidenceSchema.extend({
4014
- type: exports_external.literal("placeholder"),
4015
- findings: exports_external.array(exports_external.object({
4016
- path: exports_external.string(),
4017
- line: exports_external.number().int(),
4018
- kind: exports_external.enum(["comment", "string", "function_body", "other"]),
4019
- excerpt: exports_external.string(),
4020
- rule_id: exports_external.string()
4021
- })).default([]),
4022
- files_scanned: exports_external.number().int(),
4023
- files_with_findings: exports_external.number().int(),
4024
- findings_count: exports_external.number().int()
4025
- });
4026
- var SastFindingSchema = exports_external.object({
4027
- rule_id: exports_external.string(),
4028
- severity: exports_external.enum(["critical", "high", "medium", "low"]),
4029
- message: exports_external.string(),
4030
- location: exports_external.object({
4031
- file: exports_external.string(),
4032
- line: exports_external.number().int(),
4033
- column: exports_external.number().int().optional()
4034
- }),
4035
- remediation: exports_external.string().optional()
4036
- });
4037
- var SastEvidenceSchema = BaseEvidenceSchema.extend({
4038
- type: exports_external.literal("sast"),
4039
- findings: exports_external.array(SastFindingSchema).default([]),
4040
- engine: exports_external.enum(["tier_a", "tier_a+tier_b"]),
4041
- files_scanned: exports_external.number().int(),
4042
- findings_count: exports_external.number().int(),
4043
- findings_by_severity: exports_external.object({
4044
- critical: exports_external.number().int(),
4045
- high: exports_external.number().int(),
4046
- medium: exports_external.number().int(),
4047
- low: exports_external.number().int()
4048
- }),
4049
- new_findings: exports_external.array(SastFindingSchema).optional(),
4050
- pre_existing_findings: exports_external.array(SastFindingSchema).optional(),
4051
- baseline_used: exports_external.boolean().optional()
4052
- });
4053
- var SbomEvidenceSchema = BaseEvidenceSchema.extend({
4054
- type: exports_external.literal("sbom"),
4055
- components: exports_external.array(exports_external.object({
4056
- name: exports_external.string(),
4057
- version: exports_external.string(),
4058
- type: exports_external.enum(["library", "framework", "application"]),
4059
- purl: exports_external.string().optional(),
4060
- license: exports_external.string().optional()
4061
- })).default([]),
4062
- metadata: exports_external.object({
4063
- timestamp: exports_external.string().datetime(),
4064
- tool: exports_external.string(),
4065
- tool_version: exports_external.string()
4066
- }),
4067
- files: exports_external.array(exports_external.string()),
4068
- components_count: exports_external.number().int(),
4069
- output_path: exports_external.string()
4070
- });
4071
- var BuildEvidenceSchema = BaseEvidenceSchema.extend({
4072
- type: exports_external.literal("build"),
4073
- runs: exports_external.array(exports_external.object({
4074
- kind: exports_external.enum(["build", "typecheck", "test"]),
4075
- command: exports_external.string(),
4076
- cwd: exports_external.string(),
4077
- exit_code: exports_external.number().int(),
4078
- duration_ms: exports_external.number().int(),
4079
- stdout_tail: exports_external.string(),
4080
- stderr_tail: exports_external.string()
4081
- })).default([]),
4082
- files_scanned: exports_external.number().int(),
4083
- runs_count: exports_external.number().int(),
4084
- failed_count: exports_external.number().int(),
4085
- skipped_reason: exports_external.string().optional()
4086
- });
4087
- var QualityBudgetEvidenceSchema = BaseEvidenceSchema.extend({
4088
- type: exports_external.literal("quality_budget"),
4089
- metrics: exports_external.object({
4090
- complexity_delta: exports_external.number(),
4091
- public_api_delta: exports_external.number(),
4092
- duplication_ratio: exports_external.number(),
4093
- test_to_code_ratio: exports_external.number()
4094
- }),
4095
- thresholds: exports_external.object({
4096
- max_complexity_delta: exports_external.number(),
4097
- max_public_api_delta: exports_external.number(),
4098
- max_duplication_ratio: exports_external.number(),
4099
- min_test_to_code_ratio: exports_external.number()
4100
- }),
4101
- violations: exports_external.array(exports_external.object({
4102
- type: exports_external.enum(["complexity", "api", "duplication", "test_ratio"]),
4103
- message: exports_external.string(),
4104
- severity: exports_external.enum(["error", "warning"]),
4105
- files: exports_external.array(exports_external.string())
4106
- })).default([]),
4107
- files_analyzed: exports_external.array(exports_external.string())
4108
- });
4109
- var SecretscanEvidenceSchema = BaseEvidenceSchema.extend({
4110
- type: exports_external.literal("secretscan"),
4111
- findings_count: exports_external.number().int().min(0).default(0),
4112
- scan_directory: exports_external.string().optional(),
4113
- files_scanned: exports_external.number().int().min(0).default(0),
4114
- skipped_files: exports_external.number().int().min(0).default(0)
4115
- });
4116
- var GateEvidenceBaseSchema = exports_external.object({
4117
- task_id: exports_external.string().optional(),
4118
- agent: exports_external.string().optional(),
4119
- timestamp: exports_external.string().datetime(),
4120
- summary: exports_external.string().min(1),
4121
- metadata: exports_external.record(exports_external.string(), exports_external.unknown()).optional()
4122
- });
4123
- var MutationGateEvidenceSchema = GateEvidenceBaseSchema.extend({
4124
- type: exports_external.literal("mutation-gate"),
4125
- verdict: exports_external.enum(["pass", "warn", "fail", "skip"]),
4126
- killRate: exports_external.number().min(0).max(1).optional(),
4127
- adjustedKillRate: exports_external.number().min(0).max(1).optional(),
4128
- survivedMutants: exports_external.string().optional()
4129
- });
4130
- var DriftVerificationEvidenceSchema = GateEvidenceBaseSchema.extend({
4131
- type: exports_external.literal("drift-verification"),
4132
- verdict: exports_external.enum(["approved", "rejected"]),
4133
- requirementCoverage: exports_external.string().optional()
4134
- });
4135
- var HallucinationVerificationEvidenceSchema = GateEvidenceBaseSchema.extend({
4136
- type: exports_external.literal("hallucination-verification"),
4137
- verdict: exports_external.enum(["approved", "rejected"]),
4138
- findings: exports_external.string().optional()
4139
- });
4140
- var EvidenceSchema = exports_external.discriminatedUnion("type", [
4141
- ReviewEvidenceSchema,
4142
- TestEvidenceSchema,
4143
- DiffEvidenceSchema,
4144
- ApprovalEvidenceSchema,
4145
- NoteEvidenceSchema,
4146
- RetrospectiveEvidenceSchema,
4147
- SyntaxEvidenceSchema,
4148
- PlaceholderEvidenceSchema,
4149
- SastEvidenceSchema,
4150
- SbomEvidenceSchema,
4151
- BuildEvidenceSchema,
4152
- QualityBudgetEvidenceSchema,
4153
- SecretscanEvidenceSchema,
4154
- MutationGateEvidenceSchema,
4155
- DriftVerificationEvidenceSchema,
4156
- HallucinationVerificationEvidenceSchema
4157
- ]);
4158
- var EvidenceBundleSchema = exports_external.object({
4159
- schema_version: exports_external.literal("1.0.0"),
4160
- task_id: exports_external.string().min(1),
4161
- entries: exports_external.array(EvidenceSchema).default([]),
4162
- created_at: exports_external.string().datetime(),
4163
- updated_at: exports_external.string().datetime()
4164
- });
4165
-
4166
3831
  // src/evaluation/retention.ts
4167
3832
  import * as fs6 from "fs/promises";
4168
3833
  import * as path12 from "path";
@@ -5734,4 +5399,4 @@ function mergeDurableGateEntriesFromEvidence(taskId, entries, evidence) {
5734
5399
  return merged;
5735
5400
  }
5736
5401
 
5737
- export { PlanSchema, getExecutor, init_executor, MAX_TRANSIENT_RETRIES, isTransientSpawnError, transientBackoff, getGitRepositoryStatus, isGitRepo, getDefaultBaseBranch, resetToRemoteBranch, resetToMainAfterMerge, initDurableStatusPath, getAllWorktreeMergeFailures, isStateUnreadable, loadEpicSessionState, isEpicModeActive, enableEpicMode, disableEpicMode, normalizePath, pathsConflict, isGlobalFile, isProtectedPath, readTaskScopes, computeSpecHash, derivePlanId, computePlanHash, initLedger, appendLedgerEvent, loadPlanJsonOnly, loadPlan, savePlan, closePlanTerminalState, derivePlanMarkdown, RetrospectiveEvidenceSchema, IdentifierSchema, EvaluationTaskV1Schema, GateNameSchema, GateAuditManifestV1Schema, GateAuditResultV1Schema, canonicalJson, canonicalHash, computeTaskInputContentHash, computeTaskSetContentHash, computeManifestContentHash, resolveContainedExistingPath, admitEvaluationTask, saveTaskSetSnapshot, saveGateAuditResult, saveGateAuditManifest, readGateAuditManifest, readGateAuditResult, listGateAuditResults, isValidEvidenceType, sanitizeTaskId2 as sanitizeTaskId, validateProjectRoot, saveEvidence, loadEvidence, listEvidenceTaskIds, checkRequirementCoverage, archiveEvidence, readDurableGateEvidence, getDurableGateEvidenceStatus, getDurableGateEvidenceStatusForTask, mergeDurableGateEntriesFromEvidence };
5402
+ export { getExecutor, init_executor, MAX_TRANSIENT_RETRIES, isTransientSpawnError, transientBackoff, getGitRepositoryStatus, isGitRepo, getDefaultBaseBranch, resetToRemoteBranch, resetToMainAfterMerge, initDurableStatusPath, getAllWorktreeMergeFailures, isStateUnreadable, loadEpicSessionState, isEpicModeActive, enableEpicMode, disableEpicMode, normalizePath, pathsConflict, isGlobalFile, isProtectedPath, readTaskScopes, computeSpecHash, derivePlanId, computePlanHash, initLedger, appendLedgerEvent, loadPlanJsonOnly, loadPlan, savePlan, closePlanTerminalState, derivePlanMarkdown, IdentifierSchema, EvaluationTaskV1Schema, GateNameSchema, GateAuditManifestV1Schema, GateAuditResultV1Schema, canonicalJson, canonicalHash, computeTaskInputContentHash, computeTaskSetContentHash, computeManifestContentHash, resolveContainedExistingPath, admitEvaluationTask, saveTaskSetSnapshot, saveGateAuditResult, saveGateAuditManifest, readGateAuditManifest, readGateAuditResult, listGateAuditResults, isValidEvidenceType, sanitizeTaskId2 as sanitizeTaskId, validateProjectRoot, saveEvidence, loadEvidence, listEvidenceTaskIds, checkRequirementCoverage, archiveEvidence, readDurableGateEvidence, getDurableGateEvidenceStatus, getDurableGateEvidenceStatusForTask, mergeDurableGateEntriesFromEvidence };
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  stripKnownSwarmPrefix
4
- } from "./index-pdk1n8yh.js";
4
+ } from "./index-tftv9xh9.js";
5
5
  import {
6
6
  init_logger,
7
7
  warn
@@ -1,18 +1,20 @@
1
1
  // @bun
2
2
  import {
3
- resolveHiveEventsPath,
3
+ resolveHiveEventsPath
4
+ } from "./index-ae75rja9.js";
5
+ import {
4
6
  resolveKnowledgeStoreDir
5
- } from "./index-wpgv6hht.js";
7
+ } from "./index-3jvqw5hy.js";
6
8
  import {
7
9
  init_logger,
8
10
  warn
9
11
  } from "./index-zgwm4ryv.js";
10
12
  import {
11
13
  atomicWriteFile
12
- } from "./index-0pfqcjp6.js";
14
+ } from "./index-h07wn84h.js";
13
15
  import {
14
16
  require_proper_lockfile
15
- } from "./index-vvk2g744.js";
17
+ } from "./index-7g4c7s5r.js";
16
18
  import {
17
19
  __require,
18
20
  __toESM
@@ -583,7 +585,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
583
585
  deltas.push({ id, delta });
584
586
  }
585
587
  if (deltas.length > 0) {
586
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-fm2300xf.js");
588
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-rnajx33a.js");
587
589
  await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
588
590
  }
589
591
  return {
@@ -3,13 +3,13 @@ import {
3
3
  atomicWriteFile,
4
4
  taskEvidencePath,
5
5
  withTaskEvidenceLock
6
- } from "./index-0pfqcjp6.js";
7
- import {
8
- exports_external
9
- } from "./index-293f68mj.js";
6
+ } from "./index-h07wn84h.js";
10
7
  import {
11
8
  telemetry
12
9
  } from "./index-q2rrv0cy.js";
10
+ import {
11
+ exports_external
12
+ } from "./index-293f68mj.js";
13
13
 
14
14
  // src/gate-evidence.ts
15
15
  import { mkdirSync, readFileSync, realpathSync } from "fs";
@@ -0,0 +1,27 @@
1
+ // @bun
2
+ // src/knowledge/config-fingerprint.ts
3
+ import { createHash } from "crypto";
4
+ function cohortConfigFingerprint(input) {
5
+ const canonical = JSON.stringify(sortKeys(input));
6
+ return createHash("sha256").update(canonical).digest("hex").slice(0, 12);
7
+ }
8
+ function sortKeys(value) {
9
+ if (Array.isArray(value)) {
10
+ return value.map(sortKeys);
11
+ }
12
+ if (value && typeof value === "object") {
13
+ const obj = value;
14
+ const out = {};
15
+ for (const key of Object.keys(obj).sort()) {
16
+ out[key] = sortKeys(obj[key]);
17
+ }
18
+ return out;
19
+ }
20
+ return value;
21
+ }
22
+ var _internals = {
23
+ cohortConfigFingerprint,
24
+ sortKeys
25
+ };
26
+
27
+ export { cohortConfigFingerprint, _internals };