@powerhousedao/vetra 6.0.0-dev.8 → 6.0.0-dev.80

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 (198) hide show
  1. package/dist/document-models/app-module/actions.d.ts +4 -2
  2. package/dist/document-models/app-module/actions.d.ts.map +1 -1
  3. package/dist/document-models/app-module/hooks.d.ts.map +1 -1
  4. package/dist/document-models/app-module/module.d.ts.map +1 -1
  5. package/dist/document-models/app-module/module.js +1 -0
  6. package/dist/document-models/app-module/src/tests/base-operations.test.js +2 -2
  7. package/dist/document-models/app-module/src/tests/dnd-operations.test.js +1 -1
  8. package/dist/document-models/document-editor/actions.d.ts +4 -2
  9. package/dist/document-models/document-editor/actions.d.ts.map +1 -1
  10. package/dist/document-models/document-editor/hooks.d.ts.map +1 -1
  11. package/dist/document-models/document-editor/module.d.ts.map +1 -1
  12. package/dist/document-models/document-editor/module.js +1 -0
  13. package/dist/document-models/document-editor/src/tests/base-operations.test.js +2 -2
  14. package/dist/document-models/processor-module/actions.d.ts +6 -2
  15. package/dist/document-models/processor-module/actions.d.ts.map +1 -1
  16. package/dist/document-models/processor-module/gen/base-operations/actions.d.ts +10 -2
  17. package/dist/document-models/processor-module/gen/base-operations/actions.d.ts.map +1 -1
  18. package/dist/document-models/processor-module/gen/base-operations/creators.d.ts +4 -2
  19. package/dist/document-models/processor-module/gen/base-operations/creators.d.ts.map +1 -1
  20. package/dist/document-models/processor-module/gen/base-operations/creators.js +3 -1
  21. package/dist/document-models/processor-module/gen/base-operations/operations.d.ts +3 -1
  22. package/dist/document-models/processor-module/gen/base-operations/operations.d.ts.map +1 -1
  23. package/dist/document-models/processor-module/gen/document-model.d.ts.map +1 -1
  24. package/dist/document-models/processor-module/gen/document-model.js +24 -2
  25. package/dist/document-models/processor-module/gen/document-schema.d.ts +3 -0
  26. package/dist/document-models/processor-module/gen/document-schema.d.ts.map +1 -1
  27. package/dist/document-models/processor-module/gen/ph-factories.d.ts.map +1 -1
  28. package/dist/document-models/processor-module/gen/ph-factories.js +1 -0
  29. package/dist/document-models/processor-module/gen/reducer.d.ts.map +1 -1
  30. package/dist/document-models/processor-module/gen/reducer.js +11 -1
  31. package/dist/document-models/processor-module/gen/schema/types.d.ts +7 -0
  32. package/dist/document-models/processor-module/gen/schema/types.d.ts.map +1 -1
  33. package/dist/document-models/processor-module/gen/schema/zod.d.ts +3 -1
  34. package/dist/document-models/processor-module/gen/schema/zod.d.ts.map +1 -1
  35. package/dist/document-models/processor-module/gen/schema/zod.js +11 -0
  36. package/dist/document-models/processor-module/gen/utils.d.ts.map +1 -1
  37. package/dist/document-models/processor-module/gen/utils.js +1 -0
  38. package/dist/document-models/processor-module/hooks.d.ts.map +1 -1
  39. package/dist/document-models/processor-module/module.d.ts.map +1 -1
  40. package/dist/document-models/processor-module/module.js +1 -0
  41. package/dist/document-models/processor-module/src/reducers/base-operations.d.ts.map +1 -1
  42. package/dist/document-models/processor-module/src/reducers/base-operations.js +14 -0
  43. package/dist/document-models/processor-module/src/tests/base-operations.test.js +26 -2
  44. package/dist/document-models/subgraph-module/actions.d.ts +4 -2
  45. package/dist/document-models/subgraph-module/actions.d.ts.map +1 -1
  46. package/dist/document-models/subgraph-module/hooks.d.ts.map +1 -1
  47. package/dist/document-models/subgraph-module/module.d.ts.map +1 -1
  48. package/dist/document-models/subgraph-module/module.js +1 -0
  49. package/dist/document-models/subgraph-module/src/tests/base-operations.test.js +2 -2
  50. package/dist/document-models/vetra-package/actions.d.ts +4 -2
  51. package/dist/document-models/vetra-package/actions.d.ts.map +1 -1
  52. package/dist/document-models/vetra-package/gen/schema/zod.js +7 -7
  53. package/dist/document-models/vetra-package/hooks.d.ts.map +1 -1
  54. package/dist/document-models/vetra-package/module.d.ts.map +1 -1
  55. package/dist/document-models/vetra-package/module.js +1 -0
  56. package/dist/document-models/vetra-package/src/tests/base-operations.test.js +1 -1
  57. package/dist/editors/app-editor/components/AppEditorForm.js +1 -1
  58. package/dist/editors/app-editor/editor.js +1 -1
  59. package/dist/editors/app-editor/editor.test.js +8 -1
  60. package/dist/editors/document-editor/components/DocumentEditorForm.js +1 -1
  61. package/dist/editors/document-editor/editor.js +1 -1
  62. package/dist/editors/processor-editor/components/ProcessorEditorForm.d.ts +4 -0
  63. package/dist/editors/processor-editor/components/ProcessorEditorForm.d.ts.map +1 -1
  64. package/dist/editors/processor-editor/components/ProcessorEditorForm.js +32 -6
  65. package/dist/editors/processor-editor/editor.d.ts.map +1 -1
  66. package/dist/editors/processor-editor/editor.js +7 -1
  67. package/dist/editors/processor-editor/editor.test.js +166 -173
  68. package/dist/editors/subgraph-editor/components/SubgraphEditorForm.js +1 -1
  69. package/dist/editors/subgraph-editor/editor.js +1 -1
  70. package/dist/editors/vetra-drive-app/DriveExplorer.js +1 -1
  71. package/dist/editors/vetra-drive-app/components/DriveHeader.js +1 -1
  72. package/dist/editors/vetra-drive-app/editor.js +1 -1
  73. package/dist/editors/vetra-package/components/MetaForm.js +1 -1
  74. package/dist/editors/vetra-package/editor.js +1 -1
  75. package/dist/processors/codegen/__tests__/codegen-processor-e2e.test.js +66 -42
  76. package/dist/processors/codegen/document-handlers/generators/app-generator.d.ts +4 -0
  77. package/dist/processors/codegen/document-handlers/generators/app-generator.d.ts.map +1 -1
  78. package/dist/processors/codegen/document-handlers/generators/app-generator.js +31 -11
  79. package/dist/processors/codegen/document-handlers/generators/constants.d.ts +1 -1
  80. package/dist/processors/codegen/document-handlers/generators/constants.d.ts.map +1 -1
  81. package/dist/processors/codegen/document-handlers/generators/constants.js +2 -1
  82. package/dist/processors/codegen/document-handlers/generators/document-editor-generator.d.ts +4 -0
  83. package/dist/processors/codegen/document-handlers/generators/document-editor-generator.d.ts.map +1 -1
  84. package/dist/processors/codegen/document-handlers/generators/document-editor-generator.js +30 -10
  85. package/dist/processors/codegen/document-handlers/generators/document-model-generator.d.ts +4 -0
  86. package/dist/processors/codegen/document-handlers/generators/document-model-generator.d.ts.map +1 -1
  87. package/dist/processors/codegen/document-handlers/generators/document-model-generator.js +42 -20
  88. package/dist/processors/codegen/document-handlers/generators/package-generator.d.ts.map +1 -1
  89. package/dist/processors/codegen/document-handlers/generators/package-generator.js +8 -2
  90. package/dist/processors/codegen/document-handlers/generators/processor-generator.d.ts +4 -0
  91. package/dist/processors/codegen/document-handlers/generators/processor-generator.d.ts.map +1 -1
  92. package/dist/processors/codegen/document-handlers/generators/processor-generator.js +59 -10
  93. package/dist/processors/codegen/document-handlers/generators/subgraph-generator.d.ts +4 -0
  94. package/dist/processors/codegen/document-handlers/generators/subgraph-generator.d.ts.map +1 -1
  95. package/dist/processors/codegen/document-handlers/generators/subgraph-generator.js +27 -7
  96. package/dist/processors/codegen/document-handlers/generators/utils.d.ts +7 -0
  97. package/dist/processors/codegen/document-handlers/generators/utils.d.ts.map +1 -1
  98. package/dist/processors/codegen/document-handlers/generators/utils.js +18 -1
  99. package/dist/processors/codegen/factory.d.ts +1 -1
  100. package/dist/processors/codegen/factory.d.ts.map +1 -1
  101. package/dist/processors/codegen/factory.legacy.d.ts +4 -0
  102. package/dist/processors/codegen/factory.legacy.d.ts.map +1 -0
  103. package/dist/processors/codegen/factory.legacy.js +53 -0
  104. package/dist/processors/codegen/index.d.ts +2 -2
  105. package/dist/processors/codegen/index.d.ts.map +1 -1
  106. package/dist/processors/codegen/index.js +22 -21
  107. package/dist/processors/codegen/index.legacy.d.ts +11 -0
  108. package/dist/processors/codegen/index.legacy.d.ts.map +1 -0
  109. package/dist/processors/codegen/index.legacy.js +57 -0
  110. package/dist/processors/codegen/logger.d.ts.map +1 -1
  111. package/dist/processors/codegen/logger.js +18 -7
  112. package/dist/processors/factory.d.ts +3 -4
  113. package/dist/processors/factory.d.ts.map +1 -1
  114. package/dist/processors/factory.js +5 -4
  115. package/dist/processors/factory.legacy.d.ts +7 -0
  116. package/dist/processors/factory.legacy.d.ts.map +1 -0
  117. package/dist/processors/factory.legacy.js +19 -0
  118. package/dist/processors/index.d.ts +8 -2
  119. package/dist/processors/index.d.ts.map +1 -1
  120. package/dist/processors/index.js +10 -2
  121. package/dist/processors/vetra-read-model/factory.d.ts +2 -2
  122. package/dist/processors/vetra-read-model/factory.d.ts.map +1 -1
  123. package/dist/processors/vetra-read-model/factory.js +13 -16
  124. package/dist/processors/vetra-read-model/factory.legacy.d.ts +5 -0
  125. package/dist/processors/vetra-read-model/factory.legacy.d.ts.map +1 -0
  126. package/dist/processors/vetra-read-model/factory.legacy.js +24 -0
  127. package/dist/processors/vetra-read-model/index.d.ts +6 -5
  128. package/dist/processors/vetra-read-model/index.d.ts.map +1 -1
  129. package/dist/processors/vetra-read-model/index.js +20 -37
  130. package/dist/processors/vetra-read-model/index.legacy.d.ts +9 -0
  131. package/dist/processors/vetra-read-model/index.legacy.d.ts.map +1 -0
  132. package/dist/processors/vetra-read-model/index.legacy.js +75 -0
  133. package/dist/processors/vetra-read-model/migrations.d.ts +3 -3
  134. package/dist/processors/vetra-read-model/migrations.d.ts.map +1 -1
  135. package/dist/style.css +13680 -81
  136. package/dist/tsconfig.tsbuildinfo +1 -1
  137. package/dist/vite.config.d.ts.map +1 -1
  138. package/dist/vite.config.js +1 -13
  139. package/dist/vitest.config.d.ts.map +1 -1
  140. package/dist/vitest.config.js +1 -0
  141. package/package.json +48 -63
  142. package/dist/subgraphs/app-module/index.d.ts +0 -11
  143. package/dist/subgraphs/app-module/index.d.ts.map +0 -1
  144. package/dist/subgraphs/app-module/index.js +0 -11
  145. package/dist/subgraphs/app-module/resolvers.d.ts +0 -3
  146. package/dist/subgraphs/app-module/resolvers.d.ts.map +0 -1
  147. package/dist/subgraphs/app-module/resolvers.js +0 -144
  148. package/dist/subgraphs/app-module/schema.d.ts +0 -3
  149. package/dist/subgraphs/app-module/schema.d.ts.map +0 -1
  150. package/dist/subgraphs/app-module/schema.js +0 -78
  151. package/dist/subgraphs/document-editor/index.d.ts +0 -11
  152. package/dist/subgraphs/document-editor/index.d.ts.map +0 -1
  153. package/dist/subgraphs/document-editor/index.js +0 -11
  154. package/dist/subgraphs/document-editor/resolvers.d.ts +0 -3
  155. package/dist/subgraphs/document-editor/resolvers.d.ts.map +0 -1
  156. package/dist/subgraphs/document-editor/resolvers.js +0 -120
  157. package/dist/subgraphs/document-editor/schema.d.ts +0 -3
  158. package/dist/subgraphs/document-editor/schema.d.ts.map +0 -1
  159. package/dist/subgraphs/document-editor/schema.js +0 -59
  160. package/dist/subgraphs/index.d.ts +0 -7
  161. package/dist/subgraphs/index.d.ts.map +0 -1
  162. package/dist/subgraphs/index.js +0 -6
  163. package/dist/subgraphs/processor-module/index.d.ts +0 -10
  164. package/dist/subgraphs/processor-module/index.d.ts.map +0 -1
  165. package/dist/subgraphs/processor-module/index.js +0 -11
  166. package/dist/subgraphs/processor-module/resolvers.d.ts +0 -3
  167. package/dist/subgraphs/processor-module/resolvers.d.ts.map +0 -1
  168. package/dist/subgraphs/processor-module/resolvers.js +0 -132
  169. package/dist/subgraphs/processor-module/schema.d.ts +0 -3
  170. package/dist/subgraphs/processor-module/schema.d.ts.map +0 -1
  171. package/dist/subgraphs/processor-module/schema.js +0 -67
  172. package/dist/subgraphs/subgraph-module/index.d.ts +0 -10
  173. package/dist/subgraphs/subgraph-module/index.d.ts.map +0 -1
  174. package/dist/subgraphs/subgraph-module/index.js +0 -11
  175. package/dist/subgraphs/subgraph-module/resolvers.d.ts +0 -3
  176. package/dist/subgraphs/subgraph-module/resolvers.d.ts.map +0 -1
  177. package/dist/subgraphs/subgraph-module/resolvers.js +0 -96
  178. package/dist/subgraphs/subgraph-module/schema.d.ts +0 -3
  179. package/dist/subgraphs/subgraph-module/schema.d.ts.map +0 -1
  180. package/dist/subgraphs/subgraph-module/schema.js +0 -42
  181. package/dist/subgraphs/vetra-package/index.d.ts +0 -10
  182. package/dist/subgraphs/vetra-package/index.d.ts.map +0 -1
  183. package/dist/subgraphs/vetra-package/index.js +0 -11
  184. package/dist/subgraphs/vetra-package/resolvers.d.ts +0 -3
  185. package/dist/subgraphs/vetra-package/resolvers.d.ts.map +0 -1
  186. package/dist/subgraphs/vetra-package/resolvers.js +0 -192
  187. package/dist/subgraphs/vetra-package/schema.d.ts +0 -3
  188. package/dist/subgraphs/vetra-package/schema.d.ts.map +0 -1
  189. package/dist/subgraphs/vetra-package/schema.js +0 -108
  190. package/dist/subgraphs/vetra-read-model/index.d.ts +0 -8
  191. package/dist/subgraphs/vetra-read-model/index.d.ts.map +0 -1
  192. package/dist/subgraphs/vetra-read-model/index.js +0 -8
  193. package/dist/subgraphs/vetra-read-model/resolvers.d.ts +0 -3
  194. package/dist/subgraphs/vetra-read-model/resolvers.d.ts.map +0 -1
  195. package/dist/subgraphs/vetra-read-model/resolvers.js +0 -36
  196. package/dist/subgraphs/vetra-read-model/schema.d.ts +0 -3
  197. package/dist/subgraphs/vetra-read-model/schema.d.ts.map +0 -1
  198. package/dist/subgraphs/vetra-read-model/schema.js +0 -25
