@autobe/agent 0.26.0 → 0.28.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.
- package/lib/AutoBeAgent.d.ts +2 -1
- package/lib/AutoBeAgent.js +27 -7
- package/lib/AutoBeAgent.js.map +1 -1
- package/lib/AutoBeMockAgent.js +2 -4
- package/lib/AutoBeMockAgent.js.map +1 -1
- package/lib/constants/AutoBeSystemPromptConstant.d.ts +11 -11
- package/lib/context/AutoBeContext.d.ts +4 -1
- package/lib/context/AutoBeTokenUsage.d.ts +1 -1
- package/lib/context/AutoBeTokenUsage.js.map +1 -1
- package/lib/context/assertSchemaModel.d.ts +1 -1
- package/lib/context/assertSchemaModel.js +4 -7
- package/lib/context/assertSchemaModel.js.map +1 -1
- package/lib/factory/AutoBeFunctionCallingMetricFactory.d.ts +7 -0
- package/lib/factory/AutoBeFunctionCallingMetricFactory.js +35 -0
- package/lib/factory/AutoBeFunctionCallingMetricFactory.js.map +1 -0
- package/lib/factory/AutoBeProcessAggregateFactory.d.ts +13 -0
- package/lib/factory/AutoBeProcessAggregateFactory.js +100 -0
- package/lib/factory/AutoBeProcessAggregateFactory.js.map +1 -0
- package/lib/factory/createAutoBeContext.d.ts +2 -1
- package/lib/factory/createAutoBeContext.js +78 -27
- package/lib/factory/createAutoBeContext.js.map +1 -1
- package/lib/index.mjs +24065 -12997
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyze.js +1 -0
- package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +166 -87
- package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +639 -322
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +146 -76
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +17 -52
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +25 -22
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +7 -23
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.d.ts +2 -1
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +168 -4
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
- package/lib/{factory/createAutoBeApplication.d.ts → orchestrate/facade/createAutoBeFacadeController.d.ts} +2 -2
- package/lib/orchestrate/facade/createAutoBeFacadeController.js +1308 -0
- package/lib/orchestrate/facade/createAutoBeFacadeController.js.map +1 -0
- package/lib/orchestrate/facade/histories/IAutoBeFacadeApplication.js.map +1 -0
- package/lib/orchestrate/facade/histories/IAutoBeFacadeApplicationProps.js.map +1 -0
- package/lib/orchestrate/facade/histories/IAutoBeFacadeApplicationResult.js.map +1 -0
- package/lib/orchestrate/facade/{transformFacadeStateMessage.d.ts → structures/transformFacadeStateMessage.d.ts} +1 -1
- package/lib/orchestrate/facade/structures/transformFacadeStateMessage.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +2 -2
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +3 -2
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +2 -2
- package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +1 -1
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterface.d.ts +1 -1
- package/lib/orchestrate/interface/orchestrateInterface.js +15 -8
- package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +874 -49
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +1858 -67
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +251 -133
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.d.ts +0 -6
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +257 -135
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +341 -227
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +761 -49
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +911 -50
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +207 -4
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +109 -2
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.d.ts +5 -3
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1904 -77
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +1858 -67
- package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
- package/lib/orchestrate/interface/utils/JsonSchemaFactory.js +23 -23
- package/lib/orchestrate/prisma/orchestratePrisma.d.ts +1 -1
- package/lib/orchestrate/prisma/orchestratePrisma.js +1 -0
- package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +391 -197
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1168 -591
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaReview.js +1186 -600
- package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +6 -3
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +2 -2
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealize.d.ts +1 -1
- package/lib/orchestrate/realize/orchestrateRealize.js +2 -1
- package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +362 -180
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +399 -199
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +133 -4
- package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +171 -7
- package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeWrite.js +132 -3
- package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
- package/lib/orchestrate/realize/utils/replaceImportStatements.js +0 -85
- package/lib/orchestrate/realize/utils/replaceImportStatements.js.map +1 -1
- package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTest.d.ts +1 -1
- package/lib/orchestrate/test/orchestrateTest.js +2 -1
- package/lib/orchestrate/test/orchestrateTest.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestCorrect.js +134 -3
- package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +169 -4
- package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.js +257 -4
- package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +283 -4
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestWrite.js +141 -3
- package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
- package/lib/utils/TokenUsageComputer.d.ts +5 -0
- package/lib/utils/TokenUsageComputer.js +29 -0
- package/lib/utils/TokenUsageComputer.js.map +1 -0
- package/package.json +10 -10
- package/src/AutoBeAgent.ts +40 -6
- package/src/AutoBeMockAgent.ts +2 -4
- package/src/constants/AutoBeSystemPromptConstant.ts +11 -11
- package/src/context/AutoBeContext.ts +8 -0
- package/src/context/AutoBeTokenUsage.ts +1 -1
- package/src/context/assertSchemaModel.ts +5 -8
- package/src/factory/AutoBeFunctionCallingMetricFactory.ts +44 -0
- package/src/factory/AutoBeProcessAggregateFactory.ts +141 -0
- package/src/factory/createAutoBeContext.ts +96 -36
- package/src/orchestrate/analyze/orchestrateAnalyze.ts +1 -0
- package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +9 -10
- package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +15 -10
- package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +10 -11
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +19 -54
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +25 -22
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.ts +8 -24
- package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +20 -3
- package/src/orchestrate/facade/createAutoBeFacadeController.ts +136 -0
- package/src/orchestrate/facade/{transformFacadeStateMessage.ts → structures/transformFacadeStateMessage.ts} +2 -2
- package/src/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.ts +1 -0
- package/src/orchestrate/interface/orchestrateInterface.ts +17 -6
- package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +13 -2
- package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +13 -2
- package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +16 -11
- package/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.ts +16 -13
- package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +19 -15
- package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +13 -2
- package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +16 -2
- package/src/orchestrate/interface/orchestrateInterfacePrerequisites.ts +13 -2
- package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +11 -2
- package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +24 -16
- package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +13 -2
- package/src/orchestrate/prisma/orchestratePrisma.ts +2 -1
- package/src/orchestrate/prisma/orchestratePrismaComponent.ts +15 -10
- package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +9 -10
- package/src/orchestrate/prisma/orchestratePrismaReview.ts +9 -11
- package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +2 -1
- package/src/orchestrate/realize/orchestrateRealize.ts +3 -2
- package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +15 -10
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +15 -10
- package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +14 -3
- package/src/orchestrate/realize/orchestrateRealizeCorrectCasting.ts +21 -6
- package/src/orchestrate/realize/orchestrateRealizeWrite.ts +13 -2
- package/src/orchestrate/realize/utils/replaceImportStatements.ts +0 -90
- package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +5 -1
- package/src/orchestrate/test/histories/transformTestWriteHistories.ts +1 -1
- package/src/orchestrate/test/orchestrateTest.ts +3 -2
- package/src/orchestrate/test/orchestrateTestCorrect.ts +14 -2
- package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +21 -3
- package/src/orchestrate/test/orchestrateTestScenario.ts +13 -2
- package/src/orchestrate/test/orchestrateTestScenarioReview.ts +13 -2
- package/src/orchestrate/test/orchestrateTestWrite.ts +13 -2
- package/src/utils/TokenUsageComputer.ts +35 -0
- package/lib/context/IAutoBeFacadeApplication.js.map +0 -1
- package/lib/context/IAutoBeFacadeApplicationProps.js.map +0 -1
- package/lib/context/IAutoBeFacadeApplicationResult.js.map +0 -1
- package/lib/factory/createAutoBeApplication.js +0 -942
- package/lib/factory/createAutoBeApplication.js.map +0 -1
- package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +0 -1
- package/src/factory/createAutoBeApplication.ts +0 -123
- /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplication.d.ts +0 -0
- /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplication.js +0 -0
- /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationProps.d.ts +0 -0
- /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationProps.js +0 -0
- /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationResult.d.ts +0 -0
- /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationResult.js +0 -0
- /package/lib/orchestrate/facade/{transformFacadeStateMessage.js → structures/transformFacadeStateMessage.js} +0 -0
- /package/src/{context → orchestrate/facade/histories}/IAutoBeFacadeApplication.ts +0 -0
- /package/src/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationProps.ts +0 -0
- /package/src/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationResult.ts +0 -0
|
@@ -58,7 +58,7 @@ function orchestrateInterfaceGroups(ctx, props) {
|
|
|
58
58
|
const pointer = {
|
|
59
59
|
value: null,
|
|
60
60
|
};
|
|
61
|
-
const { tokenUsage } = yield ctx.conversate({
|
|
61
|
+
const { metric, tokenUsage } = yield ctx.conversate({
|
|
62
62
|
source: "interfaceGroup",
|
|
63
63
|
histories: (0, transformInterfaceGroupHistories_1.transformInterfaceGroupHistories)({
|
|
64
64
|
state: ctx.state(),
|
|
@@ -80,6 +80,7 @@ function orchestrateInterfaceGroups(ctx, props) {
|
|
|
80
80
|
id: (0, uuid_1.v7)(),
|
|
81
81
|
created_at: start.toISOString(),
|
|
82
82
|
groups: pointer.value.groups,
|
|
83
|
+
metric,
|
|
83
84
|
tokenUsage,
|
|
84
85
|
step: (_c = (_b = ctx.state().analyze) === null || _b === void 0 ? void 0 : _b.step) !== null && _c !== void 0 ? _c : 0,
|
|
85
86
|
};
|
|
@@ -87,7 +88,11 @@ function orchestrateInterfaceGroups(ctx, props) {
|
|
|
87
88
|
}
|
|
88
89
|
function createController(props) {
|
|
89
90
|
(0, assertSchemaModel_1.assertSchemaModel)(props.model);
|
|
90
|
-
const application = collection[props.model
|
|
91
|
+
const application = collection[props.model === "chatgpt"
|
|
92
|
+
? "chatgpt"
|
|
93
|
+
: props.model === "gemini"
|
|
94
|
+
? "gemini"
|
|
95
|
+
: "claude"];
|
|
91
96
|
return {
|
|
92
97
|
protocol: "class",
|
|
93
98
|
name: "interface",
|
|
@@ -99,243 +104,352 @@ function createController(props) {
|
|
|
99
104
|
},
|
|
100
105
|
};
|
|
101
106
|
}
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
107
|
+
const collection = {
|
|
108
|
+
chatgpt: {
|
|
109
|
+
model: "chatgpt",
|
|
110
|
+
options: {
|
|
111
|
+
reference: true,
|
|
112
|
+
strict: false,
|
|
113
|
+
separate: null
|
|
114
|
+
},
|
|
115
|
+
functions: [
|
|
116
|
+
{
|
|
117
|
+
name: "makeGroups",
|
|
118
|
+
parameters: {
|
|
119
|
+
description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
|
|
120
|
+
type: "object",
|
|
121
|
+
properties: {
|
|
122
|
+
groups: {
|
|
123
|
+
description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.\n\n\n@minItems 1",
|
|
124
|
+
type: "array",
|
|
125
|
+
items: {
|
|
126
|
+
$ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
required: [
|
|
131
|
+
"groups"
|
|
132
|
+
],
|
|
133
|
+
additionalProperties: false,
|
|
134
|
+
$defs: {
|
|
135
|
+
"IAutoBeInterfaceGroupApplication.IGroup": {
|
|
136
|
+
description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
|
|
137
|
+
type: "object",
|
|
138
|
+
properties: {
|
|
139
|
+
name: {
|
|
140
|
+
description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.\n\n\n@minLength 1",
|
|
141
|
+
type: "string"
|
|
142
|
+
},
|
|
143
|
+
description: {
|
|
144
|
+
description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"\n\n\n@minLength 1",
|
|
145
|
+
type: "string"
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
required: [
|
|
149
|
+
"name",
|
|
150
|
+
"description"
|
|
151
|
+
]
|
|
152
|
+
}
|
|
122
153
|
}
|
|
123
154
|
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
155
|
+
description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
|
|
156
|
+
validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
|
|
157
|
+
path: _path + ".groups",
|
|
158
|
+
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
159
|
+
value: input.groups
|
|
160
|
+
})) && ((1 <= input.groups.length || _report(_exceptionable, {
|
|
161
|
+
path: _path + ".groups",
|
|
162
|
+
expected: "Array<> & MinItems<1>",
|
|
163
|
+
value: input.groups
|
|
164
|
+
})) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
165
|
+
path: _path + ".groups[" + _index2 + "]",
|
|
166
|
+
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
167
|
+
value: elem
|
|
168
|
+
})) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
169
|
+
path: _path + ".groups[" + _index2 + "]",
|
|
170
|
+
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
171
|
+
value: elem
|
|
172
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
173
|
+
path: _path + ".groups",
|
|
174
|
+
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
175
|
+
value: input.groups
|
|
176
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
|
|
177
|
+
path: _path + ".name",
|
|
178
|
+
expected: "string & MinLength<1>",
|
|
179
|
+
value: input.name
|
|
180
|
+
})) || _report(_exceptionable, {
|
|
181
|
+
path: _path + ".name",
|
|
182
|
+
expected: "(string & MinLength<1>)",
|
|
183
|
+
value: input.name
|
|
184
|
+
}), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
|
|
185
|
+
path: _path + ".description",
|
|
186
|
+
expected: "string & MinLength<1>",
|
|
187
|
+
value: input.description
|
|
188
|
+
})) || _report(_exceptionable, {
|
|
189
|
+
path: _path + ".description",
|
|
190
|
+
expected: "(string & MinLength<1>)",
|
|
191
|
+
value: input.description
|
|
192
|
+
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
193
|
+
if (false === __is(input)) {
|
|
194
|
+
errors = [];
|
|
195
|
+
_report = __typia_transform__validateReport._validateReport(errors);
|
|
196
|
+
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
197
|
+
path: _path + "",
|
|
198
|
+
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
199
|
+
value: input
|
|
200
|
+
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
201
|
+
path: _path + "",
|
|
202
|
+
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
203
|
+
value: input
|
|
204
|
+
}))(input, "$input", true);
|
|
205
|
+
const success = 0 === errors.length;
|
|
206
|
+
return success ? {
|
|
207
|
+
success,
|
|
208
|
+
data: input
|
|
209
|
+
} : {
|
|
210
|
+
success,
|
|
211
|
+
errors,
|
|
212
|
+
data: input
|
|
213
|
+
};
|
|
148
214
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
|
|
152
|
-
validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
|
|
153
|
-
path: _path + ".groups",
|
|
154
|
-
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
155
|
-
value: input.groups
|
|
156
|
-
})) && ((1 <= input.groups.length || _report(_exceptionable, {
|
|
157
|
-
path: _path + ".groups",
|
|
158
|
-
expected: "Array<> & MinItems<1>",
|
|
159
|
-
value: input.groups
|
|
160
|
-
})) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
161
|
-
path: _path + ".groups[" + _index2 + "]",
|
|
162
|
-
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
163
|
-
value: elem
|
|
164
|
-
})) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
165
|
-
path: _path + ".groups[" + _index2 + "]",
|
|
166
|
-
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
167
|
-
value: elem
|
|
168
|
-
})).every(flag => flag)) || _report(_exceptionable, {
|
|
169
|
-
path: _path + ".groups",
|
|
170
|
-
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
171
|
-
value: input.groups
|
|
172
|
-
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
|
|
173
|
-
path: _path + ".name",
|
|
174
|
-
expected: "string & MinLength<1>",
|
|
175
|
-
value: input.name
|
|
176
|
-
})) || _report(_exceptionable, {
|
|
177
|
-
path: _path + ".name",
|
|
178
|
-
expected: "(string & MinLength<1>)",
|
|
179
|
-
value: input.name
|
|
180
|
-
}), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
|
|
181
|
-
path: _path + ".description",
|
|
182
|
-
expected: "string & MinLength<1>",
|
|
183
|
-
value: input.description
|
|
184
|
-
})) || _report(_exceptionable, {
|
|
185
|
-
path: _path + ".description",
|
|
186
|
-
expected: "(string & MinLength<1>)",
|
|
187
|
-
value: input.description
|
|
188
|
-
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
189
|
-
if (false === __is(input)) {
|
|
190
|
-
errors = [];
|
|
191
|
-
_report = __typia_transform__validateReport._validateReport(errors);
|
|
192
|
-
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
193
|
-
path: _path + "",
|
|
194
|
-
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
195
|
-
value: input
|
|
196
|
-
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
197
|
-
path: _path + "",
|
|
198
|
-
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
199
|
-
value: input
|
|
200
|
-
}))(input, "$input", true);
|
|
201
|
-
const success = 0 === errors.length;
|
|
202
|
-
return success ? {
|
|
203
|
-
success,
|
|
204
|
-
data: input
|
|
205
|
-
} : {
|
|
206
|
-
success,
|
|
207
|
-
errors,
|
|
215
|
+
return {
|
|
216
|
+
success: true,
|
|
208
217
|
data: input
|
|
209
218
|
};
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
data: input
|
|
214
|
-
};
|
|
215
|
-
}; })()
|
|
216
|
-
}
|
|
217
|
-
]
|
|
218
|
-
};
|
|
219
|
-
const chatgpt = {
|
|
220
|
-
model: "chatgpt",
|
|
221
|
-
options: {
|
|
222
|
-
reference: true,
|
|
223
|
-
strict: false,
|
|
224
|
-
separate: null
|
|
219
|
+
}; })()
|
|
220
|
+
}
|
|
221
|
+
]
|
|
225
222
|
},
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
223
|
+
claude: {
|
|
224
|
+
model: "claude",
|
|
225
|
+
options: {
|
|
226
|
+
reference: true,
|
|
227
|
+
separate: null
|
|
228
|
+
},
|
|
229
|
+
functions: [
|
|
230
|
+
{
|
|
231
|
+
name: "makeGroups",
|
|
232
|
+
parameters: {
|
|
233
|
+
description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
|
|
234
|
+
type: "object",
|
|
235
|
+
properties: {
|
|
236
|
+
groups: {
|
|
237
|
+
description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.",
|
|
238
|
+
type: "array",
|
|
239
|
+
items: {
|
|
240
|
+
$ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
|
|
241
|
+
},
|
|
242
|
+
minItems: 1
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
required: [
|
|
246
|
+
"groups"
|
|
247
|
+
],
|
|
248
|
+
additionalProperties: false,
|
|
249
|
+
$defs: {
|
|
250
|
+
"IAutoBeInterfaceGroupApplication.IGroup": {
|
|
251
|
+
description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
|
|
252
|
+
type: "object",
|
|
253
|
+
properties: {
|
|
254
|
+
name: {
|
|
255
|
+
description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.",
|
|
256
|
+
type: "string",
|
|
257
|
+
minLength: 1
|
|
258
|
+
},
|
|
259
|
+
description: {
|
|
260
|
+
description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"",
|
|
261
|
+
type: "string",
|
|
262
|
+
minLength: 1
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
required: [
|
|
266
|
+
"name",
|
|
267
|
+
"description"
|
|
268
|
+
]
|
|
238
269
|
}
|
|
239
270
|
}
|
|
240
271
|
},
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
272
|
+
description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
|
|
273
|
+
validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
|
|
274
|
+
path: _path + ".groups",
|
|
275
|
+
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
276
|
+
value: input.groups
|
|
277
|
+
})) && ((1 <= input.groups.length || _report(_exceptionable, {
|
|
278
|
+
path: _path + ".groups",
|
|
279
|
+
expected: "Array<> & MinItems<1>",
|
|
280
|
+
value: input.groups
|
|
281
|
+
})) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
282
|
+
path: _path + ".groups[" + _index2 + "]",
|
|
283
|
+
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
284
|
+
value: elem
|
|
285
|
+
})) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
286
|
+
path: _path + ".groups[" + _index2 + "]",
|
|
287
|
+
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
288
|
+
value: elem
|
|
289
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
290
|
+
path: _path + ".groups",
|
|
291
|
+
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
292
|
+
value: input.groups
|
|
293
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
|
|
294
|
+
path: _path + ".name",
|
|
295
|
+
expected: "string & MinLength<1>",
|
|
296
|
+
value: input.name
|
|
297
|
+
})) || _report(_exceptionable, {
|
|
298
|
+
path: _path + ".name",
|
|
299
|
+
expected: "(string & MinLength<1>)",
|
|
300
|
+
value: input.name
|
|
301
|
+
}), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
|
|
302
|
+
path: _path + ".description",
|
|
303
|
+
expected: "string & MinLength<1>",
|
|
304
|
+
value: input.description
|
|
305
|
+
})) || _report(_exceptionable, {
|
|
306
|
+
path: _path + ".description",
|
|
307
|
+
expected: "(string & MinLength<1>)",
|
|
308
|
+
value: input.description
|
|
309
|
+
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
310
|
+
if (false === __is(input)) {
|
|
311
|
+
errors = [];
|
|
312
|
+
_report = __typia_transform__validateReport._validateReport(errors);
|
|
313
|
+
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
314
|
+
path: _path + "",
|
|
315
|
+
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
316
|
+
value: input
|
|
317
|
+
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
318
|
+
path: _path + "",
|
|
319
|
+
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
320
|
+
value: input
|
|
321
|
+
}))(input, "$input", true);
|
|
322
|
+
const success = 0 === errors.length;
|
|
323
|
+
return success ? {
|
|
324
|
+
success,
|
|
325
|
+
data: input
|
|
326
|
+
} : {
|
|
327
|
+
success,
|
|
328
|
+
errors,
|
|
329
|
+
data: input
|
|
330
|
+
};
|
|
263
331
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
|
|
267
|
-
validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
|
|
268
|
-
path: _path + ".groups",
|
|
269
|
-
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
270
|
-
value: input.groups
|
|
271
|
-
})) && ((1 <= input.groups.length || _report(_exceptionable, {
|
|
272
|
-
path: _path + ".groups",
|
|
273
|
-
expected: "Array<> & MinItems<1>",
|
|
274
|
-
value: input.groups
|
|
275
|
-
})) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
276
|
-
path: _path + ".groups[" + _index2 + "]",
|
|
277
|
-
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
278
|
-
value: elem
|
|
279
|
-
})) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
280
|
-
path: _path + ".groups[" + _index2 + "]",
|
|
281
|
-
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
282
|
-
value: elem
|
|
283
|
-
})).every(flag => flag)) || _report(_exceptionable, {
|
|
284
|
-
path: _path + ".groups",
|
|
285
|
-
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
286
|
-
value: input.groups
|
|
287
|
-
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
|
|
288
|
-
path: _path + ".name",
|
|
289
|
-
expected: "string & MinLength<1>",
|
|
290
|
-
value: input.name
|
|
291
|
-
})) || _report(_exceptionable, {
|
|
292
|
-
path: _path + ".name",
|
|
293
|
-
expected: "(string & MinLength<1>)",
|
|
294
|
-
value: input.name
|
|
295
|
-
}), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
|
|
296
|
-
path: _path + ".description",
|
|
297
|
-
expected: "string & MinLength<1>",
|
|
298
|
-
value: input.description
|
|
299
|
-
})) || _report(_exceptionable, {
|
|
300
|
-
path: _path + ".description",
|
|
301
|
-
expected: "(string & MinLength<1>)",
|
|
302
|
-
value: input.description
|
|
303
|
-
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
304
|
-
if (false === __is(input)) {
|
|
305
|
-
errors = [];
|
|
306
|
-
_report = __typia_transform__validateReport._validateReport(errors);
|
|
307
|
-
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
308
|
-
path: _path + "",
|
|
309
|
-
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
310
|
-
value: input
|
|
311
|
-
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
312
|
-
path: _path + "",
|
|
313
|
-
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
314
|
-
value: input
|
|
315
|
-
}))(input, "$input", true);
|
|
316
|
-
const success = 0 === errors.length;
|
|
317
|
-
return success ? {
|
|
318
|
-
success,
|
|
332
|
+
return {
|
|
333
|
+
success: true,
|
|
319
334
|
data: input
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
|
|
335
|
+
};
|
|
336
|
+
}; })()
|
|
337
|
+
}
|
|
338
|
+
]
|
|
339
|
+
},
|
|
340
|
+
gemini: {
|
|
341
|
+
model: "gemini",
|
|
342
|
+
options: {
|
|
343
|
+
reference: true,
|
|
344
|
+
separate: null
|
|
345
|
+
},
|
|
346
|
+
functions: [
|
|
347
|
+
{
|
|
348
|
+
name: "makeGroups",
|
|
349
|
+
parameters: {
|
|
350
|
+
description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
|
|
351
|
+
type: "object",
|
|
352
|
+
properties: {
|
|
353
|
+
groups: {
|
|
354
|
+
description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.\n\n\n@minItems 1",
|
|
355
|
+
type: "array",
|
|
356
|
+
items: {
|
|
357
|
+
$ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
required: [
|
|
362
|
+
"groups"
|
|
363
|
+
],
|
|
364
|
+
additionalProperties: false,
|
|
365
|
+
$defs: {
|
|
366
|
+
"IAutoBeInterfaceGroupApplication.IGroup": {
|
|
367
|
+
description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
|
|
368
|
+
type: "object",
|
|
369
|
+
properties: {
|
|
370
|
+
name: {
|
|
371
|
+
description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.\n\n\n@minLength 1",
|
|
372
|
+
type: "string"
|
|
373
|
+
},
|
|
374
|
+
description: {
|
|
375
|
+
description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"\n\n\n@minLength 1",
|
|
376
|
+
type: "string"
|
|
377
|
+
}
|
|
378
|
+
},
|
|
379
|
+
required: [
|
|
380
|
+
"name",
|
|
381
|
+
"description"
|
|
382
|
+
]
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
|
|
387
|
+
validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
|
|
388
|
+
path: _path + ".groups",
|
|
389
|
+
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
390
|
+
value: input.groups
|
|
391
|
+
})) && ((1 <= input.groups.length || _report(_exceptionable, {
|
|
392
|
+
path: _path + ".groups",
|
|
393
|
+
expected: "Array<> & MinItems<1>",
|
|
394
|
+
value: input.groups
|
|
395
|
+
})) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
396
|
+
path: _path + ".groups[" + _index2 + "]",
|
|
397
|
+
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
398
|
+
value: elem
|
|
399
|
+
})) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
400
|
+
path: _path + ".groups[" + _index2 + "]",
|
|
401
|
+
expected: "IAutoBeInterfaceGroupApplication.IGroup",
|
|
402
|
+
value: elem
|
|
403
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
404
|
+
path: _path + ".groups",
|
|
405
|
+
expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
|
|
406
|
+
value: input.groups
|
|
407
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
|
|
408
|
+
path: _path + ".name",
|
|
409
|
+
expected: "string & MinLength<1>",
|
|
410
|
+
value: input.name
|
|
411
|
+
})) || _report(_exceptionable, {
|
|
412
|
+
path: _path + ".name",
|
|
413
|
+
expected: "(string & MinLength<1>)",
|
|
414
|
+
value: input.name
|
|
415
|
+
}), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
|
|
416
|
+
path: _path + ".description",
|
|
417
|
+
expected: "string & MinLength<1>",
|
|
418
|
+
value: input.description
|
|
419
|
+
})) || _report(_exceptionable, {
|
|
420
|
+
path: _path + ".description",
|
|
421
|
+
expected: "(string & MinLength<1>)",
|
|
422
|
+
value: input.description
|
|
423
|
+
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
424
|
+
if (false === __is(input)) {
|
|
425
|
+
errors = [];
|
|
426
|
+
_report = __typia_transform__validateReport._validateReport(errors);
|
|
427
|
+
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
428
|
+
path: _path + "",
|
|
429
|
+
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
430
|
+
value: input
|
|
431
|
+
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
432
|
+
path: _path + "",
|
|
433
|
+
expected: "IAutoBeInterfaceGroupApplication.IProps",
|
|
434
|
+
value: input
|
|
435
|
+
}))(input, "$input", true);
|
|
436
|
+
const success = 0 === errors.length;
|
|
437
|
+
return success ? {
|
|
438
|
+
success,
|
|
439
|
+
data: input
|
|
440
|
+
} : {
|
|
441
|
+
success,
|
|
442
|
+
errors,
|
|
443
|
+
data: input
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
return {
|
|
447
|
+
success: true,
|
|
323
448
|
data: input
|
|
324
449
|
};
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
};
|
|
330
|
-
}; })()
|
|
331
|
-
}
|
|
332
|
-
]
|
|
333
|
-
};
|
|
334
|
-
const collection = {
|
|
335
|
-
chatgpt,
|
|
336
|
-
claude,
|
|
337
|
-
llama: claude,
|
|
338
|
-
deepseek: claude,
|
|
339
|
-
"3.1": claude,
|
|
450
|
+
}; })()
|
|
451
|
+
}
|
|
452
|
+
]
|
|
453
|
+
},
|
|
340
454
|
};
|
|
341
455
|
//# sourceMappingURL=orchestrateInterfaceGroups.js.map
|