crewly 1.20.184 → 1.20.185

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 (184) hide show
  1. package/config/constants.ts +83 -0
  2. package/config/index.ts +2 -0
  3. package/config/oss-boundary-allowlist.json +10 -0
  4. package/config/skills/agent/core/ask-owner/SKILL.md +5 -2
  5. package/config/skills/agent/core/complete-task/execute.sh +4 -12
  6. package/config/skills/agent/core/complete-task/execute.test.sh +11 -0
  7. package/config/skills/agent/core/report-status/SKILL.md +1 -1
  8. package/config/skills/agent/core/report-status/execute.sh +5 -10
  9. package/dist/backend/backend/src/constants.d.ts +40 -0
  10. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  11. package/dist/backend/backend/src/constants.js +35 -1
  12. package/dist/backend/backend/src/constants.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts +11 -1
  14. package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts.map +1 -1
  15. package/dist/backend/backend/src/controllers/decisions/decisions.controller.js +38 -0
  16. package/dist/backend/backend/src/controllers/decisions/decisions.controller.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/google/google.controller.js +3 -2
  19. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts +9 -0
  21. package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/request/open-items.controller.js +29 -1
  23. package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/request/request.routes.d.ts +1 -0
  25. package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/request/request.routes.js +4 -1
  27. package/dist/backend/backend/src/controllers/request/request.routes.js.map +1 -1
  28. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts +5 -2
  29. package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts.map +1 -1
  30. package/dist/backend/backend/src/controllers/standing/standing.controller.js +3 -1
  31. package/dist/backend/backend/src/controllers/standing/standing.controller.js.map +1 -1
  32. package/dist/backend/backend/src/index.d.ts.map +1 -1
  33. package/dist/backend/backend/src/index.js +15 -1
  34. package/dist/backend/backend/src/index.js.map +1 -1
  35. package/dist/backend/backend/src/scripts/check-oss-boundary.d.ts +217 -0
  36. package/dist/backend/backend/src/scripts/check-oss-boundary.d.ts.map +1 -0
  37. package/dist/backend/backend/src/scripts/check-oss-boundary.js +490 -0
  38. package/dist/backend/backend/src/scripts/check-oss-boundary.js.map +1 -0
  39. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +3 -1
  40. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js +15 -4
  42. package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -1
  43. package/dist/backend/backend/src/services/decisions/decision-card.d.ts +31 -4
  44. package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/decisions/decision-card.js +60 -2
  46. package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
  47. package/dist/backend/backend/src/services/decisions/decision-skip-command.d.ts +56 -0
  48. package/dist/backend/backend/src/services/decisions/decision-skip-command.d.ts.map +1 -0
  49. package/dist/backend/backend/src/services/decisions/decision-skip-command.js +108 -0
  50. package/dist/backend/backend/src/services/decisions/decision-skip-command.js.map +1 -0
  51. package/dist/backend/backend/src/services/decisions/decision.service.d.ts +105 -2
  52. package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/decisions/decision.service.js +187 -11
  54. package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts +8 -0
  56. package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/decisions/decision.wiring.js +25 -0
  58. package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
  59. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +19 -0
  60. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/memory/agent-memory.service.js +48 -0
  62. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/memory/memory.service.js +20 -0
  65. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  66. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts +40 -0
  67. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  68. package/dist/backend/backend/src/services/memory/project-memory.service.js +101 -0
  69. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
  70. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts +1 -1
  71. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -1
  72. package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -1
  73. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +61 -1
  74. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/memory/standing-answers.service.js +71 -3
  76. package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -1
  77. package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts +7 -4
  78. package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/memory/standing-refresh.service.js +18 -9
  80. package/dist/backend/backend/src/services/memory/standing-refresh.service.js.map +1 -1
  81. package/dist/backend/backend/src/services/memory/task-log-filter.d.ts +27 -0
  82. package/dist/backend/backend/src/services/memory/task-log-filter.d.ts.map +1 -0
  83. package/dist/backend/backend/src/services/memory/task-log-filter.js +56 -0
  84. package/dist/backend/backend/src/services/memory/task-log-filter.js.map +1 -0
  85. package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts +26 -1
  86. package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/open-items/open-items-backfill.js +59 -3
  88. package/dist/backend/backend/src/services/open-items/open-items-backfill.js.map +1 -1
  89. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +37 -2
  90. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/open-items/open-items.service.js +101 -6
  92. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  93. package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts.map +1 -1
  94. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +13 -0
  95. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  96. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
  97. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  98. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +34 -11
  99. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  100. package/dist/backend/backend/src/services/wiki/wiki-process.service.d.ts.map +1 -1
  101. package/dist/backend/backend/src/services/wiki/wiki-process.service.js +4 -2
  102. package/dist/backend/backend/src/services/wiki/wiki-process.service.js.map +1 -1
  103. package/dist/backend/backend/src/services/wiki/wiki-queue.service.d.ts +103 -1
  104. package/dist/backend/backend/src/services/wiki/wiki-queue.service.d.ts.map +1 -1
  105. package/dist/backend/backend/src/services/wiki/wiki-queue.service.js +171 -20
  106. package/dist/backend/backend/src/services/wiki/wiki-queue.service.js.map +1 -1
  107. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts +60 -0
  108. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +121 -7
  110. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -1
  111. package/dist/backend/backend/src/types/decision.types.d.ts +18 -3
  112. package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
  113. package/dist/backend/backend/src/types/v2/open-item.types.d.ts +4 -1
  114. package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  115. package/dist/backend/backend/src/types/v2/open-item.types.js.map +1 -1
  116. package/dist/backend/build-info.json +2 -2
  117. package/dist/backend/config/constants.d.ts +73 -0
  118. package/dist/backend/config/constants.d.ts.map +1 -1
  119. package/dist/backend/config/constants.js +80 -0
  120. package/dist/backend/config/constants.js.map +1 -1
  121. package/dist/backend/config/index.d.ts +10 -2
  122. package/dist/backend/config/index.d.ts.map +1 -1
  123. package/dist/backend/config/index.js +2 -2
  124. package/dist/backend/config/index.js.map +1 -1
  125. package/dist/cli/backend/src/constants.d.ts +40 -0
  126. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  127. package/dist/cli/backend/src/constants.js +35 -1
  128. package/dist/cli/backend/src/constants.js.map +1 -1
  129. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +3 -1
  130. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -1
  131. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js +15 -4
  132. package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -1
  133. package/dist/cli/backend/src/services/decisions/decision-card.d.ts +31 -4
  134. package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -1
  135. package/dist/cli/backend/src/services/decisions/decision-card.js +60 -2
  136. package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -1
  137. package/dist/cli/backend/src/services/decisions/decision.service.d.ts +105 -2
  138. package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
  139. package/dist/cli/backend/src/services/decisions/decision.service.js +187 -11
  140. package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
  141. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +19 -0
  142. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  143. package/dist/cli/backend/src/services/memory/agent-memory.service.js +48 -0
  144. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
  145. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  146. package/dist/cli/backend/src/services/memory/memory.service.js +20 -0
  147. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  148. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +40 -0
  149. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  150. package/dist/cli/backend/src/services/memory/project-memory.service.js +101 -0
  151. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
  152. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts +1 -1
  153. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -1
  154. package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -1
  155. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +61 -1
  156. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
  157. package/dist/cli/backend/src/services/memory/standing-answers.service.js +71 -3
  158. package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -1
  159. package/dist/cli/backend/src/services/memory/task-log-filter.d.ts +27 -0
  160. package/dist/cli/backend/src/services/memory/task-log-filter.d.ts.map +1 -0
  161. package/dist/cli/backend/src/services/memory/task-log-filter.js +56 -0
  162. package/dist/cli/backend/src/services/memory/task-log-filter.js.map +1 -0
  163. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
  164. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  165. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +34 -11
  166. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  167. package/dist/cli/backend/src/types/decision.types.d.ts +18 -3
  168. package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
  169. package/dist/cli/backend/src/types/v2/open-item.types.d.ts +4 -1
  170. package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -1
  171. package/dist/cli/backend/src/types/v2/open-item.types.js.map +1 -1
  172. package/dist/cli/config/constants.d.ts +73 -0
  173. package/dist/cli/config/constants.d.ts.map +1 -1
  174. package/dist/cli/config/constants.js +80 -0
  175. package/dist/cli/config/constants.js.map +1 -1
  176. package/dist/cli/config/index.d.ts +10 -2
  177. package/dist/cli/config/index.d.ts.map +1 -1
  178. package/dist/cli/config/index.js +2 -2
  179. package/dist/cli/config/index.js.map +1 -1
  180. package/frontend/dist/assets/{index-a6cb8533.js → index-1ee8a9a2.js} +273 -273
  181. package/frontend/dist/assets/index-a79c7852.css +42 -0
  182. package/frontend/dist/index.html +2 -2
  183. package/package.json +2 -1
  184. package/frontend/dist/assets/index-04d192f8.css +0 -42
