@wandoupeas/coding-forge 0.1.0 → 0.1.2
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 +67 -24
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +21 -10
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/record.d.ts +11 -0
- package/dist/cli/commands/record.d.ts.map +1 -0
- package/dist/cli/commands/record.js +425 -0
- package/dist/cli/commands/record.js.map +1 -0
- package/dist/cli/commands/ui.js +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +13 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +28 -0
- package/dist/core/logger.js.map +1 -1
- package/dist/core/planning.d.ts +13 -0
- package/dist/core/planning.d.ts.map +1 -1
- package/dist/core/planning.js +174 -7
- package/dist/core/planning.js.map +1 -1
- package/dist/ui/assets/index-B0LGSKSp.js +148 -0
- package/dist/ui/assets/index-BdOHfAmP.js +148 -0
- package/dist/ui/assets/index-BfMXz_A9.js +212 -0
- package/dist/ui/assets/index-C1V1OpTU.js +212 -0
- package/dist/ui/assets/index-CoJ1w_rN.js +212 -0
- package/dist/ui/assets/index-Cwtzi3AY.js +212 -0
- package/dist/ui/assets/index-DKs5v38z.js +148 -0
- package/dist/ui/assets/index-DlGG47Su.js +212 -0
- package/dist/ui/assets/index-bcUWb_BE.js +212 -0
- package/dist/ui/assets/index-gcGvB3SX.js +212 -0
- package/dist/ui/http/handlers/project-artifacts.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-artifacts.js +3 -6
- package/dist/ui/http/handlers/project-artifacts.js.map +1 -1
- package/dist/ui/http/handlers/project-overview.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-overview.js +3 -6
- package/dist/ui/http/handlers/project-overview.js.map +1 -1
- package/dist/ui/http/handlers/project-recovery.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-recovery.js +3 -6
- package/dist/ui/http/handlers/project-recovery.js.map +1 -1
- package/dist/ui/http/handlers/project-runtime.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-runtime.js +3 -6
- package/dist/ui/http/handlers/project-runtime.js.map +1 -1
- package/dist/ui/http/handlers/project-tasks.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-tasks.js +3 -6
- package/dist/ui/http/handlers/project-tasks.js.map +1 -1
- package/dist/ui/http/handlers/projects.d.ts +15 -0
- package/dist/ui/http/handlers/projects.d.ts.map +1 -1
- package/dist/ui/http/handlers/projects.js +27 -0
- package/dist/ui/http/handlers/projects.js.map +1 -1
- package/dist/ui/http/router.d.ts.map +1 -1
- package/dist/ui/http/router.js +47 -27
- package/dist/ui/http/router.js.map +1 -1
- package/dist/ui/http/server.js +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/project-scanner.js +1 -1
- package/dist/ui/project-scanner.js.map +1 -1
- package/package.json +6 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-artifacts.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-artifacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"project-artifacts.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-artifacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAezB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { buildArtifactsReadModel } from '../../read-models/artifacts.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
|
|
3
3
|
export async function handleProjectArtifactsRequest(context, projectId) {
|
|
4
|
-
const project = await
|
|
4
|
+
const project = await getReadableProjectById(context, projectId);
|
|
5
5
|
if ('error' in project) {
|
|
6
|
-
return
|
|
7
|
-
status: 404,
|
|
8
|
-
body: project
|
|
9
|
-
};
|
|
6
|
+
return toProjectLookupErrorResponse(project);
|
|
10
7
|
}
|
|
11
8
|
const artifacts = await buildArtifactsReadModel(project.rootPath);
|
|
12
9
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-artifacts.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-artifacts.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,OAAO;YACP,IAAI,EAAE,SAAS;SAChB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-overview.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-overview.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"project-overview.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-overview.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAezB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { buildProjectOverview } from '../../read-models/overview.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
|
|
3
3
|
export async function handleProjectOverviewRequest(context, projectId) {
|
|
4
|
-
const project = await
|
|
4
|
+
const project = await getReadableProjectById(context, projectId);
|
|
5
5
|
if ('error' in project) {
|
|
6
|
-
return
|
|
7
|
-
status: 404,
|
|
8
|
-
body: project
|
|
9
|
-
};
|
|
6
|
+
return toProjectLookupErrorResponse(project);
|
|
10
7
|
}
|
|
11
8
|
const overview = await buildProjectOverview(project.rootPath);
|
|
12
9
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-overview.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-overview.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-overview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,OAAO;YACP,IAAI,EAAE,QAAQ;SACf;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-recovery.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"project-recovery.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAezB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { buildRecoveryReadModel } from '../../read-models/recovery.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
|
|
3
3
|
export async function handleProjectRecoveryRequest(context, projectId) {
|
|
4
|
-
const project = await
|
|
4
|
+
const project = await getReadableProjectById(context, projectId);
|
|
5
5
|
if ('error' in project) {
|
|
6
|
-
return
|
|
7
|
-
status: 404,
|
|
8
|
-
body: project
|
|
9
|
-
};
|
|
6
|
+
return toProjectLookupErrorResponse(project);
|
|
10
7
|
}
|
|
11
8
|
const recovery = await buildRecoveryReadModel(project.rootPath);
|
|
12
9
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-recovery.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-recovery.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhE,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,OAAO;YACP,IAAI,EAAE,QAAQ;SACf;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-runtime.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"project-runtime.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAezB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { buildRuntimeReadModel } from '../../read-models/runtime.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
|
|
3
3
|
export async function handleProjectRuntimeRequest(context, projectId) {
|
|
4
|
-
const project = await
|
|
4
|
+
const project = await getReadableProjectById(context, projectId);
|
|
5
5
|
if ('error' in project) {
|
|
6
|
-
return
|
|
7
|
-
status: 404,
|
|
8
|
-
body: project
|
|
9
|
-
};
|
|
6
|
+
return toProjectLookupErrorResponse(project);
|
|
10
7
|
}
|
|
11
8
|
const runtime = await buildRuntimeReadModel(project.rootPath);
|
|
12
9
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-runtime.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-runtime.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,OAAO;YACP,IAAI,EAAE,OAAO;SACd;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-tasks.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"project-tasks.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC,CAezB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { buildTasksReadModel } from '../../read-models/tasks.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
|
|
3
3
|
export async function handleProjectTasksRequest(context, projectId) {
|
|
4
|
-
const project = await
|
|
4
|
+
const project = await getReadableProjectById(context, projectId);
|
|
5
5
|
if ('error' in project) {
|
|
6
|
-
return
|
|
7
|
-
status: 404,
|
|
8
|
-
body: project
|
|
9
|
-
};
|
|
6
|
+
return toProjectLookupErrorResponse(project);
|
|
10
7
|
}
|
|
11
8
|
const tasks = await buildTasksReadModel(project.rootPath);
|
|
12
9
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-tasks.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-tasks.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/project-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1D,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,OAAO;YACP,IAAI,EAAE,KAAK;SACZ;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -18,6 +18,21 @@ export interface UiProjectNotFoundError {
|
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
+
export interface UiWorkspaceUnreadableError {
|
|
22
|
+
error: {
|
|
23
|
+
code: 'workspace_unreadable';
|
|
24
|
+
message: string;
|
|
25
|
+
details: {
|
|
26
|
+
projectId: string;
|
|
27
|
+
rootPath: string;
|
|
28
|
+
workspacePath: string;
|
|
29
|
+
readable: boolean;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export type UiProjectLookupError = UiProjectNotFoundError | UiWorkspaceUnreadableError;
|
|
21
34
|
export declare function handleProjectsRequest(context: UiHttpContext): Promise<UiJsonResponse>;
|
|
22
35
|
export declare function getProjectById(context: UiHttpContext, projectId: string): Promise<ProjectRecord | UiProjectNotFoundError>;
|
|
36
|
+
export declare function getReadableProjectById(context: UiHttpContext, projectId: string): Promise<ProjectRecord | UiProjectLookupError>;
|
|
37
|
+
export declare function toProjectLookupErrorResponse(error: UiProjectLookupError): UiJsonResponse;
|
|
23
38
|
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAW3F;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,sBAAsB,CAAC,CAkBjD"}
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../../../src/ui/http/handlers/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,mBAAmB,EAAE,MAAM,EAAE,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE;QACL,IAAI,EAAE,sBAAsB,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC;YACjB,aAAa,EAAE,MAAM,CAAC;YACtB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,GAAG,0BAA0B,CAAC;AAEvF,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAW3F;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,sBAAsB,CAAC,CAkBjD;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,oBAAoB,CAAC,CAsB/C;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc,CAKxF"}
|
|
@@ -26,4 +26,31 @@ export async function getProjectById(context, projectId) {
|
|
|
26
26
|
}
|
|
27
27
|
return project;
|
|
28
28
|
}
|
|
29
|
+
export async function getReadableProjectById(context, projectId) {
|
|
30
|
+
const project = await getProjectById(context, projectId);
|
|
31
|
+
if ('error' in project) {
|
|
32
|
+
return project;
|
|
33
|
+
}
|
|
34
|
+
if (project.readable) {
|
|
35
|
+
return project;
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
error: {
|
|
39
|
+
code: 'workspace_unreadable',
|
|
40
|
+
message: 'Workspace is incomplete or unreadable',
|
|
41
|
+
details: {
|
|
42
|
+
projectId,
|
|
43
|
+
rootPath: project.rootPath,
|
|
44
|
+
workspacePath: project.workspacePath,
|
|
45
|
+
readable: project.readable
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function toProjectLookupErrorResponse(error) {
|
|
51
|
+
return {
|
|
52
|
+
status: error.error.code === 'project_not_found' ? 404 : 409,
|
|
53
|
+
body: error
|
|
54
|
+
};
|
|
55
|
+
}
|
|
29
56
|
//# sourceMappingURL=projects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/projects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/ui/http/handlers/projects.ts"],"names":[],"mappings":"AAuCA,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAsB;IAChE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO;QACL,MAAM,EAAE,GAAG;QACX,IAAI,EAAE;YACJ,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ;SACT;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAsB,EACtB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE;oBACP,SAAS;oBACT,mBAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;iBACrD;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,KAAK,EAAE;YACL,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,uCAAuC;YAChD,OAAO,EAAE;gBACP,SAAS;gBACT,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAA2B;IACtE,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;QAC5D,IAAI,EAAE,KAAK;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/ui/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAO5D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE5E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,aAAa,IAC9C,SAAS,eAAe,EAAE,UAAU,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAOjF;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/ui/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAO5D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE5E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,aAAa,IAC9C,SAAS,eAAe,EAAE,UAAU,cAAc,KAAG,OAAO,CAAC,IAAI,CAAC,CAOjF;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CA8CzB"}
|
package/dist/ui/http/router.js
CHANGED
|
@@ -13,38 +13,43 @@ export function createUiRequestListener(context) {
|
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
export async function routeUiRequest(method, pathname, context) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
try {
|
|
17
|
+
if (method !== 'GET') {
|
|
18
|
+
return methodNotAllowed(method);
|
|
19
|
+
}
|
|
20
|
+
if (pathname === '/api/projects') {
|
|
21
|
+
return handleProjectsRequest(context);
|
|
22
|
+
}
|
|
23
|
+
const projectMatch = pathname.match(/^\/api\/projects\/([^/]+)(?:\/([^/]+))?$/);
|
|
24
|
+
if (!projectMatch) {
|
|
25
|
+
return notFound('route_not_found', 'Route not found', {
|
|
26
|
+
pathname
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const projectId = decodeURIComponent(projectMatch[1]);
|
|
30
|
+
const section = projectMatch[2];
|
|
31
|
+
if (section === 'overview') {
|
|
32
|
+
return handleProjectOverviewRequest(context, projectId);
|
|
33
|
+
}
|
|
34
|
+
if (section === 'tasks') {
|
|
35
|
+
return handleProjectTasksRequest(context, projectId);
|
|
36
|
+
}
|
|
37
|
+
if (section === 'artifacts') {
|
|
38
|
+
return handleProjectArtifactsRequest(context, projectId);
|
|
39
|
+
}
|
|
40
|
+
if (section === 'runtime') {
|
|
41
|
+
return handleProjectRuntimeRequest(context, projectId);
|
|
42
|
+
}
|
|
43
|
+
if (section === 'recovery') {
|
|
44
|
+
return handleProjectRecoveryRequest(context, projectId);
|
|
45
|
+
}
|
|
24
46
|
return notFound('route_not_found', 'Route not found', {
|
|
25
47
|
pathname
|
|
26
48
|
});
|
|
27
49
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (section === 'overview') {
|
|
31
|
-
return handleProjectOverviewRequest(context, projectId);
|
|
50
|
+
catch (error) {
|
|
51
|
+
return internalServerError(method, pathname, error);
|
|
32
52
|
}
|
|
33
|
-
if (section === 'tasks') {
|
|
34
|
-
return handleProjectTasksRequest(context, projectId);
|
|
35
|
-
}
|
|
36
|
-
if (section === 'artifacts') {
|
|
37
|
-
return handleProjectArtifactsRequest(context, projectId);
|
|
38
|
-
}
|
|
39
|
-
if (section === 'runtime') {
|
|
40
|
-
return handleProjectRuntimeRequest(context, projectId);
|
|
41
|
-
}
|
|
42
|
-
if (section === 'recovery') {
|
|
43
|
-
return handleProjectRecoveryRequest(context, projectId);
|
|
44
|
-
}
|
|
45
|
-
return notFound('route_not_found', 'Route not found', {
|
|
46
|
-
pathname
|
|
47
|
-
});
|
|
48
53
|
}
|
|
49
54
|
function getPathname(url) {
|
|
50
55
|
if (!url) {
|
|
@@ -78,4 +83,19 @@ function notFound(code, message, details, status = 404) {
|
|
|
78
83
|
}
|
|
79
84
|
};
|
|
80
85
|
}
|
|
86
|
+
function internalServerError(method, pathname, error) {
|
|
87
|
+
return {
|
|
88
|
+
status: 500,
|
|
89
|
+
body: {
|
|
90
|
+
error: {
|
|
91
|
+
code: 'internal_server_error',
|
|
92
|
+
message: error instanceof Error ? error.message : 'Unexpected UI server error',
|
|
93
|
+
details: {
|
|
94
|
+
method,
|
|
95
|
+
pathname
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
81
101
|
//# sourceMappingURL=router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/ui/http/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAG9E,MAAM,UAAU,uBAAuB,CAAC,OAAsB;IAC5D,OAAO,KAAK,EAAE,OAAwB,EAAE,QAAwB,EAAiB,EAAE;QACjF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/D,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,QAAgB,EAChB,OAAsB;IAEtB,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/ui/http/router.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/http/server.js
CHANGED
|
@@ -31,7 +31,7 @@ export async function createUiHttpServer(options = {}) {
|
|
|
31
31
|
}
|
|
32
32
|
export async function startUiHttpServer(options = {}) {
|
|
33
33
|
const host = options.host ?? '127.0.0.1';
|
|
34
|
-
const port = options.port ??
|
|
34
|
+
const port = options.port ?? 4317;
|
|
35
35
|
const handle = await createUiHttpServer(options);
|
|
36
36
|
await new Promise((resolvePromise, rejectPromise) => {
|
|
37
37
|
handle.server.once('error', rejectPromise);
|
package/dist/ui/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>WebForge UI</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/index-
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-DKs5v38z.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="./assets/index-DLwnhrrc.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
@@ -52,7 +52,7 @@ async function inspectProject(rootPath) {
|
|
|
52
52
|
if (!hasCandidate) {
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
|
-
const readable =
|
|
55
|
+
const readable = runtime.exists && runtime.readable && (!config.exists || config.readable);
|
|
56
56
|
const updatedAtSource = Number(runtime.mtimeMs ?? config.mtimeMs ?? workspaceStat?.mtimeMs ?? rootStat?.mtimeMs ?? Date.now());
|
|
57
57
|
return {
|
|
58
58
|
id: createHash('sha1').update(rootPath).digest('hex'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-scanner.js","sourceRoot":"","sources":["../../src/ui/project-scanner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-scanner.js","sourceRoot":"","sources":["../../src/ui/project-scanner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wandoupeas/coding-forge",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Agent-first harness CLI for Codex and Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli/index.js",
|
|
7
7
|
"types": "./dist/cli/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"webforge": "
|
|
9
|
+
"webforge": "dist/cli/index.js"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc && tsc --noEmit -p tsconfig.ui.json && vite build",
|
|
18
18
|
"dev": "tsc --watch",
|
|
19
|
-
"ui:dev": "vite --host 127.0.0.1 --port
|
|
19
|
+
"ui:dev": "vite --host 127.0.0.1 --port 4317",
|
|
20
20
|
"smoke:onboarding": "node scripts/smoke-agent-onboarding.mjs",
|
|
21
21
|
"test": "vitest",
|
|
22
22
|
"test:unit": "vitest run",
|
|
@@ -61,6 +61,8 @@
|
|
|
61
61
|
"yaml": "^2.4.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
65
|
+
"@testing-library/react": "^16.0.1",
|
|
64
66
|
"@types/fs-extra": "^11.0.4",
|
|
65
67
|
"@types/node": "^20.11.0",
|
|
66
68
|
"@types/pdf-parse": "^1.1.5",
|
|
@@ -68,6 +70,7 @@
|
|
|
68
70
|
"@types/react-dom": "^19.2.3",
|
|
69
71
|
"@vitejs/plugin-react": "^4.7.0",
|
|
70
72
|
"@vitest/coverage-v8": "^1.3.0",
|
|
73
|
+
"jsdom": "^26.1.0",
|
|
71
74
|
"typescript": "^5.3.0",
|
|
72
75
|
"vite": "^5.4.21",
|
|
73
76
|
"vitest": "^1.3.0"
|