@shepai/cli 1.129.1 → 1.129.2-pr409.8d19a07
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apis/json-schema/RelatedLink.yaml +14 -0
- package/apis/json-schema/SpecArtifactBase.yaml +1 -1
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +31 -1
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map +1 -1
- package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js +2 -0
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts +28 -0
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.js +63 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +14 -1
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- 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/services/agents/feature-agent/nodes/prompts/research.prompt.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/research.prompt.js +2 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +5 -0
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +32 -0
- package/dist/src/presentation/cli/commands/repo/index.d.ts +4 -3
- package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/index.js +7 -4
- package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts +12 -0
- package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/repo/init-remote.command.js +60 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.js +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts +6 -0
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js +96 -1
- package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +24 -24
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +24 -24
- 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 +30 -30
- 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 +30 -30
- 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 +22 -22
- 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 +24 -24
- 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 +30 -30
- 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 +30 -30
- 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 +22 -22
- 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 +22 -22
- 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 +3 -3
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +8 -8
- 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 +8 -8
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +8 -8
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__dcd4f847._.js.map +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_4e741df2.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/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_026fdffa.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_8b91e197.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0e842eba._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0e842eba._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__2f886f77._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__43f51aa6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__60684242._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__60684242._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__755cfe02._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__755cfe02._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__815546bd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a21eef5a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a628fb91._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a628fb91._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bfba58e6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bfba58e6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3ab8422._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3ab8422._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f4a463ee._.js +2 -2
- package/web/.next/server/chunks/ssr/_02ec1aea._.js +1 -1
- package/web/.next/server/chunks/ssr/_02ec1aea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_92acff95._.js → _55644af9._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_92acff95._.js.map → _55644af9._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_6a5242a0._.js +3 -0
- package/web/.next/server/chunks/ssr/{_a11d42e8._.js.map → _6a5242a0._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js +1 -1
- package/web/.next/server/chunks/ssr/_7dca1882._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_a9f57758._.js +1 -1
- package/web/.next/server/chunks/ssr/_d4b20e29._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js +1 -1
- package/web/.next/server/chunks/ssr/_d8575088._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.js +1 -1
- package/web/.next/server/chunks/ssr/_f39a1adb._.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_efa91543._.js → src_presentation_web_0cd3a74c._.js} +2 -2
- package/web/.next/server/chunks/ssr/{src_presentation_web_efa91543._.js.map → src_presentation_web_0cd3a74c._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_8e7fe0d1._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_ca051134.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1b176e3c.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_bd9f0dda.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_b9023017._.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/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +38 -38
- package/web/.next/static/chunks/1723a9aeba25ddfc.js +1 -0
- package/web/.next/static/chunks/{0a83031808867bca.js → 1ab3b92cd374a624.js} +1 -1
- package/web/.next/static/chunks/{475b22f4bf14af2d.js → 1add8a70b4b40ed8.js} +1 -1
- package/web/.next/static/chunks/{5e11fe79741cd049.js → 1ce11c79ca2e7585.js} +1 -1
- package/web/.next/static/chunks/2458356d72e6fa9c.js +2 -0
- package/web/.next/static/chunks/{2672ec79b6eb1b94.js → 245f409ea7548b7f.js} +1 -1
- package/web/.next/static/chunks/{e4ff24651224d4d2.js → 38d77ab6a534ec87.js} +1 -1
- package/web/.next/static/chunks/{f84bbfe2662f35ed.js → 5aece62660a857db.js} +1 -1
- package/web/.next/static/chunks/{792cdceb624c561d.js → 712d4b9e22d0ff38.js} +1 -1
- package/web/.next/static/chunks/8d9cc59c9c6bb985.js +1 -0
- package/web/.next/static/chunks/{5da0c2f16502fddd.js → 96813f0a8d002ad2.js} +1 -1
- package/web/.next/static/chunks/da484d44874006a2.css +1 -0
- package/web/.next/static/chunks/{4ee40070e69205bc.js → e04aa97306bb4fcc.js} +1 -1
- package/web/.next/server/chunks/ssr/_a11d42e8._.js +0 -3
- package/web/.next/static/chunks/cc974a8f14de58d0.js +0 -1
- package/web/.next/static/chunks/f569a6dc0496430f.css +0 -1
- package/web/.next/static/chunks/fd2ccf8f2022f2fb.js +0 -1
- package/web/.next/static/chunks/fdff2d35956e7448.js +0 -2
- /package/web/.next/static/{yH8b83VvOS2P5F2XwxoFX → yR1bDX4dtrRDAU5sWcjYr}/_buildManifest.js +0 -0
- /package/web/.next/static/{yH8b83VvOS2P5F2XwxoFX → yR1bDX4dtrRDAU5sWcjYr}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{yH8b83VvOS2P5F2XwxoFX → yR1bDX4dtrRDAU5sWcjYr}/_ssgManifest.js +0 -0
package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.d.ts
CHANGED
|
@@ -17,4 +17,10 @@ export declare const MinimalData: Story;
|
|
|
17
17
|
export declare const WithRejectButton: Story;
|
|
18
18
|
/** Rejecting state — reject button disabled with spinner while reject action is in flight. */
|
|
19
19
|
export declare const RejectingState: Story;
|
|
20
|
+
/** Real-world LLM provider question — reproduces exact label text from the reported bug. Badge must stay on one line. */
|
|
21
|
+
export declare const LlmProviderQuestion: Story;
|
|
22
|
+
/** Pathological overflow — label with no natural word break (repeating token). Verifies button does not overflow panel. */
|
|
23
|
+
export declare const RepeatingLabelOverflow: Story;
|
|
24
|
+
/** Long labels — verifies that AI Recommended badge stays on one line even with very long option labels. Uses 640px width to match real panel width. */
|
|
25
|
+
export declare const LongLabels: Story;
|
|
20
26
|
//# sourceMappingURL=prd-questionnaire.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiKvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"prd-questionnaire.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiKvD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,gBAAgB,CAkBvC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAU/C,sJAAsJ;AACtJ,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,EAAE,KAW5B,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,QAAQ,EAAE,KAStB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,KA8BzB,CAAC;AAaF,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,EAAE,KAQ9B,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC;AAEF,yHAAyH;AACzH,eAAO,MAAM,mBAAmB,EAAE,KAuCjC,CAAC;AAEF,2HAA2H;AAC3H,eAAO,MAAM,sBAAsB,EAAE,KAiCpC,CAAC;AAEF,wJAAwJ;AACxJ,eAAO,MAAM,UAAU,EAAE,KAyCxB,CAAC"}
|
package/dist/src/presentation/web/components/common/prd-questionnaire/prd-questionnaire.stories.js
CHANGED
|
@@ -154,7 +154,7 @@ const meta = {
|
|
|
154
154
|
onApprove: { action: 'onApprove' },
|
|
155
155
|
},
|
|
156
156
|
decorators: [
|
|
157
|
-
(Story) => (_jsx("div", { style: { height: '600px', width: '
|
|
157
|
+
(Story) => (_jsx("div", { style: { height: '600px', width: '760px', border: '1px solid var(--color-border)' }, children: _jsx(Story, {}) })),
|
|
158
158
|
],
|
|
159
159
|
};
|
|
160
160
|
export default meta;
|
|
@@ -248,3 +248,98 @@ export const RejectingState = {
|
|
|
248
248
|
isRejecting: true,
|
|
249
249
|
},
|
|
250
250
|
};
|
|
251
|
+
/** Real-world LLM provider question — reproduces exact label text from the reported bug. Badge must stay on one line. */
|
|
252
|
+
export const LlmProviderQuestion = {
|
|
253
|
+
render: () => (_jsx(InteractiveQuestionnaire, { data: {
|
|
254
|
+
question: 'Review Feature Requirements',
|
|
255
|
+
context: 'Testing badge nowrap with real-world LLM provider labels.',
|
|
256
|
+
questions: [
|
|
257
|
+
{
|
|
258
|
+
id: 'llm-provider',
|
|
259
|
+
question: 'Which LLM provider should be the primary AI engine?',
|
|
260
|
+
type: 'select',
|
|
261
|
+
options: [
|
|
262
|
+
{
|
|
263
|
+
id: 'claude-primary',
|
|
264
|
+
label: 'Claude (Anthropic) as primary for all AI tasks including vision/OCR, OpenAI as fallback LLM',
|
|
265
|
+
rationale: 'Claude is used as the primary engine for all AI tasks: structured reasoning, signal interpretation, opportunity scoring, AND vision/OCR for flyer image extraction.',
|
|
266
|
+
recommended: true,
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
id: 'split',
|
|
270
|
+
label: 'Claude (Anthropic) for reasoning, OpenAI Vision for OCR',
|
|
271
|
+
rationale: 'Split responsibilities: Claude for text reasoning tasks, OpenAI Vision API specifically for OCR/image analysis.',
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
id: 'single',
|
|
275
|
+
label: 'Single provider only (Claude OR OpenAI for everything)',
|
|
276
|
+
rationale: 'Simplifies implementation — one SDK, one billing relationship, one prompt format.',
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
finalAction: mockFinalAction,
|
|
282
|
+
} })),
|
|
283
|
+
};
|
|
284
|
+
/** Pathological overflow — label with no natural word break (repeating token). Verifies button does not overflow panel. */
|
|
285
|
+
export const RepeatingLabelOverflow = {
|
|
286
|
+
render: () => (_jsx(InteractiveQuestionnaire, { data: {
|
|
287
|
+
question: 'Where should the dark-mode preference be persisted?',
|
|
288
|
+
context: 'Testing overflow containment with no-break label text.',
|
|
289
|
+
questions: [
|
|
290
|
+
{
|
|
291
|
+
id: 'storage',
|
|
292
|
+
question: 'Where should the dark-mode preference be persisted?',
|
|
293
|
+
type: 'select',
|
|
294
|
+
options: [
|
|
295
|
+
{
|
|
296
|
+
id: 'localstorage',
|
|
297
|
+
label: 'localStorage only localStorage only localStorage only localStorage only localStorage only localStorage only',
|
|
298
|
+
rationale: 'Store the theme preference in localStorage. Zero backend changes, instant read on page load, and no need for API round-trips.',
|
|
299
|
+
recommended: true,
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
id: 'sqlite',
|
|
303
|
+
label: 'SQLite settings via backend API',
|
|
304
|
+
rationale: 'Persist the preference in the Shep SQLite settings store alongside other settings. Syncs across devices but requires API changes and a settings migration — out of scope for this feature.',
|
|
305
|
+
},
|
|
306
|
+
],
|
|
307
|
+
},
|
|
308
|
+
],
|
|
309
|
+
finalAction: mockFinalAction,
|
|
310
|
+
} })),
|
|
311
|
+
};
|
|
312
|
+
/** Long labels — verifies that AI Recommended badge stays on one line even with very long option labels. Uses 640px width to match real panel width. */
|
|
313
|
+
export const LongLabels = {
|
|
314
|
+
render: () => (_jsx(InteractiveQuestionnaire, { data: {
|
|
315
|
+
question: 'Review Feature Requirements',
|
|
316
|
+
context: 'Testing badge nowrap behavior with long option labels.',
|
|
317
|
+
questions: [
|
|
318
|
+
{
|
|
319
|
+
id: 'long-label',
|
|
320
|
+
question: 'Which deployment strategy should we use for the distributed microservices architecture?',
|
|
321
|
+
type: 'select',
|
|
322
|
+
options: [
|
|
323
|
+
{
|
|
324
|
+
id: 'opt-long-1',
|
|
325
|
+
label: 'Blue-Green Deployment with Automated Canary Analysis and Progressive Rollout',
|
|
326
|
+
rationale: 'Minimizes downtime and risk by running two identical production environments',
|
|
327
|
+
recommended: true,
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
id: 'opt-long-2',
|
|
331
|
+
label: 'Rolling Update with Health Check Verification and Automatic Rollback on Failure',
|
|
332
|
+
rationale: 'Gradually replaces instances with zero-downtime deployment',
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
id: 'opt-long-3',
|
|
336
|
+
label: 'Feature Flags with Percentage-Based Gradual Rollout to Target User Segments',
|
|
337
|
+
rationale: 'Enables targeted rollout and instant rollback via configuration',
|
|
338
|
+
isNew: true,
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
},
|
|
342
|
+
],
|
|
343
|
+
finalAction: mockFinalAction,
|
|
344
|
+
} })),
|
|
345
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-decisions-summary.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"product-decisions-summary.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/product-decisions-summary/product-decisions-summary.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,4BAA4B,EAE7B,MAAM,oCAAoC,CAAC;AA6B5C,wBAAgB,uBAAuB,CAAC,EAAE,IAAI,EAAE,EAAE,4BAA4B,kDAmB7E"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { ClipboardList } from 'lucide-react';
|
|
4
4
|
import { Badge } from '../../ui/badge.js';
|
|
5
5
|
function ProductDecisionCard({ item, index }) {
|
|
6
|
-
return (_jsx("div", { className: "border-border rounded-lg border", children: _jsx("div", { className: "space-y-2 px-4 py-3", children: _jsxs("div", { className: "flex items-start gap-2.5", children: [_jsx("span", { className: "bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold", children: index + 1 }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("h3", { className: "text-foreground text-sm leading-tight font-semibold", children: item.question }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx("p", { className: "text-muted-foreground text-xs", children: item.selectedOption }), item.wasRecommended ? (_jsx(Badge, { className: "px-1.5 py-0 text-[10px]", children: "AI Recommended" })) : null] })] })] }) }) }));
|
|
6
|
+
return (_jsx("div", { className: "border-border rounded-lg border", children: _jsx("div", { className: "space-y-2 px-4 py-3", children: _jsxs("div", { className: "flex items-start gap-2.5", children: [_jsx("span", { className: "bg-primary text-primary-foreground flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs font-bold", children: index + 1 }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("h3", { className: "text-foreground text-sm leading-tight font-semibold", children: item.question }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx("p", { className: "text-muted-foreground min-w-0 truncate text-xs", children: item.selectedOption }), item.wasRecommended ? (_jsx(Badge, { className: "shrink-0 px-1.5 py-0 text-[10px] whitespace-nowrap", children: "AI Recommended" })) : null] })] })] }) }) }));
|
|
7
7
|
}
|
|
8
8
|
export function ProductDecisionsSummary({ data }) {
|
|
9
9
|
const { questions } = data;
|