jumbo-cli 2.12.0 → 2.14.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/dist/application/context/goals/IGoalTitleReader.d.ts +9 -0
- package/dist/application/context/goals/IGoalTitleReader.d.ts.map +1 -0
- package/dist/application/context/goals/IGoalTitleReader.js +3 -0
- package/dist/application/context/goals/IGoalTitleReader.js.map +1 -0
- package/dist/application/context/relations/discover/IRelationDiscoveryGoalRegistrar.d.ts +10 -0
- package/dist/application/context/relations/discover/IRelationDiscoveryGoalRegistrar.d.ts.map +1 -0
- package/dist/application/context/relations/discover/IRelationDiscoveryGoalRegistrar.js +3 -0
- package/dist/application/context/relations/discover/IRelationDiscoveryGoalRegistrar.js.map +1 -0
- package/dist/application/context/relations/discover/NoOpRelationDiscoveryGoalRegistrar.d.ts +9 -0
- package/dist/application/context/relations/discover/NoOpRelationDiscoveryGoalRegistrar.d.ts.map +1 -0
- package/dist/application/context/relations/discover/NoOpRelationDiscoveryGoalRegistrar.js +14 -0
- package/dist/application/context/relations/discover/NoOpRelationDiscoveryGoalRegistrar.js.map +1 -0
- package/dist/application/context/relations/discover/RelationDiscoveryEventHandler.d.ts +14 -0
- package/dist/application/context/relations/discover/RelationDiscoveryEventHandler.d.ts.map +1 -0
- package/dist/application/context/relations/discover/RelationDiscoveryEventHandler.js +35 -0
- package/dist/application/context/relations/discover/RelationDiscoveryEventHandler.js.map +1 -0
- package/dist/application/context/relations/discover/RelationDiscoveryGoalRegistrar.d.ts +20 -0
- package/dist/application/context/relations/discover/RelationDiscoveryGoalRegistrar.d.ts.map +1 -0
- package/dist/application/context/relations/discover/RelationDiscoveryGoalRegistrar.js +48 -0
- package/dist/application/context/relations/discover/RelationDiscoveryGoalRegistrar.js.map +1 -0
- package/dist/infrastructure/context/goals/SqliteGoalStatusReader.d.ts +3 -1
- package/dist/infrastructure/context/goals/SqliteGoalStatusReader.d.ts.map +1 -1
- package/dist/infrastructure/context/goals/SqliteGoalStatusReader.js +6 -0
- package/dist/infrastructure/context/goals/SqliteGoalStatusReader.js.map +1 -1
- package/dist/infrastructure/host/HostBuilder.d.ts.map +1 -1
- package/dist/infrastructure/host/HostBuilder.js +10 -0
- package/dist/infrastructure/host/HostBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/architecture/view/architecture.view.d.ts.map +1 -1
- package/dist/presentation/cli/commands/architecture/view/architecture.view.js +27 -16
- package/dist/presentation/cli/commands/architecture/view/architecture.view.js.map +1 -1
- package/dist/presentation/cli/commands/audience-pains/list/AudiencePainListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/audience-pains/list/AudiencePainListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/audience-pains/list/AudiencePainListOutputBuilder.js +52 -0
- package/dist/presentation/cli/commands/audience-pains/list/AudiencePainListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/audience-pains/list/audiencePains.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/audience-pains/list/audiencePains.list.js +9 -33
- package/dist/presentation/cli/commands/audience-pains/list/audiencePains.list.js.map +1 -1
- package/dist/presentation/cli/commands/audiences/list/AudienceListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/audiences/list/AudienceListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/audiences/list/AudienceListOutputBuilder.js +53 -0
- package/dist/presentation/cli/commands/audiences/list/AudienceListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/audiences/list/audiences.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/audiences/list/audiences.list.js +9 -33
- package/dist/presentation/cli/commands/audiences/list/audiences.list.js.map +1 -1
- package/dist/presentation/cli/commands/components/list/ComponentListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/components/list/ComponentListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/components/list/ComponentListOutputBuilder.js +62 -0
- package/dist/presentation/cli/commands/components/list/ComponentListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/components/list/components.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/components/list/components.list.js +9 -48
- package/dist/presentation/cli/commands/components/list/components.list.js.map +1 -1
- package/dist/presentation/cli/commands/components/search/ComponentSearchOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/components/search/ComponentSearchOutputBuilder.js +16 -11
- package/dist/presentation/cli/commands/components/search/ComponentSearchOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/components/search/components.search.js +1 -1
- package/dist/presentation/cli/commands/components/search/components.search.js.map +1 -1
- package/dist/presentation/cli/commands/components/show/ComponentShowOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/components/show/ComponentShowOutputBuilder.js +42 -21
- package/dist/presentation/cli/commands/components/show/ComponentShowOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/components/undeprecate/ComponentUndeprecateOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/components/undeprecate/ComponentUndeprecateOutputBuilder.js +12 -2
- package/dist/presentation/cli/commands/components/undeprecate/ComponentUndeprecateOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/decisions/list/DecisionListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/decisions/list/DecisionListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/decisions/list/DecisionListOutputBuilder.js +73 -0
- package/dist/presentation/cli/commands/decisions/list/DecisionListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/decisions/list/decisions.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/decisions/list/decisions.list.js +9 -55
- package/dist/presentation/cli/commands/decisions/list/decisions.list.js.map +1 -1
- package/dist/presentation/cli/commands/decisions/restore/DecisionRestoreOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/decisions/restore/DecisionRestoreOutputBuilder.js +11 -2
- package/dist/presentation/cli/commands/decisions/restore/DecisionRestoreOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/dependencies/list/DependencyListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/dependencies/list/DependencyListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/dependencies/list/DependencyListOutputBuilder.js +67 -0
- package/dist/presentation/cli/commands/dependencies/list/DependencyListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/dependencies/list/dependencies.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/dependencies/list/dependencies.list.js +21 -71
- package/dist/presentation/cli/commands/dependencies/list/dependencies.list.js.map +1 -1
- package/dist/presentation/cli/commands/evolve/EvolveOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/evolve/EvolveOutputBuilder.js +25 -4
- package/dist/presentation/cli/commands/evolve/EvolveOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/add/GoalAddOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/add/GoalAddOutputBuilder.js +15 -4
- package/dist/presentation/cli/commands/goals/add/GoalAddOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.js +18 -21
- package/dist/presentation/cli/commands/goals/approve/GoalApproveOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/approve/goal.approve.js +1 -1
- package/dist/presentation/cli/commands/goals/approve/goal.approve.js.map +1 -1
- package/dist/presentation/cli/commands/goals/block/GoalBlockOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/block/GoalBlockOutputBuilder.js +12 -6
- package/dist/presentation/cli/commands/goals/block/GoalBlockOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/block/goal.block.js +1 -1
- package/dist/presentation/cli/commands/goals/block/goal.block.js.map +1 -1
- package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.js +25 -11
- package/dist/presentation/cli/commands/goals/close/GoalCloseOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/close/goal.close.js +1 -1
- package/dist/presentation/cli/commands/goals/close/goal.close.js.map +1 -1
- package/dist/presentation/cli/commands/goals/codify/GoalCodifyOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/codify/GoalCodifyOutputBuilder.js +78 -60
- package/dist/presentation/cli/commands/goals/codify/GoalCodifyOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/codify/goal.codify.js +1 -1
- package/dist/presentation/cli/commands/goals/codify/goal.codify.js.map +1 -1
- package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.js +13 -5
- package/dist/presentation/cli/commands/goals/commit/GoalCommitOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/commit/goal.commit.js +1 -1
- package/dist/presentation/cli/commands/goals/commit/goal.commit.js.map +1 -1
- package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.js +20 -10
- package/dist/presentation/cli/commands/goals/list/GoalListOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/pause/GoalPauseOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/pause/GoalPauseOutputBuilder.js +14 -8
- package/dist/presentation/cli/commands/goals/pause/GoalPauseOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/pause/goal.pause.js +2 -2
- package/dist/presentation/cli/commands/goals/pause/goal.pause.js.map +1 -1
- package/dist/presentation/cli/commands/goals/qualify/GoalQualifyOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/qualify/GoalQualifyOutputBuilder.js +19 -20
- package/dist/presentation/cli/commands/goals/qualify/GoalQualifyOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/qualify/goal.qualify.js +1 -1
- package/dist/presentation/cli/commands/goals/qualify/goal.qualify.js.map +1 -1
- package/dist/presentation/cli/commands/goals/refine/GoalRefineOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/refine/GoalRefineOutputBuilder.js +25 -22
- package/dist/presentation/cli/commands/goals/refine/GoalRefineOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/refine/goal.refine.js +6 -5
- package/dist/presentation/cli/commands/goals/refine/goal.refine.js.map +1 -1
- package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.js +23 -23
- package/dist/presentation/cli/commands/goals/reject/GoalRejectOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/reject/goal.reject.js +1 -1
- package/dist/presentation/cli/commands/goals/reject/goal.reject.js.map +1 -1
- package/dist/presentation/cli/commands/goals/remove/GoalRemoveOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/remove/GoalRemoveOutputBuilder.js +12 -6
- package/dist/presentation/cli/commands/goals/remove/GoalRemoveOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/remove/goal.remove.js +1 -1
- package/dist/presentation/cli/commands/goals/remove/goal.remove.js.map +1 -1
- package/dist/presentation/cli/commands/goals/reset/GoalResetOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/reset/GoalResetOutputBuilder.js +13 -7
- package/dist/presentation/cli/commands/goals/reset/GoalResetOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/reset/goal.reset.js +1 -1
- package/dist/presentation/cli/commands/goals/reset/goal.reset.js.map +1 -1
- package/dist/presentation/cli/commands/goals/resume/GoalResumeOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/resume/GoalResumeOutputBuilder.js +62 -56
- package/dist/presentation/cli/commands/goals/resume/GoalResumeOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/resume/goal.resume.js +2 -2
- package/dist/presentation/cli/commands/goals/resume/goal.resume.js.map +1 -1
- package/dist/presentation/cli/commands/goals/review/GoalReviewOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/review/GoalReviewOutputBuilder.js +73 -52
- package/dist/presentation/cli/commands/goals/review/GoalReviewOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/review/goal.review.js +1 -1
- package/dist/presentation/cli/commands/goals/review/goal.review.js.map +1 -1
- package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.d.ts +0 -8
- package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.js +53 -105
- package/dist/presentation/cli/commands/goals/show/GoalShowOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/show/goal.show.js +1 -1
- package/dist/presentation/cli/commands/goals/show/goal.show.js.map +1 -1
- package/dist/presentation/cli/commands/goals/start/GoalStartOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/start/GoalStartOutputBuilder.js +58 -51
- package/dist/presentation/cli/commands/goals/start/GoalStartOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/start/goal.start.js +2 -2
- package/dist/presentation/cli/commands/goals/start/goal.start.js.map +1 -1
- package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.js +15 -14
- package/dist/presentation/cli/commands/goals/submit/GoalSubmitOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/submit/goal.submit.js +1 -1
- package/dist/presentation/cli/commands/goals/submit/goal.submit.js.map +1 -1
- package/dist/presentation/cli/commands/goals/unblock/GoalUnblockOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/unblock/GoalUnblockOutputBuilder.js +14 -2
- package/dist/presentation/cli/commands/goals/unblock/GoalUnblockOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/unblock/goal.unblock.js +2 -2
- package/dist/presentation/cli/commands/goals/unblock/goal.unblock.js.map +1 -1
- package/dist/presentation/cli/commands/goals/update/GoalUpdateOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/update/GoalUpdateOutputBuilder.js +10 -2
- package/dist/presentation/cli/commands/goals/update/GoalUpdateOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/update/goal.update.js +4 -4
- package/dist/presentation/cli/commands/goals/update/goal.update.js.map +1 -1
- package/dist/presentation/cli/commands/goals/update-progress/GoalUpdateProgressOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/goals/update-progress/GoalUpdateProgressOutputBuilder.js +16 -8
- package/dist/presentation/cli/commands/goals/update-progress/GoalUpdateProgressOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/goals/update-progress/goal.update-progress.js +1 -1
- package/dist/presentation/cli/commands/goals/update-progress/goal.update-progress.js.map +1 -1
- package/dist/presentation/cli/commands/guidelines/list/GuidelineListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/guidelines/list/GuidelineListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/guidelines/list/GuidelineListOutputBuilder.js +57 -0
- package/dist/presentation/cli/commands/guidelines/list/GuidelineListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/guidelines/list/guidelines.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/guidelines/list/guidelines.list.js +9 -27
- package/dist/presentation/cli/commands/guidelines/list/guidelines.list.js.map +1 -1
- package/dist/presentation/cli/commands/heal/HealOutputBuilder.d.ts.map +1 -1
- package/dist/presentation/cli/commands/heal/HealOutputBuilder.js +18 -6
- package/dist/presentation/cli/commands/heal/HealOutputBuilder.js.map +1 -1
- package/dist/presentation/cli/commands/host/workers/worker.view.d.ts.map +1 -1
- package/dist/presentation/cli/commands/host/workers/worker.view.js +10 -4
- package/dist/presentation/cli/commands/host/workers/worker.view.js.map +1 -1
- package/dist/presentation/cli/commands/invariants/list/InvariantListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/invariants/list/InvariantListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/invariants/list/InvariantListOutputBuilder.js +53 -0
- package/dist/presentation/cli/commands/invariants/list/InvariantListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/invariants/list/invariants.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/invariants/list/invariants.list.js +9 -23
- package/dist/presentation/cli/commands/invariants/list/invariants.list.js.map +1 -1
- package/dist/presentation/cli/commands/project/init/project.init.js +8 -8
- package/dist/presentation/cli/commands/project/init/project.init.js.map +1 -1
- package/dist/presentation/cli/commands/registry/generated-commands.d.ts.map +1 -1
- package/dist/presentation/cli/commands/registry/generated-commands.js +6 -0
- package/dist/presentation/cli/commands/registry/generated-commands.js.map +1 -1
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.d.ts +13 -0
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.js +64 -0
- package/dist/presentation/cli/commands/relations/list/RelationListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/relations/list/relations.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/relations/list/relations.list.js +15 -37
- package/dist/presentation/cli/commands/relations/list/relations.list.js.map +1 -1
- package/dist/presentation/cli/commands/sessions/list/SessionListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/sessions/list/SessionListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/sessions/list/SessionListOutputBuilder.js +61 -0
- package/dist/presentation/cli/commands/sessions/list/SessionListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/sessions/list/sessions.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/sessions/list/sessions.list.js +9 -47
- package/dist/presentation/cli/commands/sessions/list/sessions.list.js.map +1 -1
- package/dist/presentation/cli/commands/value-propositions/list/ValueListOutputBuilder.d.ts +9 -0
- package/dist/presentation/cli/commands/value-propositions/list/ValueListOutputBuilder.d.ts.map +1 -0
- package/dist/presentation/cli/commands/value-propositions/list/ValueListOutputBuilder.js +59 -0
- package/dist/presentation/cli/commands/value-propositions/list/ValueListOutputBuilder.js.map +1 -0
- package/dist/presentation/cli/commands/value-propositions/list/values.list.d.ts.map +1 -1
- package/dist/presentation/cli/commands/value-propositions/list/values.list.js +9 -32
- package/dist/presentation/cli/commands/value-propositions/list/values.list.js.map +1 -1
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.d.ts +5 -39
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.d.ts.map +1 -1
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.js +12 -89
- package/dist/presentation/cli/commands/work/refine/RefineryDisplay.js.map +1 -1
- package/dist/presentation/cli/commands/work/refine/work.refine.d.ts.map +1 -1
- package/dist/presentation/cli/commands/work/refine/work.refine.js +25 -106
- package/dist/presentation/cli/commands/work/refine/work.refine.js.map +1 -1
- package/dist/presentation/cli/commands/work/review/ReviewerDisplay.d.ts +17 -0
- package/dist/presentation/cli/commands/work/review/ReviewerDisplay.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/review/ReviewerDisplay.js +41 -0
- package/dist/presentation/cli/commands/work/review/ReviewerDisplay.js.map +1 -0
- package/dist/presentation/cli/commands/work/review/work.review.d.ts +23 -0
- package/dist/presentation/cli/commands/work/review/work.review.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/review/work.review.js +109 -0
- package/dist/presentation/cli/commands/work/review/work.review.js.map +1 -0
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.d.ts +18 -0
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.js +38 -0
- package/dist/presentation/cli/commands/work/shared/AgentSpawner.js.map +1 -0
- package/dist/presentation/cli/commands/work/shared/DaemonDisplay.d.ts +56 -0
- package/dist/presentation/cli/commands/work/shared/DaemonDisplay.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/shared/DaemonDisplay.js +93 -0
- package/dist/presentation/cli/commands/work/shared/DaemonDisplay.js.map +1 -0
- package/dist/presentation/cli/commands/work/shared/DaemonLoop.d.ts +40 -0
- package/dist/presentation/cli/commands/work/shared/DaemonLoop.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/shared/DaemonLoop.js +82 -0
- package/dist/presentation/cli/commands/work/shared/DaemonLoop.js.map +1 -0
- package/dist/presentation/cli/commands/work/shared/GoalStatusQuery.d.ts +13 -0
- package/dist/presentation/cli/commands/work/shared/GoalStatusQuery.d.ts.map +1 -0
- package/dist/presentation/cli/commands/work/shared/GoalStatusQuery.js +29 -0
- package/dist/presentation/cli/commands/work/shared/GoalStatusQuery.js.map +1 -0
- package/dist/presentation/cli/rendering/OutputLayout.d.ts +39 -0
- package/dist/presentation/cli/rendering/OutputLayout.d.ts.map +1 -0
- package/dist/presentation/cli/rendering/OutputLayout.js +81 -0
- package/dist/presentation/cli/rendering/OutputLayout.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RefineryDisplay.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/refine/RefineryDisplay.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"RefineryDisplay.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/refine/RefineryDisplay.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iEAAgF;AAEhF,MAAa,eAAgB,SAAQ,gCAAa;IAChD,YAAY,aAAkC;QAC5C,KAAK,CACH;YACE,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,UAAU;YACrB,WAAW,EAAE,UAAU;YACvB,cAAc,EAAE,SAAS;YACzB,UAAU,EAAE,UAAU;SACvB,EACD,aAAa,CACd,CAAC;IACJ,CAAC;CACF;AAbD,0CAaC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work.refine.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/refine/work.refine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;
|
|
1
|
+
{"version":3,"file":"work.refine.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/refine/work.refine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AASjG,eAAO,MAAM,QAAQ,EAAE,eAgCtB,CAAC;AAEF,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAoBD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,qBAAqB,iBAqClC"}
|
|
@@ -13,15 +13,9 @@ exports.metadata = void 0;
|
|
|
13
13
|
exports.workRefine = workRefine;
|
|
14
14
|
const node_child_process_1 = require("node:child_process");
|
|
15
15
|
const RefineryDisplay_js_1 = require("./RefineryDisplay.js");
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
gemini: { executable: "gemini", promptFlag: "-p" },
|
|
20
|
-
copilot: { executable: "gh copilot", promptFlag: "-p" },
|
|
21
|
-
codex: { executable: "codex", promptFlag: "-p" },
|
|
22
|
-
cursor: { executable: "cursor", promptFlag: "-p" },
|
|
23
|
-
vibe: { executable: "vibe", promptFlag: "-p" },
|
|
24
|
-
};
|
|
16
|
+
const AgentSpawner_js_1 = require("../shared/AgentSpawner.js");
|
|
17
|
+
const GoalStatusQuery_js_1 = require("../shared/GoalStatusQuery.js");
|
|
18
|
+
const DaemonLoop_js_1 = require("../shared/DaemonLoop.js");
|
|
25
19
|
const DEFAULT_POLL_INTERVAL_S = 30;
|
|
26
20
|
const DEFAULT_MAX_RETRIES = 3;
|
|
27
21
|
exports.metadata = {
|
|
@@ -30,7 +24,7 @@ exports.metadata = {
|
|
|
30
24
|
requiredOptions: [
|
|
31
25
|
{
|
|
32
26
|
flags: "--agent <agentId>",
|
|
33
|
-
description: `Agent to delegate refinement to (${SUPPORTED_AGENTS.join(", ")})`,
|
|
27
|
+
description: `Agent to delegate refinement to (${AgentSpawner_js_1.SUPPORTED_AGENTS.join(", ")})`,
|
|
34
28
|
},
|
|
35
29
|
],
|
|
36
30
|
options: [
|
|
@@ -57,10 +51,7 @@ exports.metadata = {
|
|
|
57
51
|
],
|
|
58
52
|
related: ["goal refine", "work pause", "work resume"],
|
|
59
53
|
};
|
|
60
|
-
// ---
|
|
61
|
-
function sleep(ms) {
|
|
62
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
63
|
-
}
|
|
54
|
+
// --- Refine-specific subprocess helpers ---
|
|
64
55
|
function queryDefinedGoals() {
|
|
65
56
|
try {
|
|
66
57
|
const stdout = (0, node_child_process_1.execSync)("npx jumbo goals list --status defined", {
|
|
@@ -75,107 +66,35 @@ function queryDefinedGoals() {
|
|
|
75
66
|
return [];
|
|
76
67
|
}
|
|
77
68
|
}
|
|
78
|
-
|
|
79
|
-
try {
|
|
80
|
-
const stdout = (0, node_child_process_1.execSync)(`npx jumbo goal show --id ${goalId}`, {
|
|
81
|
-
stdio: ["ignore", "pipe", "ignore"],
|
|
82
|
-
timeout: 30000,
|
|
83
|
-
}).toString();
|
|
84
|
-
const parsed = JSON.parse(stdout);
|
|
85
|
-
return parsed.status ?? parsed.goal?.status ?? "unknown";
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
return "unknown";
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function spawnAgent(agentId, goalId) {
|
|
92
|
-
const { executable, promptFlag } = AGENT_COMMANDS[agentId];
|
|
93
|
-
const prompt = `Run the Jumbo refinement workflow for goal ${goalId}. Execute: jumbo goal refine --id ${goalId}`;
|
|
94
|
-
const escaped = prompt.replace(/"/g, '\\"');
|
|
95
|
-
const command = `${executable} ${promptFlag} "${escaped}"`;
|
|
96
|
-
return new Promise((resolve) => {
|
|
97
|
-
const child = (0, node_child_process_1.spawn)(command, [], {
|
|
98
|
-
stdio: ["ignore", "ignore", "ignore"],
|
|
99
|
-
shell: true,
|
|
100
|
-
});
|
|
101
|
-
child.on("close", (code) => resolve(code ?? 1));
|
|
102
|
-
child.on("error", () => resolve(1));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
// --- Main daemon loop ---
|
|
69
|
+
// --- Main daemon entry ---
|
|
106
70
|
async function workRefine(options, _container) {
|
|
107
71
|
const agentId = options.agent;
|
|
108
|
-
if (!SUPPORTED_AGENTS.includes(agentId)) {
|
|
72
|
+
if (!AgentSpawner_js_1.SUPPORTED_AGENTS.includes(agentId)) {
|
|
109
73
|
const display = new RefineryDisplay_js_1.RefineryDisplay({ agentId, pollIntervalS: 0, maxRetries: 0 });
|
|
110
|
-
display.renderUnknownAgent(options.agent, SUPPORTED_AGENTS);
|
|
74
|
+
display.renderUnknownAgent(options.agent, AgentSpawner_js_1.SUPPORTED_AGENTS);
|
|
111
75
|
process.exit(1);
|
|
112
76
|
}
|
|
113
|
-
const
|
|
77
|
+
const pollIntervalS = parseInt(options.pollInterval ?? "", 10) || DEFAULT_POLL_INTERVAL_S;
|
|
114
78
|
const maxRetries = parseInt(options.maxRetries ?? "", 10) || DEFAULT_MAX_RETRIES;
|
|
115
|
-
const exhaustedGoals = new Set();
|
|
116
79
|
const display = new RefineryDisplay_js_1.RefineryDisplay({
|
|
117
80
|
agentId,
|
|
118
|
-
pollIntervalS
|
|
81
|
+
pollIntervalS,
|
|
119
82
|
maxRetries,
|
|
120
83
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
process.on("SIGINT", shutdown);
|
|
137
|
-
process.on("SIGTERM", shutdown);
|
|
138
|
-
await display.renderHeader();
|
|
139
|
-
while (running) {
|
|
140
|
-
const goals = queryDefinedGoals().filter(g => !exhaustedGoals.has(g.goalId));
|
|
141
|
-
if (goals.length === 0) {
|
|
142
|
-
const spinner = display.startWaiting();
|
|
143
|
-
const end = Date.now() + pollIntervalMs;
|
|
144
|
-
while (running && Date.now() < end) {
|
|
145
|
-
await sleep(250);
|
|
146
|
-
}
|
|
147
|
-
spinner.stop();
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
const target = goals[0];
|
|
151
|
-
let refined = false;
|
|
152
|
-
for (let attempt = 1; attempt <= maxRetries && running; attempt++) {
|
|
153
|
-
display.renderGoalStart(target.goalId, target.objective, attempt, maxRetries);
|
|
154
|
-
const spinner = display.startRefining();
|
|
155
|
-
await spawnAgent(agentId, target.goalId);
|
|
156
|
-
spinner.stop();
|
|
157
|
-
if (!running)
|
|
158
|
-
break;
|
|
159
|
-
const status = queryGoalStatus(target.goalId);
|
|
160
|
-
if (status === "refined") {
|
|
161
|
-
display.renderGoalComplete(target.goalId, target.objective, attempt);
|
|
162
|
-
refined = true;
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
if (attempt === maxRetries) {
|
|
166
|
-
display.renderGoalSkipped(target.goalId, status, maxRetries);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
if (!refined) {
|
|
170
|
-
exhaustedGoals.add(target.goalId);
|
|
171
|
-
}
|
|
172
|
-
await sleep(2000);
|
|
173
|
-
}
|
|
174
|
-
// Clean up stdin and exit
|
|
175
|
-
if (process.stdin.isTTY) {
|
|
176
|
-
process.stdin.setRawMode(false);
|
|
177
|
-
process.stdin.pause();
|
|
178
|
-
}
|
|
179
|
-
display.renderShutdown();
|
|
84
|
+
await (0, DaemonLoop_js_1.runDaemonLoop)({ agentId, pollIntervalS, maxRetries }, display, {
|
|
85
|
+
queryGoals: () => queryDefinedGoals(),
|
|
86
|
+
spawnAgent: (goalId) => {
|
|
87
|
+
const prompt = `Run the Jumbo refinement workflow for goal ${goalId}. Execute: jumbo goal refine --id ${goalId}`;
|
|
88
|
+
return (0, AgentSpawner_js_1.spawnAgent)(agentId, prompt);
|
|
89
|
+
},
|
|
90
|
+
isGoalComplete: (goalId) => (0, GoalStatusQuery_js_1.queryGoalStatus)(goalId) === "refined",
|
|
91
|
+
onGoalComplete: (goalId, objective, attempts) => {
|
|
92
|
+
display.renderGoalComplete(goalId, objective, attempts);
|
|
93
|
+
},
|
|
94
|
+
onGoalSkipped: (goalId, _status, retries) => {
|
|
95
|
+
const status = (0, GoalStatusQuery_js_1.queryGoalStatus)(goalId);
|
|
96
|
+
display.renderGoalSkipped(goalId, status, retries);
|
|
97
|
+
},
|
|
98
|
+
});
|
|
180
99
|
}
|
|
181
100
|
//# sourceMappingURL=work.refine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work.refine.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/refine/work.refine.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"work.refine.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/refine/work.refine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reviewer Display
|
|
3
|
+
*
|
|
4
|
+
* Display module for the `jumbo work review` daemon.
|
|
5
|
+
* Extends DaemonDisplay with review-specific labels and
|
|
6
|
+
* outcome-aware completion rendering (approved vs rejected).
|
|
7
|
+
*/
|
|
8
|
+
import { DaemonDisplay, DaemonRuntimeConfig } from "../shared/DaemonDisplay.js";
|
|
9
|
+
export declare class ReviewerDisplay extends DaemonDisplay {
|
|
10
|
+
constructor(runtimeConfig: DaemonRuntimeConfig);
|
|
11
|
+
/**
|
|
12
|
+
* Render a review outcome with status-specific styling.
|
|
13
|
+
* Approved = green check, Rejected = yellow warning.
|
|
14
|
+
*/
|
|
15
|
+
renderReviewOutcome(goalId: string, objective: string, attempts: number, outcome: string): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ReviewerDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewerDisplay.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/review/ReviewerDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEhF,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,aAAa,EAAE,mBAAmB;IAa9C;;;OAGG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,IAAI;CAiBR"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Reviewer Display
|
|
4
|
+
*
|
|
5
|
+
* Display module for the `jumbo work review` daemon.
|
|
6
|
+
* Extends DaemonDisplay with review-specific labels and
|
|
7
|
+
* outcome-aware completion rendering (approved vs rejected).
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ReviewerDisplay = void 0;
|
|
11
|
+
const StyleConfig_js_1 = require("../../../rendering/StyleConfig.js");
|
|
12
|
+
const DaemonDisplay_js_1 = require("../shared/DaemonDisplay.js");
|
|
13
|
+
class ReviewerDisplay extends DaemonDisplay_js_1.DaemonDisplay {
|
|
14
|
+
constructor(runtimeConfig) {
|
|
15
|
+
super({
|
|
16
|
+
title: "Jumbo Reviewer",
|
|
17
|
+
idleLabel: "awaiting submissions",
|
|
18
|
+
activeLabel: "reviewing",
|
|
19
|
+
completeStatus: "reviewed",
|
|
20
|
+
daemonName: "Reviewer",
|
|
21
|
+
}, runtimeConfig);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Render a review outcome with status-specific styling.
|
|
25
|
+
* Approved = green check, Rejected = yellow warning.
|
|
26
|
+
*/
|
|
27
|
+
renderReviewOutcome(goalId, objective, attempts, outcome) {
|
|
28
|
+
const sid = this.shortId(goalId);
|
|
29
|
+
const attemptText = `${attempts} attempt${attempts !== 1 ? "s" : ""}`;
|
|
30
|
+
if (outcome === "approved") {
|
|
31
|
+
this.line(` ${StyleConfig_js_1.Colors.success(StyleConfig_js_1.Symbols.check)} ${StyleConfig_js_1.Colors.success("approved")} ${StyleConfig_js_1.Colors.bold(sid)} ${StyleConfig_js_1.Colors.dim(attemptText)}`);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.line(` ${StyleConfig_js_1.Colors.warning(StyleConfig_js_1.Symbols.warning)} ${StyleConfig_js_1.Colors.warning("rejected")} ${StyleConfig_js_1.Colors.bold(sid)} ${StyleConfig_js_1.Colors.dim(attemptText)}`);
|
|
35
|
+
}
|
|
36
|
+
this.line(` ${StyleConfig_js_1.Colors.dim(this.truncateObjective(objective))}`);
|
|
37
|
+
this.line("");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.ReviewerDisplay = ReviewerDisplay;
|
|
41
|
+
//# sourceMappingURL=ReviewerDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewerDisplay.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/review/ReviewerDisplay.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,sEAAoE;AACpE,iEAAgF;AAEhF,MAAa,eAAgB,SAAQ,gCAAa;IAChD,YAAY,aAAkC;QAC5C,KAAK,CACH;YACE,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,sBAAsB;YACjC,WAAW,EAAE,WAAW;YACxB,cAAc,EAAE,UAAU;YAC1B,UAAU,EAAE,UAAU;SACvB,EACD,aAAa,CACd,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,MAAc,EACd,SAAiB,EACjB,QAAgB,EAChB,OAAe;QAEf,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,GAAG,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEtE,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CACP,KAAK,uBAAM,CAAC,OAAO,CAAC,wBAAO,CAAC,KAAK,CAAC,IAAI,uBAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,uBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,uBAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CACpH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CACP,KAAK,uBAAM,CAAC,OAAO,CAAC,wBAAO,CAAC,OAAO,CAAC,IAAI,uBAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,uBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,uBAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CACtH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,uBAAM,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;CACF;AAxCD,0CAwCC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Command: jumbo work review
|
|
3
|
+
*
|
|
4
|
+
* Long-running daemon that continuously polls for goals in 'submitted' state
|
|
5
|
+
* and delegates their QA review to an agent subprocess. Runs until killed.
|
|
6
|
+
*
|
|
7
|
+
* A goal is considered reviewed when its status transitions to either
|
|
8
|
+
* 'approved' or 'rejected' — both are valid review outcomes.
|
|
9
|
+
*
|
|
10
|
+
* Every interaction with Jumbo state is a short-lived subprocess.
|
|
11
|
+
* This command holds no database connections or application infrastructure.
|
|
12
|
+
*/
|
|
13
|
+
import { CommandMetadata } from "../../registry/CommandMetadata.js";
|
|
14
|
+
import { IApplicationContainer } from "../../../../../application/host/IApplicationContainer.js";
|
|
15
|
+
export declare const metadata: CommandMetadata;
|
|
16
|
+
interface WorkReviewOptions {
|
|
17
|
+
readonly agent: string;
|
|
18
|
+
readonly pollInterval?: string;
|
|
19
|
+
readonly maxRetries?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function workReview(options: WorkReviewOptions, _container: IApplicationContainer): Promise<void>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=work.review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work.review.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/review/work.review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0DAA0D,CAAC;AAWjG,eAAO,MAAM,QAAQ,EAAE,eAgCtB,CAAC;AAEF,UAAU,iBAAiB;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAyBD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,qBAAqB,iBAsClC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* CLI Command: jumbo work review
|
|
4
|
+
*
|
|
5
|
+
* Long-running daemon that continuously polls for goals in 'submitted' state
|
|
6
|
+
* and delegates their QA review to an agent subprocess. Runs until killed.
|
|
7
|
+
*
|
|
8
|
+
* A goal is considered reviewed when its status transitions to either
|
|
9
|
+
* 'approved' or 'rejected' — both are valid review outcomes.
|
|
10
|
+
*
|
|
11
|
+
* Every interaction with Jumbo state is a short-lived subprocess.
|
|
12
|
+
* This command holds no database connections or application infrastructure.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.metadata = void 0;
|
|
16
|
+
exports.workReview = workReview;
|
|
17
|
+
const node_child_process_1 = require("node:child_process");
|
|
18
|
+
const ReviewerDisplay_js_1 = require("./ReviewerDisplay.js");
|
|
19
|
+
const AgentSpawner_js_1 = require("../shared/AgentSpawner.js");
|
|
20
|
+
const GoalStatusQuery_js_1 = require("../shared/GoalStatusQuery.js");
|
|
21
|
+
const DaemonLoop_js_1 = require("../shared/DaemonLoop.js");
|
|
22
|
+
const DEFAULT_POLL_INTERVAL_S = 30;
|
|
23
|
+
const DEFAULT_MAX_RETRIES = 3;
|
|
24
|
+
const REVIEW_COMPLETE_STATUSES = ["approved", "rejected"];
|
|
25
|
+
exports.metadata = {
|
|
26
|
+
description: "Continuously review submitted goals via an agent subprocess (runs until killed)",
|
|
27
|
+
category: "work",
|
|
28
|
+
requiredOptions: [
|
|
29
|
+
{
|
|
30
|
+
flags: "--agent <agentId>",
|
|
31
|
+
description: `Agent to delegate review to (${AgentSpawner_js_1.SUPPORTED_AGENTS.join(", ")})`,
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
options: [
|
|
35
|
+
{
|
|
36
|
+
flags: "--poll-interval <seconds>",
|
|
37
|
+
description: "Seconds to wait between polling for new goals",
|
|
38
|
+
default: DEFAULT_POLL_INTERVAL_S,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
flags: "--max-retries <number>",
|
|
42
|
+
description: "Max retry attempts per goal before moving on",
|
|
43
|
+
default: DEFAULT_MAX_RETRIES,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
examples: [
|
|
47
|
+
{
|
|
48
|
+
command: "jumbo work review --agent claude",
|
|
49
|
+
description: "Start the reviewer daemon using Claude",
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
command: "jumbo work review --agent claude --poll-interval 60",
|
|
53
|
+
description: "Poll every 60 seconds instead of the default 30",
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
related: ["goal review", "goal approve", "goal reject", "work pause", "work resume"],
|
|
57
|
+
};
|
|
58
|
+
// --- Review-specific subprocess helpers ---
|
|
59
|
+
function querySubmittedGoals() {
|
|
60
|
+
try {
|
|
61
|
+
const stdout = (0, node_child_process_1.execSync)("npx jumbo goals list --status submitted", {
|
|
62
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
63
|
+
timeout: 30000,
|
|
64
|
+
}).toString();
|
|
65
|
+
const parsed = JSON.parse(stdout);
|
|
66
|
+
const goals = (parsed.goals ?? []);
|
|
67
|
+
return goals.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function isReviewComplete(goalId) {
|
|
74
|
+
const status = (0, GoalStatusQuery_js_1.queryGoalStatus)(goalId);
|
|
75
|
+
return REVIEW_COMPLETE_STATUSES.includes(status);
|
|
76
|
+
}
|
|
77
|
+
// --- Main daemon entry ---
|
|
78
|
+
async function workReview(options, _container) {
|
|
79
|
+
const agentId = options.agent;
|
|
80
|
+
if (!AgentSpawner_js_1.SUPPORTED_AGENTS.includes(agentId)) {
|
|
81
|
+
const display = new ReviewerDisplay_js_1.ReviewerDisplay({ agentId, pollIntervalS: 0, maxRetries: 0 });
|
|
82
|
+
display.renderUnknownAgent(options.agent, AgentSpawner_js_1.SUPPORTED_AGENTS);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
const pollIntervalS = parseInt(options.pollInterval ?? "", 10) || DEFAULT_POLL_INTERVAL_S;
|
|
86
|
+
const maxRetries = parseInt(options.maxRetries ?? "", 10) || DEFAULT_MAX_RETRIES;
|
|
87
|
+
const display = new ReviewerDisplay_js_1.ReviewerDisplay({
|
|
88
|
+
agentId,
|
|
89
|
+
pollIntervalS,
|
|
90
|
+
maxRetries,
|
|
91
|
+
});
|
|
92
|
+
await (0, DaemonLoop_js_1.runDaemonLoop)({ agentId, pollIntervalS, maxRetries }, display, {
|
|
93
|
+
queryGoals: () => querySubmittedGoals(),
|
|
94
|
+
spawnAgent: (goalId) => {
|
|
95
|
+
const prompt = `Run the Jumbo review workflow for goal ${goalId}. Execute: jumbo goal review --id ${goalId}`;
|
|
96
|
+
return (0, AgentSpawner_js_1.spawnAgent)(agentId, prompt);
|
|
97
|
+
},
|
|
98
|
+
isGoalComplete: (goalId) => isReviewComplete(goalId),
|
|
99
|
+
onGoalComplete: (goalId, objective, attempts) => {
|
|
100
|
+
const outcome = (0, GoalStatusQuery_js_1.queryGoalStatus)(goalId);
|
|
101
|
+
display.renderReviewOutcome(goalId, objective, attempts, outcome);
|
|
102
|
+
},
|
|
103
|
+
onGoalSkipped: (goalId, _status, retries) => {
|
|
104
|
+
const status = (0, GoalStatusQuery_js_1.queryGoalStatus)(goalId);
|
|
105
|
+
display.renderGoalSkipped(goalId, status, retries);
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=work.review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work.review.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/review/work.review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Spawner
|
|
3
|
+
*
|
|
4
|
+
* Encapsulates supported agent CLI tools, their command mappings,
|
|
5
|
+
* and the subprocess spawning logic used by work daemons.
|
|
6
|
+
*/
|
|
7
|
+
export declare const SUPPORTED_AGENTS: readonly ["claude", "gemini", "copilot", "codex", "cursor", "vibe"];
|
|
8
|
+
export type AgentId = typeof SUPPORTED_AGENTS[number];
|
|
9
|
+
export declare const AGENT_COMMANDS: Record<AgentId, {
|
|
10
|
+
executable: string;
|
|
11
|
+
promptFlag: string;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Spawn an agent CLI subprocess with the given prompt.
|
|
15
|
+
* Returns the exit code (0 = success, non-zero = failure).
|
|
16
|
+
*/
|
|
17
|
+
export declare function spawnAgent(agentId: AgentId, prompt: string): Promise<number>;
|
|
18
|
+
//# sourceMappingURL=AgentSpawner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSpawner.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/shared/AgentSpawner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,eAAO,MAAM,gBAAgB,qEAAsE,CAAC;AACpG,MAAM,MAAM,OAAO,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAOtF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAc5E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Spawner
|
|
4
|
+
*
|
|
5
|
+
* Encapsulates supported agent CLI tools, their command mappings,
|
|
6
|
+
* and the subprocess spawning logic used by work daemons.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.AGENT_COMMANDS = exports.SUPPORTED_AGENTS = void 0;
|
|
10
|
+
exports.spawnAgent = spawnAgent;
|
|
11
|
+
const node_child_process_1 = require("node:child_process");
|
|
12
|
+
exports.SUPPORTED_AGENTS = ["claude", "gemini", "copilot", "codex", "cursor", "vibe"];
|
|
13
|
+
exports.AGENT_COMMANDS = {
|
|
14
|
+
claude: { executable: "claude", promptFlag: "-p" },
|
|
15
|
+
gemini: { executable: "gemini", promptFlag: "-p" },
|
|
16
|
+
copilot: { executable: "gh copilot", promptFlag: "-p" },
|
|
17
|
+
codex: { executable: "codex", promptFlag: "-p" },
|
|
18
|
+
cursor: { executable: "cursor", promptFlag: "-p" },
|
|
19
|
+
vibe: { executable: "vibe", promptFlag: "-p" },
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Spawn an agent CLI subprocess with the given prompt.
|
|
23
|
+
* Returns the exit code (0 = success, non-zero = failure).
|
|
24
|
+
*/
|
|
25
|
+
function spawnAgent(agentId, prompt) {
|
|
26
|
+
const { executable, promptFlag } = exports.AGENT_COMMANDS[agentId];
|
|
27
|
+
const escaped = prompt.replace(/"/g, '\\"');
|
|
28
|
+
const command = `${executable} ${promptFlag} "${escaped}"`;
|
|
29
|
+
return new Promise((resolve) => {
|
|
30
|
+
const child = (0, node_child_process_1.spawn)(command, [], {
|
|
31
|
+
stdio: ["ignore", "ignore", "ignore"],
|
|
32
|
+
shell: true,
|
|
33
|
+
});
|
|
34
|
+
child.on("close", (code) => resolve(code ?? 1));
|
|
35
|
+
child.on("error", () => resolve(1));
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=AgentSpawner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentSpawner.js","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/shared/AgentSpawner.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAoBH,gCAcC;AAhCD,2DAA2C;AAE9B,QAAA,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAGvF,QAAA,cAAc,GAAgE;IACzF,MAAM,EAAG,EAAE,UAAU,EAAE,QAAQ,EAAM,UAAU,EAAE,IAAI,EAAE;IACvD,MAAM,EAAG,EAAE,UAAU,EAAE,QAAQ,EAAM,UAAU,EAAE,IAAI,EAAE;IACvD,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE;IACvD,KAAK,EAAI,EAAE,UAAU,EAAE,OAAO,EAAO,UAAU,EAAE,IAAI,EAAE;IACvD,MAAM,EAAG,EAAE,UAAU,EAAE,QAAQ,EAAM,UAAU,EAAE,IAAI,EAAE;IACvD,IAAI,EAAK,EAAE,UAAU,EAAE,MAAM,EAAQ,UAAU,EAAE,IAAI,EAAE;CACxD,CAAC;AAEF;;;GAGG;AACH,SAAgB,UAAU,CAAC,OAAgB,EAAE,MAAc;IACzD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,sBAAc,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,UAAU,IAAI,UAAU,KAAK,OAAO,GAAG,CAAC;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,EAAE,EAAE,EAAE;YAC/B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACrC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon Display
|
|
3
|
+
*
|
|
4
|
+
* Base class for work daemon display rendering. Provides the shared
|
|
5
|
+
* layout structure (header, spinners, goal lifecycle messages, shutdown)
|
|
6
|
+
* with configurable labels so each daemon can customize its appearance.
|
|
7
|
+
*/
|
|
8
|
+
export interface DaemonDisplayConfig {
|
|
9
|
+
/** Display title shown in the glimmer header (e.g. "Jumbo Refinery") */
|
|
10
|
+
readonly title: string;
|
|
11
|
+
/** Label for the idle spinner (e.g. "foraging") */
|
|
12
|
+
readonly idleLabel: string;
|
|
13
|
+
/** Label for the active spinner (e.g. "refining") */
|
|
14
|
+
readonly activeLabel: string;
|
|
15
|
+
/** Status word shown on goal completion (e.g. "refined") */
|
|
16
|
+
readonly completeStatus: string;
|
|
17
|
+
/** Daemon name for the shutdown message (e.g. "Refinery") */
|
|
18
|
+
readonly daemonName: string;
|
|
19
|
+
}
|
|
20
|
+
export interface DaemonRuntimeConfig {
|
|
21
|
+
readonly agentId: string;
|
|
22
|
+
readonly pollIntervalS: number;
|
|
23
|
+
readonly maxRetries: number;
|
|
24
|
+
}
|
|
25
|
+
export declare class DaemonDisplay {
|
|
26
|
+
protected readonly displayConfig: DaemonDisplayConfig;
|
|
27
|
+
protected readonly runtimeConfig: DaemonRuntimeConfig;
|
|
28
|
+
protected readonly write: (s: string) => void;
|
|
29
|
+
constructor(displayConfig: DaemonDisplayConfig, runtimeConfig: DaemonRuntimeConfig);
|
|
30
|
+
/** Render the header block: accent bar + glimmer title + config + divider */
|
|
31
|
+
renderHeader(): Promise<void>;
|
|
32
|
+
/** Start the idle braille spinner */
|
|
33
|
+
startWaiting(): {
|
|
34
|
+
stop: () => void;
|
|
35
|
+
};
|
|
36
|
+
/** Start the active processing braille spinner */
|
|
37
|
+
startProcessing(): {
|
|
38
|
+
stop: () => void;
|
|
39
|
+
};
|
|
40
|
+
/** Render goal discovery info */
|
|
41
|
+
renderGoalStart(goalId: string, objective: string, attempt: number, maxRetries: number): void;
|
|
42
|
+
/** Render goal completion */
|
|
43
|
+
renderGoalComplete(goalId: string, objective: string, attempts: number): void;
|
|
44
|
+
/** Render goal exhaustion/skip warning */
|
|
45
|
+
renderGoalSkipped(goalId: string, status: string, maxRetries: number): void;
|
|
46
|
+
/** Render unknown agent error */
|
|
47
|
+
renderUnknownAgent(agent: string, supported: readonly string[]): void;
|
|
48
|
+
/** Render shutdown message */
|
|
49
|
+
renderShutdown(): void;
|
|
50
|
+
protected out(msg: string): void;
|
|
51
|
+
protected line(msg: string): void;
|
|
52
|
+
protected divider(): void;
|
|
53
|
+
protected truncateObjective(text: string, max?: number): string;
|
|
54
|
+
protected shortId(goalId: string): string;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=DaemonDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DaemonDisplay.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/work/shared/DaemonDisplay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,aAAa;IACxB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,CAAC;IACtD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;gBAElC,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB;IAMlF,6EAA6E;IACvE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBnC,qCAAqC;IACrC,YAAY,IAAI;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IAIpC,kDAAkD;IAClD,eAAe,IAAI;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;IAIvC,iCAAiC;IACjC,eAAe,CACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,IAAI;IAQP,6BAA6B;IAC7B,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,IAAI;IASP,0CAA0C;IAC1C,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,IAAI;IAQP,iCAAiC;IACjC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIrE,8BAA8B;IAC9B,cAAc,IAAI,IAAI;IAOtB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIjC,SAAS,CAAC,OAAO,IAAI,IAAI;IAIzB,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,MAAM;IAK3D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAG1C"}
|