jumbo-cli 3.2.1 → 3.3.0
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/README.md +2 -2
- package/dist/application/context/goals/codify/CodifierProcessManager.d.ts.map +1 -1
- package/dist/application/context/goals/codify/CodifierProcessManager.js +9 -3
- package/dist/application/context/goals/codify/CodifierProcessManager.js.map +1 -1
- package/dist/application/context/goals/refine/RefinerProcessManager.d.ts.map +1 -1
- package/dist/application/context/goals/refine/RefinerProcessManager.js +19 -3
- package/dist/application/context/goals/refine/RefinerProcessManager.js.map +1 -1
- package/dist/application/context/goals/review/ReviewerProcessManager.d.ts.map +1 -1
- package/dist/application/context/goals/review/ReviewerProcessManager.js +16 -3
- package/dist/application/context/goals/review/ReviewerProcessManager.js.map +1 -1
- package/dist/domain/architecture/define/ArchitectureDefinedEvent.d.ts +2 -1
- package/dist/domain/architecture/define/ArchitectureDefinedEvent.d.ts.map +1 -1
- package/dist/domain/architecture/update/ArchitectureUpdatedEvent.d.ts +2 -1
- package/dist/domain/architecture/update/ArchitectureUpdatedEvent.d.ts.map +1 -1
- package/dist/domain/audience-pains/add/AudiencePainAddedEvent.d.ts +2 -1
- package/dist/domain/audience-pains/add/AudiencePainAddedEvent.d.ts.map +1 -1
- package/dist/domain/audience-pains/update/AudiencePainUpdatedEvent.d.ts +2 -1
- package/dist/domain/audience-pains/update/AudiencePainUpdatedEvent.d.ts.map +1 -1
- package/dist/domain/audiences/add/AudienceAddedEvent.d.ts +2 -2
- package/dist/domain/audiences/add/AudienceAddedEvent.d.ts.map +1 -1
- package/dist/domain/audiences/remove/AudienceRemovedEvent.d.ts +2 -1
- package/dist/domain/audiences/remove/AudienceRemovedEvent.d.ts.map +1 -1
- package/dist/domain/audiences/update/AudienceUpdatedEvent.d.ts +2 -2
- package/dist/domain/audiences/update/AudienceUpdatedEvent.d.ts.map +1 -1
- package/dist/domain/components/add/ComponentAddedEvent.d.ts +2 -2
- package/dist/domain/components/add/ComponentAddedEvent.d.ts.map +1 -1
- package/dist/domain/components/deprecate/ComponentDeprecatedEvent.d.ts +2 -2
- package/dist/domain/components/deprecate/ComponentDeprecatedEvent.d.ts.map +1 -1
- package/dist/domain/components/remove/ComponentRemovedEvent.d.ts +2 -2
- package/dist/domain/components/remove/ComponentRemovedEvent.d.ts.map +1 -1
- package/dist/domain/components/update/ComponentUpdatedEvent.d.ts +2 -2
- package/dist/domain/components/update/ComponentUpdatedEvent.d.ts.map +1 -1
- package/dist/domain/goals/unblock/GoalUnblockedEvent.d.ts +2 -2
- package/dist/domain/goals/unblock/GoalUnblockedEvent.d.ts.map +1 -1
- package/dist/domain/guidelines/add/GuidelineAddedEvent.d.ts +2 -2
- package/dist/domain/guidelines/add/GuidelineAddedEvent.d.ts.map +1 -1
- package/dist/domain/guidelines/remove/GuidelineRemovedEvent.d.ts +2 -1
- package/dist/domain/guidelines/remove/GuidelineRemovedEvent.d.ts.map +1 -1
- package/dist/domain/guidelines/update/GuidelineUpdatedEvent.d.ts +2 -2
- package/dist/domain/guidelines/update/GuidelineUpdatedEvent.d.ts.map +1 -1
- package/dist/domain/invariants/add/InvariantAddedEvent.d.ts +2 -1
- package/dist/domain/invariants/add/InvariantAddedEvent.d.ts.map +1 -1
- package/dist/domain/invariants/remove/InvariantRemovedEvent.d.ts +2 -1
- package/dist/domain/invariants/remove/InvariantRemovedEvent.d.ts.map +1 -1
- package/dist/domain/invariants/update/InvariantUpdatedEvent.d.ts +2 -1
- package/dist/domain/invariants/update/InvariantUpdatedEvent.d.ts.map +1 -1
- package/dist/domain/project/Constants.d.ts +7 -0
- package/dist/domain/project/Constants.d.ts.map +1 -1
- package/dist/domain/project/Constants.js +7 -0
- package/dist/domain/project/Constants.js.map +1 -1
- package/dist/domain/project/ProjectLifecyle.d.ts +7 -0
- package/dist/domain/project/ProjectLifecyle.d.ts.map +1 -0
- package/dist/domain/project/ProjectLifecyle.js +8 -0
- package/dist/domain/project/ProjectLifecyle.js.map +1 -0
- package/dist/domain/relations/Constants.d.ts +6 -0
- package/dist/domain/relations/Constants.d.ts.map +1 -1
- package/dist/domain/relations/Constants.js +6 -0
- package/dist/domain/relations/Constants.js.map +1 -1
- package/dist/domain/relations/Relation.d.ts +2 -2
- package/dist/domain/relations/Relation.d.ts.map +1 -1
- package/dist/domain/relations/Relation.js +10 -10
- package/dist/domain/relations/Relation.js.map +1 -1
- package/dist/domain/relations/add/RelationAddedEvent.d.ts +2 -2
- package/dist/domain/relations/add/RelationAddedEvent.d.ts.map +1 -1
- package/dist/domain/relations/remove/RelationRemovedEvent.d.ts +2 -2
- package/dist/domain/relations/remove/RelationRemovedEvent.d.ts.map +1 -1
- package/dist/domain/value-propositions/add/ValuePropositionAddedEvent.d.ts +2 -1
- package/dist/domain/value-propositions/add/ValuePropositionAddedEvent.d.ts.map +1 -1
- package/dist/domain/value-propositions/remove/ValuePropositionRemovedEvent.d.ts +2 -1
- package/dist/domain/value-propositions/remove/ValuePropositionRemovedEvent.d.ts.map +1 -1
- package/dist/domain/value-propositions/update/ValuePropositionUpdatedEvent.d.ts +2 -1
- package/dist/domain/value-propositions/update/ValuePropositionUpdatedEvent.d.ts.map +1 -1
- package/dist/infrastructure/agents/AgentCliGateway.d.ts.map +1 -1
- package/dist/infrastructure/agents/AgentCliGateway.js +30 -10
- package/dist/infrastructure/agents/AgentCliGateway.js.map +1 -1
- package/dist/infrastructure/context/project/init/CodexConfigurer.d.ts +19 -6
- package/dist/infrastructure/context/project/init/CodexConfigurer.d.ts.map +1 -1
- package/dist/infrastructure/context/project/init/CodexConfigurer.js +177 -9
- package/dist/infrastructure/context/project/init/CodexConfigurer.js.map +1 -1
- package/dist/presentation/tui/Constants.d.ts +18 -0
- package/dist/presentation/tui/Constants.d.ts.map +1 -0
- package/dist/presentation/tui/Constants.js +28 -0
- package/dist/presentation/tui/Constants.js.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.d.ts +4 -10
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.d.ts.map +1 -1
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.js +17 -20
- package/dist/presentation/tui/action-dispatch/TuiActionDispatcher.js.map +1 -1
- package/dist/presentation/tui/action-dispatch/TuiActionErrorNormalizer.d.ts +4 -0
- package/dist/presentation/tui/action-dispatch/TuiActionErrorNormalizer.d.ts.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiActionErrorNormalizer.js +9 -0
- package/dist/presentation/tui/action-dispatch/TuiActionErrorNormalizer.js.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiActionResult.d.ts +8 -0
- package/dist/presentation/tui/action-dispatch/TuiActionResult.d.ts.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiActionResult.js +2 -0
- package/dist/presentation/tui/action-dispatch/TuiActionResult.js.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiRequestController.d.ts +4 -0
- package/dist/presentation/tui/action-dispatch/TuiRequestController.d.ts.map +1 -0
- package/dist/presentation/tui/action-dispatch/TuiRequestController.js +2 -0
- package/dist/presentation/tui/action-dispatch/TuiRequestController.js.map +1 -0
- package/dist/presentation/tui/application-shell/Footer.d.ts +2 -6
- package/dist/presentation/tui/application-shell/Footer.d.ts.map +1 -1
- package/dist/presentation/tui/application-shell/Footer.js +16 -12
- package/dist/presentation/tui/application-shell/Footer.js.map +1 -1
- package/dist/presentation/tui/application-shell/FooterShortcutDescriptor.d.ts +16 -0
- package/dist/presentation/tui/application-shell/FooterShortcutDescriptor.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/FooterShortcutDescriptor.js +10 -0
- package/dist/presentation/tui/application-shell/FooterShortcutDescriptor.js.map +1 -0
- package/dist/presentation/tui/application-shell/FooterUnreadNotificationCounter.d.ts +3 -0
- package/dist/presentation/tui/application-shell/FooterUnreadNotificationCounter.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/FooterUnreadNotificationCounter.js +4 -0
- package/dist/presentation/tui/application-shell/FooterUnreadNotificationCounter.js.map +1 -0
- package/dist/presentation/tui/application-shell/Header.d.ts.map +1 -1
- package/dist/presentation/tui/application-shell/Header.js +4 -3
- package/dist/presentation/tui/application-shell/Header.js.map +1 -1
- package/dist/presentation/tui/application-shell/HeaderConstants.d.ts +6 -0
- package/dist/presentation/tui/application-shell/HeaderConstants.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/HeaderConstants.js +6 -0
- package/dist/presentation/tui/application-shell/HeaderConstants.js.map +1 -0
- package/dist/presentation/tui/application-shell/TuiApp.d.ts +1 -1
- package/dist/presentation/tui/application-shell/TuiApp.d.ts.map +1 -1
- package/dist/presentation/tui/application-shell/TuiApp.js +26 -23
- package/dist/presentation/tui/application-shell/TuiApp.js.map +1 -1
- package/dist/presentation/tui/application-shell/TuiAppConstants.d.ts +18 -0
- package/dist/presentation/tui/application-shell/TuiAppConstants.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/TuiAppConstants.js +18 -0
- package/dist/presentation/tui/application-shell/TuiAppConstants.js.map +1 -0
- package/dist/presentation/tui/application-shell/useFooterNotificationDismissal.d.ts +6 -0
- package/dist/presentation/tui/application-shell/useFooterNotificationDismissal.d.ts.map +1 -0
- package/dist/presentation/tui/application-shell/useFooterNotificationDismissal.js +9 -0
- package/dist/presentation/tui/application-shell/useFooterNotificationDismissal.js.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboard.d.ts.map +1 -1
- package/dist/presentation/tui/billboard/AnimatedBillboard.js +26 -100
- package/dist/presentation/tui/billboard/AnimatedBillboard.js.map +1 -1
- package/dist/presentation/tui/billboard/AnimatedBillboardPalette.d.ts +31 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPalette.d.ts.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPalette.js +54 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPalette.js.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPhase.d.ts +8 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPhase.d.ts.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPhase.js +7 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardPhase.js.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardStickerArt.d.ts +2 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardStickerArt.d.ts.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardStickerArt.js +17 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardStickerArt.js.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardWordmarkArt.d.ts +2 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardWordmarkArt.d.ts.map +1 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardWordmarkArt.js +10 -0
- package/dist/presentation/tui/billboard/AnimatedBillboardWordmarkArt.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.d.ts +1 -2
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.js +4 -5
- package/dist/presentation/tui/cockpit/CockpitDaemonConfiguration.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.js +23 -15
- package/dist/presentation/tui/cockpit/CockpitDaemonEvents.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.d.ts +4 -4
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.js +5 -2
- package/dist/presentation/tui/cockpit/CockpitDaemonFrames.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.d.ts +6 -17
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js +20 -75
- package/dist/presentation/tui/cockpit/CockpitDaemonPanel.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitDaemonPanelCopy.d.ts +12 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanelCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanelCopy.js +12 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonPanelCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonSnapshot.d.ts +10 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonSnapshot.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonSnapshot.js +2 -0
- package/dist/presentation/tui/cockpit/CockpitDaemonSnapshot.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterCopy.d.ts +10 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterCopy.js +14 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitGreeterView.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitGreeterView.js +3 -2
- package/dist/presentation/tui/cockpit/CockpitGreeterView.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitLaunchpadCopy.d.ts +4 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadCopy.js +4 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.js +45 -31
- package/dist/presentation/tui/cockpit/CockpitLaunchpadView.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.js +5 -4
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcome.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcomeCopy.d.ts +9 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcomeCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcomeCopy.js +12 -0
- package/dist/presentation/tui/cockpit/CockpitLaunchpadWelcomeCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyCopy.d.ts +12 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyCopy.js +16 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.js +7 -6
- package/dist/presentation/tui/cockpit/CockpitPrimedEmptyView.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitScreen.d.ts +2 -1
- package/dist/presentation/tui/cockpit/CockpitScreen.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitScreen.js +23 -19
- package/dist/presentation/tui/cockpit/CockpitScreen.js.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitScreenCopy.d.ts +7 -0
- package/dist/presentation/tui/cockpit/CockpitScreenCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitScreenCopy.js +7 -0
- package/dist/presentation/tui/cockpit/CockpitScreenCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitScreenDefaults.d.ts +6 -0
- package/dist/presentation/tui/cockpit/CockpitScreenDefaults.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitScreenDefaults.js +6 -0
- package/dist/presentation/tui/cockpit/CockpitScreenDefaults.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedCopy.d.ts +12 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedCopy.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedCopy.js +16 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedCopy.js.map +1 -0
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.d.ts.map +1 -1
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.js +8 -7
- package/dist/presentation/tui/cockpit/CockpitUnprimedView.js.map +1 -1
- package/dist/presentation/tui/cockpit/DaemonFrameViews.d.ts +17 -0
- package/dist/presentation/tui/cockpit/DaemonFrameViews.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/DaemonFrameViews.js +20 -0
- package/dist/presentation/tui/cockpit/DaemonFrameViews.js.map +1 -0
- package/dist/presentation/tui/cockpit/DaemonPanelStatusLabel.d.ts +4 -0
- package/dist/presentation/tui/cockpit/DaemonPanelStatusLabel.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/DaemonPanelStatusLabel.js +14 -0
- package/dist/presentation/tui/cockpit/DaemonPanelStatusLabel.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonConstants.d.ts +11 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonConstants.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonConstants.js +15 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonConstants.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonFrame.d.ts +4 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonFrame.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonFrame.js +7 -0
- package/dist/presentation/tui/cockpit/daemons/CodifierDaemonFrame.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonConstants.d.ts +11 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonConstants.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonConstants.js +2 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonConstants.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonFrame.d.ts +11 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonFrame.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonFrame.js +2 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonFrame.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonUiDefinition.d.ts +7 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonUiDefinition.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonUiDefinition.js +2 -0
- package/dist/presentation/tui/cockpit/daemons/IDaemonUiDefinition.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonConstants.d.ts +11 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonConstants.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonConstants.js +15 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonConstants.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonFrame.d.ts +4 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonFrame.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonFrame.js +7 -0
- package/dist/presentation/tui/cockpit/daemons/RefinerDaemonFrame.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonConstants.d.ts +11 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonConstants.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonConstants.js +16 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonConstants.js.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonFrame.d.ts +4 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonFrame.d.ts.map +1 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonFrame.js +7 -0
- package/dist/presentation/tui/cockpit/daemons/ReviewerDaemonFrame.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/ISubprocessManager.d.ts +10 -34
- package/dist/presentation/tui/daemon-subprocesses/ISubprocessManager.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.js +2 -1
- package/dist/presentation/tui/daemon-subprocesses/NoOpSubprocessManager.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.d.ts +2 -7
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.js +2 -8
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerContext.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerProvider.d.ts +8 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerProvider.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerProvider.js +6 -0
- package/dist/presentation/tui/daemon-subprocesses/SubprocessManagerProvider.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonConfig.d.ts +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonConfig.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonConfig.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonConfig.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonCounts.d.ts +6 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonCounts.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonCounts.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonCounts.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventCategory.d.ts +7 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventCategory.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventCategory.js +8 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventCategory.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventSnapshot.d.ts +15 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventSnapshot.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventSnapshot.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventSnapshot.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventStatus.d.ts +14 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventStatus.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventStatus.js +13 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonEventStatus.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonName.d.ts +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonName.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonName.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiDaemonName.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessCopy.d.ts +16 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessCopy.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessCopy.js +16 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessCopy.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.d.ts.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.js +84 -42
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessManager.js.map +1 -1
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessSnapshot.d.ts +17 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessSnapshot.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessSnapshot.js +2 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessSnapshot.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessStatus.d.ts +7 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessStatus.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessStatus.js +6 -0
- package/dist/presentation/tui/daemon-subprocesses/TuiSubprocessStatus.js.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/useSubprocessManager.d.ts +3 -0
- package/dist/presentation/tui/daemon-subprocesses/useSubprocessManager.d.ts.map +1 -0
- package/dist/presentation/tui/daemon-subprocesses/useSubprocessManager.js +6 -0
- package/dist/presentation/tui/daemon-subprocesses/useSubprocessManager.js.map +1 -0
- package/dist/presentation/tui/goals/Constants.d.ts +2 -0
- package/dist/presentation/tui/goals/Constants.d.ts.map +1 -0
- package/dist/presentation/tui/goals/Constants.js +2 -0
- package/dist/presentation/tui/goals/Constants.js.map +1 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlow.d.ts.map +1 -1
- package/dist/presentation/tui/goals/GoalAuthoringFlow.js +80 -88
- package/dist/presentation/tui/goals/GoalAuthoringFlow.js.map +1 -1
- package/dist/presentation/tui/goals/GoalAuthoringFlowConstants.d.ts +79 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlowConstants.d.ts.map +1 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlowConstants.js +84 -0
- package/dist/presentation/tui/goals/GoalAuthoringFlowConstants.js.map +1 -0
- package/dist/presentation/tui/goals/GoalsScreen.d.ts.map +1 -1
- package/dist/presentation/tui/goals/GoalsScreen.js +49 -57
- package/dist/presentation/tui/goals/GoalsScreen.js.map +1 -1
- package/dist/presentation/tui/goals/GoalsScreenConstants.d.ts +33 -0
- package/dist/presentation/tui/goals/GoalsScreenConstants.d.ts.map +1 -0
- package/dist/presentation/tui/goals/GoalsScreenConstants.js +41 -0
- package/dist/presentation/tui/goals/GoalsScreenConstants.js.map +1 -0
- package/dist/presentation/tui/index.d.ts +4 -2
- package/dist/presentation/tui/index.d.ts.map +1 -1
- package/dist/presentation/tui/index.js +2 -1
- package/dist/presentation/tui/index.js.map +1 -1
- package/dist/presentation/tui/memory/MemoryScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/MemoryScreen.js +10 -4
- package/dist/presentation/tui/memory/MemoryScreen.js.map +1 -1
- package/dist/presentation/tui/memory/components/ComponentsScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/components/ComponentsScreen.js +5 -1
- package/dist/presentation/tui/memory/components/ComponentsScreen.js.map +1 -1
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.js +5 -1
- package/dist/presentation/tui/memory/decisions/DecisionsScreen.js.map +1 -1
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.js +5 -1
- package/dist/presentation/tui/memory/dependencies/DependenciesScreen.js.map +1 -1
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.d.ts.map +1 -1
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.js +4 -1
- package/dist/presentation/tui/memory/entity-browser/EntityColumn.js.map +1 -1
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.d.ts.map +1 -1
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.js +96 -40
- package/dist/presentation/tui/memory/entity-browser/EntityDetailView.js.map +1 -1
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.js +39 -12
- package/dist/presentation/tui/memory/entity-browser/MemoryEntityScreen.js.map +1 -1
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.js +5 -1
- package/dist/presentation/tui/memory/guidelines/GuidelinesScreen.js.map +1 -1
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.d.ts.map +1 -1
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.js +5 -1
- package/dist/presentation/tui/memory/invariants/InvariantsScreen.js.map +1 -1
- package/dist/presentation/tui/navigation/MegaMenu.d.ts.map +1 -1
- package/dist/presentation/tui/navigation/MegaMenu.js +19 -4
- package/dist/presentation/tui/navigation/MegaMenu.js.map +1 -1
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.d.ts.map +1 -1
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.js +101 -56
- package/dist/presentation/tui/navigation/MegaMenuDefinitions.js.map +1 -1
- package/dist/presentation/tui/navigation/ScreenRouter.d.ts.map +1 -1
- package/dist/presentation/tui/navigation/ScreenRouter.js +3 -2
- package/dist/presentation/tui/navigation/ScreenRouter.js.map +1 -1
- package/dist/presentation/tui/project-initialization/Constants.d.ts +140 -0
- package/dist/presentation/tui/project-initialization/Constants.d.ts.map +1 -0
- package/dist/presentation/tui/project-initialization/Constants.js +140 -0
- package/dist/presentation/tui/project-initialization/Constants.js.map +1 -0
- package/dist/presentation/tui/project-initialization/InitFlow.d.ts +1 -1
- package/dist/presentation/tui/project-initialization/InitFlow.d.ts.map +1 -1
- package/dist/presentation/tui/project-initialization/InitFlow.js +212 -191
- package/dist/presentation/tui/project-initialization/InitFlow.js.map +1 -1
- package/dist/presentation/tui/sessions/SessionScreen.d.ts.map +1 -1
- package/dist/presentation/tui/sessions/SessionScreen.js +53 -12
- package/dist/presentation/tui/sessions/SessionScreen.js.map +1 -1
- package/dist/presentation/tui/state-reading/TuiStateReader.d.ts.map +1 -1
- package/dist/presentation/tui/state-reading/TuiStateReader.js +4 -2
- package/dist/presentation/tui/state-reading/TuiStateReader.js.map +1 -1
- package/dist/presentation/tui/ui-primitives/ListPanel.d.ts.map +1 -1
- package/dist/presentation/tui/ui-primitives/ListPanel.js +2 -1
- package/dist/presentation/tui/ui-primitives/ListPanel.js.map +1 -1
- package/dist/presentation/tui/ui-primitives/ListPanelConstants.d.ts +4 -0
- package/dist/presentation/tui/ui-primitives/ListPanelConstants.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/ListPanelConstants.js +4 -0
- package/dist/presentation/tui/ui-primitives/ListPanelConstants.js.map +1 -0
- package/dist/presentation/tui/ui-primitives/Tumbler.d.ts.map +1 -1
- package/dist/presentation/tui/ui-primitives/Tumbler.js +2 -1
- package/dist/presentation/tui/ui-primitives/Tumbler.js.map +1 -1
- package/dist/presentation/tui/ui-primitives/TumblerConstants.d.ts +4 -0
- package/dist/presentation/tui/ui-primitives/TumblerConstants.d.ts.map +1 -0
- package/dist/presentation/tui/ui-primitives/TumblerConstants.js +4 -0
- package/dist/presentation/tui/ui-primitives/TumblerConstants.js.map +1 -0
- package/dist/presentation/tui/wizard/Wizard.d.ts +2 -1
- package/dist/presentation/tui/wizard/Wizard.d.ts.map +1 -1
- package/dist/presentation/tui/wizard/Wizard.js +47 -20
- package/dist/presentation/tui/wizard/Wizard.js.map +1 -1
- package/dist/presentation/tui/wizard/WizardConstants.d.ts +27 -0
- package/dist/presentation/tui/wizard/WizardConstants.d.ts.map +1 -0
- package/dist/presentation/tui/wizard/WizardConstants.js +26 -0
- package/dist/presentation/tui/wizard/WizardConstants.js.map +1 -0
- package/dist/presentation/work/codifier.daemon.d.ts.map +1 -1
- package/dist/presentation/work/codifier.daemon.js +20 -1
- package/dist/presentation/work/codifier.daemon.js.map +1 -1
- package/dist/presentation/work/refiner.daemon.d.ts.map +1 -1
- package/dist/presentation/work/refiner.daemon.js +20 -1
- package/dist/presentation/work/refiner.daemon.js.map +1 -1
- package/dist/presentation/work/reviewer.daemon.d.ts.map +1 -1
- package/dist/presentation/work/reviewer.daemon.js +20 -1
- package/dist/presentation/work/reviewer.daemon.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,51 +1,48 @@
|
|
|
1
1
|
import React, { useMemo, useState } from "react";
|
|
2
2
|
import { Box, Text } from "ink";
|
|
3
3
|
import { Wizard } from "../wizard/Wizard.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TuiActionDispatcher } from "../action-dispatch/TuiActionDispatcher.js";
|
|
5
5
|
import { SemanticColors } from "../../shared/DesignTokens.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const REQUIRED_INIT_CONTROLLER_ERROR = "Project initialization is unavailable. Restart Jumbo and try again.";
|
|
9
|
-
const REQUIRED_AUDIENCE_CONTROLLER_ERROR = "Audience registration is unavailable. Restart Jumbo and try again.";
|
|
10
|
-
const REQUIRED_VALUE_PROPOSITION_CONTROLLER_ERROR = "Value proposition registration is unavailable. Restart Jumbo and try again.";
|
|
6
|
+
import { AudiencePriority } from "../../../domain/audiences/Constants.js";
|
|
7
|
+
import { InitFlowAudiencePriorityOption, InitFlowConfirmationCopy, InitFlowConfirmationGroupLabel, InitFlowControllerErrorCopy, InitFlowCopy, InitFlowFieldKey, InitFlowFieldKind, InitFlowRollback, InitFlowStage, InitFlowValidationCopy, InitFlowYesNoValue, } from "./Constants.js";
|
|
11
8
|
const INIT_FLOW_STAGES_WITH_AGENT_SELECTION = [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
InitFlowStage.project,
|
|
10
|
+
InitFlowStage.audienceGate,
|
|
11
|
+
InitFlowStage.audience,
|
|
12
|
+
InitFlowStage.valueGate,
|
|
13
|
+
InitFlowStage.value,
|
|
14
|
+
InitFlowStage.agentSelection,
|
|
15
|
+
InitFlowStage.confirmation,
|
|
19
16
|
];
|
|
20
17
|
const INIT_FLOW_STAGES_WITHOUT_AGENT_SELECTION = [
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
InitFlowStage.project,
|
|
19
|
+
InitFlowStage.audienceGate,
|
|
20
|
+
InitFlowStage.audience,
|
|
21
|
+
InitFlowStage.valueGate,
|
|
22
|
+
InitFlowStage.value,
|
|
23
|
+
InitFlowStage.confirmation,
|
|
27
24
|
];
|
|
28
25
|
const CONFIRMATION_FILE_REVIEW_PAGE_SIZE = 10;
|
|
29
26
|
const PROJECT_STEPS = [
|
|
30
27
|
{
|
|
31
|
-
title:
|
|
32
|
-
description:
|
|
28
|
+
title: InitFlowCopy.projectNameTitle,
|
|
29
|
+
description: InitFlowCopy.projectNameDescription,
|
|
33
30
|
fields: [
|
|
34
31
|
{
|
|
35
|
-
key:
|
|
36
|
-
label:
|
|
37
|
-
placeholder:
|
|
32
|
+
key: InitFlowFieldKey.projectName,
|
|
33
|
+
label: InitFlowCopy.projectNameLabel,
|
|
34
|
+
placeholder: InitFlowCopy.projectNamePlaceholder,
|
|
38
35
|
},
|
|
39
36
|
],
|
|
40
37
|
},
|
|
41
38
|
{
|
|
42
|
-
title:
|
|
43
|
-
description:
|
|
39
|
+
title: InitFlowCopy.purposeTitle,
|
|
40
|
+
description: InitFlowCopy.purposeDescription,
|
|
44
41
|
fields: [
|
|
45
42
|
{
|
|
46
|
-
key:
|
|
47
|
-
label:
|
|
48
|
-
placeholder:
|
|
43
|
+
key: InitFlowFieldKey.purpose,
|
|
44
|
+
label: InitFlowCopy.purposeLabel,
|
|
45
|
+
placeholder: InitFlowCopy.purposePlaceholder,
|
|
49
46
|
required: false,
|
|
50
47
|
},
|
|
51
48
|
],
|
|
@@ -53,14 +50,14 @@ const PROJECT_STEPS = [
|
|
|
53
50
|
];
|
|
54
51
|
const AUDIENCE_GATE_STEPS = [
|
|
55
52
|
{
|
|
56
|
-
title:
|
|
57
|
-
description:
|
|
53
|
+
title: InitFlowCopy.audiencesTitle,
|
|
54
|
+
description: InitFlowCopy.audiencesDescription,
|
|
58
55
|
fields: [
|
|
59
56
|
{
|
|
60
|
-
key:
|
|
61
|
-
label:
|
|
62
|
-
kind:
|
|
63
|
-
defaultValue:
|
|
57
|
+
key: InitFlowFieldKey.addAudience,
|
|
58
|
+
label: InitFlowCopy.addAudienceLabel,
|
|
59
|
+
kind: InitFlowFieldKind.yesNo,
|
|
60
|
+
defaultValue: InitFlowYesNoValue.no,
|
|
64
61
|
required: false,
|
|
65
62
|
validate: validateOptionalYesNo,
|
|
66
63
|
},
|
|
@@ -69,36 +66,36 @@ const AUDIENCE_GATE_STEPS = [
|
|
|
69
66
|
];
|
|
70
67
|
const AUDIENCE_STEPS = [
|
|
71
68
|
{
|
|
72
|
-
title:
|
|
73
|
-
description:
|
|
69
|
+
title: InitFlowCopy.audiencesTitle,
|
|
70
|
+
description: InitFlowCopy.audiencesDescription,
|
|
74
71
|
fields: [
|
|
75
72
|
{
|
|
76
|
-
key:
|
|
77
|
-
label:
|
|
78
|
-
placeholder:
|
|
73
|
+
key: InitFlowFieldKey.audienceName,
|
|
74
|
+
label: InitFlowCopy.audienceNameLabel,
|
|
75
|
+
placeholder: InitFlowCopy.audienceNamePlaceholder,
|
|
79
76
|
},
|
|
80
77
|
{
|
|
81
|
-
key:
|
|
82
|
-
label:
|
|
83
|
-
placeholder:
|
|
78
|
+
key: InitFlowFieldKey.audienceDescription,
|
|
79
|
+
label: InitFlowCopy.audienceDescriptionLabel,
|
|
80
|
+
placeholder: InitFlowCopy.audienceDescriptionPlaceholder,
|
|
84
81
|
},
|
|
85
82
|
{
|
|
86
|
-
key:
|
|
87
|
-
label:
|
|
88
|
-
kind:
|
|
83
|
+
key: InitFlowFieldKey.audiencePriority,
|
|
84
|
+
label: InitFlowCopy.audiencePriorityLabel,
|
|
85
|
+
kind: InitFlowFieldKind.singleSelect,
|
|
89
86
|
options: [
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
InitFlowAudiencePriorityOption.primary,
|
|
88
|
+
InitFlowAudiencePriorityOption.secondary,
|
|
89
|
+
InitFlowAudiencePriorityOption.tertiary,
|
|
93
90
|
],
|
|
94
|
-
defaultValue:
|
|
91
|
+
defaultValue: AudiencePriority.PRIMARY,
|
|
95
92
|
validate: validateAudiencePriority,
|
|
96
93
|
},
|
|
97
94
|
{
|
|
98
|
-
key:
|
|
99
|
-
label:
|
|
100
|
-
kind:
|
|
101
|
-
defaultValue:
|
|
95
|
+
key: InitFlowFieldKey.addAnotherAudience,
|
|
96
|
+
label: InitFlowCopy.addAnotherAudienceLabel,
|
|
97
|
+
kind: InitFlowFieldKind.yesNo,
|
|
98
|
+
defaultValue: InitFlowYesNoValue.no,
|
|
102
99
|
required: false,
|
|
103
100
|
validate: validateOptionalYesNo,
|
|
104
101
|
},
|
|
@@ -107,14 +104,14 @@ const AUDIENCE_STEPS = [
|
|
|
107
104
|
];
|
|
108
105
|
const VALUE_GATE_STEPS = [
|
|
109
106
|
{
|
|
110
|
-
title:
|
|
111
|
-
description:
|
|
107
|
+
title: InitFlowCopy.valuePropositionsTitle,
|
|
108
|
+
description: InitFlowCopy.valuePropositionsDescription,
|
|
112
109
|
fields: [
|
|
113
110
|
{
|
|
114
|
-
key:
|
|
115
|
-
label:
|
|
116
|
-
kind:
|
|
117
|
-
defaultValue:
|
|
111
|
+
key: InitFlowFieldKey.addValueProposition,
|
|
112
|
+
label: InitFlowCopy.addValuePropositionLabel,
|
|
113
|
+
kind: InitFlowFieldKind.yesNo,
|
|
114
|
+
defaultValue: InitFlowYesNoValue.no,
|
|
118
115
|
required: false,
|
|
119
116
|
validate: validateOptionalYesNo,
|
|
120
117
|
},
|
|
@@ -123,35 +120,35 @@ const VALUE_GATE_STEPS = [
|
|
|
123
120
|
];
|
|
124
121
|
const VALUE_STEPS = [
|
|
125
122
|
{
|
|
126
|
-
title:
|
|
127
|
-
description:
|
|
123
|
+
title: InitFlowCopy.valuePropositionsTitle,
|
|
124
|
+
description: InitFlowCopy.valuePropositionsDescription,
|
|
128
125
|
fields: [
|
|
129
126
|
{
|
|
130
|
-
key:
|
|
131
|
-
label:
|
|
132
|
-
placeholder:
|
|
127
|
+
key: InitFlowFieldKey.valueTitle,
|
|
128
|
+
label: InitFlowCopy.valueTitleLabel,
|
|
129
|
+
placeholder: InitFlowCopy.valueTitlePlaceholder,
|
|
133
130
|
},
|
|
134
131
|
{
|
|
135
|
-
key:
|
|
136
|
-
label:
|
|
137
|
-
placeholder:
|
|
132
|
+
key: InitFlowFieldKey.valueDescription,
|
|
133
|
+
label: InitFlowCopy.valueDescriptionLabel,
|
|
134
|
+
placeholder: InitFlowCopy.valueDescriptionPlaceholder,
|
|
138
135
|
},
|
|
139
136
|
{
|
|
140
|
-
key:
|
|
141
|
-
label:
|
|
142
|
-
placeholder:
|
|
137
|
+
key: InitFlowFieldKey.valueBenefit,
|
|
138
|
+
label: InitFlowCopy.valueBenefitLabel,
|
|
139
|
+
placeholder: InitFlowCopy.valueBenefitPlaceholder,
|
|
143
140
|
},
|
|
144
141
|
{
|
|
145
|
-
key:
|
|
146
|
-
label:
|
|
147
|
-
placeholder:
|
|
142
|
+
key: InitFlowFieldKey.valueMeasurableOutcome,
|
|
143
|
+
label: InitFlowCopy.valueMeasurableOutcomeLabel,
|
|
144
|
+
placeholder: InitFlowCopy.valueMeasurableOutcomePlaceholder,
|
|
148
145
|
required: false,
|
|
149
146
|
},
|
|
150
147
|
{
|
|
151
|
-
key:
|
|
152
|
-
label:
|
|
153
|
-
kind:
|
|
154
|
-
defaultValue:
|
|
148
|
+
key: InitFlowFieldKey.addAnotherValueProposition,
|
|
149
|
+
label: InitFlowCopy.addAnotherValuePropositionLabel,
|
|
150
|
+
kind: InitFlowFieldKind.yesNo,
|
|
151
|
+
defaultValue: InitFlowYesNoValue.no,
|
|
155
152
|
required: false,
|
|
156
153
|
validate: validateOptionalYesNo,
|
|
157
154
|
},
|
|
@@ -159,17 +156,17 @@ const VALUE_STEPS = [
|
|
|
159
156
|
},
|
|
160
157
|
];
|
|
161
158
|
const INIT_FLOW_STAGE_STEP_COUNTS = {
|
|
162
|
-
project: PROJECT_STEPS.length,
|
|
163
|
-
|
|
164
|
-
audience: AUDIENCE_STEPS.length,
|
|
165
|
-
|
|
166
|
-
value: VALUE_STEPS.length,
|
|
167
|
-
|
|
168
|
-
confirmation: 1,
|
|
169
|
-
success: 0,
|
|
159
|
+
[InitFlowStage.project]: PROJECT_STEPS.length,
|
|
160
|
+
[InitFlowStage.audienceGate]: AUDIENCE_GATE_STEPS.length,
|
|
161
|
+
[InitFlowStage.audience]: AUDIENCE_STEPS.length,
|
|
162
|
+
[InitFlowStage.valueGate]: VALUE_GATE_STEPS.length,
|
|
163
|
+
[InitFlowStage.value]: VALUE_STEPS.length,
|
|
164
|
+
[InitFlowStage.agentSelection]: 1,
|
|
165
|
+
[InitFlowStage.confirmation]: 1,
|
|
166
|
+
[InitFlowStage.success]: 0,
|
|
170
167
|
};
|
|
171
168
|
export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
172
|
-
const [stage, setStage] = useState(
|
|
169
|
+
const [stage, setStage] = useState(InitFlowStage.project);
|
|
173
170
|
const [stageHistory, setStageHistory] = useState([]);
|
|
174
171
|
const [projectDetails, setProjectDetails] = useState(null);
|
|
175
172
|
const [audiences, setAudiences] = useState([]);
|
|
@@ -206,15 +203,15 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
206
203
|
setRestoreStepIndex(previousEntry.restoreStepIndex);
|
|
207
204
|
};
|
|
208
205
|
const applyRollback = (rollback) => {
|
|
209
|
-
if (rollback ===
|
|
206
|
+
if (rollback === InitFlowRollback.audience) {
|
|
210
207
|
setAudiences((current) => current.slice(0, -1));
|
|
211
208
|
return;
|
|
212
209
|
}
|
|
213
|
-
if (rollback ===
|
|
210
|
+
if (rollback === InitFlowRollback.valueProposition) {
|
|
214
211
|
setValuePropositions((current) => current.slice(0, -1));
|
|
215
212
|
return;
|
|
216
213
|
}
|
|
217
|
-
if (rollback ===
|
|
214
|
+
if (rollback === InitFlowRollback.plan) {
|
|
218
215
|
setPlanResponse(null);
|
|
219
216
|
setSelectedAgentIds(undefined);
|
|
220
217
|
setConfirmationReviewOpen(false);
|
|
@@ -223,63 +220,67 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
223
220
|
};
|
|
224
221
|
const handleProjectConfirm = async (values) => {
|
|
225
222
|
const nextProjectDetails = {
|
|
226
|
-
name: values.projectName.trim(),
|
|
227
|
-
purpose: (values.purpose ?? "").trim() || undefined,
|
|
223
|
+
name: values[InitFlowFieldKey.projectName].trim(),
|
|
224
|
+
purpose: (values[InitFlowFieldKey.purpose] ?? "").trim() || undefined,
|
|
228
225
|
};
|
|
229
226
|
setProjectDetails(nextProjectDetails);
|
|
230
|
-
navigateToStage(
|
|
227
|
+
navigateToStage(InitFlowStage.audienceGate);
|
|
231
228
|
};
|
|
232
229
|
const handleAudienceGateConfirm = (values) => {
|
|
233
|
-
navigateToStage(isYes(values.addAudience ?? "")
|
|
230
|
+
navigateToStage(isYes(values[InitFlowFieldKey.addAudience] ?? "")
|
|
231
|
+
? InitFlowStage.audience
|
|
232
|
+
: InitFlowStage.valueGate);
|
|
234
233
|
};
|
|
235
234
|
const handleAudienceConfirm = (values) => {
|
|
236
235
|
setAudiences((current) => [
|
|
237
236
|
...current,
|
|
238
237
|
{
|
|
239
|
-
name: values.audienceName.trim(),
|
|
240
|
-
description: values.audienceDescription.trim(),
|
|
241
|
-
priority: toAudiencePriority(values.audiencePriority),
|
|
238
|
+
name: values[InitFlowFieldKey.audienceName].trim(),
|
|
239
|
+
description: values[InitFlowFieldKey.audienceDescription].trim(),
|
|
240
|
+
priority: toAudiencePriority(values[InitFlowFieldKey.audiencePriority]),
|
|
242
241
|
},
|
|
243
242
|
]);
|
|
244
|
-
navigateToStage(isYes(values.addAnotherAudience ?? "")
|
|
243
|
+
navigateToStage(isYes(values[InitFlowFieldKey.addAnotherAudience] ?? "")
|
|
244
|
+
? InitFlowStage.audience
|
|
245
|
+
: InitFlowStage.valueGate, InitFlowRollback.audience);
|
|
245
246
|
};
|
|
246
247
|
const handleValueGateConfirm = async (values) => {
|
|
247
|
-
if (isYes(values.addValueProposition ?? "")) {
|
|
248
|
-
navigateToStage(
|
|
248
|
+
if (isYes(values[InitFlowFieldKey.addValueProposition] ?? "")) {
|
|
249
|
+
navigateToStage(InitFlowStage.value);
|
|
249
250
|
return;
|
|
250
251
|
}
|
|
251
|
-
await planProjectInit(undefined,
|
|
252
|
+
await planProjectInit(undefined, InitFlowRollback.plan);
|
|
252
253
|
};
|
|
253
254
|
const handleValueConfirm = async (values) => {
|
|
254
255
|
const nextValuePropositions = [
|
|
255
256
|
...valuePropositions,
|
|
256
257
|
{
|
|
257
|
-
title: values.valueTitle.trim(),
|
|
258
|
-
description: values.valueDescription.trim(),
|
|
259
|
-
benefit: values.valueBenefit.trim(),
|
|
260
|
-
measurableOutcome: (values.valueMeasurableOutcome ?? "").trim().length === 0
|
|
258
|
+
title: values[InitFlowFieldKey.valueTitle].trim(),
|
|
259
|
+
description: values[InitFlowFieldKey.valueDescription].trim(),
|
|
260
|
+
benefit: values[InitFlowFieldKey.valueBenefit].trim(),
|
|
261
|
+
measurableOutcome: (values[InitFlowFieldKey.valueMeasurableOutcome] ?? "").trim().length === 0
|
|
261
262
|
? undefined
|
|
262
|
-
: values.valueMeasurableOutcome.trim(),
|
|
263
|
+
: values[InitFlowFieldKey.valueMeasurableOutcome].trim(),
|
|
263
264
|
},
|
|
264
265
|
];
|
|
265
266
|
setValuePropositions(nextValuePropositions);
|
|
266
|
-
if (isYes(values.addAnotherValueProposition ?? "")) {
|
|
267
|
-
navigateToStage(
|
|
267
|
+
if (isYes(values[InitFlowFieldKey.addAnotherValueProposition] ?? "")) {
|
|
268
|
+
navigateToStage(InitFlowStage.value, InitFlowRollback.valueProposition);
|
|
268
269
|
return;
|
|
269
270
|
}
|
|
270
|
-
await planProjectInit(undefined,
|
|
271
|
+
await planProjectInit(undefined, InitFlowRollback.valueProposition);
|
|
271
272
|
};
|
|
272
273
|
const handleAgentSelectionConfirm = async (values) => {
|
|
273
|
-
const parsedAgentIds = parseAgentSelection(values.selectedAgentIds ?? "");
|
|
274
|
+
const parsedAgentIds = parseAgentSelection(values[InitFlowFieldKey.selectedAgentIds] ?? "");
|
|
274
275
|
setSelectedAgentIds(parsedAgentIds);
|
|
275
276
|
await planProjectInit(parsedAgentIds);
|
|
276
277
|
};
|
|
277
278
|
const handleWizardInput = (input, key) => {
|
|
278
|
-
if (stage !==
|
|
279
|
+
if (stage !== InitFlowStage.confirmation) {
|
|
279
280
|
return false;
|
|
280
281
|
}
|
|
281
282
|
const plannedChanges = planResponse?.plannedChanges ?? [];
|
|
282
|
-
if (input ===
|
|
283
|
+
if (input.toLowerCase() === InitFlowConfirmationCopy.reviewHintKey) {
|
|
283
284
|
setConfirmationReviewOpen((isOpen) => !isOpen);
|
|
284
285
|
setConfirmationReviewOffset(0);
|
|
285
286
|
return true;
|
|
@@ -298,7 +299,7 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
298
299
|
return false;
|
|
299
300
|
};
|
|
300
301
|
const handleConfirmationConfirm = async (values) => {
|
|
301
|
-
if (isExplicitNo(values.confirmInitialization ?? "")) {
|
|
302
|
+
if (isExplicitNo(values[InitFlowFieldKey.confirmInitialization] ?? "")) {
|
|
302
303
|
onCancel();
|
|
303
304
|
return;
|
|
304
305
|
}
|
|
@@ -307,12 +308,12 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
307
308
|
const planProjectInit = async (nextSelectedAgentIds, rollback) => {
|
|
308
309
|
const controller = actionControllers.planProjectInitController;
|
|
309
310
|
if (controller === undefined) {
|
|
310
|
-
setDispatchError(
|
|
311
|
+
setDispatchError(InitFlowControllerErrorCopy.requiredPlan);
|
|
311
312
|
return;
|
|
312
313
|
}
|
|
313
314
|
setWorking(true);
|
|
314
315
|
setDispatchError(null);
|
|
315
|
-
const result = await
|
|
316
|
+
const result = await TuiActionDispatcher.dispatch(controller, {
|
|
316
317
|
projectRoot: process.cwd(),
|
|
317
318
|
selectedAgentIds: nextSelectedAgentIds,
|
|
318
319
|
});
|
|
@@ -324,25 +325,25 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
324
325
|
setPlanResponse(result.response);
|
|
325
326
|
if (nextSelectedAgentIds === undefined &&
|
|
326
327
|
result.response.availableAgents.length > 0) {
|
|
327
|
-
navigateToStage(
|
|
328
|
+
navigateToStage(InitFlowStage.agentSelection, rollback);
|
|
328
329
|
}
|
|
329
330
|
else {
|
|
330
|
-
navigateToStage(
|
|
331
|
+
navigateToStage(InitFlowStage.confirmation, rollback);
|
|
331
332
|
}
|
|
332
333
|
};
|
|
333
334
|
const initializeProject = async () => {
|
|
334
335
|
if (projectDetails === null) {
|
|
335
|
-
setDispatchError(
|
|
336
|
+
setDispatchError(InitFlowControllerErrorCopy.requiredProjectDetails);
|
|
336
337
|
return;
|
|
337
338
|
}
|
|
338
339
|
const initializeController = actionControllers.initializeProjectController;
|
|
339
340
|
if (initializeController === undefined) {
|
|
340
|
-
setDispatchError(
|
|
341
|
+
setDispatchError(InitFlowControllerErrorCopy.requiredInit);
|
|
341
342
|
return;
|
|
342
343
|
}
|
|
343
344
|
setWorking(true);
|
|
344
345
|
setDispatchError(null);
|
|
345
|
-
const initResult = await
|
|
346
|
+
const initResult = await TuiActionDispatcher.dispatch(initializeController, {
|
|
346
347
|
name: projectDetails.name,
|
|
347
348
|
purpose: projectDetails.purpose,
|
|
348
349
|
projectRoot: process.cwd(),
|
|
@@ -359,17 +360,17 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
359
360
|
setDispatchError(primitiveResult.error.message);
|
|
360
361
|
return;
|
|
361
362
|
}
|
|
362
|
-
setStage(
|
|
363
|
+
setStage(InitFlowStage.success);
|
|
363
364
|
await onComplete({
|
|
364
365
|
...flattenCollectedValues(projectDetails, audiences, valuePropositions),
|
|
365
366
|
projectId: initResult.response.projectId,
|
|
366
367
|
});
|
|
367
368
|
};
|
|
368
|
-
if (stage ===
|
|
369
|
+
if (stage === InitFlowStage.success) {
|
|
369
370
|
return (React.createElement(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", flexGrow: 1 },
|
|
370
|
-
React.createElement(Text, { color: SemanticColors.success, bold: true },
|
|
371
|
+
React.createElement(Text, { color: SemanticColors.success, bold: true }, InitFlowCopy.success)));
|
|
371
372
|
}
|
|
372
|
-
return (React.createElement(Wizard, { title:
|
|
373
|
+
return (React.createElement(Wizard, { title: InitFlowCopy.title, steps: resolveSteps(stage, agentSelectionSteps, confirmationSteps), onConfirm: resolveConfirmHandler(stage, {
|
|
373
374
|
handleProjectConfirm,
|
|
374
375
|
handleAudienceGateConfirm,
|
|
375
376
|
handleAudienceConfirm,
|
|
@@ -377,65 +378,69 @@ export function InitFlow({ actionControllers = {}, onComplete, onCancel, }) {
|
|
|
377
378
|
handleValueConfirm,
|
|
378
379
|
handleAgentSelectionConfirm,
|
|
379
380
|
handleConfirmationConfirm,
|
|
380
|
-
}), onCancel: onCancel, onBack: stageHistory.length > 0 ? handleWizardBack : undefined, initialStepIndex: restoreStepIndex, initialValues: resolveInitialValues(stage, projectDetails), dispatchError: dispatchError, disabled: working, progressLabel: (currentStepIndex) => resolveProgressLabel(stage, planResponse, currentStepIndex), extraHints: stage ===
|
|
381
|
+
}), onCancel: onCancel, onBack: stageHistory.length > 0 ? handleWizardBack : undefined, initialStepIndex: restoreStepIndex, initialValues: resolveInitialValues(stage, projectDetails), dispatchError: dispatchError, disabled: working, progressLabel: (currentStepIndex) => resolveProgressLabel(stage, planResponse, currentStepIndex), extraHints: stage === InitFlowStage.confirmation
|
|
381
382
|
? [
|
|
382
383
|
{
|
|
383
|
-
char:
|
|
384
|
-
label: confirmationReviewOpen
|
|
384
|
+
char: InitFlowConfirmationCopy.reviewHintKey,
|
|
385
|
+
label: confirmationReviewOpen
|
|
386
|
+
? InitFlowConfirmationCopy.reviewHintOpenLabel
|
|
387
|
+
: InitFlowConfirmationCopy.reviewHintClosedLabel,
|
|
385
388
|
},
|
|
386
389
|
]
|
|
387
390
|
: [], onInput: handleWizardInput }));
|
|
388
391
|
}
|
|
389
392
|
function resolveSteps(stage, agentSelectionSteps, confirmationSteps) {
|
|
390
|
-
if (stage ===
|
|
393
|
+
if (stage === InitFlowStage.project)
|
|
391
394
|
return PROJECT_STEPS;
|
|
392
|
-
if (stage ===
|
|
395
|
+
if (stage === InitFlowStage.audienceGate)
|
|
393
396
|
return AUDIENCE_GATE_STEPS;
|
|
394
|
-
if (stage ===
|
|
397
|
+
if (stage === InitFlowStage.audience)
|
|
395
398
|
return AUDIENCE_STEPS;
|
|
396
|
-
if (stage ===
|
|
399
|
+
if (stage === InitFlowStage.valueGate)
|
|
397
400
|
return VALUE_GATE_STEPS;
|
|
398
|
-
if (stage ===
|
|
401
|
+
if (stage === InitFlowStage.value)
|
|
399
402
|
return VALUE_STEPS;
|
|
400
|
-
if (stage ===
|
|
403
|
+
if (stage === InitFlowStage.agentSelection)
|
|
401
404
|
return agentSelectionSteps;
|
|
402
405
|
return confirmationSteps;
|
|
403
406
|
}
|
|
404
407
|
function resolveConfirmHandler(stage, handlers) {
|
|
405
|
-
if (stage ===
|
|
408
|
+
if (stage === InitFlowStage.project)
|
|
406
409
|
return handlers.handleProjectConfirm;
|
|
407
|
-
if (stage ===
|
|
410
|
+
if (stage === InitFlowStage.audienceGate) {
|
|
408
411
|
return handlers.handleAudienceGateConfirm;
|
|
409
|
-
|
|
412
|
+
}
|
|
413
|
+
if (stage === InitFlowStage.audience)
|
|
410
414
|
return handlers.handleAudienceConfirm;
|
|
411
|
-
if (stage ===
|
|
415
|
+
if (stage === InitFlowStage.valueGate)
|
|
412
416
|
return handlers.handleValueGateConfirm;
|
|
413
|
-
if (stage ===
|
|
417
|
+
if (stage === InitFlowStage.value)
|
|
414
418
|
return handlers.handleValueConfirm;
|
|
415
|
-
if (stage ===
|
|
419
|
+
if (stage === InitFlowStage.agentSelection) {
|
|
416
420
|
return handlers.handleAgentSelectionConfirm;
|
|
421
|
+
}
|
|
417
422
|
return handlers.handleConfirmationConfirm;
|
|
418
423
|
}
|
|
419
424
|
function resolveInitialValues(stage, projectDetails) {
|
|
420
|
-
if (stage !==
|
|
425
|
+
if (stage !== InitFlowStage.project || projectDetails === null) {
|
|
421
426
|
return {};
|
|
422
427
|
}
|
|
423
428
|
return {
|
|
424
|
-
projectName: projectDetails.name,
|
|
425
|
-
purpose: projectDetails.purpose ?? "",
|
|
429
|
+
[InitFlowFieldKey.projectName]: projectDetails.name,
|
|
430
|
+
[InitFlowFieldKey.purpose]: projectDetails.purpose ?? "",
|
|
426
431
|
};
|
|
427
432
|
}
|
|
428
433
|
function buildAgentSelectionSteps(planResponse) {
|
|
429
434
|
const availableAgents = planResponse?.availableAgents ?? [];
|
|
430
435
|
return [
|
|
431
436
|
{
|
|
432
|
-
title:
|
|
433
|
-
description:
|
|
437
|
+
title: InitFlowCopy.agentSelectionTitle,
|
|
438
|
+
description: InitFlowCopy.agentSelectionDescription,
|
|
434
439
|
fields: [
|
|
435
440
|
{
|
|
436
|
-
key:
|
|
437
|
-
label:
|
|
438
|
-
kind:
|
|
441
|
+
key: InitFlowFieldKey.selectedAgentIds,
|
|
442
|
+
label: InitFlowCopy.agentsLabel,
|
|
443
|
+
kind: InitFlowFieldKind.multiSelect,
|
|
439
444
|
options: availableAgents.map((agent) => ({
|
|
440
445
|
value: agent.id,
|
|
441
446
|
label: `${agent.name} (${agent.id})`,
|
|
@@ -451,16 +456,16 @@ function buildAgentSelectionSteps(planResponse) {
|
|
|
451
456
|
function buildConfirmationSteps(plannedChanges, reviewOpen, reviewOffset) {
|
|
452
457
|
return [
|
|
453
458
|
{
|
|
454
|
-
title:
|
|
459
|
+
title: InitFlowCopy.confirmationTitle,
|
|
455
460
|
description: reviewOpen
|
|
456
461
|
? formatPlannedChangeReview(plannedChanges, reviewOffset)
|
|
457
462
|
: formatPlannedChangeSummary(plannedChanges),
|
|
458
463
|
fields: [
|
|
459
464
|
{
|
|
460
|
-
key:
|
|
461
|
-
label:
|
|
462
|
-
kind:
|
|
463
|
-
defaultValue:
|
|
465
|
+
key: InitFlowFieldKey.confirmInitialization,
|
|
466
|
+
label: InitFlowCopy.confirmInitializationLabel,
|
|
467
|
+
kind: InitFlowFieldKind.yesNo,
|
|
468
|
+
defaultValue: InitFlowYesNoValue.yes,
|
|
464
469
|
required: false,
|
|
465
470
|
validate: validateOptionalYesNo,
|
|
466
471
|
},
|
|
@@ -484,36 +489,36 @@ function resolveProgressLabel(stage, planResponse, currentStepIndex) {
|
|
|
484
489
|
}
|
|
485
490
|
function formatPlannedChangeSummary(plannedChanges) {
|
|
486
491
|
if (plannedChanges.length === 0) {
|
|
487
|
-
return
|
|
492
|
+
return InitFlowConfirmationCopy.noChangesSummary;
|
|
488
493
|
}
|
|
489
494
|
const createCount = plannedChanges.filter((change) => change.action === "create").length;
|
|
490
495
|
const modifyCount = plannedChanges.filter((change) => change.action === "modify").length;
|
|
491
496
|
const groupCounts = summarizePlannedChangeGroups(plannedChanges);
|
|
492
497
|
return [
|
|
493
|
-
|
|
498
|
+
InitFlowConfirmationCopy.summaryLead,
|
|
494
499
|
"",
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
500
|
+
InitFlowConfirmationCopy.plannedChangesLabel,
|
|
501
|
+
`${InitFlowConfirmationCopy.createLabel}: ${createCount} ${InitFlowConfirmationCopy.filesLabel}`,
|
|
502
|
+
`${InitFlowConfirmationCopy.modifyLabel}: ${modifyCount} ${InitFlowConfirmationCopy.filesLabel}`,
|
|
498
503
|
"",
|
|
499
|
-
|
|
500
|
-
|
|
504
|
+
InitFlowConfirmationCopy.existingContentPreserved,
|
|
505
|
+
InitFlowConfirmationCopy.managedConfigurationOnly,
|
|
501
506
|
"",
|
|
502
|
-
|
|
503
|
-
...groupCounts.map((group) => `${group.label}: ${group.count}
|
|
507
|
+
InitFlowConfirmationCopy.agentConfigurationLabel,
|
|
508
|
+
...groupCounts.map((group) => `${group.label}: ${group.count} ${InitFlowConfirmationCopy.filesLabel}`),
|
|
504
509
|
].join("\n");
|
|
505
510
|
}
|
|
506
511
|
function formatPlannedChangeReview(plannedChanges, reviewOffset) {
|
|
507
512
|
if (plannedChanges.length === 0) {
|
|
508
|
-
return
|
|
513
|
+
return InitFlowConfirmationCopy.noChangesReview;
|
|
509
514
|
}
|
|
510
515
|
const visibleChanges = plannedChanges.slice(reviewOffset, reviewOffset + CONFIRMATION_FILE_REVIEW_PAGE_SIZE);
|
|
511
516
|
const from = reviewOffset + 1;
|
|
512
517
|
const to = reviewOffset + visibleChanges.length;
|
|
513
518
|
return [
|
|
514
|
-
|
|
519
|
+
`${InitFlowConfirmationCopy.reviewFilesLabel} ${from}-${to} of ${plannedChanges.length}`,
|
|
515
520
|
"",
|
|
516
|
-
...visibleChanges.map((change) => `${change.action}: ${change.path}
|
|
521
|
+
...visibleChanges.map((change) => `${change.action}: ${change.path}${InitFlowConfirmationCopy.changeSeparator}${change.description}`),
|
|
517
522
|
].join("\n");
|
|
518
523
|
}
|
|
519
524
|
function summarizePlannedChangeGroups(plannedChanges) {
|
|
@@ -522,31 +527,45 @@ function summarizePlannedChangeGroups(plannedChanges) {
|
|
|
522
527
|
const group = classifyPlannedChangeGroup(change.path);
|
|
523
528
|
counts.set(group, (counts.get(group) ?? 0) + 1);
|
|
524
529
|
}
|
|
525
|
-
return [
|
|
530
|
+
return [
|
|
531
|
+
InitFlowConfirmationGroupLabel.shared,
|
|
532
|
+
InitFlowConfirmationGroupLabel.claude,
|
|
533
|
+
InitFlowConfirmationGroupLabel.codex,
|
|
534
|
+
InitFlowConfirmationGroupLabel.gemini,
|
|
535
|
+
InitFlowConfirmationGroupLabel.copilot,
|
|
536
|
+
InitFlowConfirmationGroupLabel.cursor,
|
|
537
|
+
InitFlowConfirmationGroupLabel.vibe,
|
|
538
|
+
]
|
|
526
539
|
.map((label) => ({ label, count: counts.get(label) ?? 0 }))
|
|
527
540
|
.filter((group) => group.count > 0);
|
|
528
541
|
}
|
|
529
542
|
function classifyPlannedChangeGroup(path) {
|
|
530
|
-
if (path === "CLAUDE.md" || path.startsWith(".claude/"))
|
|
531
|
-
return
|
|
543
|
+
if (path === "CLAUDE.md" || path.startsWith(".claude/")) {
|
|
544
|
+
return InitFlowConfirmationGroupLabel.claude;
|
|
545
|
+
}
|
|
532
546
|
if (path.startsWith(".codex/"))
|
|
533
|
-
return
|
|
534
|
-
if (path === "GEMINI.md" || path.startsWith(".gemini/"))
|
|
535
|
-
return
|
|
536
|
-
|
|
537
|
-
|
|
547
|
+
return InitFlowConfirmationGroupLabel.codex;
|
|
548
|
+
if (path === "GEMINI.md" || path.startsWith(".gemini/")) {
|
|
549
|
+
return InitFlowConfirmationGroupLabel.gemini;
|
|
550
|
+
}
|
|
551
|
+
if (path.startsWith(".github/")) {
|
|
552
|
+
return InitFlowConfirmationGroupLabel.copilot;
|
|
553
|
+
}
|
|
538
554
|
if (path.startsWith(".cursor/"))
|
|
539
|
-
return
|
|
555
|
+
return InitFlowConfirmationGroupLabel.cursor;
|
|
540
556
|
if (path.startsWith(".vibe/"))
|
|
541
|
-
return
|
|
542
|
-
return
|
|
557
|
+
return InitFlowConfirmationGroupLabel.vibe;
|
|
558
|
+
return InitFlowConfirmationGroupLabel.shared;
|
|
543
559
|
}
|
|
544
560
|
function validateYesNo(value) {
|
|
545
561
|
const normalized = value.trim().toLowerCase();
|
|
546
|
-
if (normalized ===
|
|
562
|
+
if (normalized === InitFlowYesNoValue.yes ||
|
|
563
|
+
normalized === InitFlowYesNoValue.yesShort ||
|
|
564
|
+
normalized === InitFlowYesNoValue.no ||
|
|
565
|
+
normalized === InitFlowYesNoValue.noShort) {
|
|
547
566
|
return null;
|
|
548
567
|
}
|
|
549
|
-
return
|
|
568
|
+
return InitFlowValidationCopy.yesNo;
|
|
550
569
|
}
|
|
551
570
|
function validateOptionalYesNo(value) {
|
|
552
571
|
if (value.trim().length === 0) {
|
|
@@ -556,21 +575,21 @@ function validateOptionalYesNo(value) {
|
|
|
556
575
|
}
|
|
557
576
|
function validateAudiencePriority(value) {
|
|
558
577
|
const normalized = value.trim().toLowerCase();
|
|
559
|
-
if (normalized ===
|
|
560
|
-
normalized ===
|
|
561
|
-
normalized ===
|
|
578
|
+
if (normalized === AudiencePriority.PRIMARY ||
|
|
579
|
+
normalized === AudiencePriority.SECONDARY ||
|
|
580
|
+
normalized === AudiencePriority.TERTIARY) {
|
|
562
581
|
return null;
|
|
563
582
|
}
|
|
564
|
-
return
|
|
583
|
+
return InitFlowValidationCopy.audiencePriority;
|
|
565
584
|
}
|
|
566
585
|
function validateAgentSelection(value, availableAgentIds) {
|
|
567
586
|
const selectedAgentIds = parseAgentSelection(value);
|
|
568
587
|
if (selectedAgentIds.length === 0) {
|
|
569
|
-
return
|
|
588
|
+
return InitFlowValidationCopy.agentSelectionRequired;
|
|
570
589
|
}
|
|
571
590
|
const unknownAgentIds = selectedAgentIds.filter((agentId) => !availableAgentIds.includes(agentId));
|
|
572
591
|
if (unknownAgentIds.length > 0) {
|
|
573
|
-
return
|
|
592
|
+
return `${InitFlowValidationCopy.unknownAgentId}: ${unknownAgentIds.join(", ")}`;
|
|
574
593
|
}
|
|
575
594
|
return null;
|
|
576
595
|
}
|
|
@@ -582,11 +601,13 @@ function parseAgentSelection(value) {
|
|
|
582
601
|
}
|
|
583
602
|
function isYes(value) {
|
|
584
603
|
const normalized = value.trim().toLowerCase();
|
|
585
|
-
return normalized ===
|
|
604
|
+
return (normalized === InitFlowYesNoValue.yes ||
|
|
605
|
+
normalized === InitFlowYesNoValue.yesShort);
|
|
586
606
|
}
|
|
587
607
|
function isExplicitNo(value) {
|
|
588
608
|
const normalized = value.trim().toLowerCase();
|
|
589
|
-
return normalized ===
|
|
609
|
+
return (normalized === InitFlowYesNoValue.no ||
|
|
610
|
+
normalized === InitFlowYesNoValue.noShort);
|
|
590
611
|
}
|
|
591
612
|
function toAudiencePriority(value) {
|
|
592
613
|
return value.trim().toLowerCase();
|
|
@@ -596,10 +617,10 @@ async function persistCollectedPrimitives(controllers, audiences, valuePropositi
|
|
|
596
617
|
if (controllers.addAudienceController === undefined) {
|
|
597
618
|
return {
|
|
598
619
|
ok: false,
|
|
599
|
-
error: new Error(
|
|
620
|
+
error: new Error(InitFlowControllerErrorCopy.requiredAudience),
|
|
600
621
|
};
|
|
601
622
|
}
|
|
602
|
-
const result = await
|
|
623
|
+
const result = await TuiActionDispatcher.dispatch(controllers.addAudienceController, audience);
|
|
603
624
|
if (!result.ok) {
|
|
604
625
|
return result;
|
|
605
626
|
}
|
|
@@ -608,10 +629,10 @@ async function persistCollectedPrimitives(controllers, audiences, valuePropositi
|
|
|
608
629
|
if (controllers.addValuePropositionController === undefined) {
|
|
609
630
|
return {
|
|
610
631
|
ok: false,
|
|
611
|
-
error: new Error(
|
|
632
|
+
error: new Error(InitFlowControllerErrorCopy.requiredValueProposition),
|
|
612
633
|
};
|
|
613
634
|
}
|
|
614
|
-
const result = await
|
|
635
|
+
const result = await TuiActionDispatcher.dispatch(controllers.addValuePropositionController, valueProposition);
|
|
615
636
|
if (!result.ok) {
|
|
616
637
|
return result;
|
|
617
638
|
}
|
|
@@ -620,8 +641,8 @@ async function persistCollectedPrimitives(controllers, audiences, valuePropositi
|
|
|
620
641
|
}
|
|
621
642
|
function flattenCollectedValues(projectDetails, audiences, valuePropositions) {
|
|
622
643
|
return {
|
|
623
|
-
projectName: projectDetails?.name ?? "",
|
|
624
|
-
purpose: projectDetails?.purpose ?? "",
|
|
644
|
+
[InitFlowFieldKey.projectName]: projectDetails?.name ?? "",
|
|
645
|
+
[InitFlowFieldKey.purpose]: projectDetails?.purpose ?? "",
|
|
625
646
|
audienceCount: String(audiences.length),
|
|
626
647
|
valuePropositionCount: String(valuePropositions.length),
|
|
627
648
|
};
|