crewly 1.20.183 → 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.
- package/config/constants.ts +83 -0
- package/config/index.ts +2 -0
- package/config/oss-boundary-allowlist.json +10 -0
- package/config/skills/agent/core/ask-owner/SKILL.md +5 -2
- package/config/skills/agent/core/complete-task/execute.sh +4 -12
- package/config/skills/agent/core/complete-task/execute.test.sh +11 -0
- package/config/skills/agent/core/report-status/SKILL.md +1 -1
- package/config/skills/agent/core/report-status/execute.sh +5 -10
- package/dist/backend/backend/src/constants.d.ts +84 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +79 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts +11 -1
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.js +38 -0
- package/dist/backend/backend/src/controllers/decisions/decisions.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/google/google.controller.js +3 -2
- package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts +34 -0
- package/dist/backend/backend/src/controllers/request/open-items.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/request/open-items.controller.js +96 -0
- package/dist/backend/backend/src/controllers/request/open-items.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts +3 -0
- package/dist/backend/backend/src/controllers/request/request.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/request/request.routes.js +9 -0
- package/dist/backend/backend/src/controllers/request/request.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts +5 -2
- package/dist/backend/backend/src/controllers/standing/standing.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/standing/standing.controller.js +3 -1
- package/dist/backend/backend/src/controllers/standing/standing.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +72 -2
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/scripts/check-oss-boundary.d.ts +217 -0
- package/dist/backend/backend/src/scripts/check-oss-boundary.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/check-oss-boundary.js +490 -0
- package/dist/backend/backend/src/scripts/check-oss-boundary.js.map +1 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.d.ts +16 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.d.ts.map +1 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.js +112 -0
- package/dist/backend/backend/src/scripts/open-items-backfill.js.map +1 -0
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +4 -2
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +3 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -1
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js +15 -4
- package/dist/backend/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +11 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +20 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts +31 -4
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.js +60 -2
- package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-skip-command.d.ts +56 -0
- package/dist/backend/backend/src/services/decisions/decision-skip-command.d.ts.map +1 -0
- package/dist/backend/backend/src/services/decisions/decision-skip-command.js +108 -0
- package/dist/backend/backend/src/services/decisions/decision-skip-command.js.map +1 -0
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +113 -3
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +199 -13
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts +8 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +25 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +19 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/agent-memory.service.js +48 -0
- package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/memory.service.js +20 -0
- package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.d.ts +40 -0
- package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/project-memory.service.js +101 -0
- package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts +1 -1
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -1
- package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +61 -1
- package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/standing-answers.service.js +71 -3
- package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts +7 -4
- package/dist/backend/backend/src/services/memory/standing-refresh.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/memory/standing-refresh.service.js +18 -9
- package/dist/backend/backend/src/services/memory/standing-refresh.service.js.map +1 -1
- package/dist/backend/backend/src/services/memory/task-log-filter.d.ts +27 -0
- package/dist/backend/backend/src/services/memory/task-log-filter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/memory/task-log-filter.js +56 -0
- package/dist/backend/backend/src/services/memory/task-log-filter.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts +66 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.js +208 -0
- package/dist/backend/backend/src/services/open-items/open-item-card.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts +114 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.js +394 -0
- package/dist/backend/backend/src/services/open-items/open-item-extractor.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts +95 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.js +203 -0
- package/dist/backend/backend/src/services/open-items/open-items-backfill.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +367 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.js +880 -0
- package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts +44 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js +185 -0
- package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +4 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +34 -11
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/request.service.js +15 -1
- package/dist/backend/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.js +5 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-process.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-process.service.js +4 -2
- package/dist/backend/backend/src/services/wiki/wiki-process.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-queue.service.d.ts +103 -1
- package/dist/backend/backend/src/services/wiki/wiki-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-queue.service.js +171 -20
- package/dist/backend/backend/src/services/wiki/wiki-queue.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts +60 -0
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +121 -7
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/types/decision.types.d.ts +33 -4
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.d.ts +2 -0
- package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/index.js +1 -0
- package/dist/backend/backend/src/types/v2/index.js.map +1 -1
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts +76 -0
- package/dist/backend/backend/src/types/v2/open-item.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/v2/open-item.types.js +14 -0
- package/dist/backend/backend/src/types/v2/open-item.types.js.map +1 -0
- package/dist/backend/backend/src/types/v2/request.types.d.ts +22 -1
- package/dist/backend/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/request.types.js +10 -5
- package/dist/backend/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/backend/config/constants.d.ts +73 -0
- package/dist/backend/config/constants.d.ts.map +1 -1
- package/dist/backend/config/constants.js +80 -0
- package/dist/backend/config/constants.js.map +1 -1
- package/dist/backend/config/index.d.ts +10 -2
- package/dist/backend/config/index.d.ts.map +1 -1
- package/dist/backend/config/index.js +2 -2
- package/dist/backend/config/index.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +84 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +79 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +4 -2
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts +3 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.d.ts.map +1 -1
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js +15 -4
- package/dist/cli/backend/src/services/ai/prompt-modules/standing-answers.module.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +11 -0
- package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +20 -0
- package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts +31 -4
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.js +60 -2
- package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +113 -3
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision.service.js +199 -13
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +19 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/agent-memory.service.js +48 -0
- package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/memory.service.js +20 -0
- package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts +40 -0
- package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/project-memory.service.js +101 -0
- package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts +1 -1
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/role-knowledge-eligibility.js.map +1 -1
- package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +61 -1
- package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/memory/standing-answers.service.js +71 -3
- package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -1
- package/dist/cli/backend/src/services/memory/task-log-filter.d.ts +27 -0
- package/dist/cli/backend/src/services/memory/task-log-filter.d.ts.map +1 -0
- package/dist/cli/backend/src/services/memory/task-log-filter.js +56 -0
- package/dist/cli/backend/src/services/memory/task-log-filter.js.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts +66 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.d.ts.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.js +208 -0
- package/dist/cli/backend/src/services/open-items/open-item-card.js.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts +114 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.d.ts.map +1 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.js +394 -0
- package/dist/cli/backend/src/services/open-items/open-item-extractor.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +13 -0
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +34 -11
- package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/request.service.js +15 -1
- package/dist/cli/backend/src/services/v3/request.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.js +5 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +33 -4
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.d.ts +2 -0
- package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/index.js +1 -0
- package/dist/cli/backend/src/types/v2/index.js.map +1 -1
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts +76 -0
- package/dist/cli/backend/src/types/v2/open-item.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/v2/open-item.types.js +14 -0
- package/dist/cli/backend/src/types/v2/open-item.types.js.map +1 -0
- package/dist/cli/backend/src/types/v2/request.types.d.ts +22 -1
- package/dist/cli/backend/src/types/v2/request.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/request.types.js +10 -5
- package/dist/cli/backend/src/types/v2/request.types.js.map +1 -1
- package/dist/cli/config/constants.d.ts +73 -0
- package/dist/cli/config/constants.d.ts.map +1 -1
- package/dist/cli/config/constants.js +80 -0
- package/dist/cli/config/constants.js.map +1 -1
- package/dist/cli/config/index.d.ts +10 -2
- package/dist/cli/config/index.d.ts.map +1 -1
- package/dist/cli/config/index.js +2 -2
- package/dist/cli/config/index.js.map +1 -1
- package/frontend/dist/assets/{index-9c91de50.js → index-1ee8a9a2.js} +273 -273
- package/frontend/dist/assets/index-a79c7852.css +42 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +2 -1
- 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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"}
|