@baseplate-dev/project-builder-server 0.5.3 → 0.6.0

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 (237) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/actions/__tests__/action-test-utils.d.ts +24 -0
  3. package/dist/actions/__tests__/action-test-utils.d.ts.map +1 -0
  4. package/dist/actions/__tests__/action-test-utils.js +33 -0
  5. package/dist/actions/__tests__/action-test-utils.js.map +1 -0
  6. package/dist/actions/definition/commit-draft.action.d.ts +16 -0
  7. package/dist/actions/definition/commit-draft.action.d.ts.map +1 -0
  8. package/dist/actions/definition/commit-draft.action.js +65 -0
  9. package/dist/actions/definition/commit-draft.action.js.map +1 -0
  10. package/dist/actions/definition/discard-draft.action.d.ts +7 -0
  11. package/dist/actions/definition/discard-draft.action.d.ts.map +1 -0
  12. package/dist/actions/definition/discard-draft.action.js +30 -0
  13. package/dist/actions/definition/discard-draft.action.js.map +1 -0
  14. package/dist/actions/definition/draft-session.d.ts +41 -0
  15. package/dist/actions/definition/draft-session.d.ts.map +1 -0
  16. package/dist/actions/definition/draft-session.js +117 -0
  17. package/dist/actions/definition/draft-session.js.map +1 -0
  18. package/dist/actions/definition/get-entity-schema.action.d.ts +10 -0
  19. package/dist/actions/definition/get-entity-schema.action.d.ts.map +1 -0
  20. package/dist/actions/definition/get-entity-schema.action.js +48 -0
  21. package/dist/actions/definition/get-entity-schema.action.js.map +1 -0
  22. package/dist/actions/definition/get-entity.action.d.ts +8 -0
  23. package/dist/actions/definition/get-entity.action.d.ts.map +1 -0
  24. package/dist/actions/definition/get-entity.action.js +37 -0
  25. package/dist/actions/definition/get-entity.action.js.map +1 -0
  26. package/dist/actions/definition/index.d.ts +11 -0
  27. package/dist/actions/definition/index.d.ts.map +1 -0
  28. package/dist/actions/definition/index.js +11 -0
  29. package/dist/actions/definition/index.js.map +1 -0
  30. package/dist/actions/definition/list-entities.action.d.ts +13 -0
  31. package/dist/actions/definition/list-entities.action.d.ts.map +1 -0
  32. package/dist/actions/definition/list-entities.action.js +43 -0
  33. package/dist/actions/definition/list-entities.action.js.map +1 -0
  34. package/dist/actions/definition/list-entity-types.action.d.ts +10 -0
  35. package/dist/actions/definition/list-entity-types.action.d.ts.map +1 -0
  36. package/dist/actions/definition/list-entity-types.action.js +42 -0
  37. package/dist/actions/definition/list-entity-types.action.js.map +1 -0
  38. package/dist/actions/definition/load-entity-service-context.d.ts +14 -0
  39. package/dist/actions/definition/load-entity-service-context.d.ts.map +1 -0
  40. package/dist/actions/definition/load-entity-service-context.js +18 -0
  41. package/dist/actions/definition/load-entity-service-context.js.map +1 -0
  42. package/dist/actions/definition/show-draft.action.d.ts +18 -0
  43. package/dist/actions/definition/show-draft.action.d.ts.map +1 -0
  44. package/dist/actions/definition/show-draft.action.js +117 -0
  45. package/dist/actions/definition/show-draft.action.js.map +1 -0
  46. package/dist/actions/definition/stage-create-entity.action.d.ts +19 -0
  47. package/dist/actions/definition/stage-create-entity.action.d.ts.map +1 -0
  48. package/dist/actions/definition/stage-create-entity.action.js +60 -0
  49. package/dist/actions/definition/stage-create-entity.action.js.map +1 -0
  50. package/dist/actions/definition/stage-delete-entity.action.d.ts +18 -0
  51. package/dist/actions/definition/stage-delete-entity.action.d.ts.map +1 -0
  52. package/dist/actions/definition/stage-delete-entity.action.js +55 -0
  53. package/dist/actions/definition/stage-delete-entity.action.js.map +1 -0
  54. package/dist/actions/definition/stage-update-entity.action.d.ts +19 -0
  55. package/dist/actions/definition/stage-update-entity.action.d.ts.map +1 -0
  56. package/dist/actions/definition/stage-update-entity.action.js +59 -0
  57. package/dist/actions/definition/stage-update-entity.action.js.map +1 -0
  58. package/dist/actions/definition/validate-draft.d.ts +17 -0
  59. package/dist/actions/definition/validate-draft.d.ts.map +1 -0
  60. package/dist/actions/definition/validate-draft.js +25 -0
  61. package/dist/actions/definition/validate-draft.js.map +1 -0
  62. package/dist/actions/index.d.ts +3 -0
  63. package/dist/actions/index.d.ts.map +1 -1
  64. package/dist/actions/index.js +3 -0
  65. package/dist/actions/index.js.map +1 -1
  66. package/dist/actions/registry.d.ts +169 -92
  67. package/dist/actions/registry.d.ts.map +1 -1
  68. package/dist/actions/registry.js +17 -1
  69. package/dist/actions/registry.js.map +1 -1
  70. package/dist/actions/snapshot/snapshot-add.action.d.ts +0 -1
  71. package/dist/actions/snapshot/snapshot-add.action.d.ts.map +1 -1
  72. package/dist/actions/snapshot/snapshot-add.action.js +3 -7
  73. package/dist/actions/snapshot/snapshot-add.action.js.map +1 -1
  74. package/dist/actions/snapshot/snapshot-remove.action.d.ts +0 -1
  75. package/dist/actions/snapshot/snapshot-remove.action.d.ts.map +1 -1
  76. package/dist/actions/snapshot/snapshot-remove.action.js +3 -7
  77. package/dist/actions/snapshot/snapshot-remove.action.js.map +1 -1
  78. package/dist/actions/snapshot/snapshot-save.action.d.ts +2 -2
  79. package/dist/actions/snapshot/snapshot-save.action.d.ts.map +1 -1
  80. package/dist/actions/snapshot/snapshot-save.action.js +23 -11
  81. package/dist/actions/snapshot/snapshot-save.action.js.map +1 -1
  82. package/dist/actions/snapshot/snapshot-show.action.d.ts +5 -2
  83. package/dist/actions/snapshot/snapshot-show.action.d.ts.map +1 -1
  84. package/dist/actions/snapshot/snapshot-show.action.js +17 -19
  85. package/dist/actions/snapshot/snapshot-show.action.js.map +1 -1
  86. package/dist/actions/sync/sync-all-projects.action.d.ts.map +1 -1
  87. package/dist/actions/sync/sync-all-projects.action.js +3 -2
  88. package/dist/actions/sync/sync-all-projects.action.js.map +1 -1
  89. package/dist/actions/sync/sync-file.action.js +1 -1
  90. package/dist/actions/sync/sync-file.action.js.map +1 -1
  91. package/dist/actions/sync/sync-project.action.d.ts +1 -1
  92. package/dist/actions/sync/sync-project.action.d.ts.map +1 -1
  93. package/dist/actions/sync/sync-project.action.js +20 -6
  94. package/dist/actions/sync/sync-project.action.js.map +1 -1
  95. package/dist/actions/test-project/index.d.ts +2 -0
  96. package/dist/actions/test-project/index.d.ts.map +1 -0
  97. package/dist/actions/test-project/index.js +2 -0
  98. package/dist/actions/test-project/index.js.map +1 -0
  99. package/dist/actions/test-project/test-project-init.action.d.ts +17 -0
  100. package/dist/actions/test-project/test-project-init.action.d.ts.map +1 -0
  101. package/dist/actions/test-project/test-project-init.action.js +97 -0
  102. package/dist/actions/test-project/test-project-init.action.js.map +1 -0
  103. package/dist/actions/types.d.ts +2 -0
  104. package/dist/actions/types.d.ts.map +1 -1
  105. package/dist/actions/types.js.map +1 -1
  106. package/dist/actions/utils/generation-manifest.d.ts +12 -0
  107. package/dist/actions/utils/generation-manifest.d.ts.map +1 -0
  108. package/dist/actions/utils/generation-manifest.js +142 -0
  109. package/dist/actions/utils/generation-manifest.js.map +1 -0
  110. package/dist/actions/utils/index.d.ts +1 -1
  111. package/dist/actions/utils/index.d.ts.map +1 -1
  112. package/dist/actions/utils/index.js +1 -1
  113. package/dist/actions/utils/index.js.map +1 -1
  114. package/dist/actions/utils/project-discovery.d.ts +23 -9
  115. package/dist/actions/utils/project-discovery.d.ts.map +1 -1
  116. package/dist/actions/utils/project-discovery.js +57 -31
  117. package/dist/actions/utils/project-discovery.js.map +1 -1
  118. package/dist/actions/utils/projects.d.ts.map +1 -1
  119. package/dist/actions/utils/projects.js +2 -1
  120. package/dist/actions/utils/projects.js.map +1 -1
  121. package/dist/compiler/backend/{authorizers.d.ts → authorizer-compiler.d.ts} +22 -2
  122. package/dist/compiler/backend/authorizer-compiler.d.ts.map +1 -0
  123. package/dist/compiler/backend/authorizer-compiler.js +165 -0
  124. package/dist/compiler/backend/authorizer-compiler.js.map +1 -0
  125. package/dist/compiler/backend/feature.d.ts.map +1 -1
  126. package/dist/compiler/backend/feature.js +3 -1
  127. package/dist/compiler/backend/feature.js.map +1 -1
  128. package/dist/compiler/backend/graphql.d.ts.map +1 -1
  129. package/dist/compiler/backend/graphql.js +108 -49
  130. package/dist/compiler/backend/graphql.js.map +1 -1
  131. package/dist/compiler/backend/models.d.ts.map +1 -1
  132. package/dist/compiler/backend/models.js +13 -13
  133. package/dist/compiler/backend/models.js.map +1 -1
  134. package/dist/compiler/backend/query-filter-compiler.d.ts +40 -0
  135. package/dist/compiler/backend/query-filter-compiler.d.ts.map +1 -0
  136. package/dist/compiler/backend/query-filter-compiler.js +168 -0
  137. package/dist/compiler/backend/query-filter-compiler.js.map +1 -0
  138. package/dist/compiler/backend/services.d.ts.map +1 -1
  139. package/dist/compiler/backend/services.js +24 -1
  140. package/dist/compiler/backend/services.js.map +1 -1
  141. package/dist/compiler/index.d.ts +1 -0
  142. package/dist/compiler/index.d.ts.map +1 -1
  143. package/dist/compiler/index.js.map +1 -1
  144. package/dist/compiler/root/root-package-compiler.js +6 -6
  145. package/dist/compiler/root/root-package-compiler.js.map +1 -1
  146. package/dist/compiler/web/admin/crud/index.js +1 -1
  147. package/dist/compiler/web/admin/crud/index.js.map +1 -1
  148. package/dist/compiler/web/admin/index.js +1 -1
  149. package/dist/compiler/web/admin/index.js.map +1 -1
  150. package/dist/compiler/web/admin/sections.d.ts.map +1 -1
  151. package/dist/compiler/web/admin/sections.js +2 -2
  152. package/dist/compiler/web/admin/sections.js.map +1 -1
  153. package/dist/compiler/web/web-compiler.d.ts.map +1 -1
  154. package/dist/compiler/web/web-compiler.js +4 -4
  155. package/dist/compiler/web/web-compiler.js.map +1 -1
  156. package/dist/core-modules/admin-crud-column-compiler.js +1 -1
  157. package/dist/core-modules/admin-crud-column-compiler.js.map +1 -1
  158. package/dist/core-modules/admin-crud-input-compiler.d.ts.map +1 -1
  159. package/dist/core-modules/admin-crud-input-compiler.js +13 -3
  160. package/dist/core-modules/admin-crud-input-compiler.js.map +1 -1
  161. package/dist/dev-server/api/router.d.ts +8 -7
  162. package/dist/dev-server/api/router.d.ts.map +1 -1
  163. package/dist/dev-server/mcp/stdio.d.ts +2 -2
  164. package/dist/dev-server/mcp/stdio.d.ts.map +1 -1
  165. package/dist/dev-server/mcp/stdio.js +2 -2
  166. package/dist/dev-server/mcp/stdio.js.map +1 -1
  167. package/dist/diff/diff-project.d.ts.map +1 -1
  168. package/dist/diff/diff-project.js +4 -4
  169. package/dist/diff/diff-project.js.map +1 -1
  170. package/dist/diff/snapshot/apply-diff-to-generator-output.d.ts.map +1 -1
  171. package/dist/diff/snapshot/apply-diff-to-generator-output.js +17 -2
  172. package/dist/diff/snapshot/apply-diff-to-generator-output.js.map +1 -1
  173. package/dist/diff/snapshot/create-snapshot-for-project.d.ts +12 -6
  174. package/dist/diff/snapshot/create-snapshot-for-project.d.ts.map +1 -1
  175. package/dist/diff/snapshot/create-snapshot-for-project.js +58 -26
  176. package/dist/diff/snapshot/create-snapshot-for-project.js.map +1 -1
  177. package/dist/diff/snapshot/index.d.ts +4 -1
  178. package/dist/diff/snapshot/index.d.ts.map +1 -1
  179. package/dist/diff/snapshot/index.js +4 -0
  180. package/dist/diff/snapshot/index.js.map +1 -1
  181. package/dist/diff/snapshot/save-snapshot.d.ts +11 -3
  182. package/dist/diff/snapshot/save-snapshot.d.ts.map +1 -1
  183. package/dist/diff/snapshot/save-snapshot.js +29 -10
  184. package/dist/diff/snapshot/save-snapshot.js.map +1 -1
  185. package/dist/diff/snapshot/snapshot-management.d.ts +7 -6
  186. package/dist/diff/snapshot/snapshot-management.d.ts.map +1 -1
  187. package/dist/diff/snapshot/snapshot-management.js +18 -22
  188. package/dist/diff/snapshot/snapshot-management.js.map +1 -1
  189. package/dist/diff/snapshot/snapshot-manifest.d.ts +1 -1
  190. package/dist/diff/snapshot/snapshot-manifest.d.ts.map +1 -1
  191. package/dist/diff/snapshot/snapshot-manifest.js +7 -7
  192. package/dist/diff/snapshot/snapshot-manifest.js.map +1 -1
  193. package/dist/diff/snapshot/snapshot-types.d.ts +22 -8
  194. package/dist/diff/snapshot/snapshot-types.d.ts.map +1 -1
  195. package/dist/diff/snapshot/snapshot-types.js +6 -2
  196. package/dist/diff/snapshot/snapshot-types.js.map +1 -1
  197. package/dist/diff/snapshot/snapshot-utils.d.ts +14 -5
  198. package/dist/diff/snapshot/snapshot-utils.d.ts.map +1 -1
  199. package/dist/diff/snapshot/snapshot-utils.js +25 -8
  200. package/dist/diff/snapshot/snapshot-utils.js.map +1 -1
  201. package/dist/index.d.ts +1 -0
  202. package/dist/index.js +1 -0
  203. package/dist/plugins/node-plugin-store.d.ts +1 -1
  204. package/dist/plugins/node-plugin-store.d.ts.map +1 -1
  205. package/dist/plugins/node-plugin-store.js +2 -2
  206. package/dist/plugins/node-plugin-store.js.map +1 -1
  207. package/dist/project-definition/load-project-definition.d.ts +2 -2
  208. package/dist/project-definition/load-project-definition.d.ts.map +1 -1
  209. package/dist/project-definition/load-project-definition.js +3 -3
  210. package/dist/project-definition/load-project-definition.js.map +1 -1
  211. package/dist/sync/generate-for-directory.d.ts +3 -2
  212. package/dist/sync/generate-for-directory.d.ts.map +1 -1
  213. package/dist/sync/generate-for-directory.js +24 -11
  214. package/dist/sync/generate-for-directory.js.map +1 -1
  215. package/dist/sync/sync-project.d.ts +3 -3
  216. package/dist/sync/sync-project.d.ts.map +1 -1
  217. package/dist/sync/sync-project.js +9 -3
  218. package/dist/sync/sync-project.js.map +1 -1
  219. package/dist/templates/create/create-generator.d.ts.map +1 -1
  220. package/dist/templates/create/create-generator.js +3 -3
  221. package/dist/templates/create/create-generator.js.map +1 -1
  222. package/dist/user-config/user-config-schema.d.ts +12 -0
  223. package/dist/user-config/user-config-schema.d.ts.map +1 -1
  224. package/dist/user-config/user-config-schema.js +29 -0
  225. package/dist/user-config/user-config-schema.js.map +1 -1
  226. package/package.json +17 -14
  227. package/dist/actions/utils/is-example-project.d.ts +0 -7
  228. package/dist/actions/utils/is-example-project.d.ts.map +0 -1
  229. package/dist/actions/utils/is-example-project.js +0 -22
  230. package/dist/actions/utils/is-example-project.js.map +0 -1
  231. package/dist/compiler/backend/authorizers.d.ts.map +0 -1
  232. package/dist/compiler/backend/authorizers.js +0 -75
  233. package/dist/compiler/backend/authorizers.js.map +0 -1
  234. package/dist/project-definition/get-single-app-directory-for-project.d.ts +0 -11
  235. package/dist/project-definition/get-single-app-directory-for-project.d.ts.map +0 -1
  236. package/dist/project-definition/get-single-app-directory-for-project.js +0 -19
  237. package/dist/project-definition/get-single-app-directory-for-project.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const listEntitiesAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