@@ -2,12 +2,24 @@ import { generateFromDocument, generateManifest, validateDocumentModelState, } f
2
2
  import { logger } from "../../logger.js";
3
3
  import { BaseDocumentGen } from "../base-document-gen.js";
4
4
  import { USE_TS_MORPH, USE_VERSIONING } from "./constants.js";
5
- import { backupDocument } from "./utils.js";
5
+ import { minimalBackupDocument } from "./utils.js";
6
6
  /**
7
7
  * Generator for document model documents
8
8
  */
9
9
  export class DocumentModelGenerator extends BaseDocumentGen {
10
10
  supportedDocumentTypes = "powerhouse/document-model";
11
+ /**
12
+ * Extract the global state from the full document state
13
+ */
14
+ extractGlobalState(strand) {
15
+ const fullState = strand.state;
16
+ if (!fullState) {
17
+ return undefined;
18
+ }
19
+ // The state is the full document state with {auth, document, local, global, header}
20
+ // We need the global property which contains the DocumentModelGlobalState
21
+ return fullState.global;
22
+ }
11
23
  /**
12
24
  * Validate if this document model strand should be processed
13
25
  */
@@ -16,58 +28,68 @@ export class DocumentModelGenerator extends BaseDocumentGen {
16
28
  if (!super.shouldProcess(strand)) {
17
29
  return false;
18
30
  }
19
- // Validate document model state
20
- const state = strand.state;
21
- if (!state) {
22
- logger.debug(`>>> No state found for document model: ${strand.documentId}`);
31
+ // Extract the global state from the full document state
32
+ const globalState = this.extractGlobalState(strand);
33
+ if (!globalState) {
34
+ logger.debug(`>>> No global state found for document model: ${strand.documentId}`);
23
35
  return false;
24
36
  }
25
- const validationResult = validateDocumentModelState(state);
37
+ const validationResult = validateDocumentModelState(globalState);
26
38
  if (!validationResult.isValid) {
27
39
  const errorList = validationResult.errors
28
40
  .map((error) => ` - ${error}`)
29
41
  .join("\n");
30
- logger.info(`⚠️ Skipped code generation for '${state.name || strand.documentId}' due to validation errors:\n${errorList}`);
42
+ logger.info(`⚠️ Skipped code generation for '${globalState.name || strand.documentId}' due to validation errors:\n${errorList}`);
31
43
  return false;
32
44
  }
33
- logger.info(`Document model ${state.name} is valid, proceeding with code generation`);
45
+ logger.info(`Document model ${globalState.name} is valid, proceeding with code generation`);
34
46
  return true;
35
47
  }
36
48
  async generate(strand) {
37
- const state = strand.state;
49
+ const globalState = this.extractGlobalState(strand);
50
+ if (!globalState) {
51
+ logger.error(`❌ No global state found for document model: ${strand.documentId}`);
52
+ return;
53
+ }
38
54
  // Validation is already done in shouldProcess, so we can proceed directly
39
- logger.debug(`🔄 Starting code generation for document model: ${state.name}`);
55
+ logger.debug(`🔄 Starting code generation for document model: ${globalState.name}`);
40
56
  try {
41
57
  await generateFromDocument({
42
- documentModelState: state,
58
+ documentModelState: globalState,
43
59
  config: this.config.PH_CONFIG,
44
60
  useTsMorph: USE_TS_MORPH,
45
61
  useVersioning: USE_VERSIONING,
46
62
  });
47
- logger.info(`✅ Code generation completed successfully for: ${state.name}`);
63
+ logger.info(`✅ Code generation completed successfully for: ${globalState.name}`);
48
64
  // Update the manifest with the new document model
49
65
  try {
50
- logger.debug(`🔄 Updating manifest with document model: ${state.name} (ID: ${state.id})`);
66
+ logger.debug(`🔄 Updating manifest with document model: ${globalState.name} (ID: ${globalState.id})`);
51
67
  generateManifest({
52
68
  documentModels: [
53
69
  {
54
- id: state.id,
55
- name: state.name,
70
+ id: globalState.id,
71
+ name: globalState.name,
56
72
  },
57
73
  ],
58
74
  }, this.config.CURRENT_WORKING_DIR);
59
- logger.debug(`✅ Manifest updated successfully for document model: ${state.name}`);
75
+ logger.debug(`✅ Manifest updated successfully for document model: ${globalState.name}`);
60
76
  }
61
77
  catch (manifestError) {
62
- logger.error(`⚠️ Failed to update manifest for document model ${state.name}:`, manifestError);
78
+ logger.error(`⚠️ Failed to update manifest for document model ${globalState.name}:`, manifestError);
63
79
  // Don't throw here - code generation was successful
64
80
  }
65
81
  // Backup the document
66
- const extension = state.extension?.replace(/^\.+|\.+$/g, "") || "";
67
- await backupDocument(strand.document, this.config.CURRENT_WORKING_DIR, extension, state.name);
82
+ const extension = globalState.extension?.replace(/^\.+|\.+$/g, "") || "";
83
+ await minimalBackupDocument({
84
+ documentId: strand.documentId,
85
+ documentType: strand.documentType,
86
+ branch: strand.branch,
87
+ state: strand.state,
88
+ name: globalState.name,
89
+ }, this.config.CURRENT_WORKING_DIR, extension);
68
90
  }
69
91
  catch (error) {
70
- logger.error(`❌ Error during code generation for ${state.name}:`, error);
92
+ logger.error(`❌ Error during code generation for ${globalState.name}:`, error);
71
93
  // Don't throw - let codegen continue with other documents
72
94
  return;
73
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"package-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/package-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,sBAAsB,wBAAwB;IAEvD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IAenD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BjE"}
1
+ {"version":3,"file":"package-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/package-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAMhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,QAAQ,CAAC,sBAAsB,wBAAwB;IAEvD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IAenD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BjE"}
@@ -1,7 +1,7 @@
1
1
  import { generateManifest } from "@powerhousedao/codegen";
2
2
  import { logger } from "../../logger.js";
3
3
  import { BaseDocumentGen } from "../base-document-gen.js";
4
- import { backupDocument } from "./utils.js";
4
+ import { minimalBackupDocument } from "./utils.js";
5
5
  /**
6
6
  * Generator for package documents
7
7
  */
@@ -36,6 +36,12 @@ export class PackageGenerator extends BaseDocumentGen {
36
36
  }, this.config.CURRENT_WORKING_DIR);
37
37
  logger.info("✅ Manifest generated successfully");
38
38
  // Backup the document
39
- await backupDocument(strand.document, this.config.CURRENT_WORKING_DIR, undefined, "vetra-package");
39
+ await minimalBackupDocument({
40
+ documentId: strand.documentId,
41
+ documentType: strand.documentType,
42
+ branch: strand.branch,
43
+ state: strand.state,
44
+ name: "vetra-package",
45
+ }, this.config.CURRENT_WORKING_DIR);
40
46
  }
41
47
  }
