@shepai/cli 1.95.0 → 1.96.0-pr281.fcbc0cd
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 +132 -348
- package/apis/json-schema/Feature.yaml +1 -1
- package/apis/json-schema/SdlcLifecycle.yaml +1 -0
- package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +16 -4
- package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts +17 -12
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +64 -31
- package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.js +52 -0
- package/dist/packages/core/src/application/use-cases/settings/index.d.ts +2 -0
- package/dist/packages/core/src/application/use-cases/settings/index.d.ts.map +1 -1
- package/dist/packages/core/src/application/use-cases/settings/index.js +1 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +3 -2
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +1 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +5 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +12 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts +2 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +13 -3
- package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/ls.command.js +9 -2
- package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/feat/new.command.js +9 -0
- package/dist/src/presentation/cli/index.js +0 -12
- package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts +6 -0
- package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/agent-setup-flag.js +14 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts +11 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/check-agent-tool.js +35 -0
- package/dist/src/presentation/web/app/actions/update-agent-and-model.d.ts.map +1 -1
- package/dist/src/presentation/web/app/actions/update-agent-and-model.js +6 -12
- package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
- package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +5 -0
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +11 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +4 -4
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +21 -0
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +20 -4
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +53 -16
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts +6 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +222 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts +7 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.js +20 -0
- package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +1 -1
- package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -0
- package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
- package/dist/src/presentation/web/hooks/use-graph-state.js +27 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +92 -62
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +88 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +92 -62
- package/web/.next/server/app/(dashboard)/create/page.js +2 -2
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +102 -42
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +88 -28
- package/web/.next/server/app/(dashboard)/page.js +2 -2
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +88 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_2b65878f._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_2b65878f._.js.map +1 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_6ba7eb21._.js +3 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_6ba7eb21._.js.map +1 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js +3 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js.map +1 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js +3 -0
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__17143953._.js → [root-of-the-server]__19fb0bfe._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__5cc4752a._.js.map → [root-of-the-server]__19fb0bfe._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +4 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__45aad79d._.js → [root-of-the-server]__3d6f6b0e._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__17143953._.js.map → [root-of-the-server]__3d6f6b0e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__5cc4752a._.js → [root-of-the-server]__42020c54._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9de266fa._.js.map → [root-of-the-server]__42020c54._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7b49fcb3._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__7b49fcb3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__9de266fa._.js → [root-of-the-server]__9cb60e1e._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__45aad79d._.js.map → [root-of-the-server]__9cb60e1e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_501b06da._.js +3 -0
- package/web/.next/server/chunks/ssr/_501b06da._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_5e112f82._.js +3 -0
- package/web/.next/server/chunks/ssr/_5e112f82._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_3533fed7._.js → _7f1598ce._.js} +2 -2
- package/web/.next/server/chunks/ssr/_7f1598ce._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
- package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_c2399eb5._.js → _c1e8bc5a._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c2399eb5._.js.map → _c1e8bc5a._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js +3 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js +5 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js.map +1 -0
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +482 -242
- package/web/.next/static/chunks/0043b0813128e1ff.js +1 -0
- package/web/.next/static/chunks/158f9d833716f8e0.js +1 -0
- package/web/.next/static/chunks/{465f63a101981da8.js → 1e45f54397cd5d7f.js} +1 -1
- package/web/.next/static/chunks/{c4bbbfcfc008cba4.js → 275e1e0c565cc109.js} +1 -1
- package/web/.next/static/chunks/71d785d1de4b86f6.css +1 -0
- package/web/.next/static/chunks/7268e1087af4eaa0.js +1 -0
- package/web/.next/static/chunks/86a559935e43c119.js +1 -0
- package/web/.next/static/chunks/8bd300e88a189928.js +1 -0
- package/web/.next/static/chunks/{98767389c1aad0b2.js → 8d943a1a82db483d.js} +1 -1
- package/web/.next/static/chunks/a262fb8cb5f35ce3.js +1 -0
- package/web/.next/static/chunks/ae4e669485fb8d72.js +1 -0
- package/web/.next/static/chunks/b272ac93b52dceeb.js +1 -0
- package/web/.next/static/chunks/{f0bbc2f086d7d996.js → b42e2cd6fe3896c3.js} +2 -2
- package/web/.next/static/chunks/{59b988d41943386c.js → c4e8e94e8c2800b0.js} +1 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_81a06555._.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_81a06555._.js.map +0 -1
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js +0 -3
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js.map +0 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +0 -3
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +0 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +0 -3
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +0 -4
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dc40036._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__9dc40036._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_3533fed7._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_364346ad._.js +0 -3
- package/web/.next/server/chunks/ssr/_364346ad._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_df15bd24._.js +0 -3
- package/web/.next/server/chunks/ssr/_df15bd24._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f50485a5._.js +0 -3
- package/web/.next/server/chunks/ssr/_f50485a5._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +0 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +0 -5
- package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +0 -1
- package/web/.next/static/chunks/2536dce61f55daad.js +0 -1
- package/web/.next/static/chunks/35b142afe3405da9.js +0 -1
- package/web/.next/static/chunks/3c68b85c9dd7f200.js +0 -1
- package/web/.next/static/chunks/42040482bd2ec9aa.js +0 -1
- package/web/.next/static/chunks/490407527f8234cb.js +0 -1
- package/web/.next/static/chunks/6d61b6eaca9f925a.js +0 -1
- package/web/.next/static/chunks/8ec10587d1c608a2.css +0 -1
- package/web/.next/static/chunks/d9247a52ae260218.js +0 -1
- package/web/.next/static/chunks/eb981f9e02a74f15.js +0 -1
- /package/web/.next/static/{AT8BmALAnMpq68TlqG9FY → mF-tWwVmRA3ztS3klC9lR}/_buildManifest.js +0 -0
- /package/web/.next/static/{AT8BmALAnMpq68TlqG9FY → mF-tWwVmRA3ztS3klC9lR}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{AT8BmALAnMpq68TlqG9FY → mF-tWwVmRA3ztS3klC9lR}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# Shep AI
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Autonomous AI Native SDLC Platform
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
_Run `shep` in any repo to manage features through the full development lifecycle — requirements, planning, implementation, review, and deployment — using AI coding agents with human-in-the-loop approval gates._
|
|
8
8
|
|
|
9
9
|
[](https://github.com/shep-ai/cli/actions/workflows/ci.yml)
|
|
10
10
|
[](https://www.npmjs.com/package/@shepai/cli)
|
|
@@ -17,367 +17,124 @@ _Manage Claude Code, Cursor CLI, or any coding agent across the full development
|
|
|
17
17
|
|
|
18
18
|
<br />
|
|
19
19
|
|
|
20
|
-
[Features](#features) · [Quick Start](#quick-start) · [CLI Reference](#cli) · [Architecture](#architecture) · [Contributing](#contributing)
|
|
20
|
+
[Features](#features) · [Quick Start](#quick-start) · [CLI Reference](#cli-reference) · [Architecture](#architecture) · [Contributing](#contributing)
|
|
21
21
|
|
|
22
22
|
<br />
|
|
23
23
|
|
|
24
|
-
<img src="docs/
|
|
25
|
-
|
|
26
|
-
[](https://shep-ai.github.io/cli/poc/)
|
|
24
|
+
<img src="docs/screenshots/features-guide/01-dashboard-canvas.png" alt="Shep AI — Control Center Dashboard" width="900" />
|
|
27
25
|
|
|
28
26
|
</div>
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
+
# 1. Install
|
|
33
34
|
npm i -g @shepai/cli
|
|
34
|
-
```
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
# 2. Run Shep — completes setup on first run, then opens the web UI
|
|
37
|
+
shep
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
cd your-project/
|
|
40
|
-
shep feat new "Add unit tests for all source files"
|
|
39
|
+
# 3. Browser opens at http://localhost:4050 — you're in
|
|
41
40
|
```
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
<summary><b>List features</b> — <code>shep feat ls</code></summary>
|
|
45
|
-
<br />
|
|
42
|
+
---
|
|
46
43
|
|
|
47
|
-
|
|
48
|
-
Features for /home/user/projects/my-app
|
|
44
|
+
## Features
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
- **Full SDLC automation** — AI agents handle requirements gathering, research, planning, implementation, and review
|
|
47
|
+
- **Human-in-the-loop gates** — Approval checkpoints at PRD, Plan, and Merge phases (configurable or skip with `--allow-all`)
|
|
48
|
+
- **Multi-agent support** — Plug in Claude Code, Cursor CLI, or Gemini CLI as your coding agent
|
|
49
|
+
- **Web UI dashboard** — Interactive React Flow canvas showing features and repos as graph nodes with real-time SSE updates
|
|
50
|
+
- **Git worktree isolation** — Each feature gets its own worktree, no branch switching or stashing
|
|
51
|
+
- **CLI-first workflow** — Full feature management, agent control, settings, and tooling from the terminal
|
|
52
|
+
- **TUI onboarding wizard** — Guided setup on first run
|
|
53
|
+
- **Per-repo SQLite database** — All data lives locally in `~/.shep/`, no cloud dependency
|
|
53
54
|
|
|
54
|
-
|
|
55
|
+
---
|
|
55
56
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
## CLI Reference
|
|
58
|
+
|
|
59
|
+
### Daemon
|
|
59
60
|
|
|
60
61
|
```
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
Repository /home/user/projects/my-app
|
|
68
|
-
Branch feat/add-unit-tests
|
|
69
|
-
Status ✓ Completed
|
|
70
|
-
Worktree ~/.shep/repos/9bbd30de/wt/feat-add-unit-tests
|
|
71
|
-
Spec Dir ~/.shep/repos/9bbd30de/wt/feat-add-unit-tests/specs/001-add-unit-tests
|
|
72
|
-
Agent Run 732a1fc2-a346-4052-a028-dcb1a46b6f2c
|
|
73
|
-
|
|
74
|
-
Timestamps
|
|
75
|
-
Created 2/13/2026, 12:15:08 AM
|
|
76
|
-
Updated 2/13/2026, 12:15:08 AM
|
|
62
|
+
shep Start daemon + onboarding (first run)
|
|
63
|
+
shep start [--port <number>] Start web UI daemon (background, default port 4050)
|
|
64
|
+
shep stop Stop the running daemon
|
|
65
|
+
shep restart Restart the daemon
|
|
66
|
+
shep status Show daemon status and live metrics
|
|
67
|
+
shep ui [--port] [--no-open] Start the web UI in the foreground
|
|
77
68
|
```
|
|
78
69
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<details>
|
|
82
|
-
<summary><b>Isolated worktree per feature</b> — no stashing, no branch switching</summary>
|
|
83
|
-
<br />
|
|
84
|
-
|
|
85
|
-
Each feature gets its own git worktree — fully isolated from your main branch.
|
|
70
|
+
### Feature Management
|
|
86
71
|
|
|
87
72
|
```
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
└── README.md
|
|
73
|
+
shep feat new <description> Create a new feature
|
|
74
|
+
[--repo] [--push] [--pr]
|
|
75
|
+
[--allow-prd] [--allow-plan] [--allow-merge] [--allow-all]
|
|
76
|
+
[--parent] [--fast] [--model] [--attach]
|
|
77
|
+
shep feat ls [--repo] List features
|
|
78
|
+
shep feat show <id> Show feature details
|
|
79
|
+
shep feat del <id> Delete a feature
|
|
80
|
+
shep feat resume <id> Resume a paused feature
|
|
81
|
+
shep feat review <id> Review a feature
|
|
82
|
+
shep feat approve <id> [--comments] Approve a feature
|
|
83
|
+
shep feat reject <id> [--feedback] Reject a feature
|
|
84
|
+
shep feat logs <id> View feature logs
|
|
101
85
|
```
|
|
102
86
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<details>
|
|
106
|
-
<summary><b>Auto-generated spec files</b> — real output from a single <code>shep feat new</code></summary>
|
|
107
|
-
<br />
|
|
108
|
-
|
|
109
|
-
> **`spec.yaml`** — requirements & scope
|
|
110
|
-
|
|
111
|
-
```yaml
|
|
112
|
-
name: add-unit-tests
|
|
113
|
-
oneLiner: Add comprehensive unit tests for all source modules
|
|
114
|
-
summary: >
|
|
115
|
-
Add unit tests for every module in the package. The project currently has
|
|
116
|
-
minimal test coverage (only 7 tests total). This feature adds tests for
|
|
117
|
-
config, agents, flows, tools, observability, and CLI — using pytest with
|
|
118
|
-
mocking to avoid external dependencies.
|
|
119
|
-
sizeEstimate: M
|
|
120
|
-
openQuestions:
|
|
121
|
-
- question: 'Should we set a minimum coverage threshold and enforce it in CI?'
|
|
122
|
-
resolved: true
|
|
123
|
-
answer: >
|
|
124
|
-
Set 70% minimum via --cov-fail-under=70. Achievable and prevents regression.
|
|
125
|
-
```
|
|
87
|
+
### Agent Management
|
|
126
88
|
|
|
127
|
-
> **`research.yaml`** — technical decisions with rationale
|
|
128
|
-
|
|
129
|
-
```yaml
|
|
130
|
-
decisions:
|
|
131
|
-
- title: 'Test Framework'
|
|
132
|
-
chosen: 'pytest (already configured)'
|
|
133
|
-
rejected:
|
|
134
|
-
- 'unittest — More verbose, no fixture system'
|
|
135
|
-
- 'nose2 — Unmaintained, no advantage'
|
|
136
|
-
rationale: >
|
|
137
|
-
Already a dev dependency with asyncio and coverage plugins configured.
|
|
138
|
-
|
|
139
|
-
- title: 'Mocking Library'
|
|
140
|
-
chosen: 'unittest.mock (stdlib)'
|
|
141
|
-
rejected:
|
|
142
|
-
- 'pytest-mock — Adds a dependency for marginal convenience'
|
|
143
|
-
rationale: >
|
|
144
|
-
patch() for module-level replacement, MagicMock for spec objects,
|
|
145
|
-
assert_called_with for verification. No new dependency needed.
|
|
146
89
|
```
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
dependencies: []
|
|
155
|
-
acceptanceCriteria:
|
|
156
|
-
- 'mock_settings returns a Settings instance with known values'
|
|
157
|
-
- 'mock_llm returns MagicMock(spec=LLM) for agent tests'
|
|
158
|
-
- 'tmp_repo creates a temp dir with git init and one commit'
|
|
159
|
-
tdd:
|
|
160
|
-
red: ['Write test_smoke.py that imports fixtures and asserts properties']
|
|
161
|
-
green: ['Implement conftest.py with all three fixtures']
|
|
162
|
-
refactor: ['Remove smoke test — subsumed by real test files']
|
|
163
|
-
|
|
164
|
-
- id: task-3
|
|
165
|
-
title: 'Test config/llm.py'
|
|
166
|
-
dependencies: [task-1]
|
|
167
|
-
acceptanceCriteria:
|
|
168
|
-
- 'test_create_llm_with_openai_provider: verifies model, temperature, api_key'
|
|
169
|
-
- 'test_create_llm_with_cursor_provider: verifies base_url included'
|
|
170
|
-
- 'test_get_fast_llm: calls create_llm with settings.fast_model'
|
|
171
|
-
tdd:
|
|
172
|
-
red: ['Patch LLM and get_settings, assert constructor kwargs']
|
|
173
|
-
green: ['Tests pass — they verify existing code with mocks']
|
|
174
|
-
refactor: ['Extract common patch decorators if repetitive']
|
|
90
|
+
shep agent ls List agents
|
|
91
|
+
shep agent show <id> Show agent details
|
|
92
|
+
shep agent stop <id> Stop a running agent
|
|
93
|
+
shep agent logs <id> View agent logs
|
|
94
|
+
shep agent delete <id> Delete an agent
|
|
95
|
+
shep agent approve <id> Approve an agent action
|
|
96
|
+
shep agent reject <id> Reject an agent action
|
|
175
97
|
```
|
|
176
98
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
```yaml
|
|
180
|
-
feature:
|
|
181
|
-
id: '001-add-unit-tests'
|
|
182
|
-
branch: 'feat/001-add-unit-tests'
|
|
183
|
-
lifecycle: 'research'
|
|
99
|
+
### Repository & Session Management
|
|
184
100
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
101
|
+
```
|
|
102
|
+
shep repo ls List repositories
|
|
103
|
+
shep repo show <id> Show repository details
|
|
104
|
+
shep session ls List sessions
|
|
105
|
+
shep session show <id> Show session details
|
|
189
106
|
```
|
|
190
107
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
Running AI agents is easy. **Managing many of them through a full SDLC is the hard part.** Shep gives you a control center that handles the entire lifecycle — requirements gathering, planning, implementation, QA, and deployment — across multiple agent sessions running in parallel. See what each agent is doing, jump into any session's web preview, code editor, or terminal, approve plans when agents need your input, and let them keep working while you move on. Plug in Claude Code, Cursor CLI, Gemini CLI, or any coding agent. Each feature gets its own isolated worktree and dev environment. You manage the lifecycle, agents do the work.
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Features
|
|
200
|
-
|
|
201
|
-
> 🚧 **Under active development** — Web UI screenshots are from the design spec. Core CLI (`feat new`, `feat ls`, `feat show`, `settings`, `ui`, `start`, `stop`, `status`) works today. The `mem` command is still WIP.
|
|
202
|
-
|
|
203
|
-
<table>
|
|
204
|
-
<tr>
|
|
205
|
-
<td width="55%"><img src="docs/poc/imgs/01-features-control-center-overview.png" alt="Feature properties with attachments and metadata" /></td>
|
|
206
|
-
<td width="45%">
|
|
207
|
-
|
|
208
|
-
### Feature Properties & Attachments
|
|
209
|
-
|
|
210
|
-
- **Rich feature detail panel** with name, description, and metadata
|
|
211
|
-
- **File attachments** — requirements PDFs, mockup images, API specs linked directly to features
|
|
212
|
-
- **Team & metadata** tracking for ownership and collaboration
|
|
213
|
-
- **Dependency mapping** between features across repos
|
|
214
|
-
- **Iterative refinement** — update properties as requirements evolve through the lifecycle
|
|
215
|
-
|
|
216
|
-
</td>
|
|
217
|
-
</tr>
|
|
218
|
-
|
|
219
|
-
<tr>
|
|
220
|
-
<td width="55%"><img src="docs/poc/imgs/02-feature-card-action-toolbar.png" alt="Feature card with action toolbar" /></td>
|
|
221
|
-
<td width="45%">
|
|
222
|
-
|
|
223
|
-
### Feature Cards with Quick Actions
|
|
224
|
-
|
|
225
|
-
- **One-click dev server** launch directly from any card
|
|
226
|
-
- **Action toolbar** — GitHub, web preview, terminal, code editor at your fingertips
|
|
227
|
-
- **Live progress** tracking with percentage and lifecycle stage badge
|
|
228
|
-
- **Unique IDs** for instant cross-referencing across CLI and UI
|
|
229
|
-
|
|
230
|
-
</td>
|
|
231
|
-
</tr>
|
|
232
|
-
|
|
233
|
-
<tr>
|
|
234
|
-
<td width="55%"><img src="docs/poc/imgs/03-requirements-discovery-validation.png" alt="Requirements discovery questionnaire" /></td>
|
|
235
|
-
<td width="45%">
|
|
236
|
-
|
|
237
|
-
### AI-Guided Requirements Discovery
|
|
238
|
-
|
|
239
|
-
- **Smart questionnaires** that surface the right questions for your feature
|
|
240
|
-
- **Categorized inputs** — business, technical, and UX problem classification
|
|
241
|
-
- **Priority tiers** (P1–P3) with clear impact descriptions
|
|
242
|
-
- **Domain tagging** to scope the affected areas of your codebase
|
|
243
|
-
- **Human breakpoint** — agent pauses here until you finalize
|
|
244
|
-
|
|
245
|
-
</td>
|
|
246
|
-
</tr>
|
|
247
|
-
|
|
248
|
-
<tr>
|
|
249
|
-
<td width="55%"><img src="docs/poc/imgs/04-technical-implementation-plan-review.png" alt="Technical plan review with architecture decisions" /></td>
|
|
250
|
-
<td width="45%">
|
|
251
|
-
|
|
252
|
-
### Technical Plan Review
|
|
253
|
-
|
|
254
|
-
- **AI-generated implementation plans** with full architecture rationale
|
|
255
|
-
- **Technical decision cards** — see the chosen approach and alternatives side-by-side
|
|
256
|
-
- **Architecture pattern selection** (microservices, monolith, serverless) with trade-off analysis
|
|
257
|
-
- **Approve & continue** or send back for revision — you control the direction
|
|
258
|
-
|
|
259
|
-
</td>
|
|
260
|
-
</tr>
|
|
261
|
-
|
|
262
|
-
<tr>
|
|
263
|
-
<td width="55%"><img src="docs/poc/imgs/05-plan-review-tasks-and-artifacts.png" alt="Task breakdown and generated artifacts" /></td>
|
|
264
|
-
<td width="45%">
|
|
265
|
-
|
|
266
|
-
### Tasks & Generated Artifacts
|
|
267
|
-
|
|
268
|
-
- **Auto-generated documents** — plan.md, tasks.md, data_model.md created from your approved spec
|
|
269
|
-
- **Task breakdown** with dependency tracking and status badges
|
|
270
|
-
- **Artifact browser** — inspect any generated document directly in the panel
|
|
271
|
-
- **Draft indicator** — nothing ships until you explicitly approve
|
|
272
|
-
|
|
273
|
-
</td>
|
|
274
|
-
</tr>
|
|
275
|
-
|
|
276
|
-
<tr>
|
|
277
|
-
<td width="55%"><img src="docs/poc/imgs/06-qa-check-review.png" alt="QA checklist with all checks passing" /></td>
|
|
278
|
-
<td width="45%">
|
|
279
|
-
|
|
280
|
-
### Quality Assurance Gate
|
|
281
|
-
|
|
282
|
-
- **Automated QA checklist** — functional, performance, compatibility, accessibility
|
|
283
|
-
- **Performance benchmarks** — API response time p95 thresholds
|
|
284
|
-
- **WCAG 2.5** accessibility compliance verification
|
|
285
|
-
- **One-click Pass QA** when all checks are green
|
|
286
|
-
|
|
287
|
-
</td>
|
|
288
|
-
</tr>
|
|
289
|
-
|
|
290
|
-
<tr>
|
|
291
|
-
<td width="55%"><img src="docs/poc/imgs/07-dev-environment-web-preview.png" alt="Integrated web preview in dev environment" /></td>
|
|
292
|
-
<td width="45%">
|
|
293
|
-
|
|
294
|
-
### Integrated Dev Environment — Web Preview
|
|
295
|
-
|
|
296
|
-
- **Live localhost preview** embedded in the control center
|
|
297
|
-
- **Isolated ports** — each feature runs its own dev server
|
|
298
|
-
- **Server status** indicator with start/stop controls
|
|
299
|
-
- **Open in Browser** for full-screen testing
|
|
300
|
-
- **PR context** — branch, worktree path, and PR link always visible
|
|
301
|
-
|
|
302
|
-
</td>
|
|
303
|
-
</tr>
|
|
304
|
-
|
|
305
|
-
<tr>
|
|
306
|
-
<td width="55%"><img src="docs/poc/imgs/08-dev-environment-vscode-tab.png" alt="Embedded VS Code editor in dev environment" /></td>
|
|
307
|
-
<td width="45%">
|
|
308
|
-
|
|
309
|
-
### Integrated Dev Environment — Code Editor
|
|
310
|
-
|
|
311
|
-
- **Embedded VS Code** with full editor capabilities
|
|
312
|
-
- **Git worktree isolation** — each feature in its own directory, no branch conflicts
|
|
313
|
-
- **File explorer** with project structure at a glance
|
|
314
|
-
- **PR badge** with commits ahead/behind and changed file count
|
|
315
|
-
- **Zero context-switch** — edit code without leaving the control center
|
|
316
|
-
|
|
317
|
-
</td>
|
|
318
|
-
</tr>
|
|
319
|
-
|
|
320
|
-
<tr>
|
|
321
|
-
<td width="55%"><img src="docs/poc/imgs/09-dev-environment-terminal-tab.png" alt="Terminal tab showing running dev server" /></td>
|
|
322
|
-
<td width="45%">
|
|
323
|
-
|
|
324
|
-
### Integrated Dev Environment — Terminal
|
|
325
|
-
|
|
326
|
-
- **Full terminal access** inside the feature workspace
|
|
327
|
-
- **Build output, test results, agent logs** in one place
|
|
328
|
-
- **Pre-configured** in the feature's worktree directory
|
|
329
|
-
- **Dev server output** — see Next.js/Vite/Express startup and compile times
|
|
330
|
-
- **Three-tab workflow** — preview, code, and terminal without leaving the UI
|
|
331
|
-
|
|
332
|
-
</td>
|
|
333
|
-
</tr>
|
|
334
|
-
</table>
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
## Quick Start
|
|
339
|
-
|
|
340
|
-
```bash
|
|
341
|
-
# 1. Install
|
|
342
|
-
npm i -g @shepai/cli
|
|
108
|
+
### Settings
|
|
343
109
|
|
|
344
|
-
|
|
345
|
-
shep
|
|
346
|
-
|
|
347
|
-
|
|
110
|
+
```
|
|
111
|
+
shep settings Launch setup wizard
|
|
112
|
+
shep settings show Display current configuration
|
|
113
|
+
shep settings init Initialize settings
|
|
114
|
+
shep settings agent Configure AI coding agent
|
|
115
|
+
shep settings ide Configure IDE
|
|
116
|
+
shep settings workflow Configure workflow
|
|
117
|
+
shep settings model Configure model
|
|
348
118
|
```
|
|
349
119
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
`shep` runs the web UI as a background daemon so your terminal stays free. Use these commands to manage it:
|
|
120
|
+
### Tools
|
|
353
121
|
|
|
354
|
-
```
|
|
355
|
-
shep
|
|
356
|
-
shep
|
|
357
|
-
shep
|
|
122
|
+
```
|
|
123
|
+
shep tools list List tools with install status
|
|
124
|
+
shep install <tool> [--how] Install a dev tool
|
|
125
|
+
shep ide-open [--ide] [--dir] Open IDE in directory
|
|
358
126
|
```
|
|
359
127
|
|
|
360
|
-
|
|
128
|
+
### Other
|
|
361
129
|
|
|
362
130
|
```
|
|
363
|
-
shep
|
|
364
|
-
shep
|
|
365
|
-
shep
|
|
366
|
-
shep status Show daemon status and live metrics
|
|
367
|
-
shep feat new <description> Create a new feature
|
|
368
|
-
shep feat new --interactive Interactive mode with human checkpoints
|
|
369
|
-
shep feat new --allow-all Full autonomous mode
|
|
370
|
-
shep feat ls List features across repos
|
|
371
|
-
shep feat show <id> Show feature details
|
|
372
|
-
shep feat preview <id> Preview feature dev environment
|
|
373
|
-
shep ui Start the web UI in the foreground
|
|
374
|
-
shep settings show Display current configuration
|
|
375
|
-
shep settings agent Configure AI coding agent
|
|
376
|
-
shep mem add <text> --global|--repo Add agent memory
|
|
377
|
-
shep mem ls List memories
|
|
378
|
-
shep version Version info
|
|
131
|
+
shep version Show version info
|
|
132
|
+
shep upgrade Upgrade to latest version
|
|
133
|
+
shep run <agent> [-p prompt] [-r repo] [-s] Run an agent directly
|
|
379
134
|
```
|
|
380
135
|
|
|
136
|
+
---
|
|
137
|
+
|
|
381
138
|
## Architecture
|
|
382
139
|
|
|
383
140
|
Clean Architecture with four layers. Dependencies point inward — domain has zero external deps.
|
|
@@ -387,7 +144,7 @@ flowchart TB
|
|
|
387
144
|
P["<b>Presentation</b><br/>CLI · Web UI · TUI"]
|
|
388
145
|
A["<b>Application</b><br/>Use Cases · Orchestration · Ports"]
|
|
389
146
|
D["<b>Domain</b><br/>Entities · Value Objects · Services"]
|
|
390
|
-
I["<b>Infrastructure</b><br/>SQLite · LangGraph ·
|
|
147
|
+
I["<b>Infrastructure</b><br/>SQLite · LangGraph · DI"]
|
|
391
148
|
|
|
392
149
|
P --> A --> D
|
|
393
150
|
I --> A
|
|
@@ -398,48 +155,76 @@ flowchart TB
|
|
|
398
155
|
style I fill:#ede9fe,stroke:#8b5cf6,color:#4c1d95
|
|
399
156
|
```
|
|
400
157
|
|
|
158
|
+
| Layer | Path | Responsibility |
|
|
159
|
+
| -------------- | ----------------------------------- | ------------------------------------------------- |
|
|
160
|
+
| Domain | `packages/core/src/domain/` | Business logic, TypeSpec-generated types |
|
|
161
|
+
| Application | `packages/core/src/application/` | Use cases, output port interfaces |
|
|
162
|
+
| Infrastructure | `packages/core/src/infrastructure/` | SQLite repos, LangGraph agents, DI (tsyringe) |
|
|
163
|
+
| Presentation | `src/presentation/` | CLI (Commander), TUI (Inquirer), Web UI (Next.js) |
|
|
164
|
+
|
|
401
165
|
### Feature Lifecycle
|
|
402
166
|
|
|
403
|
-
Every feature progresses through a structured SDLC pipeline:
|
|
167
|
+
Every feature progresses through a structured SDLC pipeline with 9 states:
|
|
404
168
|
|
|
405
169
|
```
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
breakpoint breakpoint check gate
|
|
170
|
+
Started -> Analyze -> Requirements -> Research -> Planning -> Implementation -> Review -> Maintain
|
|
171
|
+
|
|
|
172
|
+
(Blocked)
|
|
410
173
|
```
|
|
411
174
|
|
|
412
|
-
|
|
175
|
+
Human approval gates are configurable at PRD, Plan, and Merge phases. In `--allow-all` mode the agent handles everything autonomously.
|
|
413
176
|
|
|
414
177
|
### Tech Stack
|
|
415
178
|
|
|
416
|
-
| Component | Technology
|
|
417
|
-
| --------------- |
|
|
418
|
-
| Language | TypeScript
|
|
419
|
-
| Package Manager | pnpm
|
|
420
|
-
| CLI Framework | Commander
|
|
421
|
-
| TUI Framework | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js)
|
|
422
|
-
| Web UI | Next.js 16 + React 19 + shadcn/ui
|
|
423
|
-
|
|
|
424
|
-
|
|
|
425
|
-
|
|
|
426
|
-
|
|
|
427
|
-
|
|
|
428
|
-
|
|
|
429
|
-
|
|
|
430
|
-
|
|
|
179
|
+
| Component | Technology |
|
|
180
|
+
| --------------- | ------------------------------------------------------------------------- |
|
|
181
|
+
| Language | TypeScript (ES2022) |
|
|
182
|
+
| Package Manager | pnpm |
|
|
183
|
+
| CLI Framework | Commander |
|
|
184
|
+
| TUI Framework | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js) |
|
|
185
|
+
| Web UI | Next.js 16 + React 19 + shadcn/ui + Tailwind CSS 4 |
|
|
186
|
+
| Graph Viz | React Flow (XYFlow) 12 |
|
|
187
|
+
| Design System | Storybook 8.x |
|
|
188
|
+
| Build Tool | tsc + tsc-alias (prod), tsx (CLI dev), Next.js (web dev) |
|
|
189
|
+
| Database | SQLite (better-sqlite3, per-repo) |
|
|
190
|
+
| Domain Models | TypeSpec -> generated TypeScript |
|
|
191
|
+
| Agent System | [LangGraph](https://www.langchain.com/langgraph) (`@langchain/langgraph`) |
|
|
192
|
+
| DI Container | tsyringe |
|
|
193
|
+
| Testing | Vitest (unit/integration) + Playwright (e2e) |
|
|
194
|
+
| Methodology | TDD (Red-Green-Refactor) |
|
|
195
|
+
|
|
196
|
+
### Supported Tools
|
|
197
|
+
|
|
198
|
+
Shep can detect, install, and manage the following tools:
|
|
199
|
+
|
|
200
|
+
| Category | Tools |
|
|
201
|
+
| ---------- | --------------------------------------------------------------------------------- |
|
|
202
|
+
| IDEs | Alacritty, Antigravity, Cursor, iTerm2, Kitty, TMux, VS Code, Warp, Windsurf, Zed |
|
|
203
|
+
| CLI Agents | Claude Code, Cursor CLI, Gemini CLI |
|
|
204
|
+
| Dev Tools | Git, GitHub CLI |
|
|
205
|
+
|
|
206
|
+
### Web UI
|
|
207
|
+
|
|
208
|
+
The web dashboard runs at `http://localhost:4050` and provides:
|
|
209
|
+
|
|
210
|
+
- **Dashboard canvas** — Interactive React Flow graph with feature and repository nodes
|
|
211
|
+
- **Feature drawer** — Tabs for overview, activity, approval, rejection, PR info, deployment, and timeline
|
|
212
|
+
- **Create feature form** — Start new features from the UI
|
|
213
|
+
- **Settings, Tools, Skills, and Version pages**
|
|
214
|
+
- **Real-time updates** via Server-Sent Events (SSE)
|
|
431
215
|
|
|
432
216
|
### Data Model
|
|
433
217
|
|
|
434
218
|
```
|
|
435
|
-
Repository
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
└── Analysis docs (cached)
|
|
219
|
+
Repository --+-- Feature --+-- Plan --+-- Task -- ActionItem
|
|
220
|
+
| | +-- Artifact
|
|
221
|
+
| +-- Requirement -- Research
|
|
439
222
|
```
|
|
440
223
|
|
|
441
224
|
All data lives locally in `~/.shep/`. Per-repo SQLite databases. No cloud dependency.
|
|
442
225
|
|
|
226
|
+
---
|
|
227
|
+
|
|
443
228
|
## Documentation
|
|
444
229
|
|
|
445
230
|
| Document | Description |
|
|
@@ -453,7 +238,6 @@ All data lives locally in `~/.shep/`. Per-repo SQLite databases. No cloud depend
|
|
|
453
238
|
| [Guides](./docs/guides/) | User guides and tutorials |
|
|
454
239
|
| [Development](./docs/development/) | Contributing and development setup |
|
|
455
240
|
| [API Reference](./docs/api/) | Interface and model documentation |
|
|
456
|
-
| [POC: Feature Flow](./docs/poc/) | Interactive feature lifecycle demo |
|
|
457
241
|
|
|
458
242
|
## Contributing
|
|
459
243
|
|