@shepai/cli 1.170.0-pr513.cff27cb → 1.171.0-pr527.e2ee839
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/Feature.yaml +5 -17
- 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/SdlcLifecycle.yaml +0 -1
- 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/apis/json-schema/WorkflowConfig.yaml +5 -10
- 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 +4 -2
- 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/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/github-repository-service.interface.d.ts +38 -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 +9 -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 +14 -4
- 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 +4 -2
- 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 +4 -2
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/adopt-branch.use-case.js +2 -3
- 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 +4 -2
- 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 +8 -18
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts +2 -3
- package/dist/packages/core/src/application/use-cases/features/create/types.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +0 -13
- 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 +4 -2
- 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 +5 -5
- 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/application/use-cases/upgrade/upgrade-cli.use-case.d.ts +1 -0
- package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/upgrade/upgrade-cli.use-case.js +59 -2
- 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 +6 -3
- package/dist/packages/core/src/domain/generated/output.d.ts +263 -22
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +43 -7
- package/dist/packages/core/src/domain/lifecycle-gates.d.ts +6 -21
- package/dist/packages/core/src/domain/lifecycle-gates.d.ts.map +1 -1
- package/dist/packages/core/src/domain/lifecycle-gates.js +6 -25
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +57 -5
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -3
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -10
- 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 +4 -2
- 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 +16 -7
- 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/repositories/sqlite-feature.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +3 -5
- 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 +15 -6
- 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 -20
- 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 -68
- 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 +4 -2
- 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 +9 -3
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-worker.d.ts +4 -2
- 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 +39 -19
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/lifecycle-context.js +0 -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 -1
- 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 -5
- 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 +6 -13
- package/dist/packages/core/src/infrastructure/services/external/github-repository.service.d.ts +10 -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 +101 -1
- 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 +2 -1
- 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 +65 -7
- package/dist/src/presentation/cli/commands/feat/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/index.js +1 -5
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +5 -18
- 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/commands/upgrade.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/upgrade.command.js +68 -3
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/app/actions/create-feature.d.ts +2 -3
- package/dist/src/presentation/web/app/actions/create-feature.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/create-feature.js +3 -3
- package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts +1 -2
- package/dist/src/presentation/web/app/actions/get-workflow-defaults.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/get-workflow-defaults.js +1 -2
- 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/api/agent-events/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/agent-events/route.js +0 -1
- package/dist/src/presentation/web/app/build-feature-node-data.d.ts.map +1 -1
- package/dist/src/presentation/web/app/build-feature-node-data.js +2 -4
- 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 +4 -4
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +0 -3
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +1 -65
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.d.ts +2 -3
- 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 +11 -15
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/feature-create-drawer.stories.js +1 -2
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts +1 -6
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +4 -16
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +0 -2
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +4 -6
- 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-state-config.js +0 -12
- 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 +3 -7
- 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 +22 -9
- 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/components/features/settings/workflow-settings-section.stories.js +3 -3
- package/dist/translations/ar/cli.json +22 -24
- package/dist/translations/ar/web.json +45 -7
- package/dist/translations/de/cli.json +22 -24
- package/dist/translations/de/web.json +45 -7
- package/dist/translations/en/cli.json +22 -24
- package/dist/translations/en/web.json +45 -7
- package/dist/translations/es/cli.json +22 -24
- package/dist/translations/es/web.json +45 -7
- package/dist/translations/fr/cli.json +22 -24
- package/dist/translations/fr/web.json +45 -7
- package/dist/translations/he/cli.json +22 -24
- package/dist/translations/he/web.json +45 -7
- package/dist/translations/pt/cli.json +22 -24
- package/dist/translations/pt/web.json +45 -7
- package/dist/translations/ru/cli.json +22 -24
- package/dist/translations/ru/web.json +45 -7
- 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 +2 -2
- package/web/.next/required-server-files.json +2 -2
- 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 +76 -121
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- 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 +76 -121
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- 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 +76 -121
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- 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 +76 -121
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- 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/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.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 +3 -3
- 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]__4ed9b909._.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]__684a868c._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__684a868c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__69dd3217._.js.map +1 -1
- 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]__9a9cb046._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9a9cb046._.js.map +1 -0
- 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/[root-of-the-server]__c1262d08._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c16bf5de._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_02580450._.js +3 -0
- package/web/.next/server/chunks/ssr/_02580450._.js.map +1 -0
- 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/_1594e369._.js +9 -0
- package/web/.next/server/chunks/ssr/_1594e369._.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/_21d37090._.js +3 -0
- package/web/.next/server/chunks/ssr/_21d37090._.js.map +1 -0
- 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/_5119a3df._.js +1 -1
- package/web/.next/server/chunks/ssr/_5119a3df._.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/{_0fd635d7._.js → _767748d2._.js} +2 -2
- package/web/.next/server/chunks/ssr/_767748d2._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_df737cce._.js +1 -1
- package/web/.next/server/chunks/ssr/{_34d897da._.js → _ee42a212._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_34d897da._.js.map → _ee42a212._.js.map} +1 -1
- 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 +226 -319
- package/web/.next/static/chunks/051873309d87fb45.css +1 -0
- package/web/.next/static/chunks/{52681a7f14138e48.js → 16fa4d3877c28fe2.js} +1 -1
- package/web/.next/static/chunks/23d80bb760e7dc4c.js +1 -0
- package/web/.next/static/chunks/30a0ba9015f94405.js +7 -0
- package/web/.next/static/chunks/{0f30a983f3467cd5.js → 39f6ad3f9005703a.js} +1 -1
- package/web/.next/static/chunks/3aba9d2242420cb5.js +1 -0
- package/web/.next/static/chunks/{d5bf9c963b5346e1.js → 7a6f56f37aaa17ea.js} +1 -1
- package/web/.next/static/chunks/{09a25231e5fc1ab8.js → 7e05e7e25220ee9a.js} +1 -1
- package/web/.next/static/chunks/{4219ddfde68a6d0b.js → 89dd90bf14488ec0.js} +1 -1
- package/web/.next/static/chunks/{e93ae5725b0babeb.js → 9374d251360e808b.js} +1 -1
- package/web/.next/static/chunks/{fc595d95626ac9bb.js → 9423dc2310202fda.js} +1 -1
- package/web/.next/static/chunks/a794cf7a1a5648dd.js +1 -0
- package/web/.next/static/chunks/{37f9543560c58ea6.js → a8edb9423086e83f.js} +1 -1
- package/web/.next/static/chunks/ae81796726a9bba3.js +1 -0
- package/web/.next/static/chunks/{9a78b4c5dcd28196.js → b9c62932ed987239.js} +2 -2
- package/web/.next/static/chunks/{478adf5d5156f002.js → d1c3e0ee8e788c87.js} +1 -1
- package/web/.next/static/chunks/e8c3c12f92e9a521.js +5 -0
- package/web/.next/static/chunks/f3d5e0ae13def35a.js +1 -0
- package/web/.next/static/chunks/{2a9af061f4fbe7f5.js → fb8dadb64c0ffc6b.js} +1 -1
- package/web/.next/static/chunks/fd232b88b5b50b2e.js +1 -0
- package/apis/json-schema/FeatureMode.yaml +0 -8
- package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts +0 -40
- package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/features/promote/promote-exploration.use-case.js +0 -125
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts +0 -19
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/051-replace-fast-with-mode.js +0 -46
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts +0 -17
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/052-replace-default-fast-mode-with-default-mode.js +0 -37
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts +0 -12
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-exploration-max-iterations.js +0 -17
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts +0 -362
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/exploration-agent-graph.js +0 -72
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts +0 -18
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/apply-feedback.node.js +0 -52
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts +0 -24
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/apply-feedback.prompt.js +0 -38
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts +0 -31
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/prototype-generate.prompt.js +0 -240
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts +0 -21
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.d.ts.map +0 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prototype-generate.node.js +0 -134
- package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts +0 -12
- package/dist/src/presentation/cli/commands/feat/feedback.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/feat/feedback.command.js +0 -64
- package/dist/src/presentation/cli/commands/feat/promote.command.d.ts +0 -13
- package/dist/src/presentation/cli/commands/feat/promote.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/feat/promote.command.js +0 -41
- package/dist/src/presentation/web/app/actions/discard-exploration.d.ts +0 -9
- package/dist/src/presentation/web/app/actions/discard-exploration.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/discard-exploration.js +0 -29
- package/dist/src/presentation/web/app/actions/promote-exploration.d.ts +0 -11
- package/dist/src/presentation/web/app/actions/promote-exploration.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/promote-exploration.js +0 -21
- package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts +0 -12
- package/dist/src/presentation/web/app/actions/submit-exploration-feedback.d.ts.map +0 -1
- package/dist/src/presentation/web/app/actions/submit-exploration-feedback.js +0 -40
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts +0 -8
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.js +0 -33
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts +0 -10
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-create-drawer/mode-selector.stories.js +0 -33
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts +0 -11
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.js +0 -34
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts +0 -16
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.d.ts.map +0 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/prototype-tab.stories.js +0 -70
- package/dist/src/presentation/web/components/ui/toggle-group.d.ts +0 -10
- package/dist/src/presentation/web/components/ui/toggle-group.d.ts.map +0 -1
- package/dist/src/presentation/web/components/ui/toggle-group.js +0 -22
- package/dist/src/presentation/web/components/ui/toggle.d.ts +0 -10
- package/dist/src/presentation/web/components/ui/toggle.d.ts.map +0 -1
- package/dist/src/presentation/web/components/ui/toggle.js +0 -26
- package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__03c66352._.js.map +0 -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]__403afc23._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__403afc23._.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]__df550e85._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df550e85._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__df5602bf._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e9f4767a._.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/_0fd635d7._.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/_30ddea9d._.js +0 -9
- package/web/.next/server/chunks/ssr/_30ddea9d._.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/_6e79a2cc._.js +0 -3
- package/web/.next/server/chunks/ssr/_6e79a2cc._.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/_cac4abe6._.js +0 -3
- package/web/.next/server/chunks/ssr/_cac4abe6._.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/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_9453ce8b._.js.map +0 -1
- package/web/.next/static/chunks/0769c695d6b663c7.js +0 -1
- package/web/.next/static/chunks/2ceebcc839ee0d4b.js +0 -1
- package/web/.next/static/chunks/5743a9c1c63e5261.js +0 -5
- package/web/.next/static/chunks/5cf9745e2ef3837c.js +0 -1
- package/web/.next/static/chunks/5e20f692bbfcfb94.js +0 -7
- package/web/.next/static/chunks/8b0a9cb5109fe899.js +0 -1
- package/web/.next/static/chunks/c80e8e3d0cf5baa6.css +0 -1
- package/web/.next/static/chunks/d60cee2e7318f425.js +0 -1
- package/web/.next/static/chunks/da565c85277c2461.js +0 -1
- package/web/.next/static/chunks/fb89cf91c10b2e8b.js +0 -1
- /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → t6SUt71jyk_PYf152Imog}/_buildManifest.js +0 -0
- /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → t6SUt71jyk_PYf152Imog}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{G895CgnbZl4YvWN_DaRC- → t6SUt71jyk_PYf152Imog}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAuKrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAugBrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -30,6 +30,17 @@ import { DaemonPidService } from '../services/daemon/daemon-pid.service.js';
|
|
|
30
30
|
import { DeploymentService } from '../services/deployment/deployment.service.js';
|
|
31
31
|
import { AttachmentStorageService } from '../services/attachment-storage.service.js';
|
|
32
32
|
import { GitHubRepositoryService } from '../services/external/github-repository.service.js';
|
|
33
|
+
import { SecurityPolicyService } from '../services/security/security-policy.service.js';
|
|
34
|
+
import { SecurityPolicyFileReader } from '../services/security/security-policy-file-reader.js';
|
|
35
|
+
import { SecurityPolicyValidator } from '../services/security/security-policy-validator.js';
|
|
36
|
+
import { SQLiteSecurityEventRepository } from '../repositories/sqlite-security-event.repository.js';
|
|
37
|
+
import { DependencyRiskEvaluator } from '../services/security/dependency-risk-evaluator.js';
|
|
38
|
+
import { ReleaseIntegrityEvaluator } from '../services/security/release-integrity-evaluator.js';
|
|
39
|
+
// Security use cases
|
|
40
|
+
import { EnforceSecurityUseCase } from '../../application/use-cases/security/enforce-security.use-case.js';
|
|
41
|
+
import { EvaluateSecurityPolicyUseCase } from '../../application/use-cases/security/evaluate-security-policy.use-case.js';
|
|
42
|
+
import { GetSecurityStateUseCase } from '../../application/use-cases/security/get-security-state.use-case.js';
|
|
43
|
+
import { RecordSecurityEventUseCase } from '../../application/use-cases/security/record-security-event.use-case.js';
|
|
33
44
|
import { AgentExecutorFactory } from '../services/agents/common/agent-executor-factory.service.js';
|
|
34
45
|
import { AgentExecutorProvider } from '../services/agents/common/agent-executor-provider.service.js';
|
|
35
46
|
import { StructuredAgentCallerService } from '../services/agents/common/structured-agent-caller.service.js';
|
|
@@ -70,7 +81,6 @@ import { ResumeFeatureUseCase } from '../../application/use-cases/features/resum
|
|
|
70
81
|
import { StartFeatureUseCase } from '../../application/use-cases/features/start-feature.use-case.js';
|
|
71
82
|
import { UpdateFeaturePinnedConfigUseCase } from '../../application/use-cases/features/update-feature-pinned-config.use-case.js';
|
|
72
83
|
import { AdoptBranchUseCase } from '../../application/use-cases/features/adopt-branch.use-case.js';
|
|
73
|
-
import { PromoteExplorationUseCase } from '../../application/use-cases/features/promote/promote-exploration.use-case.js';
|
|
74
84
|
import { GetFeatureArtifactUseCase } from '../../application/use-cases/features/get-feature-artifact.use-case.js';
|
|
75
85
|
import { GetResearchArtifactUseCase } from '../../application/use-cases/features/get-research-artifact.use-case.js';
|
|
76
86
|
import { GetPlanArtifactUseCase } from '../../application/use-cases/features/get-plan-artifact.use-case.js';
|
|
@@ -273,6 +283,46 @@ export async function initializeContainer() {
|
|
|
273
283
|
container.register('ISpecInitializerService', {
|
|
274
284
|
useFactory: () => new SpecInitializerService(),
|
|
275
285
|
});
|
|
286
|
+
// Register security infrastructure
|
|
287
|
+
container.register('SecurityPolicyFileReader', {
|
|
288
|
+
useFactory: () => new SecurityPolicyFileReader(),
|
|
289
|
+
});
|
|
290
|
+
container.register('SecurityPolicyValidator', {
|
|
291
|
+
useFactory: () => new SecurityPolicyValidator(),
|
|
292
|
+
});
|
|
293
|
+
container.register('ISecurityPolicyService', {
|
|
294
|
+
useFactory: (c) => {
|
|
295
|
+
const fileReader = c.resolve('SecurityPolicyFileReader');
|
|
296
|
+
const validator = c.resolve('SecurityPolicyValidator');
|
|
297
|
+
const settingsRepo = c.resolve('ISettingsRepository');
|
|
298
|
+
return new SecurityPolicyService(fileReader, validator, settingsRepo);
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
container.register('ISecurityEventRepository', {
|
|
302
|
+
useFactory: (c) => {
|
|
303
|
+
const database = c.resolve('Database');
|
|
304
|
+
return new SQLiteSecurityEventRepository(database);
|
|
305
|
+
},
|
|
306
|
+
});
|
|
307
|
+
container.register('DependencyRiskEvaluator', {
|
|
308
|
+
useFactory: () => new DependencyRiskEvaluator(),
|
|
309
|
+
});
|
|
310
|
+
container.register('ReleaseIntegrityEvaluator', {
|
|
311
|
+
useFactory: () => new ReleaseIntegrityEvaluator(),
|
|
312
|
+
});
|
|
313
|
+
// Register security use cases
|
|
314
|
+
container.register(EnforceSecurityUseCase, {
|
|
315
|
+
useFactory: (c) => new EnforceSecurityUseCase(c.resolve('ISecurityPolicyService'), c.resolve('ISecurityEventRepository'), c.resolve('ISettingsRepository'), c.resolve('DependencyRiskEvaluator'), c.resolve('ReleaseIntegrityEvaluator'), c.resolve('IGitHubRepositoryService')),
|
|
316
|
+
});
|
|
317
|
+
container.register(EvaluateSecurityPolicyUseCase, {
|
|
318
|
+
useFactory: (c) => new EvaluateSecurityPolicyUseCase(c.resolve('ISecurityPolicyService'), c.resolve('ISettingsRepository')),
|
|
319
|
+
});
|
|
320
|
+
container.register(GetSecurityStateUseCase, {
|
|
321
|
+
useFactory: (c) => new GetSecurityStateUseCase(c.resolve('ISecurityEventRepository'), c.resolve('ISettingsRepository')),
|
|
322
|
+
});
|
|
323
|
+
container.register(RecordSecurityEventUseCase, {
|
|
324
|
+
useFactory: (c) => new RecordSecurityEventUseCase(c.resolve('ISecurityEventRepository')),
|
|
325
|
+
});
|
|
276
326
|
// Register notification services
|
|
277
327
|
const notificationBus = getNotificationBus();
|
|
278
328
|
container.registerInstance('NotificationEventBus', notificationBus);
|
|
@@ -312,7 +362,6 @@ export async function initializeContainer() {
|
|
|
312
362
|
container.registerSingleton(StartFeatureUseCase);
|
|
313
363
|
container.registerSingleton(UpdateFeaturePinnedConfigUseCase);
|
|
314
364
|
container.registerSingleton(AdoptBranchUseCase);
|
|
315
|
-
container.registerSingleton(PromoteExplorationUseCase);
|
|
316
365
|
container.registerSingleton(GetFeatureArtifactUseCase);
|
|
317
366
|
container.registerSingleton(GetResearchArtifactUseCase);
|
|
318
367
|
container.registerSingleton(GetPlanArtifactUseCase);
|
|
@@ -388,9 +437,6 @@ export async function initializeContainer() {
|
|
|
388
437
|
container.register('StopAgentRunUseCase', {
|
|
389
438
|
useFactory: (c) => c.resolve(StopAgentRunUseCase),
|
|
390
439
|
});
|
|
391
|
-
container.register('PromoteExplorationUseCase', {
|
|
392
|
-
useFactory: (c) => c.resolve(PromoteExplorationUseCase),
|
|
393
|
-
});
|
|
394
440
|
container.register('ApproveAgentRunUseCase', {
|
|
395
441
|
useFactory: (c) => c.resolve(ApproveAgentRunUseCase),
|
|
396
442
|
});
|
|
@@ -475,6 +521,12 @@ export async function initializeContainer() {
|
|
|
475
521
|
container.register('AutoResolveMergedBranchesUseCase', {
|
|
476
522
|
useFactory: (c) => c.resolve(AutoResolveMergedBranchesUseCase),
|
|
477
523
|
});
|
|
524
|
+
container.register('GetSecurityStateUseCase', {
|
|
525
|
+
useFactory: (c) => c.resolve(GetSecurityStateUseCase),
|
|
526
|
+
});
|
|
527
|
+
container.register('EnforceSecurityUseCase', {
|
|
528
|
+
useFactory: (c) => c.resolve(EnforceSecurityUseCase),
|
|
529
|
+
});
|
|
478
530
|
// Register interactive session infrastructure
|
|
479
531
|
container.register('IInteractiveSessionRepository', {
|
|
480
532
|
useFactory: (c) => {
|
package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts
CHANGED
|
@@ -32,9 +32,7 @@ export interface FeatureRow {
|
|
|
32
32
|
related_artifacts: string;
|
|
33
33
|
agent_run_id: string | null;
|
|
34
34
|
spec_path: string | null;
|
|
35
|
-
|
|
36
|
-
iteration_count: number;
|
|
37
|
-
max_iterations: number | null;
|
|
35
|
+
fast: number;
|
|
38
36
|
push: number;
|
|
39
37
|
open_pr: number;
|
|
40
38
|
fork_and_pr: number;
|
package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"feature.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AAGtE;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CA6DvD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAmErD"}
|
|
@@ -35,11 +35,8 @@ export function toDatabase(feature) {
|
|
|
35
35
|
related_artifacts: JSON.stringify(feature.relatedArtifacts),
|
|
36
36
|
agent_run_id: feature.agentRunId ?? null,
|
|
37
37
|
spec_path: feature.specPath ?? null,
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
// Iteration tracking
|
|
41
|
-
iteration_count: feature.iterationCount,
|
|
42
|
-
max_iterations: feature.maxIterations ?? null,
|
|
38
|
+
// Fast mode flag
|
|
39
|
+
fast: feature.fast ? 1 : 0,
|
|
43
40
|
// Flatten workflow flags to individual columns
|
|
44
41
|
push: feature.push ? 1 : 0,
|
|
45
42
|
open_pr: feature.openPr ? 1 : 0,
|
|
@@ -106,11 +103,8 @@ export function fromDatabase(row) {
|
|
|
106
103
|
...(row.plan != null && { plan: JSON.parse(row.plan) }),
|
|
107
104
|
...(row.agent_run_id != null && { agentRunId: row.agent_run_id }),
|
|
108
105
|
...(row.spec_path != null && { specPath: row.spec_path }),
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
// Iteration tracking
|
|
112
|
-
iterationCount: row.iteration_count ?? 0,
|
|
113
|
-
...(row.max_iterations != null && { maxIterations: row.max_iterations }),
|
|
106
|
+
// Fast mode flag
|
|
107
|
+
fast: row.fast === 1,
|
|
114
108
|
// Assemble workflow flags from flat columns
|
|
115
109
|
push: row.push === 1,
|
|
116
110
|
openPr: row.open_pr === 1,
|
package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Event Database Mapper
|
|
3
|
+
*
|
|
4
|
+
* Maps between SecurityEvent domain objects and SQLite database rows.
|
|
5
|
+
*
|
|
6
|
+
* Mapping Rules:
|
|
7
|
+
* - TypeScript objects (camelCase) <-> SQL columns (snake_case)
|
|
8
|
+
* - Dates stored as ISO 8601 strings (matching settings pattern)
|
|
9
|
+
* - Optional fields stored as NULL when missing
|
|
10
|
+
* - Enum values stored as string values
|
|
11
|
+
*/
|
|
12
|
+
import type { SecurityEvent } from '../../../../domain/generated/output.js';
|
|
13
|
+
/**
|
|
14
|
+
* Database row type matching the security_events table schema.
|
|
15
|
+
* Uses snake_case column names.
|
|
16
|
+
*/
|
|
17
|
+
export interface SecurityEventRow {
|
|
18
|
+
id: string;
|
|
19
|
+
repository_path: string;
|
|
20
|
+
feature_id: string | null;
|
|
21
|
+
severity: string;
|
|
22
|
+
category: string;
|
|
23
|
+
disposition: string;
|
|
24
|
+
actor: string | null;
|
|
25
|
+
message: string | null;
|
|
26
|
+
remediation_summary: string | null;
|
|
27
|
+
created_at: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Maps SecurityEvent domain object to database row.
|
|
31
|
+
*
|
|
32
|
+
* @param event - SecurityEvent domain object
|
|
33
|
+
* @returns Database row object with snake_case columns
|
|
34
|
+
*/
|
|
35
|
+
export declare function toDatabase(event: SecurityEvent): SecurityEventRow;
|
|
36
|
+
/**
|
|
37
|
+
* Maps database row to SecurityEvent domain object.
|
|
38
|
+
* Converts ISO strings back to Date objects.
|
|
39
|
+
*
|
|
40
|
+
* @param row - Database row with snake_case columns
|
|
41
|
+
* @returns SecurityEvent domain object with camelCase properties
|
|
42
|
+
*/
|
|
43
|
+
export declare function fromDatabase(row: SecurityEventRow): SecurityEvent;
|
|
44
|
+
//# sourceMappingURL=security-event.mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-event.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAO5E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,CAcjE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,CAgBjE"}
|
package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/security-event.mapper.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security Event Database Mapper
|
|
3
|
+
*
|
|
4
|
+
* Maps between SecurityEvent domain objects and SQLite database rows.
|
|
5
|
+
*
|
|
6
|
+
* Mapping Rules:
|
|
7
|
+
* - TypeScript objects (camelCase) <-> SQL columns (snake_case)
|
|
8
|
+
* - Dates stored as ISO 8601 strings (matching settings pattern)
|
|
9
|
+
* - Optional fields stored as NULL when missing
|
|
10
|
+
* - Enum values stored as string values
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Maps SecurityEvent domain object to database row.
|
|
14
|
+
*
|
|
15
|
+
* @param event - SecurityEvent domain object
|
|
16
|
+
* @returns Database row object with snake_case columns
|
|
17
|
+
*/
|
|
18
|
+
export function toDatabase(event) {
|
|
19
|
+
return {
|
|
20
|
+
id: event.id,
|
|
21
|
+
repository_path: event.repositoryPath,
|
|
22
|
+
feature_id: event.featureId ?? null,
|
|
23
|
+
severity: event.severity,
|
|
24
|
+
category: event.category,
|
|
25
|
+
disposition: event.disposition,
|
|
26
|
+
actor: event.actor ?? null,
|
|
27
|
+
message: event.message ?? null,
|
|
28
|
+
remediation_summary: event.remediationSummary ?? null,
|
|
29
|
+
created_at: event.createdAt instanceof Date ? event.createdAt.toISOString() : String(event.createdAt),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Maps database row to SecurityEvent domain object.
|
|
34
|
+
* Converts ISO strings back to Date objects.
|
|
35
|
+
*
|
|
36
|
+
* @param row - Database row with snake_case columns
|
|
37
|
+
* @returns SecurityEvent domain object with camelCase properties
|
|
38
|
+
*/
|
|
39
|
+
export function fromDatabase(row) {
|
|
40
|
+
return {
|
|
41
|
+
id: row.id,
|
|
42
|
+
repositoryPath: row.repository_path,
|
|
43
|
+
severity: row.severity,
|
|
44
|
+
category: row.category,
|
|
45
|
+
disposition: row.disposition,
|
|
46
|
+
createdAt: new Date(row.created_at),
|
|
47
|
+
updatedAt: new Date(row.created_at),
|
|
48
|
+
...(row.feature_id !== null && { featureId: row.feature_id }),
|
|
49
|
+
...(row.actor !== null && { actor: row.actor }),
|
|
50
|
+
...(row.message !== null && { message: row.message }),
|
|
51
|
+
...(row.remediation_summary !== null && {
|
|
52
|
+
remediationSummary: row.remediation_summary,
|
|
53
|
+
}),
|
|
54
|
+
};
|
|
55
|
+
}
|
package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts
CHANGED
|
@@ -71,7 +71,7 @@ export interface SettingsRow {
|
|
|
71
71
|
workflow_enable_evidence: number;
|
|
72
72
|
workflow_commit_evidence: number;
|
|
73
73
|
hide_ci_status: number;
|
|
74
|
-
|
|
74
|
+
default_fast_mode: number;
|
|
75
75
|
feature_flag_skills: number;
|
|
76
76
|
feature_flag_env_deploy: number;
|
|
77
77
|
feature_flag_debug: number;
|
|
@@ -85,9 +85,11 @@ export interface SettingsRow {
|
|
|
85
85
|
interactive_agent_max_concurrent_sessions: number;
|
|
86
86
|
auto_archive_delay_minutes: number;
|
|
87
87
|
fab_position_swapped: number;
|
|
88
|
-
exploration_max_iterations: number | null;
|
|
89
88
|
skill_injection_enabled: number;
|
|
90
89
|
skill_injection_skills: string | null;
|
|
90
|
+
security_mode: string;
|
|
91
|
+
security_last_evaluation_at: string | null;
|
|
92
|
+
security_policy_source: string | null;
|
|
91
93
|
}
|
|
92
94
|
/**
|
|
93
95
|
* Maps Settings domain object to database row.
|
package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.mapper.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,wCAAwC,CAAC;AAWhD;;;GAGG;AACH,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAInB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IAGtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;IAGhC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAGhC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAG3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,yBAAyB,EAAE,MAAM,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;IACnC,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,0BAA0B,EAAE,MAAM,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4BAA4B,EAAE,MAAM,CAAC;IAGrC,iCAAiC,EAAE,MAAM,CAAC;IAG1C,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IAGzB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAG/C,mBAAmB,EAAE,MAAM,CAAC;IAG5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,mCAAmC,EAAE,MAAM,CAAC;IAG5C,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,yBAAyB,EAAE,MAAM,CAAC;IAClC,4BAA4B,EAAE,MAAM,CAAC;IACrC,+BAA+B,EAAE,MAAM,CAAC;IACxC,sBAAsB,EAAE,MAAM,CAAC;IAE/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,sCAAsC,EAAE,MAAM,CAAC;IAC/C,yCAAyC,EAAE,MAAM,CAAC;IAGlD,0BAA0B,EAAE,MAAM,CAAC;IAGnC,oBAAoB,EAAE,MAAM,CAAC;IAG7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtC,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,CA4H1D;AAiED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ,CAyHvD"}
|
|
@@ -82,7 +82,7 @@ export function toDatabase(settings) {
|
|
|
82
82
|
workflow_enable_evidence: settings.workflow.enableEvidence ? 1 : 0,
|
|
83
83
|
workflow_commit_evidence: settings.workflow.commitEvidence ? 1 : 0,
|
|
84
84
|
hide_ci_status: settings.workflow.hideCiStatus !== false ? 1 : 0,
|
|
85
|
-
|
|
85
|
+
default_fast_mode: settings.workflow.defaultFastMode !== false ? 1 : 0,
|
|
86
86
|
// Onboarding (boolean → INTEGER)
|
|
87
87
|
onboarding_complete: settings.onboardingComplete ? 1 : 0,
|
|
88
88
|
// ApprovalGateDefaults (boolean → INTEGER)
|
|
@@ -110,13 +110,15 @@ export function toDatabase(settings) {
|
|
|
110
110
|
auto_archive_delay_minutes: settings.workflow.autoArchiveDelayMinutes ?? 10,
|
|
111
111
|
// FAB layout config (default: not swapped)
|
|
112
112
|
fab_position_swapped: (settings.fabLayout?.swapPosition ?? false) ? 1 : 0,
|
|
113
|
-
// Exploration max iterations (default: 10)
|
|
114
|
-
exploration_max_iterations: settings.workflow.explorationMaxIterations ?? null,
|
|
115
113
|
// Skill injection config (default: disabled, no skills)
|
|
116
114
|
skill_injection_enabled: settings.workflow.skillInjection?.enabled ? 1 : 0,
|
|
117
115
|
skill_injection_skills: settings.workflow.skillInjection?.skills?.length
|
|
118
116
|
? JSON.stringify(settings.workflow.skillInjection.skills)
|
|
119
117
|
: null,
|
|
118
|
+
// SecurityConfig (default: Advisory mode, no evaluation yet)
|
|
119
|
+
security_mode: settings.security?.mode ?? 'Advisory',
|
|
120
|
+
security_last_evaluation_at: settings.security?.lastEvaluationAt ?? null,
|
|
121
|
+
security_policy_source: settings.security?.policySource ?? null,
|
|
120
122
|
};
|
|
121
123
|
}
|
|
122
124
|
/**
|
|
@@ -253,10 +255,7 @@ export function fromDatabase(row) {
|
|
|
253
255
|
enableEvidence: row.workflow_enable_evidence === 1,
|
|
254
256
|
commitEvidence: row.workflow_commit_evidence === 1,
|
|
255
257
|
hideCiStatus: row.hide_ci_status === 1,
|
|
256
|
-
|
|
257
|
-
...(row.exploration_max_iterations !== null && {
|
|
258
|
-
explorationMaxIterations: row.exploration_max_iterations,
|
|
259
|
-
}),
|
|
258
|
+
defaultFastMode: (row.default_fast_mode ?? 1) !== 0,
|
|
260
259
|
autoArchiveDelayMinutes: row.auto_archive_delay_minutes ?? 10,
|
|
261
260
|
},
|
|
262
261
|
// FeatureFlags (INTEGER 0/1 → boolean)
|
|
@@ -280,6 +279,16 @@ export function fromDatabase(row) {
|
|
|
280
279
|
fabLayout: {
|
|
281
280
|
swapPosition: (row.fab_position_swapped ?? 0) !== 0,
|
|
282
281
|
},
|
|
282
|
+
// SecurityConfig (TEXT → string, nullable TEXT → optional string)
|
|
283
|
+
security: {
|
|
284
|
+
mode: (row.security_mode ?? 'Advisory'),
|
|
285
|
+
...(row.security_last_evaluation_at !== null && {
|
|
286
|
+
lastEvaluationAt: row.security_last_evaluation_at,
|
|
287
|
+
}),
|
|
288
|
+
...(row.security_policy_source !== null && {
|
|
289
|
+
policySource: row.security_policy_source,
|
|
290
|
+
}),
|
|
291
|
+
},
|
|
283
292
|
// Onboarding (INTEGER → boolean)
|
|
284
293
|
onboardingComplete: row.onboarding_complete === 1,
|
|
285
294
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 053: Add security settings columns to the settings table.
|
|
3
|
+
*
|
|
4
|
+
* Adds three columns for supply-chain security configuration:
|
|
5
|
+
* - security_mode TEXT NOT NULL DEFAULT 'Advisory'
|
|
6
|
+
* - security_last_evaluation_at TEXT (nullable)
|
|
7
|
+
* - security_policy_source TEXT (nullable)
|
|
8
|
+
*
|
|
9
|
+
* These columns store the effective security mode, last evaluation
|
|
10
|
+
* timestamp, and policy source origin for the SecurityConfig model.
|
|
11
|
+
*
|
|
12
|
+
* Migration is idempotent: checks column existence before ALTER.
|
|
13
|
+
*/
|
|
14
|
+
import type { MigrationParams } from 'umzug';
|
|
15
|
+
import type Database from 'better-sqlite3';
|
|
16
|
+
export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
17
|
+
export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=053-add-security-settings-columns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"053-add-security-settings-columns.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/053-add-security-settings-columns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAe3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7F"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 053: Add security settings columns to the settings table.
|
|
3
|
+
*
|
|
4
|
+
* Adds three columns for supply-chain security configuration:
|
|
5
|
+
* - security_mode TEXT NOT NULL DEFAULT 'Advisory'
|
|
6
|
+
* - security_last_evaluation_at TEXT (nullable)
|
|
7
|
+
* - security_policy_source TEXT (nullable)
|
|
8
|
+
*
|
|
9
|
+
* These columns store the effective security mode, last evaluation
|
|
10
|
+
* timestamp, and policy source origin for the SecurityConfig model.
|
|
11
|
+
*
|
|
12
|
+
* Migration is idempotent: checks column existence before ALTER.
|
|
13
|
+
*/
|
|
14
|
+
export async function up({ context: db }) {
|
|
15
|
+
const columns = db.pragma('table_info(settings)');
|
|
16
|
+
const existingNames = new Set(columns.map((c) => c.name));
|
|
17
|
+
if (!existingNames.has('security_mode')) {
|
|
18
|
+
db.exec("ALTER TABLE settings ADD COLUMN security_mode TEXT NOT NULL DEFAULT 'Advisory'");
|
|
19
|
+
}
|
|
20
|
+
if (!existingNames.has('security_last_evaluation_at')) {
|
|
21
|
+
db.exec('ALTER TABLE settings ADD COLUMN security_last_evaluation_at TEXT');
|
|
22
|
+
}
|
|
23
|
+
if (!existingNames.has('security_policy_source')) {
|
|
24
|
+
db.exec('ALTER TABLE settings ADD COLUMN security_policy_source TEXT');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export async function down({ context: db }) {
|
|
28
|
+
// Additive-only migration — columns are nullable/defaulted and ignored
|
|
29
|
+
// by older code. No-op per LESSONS.md backward compatibility rules.
|
|
30
|
+
void db;
|
|
31
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 054: Create security_events table.
|
|
3
|
+
*
|
|
4
|
+
* Creates the security_events table for persisting security audit events
|
|
5
|
+
* (policy violations, approval decisions, enforcement outcomes).
|
|
6
|
+
*
|
|
7
|
+
* Columns:
|
|
8
|
+
* - id TEXT PRIMARY KEY
|
|
9
|
+
* - repository_path TEXT NOT NULL
|
|
10
|
+
* - feature_id TEXT (nullable)
|
|
11
|
+
* - severity TEXT NOT NULL
|
|
12
|
+
* - category TEXT NOT NULL
|
|
13
|
+
* - disposition TEXT NOT NULL
|
|
14
|
+
* - actor TEXT (nullable)
|
|
15
|
+
* - message TEXT (nullable)
|
|
16
|
+
* - remediation_summary TEXT (nullable)
|
|
17
|
+
* - created_at TEXT NOT NULL
|
|
18
|
+
*
|
|
19
|
+
* Indexes:
|
|
20
|
+
* - idx_security_events_repo_created ON (repository_path, created_at)
|
|
21
|
+
* - idx_security_events_feature ON (feature_id)
|
|
22
|
+
*
|
|
23
|
+
* Migration is idempotent: uses IF NOT EXISTS on CREATE TABLE and indexes.
|
|
24
|
+
*/
|
|
25
|
+
import type { MigrationParams } from 'umzug';
|
|
26
|
+
import type Database from 'better-sqlite3';
|
|
27
|
+
export declare function up({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
28
|
+
export declare function down({ context: db }: MigrationParams<Database.Database>): Promise<void>;
|
|
29
|
+
//# sourceMappingURL=054-create-security-events-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"054-create-security-events-table.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/infrastructure/persistence/sqlite/migrations/054-create-security-events-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,wBAAsB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB3F;AAED,wBAAsB,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI7F"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration 054: Create security_events table.
|
|
3
|
+
*
|
|
4
|
+
* Creates the security_events table for persisting security audit events
|
|
5
|
+
* (policy violations, approval decisions, enforcement outcomes).
|
|
6
|
+
*
|
|
7
|
+
* Columns:
|
|
8
|
+
* - id TEXT PRIMARY KEY
|
|
9
|
+
* - repository_path TEXT NOT NULL
|
|
10
|
+
* - feature_id TEXT (nullable)
|
|
11
|
+
* - severity TEXT NOT NULL
|
|
12
|
+
* - category TEXT NOT NULL
|
|
13
|
+
* - disposition TEXT NOT NULL
|
|
14
|
+
* - actor TEXT (nullable)
|
|
15
|
+
* - message TEXT (nullable)
|
|
16
|
+
* - remediation_summary TEXT (nullable)
|
|
17
|
+
* - created_at TEXT NOT NULL
|
|
18
|
+
*
|
|
19
|
+
* Indexes:
|
|
20
|
+
* - idx_security_events_repo_created ON (repository_path, created_at)
|
|
21
|
+
* - idx_security_events_feature ON (feature_id)
|
|
22
|
+
*
|
|
23
|
+
* Migration is idempotent: uses IF NOT EXISTS on CREATE TABLE and indexes.
|
|
24
|
+
*/
|
|
25
|
+
export async function up({ context: db }) {
|
|
26
|
+
db.exec(`
|
|
27
|
+
CREATE TABLE IF NOT EXISTS security_events (
|
|
28
|
+
id TEXT PRIMARY KEY,
|
|
29
|
+
repository_path TEXT NOT NULL,
|
|
30
|
+
feature_id TEXT,
|
|
31
|
+
severity TEXT NOT NULL,
|
|
32
|
+
category TEXT NOT NULL,
|
|
33
|
+
disposition TEXT NOT NULL,
|
|
34
|
+
actor TEXT,
|
|
35
|
+
message TEXT,
|
|
36
|
+
remediation_summary TEXT,
|
|
37
|
+
created_at TEXT NOT NULL
|
|
38
|
+
)
|
|
39
|
+
`);
|
|
40
|
+
db.exec(`
|
|
41
|
+
CREATE INDEX IF NOT EXISTS idx_security_events_repo_created
|
|
42
|
+
ON security_events(repository_path, created_at)
|
|
43
|
+
`);
|
|
44
|
+
db.exec(`
|
|
45
|
+
CREATE INDEX IF NOT EXISTS idx_security_events_feature
|
|
46
|
+
ON security_events(feature_id)
|
|
47
|
+
`);
|
|
48
|
+
}
|
|
49
|
+
export async function down({ context: db }) {
|
|
50
|
+
// Additive-only migration — table is new and ignored by older code.
|
|
51
|
+
// No-op per LESSONS.md backward compatibility rules.
|
|
52
|
+
void db;
|
|
53
|
+
}
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAazE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA8BtD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-feature.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-feature.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,6EAA6E,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAOhE;;;GAGG;AACH,qBACa,uBAAwB,YAAW,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW7C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAcvD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAazE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAa7E,IAAI,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA8BtD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQpD,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK5C"}
|
|
@@ -32,7 +32,7 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
|
|
|
32
32
|
id, name, slug, description, user_query, repository_path, branch,
|
|
33
33
|
lifecycle, messages, plan, related_artifacts,
|
|
34
34
|
agent_run_id, spec_path,
|
|
35
|
-
|
|
35
|
+
fast,
|
|
36
36
|
push, open_pr, fork_and_pr, commit_specs,
|
|
37
37
|
ci_watch_enabled, enable_evidence, commit_evidence,
|
|
38
38
|
auto_merge, allow_prd, allow_plan, allow_merge,
|
|
@@ -47,7 +47,7 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
|
|
|
47
47
|
@id, @name, @slug, @description, @user_query, @repository_path, @branch,
|
|
48
48
|
@lifecycle, @messages, @plan, @related_artifacts,
|
|
49
49
|
@agent_run_id, @spec_path,
|
|
50
|
-
@
|
|
50
|
+
@fast,
|
|
51
51
|
@push, @open_pr, @fork_and_pr, @commit_specs,
|
|
52
52
|
@ci_watch_enabled, @enable_evidence, @commit_evidence,
|
|
53
53
|
@auto_merge, @allow_prd, @allow_plan, @allow_merge,
|
|
@@ -140,9 +140,7 @@ let SQLiteFeatureRepository = class SQLiteFeatureRepository {
|
|
|
140
140
|
related_artifacts = @related_artifacts,
|
|
141
141
|
agent_run_id = @agent_run_id,
|
|
142
142
|
spec_path = @spec_path,
|
|
143
|
-
|
|
144
|
-
iteration_count = @iteration_count,
|
|
145
|
-
max_iterations = @max_iterations,
|
|
143
|
+
fast = @fast,
|
|
146
144
|
push = @push,
|
|
147
145
|
open_pr = @open_pr,
|
|
148
146
|
fork_and_pr = @fork_and_pr,
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite Security Event Repository Implementation
|
|
3
|
+
*
|
|
4
|
+
* Implements ISecurityEventRepository using SQLite database.
|
|
5
|
+
* Uses prepared statements to prevent SQL injection.
|
|
6
|
+
* Supports 90-day retention cleanup.
|
|
7
|
+
*/
|
|
8
|
+
import type Database from 'better-sqlite3';
|
|
9
|
+
import type { ISecurityEventRepository, SecurityEventQueryOptions } from '../../application/ports/output/repositories/security-event.repository.interface.js';
|
|
10
|
+
import type { SecurityEvent } from '../../domain/generated/output.js';
|
|
11
|
+
/**
|
|
12
|
+
* SQLite implementation of ISecurityEventRepository.
|
|
13
|
+
* Manages SecurityEvent persistence with repository-scoped queries.
|
|
14
|
+
*/
|
|
15
|
+
export declare class SQLiteSecurityEventRepository implements ISecurityEventRepository {
|
|
16
|
+
private readonly db;
|
|
17
|
+
constructor(db: Database.Database);
|
|
18
|
+
save(event: SecurityEvent): Promise<void>;
|
|
19
|
+
findByRepository(repositoryPath: string, options?: SecurityEventQueryOptions): Promise<SecurityEvent[]>;
|
|
20
|
+
findByFeature(featureId: string, options?: SecurityEventQueryOptions): Promise<SecurityEvent[]>;
|
|
21
|
+
deleteOlderThan(date: Date): Promise<number>;
|
|
22
|
+
count(repositoryPath: string): Promise<number>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=sqlite-security-event.repository.d.ts.map
|
package/dist/packages/core/src/infrastructure/repositories/sqlite-security-event.repository.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-security-event.repository.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/repositories/sqlite-security-event.repository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,oFAAoF,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAOtE;;;GAGG;AACH,qBACa,6BAA8B,YAAW,wBAAwB;IAChE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAE5C,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzC,gBAAgB,CACpB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,aAAa,EAAE,CAAC;IA2BrB,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,aAAa,EAAE,CAAC;IA2BrB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOrD"}
|