3
+ project: z.ZodString;
4
+ entityTypeName: z.ZodString;
5
+ parentEntityId: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ entities: z.ZodArray<z.ZodObject<{
8
+ id: z.ZodString;
9
+ name: z.ZodString;
10
+ type: z.ZodString;
11
+ }, z.core.$strip>>;
12
+ }, z.core.$strip>>;
13
+ //# sourceMappingURL=list-entities.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-entities.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/list-entities.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,kBAAkB;;;;;;;;;;kBA4B7B,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { listEntities } from '@baseplate-dev/project-builder-lib';
2
+ import { z } from 'zod';
3
+ import { createServiceAction } from '#src/actions/types.js';
4
+ import { loadEntityServiceContext } from './load-entity-service-context.js';
5
+ const listEntitiesInputSchema = z.object({
6
+ project: z.string().describe('The name or ID of the project.'),
7
+ entityTypeName: z
8
+ .string()
9
+ .describe('The entity type to list (e.g., "feature", "model", "model-scalar-field").'),
10
+ parentEntityId: z
11
+ .string()
12
+ .optional()
13
+ .describe('Required for nested entity types. The ID of the parent entity to scope the listing.'),
14
+ });
15
+ const entityStubSchema = z.object({
16
+ id: z.string().describe('The entity ID.'),
17
+ name: z.string().describe('The entity name.'),
18
+ type: z.string().describe('The entity type name.'),
19
+ });
20
+ const listEntitiesOutputSchema = z.object({
21
+ entities: z.array(entityStubSchema).describe('The list of entities.'),
22
+ });
23
+ export const listEntitiesAction = createServiceAction({
24
+ name: 'list-entities',
25
+ title: 'List Entities',
26
+ description: 'List entities of a given type in the project definition. Use list-entity-types to discover available entity type names.',
27
+ inputSchema: listEntitiesInputSchema,
28
+ outputSchema: listEntitiesOutputSchema,
29
+ writeCliOutput: (output) => {
30
+ for (const entity of output.entities) {
31
+ console.info(` ${entity.name} (${entity.id})`);
32
+ }
33
+ },
34
+ handler: async (input, context) => {
35
+ const { entityContext } = await loadEntityServiceContext(input.project, context);
36
+ const entities = listEntities({
37
+ entityTypeName: input.entityTypeName,
38
+ parentEntityId: input.parentEntityId,
39
+ }, entityContext);
40
+ return { entities };
41
+ },
42
+ });
43
+ //# sourceMappingURL=list-entities.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-entities.action.js","sourceRoot":"","sources":["../../../src/actions/definition/list-entities.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC9D,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CACP,2EAA2E,CAC5E;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;CACJ,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;IACpD,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,yHAAyH;IAC3H,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,wBAAwB;IACtC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;QACzB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,CACtD,KAAK,CAAC,OAAO,EACb,OAAO,CACR,CAAC;QAEF,MAAM,QAAQ,GAAG,YAAY,CAC3B;YACE,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,EACD,aAAa,CACd,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const listEntityTypesAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
3
+ project: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ entityTypes: z.ZodArray<z.ZodObject<{
6
+ name: z.ZodString;
7
+ parentEntityTypeName: z.ZodNullable<z.ZodString>;
8
+ }, z.core.$strip>>;
9
+ }, z.core.$strip>>;
10
+ //# sourceMappingURL=list-entity-types.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-entity-types.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/list-entity-types.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,qBAAqB;;;;;;;kBA8BhC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ import { createServiceAction } from '#src/actions/types.js';
3
+ import { loadEntityServiceContext } from './load-entity-service-context.js';
4
+ const listEntityTypesInputSchema = z.object({
5
+ project: z.string().describe('The name or ID of the project.'),
6
+ });
7
+ const entityTypeInfoSchema = z.object({
8
+ name: z.string().describe('The entity type name.'),
9
+ parentEntityTypeName: z
10
+ .string()
11
+ .nullable()
12
+ .describe('The parent entity type name, or null for top-level entities.'),
13
+ });
14
+ const listEntityTypesOutputSchema = z.object({
15
+ entityTypes: z
16
+ .array(entityTypeInfoSchema)
17
+ .describe('The list of available entity types.'),
18
+ });
19
+ export const listEntityTypesAction = createServiceAction({
20
+ name: 'list-entity-types',
21
+ title: 'List Entity Types',
22
+ description: 'List all available entity types in the project definition schema. Returns type names and parent relationships.',
23
+ inputSchema: listEntityTypesInputSchema,
24
+ outputSchema: listEntityTypesOutputSchema,
25
+ writeCliOutput: (output) => {
26
+ for (const entityType of output.entityTypes) {
27
+ const parent = entityType.parentEntityTypeName
28
+ ? ` (parent: ${entityType.parentEntityTypeName})`
29
+ : '';
30
+ console.info(` ${entityType.name}${parent}`);
31
+ }
32
+ },
33
+ handler: async (input, context) => {
34
+ const { entityContext } = await loadEntityServiceContext(input.project, context);
35
+ const entityTypes = [...entityContext.entityTypeMap.entries()].map(([name, metadata]) => ({
36
+ name,
37
+ parentEntityTypeName: metadata.parentEntityTypeName ?? null,
38
+ }));
39
+ return { entityTypes };
40
+ },
41
+ });
42
+ //# sourceMappingURL=list-entity-types.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-entity-types.action.js","sourceRoot":"","sources":["../../../src/actions/definition/list-entity-types.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAClD,oBAAoB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;CAC5E,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC;SACX,KAAK,CAAC,oBAAoB,CAAC;SAC3B,QAAQ,CAAC,qCAAqC,CAAC;CACnD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;IACvD,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,gHAAgH;IAClH,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE;QACzB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB;gBAC5C,CAAC,CAAC,aAAa,UAAU,CAAC,oBAAoB,GAAG;gBACjD,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,wBAAwB,CACtD,KAAK,CAAC,OAAO,EACb,OAAO,CACR,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAChE,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,IAAI;YACJ,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,IAAI;SAC5D,CAAC,CACH,CAAC;QAEF,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { EntityServiceContext } from '@baseplate-dev/project-builder-lib';
2
+ import { ProjectDefinitionContainer } from '@baseplate-dev/project-builder-lib';
3
+ import type { ServiceActionContext } from '#src/actions/types.js';
4
+ export interface EntityServiceContextResult {
5
+ entityContext: EntityServiceContext;
6
+ container: ProjectDefinitionContainer;
7
+ }
8
+ /**
9
+ * Loads a project definition and builds an EntityServiceContext for entity operations.
10
+ *
11
+ * Shared helper used by all definition read actions.
12
+ */
13
+ export declare function loadEntityServiceContext(projectNameOrId: string, context: ServiceActionContext): Promise<EntityServiceContextResult>;
14
+ //# sourceMappingURL=load-entity-service-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-entity-service-context.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/load-entity-service-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAOlE,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,oBAAoB,CAAC;IACpC,SAAS,EAAE,0BAA0B,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,0BAA0B,CAAC,CAuBrC"}
@@ -0,0 +1,18 @@
1
+ import { ProjectDefinitionContainer } from '@baseplate-dev/project-builder-lib';
2
+ import { createNodeSchemaParserContext } from '#src/plugins/node-plugin-store.js';
3
+ import { loadProjectDefinition } from '#src/project-definition/load-project-definition.js';
4
+ import { getProjectByNameOrId } from '../utils/projects.js';
5
+ /**
6
+ * Loads a project definition and builds an EntityServiceContext for entity operations.
7
+ *
8
+ * Shared helper used by all definition read actions.
9
+ */
10
+ export async function loadEntityServiceContext(projectNameOrId, context) {
11
+ const project = getProjectByNameOrId(context.projects, projectNameOrId);
12
+ const parserContext = await createNodeSchemaParserContext(project, context.logger, context.plugins, context.cliVersion);
13
+ const { definition } = await loadProjectDefinition(project.baseplateDirectory, parserContext);
14
+ const container = ProjectDefinitionContainer.fromSerializedConfig(definition, parserContext);
15
+ const entityContext = container.toEntityServiceContext();
16
+ return { entityContext, container };
17
+ }
18
+ //# sourceMappingURL=load-entity-service-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-entity-service-context.js","sourceRoot":"","sources":["../../../src/actions/definition/load-entity-service-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAIhF,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAE3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAO5D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,eAAuB,EACvB,OAA6B;IAE7B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,MAAM,6BAA6B,CACvD,OAAO,EACP,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,UAAU,CACnB,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,qBAAqB,CAChD,OAAO,CAAC,kBAAkB,EAC1B,aAAa,CACd,CAAC;IAEF,MAAM,SAAS,GAAG,0BAA0B,CAAC,oBAAoB,CAC/D,UAAU,EACV,aAAa,CACd,CAAC;IAEF,MAAM,aAAa,GAAG,SAAS,CAAC,sBAAsB,EAAE,CAAC;IAEzD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export declare const showDraftAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
3
+ project: z.ZodString;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ hasDraft: z.ZodBoolean;
6
+ sessionId: z.ZodNullable<z.ZodString>;
7
+ definitionHash: z.ZodNullable<z.ZodString>;
8
+ changes: z.ZodNullable<z.ZodArray<z.ZodObject<{
9
+ label: z.ZodString;
10
+ type: z.ZodEnum<{
11
+ added: "added";
12
+ updated: "updated";
13
+ removed: "removed";
14
+ }>;
15
+ details: z.ZodNullable<z.ZodString>;
16
+ }, z.core.$strip>>>;
17
+ }, z.core.$strip>>;
18
+ //# sourceMappingURL=show-draft.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-draft.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/show-draft.action.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;kBAuE1B,CAAC"}
@@ -0,0 +1,117 @@
1
+ import { diffSerializedDefinitions } from '@baseplate-dev/project-builder-lib';
2
+ import { stringifyPrettyStable } from '@baseplate-dev/utils';
3
+ import jsonPatch from 'fast-json-patch';
4
+ import { z } from 'zod';
5
+ import { createServiceAction } from '#src/actions/types.js';
6
+ import { getProjectByNameOrId } from '../utils/projects.js';
7
+ import { loadDraftSession } from './draft-session.js';
8
+ import { loadEntityServiceContext } from './load-entity-service-context.js';
9
+ const showDraftInputSchema = z.object({
10
+ project: z.string().describe('The name or ID of the project.'),
11
+ });
12
+ const MAX_DETAILS_LENGTH = 2000;
13
+ const draftChangeSchema = z.object({
14
+ label: z
15
+ .string()
16
+ .describe('Human-readable label (e.g., "Feature: payments").'),
17
+ type: z.enum(['added', 'updated', 'removed']).describe('The type of change.'),
18
+ details: z
19
+ .string()
20
+ .nullable()
21
+ .describe('For added: the entity JSON. For updated: a JSON Patch (RFC 6902) array. Null for removed.'),
22
+ });
23
+ const showDraftOutputSchema = z.object({
24
+ hasDraft: z.boolean().describe('Whether a draft session exists.'),
25
+ sessionId: z
26
+ .string()
27
+ .nullable()
28
+ .describe('The session ID of the draft, or null if no draft.'),
29
+ definitionHash: z
30
+ .string()
31
+ .nullable()
32
+ .describe('The hash of the project definition when the draft was created, or null if no draft.'),
33
+ changes: z
34
+ .array(draftChangeSchema)
35
+ .nullable()
36
+ .describe('Entity-level changes in the draft, or null if no draft.'),
37
+ });
38
+ function truncateDetails(text) {
39
+ if (text.length <= MAX_DETAILS_LENGTH) {
40
+ return text;
41
+ }
42
+ return `${text.slice(0, MAX_DETAILS_LENGTH)}\n... (truncated)`;
43
+ }
44
+ function formatChangeDetails(entry) {
45
+ switch (entry.type) {
46
+ case 'added': {
47
+ const json = stringifyPrettyStable(entry.merged);
48
+ return truncateDetails(json);
49
+ }
50
+ case 'updated': {
51
+ const operations = jsonPatch.compare(entry.current, entry.merged);
52
+ const json = stringifyPrettyStable(operations);
53
+ return truncateDetails(json);
54
+ }
55
+ case 'removed': {
56
+ return null;
57
+ }
58
+ }
59
+ }
60
+ export const showDraftAction = createServiceAction({
61
+ name: 'show-draft',
62
+ title: 'Show Draft',
63
+ description: 'Show the current draft session status and staged changes for a project.',
64
+ inputSchema: showDraftInputSchema,
65
+ outputSchema: showDraftOutputSchema,
66
+ handler: async (input, context) => {
67
+ const project = getProjectByNameOrId(context.projects, input.project);
68
+ const session = await loadDraftSession(project.directory);
69
+ if (!session) {
70
+ return {
71
+ hasDraft: false,
72
+ sessionId: null,
73
+ definitionHash: null,
74
+ changes: null,
75
+ };
76
+ }
77
+ // Load the current definition to diff against
78
+ const { container } = await loadEntityServiceContext(input.project, context);
79
+ const currentEntityContext = container.toEntityServiceContext();
80
+ const diff = diffSerializedDefinitions(container.schema, currentEntityContext.serializedDefinition, session.draftDefinition);
81
+ return {
82
+ hasDraft: true,
83
+ sessionId: session.sessionId,
84
+ definitionHash: session.definitionHash,
85
+ changes: diff.entries.map((entry) => ({
86
+ label: entry.label,
87
+ type: entry.type,
88
+ details: formatChangeDetails(entry),
89
+ })),
90
+ };
91
+ },
92
+ writeCliOutput: (output) => {
93
+ if (!output.hasDraft) {
94
+ console.info('No draft session.');
95
+ return;
96
+ }
97
+ console.info(`Draft session: ${output.sessionId}`);
98
+ console.info(`Definition hash: ${output.definitionHash}`);
99
+ if (!output.changes || output.changes.length === 0) {
100
+ console.info('No changes.');
101
+ return;
102
+ }
103
+ console.info('Changes:');
104
+ for (const change of output.changes) {
105
+ const prefix = change.type === 'added' ? '+' : change.type === 'removed' ? '-' : '~';
106
+ console.info(` ${prefix} ${change.label} (${change.type})`);
107
+ if (change.details) {
108
+ const indented = change.details
109
+ .split('\n')
110
+ .map((line) => ` ${line}`)
111
+ .join('\n');
112
+ console.info(indented);
113
+ }
114
+ }
115
+ },
116
+ });
117
+ //# sourceMappingURL=show-draft.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-draft.action.js","sourceRoot":"","sources":["../../../src/actions/definition/show-draft.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ export declare const stageCreateEntityAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
3
+ project: z.ZodString;
4
+ entityTypeName: z.ZodString;
5
+ entityData: z.ZodRecord<z.ZodString, z.ZodUnknown>;
6
+ parentEntityId: z.ZodOptional<z.ZodString>;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ message: z.ZodString;
9
+ issues: z.ZodOptional<z.ZodArray<z.ZodObject<{
10
+ message: z.ZodString;
11
+ entityId: z.ZodOptional<z.ZodString>;
12
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
13
+ severity: z.ZodEnum<{
14
+ error: "error";
15
+ warning: "warning";
16
+ }>;
17
+ }, z.core.$strip>>>;
18
+ }, z.core.$strip>>;
19
+ //# sourceMappingURL=stage-create-entity.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-create-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-create-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;kBA+ClC,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { createEntity } from '@baseplate-dev/project-builder-lib';
2
+ import { z } from 'zod';
3
+ import { createServiceAction } from '#src/actions/types.js';
4
+ import { getOrCreateDraftSession, saveDraftSession } from './draft-session.js';
5
+ import { definitionIssueSchema, validateDraftDefinition, } from './validate-draft.js';
6
+ const stageCreateEntityInputSchema = z.object({
7
+ project: z.string().describe('The name or ID of the project.'),
8
+ entityTypeName: z
9
+ .string()
10
+ .describe('The entity type to create (e.g., "feature", "model").'),
11
+ entityData: z
12
+ .record(z.string(), z.unknown())
13
+ .describe('The entity data to create.'),
14
+ parentEntityId: z
15
+ .string()
16
+ .optional()
17
+ .describe('Required for nested entity types. The ID of the parent entity to add to.'),
18
+ });
19
+ const stageCreateEntityOutputSchema = z.object({
20
+ message: z.string().describe('A summary of the staged change.'),
21
+ issues: z
22
+ .array(definitionIssueSchema)
23
+ .optional()
24
+ .describe('Definition issues found after staging.'),
25
+ });
26
+ export const stageCreateEntityAction = createServiceAction({
27
+ name: 'stage-create-entity',
28
+ title: 'Stage Create Entity',
29
+ description: 'Stage a new entity creation in the draft session. Changes are not persisted until commit-draft is called.',
30
+ inputSchema: stageCreateEntityInputSchema,
31
+ outputSchema: stageCreateEntityOutputSchema,
32
+ handler: async (input, context) => {
33
+ const { session, entityContext, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
34
+ const newDefinition = createEntity({
35
+ entityTypeName: input.entityTypeName,
36
+ entityData: input.entityData,
37
+ parentEntityId: input.parentEntityId,
38
+ }, entityContext);
39
+ session.draftDefinition = newDefinition;
40
+ const { errors, warnings } = validateDraftDefinition(newDefinition, parserContext);
41
+ if (errors.length > 0) {
42
+ const messages = errors.map((e) => e.message).join('; ');
43
+ throw new Error(`Staging blocked by definition errors: ${messages}`);
44
+ }
45
+ await saveDraftSession(projectDirectory, session);
46
+ return {
47
+ message: `Staged creation of ${input.entityTypeName} entity. Use commit-draft to persist.`,
48
+ issues: warnings.length > 0 ? warnings : undefined,
49
+ };
50
+ },
51
+ writeCliOutput: (output) => {
52
+ console.info(`✓ ${output.message}`);
53
+ if (output.issues) {
54
+ for (const issue of output.issues) {
55
+ console.warn(` ⚠ ${issue.message}`);
56
+ }
57
+ }
58
+ },
59
+ });
60
+ //# sourceMappingURL=stage-create-entity.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-create-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-create-entity.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export declare const stageDeleteEntityAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
3
+ project: z.ZodString;
4
+ entityTypeName: z.ZodString;
5
+ entityId: z.ZodString;
6
+ }, z.core.$strip>, z.ZodObject<{
7
+ message: z.ZodString;
8
+ issues: z.ZodOptional<z.ZodArray<z.ZodObject<{
9
+ message: z.ZodString;
10
+ entityId: z.ZodOptional<z.ZodString>;
11
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
12
+ severity: z.ZodEnum<{
13
+ error: "error";
14
+ warning: "warning";
15
+ }>;
16
+ }, z.core.$strip>>>;
17
+ }, z.core.$strip>>;
18
+ //# sourceMappingURL=stage-delete-entity.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-delete-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-delete-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA4BxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;kBA8ClC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { deleteEntity } from '@baseplate-dev/project-builder-lib';
2
+ import { z } from 'zod';
3
+ import { createServiceAction } from '#src/actions/types.js';
4
+ import { getOrCreateDraftSession, saveDraftSession } from './draft-session.js';
5
+ import { definitionIssueSchema, validateDraftDefinition, } from './validate-draft.js';
6
+ const stageDeleteEntityInputSchema = z.object({
7
+ project: z.string().describe('The name or ID of the project.'),
8
+ entityTypeName: z
9
+ .string()
10
+ .describe('The entity type being deleted (e.g., "feature", "model").'),
11
+ entityId: z
12
+ .string()
13
+ .describe('The ID of the entity to delete (e.g., "model:abc123").'),
14
+ });
15
+ const stageDeleteEntityOutputSchema = z.object({
16
+ message: z.string().describe('A summary of the staged change.'),
17
+ issues: z
18
+ .array(definitionIssueSchema)
19
+ .optional()
20
+ .describe('Definition issues found after staging.'),
21
+ });
22
+ export const stageDeleteEntityAction = createServiceAction({
23
+ name: 'stage-delete-entity',
24
+ title: 'Stage Delete Entity',
25
+ description: 'Stage an entity deletion in the draft session. Changes are not persisted until commit-draft is called.',
26
+ inputSchema: stageDeleteEntityInputSchema,
27
+ outputSchema: stageDeleteEntityOutputSchema,
28
+ handler: async (input, context) => {
29
+ const { session, entityContext, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
30
+ const newDefinition = deleteEntity({
31
+ entityTypeName: input.entityTypeName,
32
+ entityId: input.entityId,
33
+ }, entityContext);
34
+ session.draftDefinition = newDefinition;
35
+ const { errors, warnings } = validateDraftDefinition(newDefinition, parserContext);
36
+ if (errors.length > 0) {
37
+ const messages = errors.map((e) => e.message).join('; ');
38
+ throw new Error(`Staging blocked by definition errors: ${messages}`);
39
+ }
40
+ await saveDraftSession(projectDirectory, session);
41
+ return {
42
+ message: `Staged deletion of ${input.entityTypeName} entity "${input.entityId}". Use commit-draft to persist.`,
43
+ issues: warnings.length > 0 ? warnings : undefined,
44
+ };
45
+ },
46
+ writeCliOutput: (output) => {
47
+ console.info(`✓ ${output.message}`);
48
+ if (output.issues) {
49
+ for (const issue of output.issues) {
50
+ console.warn(` ⚠ ${issue.message}`);
51
+ }
52
+ }
53
+ },
54
+ });
55
+ //# sourceMappingURL=stage-delete-entity.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-delete-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-delete-entity.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ export declare const stageUpdateEntityAction: import("#src/actions/types.js").ServiceAction<z.ZodObject<{
3
+ project: z.ZodString;
4
+ entityTypeName: z.ZodString;
5
+ entityId: z.ZodString;
6
+ entityData: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ message: z.ZodString;
9
+ issues: z.ZodOptional<z.ZodArray<z.ZodObject<{
10
+ message: z.ZodString;
11
+ entityId: z.ZodOptional<z.ZodString>;
12
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
13
+ severity: z.ZodEnum<{
14
+ error: "error";
15
+ warning: "warning";
16
+ }>;
17
+ }, z.core.$strip>>>;
18
+ }, z.core.$strip>>;
19
+ //# sourceMappingURL=stage-update-entity.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-update-entity.action.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/stage-update-entity.action.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;kBA+ClC,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { updateEntity } from '@baseplate-dev/project-builder-lib';
2
+ import { z } from 'zod';
3
+ import { createServiceAction } from '#src/actions/types.js';
4
+ import { getOrCreateDraftSession, saveDraftSession } from './draft-session.js';
5
+ import { definitionIssueSchema, validateDraftDefinition, } from './validate-draft.js';
6
+ const stageUpdateEntityInputSchema = z.object({
7
+ project: z.string().describe('The name or ID of the project.'),
8
+ entityTypeName: z
9
+ .string()
10
+ .describe('The entity type being updated (e.g., "feature", "model").'),
11
+ entityId: z
12
+ .string()
13
+ .describe('The ID of the entity to update (e.g., "model:abc123").'),
14
+ entityData: z
15
+ .record(z.string(), z.unknown())
16
+ .describe('The full updated entity data.'),
17
+ });
18
+ const stageUpdateEntityOutputSchema = z.object({
19
+ message: z.string().describe('A summary of the staged change.'),
20
+ issues: z
21
+ .array(definitionIssueSchema)
22
+ .optional()
23
+ .describe('Definition issues found after staging.'),
24
+ });
25
+ export const stageUpdateEntityAction = createServiceAction({
26
+ name: 'stage-update-entity',
27
+ title: 'Stage Update Entity',
28
+ description: 'Stage an entity update in the draft session. Changes are not persisted until commit-draft is called.',
29
+ inputSchema: stageUpdateEntityInputSchema,
30
+ outputSchema: stageUpdateEntityOutputSchema,
31
+ handler: async (input, context) => {
32
+ const { session, entityContext, parserContext, projectDirectory } = await getOrCreateDraftSession(input.project, context);
33
+ const newDefinition = updateEntity({
34
+ entityTypeName: input.entityTypeName,
35
+ entityId: input.entityId,
36
+ entityData: input.entityData,
37
+ }, entityContext);
38
+ session.draftDefinition = newDefinition;
39
+ const { errors, warnings } = validateDraftDefinition(newDefinition, parserContext);
40
+ if (errors.length > 0) {
41
+ const messages = errors.map((e) => e.message).join('; ');
42
+ throw new Error(`Staging blocked by definition errors: ${messages}`);
43
+ }
44
+ await saveDraftSession(projectDirectory, session);
45
+ return {
46
+ message: `Staged update of ${input.entityTypeName} entity "${input.entityId}". Use commit-draft to persist.`,
47
+ issues: warnings.length > 0 ? warnings : undefined,
48
+ };
49
+ },
50
+ writeCliOutput: (output) => {
51
+ console.info(`✓ ${output.message}`);
52
+ if (output.issues) {
53
+ for (const issue of output.issues) {
54
+ console.warn(` ⚠ ${issue.message}`);
55
+ }
56
+ }
57
+ },
58
+ });
59
+ //# sourceMappingURL=stage-update-entity.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-update-entity.action.js","sourceRoot":"","sources":["../../../src/actions/definition/stage-update-entity.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { PartitionedIssues, SchemaParserContext } from '@baseplate-dev/project-builder-lib';
2
+ import { z } from 'zod';
3
+ export declare const definitionIssueSchema: z.ZodObject<{
4
+ message: z.ZodString;
5
+ entityId: z.ZodOptional<z.ZodString>;
6
+ path: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
7
+ severity: z.ZodEnum<{
8
+ error: "error";
9
+ warning: "warning";
10
+ }>;
11
+ }, z.core.$strip>;
12
+ /**
13
+ * Validates a draft definition by collecting all definition issues
14
+ * (both field-level and definition-level) and partitioning them by severity.
15
+ */
16
+ export declare function validateDraftDefinition(draftDefinition: Record<string, unknown>, parserContext: SchemaParserContext): PartitionedIssues;
17
+ //# sourceMappingURL=validate-draft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-draft.d.ts","sourceRoot":"","sources":["../../../src/actions/definition/validate-draft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;iBAgBhC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,aAAa,EAAE,mBAAmB,GACjC,iBAAiB,CASnB"}