@@ -0,0 +1,217 @@
1
+ /**
2
+ * OSS/Pro boundary check (issue #809).
3
+ *
4
+ * CLAUDE.md Critical Rule 10 says premium/paid content never lives in the OSS
5
+ * repo. This module turns that prose into a check that fails when:
6
+ *
7
+ * 1. `paid-tier` — a JSON file under `config/templates/` declares
8
+ * `requiredTier` of `pro` or `enterprise` (at any depth);
9
+ * 2. `pro-template-field` — a JSON template under `config/templates/`
10
+ * defines a Pro-only top-level field (`workflows`,
11
+ * `verificationPipeline`, `qualityGates`);
12
+ * 3. `premium-path` — a file path under `config/` has a segment starting
13
+ * with `pro-` or containing `premium` (so `prompt`, `process-` and
14
+ * `improve-` are not matched);
15
+ * 4. `pro-import` — an OSS source file imports or requires `crewly-pro` or
16
+ * `@crewly/pro` (only real import/require specifiers count, never
17
+ * comments or prose).
18
+ *
19
+ * Exceptions live in `config/oss-boundary-allowlist.json`, one entry per
20
+ * path with the rule it is exempt from and a one-line reason.
21
+ *
22
+ * Run locally or in CI with `npm run check:oss-boundary`; the jest suite also
23
+ * runs it against the real tree (see `check-oss-boundary.test.ts`).
24
+ *
25
+ * @module backend/scripts/check-oss-boundary
26
+ */
27
+ import { OSS_BOUNDARY_CONSTANTS } from '../../../config/index.js';
28
+ /** Identifier of one of the four boundary rules */
29
+ export type OssBoundaryRule = (typeof OSS_BOUNDARY_CONSTANTS.RULES)[keyof typeof OSS_BOUNDARY_CONSTANTS.RULES];
30
+ /** A single breach of the OSS/Pro boundary */
31
+ export interface BoundaryViolation {
32
+ /** Which rule was broken */
33
+ rule: OssBoundaryRule;
34
+ /** Repository-relative path, always with `/` separators */
35
+ path: string;
36
+ /** Human-readable explanation of what was found */
37
+ detail: string;
38
+ }
39
+ /** An explicit, reasoned exception to one rule for one path */
40
+ export interface AllowlistEntry {
41
+ /** Rule the path is exempt from */
42
+ rule: OssBoundaryRule;
43
+ /** Repository-relative path; a trailing `/` exempts everything below it */
44
+ path: string;
45
+ /** One-line reason the exception exists */
46
+ reason: string;
47
+ }
48
+ /** Outcome of a boundary check */
49
+ export interface BoundaryReport {
50
+ /** Violations not covered by the allowlist — any of these fails the check */
51
+ violations: BoundaryViolation[];
52
+ /** Violations excused by an allowlist entry */
53
+ allowed: BoundaryViolation[];
54
+ /** Allowlist entries that matched nothing (stale; reported, not fatal) */
55
+ unusedAllowlistEntries: AllowlistEntry[];
56
+ }
57
+ /**
58
+ * Type guard for a rule identifier read from untrusted JSON.
59
+ *
60
+ * @param value - Candidate value
61
+ * @returns true when the value names one of the four rules
62
+ */
63
+ export declare function isOssBoundaryRule(value: unknown): value is OssBoundaryRule;
64
+ /**
65
+ * Recursively lists every file below a directory, skipping `node_modules`,
66
+ * `dist` and `.git`. A missing directory yields no files.
67
+ *
68
+ * @param dir - Absolute directory to walk
69
+ * @returns Absolute file paths, sorted for stable output
70
+ */
71
+ export declare function listFiles(dir: string): string[];
72
+ /**
73
+ * Finds every paid `requiredTier` declaration anywhere inside a JSON value.
74
+ *
75
+ * @param value - Parsed JSON
76
+ * @param pointer - JSON pointer of `value` (empty for the document root)
77
+ * @returns Human-readable descriptions of each paid-tier declaration
78
+ */
79
+ export declare function findPaidTierDeclarations(value: unknown, pointer?: string): string[];
80
+ /**
81
+ * Lists the Pro-only fields a template defines at its top level.
82
+ *
83
+ * @param value - Parsed template JSON
84
+ * @returns Names of the Pro-only fields present
85
+ */
86
+ export declare function findProOnlyTemplateFields(value: unknown): string[];
87
+ /**
88
+ * Returns the path segments that look like Pro or premium content: a segment
89
+ * that starts with `pro-` or contains `premium` (case-insensitive). Whole
90
+ * segments are tested so names like `prompt`, `process-` or `improve-` never
91
+ * match.
92
+ *
93
+ * @param repoPath - `/`-separated path
94
+ * @returns The offending segments, empty when the path is clean
95
+ */
96
+ export declare function findPremiumSegments(repoPath: string): string[];
97
+ /**
98
+ * Blanks out comments in JS/TS source while keeping string literals, so
99
+ * import specifiers can be matched without tripping on commented-out code
100
+ * or prose. Quoted strings end at a newline, which bounds the damage a
101
+ * regex literal containing a quote can do.
102
+ *
103
+ * @param source - Source text
104
+ * @returns The source with every comment replaced by spaces
105
+ */
106
+ export declare function stripComments(source: string): string;
107
+ /**
108
+ * Extracts the module specifiers a source file imports or requires.
109
+ *
110
+ * @param source - JS/TS source text
111
+ * @returns Every specifier found, in order of appearance per pattern
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * extractImportSpecifiers("import a from 'x'; const b = require('y');"); // ['x', 'y']
116
+ * ```
117
+ */
118
+ export declare function extractImportSpecifiers(source: string): string[];
119
+ /**
120
+ * Tells whether a specifier names a forbidden Pro package or one of its
121
+ * subpaths (e.g. `crewly-pro/dist/x`). Look-alikes such as `crewly-protocol`
122
+ * do not match.
123
+ *
124
+ * @param specifier - Module specifier
125
+ * @returns The forbidden package name, or null
126
+ */
127
+ export declare function forbiddenPackageFor(specifier: string): string | null;
128
+ /**
129
+ * Rules 1 and 2: scans JSON under `config/templates/`.
130
+ *
131
+ * @param repoRoot - Absolute repository root
132
+ * @returns Paid-tier and Pro-only-field violations
133
+ * @throws Error when a template file is not valid JSON
134
+ */
135
+ export declare function checkTemplates(repoRoot: string): BoundaryViolation[];
136
+ /**
137
+ * Rule 3: scans every file path under `config/` for Pro/premium segments.
138
+ *
139
+ * @param repoRoot - Absolute repository root
140
+ * @returns Premium-path violations
141
+ */
142
+ export declare function checkConfigPaths(repoRoot: string): BoundaryViolation[];
143
+ /**
144
+ * Lists the source roots rule 4 scans: the fixed roots plus each workspace
145
+ * package's `src` directory.
146
+ *
147
+ * @param repoRoot - Absolute repository root
148
+ * @returns Absolute directories (some may not exist; those scan as empty)
149
+ */
150
+ export declare function sourceRoots(repoRoot: string): string[];
151
+ /**
152
+ * Rule 4: scans OSS source for imports of the Pro package.
153
+ *
154
+ * @param repoRoot - Absolute repository root
155
+ * @returns Pro-import violations
156
+ */
157
+ export declare function checkSourceImports(repoRoot: string): BoundaryViolation[];
158
+ /**
159
+ * Validates the parsed allowlist document.
160
+ *
161
+ * @param value - Parsed allowlist JSON
162
+ * @param source - Where it came from, for error messages
163
+ * @returns The validated entries
164
+ * @throws Error when the document is not `{ "entries": [...] }` or an entry
165
+ * lacks a known rule, a path or a non-empty one-line reason
166
+ */
167
+ export declare function parseAllowlist(value: unknown, source: string): AllowlistEntry[];
168
+ /**
169
+ * Loads the allowlist from the repository. A missing file means no
170
+ * exceptions.
171
+ *
172
+ * @param repoRoot - Absolute repository root
173
+ * @returns The validated entries
174
+ * @throws Error when the file exists but is malformed
175
+ */
176
+ export declare function loadAllowlist(repoRoot: string): AllowlistEntry[];
177
+ /**
178
+ * Tells whether an allowlist entry excuses a violation: same rule, and the
179
+ * path matches exactly or sits below an entry path ending in `/`.
180
+ *
181
+ * @param entry - Allowlist entry
182
+ * @param violation - Violation to test
183
+ * @returns true when the entry covers the violation
184
+ */
185
+ export declare function allowlistCovers(entry: AllowlistEntry, violation: BoundaryViolation): boolean;
186
+ /**
187
+ * Runs all four rules against a repository and applies the allowlist.
188
+ *
189
+ * @param repoRoot - Absolute repository root
190
+ * @param allowlist - Exceptions; defaults to the repository's allowlist file
191
+ * @returns Unexcused violations, excused ones and stale allowlist entries
192
+ * @throws Error when a template or the allowlist is malformed JSON
193
+ *
194
+ * @example
195
+ * ```typescript
196
+ * const report = checkOssBoundary(process.cwd());
197
+ * if (report.violations.length > 0) process.exit(1);
198
+ * ```
199
+ */
200
+ export declare function checkOssBoundary(repoRoot: string, allowlist?: AllowlistEntry[]): BoundaryReport;
201
+ /**
202
+ * Renders a report for the terminal / CI log.
203
+ *
204
+ * @param report - Result of {@link checkOssBoundary}
205
+ * @returns Multi-line text; starts with "OK" or "FAIL"
206
+ */
207
+ export declare function formatReport(report: BoundaryReport): string;
208
+ /**
209
+ * CLI entry: checks the repository and reports.
210
+ *
211
+ * @param repoRoot - Absolute repository root
212
+ * @param log - Sink for the passing report
213
+ * @param error - Sink for the failing report or a malformed-input error
214
+ * @returns Process exit code: success when no unexcused violations
215
+ */
216
+ export declare function runCli(repoRoot: string, log?: (message: string) => void, error?: (message: string) => void): number;
217
+ //# sourceMappingURL=check-oss-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-oss-boundary.d.ts","sourceRoot":"","sources":["../../../../../backend/src/scripts/check-oss-boundary.ts"],"names":[],"mappings":"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"}