@@ -5,6 +5,10 @@ import { BaseDocumentGen } from "../base-document-gen.js";
5
5
  */
6
6
  export declare class ProcessorGenerator extends BaseDocumentGen {
7
7
  readonly supportedDocumentTypes = "powerhouse/processor";
8
+ /**
9
+ * Extract the global state from the full document state
10
+ */
11
+ private extractGlobalState;
8
12
  /**
9
13
  * Validate if this processor strand should be processed
10
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"processor-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/processor-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,QAAQ,CAAC,sBAAsB,0BAA0B;IAEzD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IAsCnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8EjE"}
1
+ {"version":3,"file":"processor-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/processor-generator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAMhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,QAAQ,CAAC,sBAAsB,0BAA0B;IAEzD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IA2CnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAkGjE"}
@@ -1,12 +1,24 @@
1
1
  import { generateProcessor } from "@powerhousedao/codegen";
2
+ import { PROCESSOR_APPS, } from "@powerhousedao/shared/processors";
2
3
  import { logger } from "../../logger.js";
3
4
  import { BaseDocumentGen } from "../base-document-gen.js";
4
- import { backupDocument } from "./utils.js";
5
+ import { USE_TS_MORPH } from "./constants.js";
6
+ import { minimalBackupDocument } from "./utils.js";
5
7
  /**
6
8
  * Generator for processor documents
7
9
  */
8
10
  export class ProcessorGenerator extends BaseDocumentGen {
9
11
  supportedDocumentTypes = "powerhouse/processor";
12
+ /**
13
+ * Extract the global state from the full document state
14
+ */
15
+ extractGlobalState(strand) {
16
+ const fullState = strand.state;
17
+ if (!fullState) {
18
+ return undefined;
19
+ }
20
+ return fullState.global;
21
+ }
10
22
  /**
11
23
  * Validate if this processor strand should be processed
12
24
  */
@@ -15,36 +27,45 @@ export class ProcessorGenerator extends BaseDocumentGen {
15
27
  if (!super.shouldProcess(strand)) {
16
28
  return false;
17
29
  }
18
- const state = strand.state;
30
+ const state = this.extractGlobalState(strand);
19
31
  if (!state) {
20
- logger.debug(`>>> No state found for processor: ${strand.documentId}`);
32
+ logger.debug(`No state found for processor: ${strand.documentId}`);
21
33
  return false;
22
34
  }
23
35
  // Check if we have a valid processor name, type, document types, and it's confirmed
24
36
  if (!state.name) {
25
- logger.debug(`>>> No name found for processor: ${strand.documentId}`);
37
+ logger.debug(`No name found for processor: ${strand.documentId}`);
26
38
  return false;
27
39
  }
28
40
  if (!state.type) {
29
- logger.debug(`>>> No type found for processor: ${state.name}`);
41
+ logger.debug(`No type found for processor: ${state.name}`);
30
42
  return false;
31
43
  }
32
44
  if (!state.documentTypes || state.documentTypes.length === 0) {
33
- logger.debug(`>>> No document types found for processor: ${state.name}`);
45
+ logger.debug(`No document types found for processor: ${state.name}`);
46
+ return false;
47
+ }
48
+ if (!state.processorApps || state.processorApps.length === 0) {
49
+ logger.debug(`No processor apps found for processor: ${state.name}`);
34
50
  return false;
35
51
  }
36
52
  if (state.status !== "CONFIRMED") {
37
- logger.debug(`>>> Processor not confirmed: ${state.name} (status: ${state.status})`);
53
+ logger.debug(`Processor not confirmed: ${state.name} (status: ${state.status})`);
38
54
  return false;
39
55
  }
40
56
  return true;
41
57
  }
42
58
  async generate(strand) {
43
- const state = strand.state;
59
+ const state = this.extractGlobalState(strand);
60
+ if (!state) {
61
+ logger.error(`No state found for processor: ${strand.documentId}`);
62
+ return;
63
+ }
44
64
  // Check if we have a valid processor name, type, document types, and it's confirmed
45
65
  if (state.name &&
46
66
  state.type &&
47
67
  state.documentTypes.length > 0 &&
68
+ state.processorApps.length > 0 &&
48
69
  state.status === "CONFIRMED") {
49
70
  logger.info(`🔄 Starting processor generation for: ${state.name}`);
50
71
  try {
@@ -62,11 +83,29 @@ export class ProcessorGenerator extends BaseDocumentGen {
62
83
  }
63
84
  // Extract document types from the state
64
85
  const documentTypes = state.documentTypes.map((dt) => dt.documentType);
86
+ const processorApps = state.processorApps;
87
+ if (!isProcessorApps(processorApps)) {
88
+ logger.error(`❌ Unsupported processor apps: ${processorApps.join(", ")}`);
89
+ return;
90
+ }
65
91
  // Generate the processor using the codegen function
66
- await generateProcessor(state.name, processorType, documentTypes, this.config.PH_CONFIG);
92
+ await generateProcessor({
93
+ processorName: state.name,
94
+ processorType,
95
+ documentTypes,
96
+ skipFormat: this.config.PH_CONFIG.skipFormat,
97
+ useTsMorph: USE_TS_MORPH,
98
+ processorApps,
99
+ });
67
100
  logger.info(`✅ Processor generation completed successfully for: ${state.name}`);
68
101
  // Backup the document
69
- await backupDocument(strand.document, this.config.CURRENT_WORKING_DIR, undefined, state.name);
102
+ await minimalBackupDocument({
103
+ documentId: strand.documentId,
104
+ documentType: strand.documentType,
105
+ branch: strand.branch,
106
+ state: strand.state,
107
+ name: state.name,
108
+ }, this.config.CURRENT_WORKING_DIR);
70
109
  }
71
110
  catch (error) {
72
111
  logger.error(`❌ Error during processor generation for ${state.name}:`, error);
@@ -95,3 +134,13 @@ export class ProcessorGenerator extends BaseDocumentGen {
95
134
  }
96
135
  }
97
136
  }
137
+ function isProcessorApps(input) {
138
+ if (input.length === 0)
139
+ return false;
140
+ if (new Set(input).size !== input.length) {
141
+ return false;
142
+ }
143
+ if (!input.every((i) => PROCESSOR_APPS.includes(i)))
144
+ return false;
145
+ return true;
146
+ }
@@ -5,6 +5,10 @@ import { BaseDocumentGen } from "../base-document-gen.js";
5
5
  */
6
6
  export declare class SubgraphGenerator extends BaseDocumentGen {
7
7
  readonly supportedDocumentTypes = "powerhouse/subgraph";
8
+ /**
9
+ * Extract the global state from the full document state
10
+ */
11
+ private extractGlobalState;
8
12
  /**
9
13
  * Validate if this subgraph strand should be processed
10
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/subgraph-generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,sBAAsB,yBAAyB;IAExD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IA4BnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwEjE"}
1
+ {"version":3,"file":"subgraph-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/subgraph-generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAMhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,QAAQ,CAAC,sBAAsB,yBAAyB;IAExD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IA4BnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgFjE"}
@@ -2,12 +2,22 @@ import { generateManifest, generateSubgraph } from "@powerhousedao/codegen";
2
2
  import { kebabCase } from "change-case";
3
3
  import { logger } from "../../logger.js";
4
4
  import { BaseDocumentGen } from "../base-document-gen.js";
5
- import { backupDocument } from "./utils.js";
5
+ import { minimalBackupDocument } from "./utils.js";
6
6
  /**
7
7
  * Generator for subgraph documents
8
8
  */
9
9
  export class SubgraphGenerator extends BaseDocumentGen {
10
10
  supportedDocumentTypes = "powerhouse/subgraph";
11
+ /**
12
+ * Extract the global state from the full document state
13
+ */
14
+ extractGlobalState(strand) {
15
+ const fullState = strand.state;
16
+ if (!fullState) {
17
+ return undefined;
18
+ }
19
+ return fullState.global;
20
+ }
11
21
  /**
12
22
  * Validate if this subgraph strand should be processed
13
23
  */
@@ -16,24 +26,28 @@ export class SubgraphGenerator extends BaseDocumentGen {
16
26
  if (!super.shouldProcess(strand)) {
17
27
  return false;
18
28
  }
19
- const state = strand.state;
29
+ const state = this.extractGlobalState(strand);
20
30
  if (!state) {
21
- logger.debug(`>>> No state found for subgraph: ${strand.documentId}`);
31
+ logger.debug(`No state found for subgraph: ${strand.documentId}`);
22
32
  return false;
23
33
  }
24
34
  // Check if we have a valid subgraph name and it's confirmed
25
35
  if (!state.name) {
26
- logger.debug(`>>> No name found for subgraph: ${strand.documentId}`);
36
+ logger.debug(`No name found for subgraph: ${strand.documentId}`);
27
37
  return false;
28
38
  }
29
39
  if (state.status !== "CONFIRMED") {
30
- logger.debug(`>>> Subgraph not confirmed: ${state.name} (status: ${state.status})`);
40
+ logger.debug(`Subgraph not confirmed: ${state.name} (status: ${state.status})`);
31
41
  return false;
32
42
  }
33
43
  return true;
34
44
  }
35
45
  async generate(strand) {
36
- const state = strand.state;
46
+ const state = this.extractGlobalState(strand);
47
+ if (!state) {
48
+ logger.error(`No state found for subgraph: ${strand.documentId}`);
49
+ return;
50
+ }
37
51
  // Check if we have a valid subgraph name and it's confirmed
38
52
  if (state.name && state.status === "CONFIRMED") {
39
53
  logger.info(`🔄 Starting subgraph generation for: ${state.name}`);
@@ -61,7 +75,13 @@ export class SubgraphGenerator extends BaseDocumentGen {
61
75
  // Don't throw here - subgraph generation was successful
62
76
  }
63
77
  // Backup the document
64
- await backupDocument(strand.document, this.config.CURRENT_WORKING_DIR, undefined, state.name);
78
+ await minimalBackupDocument({
79
+ documentId: strand.documentId,
80
+ documentType: strand.documentType,
81
+ branch: strand.branch,
82
+ state: strand.state,
83
+ name: state.name,
84
+ }, this.config.CURRENT_WORKING_DIR);
65
85
  }
66
86
  catch (error) {
67
87
  logger.error(`❌ Error during subgraph generation for ${state.name}:`, error);
@@ -1,4 +1,6 @@
1
1
  import type { PHDocument } from "document-model";
2
+ import { type MinimalBackupData } from "document-model/node";
3
+ export type { MinimalBackupData };
2
4
  /**
3
5
  * Exports a document to the backup directory.
4
6
  * Creates the backup directory if it doesn't exist.
@@ -10,4 +12,9 @@ import type { PHDocument } from "document-model";
10
12
  * @returns Promise resolving to the backup file path, or undefined if backup failed
11
13
  */
12
14
  export declare function backupDocument(document: PHDocument, workingDir: string, extension?: string, name?: string): Promise<string | undefined>;
15
+ /**
16
+ * Creates a minimal backup of a document from strand data.
17
+ * Used when the full document is not available (e.g., in onOperations handler).
18
+ */
19
+ export declare function minimalBackupDocument(data: MinimalBackupData, workingDir: string, extension?: string): Promise<string | undefined>;
13
20
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQjD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAW,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB7B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAK7B,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAIlC;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,MAAW,EACtB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB7B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B"}
@@ -1,4 +1,4 @@
1
- import { baseSaveToFile } from "document-model/node";
1
+ import { baseMinimalSaveToFile, baseSaveToFile, } from "document-model/node";
2
2
  import { mkdir } from "node:fs/promises";
3
3
  import { join } from "node:path";
4
4
  import { logger } from "../../logger.js";
@@ -27,3 +27,20 @@ export async function backupDocument(document, workingDir, extension = "", name)
27
27
  return undefined;
28
28
  }
29
29
  }
30
+ /**
31
+ * Creates a minimal backup of a document from strand data.
32
+ * Used when the full document is not available (e.g., in onOperations handler).
33
+ */
34
+ export async function minimalBackupDocument(data, workingDir, extension) {
35
+ try {
36
+ const backupPath = join(workingDir, BACKUP_FOLDER);
37
+ await mkdir(backupPath, { recursive: true });
38
+ const filePath = await baseMinimalSaveToFile(data, backupPath, extension ?? "");
39
+ logger.debug(`Document backed up to: ${filePath}`);
40
+ return filePath;
41
+ }
42
+ catch (error) {
43
+ logger.warn(`Failed to backup document "${data.name}":`, error);
44
+ return undefined;
45
+ }
46
+ }
@@ -1,4 +1,4 @@
1
- import type { IProcessorHostModule, ProcessorRecord } from "document-drive";
1
+ import type { IProcessorHostModule, ProcessorRecord } from "@powerhousedao/reactor-browser";
2
2
  import type { PHDocumentHeader } from "document-model";
3
3
  export declare const codegenProcessorFactory: (module: IProcessorHostModule) => (driveHeader: PHDocumentHeader) => ProcessorRecord[];
4
4
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../processors/codegen/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgCvD,eAAO,MAAM,uBAAuB,GACjC,QAAQ,oBAAoB,MAC5B,aAAa,gBAAgB,KAAG,eAAe,EAsC/C,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../processors/codegen/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgCvD,eAAO,MAAM,uBAAuB,GACjC,QAAQ,oBAAoB,MAC5B,aAAa,gBAAgB,KAAG,eAAe,EAsC/C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { IProcessorHostModuleLegacy, ProcessorRecordLegacy } from "document-drive";
2
+ import type { PHDocumentHeader } from "document-model";
3
+ export declare const codegenProcessorFactoryLegacy: (module: IProcessorHostModuleLegacy) => (driveHeader: PHDocumentHeader) => ProcessorRecordLegacy[];
4
+ //# sourceMappingURL=factory.legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.legacy.d.ts","sourceRoot":"","sources":["../../../processors/codegen/factory.legacy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgCvD,eAAO,MAAM,6BAA6B,GACvC,QAAQ,0BAA0B,MAClC,aAAa,gBAAgB,KAAG,qBAAqB,EAsCrD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { VETRA_PROCESSOR_CONFIG_KEY } from "@powerhousedao/config";
2
+ import { CodegenProcessorLegacy } from "./index.legacy.js";
3
+ import { logger } from "./logger.js";
4
+ /**
5
+ * Determines if a drive header matches the Vetra drive criteria.
6
+ * @param driveHeader - The drive header to check
7
+ * @param explicitDriveId - Optional explicit drive ID from config (if set, uses exact match)
8
+ * @returns true if the drive is a Vetra drive, false otherwise
9
+ */
10
+ function isDriveVetra(driveHeader, driveIdFromConfig) {
11
+ // If explicit drive ID is configured, use exact match
12
+ if (driveIdFromConfig) {
13
+ return (driveHeader.slug === driveIdFromConfig ||
14
+ driveHeader.id === driveIdFromConfig);
15
+ }
16
+ // Otherwise, check if slug/id matches Vetra pattern
17
+ // Matches "vetra" exactly or IDs starting with "vetra-" (case-insensitive)
18
+ const matchesPattern = (identifier) => {
19
+ const lower = identifier.toLowerCase();
20
+ return lower === "vetra" || lower.startsWith("vetra-");
21
+ };
22
+ return matchesPattern(driveHeader.slug) || matchesPattern(driveHeader.id);
23
+ }
24
+ export const codegenProcessorFactoryLegacy = (module) => (driveHeader) => {
25
+ // Create the processor
26
+ const processorsConfig = module.config ?? new Map();
27
+ const vetraConfig = processorsConfig.get(VETRA_PROCESSOR_CONFIG_KEY);
28
+ // Check if this drive should use the Vetra processor
29
+ if (!isDriveVetra(driveHeader, vetraConfig?.driveId)) {
30
+ logger.info(`Drive ${driveHeader.slug} is not a Vetra drive, skipping codegen processor`);
31
+ return [];
32
+ }
33
+ logger.info(`Drive ${driveHeader.slug} is a Vetra drive, using codegen processor (legacy)`);
34
+ const processor = new CodegenProcessorLegacy(vetraConfig?.interactive);
35
+ return [
36
+ {
37
+ processor,
38
+ filter: {
39
+ branch: ["main"],
40
+ documentId: ["*"],
41
+ documentType: [
42
+ "powerhouse/document-model",
43
+ "powerhouse/package",
44
+ "powerhouse/document-editor",
45
+ "powerhouse/subgraph",
46
+ "powerhouse/processor",
47
+ "powerhouse/app",
48
+ ],
49
+ scope: ["global"],
50
+ },
51
+ },
52
+ ];
53
+ };
@@ -1,8 +1,8 @@
1
- import type { InternalTransmitterUpdate, IProcessor } from "document-drive";
1
+ import type { IProcessor, OperationWithContext } from "@powerhousedao/reactor-browser";
2
2
  export declare class CodegenProcessor implements IProcessor {
3
3
  private manager;
4
4
  constructor(interactiveMode?: boolean);
5
- onStrands(strands: InternalTransmitterUpdate[]): Promise<void>;
5
+ onOperations(operations: OperationWithContext[]): Promise<void>;
6
6
  onDisconnect(): Promise<void>;
7
7
  setInteractiveMode(enabled: boolean): void;
8
8
  isInteractive(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../processors/codegen/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQ5E,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,OAAO,CAAyB;gBAE5B,eAAe,UAAQ;IAoB7B,SAAS,CAAC,OAAO,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC9D,YAAY;IAGX,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C,aAAa,IAAI,OAAO;IAIxB,uBAAuB,IAAI,OAAO;CAG1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../processors/codegen/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AASxC,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,OAAO,CAAyB;gBAE5B,eAAe,UAAQ;IAkB7B,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/D,YAAY;IAGX,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C,aAAa,IAAI,OAAO;IAIxB,uBAAuB,IAAI,OAAO;CAG1C"}
@@ -11,37 +11,38 @@ export class CodegenProcessor {
11
11
  CURRENT_WORKING_DIR,
12
12
  }, interactiveMode);
13
13
  if (interactiveMode) {
14
- logger.info(`🔔 CodegenProcessor initialized with interactive mode enabled`);
14
+ logger.info(`CodegenProcessor initialized with interactive mode enabled`);
15
15
  }
16
16
  else {
17
17
  logger.debug(`CodegenProcessor initialized with interactive mode disabled`);
18
18
  }
19
19
  }
20
- async onStrands(strands) {
21
- logger.info(">>> onStrands()");
22
- // Filter strands to only include those that should be processed
23
- const validStrands = strands.filter((strand) => {
24
- const generator = this.manager.getGenerator(strand.documentType);
20
+ async onOperations(operations) {
21
+ logger.info("CodegenProcessor.onOperations()");
22
+ for (const { operation, context } of operations) {
23
+ const generator = this.manager.getGenerator(context.documentType);
25
24
  if (!generator) {
26
- logger.debug(`>>> No generator found for document type: ${strand.documentType}`);
27
- return false;
25
+ logger.debug(`No generator found for document type: ${context.documentType}`);
26
+ continue;
28
27
  }
29
- // Use the required shouldProcess method for validation
30
- const shouldProcessResult = generator.shouldProcess(strand);
31
- if (!shouldProcessResult) {
32
- logger.debug(`>>> Generator validation failed for ${strand.documentType}:${strand.documentId}, skipping processing`);
33
- }
34
- return shouldProcessResult;
35
- });
36
- if (validStrands.length > 0) {
37
- logger.debug(`>>> Processing ${validStrands.length} valid strands (out of ${strands.length} total)`);
38
- for (const strand of validStrands) {
28
+ // Create strand-like object for generator (using existing generator interface)
29
+ // Cast to InternalTransmitterUpdate since generators only use a subset of fields
30
+ const strand = {
31
+ documentId: context.documentId,
32
+ documentType: context.documentType,
33
+ scope: context.scope,
34
+ branch: context.branch,
35
+ driveId: "", // Not available in new format
36
+ operations: [operation],
37
+ state: context.resultingState
38
+ ? JSON.parse(context.resultingState)
39
+ : undefined,
40
+ };
41
+ const shouldProcess = generator.shouldProcess(strand);
42
+ if (shouldProcess) {
39
43
  await this.manager.routeAndGenerate(strand);
40
44
  }
41
45
  }
42
- else {
43
- logger.debug(`>>> No valid strands to process (${strands.length} strands received)`);
44
- }
45
46
  }
46
47
  async onDisconnect() { }
47
48
  // Utility methods for external configuration and monitoring
@@ -0,0 +1,11 @@
1
+ import type { InternalTransmitterUpdate, IProcessorLegacy } from "document-drive";
2
+ export declare class CodegenProcessorLegacy implements IProcessorLegacy {
3
+ private manager;
4
+ constructor(interactiveMode?: boolean);
5
+ onStrands(strands: InternalTransmitterUpdate[]): Promise<void>;
6
+ onDisconnect(): Promise<void>;
7
+ setInteractiveMode(enabled: boolean): void;
8
+ isInteractive(): boolean;
9
+ isProcessingInteractive(): boolean;
10
+ }
11
+ //# sourceMappingURL=index.legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.legacy.d.ts","sourceRoot":"","sources":["../../../processors/codegen/index.legacy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAQxB,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,OAAO,CAAyB;gBAE5B,eAAe,UAAQ;IAoB7B,SAAS,CAAC,OAAO,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC9D,YAAY;IAGX,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C,aAAa,IAAI,OAAO;IAIxB,uBAAuB,IAAI,OAAO;CAG1C"}