@wandoupeas/coding-forge 0.1.0 → 0.1.1

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.
Files changed (58) hide show
  1. package/README.md +9 -9
  2. package/dist/cli/commands/init.d.ts +1 -0
  3. package/dist/cli/commands/init.d.ts.map +1 -1
  4. package/dist/cli/commands/init.js +21 -10
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/commands/record.d.ts +11 -0
  7. package/dist/cli/commands/record.d.ts.map +1 -0
  8. package/dist/cli/commands/record.js +425 -0
  9. package/dist/cli/commands/record.js.map +1 -0
  10. package/dist/cli/commands/ui.js +2 -2
  11. package/dist/cli/index.d.ts.map +1 -1
  12. package/dist/cli/index.js +13 -1
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/core/logger.d.ts +5 -0
  15. package/dist/core/logger.d.ts.map +1 -1
  16. package/dist/core/logger.js +28 -0
  17. package/dist/core/logger.js.map +1 -1
  18. package/dist/core/planning.d.ts +13 -0
  19. package/dist/core/planning.d.ts.map +1 -1
  20. package/dist/core/planning.js +174 -7
  21. package/dist/core/planning.js.map +1 -1
  22. package/dist/ui/assets/index-B0LGSKSp.js +148 -0
  23. package/dist/ui/assets/index-BdOHfAmP.js +148 -0
  24. package/dist/ui/assets/index-BfMXz_A9.js +212 -0
  25. package/dist/ui/assets/index-C1V1OpTU.js +212 -0
  26. package/dist/ui/assets/index-CoJ1w_rN.js +212 -0
  27. package/dist/ui/assets/index-Cwtzi3AY.js +212 -0
  28. package/dist/ui/assets/index-DKs5v38z.js +148 -0
  29. package/dist/ui/assets/index-DlGG47Su.js +212 -0
  30. package/dist/ui/assets/index-bcUWb_BE.js +212 -0
  31. package/dist/ui/assets/index-gcGvB3SX.js +212 -0
  32. package/dist/ui/http/handlers/project-artifacts.d.ts.map +1 -1
  33. package/dist/ui/http/handlers/project-artifacts.js +3 -6
  34. package/dist/ui/http/handlers/project-artifacts.js.map +1 -1
  35. package/dist/ui/http/handlers/project-overview.d.ts.map +1 -1
  36. package/dist/ui/http/handlers/project-overview.js +3 -6
  37. package/dist/ui/http/handlers/project-overview.js.map +1 -1
  38. package/dist/ui/http/handlers/project-recovery.d.ts.map +1 -1
  39. package/dist/ui/http/handlers/project-recovery.js +3 -6
  40. package/dist/ui/http/handlers/project-recovery.js.map +1 -1
  41. package/dist/ui/http/handlers/project-runtime.d.ts.map +1 -1
  42. package/dist/ui/http/handlers/project-runtime.js +3 -6
  43. package/dist/ui/http/handlers/project-runtime.js.map +1 -1
  44. package/dist/ui/http/handlers/project-tasks.d.ts.map +1 -1
  45. package/dist/ui/http/handlers/project-tasks.js +3 -6
  46. package/dist/ui/http/handlers/project-tasks.js.map +1 -1
  47. package/dist/ui/http/handlers/projects.d.ts +15 -0
  48. package/dist/ui/http/handlers/projects.d.ts.map +1 -1
  49. package/dist/ui/http/handlers/projects.js +27 -0
  50. package/dist/ui/http/handlers/projects.js.map +1 -1
  51. package/dist/ui/http/router.d.ts.map +1 -1
  52. package/dist/ui/http/router.js +47 -27
  53. package/dist/ui/http/router.js.map +1 -1
  54. package/dist/ui/http/server.js +1 -1
  55. package/dist/ui/index.html +1 -1
  56. package/dist/ui/project-scanner.js +1 -1
  57. package/dist/ui/project-scanner.js.map +1 -1
  58. 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,CAkBzB"}
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 { getProjectById } from './projects.js';
2
+ import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
3
3
  export async function handleProjectArtifactsRequest(context, projectId) {
4
- const project = await getProjectById(context, projectId);
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,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,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
+ {"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,CAkBzB"}
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 { getProjectById } from './projects.js';
2
+ import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
3
3
  export async function handleProjectOverviewRequest(context, projectId) {
4
- const project = await getProjectById(context, projectId);
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,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,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
+ {"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,CAkBzB"}
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 { getProjectById } from './projects.js';
2
+ import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
3
3
  export async function handleProjectRecoveryRequest(context, projectId) {
4
- const project = await getProjectById(context, projectId);
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,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,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
+ {"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,CAkBzB"}
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 { getProjectById } from './projects.js';
2
+ import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
3
3
  export async function handleProjectRuntimeRequest(context, projectId) {
4
- const project = await getProjectById(context, projectId);
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,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,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
+ {"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,CAkBzB"}
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 { getProjectById } from './projects.js';
2
+ import { getReadableProjectById, toProjectLookupErrorResponse } from './projects.js';
3
3
  export async function handleProjectTasksRequest(context, projectId) {
4
- const project = await getProjectById(context, projectId);
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,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAsB,EACtB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,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"}
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":"AAwBA,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"}
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,CA0CzB"}
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"}
@@ -13,38 +13,43 @@ export function createUiRequestListener(context) {
13
13
  };
14
14
  }
15
15
  export async function routeUiRequest(method, pathname, context) {
16
- if (method !== 'GET') {
17
- return methodNotAllowed(method);
18
- }
19
- if (pathname === '/api/projects') {
20
- return handleProjectsRequest(context);
21
- }
22
- const projectMatch = pathname.match(/^\/api\/projects\/([^/]+)(?:\/([^/]+))?$/);
23
- if (!projectMatch) {
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
- const projectId = decodeURIComponent(projectMatch[1]);
29
- const section = projectMatch[2];
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":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/ui/http/router.ts"],"names":[],"mappings":"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"}
@@ -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 ?? 4173;
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);
@@ -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-cDUGEuwi.js"></script>
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 = config.readable && runtime.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.0",
3
+ "version": "0.1.1",
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": "./dist/cli/index.js"
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 4173",
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"