@shepai/cli 1.174.0 → 1.175.0-pr527.9ada632
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/apis/json-schema/ActionDispositionEntry.yaml +14 -0
- package/apis/json-schema/DependencyFinding.yaml +28 -0
- package/apis/json-schema/DependencyRiskType.yaml +11 -0
- package/apis/json-schema/DependencyRules.yaml +38 -0
- package/apis/json-schema/EffectivePolicySnapshot.yaml +24 -0
- package/apis/json-schema/ReleaseIntegrityCheck.yaml +22 -0
- package/apis/json-schema/ReleaseIntegrityCheckType.yaml +9 -0
- package/apis/json-schema/ReleaseIntegrityResult.yaml +16 -0
- package/apis/json-schema/ReleaseRules.yaml +21 -0
- package/apis/json-schema/Repository.yaml +6 -0
- package/apis/json-schema/SecurityActionCategory.yaml +10 -0
- package/apis/json-schema/SecurityActionDisposition.yaml +8 -0
- package/apis/json-schema/SecurityConfig.yaml +17 -0
- package/apis/json-schema/SecurityEvent.yaml +36 -0
- package/apis/json-schema/SecurityMode.yaml +8 -0
- package/apis/json-schema/SecurityPolicy.yaml +24 -0
- package/apis/json-schema/SecuritySeverity.yaml +9 -0
- package/apis/json-schema/Settings.yaml +3 -0
- package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts +15 -1
- package/dist/packages/core/src/application/ports/output/agents/agent-executor.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts +3 -1
- package/dist/packages/core/src/application/ports/output/agents/feature-agent-process.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts +3 -1
- package/dist/packages/core/src/application/ports/output/repositories/repository-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.d.ts +76 -0
- package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/security-event.repository.interface.js +11 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +28 -0
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +2 -0
- package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts +85 -0
- package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/github-repository-service.interface.js +21 -0
- package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.d.ts +77 -0
- package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/security-policy-service.interface.js +13 -0
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts +11 -0
- package/dist/packages/core/src/application/ports/output/services/spec-initializer.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/approve-agent-run.use-case.js +2 -0
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/agents/reject-agent-run.use-case.js +2 -0
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/check-and-unblock-features.use-case.js +2 -0
- package/dist/packages/core/src/application/use-cases/features/create/create-feature-from-remote.use-case.d.ts +67 -0
- package/dist/packages/core/src/application/use-cases/features/create/create-feature-from-remote.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/features/create/create-feature-from-remote.use-case.js +128 -0
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/create/create-feature.use-case.js +1 -0
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/resume-feature.use-case.js +2 -0
- package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/start-feature.use-case.js +2 -0
- package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.d.ts +16 -5
- package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/import-github-repository.use-case.js +76 -14
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts +30 -0
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.js +51 -0
- package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.d.ts +71 -0
- package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/security/enforce-security.use-case.js +215 -0
- package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.d.ts +24 -0
- package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/security/evaluate-security-policy.use-case.js +56 -0
- package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.d.ts +36 -0
- package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/security/get-security-state.use-case.js +76 -0
- package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.d.ts +14 -0
- package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/security/record-security-event.use-case.js +46 -0
- package/dist/packages/core/src/domain/errors/security-violation.error.d.ts +15 -0
- package/dist/packages/core/src/domain/errors/security-violation.error.d.ts.map +1 -0
- package/dist/packages/core/src/domain/errors/security-violation.error.js +20 -0
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.d.ts.map +1 -1
- package/dist/packages/core/src/domain/factories/settings-defaults.factory.js +5 -1
- package/dist/packages/core/src/domain/generated/output.d.ts +267 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +43 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +67 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/repository.mapper.js +4 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts +44 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.js +55 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +3 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +14 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.d.ts +18 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.js +31 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.d.ts +29 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.js +53 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-repository-fork-fields.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-repository-fork-fields.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/055-add-repository-fork-fields.js +26 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts +2 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-repository.repository.js +14 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts +24 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.js +96 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +12 -3
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/claude-code-executor.service.js +12 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.d.ts +22 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/common/executors/security-constraint-validator.js +30 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts +10 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/fast-feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts +34 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-process.service.js +7 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +3 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.js +32 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +19 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.d.ts +45 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/security-pre-check.js +70 -0
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts +4 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/state.js +10 -0
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +13 -1
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.js +155 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +15 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +62 -0
- package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.d.ts +53 -0
- package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/security/dependency-risk-evaluator.js +241 -0
- package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.d.ts +44 -0
- package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/security/release-integrity-evaluator.js +194 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.d.ts +28 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy-file-reader.js +50 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.d.ts +26 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy-validator.js +147 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy.service.d.ts +44 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/security/security-policy.service.js +174 -0
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/spec/spec-initializer.service.js +61 -0
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +32 -6
- package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/index.js +3 -1
- package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts +15 -0
- package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/repo/init-remote.command.js +44 -0
- package/dist/src/presentation/cli/commands/security.command.d.ts +16 -0
- package/dist/src/presentation/cli/commands/security.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/security.command.js +118 -0
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/(dashboard)/get-graph-data.js +2 -1
- package/dist/src/presentation/web/app/actions/create-feature-from-remote.d.ts +31 -0
- package/dist/src/presentation/web/app/actions/create-feature-from-remote.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/create-feature-from-remote.js +69 -0
- package/dist/src/presentation/web/app/actions/import-github-repository.d.ts +1 -0
- package/dist/src/presentation/web/app/actions/import-github-repository.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/import-github-repository.js +1 -1
- package/dist/src/presentation/web/app/actions/security.d.ts +28 -0
- package/dist/src/presentation/web/app/actions/security.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/security.js +59 -0
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts +3 -1
- package/dist/src/presentation/web/app/build-graph-nodes.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-graph-nodes.js +2 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.js +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/repository-combobox.stories.d.ts +2 -0
- package/dist/src/presentation/web/components/common/feature-create-drawer/repository-combobox.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/repository-combobox.stories.js +22 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +3 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts +3 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-drawer.js +3 -2
- package/dist/src/presentation/web/components/common/repository-node/security-panel.d.ts +6 -0
- package/dist/src/presentation/web/components/common/repository-node/security-panel.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/repository-node/security-panel.js +29 -0
- package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.d.ts +10 -0
- package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/repository-node/security-panel.stories.js +53 -0
- package/dist/src/presentation/web/components/common/security-badge.d.ts +7 -0
- package/dist/src/presentation/web/components/common/security-badge.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/security-badge.js +30 -0
- package/dist/src/presentation/web/components/common/security-badge.stories.d.ts +12 -0
- package/dist/src/presentation/web/components/common/security-badge.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/common/security-badge.stories.js +20 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +16 -3
- package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.js +60 -0
- package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.d.ts +14 -0
- package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.js +116 -0
- package/dist/src/presentation/web/lib/feature-flags.js +1 -1
- package/dist/translations/ar/cli.json +32 -0
- package/dist/translations/ar/web.json +43 -1
- package/dist/translations/de/cli.json +32 -0
- package/dist/translations/de/web.json +43 -1
- package/dist/translations/en/cli.json +32 -0
- package/dist/translations/en/web.json +43 -1
- package/dist/translations/es/cli.json +32 -0
- package/dist/translations/es/web.json +43 -1
- package/dist/translations/fr/cli.json +32 -0
- package/dist/translations/fr/web.json +43 -1
- package/dist/translations/he/cli.json +32 -0
- package/dist/translations/he/web.json +43 -1
- package/dist/translations/pt/cli.json +32 -0
- package/dist/translations/pt/web.json +43 -1
- package/dist/translations/ru/cli.json +32 -0
- package/dist/translations/ru/web.json +43 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js +2 -1
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/create/page.js +2 -1
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +38 -38
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js +2 -1
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/web/.next/server/app/api/sessions-batch/route.js.nft.json +1 -1
- package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +33 -18
- package/web/.next/server/app/settings/page.js +1 -1
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/skills/page.js +2 -1
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js +2 -1
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_370c43b1.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__c78383b1._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +3 -0
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +1 -0
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a2d6c0ac._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a2d6c0ac._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
- package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_08eaf4b1._.js +3 -0
- package/web/.next/server/chunks/ssr/_08eaf4b1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
- package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js +1 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_3686b70d._.js +3 -0
- package/web/.next/server/chunks/ssr/_3686b70d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_3a71f39b._.js → _45286124._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_3a71f39b._.js.map → _45286124._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js +1 -1
- package/web/.next/server/chunks/ssr/_4cbb7f95._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
- package/web/.next/server/chunks/ssr/_6abfa39e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_783debcb._.js +9 -0
- package/web/.next/server/chunks/ssr/_783debcb._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_7953be4d._.js → _d943aad7._.js} +2 -2
- package/web/.next/server/chunks/ssr/_d943aad7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js +4 -0
- package/web/.next/server/chunks/ssr/_f8c55130._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_ff04802c._.js +3 -0
- package/web/.next/server/chunks/ssr/_ff04802c._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ca99d62d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +1 -0
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +74 -59
- package/web/.next/static/chunks/{ad47bc6ddec7508e.js → 128f165077681f87.js} +2 -2
- package/web/.next/static/chunks/20ec94c610d07a10.css +1 -0
- package/web/.next/static/chunks/2ceebcc839ee0d4b.js +1 -0
- package/web/.next/static/chunks/{6bc240cd4ae43267.js → 34e82d5f47b938e3.js} +1 -1
- package/web/.next/static/chunks/38c5a2cc4ce5d4d2.js +1 -0
- package/web/.next/static/chunks/3aba9d2242420cb5.js +1 -0
- package/web/.next/static/chunks/4981e52ed9b5dea3.js +1 -0
- package/web/.next/static/chunks/{a060ad1bb509687f.js → 4a909223df60de49.js} +1 -1
- package/web/.next/static/chunks/5858b85217fd0ead.js +1 -0
- package/web/.next/static/chunks/{a2a03ecb10000974.js → 68a0d1e04c636c09.js} +1 -1
- package/web/.next/static/chunks/{393b27ab5de6c454.js → 85473115de724a77.js} +1 -1
- package/web/.next/static/chunks/{d9c9db1823b4dffd.js → 8a5c7d80045a8f49.js} +2 -2
- package/web/.next/static/chunks/{5a2e1c8699897c26.js → 90c687976b254681.js} +3 -3
- package/web/.next/static/chunks/aab749e78b4c10bc.js +1 -0
- package/web/.next/static/chunks/{534194b584a151ed.js → ac18577f94d63177.js} +1 -1
- package/web/.next/static/chunks/ae81796726a9bba3.js +1 -0
- package/web/.next/static/chunks/{6dc0a23d333274ae.js → af9ee4accaa11f83.js} +2 -2
- package/web/.next/static/chunks/{c164b157638b2a8b.js → b082a6bb7e17b701.js} +1 -1
- package/web/.next/static/chunks/{b49ab0b290e9342d.js → b46545caae3b4930.js} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4fb81977._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7dcd0917._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__92ffd5ee._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__b020c17d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__ba7f5873._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c5e09f6f._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_02e01240._.js +0 -4
- package/web/.next/server/chunks/ssr/_02e01240._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_18886033._.js +0 -4
- package/web/.next/server/chunks/ssr/_18886033._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_22e00a14._.js +0 -4
- package/web/.next/server/chunks/ssr/_22e00a14._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_43ba79e7._.js +0 -3
- package/web/.next/server/chunks/ssr/_43ba79e7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7953be4d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_7cb0396e._.js +0 -3
- package/web/.next/server/chunks/ssr/_7cb0396e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_a5a5901d._.js +0 -4
- package/web/.next/server/chunks/ssr/_a5a5901d._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_ad09f271._.js +0 -4
- package/web/.next/server/chunks/ssr/_ad09f271._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_c3f595c6._.js +0 -4
- package/web/.next/server/chunks/ssr/_c3f595c6._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_e680c57c._.js +0 -9
- package/web/.next/server/chunks/ssr/_e680c57c._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_ea9e1556._.js +0 -4
- package/web/.next/server/chunks/ssr/_ea9e1556._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js +0 -6
- package/web/.next/server/chunks/ssr/_f1ba9be6._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f33cd07e._.js +0 -6
- package/web/.next/server/chunks/ssr/_f33cd07e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f8b45233._.js +0 -4
- package/web/.next/server/chunks/ssr/_f8b45233._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_fd595af2._.js +0 -3
- package/web/.next/server/chunks/ssr/_fd595af2._.js.map +0 -1
- package/web/.next/static/chunks/0baf5a2e56d191cf.js +0 -1
- package/web/.next/static/chunks/32c46154c31c58fc.js +0 -1
- package/web/.next/static/chunks/84b480808bd74fa9.css +0 -1
- package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
- package/web/.next/static/chunks/b65e555419a0c664.js +0 -1
- package/web/.next/static/chunks/e30aa6d2cf824fa1.js +0 -1
- package/web/.next/static/chunks/f5abbc495d496f5b.js +0 -1
- /package/web/.next/static/{nLYXtW5TIrvQiMl1yyD4O → PEEwFezIwaFMSsCXbx5zQ}/_buildManifest.js +0 -0
- /package/web/.next/static/{nLYXtW5TIrvQiMl1yyD4O → PEEwFezIwaFMSsCXbx5zQ}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{nLYXtW5TIrvQiMl1yyD4O → PEEwFezIwaFMSsCXbx5zQ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useTransition, useRef, useEffect } from 'react';
|
|
4
|
+
import { Shield, Check, AlertTriangle, ShieldAlert, ShieldOff } from 'lucide-react';
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { cn } from '../../../lib/utils.js';
|
|
8
|
+
import { Badge } from '../../ui/badge.js';
|
|
9
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '../../ui/select.js';
|
|
10
|
+
import { updateSecurityModeAction } from '../../../app/actions/security.js';
|
|
11
|
+
import { SecurityMode } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
12
|
+
const MODE_OPTIONS = [
|
|
13
|
+
{ value: SecurityMode.Disabled, icon: ShieldOff },
|
|
14
|
+
{ value: SecurityMode.Advisory, icon: Shield },
|
|
15
|
+
{ value: SecurityMode.Enforce, icon: ShieldAlert },
|
|
16
|
+
];
|
|
17
|
+
const SEVERITY_COLORS = {
|
|
18
|
+
Low: 'bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300',
|
|
19
|
+
Medium: 'bg-yellow-100 text-yellow-700 dark:bg-yellow-900/40 dark:text-yellow-300',
|
|
20
|
+
High: 'bg-orange-100 text-orange-700 dark:bg-orange-900/40 dark:text-orange-300',
|
|
21
|
+
Critical: 'bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300',
|
|
22
|
+
};
|
|
23
|
+
export function SupplyChainSecuritySettingsSection({ securityState, }) {
|
|
24
|
+
const { t } = useTranslation('web');
|
|
25
|
+
const [mode, setMode] = useState(securityState.mode);
|
|
26
|
+
const [isPending, startTransition] = useTransition();
|
|
27
|
+
const [showSaved, setShowSaved] = useState(false);
|
|
28
|
+
const prevPendingRef = useRef(false);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (prevPendingRef.current && !isPending) {
|
|
31
|
+
setShowSaved(true);
|
|
32
|
+
const timer = setTimeout(() => setShowSaved(false), 2000);
|
|
33
|
+
return () => clearTimeout(timer);
|
|
34
|
+
}
|
|
35
|
+
prevPendingRef.current = isPending;
|
|
36
|
+
}, [isPending]);
|
|
37
|
+
function handleModeChange(value) {
|
|
38
|
+
const newMode = value;
|
|
39
|
+
setMode(newMode);
|
|
40
|
+
startTransition(async () => {
|
|
41
|
+
const result = await updateSecurityModeAction(newMode);
|
|
42
|
+
if (!result.success) {
|
|
43
|
+
toast.error(result.error ?? t('settings.failedToSave'));
|
|
44
|
+
setMode(securityState.mode);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const lastEvalDisplay = securityState.lastEvaluationAt
|
|
49
|
+
? new Date(securityState.lastEvaluationAt).toLocaleString()
|
|
50
|
+
: t('settings.security.lastEvaluationNever');
|
|
51
|
+
const policySourceDisplay = securityState.policySource ?? t('settings.security.policySourceNone');
|
|
52
|
+
return (_jsxs("div", { className: "bg-background rounded-lg border", "data-testid": "security-settings-section", children: [_jsxs("div", { className: "bg-muted/30 border-b px-4 py-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Shield, { className: "text-muted-foreground h-3.5 w-3.5" }), _jsx("h2", { className: "text-sm font-semibold", children: t('settings.security.sectionTitle') }), isPending ? (_jsx("span", { className: "text-muted-foreground text-xs", children: t('settings.saving') })) : null, showSaved && !isPending ? (_jsxs("span", { className: "flex items-center gap-1 text-xs text-green-600", children: [_jsx(Check, { className: "h-3 w-3" }), t('settings.saved')] })) : null] }), _jsx("p", { className: "text-muted-foreground mt-0.5 text-[11px]", children: t('settings.security.sectionDescription') })] }), _jsxs("div", { className: "px-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-4 border-b py-2.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("label", { htmlFor: "security-mode", className: "cursor-pointer text-sm font-normal whitespace-nowrap", children: t('settings.security.mode') }), _jsx("p", { className: "text-muted-foreground text-[11px] leading-tight", children: t('settings.security.modeDescription') })] }), _jsx("div", { className: "flex shrink-0 items-center gap-2", children: _jsxs(Select, { value: mode, onValueChange: handleModeChange, children: [_jsx(SelectTrigger, { id: "security-mode", "data-testid": "security-mode-select", className: "w-40 cursor-pointer text-xs", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: MODE_OPTIONS.map((opt) => {
|
|
53
|
+
const Icon = opt.icon;
|
|
54
|
+
return (_jsx(SelectItem, { value: opt.value, children: _jsxs("span", { className: "flex items-center gap-2 text-xs", children: [_jsx(Icon, { className: "h-3.5 w-3.5 shrink-0" }), t(`settings.security.mode${opt.value}`)] }) }, opt.value));
|
|
55
|
+
}) })] }) })] }), _jsxs("div", { className: "flex items-center justify-between gap-4 border-b py-2.5", children: [_jsx("div", { className: "min-w-0", children: _jsx("span", { className: "text-sm font-normal whitespace-nowrap", children: t('settings.security.policySource') }) }), _jsx("span", { className: "text-muted-foreground max-w-50 truncate font-mono text-xs", children: policySourceDisplay })] }), _jsxs("div", { className: "flex items-center justify-between gap-4 border-b py-2.5", children: [_jsx("div", { className: "min-w-0", children: _jsx("span", { className: "text-sm font-normal whitespace-nowrap", children: t('settings.security.lastEvaluation') }) }), _jsx("span", { className: "text-muted-foreground text-xs", children: lastEvalDisplay })] }), _jsxs("div", { className: "py-2.5 last:border-b-0", children: [_jsx("div", { className: "mb-2", children: _jsx("span", { className: "text-sm font-normal", children: t('settings.security.recentFindings') }) }), securityState.recentEvents.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-xs", children: t('settings.security.noFindings') })) : (_jsx("div", { className: "flex flex-col gap-1.5", children: securityState.recentEvents.slice(0, 5).map((event) => (_jsxs("div", { className: "flex items-start gap-2 rounded-md border px-2.5 py-1.5", children: [_jsx(AlertTriangle, { className: cn('mt-0.5 h-3 w-3 shrink-0', event.severity === 'Critical' || event.severity === 'High'
|
|
56
|
+
? 'text-red-500'
|
|
57
|
+
: event.severity === 'Medium'
|
|
58
|
+
? 'text-yellow-500'
|
|
59
|
+
: 'text-blue-500') }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Badge, { variant: "secondary", className: cn('px-1 py-0 text-[9px]', SEVERITY_COLORS[event.severity]), children: t(`settings.security.severity.${event.severity}`) }), _jsx("span", { className: "text-muted-foreground text-[10px]", children: event.category })] }), _jsx("p", { className: "mt-0.5 truncate text-[11px]", children: event.message })] })] }, event.id))) }))] })] })] }));
|
|
60
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { SupplyChainSecuritySettingsSection } from './supply-chain-security-settings-section.js';
|
|
3
|
+
declare const meta: Meta<typeof SupplyChainSecuritySettingsSection>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof SupplyChainSecuritySettingsSection>;
|
|
6
|
+
/** Advisory mode with no findings — default posture for new repositories. */
|
|
7
|
+
export declare const AdvisoryNoFindings: Story;
|
|
8
|
+
/** Disabled mode — security enforcement is turned off. */
|
|
9
|
+
export declare const Disabled: Story;
|
|
10
|
+
/** Enforce mode with a critical finding. */
|
|
11
|
+
export declare const EnforceWithCriticalFinding: Story;
|
|
12
|
+
/** Advisory mode with multiple findings of varying severity. */
|
|
13
|
+
export declare const AdvisoryWithMultipleFindings: Story;
|
|
14
|
+
//# sourceMappingURL=supply-chain-security-settings-section.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supply-chain-security-settings-section.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/supply-chain-security-settings-section.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAG9F,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,kCAAkC,CAIzD,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,kCAAkC,CAAC,CAAC;AAUjE,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,EAAE,KAIhC,CAAC;AAEF,0DAA0D;AAC1D,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,0BAA0B,EAAE,KAgCxC,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,4BAA4B,EAAE,KAkD1C,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { SecurityMode, SecuritySeverity, SecurityActionCategory, SecurityActionDisposition, } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
2
|
+
import { SupplyChainSecuritySettingsSection } from './supply-chain-security-settings-section.js';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Settings/SupplyChainSecuritySettingsSection',
|
|
5
|
+
component: SupplyChainSecuritySettingsSection,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
};
|
|
8
|
+
export default meta;
|
|
9
|
+
const baseState = {
|
|
10
|
+
mode: SecurityMode.Advisory,
|
|
11
|
+
lastEvaluationAt: null,
|
|
12
|
+
policySource: null,
|
|
13
|
+
recentEvents: [],
|
|
14
|
+
highestSeverityFinding: null,
|
|
15
|
+
};
|
|
16
|
+
/** Advisory mode with no findings — default posture for new repositories. */
|
|
17
|
+
export const AdvisoryNoFindings = {
|
|
18
|
+
args: {
|
|
19
|
+
securityState: baseState,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
/** Disabled mode — security enforcement is turned off. */
|
|
23
|
+
export const Disabled = {
|
|
24
|
+
args: {
|
|
25
|
+
securityState: {
|
|
26
|
+
...baseState,
|
|
27
|
+
mode: SecurityMode.Disabled,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
/** Enforce mode with a critical finding. */
|
|
32
|
+
export const EnforceWithCriticalFinding = {
|
|
33
|
+
args: {
|
|
34
|
+
securityState: {
|
|
35
|
+
mode: SecurityMode.Enforce,
|
|
36
|
+
lastEvaluationAt: new Date().toISOString(),
|
|
37
|
+
policySource: 'shep.security.yaml',
|
|
38
|
+
recentEvents: [
|
|
39
|
+
{
|
|
40
|
+
id: 'evt-1',
|
|
41
|
+
repositoryPath: '/path/to/repo',
|
|
42
|
+
severity: SecuritySeverity.Critical,
|
|
43
|
+
category: SecurityActionCategory.PublishRelease,
|
|
44
|
+
disposition: SecurityActionDisposition.Denied,
|
|
45
|
+
message: 'Missing npm provenance configuration in release workflow',
|
|
46
|
+
remediationSummary: 'Add --provenance flag to npm publish step',
|
|
47
|
+
createdAt: new Date().toISOString(),
|
|
48
|
+
updatedAt: new Date().toISOString(),
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
highestSeverityFinding: {
|
|
52
|
+
id: 'evt-1',
|
|
53
|
+
repositoryPath: '/path/to/repo',
|
|
54
|
+
severity: SecuritySeverity.Critical,
|
|
55
|
+
category: SecurityActionCategory.PublishRelease,
|
|
56
|
+
disposition: SecurityActionDisposition.Denied,
|
|
57
|
+
message: 'Missing npm provenance configuration in release workflow',
|
|
58
|
+
remediationSummary: 'Add --provenance flag to npm publish step',
|
|
59
|
+
createdAt: new Date().toISOString(),
|
|
60
|
+
updatedAt: new Date().toISOString(),
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
/** Advisory mode with multiple findings of varying severity. */
|
|
66
|
+
export const AdvisoryWithMultipleFindings = {
|
|
67
|
+
args: {
|
|
68
|
+
securityState: {
|
|
69
|
+
mode: SecurityMode.Advisory,
|
|
70
|
+
lastEvaluationAt: new Date(Date.now() - 3600000).toISOString(),
|
|
71
|
+
policySource: 'shep.security.yaml',
|
|
72
|
+
recentEvents: [
|
|
73
|
+
{
|
|
74
|
+
id: 'evt-1',
|
|
75
|
+
repositoryPath: '/path/to/repo',
|
|
76
|
+
severity: SecuritySeverity.High,
|
|
77
|
+
category: SecurityActionCategory.DependencyInstall,
|
|
78
|
+
disposition: SecurityActionDisposition.Denied,
|
|
79
|
+
message: 'Package has postinstall lifecycle script: malicious-pkg@1.0.0',
|
|
80
|
+
createdAt: new Date().toISOString(),
|
|
81
|
+
updatedAt: new Date().toISOString(),
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: 'evt-2',
|
|
85
|
+
repositoryPath: '/path/to/repo',
|
|
86
|
+
severity: SecuritySeverity.Medium,
|
|
87
|
+
category: SecurityActionCategory.CiWorkflowModify,
|
|
88
|
+
disposition: SecurityActionDisposition.Allowed,
|
|
89
|
+
message: '[Governance Audit] Branch protection not enabled on main',
|
|
90
|
+
createdAt: new Date().toISOString(),
|
|
91
|
+
updatedAt: new Date().toISOString(),
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
id: 'evt-3',
|
|
95
|
+
repositoryPath: '/path/to/repo',
|
|
96
|
+
severity: SecuritySeverity.Low,
|
|
97
|
+
category: SecurityActionCategory.DependencyInstall,
|
|
98
|
+
disposition: SecurityActionDisposition.Allowed,
|
|
99
|
+
message: 'Dependency uses git source instead of registry: lodash@git+https://...',
|
|
100
|
+
createdAt: new Date().toISOString(),
|
|
101
|
+
updatedAt: new Date().toISOString(),
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
highestSeverityFinding: {
|
|
105
|
+
id: 'evt-1',
|
|
106
|
+
repositoryPath: '/path/to/repo',
|
|
107
|
+
severity: SecuritySeverity.High,
|
|
108
|
+
category: SecurityActionCategory.DependencyInstall,
|
|
109
|
+
disposition: SecurityActionDisposition.Denied,
|
|
110
|
+
message: 'Package has postinstall lifecycle script: malicious-pkg@1.0.0',
|
|
111
|
+
createdAt: new Date().toISOString(),
|
|
112
|
+
updatedAt: new Date().toISOString(),
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
};
|
|
@@ -36,7 +36,7 @@ export function getFeatureFlags() {
|
|
|
36
36
|
? isEnabled(process.env.NEXT_PUBLIC_FLAG_ENV_DEPLOY)
|
|
37
37
|
: true,
|
|
38
38
|
debug: false,
|
|
39
|
-
githubImport:
|
|
39
|
+
githubImport: true,
|
|
40
40
|
adoptBranch: false,
|
|
41
41
|
gitRebaseSync: false,
|
|
42
42
|
reactFileManager: isEnabled(process.env.NEXT_PUBLIC_FLAG_REACT_FILE_MANAGER),
|
|
@@ -187,6 +187,26 @@
|
|
|
187
187
|
"failedToList": "خطأ في عرض الأدوات: {{error}}"
|
|
188
188
|
}
|
|
189
189
|
},
|
|
190
|
+
"security": {
|
|
191
|
+
"description": "Supply-chain security policy management",
|
|
192
|
+
"enforce": {
|
|
193
|
+
"description": "Evaluate repository security posture and enforce policy",
|
|
194
|
+
"repoOption": "Repository path (defaults to current directory)",
|
|
195
|
+
"outputOption": "Output format (table, json, yaml)",
|
|
196
|
+
"passed": "Security enforcement passed",
|
|
197
|
+
"failed": "Security enforcement failed",
|
|
198
|
+
"advisoryNote": "Mode is Advisory — findings are reported but do not block",
|
|
199
|
+
"disabledNote": "Security mode is Disabled — no checks performed",
|
|
200
|
+
"modeLabel": "Mode",
|
|
201
|
+
"sourceLabel": "Source",
|
|
202
|
+
"dependencyFindingsLabel": "Dependency Findings",
|
|
203
|
+
"releaseIntegrityLabel": "Release Integrity",
|
|
204
|
+
"totalFindingsLabel": "Total Findings",
|
|
205
|
+
"governanceFindingsLabel": "GitHub Governance (audit-only)",
|
|
206
|
+
"noFindings": "No findings",
|
|
207
|
+
"failedToEnforce": "Failed to evaluate security posture"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
190
210
|
"feat": {
|
|
191
211
|
"description": "إدارة الميزات عبر دورة حياة تطوير البرمجيات",
|
|
192
212
|
"new": {
|
|
@@ -209,6 +229,9 @@
|
|
|
209
229
|
"injectSkillsOption": "Inject curated skills into the worktree",
|
|
210
230
|
"noInjectSkillsOption": "Skip skill injection for this invocation",
|
|
211
231
|
"attachOption": "إرفاق ملف (قابل للتكرار)",
|
|
232
|
+
"remoteOption": "GitHub URL or owner/repo — clone (or fork) then create feature",
|
|
233
|
+
"remoteConflict": "Cannot use --remote with --repo. --remote clones the repo first.",
|
|
234
|
+
"forkedInfo": "Auto-forked (no push access to original)",
|
|
212
235
|
"parentNotFound": "الميزة الأصلية غير موجودة: {{id}}",
|
|
213
236
|
"attachmentNotFound": "المرفق غير موجود: {{path}}",
|
|
214
237
|
"spinnerText": "جارٍ التفكير",
|
|
@@ -438,6 +461,15 @@
|
|
|
438
461
|
"cloneFailed": "فشل الاستنساخ: {{error}}",
|
|
439
462
|
"failedToImport": "فشل استيراد المستودع"
|
|
440
463
|
},
|
|
464
|
+
"initRemote": {
|
|
465
|
+
"description": "Create a GitHub repository from the current local repo",
|
|
466
|
+
"nameArgument": "Repository name (defaults to directory name)",
|
|
467
|
+
"publicOption": "Create a public repository (default: private)",
|
|
468
|
+
"orgOption": "GitHub organization to create the repo under",
|
|
469
|
+
"created": "GitHub repository created: {{name}}",
|
|
470
|
+
"urlLabel": "URL:",
|
|
471
|
+
"failed": "Failed to create GitHub repository"
|
|
472
|
+
},
|
|
441
473
|
"ls": {
|
|
442
474
|
"description": "عرض المستودعات المتتبعة",
|
|
443
475
|
"title": "المستودعات",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"flags": "العلامات",
|
|
16
16
|
"chat": "المحادثة",
|
|
17
17
|
"layout": "التخطيط",
|
|
18
|
-
"database": "قاعدة البيانات"
|
|
18
|
+
"database": "قاعدة البيانات",
|
|
19
|
+
"security": "Security"
|
|
19
20
|
},
|
|
20
21
|
"language": {
|
|
21
22
|
"title": "اللغة",
|
|
@@ -224,6 +225,47 @@
|
|
|
224
225
|
"swapPositionDescription": "نقل زر المحادثة إلى اليسار وزر الإنشاء إلى اليمين",
|
|
225
226
|
"hint": "يوجد زران عائمان (إنشاء ومحادثة) في الزوايا السفلية لمركز التحكم. قم بتفعيل هذا الخيار لتبديل مواضعهما."
|
|
226
227
|
},
|
|
228
|
+
"security": {
|
|
229
|
+
"title": "Supply Chain Security",
|
|
230
|
+
"sectionTitle": "Supply Chain Security",
|
|
231
|
+
"sectionDescription": "Configure security mode and review policy enforcement findings",
|
|
232
|
+
"mode": "Security mode",
|
|
233
|
+
"modeDescription": "Controls how the policy engine responds to violations",
|
|
234
|
+
"modeDisabled": "Disabled",
|
|
235
|
+
"modeAdvisory": "Advisory",
|
|
236
|
+
"modeEnforce": "Enforce",
|
|
237
|
+
"policySource": "Policy source",
|
|
238
|
+
"policySourceNone": "No policy loaded",
|
|
239
|
+
"lastEvaluation": "Last evaluation",
|
|
240
|
+
"lastEvaluationNever": "Never",
|
|
241
|
+
"recentFindings": "Recent findings",
|
|
242
|
+
"noFindings": "No security findings recorded",
|
|
243
|
+
"runEnforcement": "Run enforcement",
|
|
244
|
+
"running": "Running...",
|
|
245
|
+
"severity": {
|
|
246
|
+
"Low": "Low",
|
|
247
|
+
"Medium": "Medium",
|
|
248
|
+
"High": "High",
|
|
249
|
+
"Critical": "Critical"
|
|
250
|
+
},
|
|
251
|
+
"hint": "Security mode controls how the policy engine handles violations. Advisory mode logs findings without blocking. Enforce mode blocks risky actions and fails builds.",
|
|
252
|
+
"links": {
|
|
253
|
+
"securitySpec": "Security spec"
|
|
254
|
+
},
|
|
255
|
+
"badge": {
|
|
256
|
+
"advisory": "Security: Advisory",
|
|
257
|
+
"enforce": "Security: Enforce",
|
|
258
|
+
"disabled": "Security: Disabled"
|
|
259
|
+
},
|
|
260
|
+
"panel": {
|
|
261
|
+
"title": "Security",
|
|
262
|
+
"governance": "Governance",
|
|
263
|
+
"dependencies": "Dependencies",
|
|
264
|
+
"noFindings": "No security findings",
|
|
265
|
+
"findingsByCategory": "Findings by category",
|
|
266
|
+
"totalFindings": "{{count}} finding(s)"
|
|
267
|
+
}
|
|
268
|
+
},
|
|
227
269
|
"database": {
|
|
228
270
|
"title": "قاعدة البيانات",
|
|
229
271
|
"description": "مسار قاعدة البيانات وإدارتها",
|
|
@@ -187,6 +187,26 @@
|
|
|
187
187
|
"failedToList": "Fehler beim Auflisten der Tools: {{error}}"
|
|
188
188
|
}
|
|
189
189
|
},
|
|
190
|
+
"security": {
|
|
191
|
+
"description": "Supply-chain security policy management",
|
|
192
|
+
"enforce": {
|
|
193
|
+
"description": "Evaluate repository security posture and enforce policy",
|
|
194
|
+
"repoOption": "Repository path (defaults to current directory)",
|
|
195
|
+
"outputOption": "Output format (table, json, yaml)",
|
|
196
|
+
"passed": "Security enforcement passed",
|
|
197
|
+
"failed": "Security enforcement failed",
|
|
198
|
+
"advisoryNote": "Mode is Advisory — findings are reported but do not block",
|
|
199
|
+
"disabledNote": "Security mode is Disabled — no checks performed",
|
|
200
|
+
"modeLabel": "Mode",
|
|
201
|
+
"sourceLabel": "Source",
|
|
202
|
+
"dependencyFindingsLabel": "Dependency Findings",
|
|
203
|
+
"releaseIntegrityLabel": "Release Integrity",
|
|
204
|
+
"totalFindingsLabel": "Total Findings",
|
|
205
|
+
"governanceFindingsLabel": "GitHub Governance (audit-only)",
|
|
206
|
+
"noFindings": "No findings",
|
|
207
|
+
"failedToEnforce": "Failed to evaluate security posture"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
190
210
|
"feat": {
|
|
191
211
|
"description": "Features durch den SDLC-Lebenszyklus verwalten",
|
|
192
212
|
"new": {
|
|
@@ -209,6 +229,9 @@
|
|
|
209
229
|
"injectSkillsOption": "Inject curated skills into the worktree",
|
|
210
230
|
"noInjectSkillsOption": "Skip skill injection for this invocation",
|
|
211
231
|
"attachOption": "Eine Datei anhängen (wiederholbar)",
|
|
232
|
+
"remoteOption": "GitHub URL or owner/repo — clone (or fork) then create feature",
|
|
233
|
+
"remoteConflict": "Cannot use --remote with --repo. --remote clones the repo first.",
|
|
234
|
+
"forkedInfo": "Auto-forked (no push access to original)",
|
|
212
235
|
"parentNotFound": "Übergeordnetes Feature nicht gefunden: {{id}}",
|
|
213
236
|
"attachmentNotFound": "Anhang nicht gefunden: {{path}}",
|
|
214
237
|
"spinnerText": "Denke nach",
|
|
@@ -438,6 +461,15 @@
|
|
|
438
461
|
"cloneFailed": "Klonen fehlgeschlagen: {{error}}",
|
|
439
462
|
"failedToImport": "Repository konnte nicht importiert werden"
|
|
440
463
|
},
|
|
464
|
+
"initRemote": {
|
|
465
|
+
"description": "Create a GitHub repository from the current local repo",
|
|
466
|
+
"nameArgument": "Repository name (defaults to directory name)",
|
|
467
|
+
"publicOption": "Create a public repository (default: private)",
|
|
468
|
+
"orgOption": "GitHub organization to create the repo under",
|
|
469
|
+
"created": "GitHub repository created: {{name}}",
|
|
470
|
+
"urlLabel": "URL:",
|
|
471
|
+
"failed": "Failed to create GitHub repository"
|
|
472
|
+
},
|
|
441
473
|
"ls": {
|
|
442
474
|
"description": "Verfolgte Repositories auflisten",
|
|
443
475
|
"title": "Repositories",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"flags": "Flags",
|
|
16
16
|
"chat": "Chat",
|
|
17
17
|
"layout": "Layout",
|
|
18
|
-
"database": "Datenbank"
|
|
18
|
+
"database": "Datenbank",
|
|
19
|
+
"security": "Security"
|
|
19
20
|
},
|
|
20
21
|
"language": {
|
|
21
22
|
"title": "Sprache",
|
|
@@ -224,6 +225,47 @@
|
|
|
224
225
|
"swapPositionDescription": "Chat-Button nach links und Erstellen-Button nach rechts verschieben",
|
|
225
226
|
"hint": "Die zwei schwebenden Aktionsschaltflächen (Erstellen und Chat) befinden sich in den unteren Ecken des Kontrollzentrums. Aktivieren Sie diese Option, um ihre Positionen zu tauschen."
|
|
226
227
|
},
|
|
228
|
+
"security": {
|
|
229
|
+
"title": "Supply Chain Security",
|
|
230
|
+
"sectionTitle": "Supply Chain Security",
|
|
231
|
+
"sectionDescription": "Configure security mode and review policy enforcement findings",
|
|
232
|
+
"mode": "Security mode",
|
|
233
|
+
"modeDescription": "Controls how the policy engine responds to violations",
|
|
234
|
+
"modeDisabled": "Disabled",
|
|
235
|
+
"modeAdvisory": "Advisory",
|
|
236
|
+
"modeEnforce": "Enforce",
|
|
237
|
+
"policySource": "Policy source",
|
|
238
|
+
"policySourceNone": "No policy loaded",
|
|
239
|
+
"lastEvaluation": "Last evaluation",
|
|
240
|
+
"lastEvaluationNever": "Never",
|
|
241
|
+
"recentFindings": "Recent findings",
|
|
242
|
+
"noFindings": "No security findings recorded",
|
|
243
|
+
"runEnforcement": "Run enforcement",
|
|
244
|
+
"running": "Running...",
|
|
245
|
+
"severity": {
|
|
246
|
+
"Low": "Low",
|
|
247
|
+
"Medium": "Medium",
|
|
248
|
+
"High": "High",
|
|
249
|
+
"Critical": "Critical"
|
|
250
|
+
},
|
|
251
|
+
"hint": "Security mode controls how the policy engine handles violations. Advisory mode logs findings without blocking. Enforce mode blocks risky actions and fails builds.",
|
|
252
|
+
"links": {
|
|
253
|
+
"securitySpec": "Security spec"
|
|
254
|
+
},
|
|
255
|
+
"badge": {
|
|
256
|
+
"advisory": "Security: Advisory",
|
|
257
|
+
"enforce": "Security: Enforce",
|
|
258
|
+
"disabled": "Security: Disabled"
|
|
259
|
+
},
|
|
260
|
+
"panel": {
|
|
261
|
+
"title": "Security",
|
|
262
|
+
"governance": "Governance",
|
|
263
|
+
"dependencies": "Dependencies",
|
|
264
|
+
"noFindings": "No security findings",
|
|
265
|
+
"findingsByCategory": "Findings by category",
|
|
266
|
+
"totalFindings": "{{count}} finding(s)"
|
|
267
|
+
}
|
|
268
|
+
},
|
|
227
269
|
"database": {
|
|
228
270
|
"title": "Datenbank",
|
|
229
271
|
"description": "Datenbankpfad und -verwaltung",
|
|
@@ -187,6 +187,26 @@
|
|
|
187
187
|
"failedToList": "Error listing tools: {{error}}"
|
|
188
188
|
}
|
|
189
189
|
},
|
|
190
|
+
"security": {
|
|
191
|
+
"description": "Supply-chain security policy management",
|
|
192
|
+
"enforce": {
|
|
193
|
+
"description": "Evaluate repository security posture and enforce policy",
|
|
194
|
+
"repoOption": "Repository path (defaults to current directory)",
|
|
195
|
+
"outputOption": "Output format (table, json, yaml)",
|
|
196
|
+
"passed": "Security enforcement passed",
|
|
197
|
+
"failed": "Security enforcement failed",
|
|
198
|
+
"advisoryNote": "Mode is Advisory — findings are reported but do not block",
|
|
199
|
+
"disabledNote": "Security mode is Disabled — no checks performed",
|
|
200
|
+
"modeLabel": "Mode",
|
|
201
|
+
"sourceLabel": "Source",
|
|
202
|
+
"dependencyFindingsLabel": "Dependency Findings",
|
|
203
|
+
"releaseIntegrityLabel": "Release Integrity",
|
|
204
|
+
"totalFindingsLabel": "Total Findings",
|
|
205
|
+
"governanceFindingsLabel": "GitHub Governance (audit-only)",
|
|
206
|
+
"noFindings": "No findings",
|
|
207
|
+
"failedToEnforce": "Failed to evaluate security posture"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
190
210
|
"feat": {
|
|
191
211
|
"description": "Manage features through the SDLC lifecycle",
|
|
192
212
|
"new": {
|
|
@@ -209,6 +229,9 @@
|
|
|
209
229
|
"injectSkillsOption": "Inject curated skills into the worktree",
|
|
210
230
|
"noInjectSkillsOption": "Skip skill injection for this invocation",
|
|
211
231
|
"attachOption": "Attach a file (repeatable)",
|
|
232
|
+
"remoteOption": "GitHub URL or owner/repo — clone (or fork) then create feature",
|
|
233
|
+
"remoteConflict": "Cannot use --remote with --repo. --remote clones the repo first.",
|
|
234
|
+
"forkedInfo": "Auto-forked (no push access to original)",
|
|
212
235
|
"parentNotFound": "Parent feature not found: {{id}}",
|
|
213
236
|
"attachmentNotFound": "Attachment not found: {{path}}",
|
|
214
237
|
"spinnerText": "Thinking",
|
|
@@ -438,6 +461,15 @@
|
|
|
438
461
|
"cloneFailed": "Clone failed: {{error}}",
|
|
439
462
|
"failedToImport": "Failed to import repository"
|
|
440
463
|
},
|
|
464
|
+
"initRemote": {
|
|
465
|
+
"description": "Create a GitHub repository from the current local repo",
|
|
466
|
+
"nameArgument": "Repository name (defaults to directory name)",
|
|
467
|
+
"publicOption": "Create a public repository (default: private)",
|
|
468
|
+
"orgOption": "GitHub organization to create the repo under",
|
|
469
|
+
"created": "GitHub repository created: {{name}}",
|
|
470
|
+
"urlLabel": "URL:",
|
|
471
|
+
"failed": "Failed to create GitHub repository"
|
|
472
|
+
},
|
|
441
473
|
"ls": {
|
|
442
474
|
"description": "List tracked repositories",
|
|
443
475
|
"title": "Repositories",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"flags": "Flags",
|
|
16
16
|
"chat": "Chat",
|
|
17
17
|
"layout": "Layout",
|
|
18
|
-
"database": "Database"
|
|
18
|
+
"database": "Database",
|
|
19
|
+
"security": "Security"
|
|
19
20
|
},
|
|
20
21
|
"language": {
|
|
21
22
|
"title": "Language",
|
|
@@ -224,6 +225,47 @@
|
|
|
224
225
|
"swapPositionDescription": "Move the Chat button to the left and the Create button to the right",
|
|
225
226
|
"hint": "The two floating action buttons (Create and Chat) sit in the bottom corners of the control center. Enable this toggle to swap their positions."
|
|
226
227
|
},
|
|
228
|
+
"security": {
|
|
229
|
+
"title": "Supply Chain Security",
|
|
230
|
+
"sectionTitle": "Security",
|
|
231
|
+
"sectionDescription": "Policy-driven supply chain security enforcement",
|
|
232
|
+
"mode": "Security Mode",
|
|
233
|
+
"modeDescription": "Controls how security policy is enforced",
|
|
234
|
+
"modeDisabled": "Disabled",
|
|
235
|
+
"modeAdvisory": "Advisory",
|
|
236
|
+
"modeEnforce": "Enforce",
|
|
237
|
+
"policySource": "Policy Source",
|
|
238
|
+
"policySourceNone": "Settings only",
|
|
239
|
+
"lastEvaluation": "Last Evaluation",
|
|
240
|
+
"lastEvaluationNever": "Never",
|
|
241
|
+
"recentFindings": "Recent Findings",
|
|
242
|
+
"noFindings": "No findings",
|
|
243
|
+
"runEnforcement": "Run Enforcement",
|
|
244
|
+
"running": "Running...",
|
|
245
|
+
"severity": {
|
|
246
|
+
"Low": "Low",
|
|
247
|
+
"Medium": "Medium",
|
|
248
|
+
"High": "High",
|
|
249
|
+
"Critical": "Critical"
|
|
250
|
+
},
|
|
251
|
+
"hint": "Security mode controls how the policy engine handles violations. Advisory mode logs findings without blocking. Enforce mode blocks risky actions and fails builds.",
|
|
252
|
+
"links": {
|
|
253
|
+
"securitySpec": "Security spec"
|
|
254
|
+
},
|
|
255
|
+
"badge": {
|
|
256
|
+
"advisory": "Advisory",
|
|
257
|
+
"enforce": "Enforce",
|
|
258
|
+
"disabled": "Disabled"
|
|
259
|
+
},
|
|
260
|
+
"panel": {
|
|
261
|
+
"title": "Security",
|
|
262
|
+
"governance": "Governance",
|
|
263
|
+
"dependencies": "Dependencies",
|
|
264
|
+
"noFindings": "No security findings",
|
|
265
|
+
"findingsByCategory": "Findings by Severity",
|
|
266
|
+
"totalFindings": "{{count}} finding(s)"
|
|
267
|
+
}
|
|
268
|
+
},
|
|
227
269
|
"database": {
|
|
228
270
|
"title": "Database",
|
|
229
271
|
"description": "Database path and management",
|
|
@@ -187,6 +187,26 @@
|
|
|
187
187
|
"failedToList": "Error al listar herramientas: {{error}}"
|
|
188
188
|
}
|
|
189
189
|
},
|
|
190
|
+
"security": {
|
|
191
|
+
"description": "Supply-chain security policy management",
|
|
192
|
+
"enforce": {
|
|
193
|
+
"description": "Evaluate repository security posture and enforce policy",
|
|
194
|
+
"repoOption": "Repository path (defaults to current directory)",
|
|
195
|
+
"outputOption": "Output format (table, json, yaml)",
|
|
196
|
+
"passed": "Security enforcement passed",
|
|
197
|
+
"failed": "Security enforcement failed",
|
|
198
|
+
"advisoryNote": "Mode is Advisory — findings are reported but do not block",
|
|
199
|
+
"disabledNote": "Security mode is Disabled — no checks performed",
|
|
200
|
+
"modeLabel": "Mode",
|
|
201
|
+
"sourceLabel": "Source",
|
|
202
|
+
"dependencyFindingsLabel": "Dependency Findings",
|
|
203
|
+
"releaseIntegrityLabel": "Release Integrity",
|
|
204
|
+
"totalFindingsLabel": "Total Findings",
|
|
205
|
+
"governanceFindingsLabel": "GitHub Governance (audit-only)",
|
|
206
|
+
"noFindings": "No findings",
|
|
207
|
+
"failedToEnforce": "Failed to evaluate security posture"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
190
210
|
"feat": {
|
|
191
211
|
"description": "Administrar funcionalidades a través del ciclo de vida SDLC",
|
|
192
212
|
"new": {
|
|
@@ -209,6 +229,9 @@
|
|
|
209
229
|
"injectSkillsOption": "Inject curated skills into the worktree",
|
|
210
230
|
"noInjectSkillsOption": "Skip skill injection for this invocation",
|
|
211
231
|
"attachOption": "Adjuntar un archivo (repetible)",
|
|
232
|
+
"remoteOption": "GitHub URL or owner/repo — clone (or fork) then create feature",
|
|
233
|
+
"remoteConflict": "Cannot use --remote with --repo. --remote clones the repo first.",
|
|
234
|
+
"forkedInfo": "Auto-forked (no push access to original)",
|
|
212
235
|
"parentNotFound": "Funcionalidad padre no encontrada: {{id}}",
|
|
213
236
|
"attachmentNotFound": "Archivo adjunto no encontrado: {{path}}",
|
|
214
237
|
"spinnerText": "Pensando",
|
|
@@ -438,6 +461,15 @@
|
|
|
438
461
|
"cloneFailed": "Error al clonar: {{error}}",
|
|
439
462
|
"failedToImport": "Error al importar el repositorio"
|
|
440
463
|
},
|
|
464
|
+
"initRemote": {
|
|
465
|
+
"description": "Create a GitHub repository from the current local repo",
|
|
466
|
+
"nameArgument": "Repository name (defaults to directory name)",
|
|
467
|
+
"publicOption": "Create a public repository (default: private)",
|
|
468
|
+
"orgOption": "GitHub organization to create the repo under",
|
|
469
|
+
"created": "GitHub repository created: {{name}}",
|
|
470
|
+
"urlLabel": "URL:",
|
|
471
|
+
"failed": "Failed to create GitHub repository"
|
|
472
|
+
},
|
|
441
473
|
"ls": {
|
|
442
474
|
"description": "Listar repositorios rastreados",
|
|
443
475
|
"title": "Repositorios",
|