@kubbisec/ai-linux-x64 0.1.21 → 0.1.22
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/bin/kubbisec +0 -0
- package/bundled/components/kubbisec-model-selector.js +1 -1
- package/bundled/components/kubbisec-model-selector.js.map +1 -1
- package/bundled/config/config.d.ts.map +1 -1
- package/bundled/config/config.js +2 -4
- package/bundled/config/config.js.map +1 -1
- package/bundled/config/ensure-kbs-project-settings.d.ts +20 -0
- package/bundled/config/ensure-kbs-project-settings.d.ts.map +1 -0
- package/bundled/config/ensure-kbs-project-settings.js +46 -0
- package/bundled/config/ensure-kbs-project-settings.js.map +1 -0
- package/bundled/config/ensure-kubbisec-project-settings.d.ts +2 -0
- package/bundled/config/ensure-kubbisec-project-settings.d.ts.map +1 -1
- package/bundled/config/ensure-kubbisec-project-settings.js +25 -1
- package/bundled/config/ensure-kubbisec-project-settings.js.map +1 -1
- package/bundled/config/kubbisec-extension-manifest.d.ts +1 -1
- package/bundled/config/kubbisec-extension-manifest.d.ts.map +1 -1
- package/bundled/config/kubbisec-extension-manifest.js +0 -1
- package/bundled/config/kubbisec-extension-manifest.js.map +1 -1
- package/bundled/config/materialize-kubbisec-pi-resources.d.ts.map +1 -1
- package/bundled/config/materialize-kubbisec-pi-resources.js +0 -1
- package/bundled/config/materialize-kubbisec-pi-resources.js.map +1 -1
- package/bundled/copy/cli-reference-index.d.ts +1 -5
- package/bundled/copy/cli-reference-index.d.ts.map +1 -1
- package/bundled/copy/cli-reference-index.js +1 -61
- package/bundled/copy/cli-reference-index.js.map +1 -1
- package/bundled/extensions/cli-local-shared.d.ts +10 -0
- package/bundled/extensions/cli-local-shared.d.ts.map +1 -1
- package/bundled/extensions/cli-local-shared.js +11 -0
- package/bundled/extensions/cli-local-shared.js.map +1 -1
- package/bundled/extensions/kubbisec-aspm-local.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-aspm-local.extension.js +14 -25
- package/bundled/extensions/kubbisec-aspm-local.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-clarify.extension.d.ts +1 -1
- package/bundled/extensions/kubbisec-clarify.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-clarify.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-footer.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-footer.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-github-local.extension.d.ts +0 -3
- package/bundled/extensions/kubbisec-github-local.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-github-local.extension.js +403 -68
- package/bundled/extensions/kubbisec-github-local.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-memory.extension.d.ts +1 -1
- package/bundled/extensions/kubbisec-memory.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-naus-local.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-naus-local.extension.js +15 -26
- package/bundled/extensions/kubbisec-naus-local.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-platform-tools.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-platform-tools.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts +1 -1
- package/bundled/extensions/kubbisec-skill-mentions.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-skill-mentions.extension.js +2 -1
- package/bundled/extensions/kubbisec-skill-mentions.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-ui.extension.d.ts.map +1 -1
- package/bundled/extensions/kubbisec-ui.extension.js +30 -19
- package/bundled/extensions/kubbisec-ui.extension.js.map +1 -1
- package/bundled/extensions/kubbisec-workflow.extension.d.ts +1 -1
- package/bundled/extensions/kubbisec-workflow.extension.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/ai/index.d.ts +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/ai/index.js +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.d.ts +7 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.js +30 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-assistant-system-prompt.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.d.ts +7 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.js +14 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/build-chat-system-prompt.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.d.ts +6 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.js +65 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/cli-reference-index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.d.ts +8 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.js +29 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/format-mcp-knowledge.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.d.ts +7 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.js +16 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.d.ts +2 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.js +36 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mcp-instructions.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.d.ts +6 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.js +32 -0
- package/bundled/node_modules/@aspm/shared/dist/ai/product-knowledge/mental-map.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.d.ts +12 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.js +93 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-groups.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.d.ts +13 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.js +79 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/api-key-scope-presets.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/index.d.ts +4 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/index.js +20 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.d.ts +20 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.js +78 -0
- package/bundled/node_modules/@aspm/shared/dist/api-key/migrate-api-key-metadata.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.d.ts +19 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.js +126 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/assistant-thread.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/index.d.ts +1 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/assistant/index.js +1 -0
- package/bundled/node_modules/@aspm/shared/dist/assistant/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/billing/index.d.ts +2 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/index.js +18 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.d.ts +17 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.js +30 -0
- package/bundled/node_modules/@aspm/shared/dist/billing/plan-limits.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.d.ts +42 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.js +147 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/ci-job-dependencies.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.d.ts +12 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.js +70 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/git-checkout-log-policy.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/index.d.ts +4 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/index.js +20 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.d.ts +16 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.js +45 -0
- package/bundled/node_modules/@aspm/shared/dist/ci/kubbisec-ci-execution-env.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.d.ts +1 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.js +6 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/create-report.dto.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/index.d.ts +5 -3
- package/bundled/node_modules/@aspm/shared/dist/dto/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/index.js +5 -3
- package/bundled/node_modules/@aspm/shared/dist/dto/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.d.ts +9 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.js +52 -0
- package/bundled/node_modules/@aspm/shared/dist/dto/update-project.dto.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/enums.d.ts +3 -1
- package/bundled/node_modules/@aspm/shared/dist/enums.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/enums.js +4 -0
- package/bundled/node_modules/@aspm/shared/dist/enums.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/index.d.ts +8 -2
- package/bundled/node_modules/@aspm/shared/dist/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/index.js +8 -2
- package/bundled/node_modules/@aspm/shared/dist/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/mcp/constants.d.ts +22 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/constants.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/constants.js +52 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/constants.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.d.ts +37 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.js +54 -0
- package/bundled/node_modules/@aspm/shared/dist/mcp/oauth-metadata.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.d.ts +7 -4
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.js +15 -7
- package/bundled/node_modules/@aspm/shared/dist/project-scanner-summary.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/index.d.ts +1 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/index.js +1 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permission-descriptions.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permission-descriptions.js +2 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permission-descriptions.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.d.ts +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.js +2 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/kubbisec-permissions.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.d.ts +8 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.js +19 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/member-quota.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/resolve-org-permissions.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/rbac/resolve-org-permissions.js +4 -0
- package/bundled/node_modules/@aspm/shared/dist/rbac/resolve-org-permissions.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/redaction.d.ts +1 -0
- package/bundled/node_modules/@aspm/shared/dist/redaction.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/redaction.js +1 -0
- package/bundled/node_modules/@aspm/shared/dist/redaction.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/redaction.test.d.ts +2 -0
- package/bundled/node_modules/@aspm/shared/dist/redaction.test.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/redaction.test.js +626 -0
- package/bundled/node_modules/@aspm/shared/dist/redaction.test.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/aspm-gate-rules.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/build-aspm-security-matrix-pipeline-yaml.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js +2 -2
- package/bundled/node_modules/@aspm/shared/dist/security/build-github-security-workflow-yaml.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/index.d.ts +2 -2
- package/bundled/node_modules/@aspm/shared/dist/security/index.d.ts.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/security/index.js +2 -2
- package/bundled/node_modules/@aspm/shared/dist/security/index.js.map +1 -1
- package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.d.ts +4 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.js +10 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/constants.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/index.d.ts +4 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/index.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/index.js +20 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/index.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.d.ts +2 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.js +9 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/redact-log-lines.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.d.ts +3 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.d.ts.map +1 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.js +18 -0
- package/bundled/node_modules/@aspm/shared/dist/shared-project/share-prefix.js.map +1 -0
- package/bundled/node_modules/@aspm/shared/package.json +27 -5
- package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js +2 -2
- package/bundled/node_modules/@kubbisec/chat-memory/dist/sanitizer.js.map +1 -1
- package/bundled/node_modules/@kubbisec/chat-memory/package.json +4 -4
- package/bundled/node_modules/@kubbisec/home/dist/migrate.d.ts.map +1 -1
- package/bundled/node_modules/@kubbisec/home/dist/migrate.js +1 -1
- package/bundled/node_modules/@kubbisec/home/dist/migrate.js.map +1 -1
- package/bundled/node_modules/@kubbisec/home/package.json +3 -3
- package/bundled/resolve-bundled-dist-root.js +0 -1
- package/bundled/resolve-bundled-dist-root.js.map +1 -1
- package/bundled/skills/aspm-platform/SKILL.md +3 -1
- package/bundled/skills/github-local/SKILL.md +5 -5
- package/bundled/skills/kubbisec-resource-router/SKILL.md +3 -0
- package/bundled/skills/naus-pipelines/SKILL.md +11 -10
- package/bundled/skills/remediation/SKILL.md +1 -1
- package/bundled/theme/render-compact-header.js +1 -1
- package/bundled/theme/render-compact-header.js.map +1 -1
- package/package.json +1 -1
- package/bundled/clarify/clarify-gate-state.d.ts +0 -3
- package/bundled/clarify/clarify-gate-state.d.ts.map +0 -1
- package/bundled/clarify/clarify-gate-state.js +0 -9
- package/bundled/clarify/clarify-gate-state.js.map +0 -1
- package/bundled/clarify/clarify-gate.d.ts +0 -28
- package/bundled/clarify/clarify-gate.d.ts.map +0 -1
- package/bundled/clarify/clarify-gate.js +0 -152
- package/bundled/clarify/clarify-gate.js.map +0 -1
- package/bundled/clarify/clarify-select-panel.d.ts +0 -14
- package/bundled/clarify/clarify-select-panel.d.ts.map +0 -1
- package/bundled/clarify/clarify-select-panel.js +0 -82
- package/bundled/clarify/clarify-select-panel.js.map +0 -1
- package/bundled/clarify/clarify-ui-state.d.ts +0 -21
- package/bundled/clarify/clarify-ui-state.d.ts.map +0 -1
- package/bundled/clarify/clarify-ui-state.js +0 -48
- package/bundled/clarify/clarify-ui-state.js.map +0 -1
- package/bundled/clarify/parse-clarify-answer.d.ts +0 -21
- package/bundled/clarify/parse-clarify-answer.d.ts.map +0 -1
- package/bundled/clarify/parse-clarify-answer.js +0 -57
- package/bundled/clarify/parse-clarify-answer.js.map +0 -1
- package/bundled/clarify/question-format.d.ts +0 -39
- package/bundled/clarify/question-format.d.ts.map +0 -1
- package/bundled/clarify/question-format.js +0 -144
- package/bundled/clarify/question-format.js.map +0 -1
- package/bundled/clarify/questionnaire-tool.d.ts +0 -25
- package/bundled/clarify/questionnaire-tool.d.ts.map +0 -1
- package/bundled/clarify/questionnaire-tool.js +0 -161
- package/bundled/clarify/questionnaire-tool.js.map +0 -1
- package/bundled/clarify/scope-discovery.d.ts +0 -9
- package/bundled/clarify/scope-discovery.d.ts.map +0 -1
- package/bundled/clarify/scope-discovery.js +0 -130
- package/bundled/clarify/scope-discovery.js.map +0 -1
- package/bundled/clarify/session-questionnaire.d.ts +0 -26
- package/bundled/clarify/session-questionnaire.d.ts.map +0 -1
- package/bundled/clarify/session-questionnaire.js +0 -372
- package/bundled/clarify/session-questionnaire.js.map +0 -1
- package/bundled/clarify/session-questionnaire.types.d.ts +0 -47
- package/bundled/clarify/session-questionnaire.types.d.ts.map +0 -1
- package/bundled/clarify/session-questionnaire.types.js +0 -13
- package/bundled/clarify/session-questionnaire.types.js.map +0 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ASSISTANT_THREAD_TITLE_MAX = exports.ASSISTANT_MAX_ACTIVE_THREADS = exports.ASSISTANT_THREAD_STORAGE_VERSION = void 0;
|
|
4
|
+
exports.deriveAssistantThreadTitle = deriveAssistantThreadTitle;
|
|
5
|
+
exports.extractAssistantMessagePlainText = extractAssistantMessagePlainText;
|
|
6
|
+
exports.extractFirstUserMessagePlainText = extractFirstUserMessagePlainText;
|
|
7
|
+
exports.formatAssistantThreadTitleDisplay = formatAssistantThreadTitleDisplay;
|
|
8
|
+
exports.deriveActiveThreadTitleFromText = deriveActiveThreadTitleFromText;
|
|
9
|
+
exports.composeAssistantThreadIdbKey = composeAssistantThreadIdbKey;
|
|
10
|
+
exports.composeActiveThreadSessionKey = composeActiveThreadSessionKey;
|
|
11
|
+
exports.ASSISTANT_THREAD_STORAGE_VERSION = 2;
|
|
12
|
+
exports.ASSISTANT_MAX_ACTIVE_THREADS = 50;
|
|
13
|
+
exports.ASSISTANT_THREAD_TITLE_MAX = 80;
|
|
14
|
+
function deriveAssistantThreadTitle(firstUserMessage) {
|
|
15
|
+
const line = firstUserMessage.replace(/\s+/g, " ").trim();
|
|
16
|
+
if (!line)
|
|
17
|
+
return "Nova conversa";
|
|
18
|
+
return line.length <= exports.ASSISTANT_THREAD_TITLE_MAX
|
|
19
|
+
? line
|
|
20
|
+
: `${line.slice(0, exports.ASSISTANT_THREAD_TITLE_MAX - 1)}…`;
|
|
21
|
+
}
|
|
22
|
+
function readPlainTextFromBlocks(blocks) {
|
|
23
|
+
const parts = [];
|
|
24
|
+
for (const block of blocks) {
|
|
25
|
+
if (block == null || typeof block !== "object")
|
|
26
|
+
continue;
|
|
27
|
+
const entry = block;
|
|
28
|
+
if (entry.kind === "markdown" && typeof entry.content === "string") {
|
|
29
|
+
parts.push(entry.content);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (typeof entry.content === "string")
|
|
33
|
+
parts.push(entry.content);
|
|
34
|
+
else if (typeof entry.title === "string")
|
|
35
|
+
parts.push(entry.title);
|
|
36
|
+
else if (typeof entry.message === "string")
|
|
37
|
+
parts.push(entry.message);
|
|
38
|
+
}
|
|
39
|
+
return parts.join(" ").replace(/\s+/g, " ").trim();
|
|
40
|
+
}
|
|
41
|
+
/** Extrai texto legível de uma mensagem (content string ou blocks markdown). */
|
|
42
|
+
function extractAssistantMessagePlainText(message) {
|
|
43
|
+
if (message == null || typeof message !== "object")
|
|
44
|
+
return "";
|
|
45
|
+
const record = message;
|
|
46
|
+
if (typeof record.content === "string" && record.content.trim()) {
|
|
47
|
+
return record.content.replace(/\s+/g, " ").trim();
|
|
48
|
+
}
|
|
49
|
+
if (Array.isArray(record.blocks)) {
|
|
50
|
+
return readPlainTextFromBlocks(record.blocks);
|
|
51
|
+
}
|
|
52
|
+
return "";
|
|
53
|
+
}
|
|
54
|
+
function extractFirstUserMessagePlainText(messages) {
|
|
55
|
+
const firstUser = messages.find((item) => item != null &&
|
|
56
|
+
typeof item === "object" &&
|
|
57
|
+
"role" in item &&
|
|
58
|
+
item.role === "user");
|
|
59
|
+
return firstUser ? extractAssistantMessagePlainText(firstUser) : "";
|
|
60
|
+
}
|
|
61
|
+
function decodeJsonStringFragment(value) {
|
|
62
|
+
try {
|
|
63
|
+
return JSON.parse(`"${value}"`).replace(/\s+/g, " ").trim();
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return value.replace(/\\n/g, " ").replace(/\\"/g, '"').replace(/\s+/g, " ").trim();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function stripTitleTruncationEllipsis(value) {
|
|
70
|
+
return value.replace(/…$/u, "").trim();
|
|
71
|
+
}
|
|
72
|
+
function extractPlainTextFromSerializedTitle(title) {
|
|
73
|
+
const trimmed = title.trim();
|
|
74
|
+
const looksSerialized = trimmed.startsWith("[") ||
|
|
75
|
+
trimmed.startsWith("{") ||
|
|
76
|
+
trimmed.includes('"kind":"markdown"') ||
|
|
77
|
+
trimmed.includes('"kind": "markdown"');
|
|
78
|
+
if (!looksSerialized)
|
|
79
|
+
return null;
|
|
80
|
+
try {
|
|
81
|
+
const parsed = JSON.parse(trimmed);
|
|
82
|
+
if (Array.isArray(parsed)) {
|
|
83
|
+
const text = readPlainTextFromBlocks(parsed);
|
|
84
|
+
return text || null;
|
|
85
|
+
}
|
|
86
|
+
if (parsed && typeof parsed === "object") {
|
|
87
|
+
const text = extractAssistantMessagePlainText(parsed);
|
|
88
|
+
return text || null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// JSON truncado ou inválido — tenta regex abaixo
|
|
93
|
+
}
|
|
94
|
+
const closedMatch = trimmed.match(/"content"\s*:\s*"((?:\\.|[^"\\])*)"/);
|
|
95
|
+
if (closedMatch?.[1]) {
|
|
96
|
+
return decodeJsonStringFragment(closedMatch[1]) || null;
|
|
97
|
+
}
|
|
98
|
+
const truncatedMatch = trimmed.match(/"content"\s*:\s*"(.+)$/);
|
|
99
|
+
if (truncatedMatch?.[1]) {
|
|
100
|
+
const text = stripTitleTruncationEllipsis(decodeJsonStringFragment(truncatedMatch[1]));
|
|
101
|
+
return text || null;
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
/** Título amigável para listagens (corrige títulos antigos serializados em JSON). */
|
|
106
|
+
function formatAssistantThreadTitleDisplay(title) {
|
|
107
|
+
const trimmed = title.trim();
|
|
108
|
+
if (!trimmed)
|
|
109
|
+
return "Nova conversa";
|
|
110
|
+
const fromJson = extractPlainTextFromSerializedTitle(trimmed);
|
|
111
|
+
if (fromJson)
|
|
112
|
+
return deriveAssistantThreadTitle(fromJson);
|
|
113
|
+
return trimmed;
|
|
114
|
+
}
|
|
115
|
+
/** Título curto da conversa ativa para o header; null se ainda não há mensagem do utilizador. */
|
|
116
|
+
function deriveActiveThreadTitleFromText(text) {
|
|
117
|
+
const title = deriveAssistantThreadTitle(text);
|
|
118
|
+
return title === "Nova conversa" ? null : title;
|
|
119
|
+
}
|
|
120
|
+
function composeAssistantThreadIdbKey(threadId) {
|
|
121
|
+
return `assistant:thread:v2:${threadId}`;
|
|
122
|
+
}
|
|
123
|
+
function composeActiveThreadSessionKey(input) {
|
|
124
|
+
return `assistant:active-thread:${input.organizationId}:${input.userId}:${input.mode}:${input.entityId}`;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=assistant-thread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-thread.js","sourceRoot":"","sources":["../../src/assistant/assistant-thread.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assistant/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assistant/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC"}
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./assistant-session-key"), exports);
|
|
18
|
+
__exportStar(require("./assistant-thread"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assistant/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assistant/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,qDAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./plan-limits"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/billing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const PLAN_VISIBILITY: readonly ["public", "private", "enterprise"];
|
|
3
|
+
export declare const PLAN_BILLING_MODE: readonly ["stripe_checkout", "contract"];
|
|
4
|
+
export declare const PLAN_PRICE_INTERVAL: readonly ["month", "year"];
|
|
5
|
+
export declare const STRIPE_SYNC_STATUS: readonly ["pending", "synced", "error"];
|
|
6
|
+
export declare const planLimitsSchema: z.ZodObject<{
|
|
7
|
+
maxWorkspaces: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
maxProjects: z.ZodNumber;
|
|
9
|
+
maxMembers: z.ZodNumber;
|
|
10
|
+
}, z.core.$strict>;
|
|
11
|
+
export declare const planFeaturesSchema: z.ZodObject<{
|
|
12
|
+
assistantEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
13
|
+
}, z.core.$strict>;
|
|
14
|
+
export type PlanLimits = z.infer<typeof planLimitsSchema>;
|
|
15
|
+
export type PlanFeatures = z.infer<typeof planFeaturesSchema>;
|
|
16
|
+
export declare function assertBillingModeForVisibility(visibility: (typeof PLAN_VISIBILITY)[number], billingMode: (typeof PLAN_BILLING_MODE)[number]): void;
|
|
17
|
+
//# sourceMappingURL=plan-limits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../../src/billing/plan-limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,8CAA+C,CAAC;AAC5E,eAAO,MAAM,iBAAiB,0CAA2C,CAAC;AAC1E,eAAO,MAAM,mBAAmB,4BAA6B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,yCAA0C,CAAC;AAE1E,eAAO,MAAM,gBAAgB;;;;kBAMlB,CAAC;AAEZ,eAAO,MAAM,kBAAkB;;kBAIpB,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,EAC5C,WAAW,EAAE,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,GAC9C,IAAI,CAON"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.planFeaturesSchema = exports.planLimitsSchema = exports.STRIPE_SYNC_STATUS = exports.PLAN_PRICE_INTERVAL = exports.PLAN_BILLING_MODE = exports.PLAN_VISIBILITY = void 0;
|
|
4
|
+
exports.assertBillingModeForVisibility = assertBillingModeForVisibility;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
exports.PLAN_VISIBILITY = ["public", "private", "enterprise"];
|
|
7
|
+
exports.PLAN_BILLING_MODE = ["stripe_checkout", "contract"];
|
|
8
|
+
exports.PLAN_PRICE_INTERVAL = ["month", "year"];
|
|
9
|
+
exports.STRIPE_SYNC_STATUS = ["pending", "synced", "error"];
|
|
10
|
+
exports.planLimitsSchema = zod_1.z
|
|
11
|
+
.object({
|
|
12
|
+
maxWorkspaces: zod_1.z.number().int().min(0).optional(),
|
|
13
|
+
maxProjects: zod_1.z.number().int().min(0),
|
|
14
|
+
maxMembers: zod_1.z.number().int().min(0),
|
|
15
|
+
})
|
|
16
|
+
.strict();
|
|
17
|
+
exports.planFeaturesSchema = zod_1.z
|
|
18
|
+
.object({
|
|
19
|
+
assistantEnabled: zod_1.z.boolean().default(false),
|
|
20
|
+
})
|
|
21
|
+
.strict();
|
|
22
|
+
function assertBillingModeForVisibility(visibility, billingMode) {
|
|
23
|
+
if (visibility === "enterprise" && billingMode !== "contract") {
|
|
24
|
+
throw new Error("enterprise visibility requires billingMode=contract");
|
|
25
|
+
}
|
|
26
|
+
if (visibility !== "enterprise" && billingMode !== "stripe_checkout") {
|
|
27
|
+
throw new Error("public/private visibility requires billingMode=stripe_checkout");
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=plan-limits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-limits.js","sourceRoot":"","sources":["../../src/billing/plan-limits.ts"],"names":[],"mappings":";;;AAwBA,wEAUC;AAlCD,6BAAwB;AAEX,QAAA,eAAe,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAC/D,QAAA,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAU,CAAC;AAC7D,QAAA,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAU,CAAC;AACjD,QAAA,kBAAkB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAE7D,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,CAAC;IACN,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC;KACD,MAAM,EAAE,CAAC;AAEC,QAAA,kBAAkB,GAAG,OAAC;KAChC,MAAM,CAAC;IACN,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC7C,CAAC;KACD,MAAM,EAAE,CAAC;AAKZ,SAAgB,8BAA8B,CAC5C,UAA4C,EAC5C,WAA+C;IAE/C,IAAI,UAAU,KAAK,YAAY,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,UAAU,KAAK,YAAY,IAAI,WAAW,KAAK,iBAAiB,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolução de `depends_on` após expansão de jobs ASPM (matriz fanout, gate, etc.).
|
|
3
|
+
* Partilhado entre API (lease mTLS) e web (grafo de execução).
|
|
4
|
+
*/
|
|
5
|
+
export declare const TERMINAL_CI_JOB_STATUSES: Set<string>;
|
|
6
|
+
export declare function normalizeDependsOnJson(raw: unknown): string[];
|
|
7
|
+
export declare function isTerminalCiJobStatus(status: string): boolean;
|
|
8
|
+
export declare function isAspmGateJobName(name: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Fanout: `kubbisec_security` → [`kubbisec_security__trivy`, `kubbisec_security__semgrep`].
|
|
11
|
+
* Chain / job simples: mantém o nome quando existe no run.
|
|
12
|
+
*/
|
|
13
|
+
export declare function resolveExpandedDependencyTargets(depName: string, allJobNamesInRun: readonly string[]): string[];
|
|
14
|
+
export declare function buildRunNameStatusIndex(rows: readonly {
|
|
15
|
+
runId: string;
|
|
16
|
+
name: string;
|
|
17
|
+
status: string;
|
|
18
|
+
}[]): Map<string, string>;
|
|
19
|
+
export declare function isJobLeaseableByDependencySnapshot(job: {
|
|
20
|
+
runId: string;
|
|
21
|
+
name?: string;
|
|
22
|
+
dependsOn?: unknown;
|
|
23
|
+
}, statusIndex: Map<string, string>, allJobNamesInRun?: readonly string[]): boolean;
|
|
24
|
+
export type CiJobStatusRow = {
|
|
25
|
+
runId: string;
|
|
26
|
+
name: string;
|
|
27
|
+
status: string;
|
|
28
|
+
dependsOn?: unknown;
|
|
29
|
+
allowFailure?: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** PENDING com dependências ainda não satisfeitas (ex.: gate à espera da matriz). */
|
|
32
|
+
export declare function isCiJobBlockedByDependencies(job: CiJobStatusRow, allJobsInRun: readonly CiJobStatusRow[]): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Status efetivo para UI: distingue PENDING bloqueado vs na fila do runner.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveCiJobDisplayStatus(job: CiJobStatusRow, allJobsInRun: readonly CiJobStatusRow[]): string;
|
|
37
|
+
export type CiRunTerminalStatus = "PENDING" | "RUNNING" | "SUCCESS" | "FAILED" | "CANCELLED";
|
|
38
|
+
/**
|
|
39
|
+
* Deriva status da run a partir dos jobs (quando o registro da run ficou desatualizado).
|
|
40
|
+
*/
|
|
41
|
+
export declare function deriveCiRunStatusFromJobs(jobs: readonly CiJobStatusRow[]): CiRunTerminalStatus;
|
|
42
|
+
//# sourceMappingURL=ci-job-dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-job-dependencies.d.ts","sourceRoot":"","sources":["../../src/ci/ci-job-dependencies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,aAMnC,CAAC;AAEH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAK7D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,SAAS,MAAM,EAAE,GAClC,MAAM,EAAE,CAWV;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAC/D,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB;AAED,wBAAgB,kCAAkC,CAChD,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,gBAAgB,GAAE,SAAS,MAAM,EAAO,GACvC,OAAO,CAkBT;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,qFAAqF;AACrF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,SAAS,cAAc,EAAE,GACtC,OAAO,CAOT;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,SAAS,cAAc,EAAE,GACtC,MAAM,CAQR;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAI7F;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,mBAAmB,CA6C9F"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Resolução de `depends_on` após expansão de jobs ASPM (matriz fanout, gate, etc.).
|
|
4
|
+
* Partilhado entre API (lease mTLS) e web (grafo de execução).
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TERMINAL_CI_JOB_STATUSES = void 0;
|
|
8
|
+
exports.normalizeDependsOnJson = normalizeDependsOnJson;
|
|
9
|
+
exports.isTerminalCiJobStatus = isTerminalCiJobStatus;
|
|
10
|
+
exports.isAspmGateJobName = isAspmGateJobName;
|
|
11
|
+
exports.resolveExpandedDependencyTargets = resolveExpandedDependencyTargets;
|
|
12
|
+
exports.buildRunNameStatusIndex = buildRunNameStatusIndex;
|
|
13
|
+
exports.isJobLeaseableByDependencySnapshot = isJobLeaseableByDependencySnapshot;
|
|
14
|
+
exports.isCiJobBlockedByDependencies = isCiJobBlockedByDependencies;
|
|
15
|
+
exports.resolveCiJobDisplayStatus = resolveCiJobDisplayStatus;
|
|
16
|
+
exports.deriveCiRunStatusFromJobs = deriveCiRunStatusFromJobs;
|
|
17
|
+
exports.TERMINAL_CI_JOB_STATUSES = new Set([
|
|
18
|
+
"SUCCESS",
|
|
19
|
+
"FAILED",
|
|
20
|
+
"CANCELLED",
|
|
21
|
+
"SKIPPED",
|
|
22
|
+
"skipped",
|
|
23
|
+
]);
|
|
24
|
+
function normalizeDependsOnJson(raw) {
|
|
25
|
+
if (!Array.isArray(raw)) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
return raw.filter((x) => typeof x === "string" && x.trim().length > 0);
|
|
29
|
+
}
|
|
30
|
+
function isTerminalCiJobStatus(status) {
|
|
31
|
+
return exports.TERMINAL_CI_JOB_STATUSES.has(status);
|
|
32
|
+
}
|
|
33
|
+
function isAspmGateJobName(name) {
|
|
34
|
+
return name === "kubbisec_gate" || name.endsWith("_gate");
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Fanout: `kubbisec_security` → [`kubbisec_security__trivy`, `kubbisec_security__semgrep`].
|
|
38
|
+
* Chain / job simples: mantém o nome quando existe no run.
|
|
39
|
+
*/
|
|
40
|
+
function resolveExpandedDependencyTargets(depName, allJobNamesInRun) {
|
|
41
|
+
const names = new Set(allJobNamesInRun);
|
|
42
|
+
if (names.has(depName)) {
|
|
43
|
+
return [depName];
|
|
44
|
+
}
|
|
45
|
+
const prefix = `${depName}__`;
|
|
46
|
+
const children = allJobNamesInRun.filter((name) => name.startsWith(prefix));
|
|
47
|
+
if (children.length > 0) {
|
|
48
|
+
return children;
|
|
49
|
+
}
|
|
50
|
+
return [depName];
|
|
51
|
+
}
|
|
52
|
+
function buildRunNameStatusIndex(rows) {
|
|
53
|
+
const map = new Map();
|
|
54
|
+
for (const row of rows) {
|
|
55
|
+
const key = `${row.runId}\0${row.name}`;
|
|
56
|
+
const prev = map.get(key);
|
|
57
|
+
if (prev === "SUCCESS" || row.status === "SUCCESS") {
|
|
58
|
+
map.set(key, "SUCCESS");
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
map.set(key, row.status);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return map;
|
|
65
|
+
}
|
|
66
|
+
function isJobLeaseableByDependencySnapshot(job, statusIndex, allJobNamesInRun = []) {
|
|
67
|
+
const deps = normalizeDependsOnJson(job.dependsOn);
|
|
68
|
+
const gateJob = job.name ? isAspmGateJobName(job.name) : false;
|
|
69
|
+
for (const depName of deps) {
|
|
70
|
+
const targets = resolveExpandedDependencyTargets(depName, allJobNamesInRun);
|
|
71
|
+
for (const targetName of targets) {
|
|
72
|
+
const status = statusIndex.get(`${job.runId}\0${targetName}`);
|
|
73
|
+
if (gateJob) {
|
|
74
|
+
if (!status || !isTerminalCiJobStatus(status)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else if (status !== "SUCCESS") {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
/** PENDING com dependências ainda não satisfeitas (ex.: gate à espera da matriz). */
|
|
86
|
+
function isCiJobBlockedByDependencies(job, allJobsInRun) {
|
|
87
|
+
if (job.status !== "PENDING" && job.status !== "ASSIGNED") {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
const allNames = allJobsInRun.map((row) => row.name);
|
|
91
|
+
const statusIndex = buildRunNameStatusIndex(allJobsInRun);
|
|
92
|
+
return !isJobLeaseableByDependencySnapshot(job, statusIndex, allNames);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Status efetivo para UI: distingue PENDING bloqueado vs na fila do runner.
|
|
96
|
+
*/
|
|
97
|
+
function resolveCiJobDisplayStatus(job, allJobsInRun) {
|
|
98
|
+
if (job.status === "PENDING") {
|
|
99
|
+
if (isCiJobBlockedByDependencies(job, allJobsInRun)) {
|
|
100
|
+
return "BLOCKED";
|
|
101
|
+
}
|
|
102
|
+
return "QUEUED";
|
|
103
|
+
}
|
|
104
|
+
return job.status;
|
|
105
|
+
}
|
|
106
|
+
const ACTIVE_CI_JOB_STATUSES = new Set(["RUNNING", "ASSIGNED", "running"]);
|
|
107
|
+
/**
|
|
108
|
+
* Deriva status da run a partir dos jobs (quando o registro da run ficou desatualizado).
|
|
109
|
+
*/
|
|
110
|
+
function deriveCiRunStatusFromJobs(jobs) {
|
|
111
|
+
if (jobs.length === 0) {
|
|
112
|
+
return "PENDING";
|
|
113
|
+
}
|
|
114
|
+
if (jobs.some((job) => ACTIVE_CI_JOB_STATUSES.has(job.status))) {
|
|
115
|
+
return "RUNNING";
|
|
116
|
+
}
|
|
117
|
+
const allNames = jobs.map((job) => job.name);
|
|
118
|
+
const statusIndex = buildRunNameStatusIndex(jobs);
|
|
119
|
+
const hasHardFailure = jobs.some((job) => job.status === "FAILED" && !job.allowFailure);
|
|
120
|
+
const pendingJobs = jobs.filter((job) => job.status === "PENDING" || job.status === "ASSIGNED");
|
|
121
|
+
if (hasHardFailure) {
|
|
122
|
+
if (pendingJobs.length > 0 &&
|
|
123
|
+
pendingJobs.every((job) => !isJobLeaseableByDependencySnapshot(job, statusIndex, allNames))) {
|
|
124
|
+
return "FAILED";
|
|
125
|
+
}
|
|
126
|
+
if (pendingJobs.length === 0) {
|
|
127
|
+
return "FAILED";
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (pendingJobs.length > 0) {
|
|
131
|
+
return "RUNNING";
|
|
132
|
+
}
|
|
133
|
+
if (jobs.every((job) => job.status === "SUCCESS" || isTerminalCiJobStatus(job.status))) {
|
|
134
|
+
if (jobs.some((job) => job.status === "FAILED" && !job.allowFailure)) {
|
|
135
|
+
return "FAILED";
|
|
136
|
+
}
|
|
137
|
+
if (jobs.some((job) => job.status === "CANCELLED")) {
|
|
138
|
+
return "CANCELLED";
|
|
139
|
+
}
|
|
140
|
+
return "SUCCESS";
|
|
141
|
+
}
|
|
142
|
+
if (jobs.some((job) => job.status === "CANCELLED")) {
|
|
143
|
+
return "CANCELLED";
|
|
144
|
+
}
|
|
145
|
+
return "SUCCESS";
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=ci-job-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-job-dependencies.js","sourceRoot":"","sources":["../../src/ci/ci-job-dependencies.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAUH,wDAKC;AAED,sDAEC;AAED,8CAEC;AAMD,4EAcC;AAED,0DAcC;AAED,gFAsBC;AAWD,oEAUC;AAKD,8DAWC;AASD,8DA6CC;AA5KY,QAAA,wBAAwB,GAAG,IAAI,GAAG,CAAC;IAC9C,SAAS;IACT,QAAQ;IACR,WAAW;IACX,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,SAAgB,sBAAsB,CAAC,GAAY;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAc;IAClD,OAAO,gCAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAgB,gCAAgC,CAC9C,OAAe,EACf,gBAAmC;IAEnC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAED,SAAgB,uBAAuB,CACrC,IAAgE;IAEhE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,kCAAkC,CAChD,GAA0D,EAC1D,WAAgC,EAChC,mBAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAE/D,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,gCAAgC,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC5E,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC,CAAC;YAC9D,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC9C,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,qFAAqF;AACrF,SAAgB,4BAA4B,CAC1C,GAAmB,EACnB,YAAuC;IAEvC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAC1D,OAAO,CAAC,kCAAkC,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CACvC,GAAmB,EACnB,YAAuC;IAEvC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,4BAA4B,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC;AACpB,CAAC;AAID,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAE3E;;GAEG;AACH,SAAgB,yBAAyB,CAAC,IAA+B;IACvE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IAEhG,IAAI,cAAc,EAAE,CAAC;QACnB,IACE,WAAW,CAAC,MAAM,GAAG,CAAC;YACtB,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,kCAAkC,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAC3F,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACvF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACrE,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;YACnD,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE,CAAC;QACnD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const KUBBISEC_GIT_CLONE_JOB_NAME = "kubbisec_git_clone";
|
|
2
|
+
export declare const GIT_CHECKOUT_STARTED_LINE = "[kubbisec] Git checkout started";
|
|
3
|
+
export declare const GIT_CHECKOUT_IN_PROGRESS_LINE = "[kubbisec] Git checkout in progress\u2026";
|
|
4
|
+
export declare const GIT_CHECKOUT_COMPLETED_LINE = "[kubbisec] Git checkout completed";
|
|
5
|
+
export declare const GIT_CHECKOUT_FAILURE_LINE = "[kubbisec] Git checkout failed \u2014 verifique o token do reposit\u00F3rio na configura\u00E7\u00E3o do projeto";
|
|
6
|
+
export declare function isGitCheckoutJob(jobName: string | undefined): boolean;
|
|
7
|
+
export declare function isBlockedGitCheckoutLogLine(line: string): boolean;
|
|
8
|
+
export declare function isAllowlistedGitCheckoutLogLine(line: string): boolean;
|
|
9
|
+
export declare function filterGitCheckoutLogLine(line: string): string | null;
|
|
10
|
+
export declare function filterGitCheckoutLogLines(lines: string[]): string[];
|
|
11
|
+
export declare function normalizeGitCheckoutFailureLine(): string;
|
|
12
|
+
//# sourceMappingURL=git-checkout-log-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-checkout-log-policy.d.ts","sourceRoot":"","sources":["../../src/ci/git-checkout-log-policy.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAEhE,eAAO,MAAM,yBAAyB,oCAAoC,CAAC;AAC3E,eAAO,MAAM,6BAA6B,8CAAyC,CAAC;AACpF,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAC/E,eAAO,MAAM,yBAAyB,qHAC0D,CAAC;AAoBjG,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAErE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASrE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpE;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CASnE;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CAExD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GIT_CHECKOUT_FAILURE_LINE = exports.GIT_CHECKOUT_COMPLETED_LINE = exports.GIT_CHECKOUT_IN_PROGRESS_LINE = exports.GIT_CHECKOUT_STARTED_LINE = exports.KUBBISEC_GIT_CLONE_JOB_NAME = void 0;
|
|
4
|
+
exports.isGitCheckoutJob = isGitCheckoutJob;
|
|
5
|
+
exports.isBlockedGitCheckoutLogLine = isBlockedGitCheckoutLogLine;
|
|
6
|
+
exports.isAllowlistedGitCheckoutLogLine = isAllowlistedGitCheckoutLogLine;
|
|
7
|
+
exports.filterGitCheckoutLogLine = filterGitCheckoutLogLine;
|
|
8
|
+
exports.filterGitCheckoutLogLines = filterGitCheckoutLogLines;
|
|
9
|
+
exports.normalizeGitCheckoutFailureLine = normalizeGitCheckoutFailureLine;
|
|
10
|
+
exports.KUBBISEC_GIT_CLONE_JOB_NAME = "kubbisec_git_clone";
|
|
11
|
+
exports.GIT_CHECKOUT_STARTED_LINE = "[kubbisec] Git checkout started";
|
|
12
|
+
exports.GIT_CHECKOUT_IN_PROGRESS_LINE = "[kubbisec] Git checkout in progress…";
|
|
13
|
+
exports.GIT_CHECKOUT_COMPLETED_LINE = "[kubbisec] Git checkout completed";
|
|
14
|
+
exports.GIT_CHECKOUT_FAILURE_LINE = "[kubbisec] Git checkout failed — verifique o token do repositório na configuração do projeto";
|
|
15
|
+
const ALLOWLIST_PREFIXES = [
|
|
16
|
+
"[kubbisec] Git checkout",
|
|
17
|
+
"[clone] preparing workspace",
|
|
18
|
+
"[kubbisec] syncing repository",
|
|
19
|
+
];
|
|
20
|
+
const BLOCK_PATTERNS = [
|
|
21
|
+
/x-access-token:/i,
|
|
22
|
+
/oauth2:/i,
|
|
23
|
+
/\bghp_[a-zA-Z0-9]+/,
|
|
24
|
+
/\bgithub_pat_/,
|
|
25
|
+
/\bgit clone\b/i,
|
|
26
|
+
/\bgit fetch\b/i,
|
|
27
|
+
/\bgit remote\b/i,
|
|
28
|
+
/clone_auth/i,
|
|
29
|
+
/\[naus\] init clone:/i,
|
|
30
|
+
];
|
|
31
|
+
function isGitCheckoutJob(jobName) {
|
|
32
|
+
return jobName === exports.KUBBISEC_GIT_CLONE_JOB_NAME;
|
|
33
|
+
}
|
|
34
|
+
function isBlockedGitCheckoutLogLine(line) {
|
|
35
|
+
const normalized = line.replace(/^\[stderr\]\s*/, "");
|
|
36
|
+
return BLOCK_PATTERNS.some((re) => re.test(normalized));
|
|
37
|
+
}
|
|
38
|
+
function isAllowlistedGitCheckoutLogLine(line) {
|
|
39
|
+
const normalized = line.replace(/^\[stderr\]\s*/, "").trim();
|
|
40
|
+
if (!normalized) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (normalized === exports.GIT_CHECKOUT_FAILURE_LINE) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
return ALLOWLIST_PREFIXES.some((prefix) => normalized.startsWith(prefix));
|
|
47
|
+
}
|
|
48
|
+
function filterGitCheckoutLogLine(line) {
|
|
49
|
+
if (isBlockedGitCheckoutLogLine(line)) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
if (isAllowlistedGitCheckoutLogLine(line)) {
|
|
53
|
+
return line.replace(/^\[stderr\]\s*/, "").trim();
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
function filterGitCheckoutLogLines(lines) {
|
|
58
|
+
const out = [];
|
|
59
|
+
for (const line of lines) {
|
|
60
|
+
const kept = filterGitCheckoutLogLine(line);
|
|
61
|
+
if (kept) {
|
|
62
|
+
out.push(kept);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
function normalizeGitCheckoutFailureLine() {
|
|
68
|
+
return exports.GIT_CHECKOUT_FAILURE_LINE;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=git-checkout-log-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-checkout-log-policy.js","sourceRoot":"","sources":["../../src/ci/git-checkout-log-policy.ts"],"names":[],"mappings":";;;AA0BA,4CAEC;AAED,kEAGC;AAED,0EASC;AAED,4DAQC;AAED,8DASC;AAED,0EAEC;AArEY,QAAA,2BAA2B,GAAG,oBAAoB,CAAC;AAEnD,QAAA,yBAAyB,GAAG,iCAAiC,CAAC;AAC9D,QAAA,6BAA6B,GAAG,sCAAsC,CAAC;AACvE,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAClE,QAAA,yBAAyB,GACpC,8FAA8F,CAAC;AAEjG,MAAM,kBAAkB,GAAG;IACzB,yBAAyB;IACzB,6BAA6B;IAC7B,+BAA+B;CACvB,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,kBAAkB;IAClB,UAAU;IACV,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,uBAAuB;CACf,CAAC;AAEX,SAAgB,gBAAgB,CAAC,OAA2B;IAC1D,OAAO,OAAO,KAAK,mCAA2B,CAAC;AACjD,CAAC;AAED,SAAgB,2BAA2B,CAAC,IAAY;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACtD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,+BAA+B,CAAC,IAAY;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,UAAU,KAAK,iCAAyB,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAgB,wBAAwB,CAAC,IAAY;IACnD,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,+BAA+B,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,yBAAyB,CAAC,KAAe;IACvD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,+BAA+B;IAC7C,OAAO,iCAAyB,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ci/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ci-job-dependencies"), exports);
|
|
18
|
+
__exportStar(require("./git-checkout-log-policy"), exports);
|
|
19
|
+
__exportStar(require("./kubbisec-ci-execution-env"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ci/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,4DAA0C;AAC1C,8DAA4C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const KUBBISEC_CI_EXECUTION_ENV: {
|
|
2
|
+
readonly NAUS: "NAUS";
|
|
3
|
+
readonly RUN_ID: "KUBBISEC_CI_RUN_ID";
|
|
4
|
+
readonly PIPELINE_ID: "KUBBISEC_CI_PIPELINE_ID";
|
|
5
|
+
readonly TRIGGER: "KUBBISEC_CI_TRIGGER";
|
|
6
|
+
readonly PROVIDER: "KUBBISEC_CI_PROVIDER";
|
|
7
|
+
};
|
|
8
|
+
export type KubbisecCiExecutionEnvInput = {
|
|
9
|
+
runId?: string | null;
|
|
10
|
+
pipelineId?: string | null;
|
|
11
|
+
trigger?: string | null;
|
|
12
|
+
};
|
|
13
|
+
/** Variáveis públicas (não sensíveis) injetadas nos jobs Naus/KubbiSec CI para proveniência ASPM. */
|
|
14
|
+
export declare function buildKubbisecCiExecutionEnv(input: KubbisecCiExecutionEnvInput): Record<string, string>;
|
|
15
|
+
export declare function formatExecutionTriggerLabel(trigger: string | null | undefined): string;
|
|
16
|
+
//# sourceMappingURL=kubbisec-ci-execution-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kubbisec-ci-execution-env.d.ts","sourceRoot":"","sources":["../../src/ci/kubbisec-ci-execution-env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAC;AAEX,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,qGAAqG;AACrG,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,2BAA2B,GACjC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAatF"}
|