@shepai/cli 1.129.2-pr409.8d19a07 → 1.129.2-pr414.a244c89
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/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts +1 -31
- 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 +0 -2
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +0 -5
- package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts +0 -5
- 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 +0 -32
- package/dist/src/presentation/cli/commands/repo/index.d.ts +3 -4
- package/dist/src/presentation/cli/commands/repo/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/repo/index.js +4 -7
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.js +21 -6
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts +16 -0
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js +126 -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 +1 -1
- package/web/.next/required-server-files.json +1 -1
- 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]__b2f9a412._.js +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]__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]__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/_5fb28e57._.js +3 -0
- package/web/.next/server/chunks/ssr/{_6a5242a0._.js.map → _5fb28e57._.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/_a9f57758._.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/{_55644af9._.js → _e1434c79._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_55644af9._.js.map → _e1434c79._.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_2fdcc9da._.js +3 -0
- package/web/.next/server/chunks/ssr/{src_presentation_web_0cd3a74c._.js.map → src_presentation_web_2fdcc9da._.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/{5aece62660a857db.js → 069841443403cfcc.js} +1 -1
- package/web/.next/static/chunks/{e04aa97306bb4fcc.js → 1192d7345f9f2518.js} +1 -1
- package/web/.next/static/chunks/{1ce11c79ca2e7585.js → 3328e3a18a27d6a2.js} +1 -1
- package/web/.next/static/chunks/51b7b8bdb07f2ebf.js +1 -0
- package/web/.next/static/chunks/{96813f0a8d002ad2.js → 676c6d4741f6192d.js} +1 -1
- package/web/.next/static/chunks/{1ab3b92cd374a624.js → 82c085fcdc2b24c4.js} +1 -1
- package/web/.next/static/chunks/{38d77ab6a534ec87.js → 901929c364c0910e.js} +1 -1
- package/web/.next/static/chunks/{2458356d72e6fa9c.js → 92f126f7bc731420.js} +2 -2
- package/web/.next/static/chunks/{1add8a70b4b40ed8.js → a22e9f6f61bf7c13.js} +1 -1
- package/web/.next/static/chunks/{245f409ea7548b7f.js → b19d87b816606ee1.js} +1 -1
- package/web/.next/static/chunks/e9d946d8d4227e83.js +1 -0
- package/web/.next/static/chunks/{712d4b9e22d0ff38.js → f48057e0ef8a1769.js} +1 -1
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts +0 -28
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.d.ts.map +0 -1
- package/dist/packages/core/src/application/use-cases/repositories/init-remote-repository.use-case.js +0 -63
- package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts +0 -12
- package/dist/src/presentation/cli/commands/repo/init-remote.command.d.ts.map +0 -1
- package/dist/src/presentation/cli/commands/repo/init-remote.command.js +0 -60
- package/web/.next/server/chunks/ssr/_6a5242a0._.js +0 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_0cd3a74c._.js +0 -3
- package/web/.next/static/chunks/1723a9aeba25ddfc.js +0 -1
- package/web/.next/static/chunks/8d9cc59c9c6bb985.js +0 -1
- /package/web/.next/static/{yR1bDX4dtrRDAU5sWcjYr → BI_nIsDchXe-UwYQ69wzj}/_buildManifest.js +0 -0
- /package/web/.next/static/{yR1bDX4dtrRDAU5sWcjYr → BI_nIsDchXe-UwYQ69wzj}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{yR1bDX4dtrRDAU5sWcjYr → BI_nIsDchXe-UwYQ69wzj}/_ssgManifest.js +0 -0
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts
CHANGED
|
@@ -17,9 +17,7 @@ export declare enum GitPrErrorCode {
|
|
|
17
17
|
BRANCH_NOT_FOUND = "BRANCH_NOT_FOUND",
|
|
18
18
|
GIT_ERROR = "GIT_ERROR",
|
|
19
19
|
MERGE_FAILED = "MERGE_FAILED",
|
|
20
|
-
PR_NOT_FOUND = "PR_NOT_FOUND"
|
|
21
|
-
REMOTE_ALREADY_EXISTS = "REMOTE_ALREADY_EXISTS",
|
|
22
|
-
REPO_CREATE_FAILED = "REPO_CREATE_FAILED"
|
|
20
|
+
PR_NOT_FOUND = "PR_NOT_FOUND"
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
25
23
|
* Typed error for git PR operations.
|
|
@@ -144,34 +142,6 @@ export interface IGitPrService {
|
|
|
144
142
|
* @returns The remote URL, or null if no remote is configured
|
|
145
143
|
*/
|
|
146
144
|
getRemoteUrl(cwd: string): Promise<string | null>;
|
|
147
|
-
/**
|
|
148
|
-
* Create a GitHub repository and link it to the local repo.
|
|
149
|
-
* Uses `gh repo create` with `--source=.` and `--push` to atomically
|
|
150
|
-
* create the remote repo, add the origin remote, and push the current branch.
|
|
151
|
-
*
|
|
152
|
-
* @param cwd - Working directory path
|
|
153
|
-
* @param name - Repository name (e.g. "my-repo" or "org/my-repo")
|
|
154
|
-
* @param options - Creation options
|
|
155
|
-
* @param options.isPrivate - Whether to create a private repository
|
|
156
|
-
* @param options.org - Optional GitHub organization to create the repo under
|
|
157
|
-
* @returns The URL of the created GitHub repository
|
|
158
|
-
* @throws GitPrError with REPO_CREATE_FAILED code on creation failure
|
|
159
|
-
* @throws GitPrError with GH_NOT_FOUND code if gh CLI is not installed
|
|
160
|
-
* @throws GitPrError with AUTH_FAILURE code if gh is not authenticated
|
|
161
|
-
*/
|
|
162
|
-
createGitHubRepo(cwd: string, name: string, options: {
|
|
163
|
-
isPrivate: boolean;
|
|
164
|
-
org?: string;
|
|
165
|
-
}): Promise<string>;
|
|
166
|
-
/**
|
|
167
|
-
* Add a git remote to the local repository.
|
|
168
|
-
*
|
|
169
|
-
* @param cwd - Working directory path
|
|
170
|
-
* @param remoteName - Name for the remote (e.g. "origin")
|
|
171
|
-
* @param remoteUrl - URL of the remote repository
|
|
172
|
-
* @throws GitPrError with GIT_ERROR code on failure
|
|
173
|
-
*/
|
|
174
|
-
addRemote(cwd: string, remoteName: string, remoteUrl: string): Promise<void>;
|
|
175
145
|
/**
|
|
176
146
|
* Detect the repository's default branch with robust fallback chain:
|
|
177
147
|
* 1. Remote HEAD (git symbolic-ref refs/remotes/origin/HEAD)
|
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;GAEG;AACH,oBAAY,cAAc;IACxB,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;
|
|
1
|
+
{"version":3,"file":"git-pr-service.interface.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/core/src/application/ports/output/services/git-pr-service.interface.ts"],"names":[],"mappings":"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"}
|
package/dist/packages/core/src/application/ports/output/services/git-pr-service.interface.js
CHANGED
|
@@ -18,8 +18,6 @@ export var GitPrErrorCode;
|
|
|
18
18
|
GitPrErrorCode["GIT_ERROR"] = "GIT_ERROR";
|
|
19
19
|
GitPrErrorCode["MERGE_FAILED"] = "MERGE_FAILED";
|
|
20
20
|
GitPrErrorCode["PR_NOT_FOUND"] = "PR_NOT_FOUND";
|
|
21
|
-
GitPrErrorCode["REMOTE_ALREADY_EXISTS"] = "REMOTE_ALREADY_EXISTS";
|
|
22
|
-
GitPrErrorCode["REPO_CREATE_FAILED"] = "REPO_CREATE_FAILED";
|
|
23
21
|
})(GitPrErrorCode || (GitPrErrorCode = {}));
|
|
24
22
|
/**
|
|
25
23
|
* Typed error for git PR operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/src/infrastructure/di/container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAyHrC;;;;;;GAMG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,SAAS,CAAC,CAmVrE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -80,7 +80,6 @@ import { ListRepositoriesUseCase } from '../../application/use-cases/repositorie
|
|
|
80
80
|
import { DeleteRepositoryUseCase } from '../../application/use-cases/repositories/delete-repository.use-case.js';
|
|
81
81
|
import { ImportGitHubRepositoryUseCase } from '../../application/use-cases/repositories/import-github-repository.use-case.js';
|
|
82
82
|
import { ListGitHubRepositoriesUseCase } from '../../application/use-cases/repositories/list-github-repositories.use-case.js';
|
|
83
|
-
import { InitRemoteRepositoryUseCase } from '../../application/use-cases/repositories/init-remote-repository.use-case.js';
|
|
84
83
|
import { CheckAndUnblockFeaturesUseCase } from '../../application/use-cases/features/check-and-unblock-features.use-case.js';
|
|
85
84
|
import { UpdateFeatureLifecycleUseCase } from '../../application/use-cases/features/update/update-feature-lifecycle.use-case.js';
|
|
86
85
|
import { CleanupFeatureWorktreeUseCase } from '../../application/use-cases/features/cleanup-feature-worktree.use-case.js';
|
|
@@ -300,7 +299,6 @@ export async function initializeContainer() {
|
|
|
300
299
|
container.registerSingleton(DeleteRepositoryUseCase);
|
|
301
300
|
container.registerSingleton(ImportGitHubRepositoryUseCase);
|
|
302
301
|
container.registerSingleton(ListGitHubRepositoriesUseCase);
|
|
303
|
-
container.registerSingleton(InitRemoteRepositoryUseCase);
|
|
304
302
|
// CheckAndUnblockFeaturesUseCase must be registered before UpdateFeatureLifecycleUseCase
|
|
305
303
|
// because the latter injects the former via class token.
|
|
306
304
|
container.registerSingleton(CheckAndUnblockFeaturesUseCase);
|
|
@@ -385,9 +383,6 @@ export async function initializeContainer() {
|
|
|
385
383
|
container.register('ListGitHubRepositoriesUseCase', {
|
|
386
384
|
useFactory: (c) => c.resolve(ListGitHubRepositoriesUseCase),
|
|
387
385
|
});
|
|
388
|
-
container.register('InitRemoteRepositoryUseCase', {
|
|
389
|
-
useFactory: (c) => c.resolve(InitRemoteRepositoryUseCase),
|
|
390
|
-
});
|
|
391
386
|
container.register('CheckAndUnblockFeaturesUseCase', {
|
|
392
387
|
useFactory: (c) => c.resolve(CheckAndUnblockFeaturesUseCase),
|
|
393
388
|
});
|
|
@@ -44,11 +44,6 @@ export declare class GitPrService implements IGitPrService {
|
|
|
44
44
|
private parseGitError;
|
|
45
45
|
private parseGhError;
|
|
46
46
|
private parsePrNumberFromUrl;
|
|
47
|
-
createGitHubRepo(cwd: string, name: string, options: {
|
|
48
|
-
isPrivate: boolean;
|
|
49
|
-
org?: string;
|
|
50
|
-
}): Promise<string>;
|
|
51
|
-
addRemote(cwd: string, remoteName: string, remoteUrl: string): Promise<void>;
|
|
52
47
|
private parseDiffStat;
|
|
53
48
|
}
|
|
54
49
|
//# sourceMappingURL=git-pr.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wEAAwE,CAAC;AAC5G,OAAO,KAAK,EACV,cAAc,EAGd,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,wEAAwE,CAAC;AAUhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBACa,YAAa,YAAW,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAErE,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgBjD,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgF9C,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnD,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWxD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvE,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAuClE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;YA6BjF,eAAe;IASvB,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IA4EV,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnF,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsBjE,OAAO,CACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,cAAc,CAAC;IAyDpB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhF,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAevE,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAaxE,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,aAAa;IAmFf,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCpD,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAc/E,WAAW,CACf,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC;IA6CnB;;;OAGG;YACW,UAAU;IAmBlB,cAAc,CAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,WAAW,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC;IAWlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"git-pr.service.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/services/git/git-pr.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -633,38 +633,6 @@ let GitPrService = class GitPrService {
|
|
|
633
633
|
const match = url.match(/\/pull\/(\d+)/);
|
|
634
634
|
return match ? parseInt(match[1], 10) : 0;
|
|
635
635
|
}
|
|
636
|
-
async createGitHubRepo(cwd, name, options) {
|
|
637
|
-
const repoName = options.org ? `${options.org}/${name}` : name;
|
|
638
|
-
const visibilityFlag = options.isPrivate ? '--private' : '--public';
|
|
639
|
-
const args = [
|
|
640
|
-
'repo',
|
|
641
|
-
'create',
|
|
642
|
-
repoName,
|
|
643
|
-
visibilityFlag,
|
|
644
|
-
'--source=.',
|
|
645
|
-
'--remote=origin',
|
|
646
|
-
'--push',
|
|
647
|
-
];
|
|
648
|
-
try {
|
|
649
|
-
const { stdout } = await this.execFile('gh', args, { cwd });
|
|
650
|
-
return stdout.trim();
|
|
651
|
-
}
|
|
652
|
-
catch (error) {
|
|
653
|
-
const ghError = this.parseGhError(error);
|
|
654
|
-
if (ghError.code === GitPrErrorCode.GIT_ERROR) {
|
|
655
|
-
throw new GitPrError(ghError.message, GitPrErrorCode.REPO_CREATE_FAILED, ghError.cause);
|
|
656
|
-
}
|
|
657
|
-
throw ghError;
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
async addRemote(cwd, remoteName, remoteUrl) {
|
|
661
|
-
try {
|
|
662
|
-
await this.execFile('git', ['remote', 'add', remoteName, remoteUrl], { cwd });
|
|
663
|
-
}
|
|
664
|
-
catch (error) {
|
|
665
|
-
throw this.parseGitError(error);
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
636
|
parseDiffStat(diffStat, logOutput) {
|
|
669
637
|
const summaryLine = diffStat.trim().split('\n').pop() ?? '';
|
|
670
638
|
const filesMatch = summaryLine.match(/(\d+)\s+files?\s+changed/);
|
|
@@ -7,10 +7,9 @@
|
|
|
7
7
|
* shep repo [subcommand]
|
|
8
8
|
*
|
|
9
9
|
* Subcommands:
|
|
10
|
-
* shep repo ls
|
|
11
|
-
* shep repo show <id>
|
|
12
|
-
* shep repo add
|
|
13
|
-
* shep repo init-remote [name] Create a GitHub repo and configure the remote
|
|
10
|
+
* shep repo ls List tracked repositories
|
|
11
|
+
* shep repo show <id> Display details of a tracked repository
|
|
12
|
+
* shep repo add Import a GitHub repository
|
|
14
13
|
*/
|
|
15
14
|
import { Command } from 'commander';
|
|
16
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/repo/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/presentation/cli/commands/repo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C"}
|
|
@@ -7,16 +7,14 @@
|
|
|
7
7
|
* shep repo [subcommand]
|
|
8
8
|
*
|
|
9
9
|
* Subcommands:
|
|
10
|
-
* shep repo ls
|
|
11
|
-
* shep repo show <id>
|
|
12
|
-
* shep repo add
|
|
13
|
-
* shep repo init-remote [name] Create a GitHub repo and configure the remote
|
|
10
|
+
* shep repo ls List tracked repositories
|
|
11
|
+
* shep repo show <id> Display details of a tracked repository
|
|
12
|
+
* shep repo add Import a GitHub repository
|
|
14
13
|
*/
|
|
15
14
|
import { Command } from 'commander';
|
|
16
15
|
import { createShowCommand } from './show.command.js';
|
|
17
16
|
import { createLsCommand } from './ls.command.js';
|
|
18
17
|
import { createAddCommand } from './add.command.js';
|
|
19
|
-
import { createInitRemoteCommand } from './init-remote.command.js';
|
|
20
18
|
/**
|
|
21
19
|
* Create the repo command with all subcommands
|
|
22
20
|
*/
|
|
@@ -25,7 +23,6 @@ export function createRepoCommand() {
|
|
|
25
23
|
.description('Manage tracked repositories')
|
|
26
24
|
.addCommand(createLsCommand())
|
|
27
25
|
.addCommand(createShowCommand())
|
|
28
|
-
.addCommand(createAddCommand())
|
|
29
|
-
.addCommand(createInitRemoteCommand());
|
|
26
|
+
.addCommand(createAddCommand());
|
|
30
27
|
return repo;
|
|
31
28
|
}
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/activity-tab.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"activity-tab.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/activity-tab.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,yCAAyC,CAAC;AA4EjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC7C;AAmED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EAAE,EAC1B,QAAQ,CAAC,EAAE,qBAAqB,EAAE,GACjC,iBAAiB,EAAE,CAgErB;AA6BD,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,gBAAgB,2CAqE3F"}
|
|
@@ -24,12 +24,18 @@ function getEffectiveDuration(timing, now) {
|
|
|
24
24
|
function hasRunningPhase(timings) {
|
|
25
25
|
return timings.some((t) => !t.phase.startsWith('run:') && !t.completedAt && t.startedAt);
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
27
|
+
/** Returns true if any non-lifecycle phase is currently waiting for approval. */
|
|
28
|
+
function hasWaitingForApprovalPhase(timings) {
|
|
29
|
+
return timings.some((t) => !t.phase.startsWith('run:') && !!t.waitingApprovalAt && !t.approvalWaitMs);
|
|
30
|
+
}
|
|
31
|
+
/** Hook that ticks every second while there are running or approval-waiting phases. */
|
|
28
32
|
function useTickingNow(timings) {
|
|
29
33
|
const [now, setNow] = useState(Date.now);
|
|
30
34
|
const intervalRef = useRef(null);
|
|
31
35
|
useEffect(() => {
|
|
32
|
-
const running = timings
|
|
36
|
+
const running = timings
|
|
37
|
+
? hasRunningPhase(timings) || hasWaitingForApprovalPhase(timings)
|
|
38
|
+
: false;
|
|
33
39
|
if (running) {
|
|
34
40
|
// Tick every second
|
|
35
41
|
intervalRef.current = setInterval(() => setNow(Date.now()), 1000);
|
|
@@ -313,12 +319,21 @@ function NodeTimingRow({ timing, maxDurationMs, now, }) {
|
|
|
313
319
|
backgroundImage: 'linear-gradient(90deg, transparent 0%, rgb(59 130 246) 50%, transparent 100%)',
|
|
314
320
|
backgroundSize: '200% 100%',
|
|
315
321
|
animation: 'shimmer 1.5s ease-in-out infinite',
|
|
316
|
-
} })) : (_jsx("div", { className: `h-full rounded-full transition-all duration-300 ${barColorClass}`, style: { width: `${Math.min(barPercent, 100)}%` } })) }), _jsx("span", { className: "text-muted-foreground w-14 shrink-0 text-right text-sm font-medium tabular-nums", children: formatDuration(durationMs) })] }), _jsxs("div", { className: "ml-[28px] flex items-center gap-3 text-xs", children: [timing.startedAt ? (_jsx("span", { className: "text-muted-foreground/60 tabular-nums", children: formatTimestamp(timing.startedAt) })) : null, totalTokens != null && totalTokens > 0 ? (_jsxs("span", { className: "text-muted-foreground/70 inline-flex items-center gap-0.5", children: [_jsx(Zap, { className: "h-3 w-3 opacity-50" }), formatTokens(totalTokens)] })) : null, timing.costUsd != null && timing.costUsd > 0 ? (_jsxs("span", { className: "text-muted-foreground/70 inline-flex items-center gap-0.5", children: [_jsx(DollarSign, { className: "h-3 w-3 opacity-50" }), formatCost(timing.costUsd)] })) : null] }), timing.approvalWaitMs != null && timing.approvalWaitMs > 0
|
|
322
|
+
} })) : (_jsx("div", { className: `h-full rounded-full transition-all duration-300 ${barColorClass}`, style: { width: `${Math.min(barPercent, 100)}%` } })) }), _jsx("span", { className: "text-muted-foreground w-14 shrink-0 text-right text-sm font-medium tabular-nums", children: formatDuration(durationMs) })] }), _jsxs("div", { className: "ml-[28px] flex items-center gap-3 text-xs", children: [timing.startedAt ? (_jsx("span", { className: "text-muted-foreground/60 tabular-nums", children: formatTimestamp(timing.startedAt) })) : null, totalTokens != null && totalTokens > 0 ? (_jsxs("span", { className: "text-muted-foreground/70 inline-flex items-center gap-0.5", children: [_jsx(Zap, { className: "h-3 w-3 opacity-50" }), formatTokens(totalTokens)] })) : null, timing.costUsd != null && timing.costUsd > 0 ? (_jsxs("span", { className: "text-muted-foreground/70 inline-flex items-center gap-0.5", children: [_jsx(DollarSign, { className: "h-3 w-3 opacity-50" }), formatCost(timing.costUsd)] })) : null] }), (timing.approvalWaitMs != null && timing.approvalWaitMs > 0) ||
|
|
323
|
+
(timing.waitingApprovalAt && !timing.approvalWaitMs) ? (_jsx(ApprovalWaitRow, { timing: timing, maxDurationMs: maxDurationMs, now: now })) : null] }));
|
|
317
324
|
}
|
|
318
|
-
function ApprovalWaitRow({ timing, maxDurationMs, }) {
|
|
319
|
-
|
|
325
|
+
function ApprovalWaitRow({ timing, maxDurationMs, now, }) {
|
|
326
|
+
// isWaiting = approval requested but not yet resolved (live state)
|
|
327
|
+
const isWaiting = !!timing.waitingApprovalAt && !timing.approvalWaitMs;
|
|
328
|
+
const waitMs = isWaiting
|
|
329
|
+
? Math.max(0, now - new Date(String(timing.waitingApprovalAt)).getTime())
|
|
330
|
+
: (timing.approvalWaitMs ?? 0);
|
|
320
331
|
const barPercent = maxDurationMs > 0 ? Math.max(2, (waitMs / maxDurationMs) * 100) : 2;
|
|
321
|
-
return (_jsxs("div", { "data-testid": `approval-wait-${timing.phase}`, className: "ml-[26px] flex items-center gap-2 rounded-md bg-amber-50/50 px-1.5 py-1 dark:bg-amber-950/20", children: [_jsx(Timer, { className:
|
|
332
|
+
return (_jsxs("div", { "data-testid": `approval-wait-${timing.phase}`, className: "ml-[26px] flex items-center gap-2 rounded-md bg-amber-50/50 px-1.5 py-1 dark:bg-amber-950/20", children: [_jsx(Timer, { className: `h-3.5 w-3.5 shrink-0 text-amber-500 ${isWaiting ? 'animate-pulse' : ''}` }), _jsx("span", { className: "text-muted-foreground w-16 shrink-0 text-xs", children: isWaiting ? 'awaiting' : 'approval' }), _jsx("div", { className: "bg-muted relative h-1.5 min-w-0 flex-1 overflow-hidden rounded-full", children: isWaiting ? (_jsx("div", { className: "absolute inset-0 rounded-full", style: {
|
|
333
|
+
backgroundImage: 'linear-gradient(90deg, transparent 0%, rgb(245 158 11) 50%, transparent 100%)',
|
|
334
|
+
backgroundSize: '200% 100%',
|
|
335
|
+
animation: 'shimmer 1.5s ease-in-out infinite',
|
|
336
|
+
} })) : (_jsx("div", { className: "h-full rounded-full bg-amber-500", style: { width: `${Math.min(barPercent, 100)}%` } })) }), _jsx("span", { className: "text-muted-foreground w-14 shrink-0 text-right text-xs tabular-nums", children: formatDuration(waitMs) })] }));
|
|
322
337
|
}
|
|
323
338
|
function SummaryTotals({ totalExecMs, totalWaitMs, totalInputTokens, totalOutputTokens, totalCostUsd, }) {
|
|
324
339
|
const totalTokens = totalInputTokens + totalOutputTokens;
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.d.ts
CHANGED
|
@@ -32,4 +32,20 @@ export declare const WithApprovalWaits: Story;
|
|
|
32
32
|
* Shows the full pattern: start → work → rejected → resumed → work → rejected → resumed → completed
|
|
33
33
|
*/
|
|
34
34
|
export declare const FullLifecycle: Story;
|
|
35
|
+
/**
|
|
36
|
+
* Waiting for approval (live) — simulates the case where the agent has completed
|
|
37
|
+
* a phase and is currently waiting for user approval. The "awaiting" sub-row shows
|
|
38
|
+
* a pulsing amber indicator with a live-ticking timer.
|
|
39
|
+
*
|
|
40
|
+
* This covers the bug where the second merge iteration (after rejection + fixes)
|
|
41
|
+
* did not show any approval wait indicator.
|
|
42
|
+
*/
|
|
43
|
+
export declare const WaitingForApproval: Story;
|
|
44
|
+
/**
|
|
45
|
+
* Second iteration waiting for approval — simulates the exact reported bug:
|
|
46
|
+
* after rejecting the merge step, the agent fixed things and is now waiting
|
|
47
|
+
* for merge approval again in iteration 2. The activity tab must show the
|
|
48
|
+
* "awaiting" indicator for merge:2.
|
|
49
|
+
*/
|
|
50
|
+
export declare const SecondIterationWaitingForApproval: Story;
|
|
35
51
|
//# sourceMappingURL=activity-tab.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-tab.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAsM1C,2EAA2E;AAC3E,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,aAAa,EAAE,KAsE3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAwEhC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAE,KAgC/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAiI3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"activity-tab.stories.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAclC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAsM1C,2EAA2E;AAC3E,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,YAAY,EAAE,KAM1B,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,aAAa,EAAE,KAsE3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAwEhC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,EAAE,KAgC/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAiI3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAoChC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,EAAE,KA0E/C,CAAC"}
|
package/dist/src/presentation/web/components/common/feature-drawer-tabs/activity-tab.stories.js
CHANGED
|
@@ -570,3 +570,129 @@ export const FullLifecycle = {
|
|
|
570
570
|
error: null,
|
|
571
571
|
},
|
|
572
572
|
};
|
|
573
|
+
/**
|
|
574
|
+
* Waiting for approval (live) — simulates the case where the agent has completed
|
|
575
|
+
* a phase and is currently waiting for user approval. The "awaiting" sub-row shows
|
|
576
|
+
* a pulsing amber indicator with a live-ticking timer.
|
|
577
|
+
*
|
|
578
|
+
* This covers the bug where the second merge iteration (after rejection + fixes)
|
|
579
|
+
* did not show any approval wait indicator.
|
|
580
|
+
*/
|
|
581
|
+
export const WaitingForApproval = {
|
|
582
|
+
args: {
|
|
583
|
+
timings: [
|
|
584
|
+
{
|
|
585
|
+
agentRunId: 'run-1',
|
|
586
|
+
phase: 'run:started',
|
|
587
|
+
startedAt: new Date(Date.now() - 120000).toISOString(),
|
|
588
|
+
durationMs: 0,
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
agentRunId: 'run-1',
|
|
592
|
+
phase: 'analyze',
|
|
593
|
+
startedAt: new Date(Date.now() - 119000).toISOString(),
|
|
594
|
+
completedAt: new Date(Date.now() - 105000).toISOString(),
|
|
595
|
+
durationMs: 14000,
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
agentRunId: 'run-1',
|
|
599
|
+
phase: 'implement',
|
|
600
|
+
startedAt: new Date(Date.now() - 105000).toISOString(),
|
|
601
|
+
completedAt: new Date(Date.now() - 60000).toISOString(),
|
|
602
|
+
durationMs: 45000,
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
agentRunId: 'run-1',
|
|
606
|
+
phase: 'merge',
|
|
607
|
+
startedAt: new Date(Date.now() - 60000).toISOString(),
|
|
608
|
+
completedAt: new Date(Date.now() - 30000).toISOString(),
|
|
609
|
+
durationMs: 30000,
|
|
610
|
+
// waitingApprovalAt set but approvalWaitMs absent = currently waiting
|
|
611
|
+
waitingApprovalAt: new Date(Date.now() - 30000).toISOString(),
|
|
612
|
+
},
|
|
613
|
+
],
|
|
614
|
+
loading: false,
|
|
615
|
+
error: null,
|
|
616
|
+
},
|
|
617
|
+
};
|
|
618
|
+
/**
|
|
619
|
+
* Second iteration waiting for approval — simulates the exact reported bug:
|
|
620
|
+
* after rejecting the merge step, the agent fixed things and is now waiting
|
|
621
|
+
* for merge approval again in iteration 2. The activity tab must show the
|
|
622
|
+
* "awaiting" indicator for merge:2.
|
|
623
|
+
*/
|
|
624
|
+
export const SecondIterationWaitingForApproval = {
|
|
625
|
+
args: {
|
|
626
|
+
timings: [
|
|
627
|
+
// Iteration 1
|
|
628
|
+
{
|
|
629
|
+
agentRunId: 'run-1',
|
|
630
|
+
phase: 'run:started',
|
|
631
|
+
startedAt: new Date(Date.now() - 300000).toISOString(),
|
|
632
|
+
durationMs: 0,
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
agentRunId: 'run-1',
|
|
636
|
+
phase: 'analyze',
|
|
637
|
+
startedAt: new Date(Date.now() - 299000).toISOString(),
|
|
638
|
+
completedAt: new Date(Date.now() - 285000).toISOString(),
|
|
639
|
+
durationMs: 14000,
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
agentRunId: 'run-1',
|
|
643
|
+
phase: 'implement',
|
|
644
|
+
startedAt: new Date(Date.now() - 285000).toISOString(),
|
|
645
|
+
completedAt: new Date(Date.now() - 240000).toISOString(),
|
|
646
|
+
durationMs: 45000,
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
agentRunId: 'run-1',
|
|
650
|
+
phase: 'merge',
|
|
651
|
+
startedAt: new Date(Date.now() - 240000).toISOString(),
|
|
652
|
+
completedAt: new Date(Date.now() - 210000).toISOString(),
|
|
653
|
+
durationMs: 30000,
|
|
654
|
+
waitingApprovalAt: new Date(Date.now() - 210000).toISOString(),
|
|
655
|
+
approvalWaitMs: 15000,
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
agentRunId: 'run-1',
|
|
659
|
+
phase: 'run:rejected',
|
|
660
|
+
startedAt: new Date(Date.now() - 195000).toISOString(),
|
|
661
|
+
durationMs: 0,
|
|
662
|
+
},
|
|
663
|
+
// Iteration 2
|
|
664
|
+
{
|
|
665
|
+
agentRunId: 'run-1',
|
|
666
|
+
phase: 'run:resumed',
|
|
667
|
+
startedAt: new Date(Date.now() - 180000).toISOString(),
|
|
668
|
+
durationMs: 0,
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
agentRunId: 'run-1',
|
|
672
|
+
phase: 'implement:2',
|
|
673
|
+
startedAt: new Date(Date.now() - 180000).toISOString(),
|
|
674
|
+
completedAt: new Date(Date.now() - 60000).toISOString(),
|
|
675
|
+
durationMs: 120000,
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
agentRunId: 'run-1',
|
|
679
|
+
phase: 'merge:2',
|
|
680
|
+
startedAt: new Date(Date.now() - 60000).toISOString(),
|
|
681
|
+
completedAt: new Date(Date.now() - 30000).toISOString(),
|
|
682
|
+
durationMs: 30000,
|
|
683
|
+
// Currently waiting — approvalWaitMs absent
|
|
684
|
+
waitingApprovalAt: new Date(Date.now() - 30000).toISOString(),
|
|
685
|
+
},
|
|
686
|
+
],
|
|
687
|
+
rejectionFeedback: [
|
|
688
|
+
{
|
|
689
|
+
iteration: 1,
|
|
690
|
+
message: 'The PR has merge conflicts — rebase on main first',
|
|
691
|
+
phase: 'merge',
|
|
692
|
+
timestamp: new Date(Date.now() - 195000).toISOString(),
|
|
693
|
+
},
|
|
694
|
+
],
|
|
695
|
+
loading: false,
|
|
696
|
+
error: null,
|
|
697
|
+
},
|
|
698
|
+
};
|