@autobe/agent 0.10.5 → 0.11.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.js +13 -46
- package/lib/AutoBeAgent.js.map +1 -1
- package/lib/constants/AutoBeSystemPromptConstant.d.ts +11 -6
- package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
- package/lib/context/AutoBeContext.d.ts +3 -2
- package/lib/factory/getAutoBeGenerated.d.ts +5 -0
- package/lib/factory/getAutoBeGenerated.js +307 -0
- package/lib/factory/getAutoBeGenerated.js.map +1 -0
- package/lib/index.mjs +1631 -1389
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.d.ts +2 -7
- package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.js +1 -9
- package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.js.map +1 -1
- package/lib/orchestrate/analyze/AutoBeAnalyzeRole.d.ts +13 -0
- package/lib/orchestrate/analyze/AutoBeAnalyzeRole.js +3 -0
- package/lib/orchestrate/analyze/AutoBeAnalyzeRole.js.map +1 -0
- package/lib/orchestrate/analyze/orchestrateAnalyze.d.ts +0 -25
- package/lib/orchestrate/analyze/orchestrateAnalyze.js +22 -420
- package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeComposer.d.ts +6 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeComposer.js +561 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeComposer.js.map +1 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeReviewer.d.ts +6 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeReviewer.js +41 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeReviewer.js.map +1 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +14 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +468 -0
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -0
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.d.ts +68 -0
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.js +3 -0
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.js.map +1 -0
- package/lib/orchestrate/analyze/transformAnalyzeReviewerHistories.d.ts +5 -0
- package/lib/orchestrate/analyze/transformAnalyzeReviewerHistories.js +27 -0
- package/lib/orchestrate/analyze/transformAnalyzeReviewerHistories.js.map +1 -0
- package/lib/orchestrate/analyze/transformAnalyzeWriteHistories.d.ts +12 -0
- package/lib/orchestrate/analyze/transformAnalyzeWriteHistories.js +78 -0
- package/lib/orchestrate/analyze/transformAnalyzeWriteHistories.js.map +1 -0
- package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.d.ts +6 -0
- package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.js +58 -0
- package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterface.js +0 -2
- package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComponents.js +17 -137
- package/lib/orchestrate/interface/orchestrateInterfaceComponents.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +92 -141
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrisma.js +9 -5
- package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +54 -25
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +4 -3
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
- package/lib/orchestrate/prisma/{orchestratePrismaSchema.d.ts → orchestratePrismaSchemas.d.ts} +2 -4
- package/lib/orchestrate/prisma/{orchestratePrismaSchema.js → orchestratePrismaSchemas.js} +269 -203
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -0
- package/lib/orchestrate/prisma/transformPrismaComponentsHistories.js +1 -1
- package/lib/orchestrate/prisma/transformPrismaComponentsHistories.js.map +1 -1
- package/lib/orchestrate/prisma/transformPrismaCorrectHistories.js +1 -1
- package/lib/orchestrate/prisma/transformPrismaHistories.js +1 -1
- package/lib/orchestrate/prisma/transformPrismaHistories.js.map +1 -1
- package/lib/orchestrate/prisma/transformPrismaSchemaHistories.d.ts +2 -6
- package/lib/orchestrate/prisma/transformPrismaSchemaHistories.js +24 -32
- package/lib/orchestrate/prisma/transformPrismaSchemaHistories.js.map +1 -1
- package/lib/orchestrate/realize/RealizePipe.d.ts +5 -0
- package/lib/orchestrate/realize/RealizePipe.js +14 -0
- package/lib/orchestrate/realize/RealizePipe.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealize.d.ts +0 -6
- package/lib/orchestrate/realize/orchestrateRealize.js +6 -43
- package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCoder.d.ts +3 -3
- package/lib/orchestrate/realize/orchestrateRealizeCoder.js +124 -59
- package/lib/orchestrate/realize/orchestrateRealizeCoder.js.map +1 -1
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.d.ts +188 -18
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.d.ts +23 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.js +3 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.js.map +1 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.d.ts +2 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.js +5 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.js.map +1 -0
- package/lib/orchestrate/realize/transformRealizeCoderHistories.d.ts +2 -1
- package/lib/orchestrate/realize/transformRealizeCoderHistories.js +50 -36
- package/lib/orchestrate/realize/transformRealizeCoderHistories.js.map +1 -1
- package/lib/orchestrate/realize/writeCodeUntilCompilePassed.d.ts +5 -0
- package/lib/orchestrate/realize/writeCodeUntilCompilePassed.js +123 -0
- package/lib/orchestrate/realize/writeCodeUntilCompilePassed.js.map +1 -0
- package/lib/orchestrate/test/compile/getTestExternalDeclarations.js +4 -1
- package/lib/orchestrate/test/compile/getTestExternalDeclarations.js.map +1 -1
- package/lib/orchestrate/test/compile/getTestScenarioArtifacts.js +2 -1
- package/lib/orchestrate/test/compile/getTestScenarioArtifacts.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTest.js +11 -5
- package/lib/orchestrate/test/orchestrateTest.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestCorrect.js +3 -2
- package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
- package/lib/structures/IAutoBeProps.d.ts +8 -8
- package/lib/utils/pipe.d.ts +5 -0
- package/lib/utils/pipe.js +14 -0
- package/lib/utils/pipe.js.map +1 -0
- package/package.json +6 -6
- package/src/AutoBeAgent.ts +22 -76
- package/src/constants/AutoBeSystemPromptConstant.ts +11 -6
- package/src/context/AutoBeContext.ts +3 -1
- package/src/factory/getAutoBeGenerated.ts +113 -0
- package/src/orchestrate/analyze/AutoBeAnalyzeFileSystem.ts +5 -13
- package/src/orchestrate/analyze/AutoBeAnalyzeRole.ts +14 -0
- package/src/orchestrate/analyze/orchestrateAnalyze.ts +30 -165
- package/src/orchestrate/analyze/orchestrateAnalyzeComposer.ts +115 -0
- package/src/orchestrate/analyze/orchestrateAnalyzeReviewer.ts +39 -0
- package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +106 -0
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.ts +74 -0
- package/src/orchestrate/analyze/transformAnalyzeReviewerHistories.ts +31 -0
- package/src/orchestrate/analyze/transformAnalyzeWriteHistories.ts +94 -0
- package/src/orchestrate/analyze/writeDocumentUntilReviewPassed.ts +66 -0
- package/src/orchestrate/interface/orchestrateInterface.ts +0 -2
- package/src/orchestrate/interface/orchestrateInterfaceComponents.ts +2 -3
- package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +21 -0
- package/src/orchestrate/prisma/orchestratePrisma.ts +12 -5
- package/src/orchestrate/prisma/orchestratePrismaComponent.ts +4 -13
- package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +9 -4
- package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +265 -0
- package/src/orchestrate/prisma/transformPrismaSchemaHistories.ts +26 -37
- package/src/orchestrate/realize/RealizePipe.ts +39 -0
- package/src/orchestrate/realize/orchestrateRealize.ts +3 -91
- package/src/orchestrate/realize/orchestrateRealizeCoder.ts +60 -25
- package/src/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.ts +192 -18
- package/src/orchestrate/realize/structures/IAutoBeRealizeCompile.ts +34 -0
- package/src/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.ts +2 -0
- package/src/orchestrate/realize/transformRealizeCoderHistories.ts +58 -34
- package/src/orchestrate/realize/writeCodeUntilCompilePassed.ts +178 -0
- package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +5 -4
- package/src/orchestrate/test/compile/getTestScenarioArtifacts.ts +7 -2
- package/src/orchestrate/test/orchestrateTest.ts +14 -12
- package/src/orchestrate/test/orchestrateTestCorrect.ts +10 -9
- package/src/structures/IAutoBeProps.ts +10 -7
- package/src/utils/pipe.ts +39 -0
- package/lib/orchestrate/analyze/AutoBeAnalyzeAgent.d.ts +0 -20
- package/lib/orchestrate/analyze/AutoBeAnalyzeAgent.js +0 -735
- package/lib/orchestrate/analyze/AutoBeAnalyzeAgent.js.map +0 -1
- package/lib/orchestrate/analyze/AutoBeAnalyzeReviewer.d.ts +0 -15
- package/lib/orchestrate/analyze/AutoBeAnalyzeReviewer.js +0 -44
- package/lib/orchestrate/analyze/AutoBeAnalyzeReviewer.js.map +0 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +0 -1
- package/src/orchestrate/analyze/AutoBeAnalyzeAgent.ts +0 -219
- package/src/orchestrate/analyze/AutoBeAnalyzeReviewer.ts +0 -62
- package/src/orchestrate/prisma/orchestratePrismaSchema.ts +0 -157
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformAnalyzeWriteHistories = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const transformAnalyzeWriteHistories = (ctx, input) => {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
return [
|
|
8
|
+
...(input.review !== null
|
|
9
|
+
? [
|
|
10
|
+
{
|
|
11
|
+
id: (0, uuid_1.v4)(),
|
|
12
|
+
created_at: new Date().toISOString(),
|
|
13
|
+
type: "assistantMessage",
|
|
14
|
+
text: [
|
|
15
|
+
input.totalFiles.find((el) => el.filename === input.targetFile),
|
|
16
|
+
].join("\n"),
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: (0, uuid_1.v4)(),
|
|
20
|
+
created_at: new Date().toISOString(),
|
|
21
|
+
type: "assistantMessage",
|
|
22
|
+
text: [
|
|
23
|
+
`You previously wrote a piece of content.`,
|
|
24
|
+
`The following review has been received regarding your writing:`,
|
|
25
|
+
input.review,
|
|
26
|
+
`You must revise your content to reflect the feedback in this review.`,
|
|
27
|
+
].join(),
|
|
28
|
+
},
|
|
29
|
+
]
|
|
30
|
+
: []),
|
|
31
|
+
{
|
|
32
|
+
id: (0, uuid_1.v4)(),
|
|
33
|
+
created_at: new Date().toISOString(),
|
|
34
|
+
type: "systemMessage",
|
|
35
|
+
text: "# Overview\nYou are the best planner.\nYou will write documents and hand it over to the developer.\nYou are only asked to fill out one document.\n\nLike revision_history.md, you should not write fakes for content that does not exist yet. If written, it is only allowed if there is a user's request directly.\n\nPlease converse with the user based on the following guidelines and example templates. \nYou have to make a plan for the success of the user, and it has to be written in great detail to make the business successful. \nYour performance is measured by your customer's success. \nYou should listen to the reviewer and not make any requests to the reviewer. \nIf the reviewer asks for changes, revise the entire document from top to bottom,\nincorporating both the existing content and the requested changes. Do not add only the new parts\u2014integrate them into a full rewrite of the document. \nFor example, if you are asked to modify or expand 'internal_bulletin_board_service_plan.md',\ndo not create a document such as 'internal_bulletin_board_service_plan_expanded.md'. \nonly update 'internal_bulletin_board_service_plan.md' file. \n\nWrite a long document, but keep your answer short.\n\n# Number of documents that need to be created\nThe number of documents requested by the user, or the amount of documents sufficient for developers to develop\n\n# user information\n- user locale: {% User Locale %}\n\nCreate and review documents for your locale.\nIt must match the language of the user.\n\n# Documentation Style\nFor readability, even if the user requests it, a file should not exceed 3,000 characters. (The amount of text is measured in String(content).length)\nHyperlink features allow you to create more colorful documents.\n\nPlease make the file appropriate for user's language.\nDocuments and descriptions should be tailored to the language of the user.\n\nPlease refer to the document below. The document below has a total of 1,500 characters and should be longer.\nNever insert a question in the document.\n\n\n# abort\nIf you have no further requests or questions, immediately call the 'abort' function instead of replying with text. Never respond with additional text.\n\nWhen the reviewer determines the document is perfect and requires no more modifications, they must call the 'abort' function without hesitation.\n\n'abort' is a tool you must use to signal completion.\n\nDo not delay or avoid calling 'abort' once the document is complete.\n\nIf the reviewer says the document is complete but only one document out of multiple remains unfinished, do NOT call 'abort' yet.\n\nIf the reviewer requests creation or modification of any document other than the current assigned one, **ignore such requests** and continue focusing only on the current document. \nIn this case, the reviewer may call 'abort' to forcibly terminate the review.\n\nWrite a long document, but keep your answer short." /* AutoBeSystemPromptConstant.ANALYZE */.replace("{% User Locale %}", (_b = (_a = ctx.config) === null || _a === void 0 ? void 0 : _a.locale) !== null && _b !== void 0 ? _b : "en-US"),
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
id: (0, uuid_1.v4)(),
|
|
39
|
+
created_at: new Date().toISOString(),
|
|
40
|
+
type: "systemMessage",
|
|
41
|
+
text: [
|
|
42
|
+
"# Guidelines",
|
|
43
|
+
"If the user specifies the exact number of pages, please follow it precisely.",
|
|
44
|
+
"You are the \u201CPlanning Expert (PlannerAgent)\u201D system agent.\nYou take full responsibility for all planning activities\u2014from product planning through requirements analysis, design, and documentation\u2014and you have extensive experience drafting planning documents.\n\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n1. Persona & Roles\n \u2022 **Planning Expert**: Establish business objectives, craft user scenarios, and develop a strategic roadmap \n \u2022 **Communication Specialist**: Use a friendly yet professional tone, actively engaging with stakeholders \n \u2022 **Documentation Specialist**: Follow a structured approach (Table of Contents \u2192 Detailed TOC \u2192 Final Document) and deliver outputs in Markdown\n\n2. Conversation-Driven Extraction Framework (WHY \u2192 WHAT \u2192 HOW)\n 1. **WHY (Reason for the Problem)**\n * \u201CWhy is this feature/project needed?\u201D \u201CWhat business or user problem does it solve?\u201D \n * Ask questions to clearly gather background, KPIs, and success criteria \n 2. **WHAT (What to Solve)**\n * \u201CWhat must be implemented?\u201D \u201CWhat are the key functional and non-functional requirements?\u201D \n * Distinguish between functional vs. non-functional, organize business requirements and user scenarios \n 3. **HOW (How to Execute)**\n * \u201CWhat flow and structure will the service follow?\u201D \u201CHow should the data model and ERD be designed?\u201D\n\n3. Scope & Constraints\n \u2022 Do **not** produce development-level documentation (backend, frontend, or infrastructure tech stacks). \n \u2022 API design, database structure, and architecture reviews should be suggested only at a high level from a planning perspective\u2014avoid any detailed code or configuration references.\n\n4. Deliverable Structuring Guidelines\n 1. **Present the TOC First**\n * Propose only the top-level Table of Contents initially; generate detailed sub-headings after user approval \n * When sub-TOCs grow large, split them into separate Markdown files and interlink them \n 2. **Document Augmentation**\n * Each document may be continuously updated; you may pre-link to future documents as placeholders \n * Only use links to actual, existing document paths\u2014external URLs that don\u2019t exist are prohibited \n 3. **Document Components**\n * Include: Overview, Objectives, User Personas, User Journeys, Functional & Non-Functional Requirements, Acceptance Criteria, ERD \n * Use tables, lists, and diagrams (ASCII or Mermaid) wherever helpful\n\n5. Communication & Feedback\n \u2022 After each phase, summarize progress and ask for the user\u2019s confirmation (e.g., \u201CShall we proceed with this TOC?\u201D) \n \u2022 Upon completing a document: include a feedback prompt such as \u201CIs there anything else to refine?\u201D\n\n6. Final Deliverables\n \u2022 Provide everything in Markdown (`.md`) format \n \u2022 Include inter-document reference links \n \u2022 Do **not** finalize the \u201Ccompleted\u201D version until the user has given explicit approval\n\n7. Review Loop\n \u2022 Use a while-loop process: after drafting any part, send it to the review agent and iterate until they grant approval. \n \u2022 Do not advance to the next section until the review agent confirms the current one meets quality standards.\n\n8. Approval & File Generation\n \u2022 Once the review agent approves the final draft, use the available tools to generate and export the document file. \n\n9. Iterative Writing Flow\n \u2022 Always start by proposing the top-level Table of Contents. \n \u2022 After TOC approval, draft the document one section (paragraph) at a time, submitting each for review before proceeding." /* AutoBeSystemPromptConstant.ANALYZE_GUIDELINE */,
|
|
45
|
+
].join("\n"),
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: (0, uuid_1.v4)(),
|
|
49
|
+
created_at: new Date().toISOString(),
|
|
50
|
+
type: "systemMessage",
|
|
51
|
+
text: [
|
|
52
|
+
`# Instruction`,
|
|
53
|
+
`The names of all the files are as follows: ${input.totalFiles
|
|
54
|
+
.map((f) => f.filename)
|
|
55
|
+
.join(",")}`,
|
|
56
|
+
"Assume that all files are in the same folder. Also, when pointing to the location of a file, go to the relative path.",
|
|
57
|
+
"",
|
|
58
|
+
`The following user roles have been defined for this system:`,
|
|
59
|
+
...input.roles.map((role) => `- ${role.name}: ${role.description}`),
|
|
60
|
+
"These roles will be used for API authentication and should be considered when creating documentation.",
|
|
61
|
+
"",
|
|
62
|
+
`Document Length Specification:`,
|
|
63
|
+
`- You are responsible for writing ONLY ONE document: ${input.targetFile}`,
|
|
64
|
+
`- Each page should contain approximately 2,000 characters`,
|
|
65
|
+
`- DO NOT write content for other documents - focus only on ${input.targetFile}`,
|
|
66
|
+
"",
|
|
67
|
+
`Among the various documents, the part you decided to take care of is as follows.: ${input.targetFile}`,
|
|
68
|
+
`Only write this document named '${input.targetFile}'.`,
|
|
69
|
+
"Never write other documents.",
|
|
70
|
+
"",
|
|
71
|
+
"# Reason to write this document",
|
|
72
|
+
`- ${(_c = input.totalFiles.find((el) => el.filename === input.targetFile)) === null || _c === void 0 ? void 0 : _c.reason}`,
|
|
73
|
+
].join("\n"),
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
};
|
|
77
|
+
exports.transformAnalyzeWriteHistories = transformAnalyzeWriteHistories;
|
|
78
|
+
//# sourceMappingURL=transformAnalyzeWriteHistories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformAnalyzeWriteHistories.js","sourceRoot":"","sources":["../../../src/orchestrate/analyze/transformAnalyzeWriteHistories.ts"],"names":[],"mappings":";;;AAEA,+BAA0B;AAOnB,MAAM,8BAA8B,GAAG,CAC5C,GAAyB,EACzB,KAMC,EAGD,EAAE;;IACF,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI;YACvB,CAAC,CAAE;gBACC;oBACE,EAAE,EAAE,IAAA,SAAE,GAAE;oBACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACpC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE;wBACJ,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,UAAU,CAAC;qBAChE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;gBACD;oBACE,EAAE,EAAE,IAAA,SAAE,GAAE;oBACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACpC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE;wBACJ,0CAA0C;wBAC1C,gEAAgE;wBAChE,KAAK,CAAC,MAAM;wBACZ,sEAAsE;qBACvE,CAAC,IAAI,EAAE;iBACT;aACQ;YACb,CAAC,CAAC,EAAE,CAAC;QACP;YACE,EAAE,EAAE,IAAA,SAAE,GAAE;YACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,+5FAAmC,OAAO,CAC9C,mBAAmB,EACnB,MAAA,MAAA,GAAG,CAAC,MAAM,0CAAE,MAAM,mCAAI,OAAO,CAC9B;SACF;QACD;YACE,EAAE,EAAE,IAAA,SAAE,GAAE;YACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE;gBACJ,cAAc;gBACd,8EAA8E;;aAE/E,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,EAAE,EAAE,IAAA,SAAE,GAAE;YACR,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE;gBACJ,eAAe;gBACf,8CAA8C,KAAK,CAAC,UAAU;qBAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;qBACtB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACd,uHAAuH;gBACvH,EAAE;gBACF,6DAA6D;gBAC7D,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnE,uGAAuG;gBACvG,EAAE;gBACF,gCAAgC;gBAChC,wDAAwD,KAAK,CAAC,UAAU,EAAE;gBAC1E,2DAA2D;gBAC3D,8DAA8D,KAAK,CAAC,UAAU,EAAE;gBAChF,EAAE;gBACF,qFAAqF,KAAK,CAAC,UAAU,EAAE;gBACvG,mCAAmC,KAAK,CAAC,UAAU,IAAI;gBACvD,8BAA8B;gBAC9B,EAAE;gBACF,iCAAiC;gBACjC,KAAK,MAAA,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,UAAU,CAAC,0CAAE,MAAM,EAAE;aAC/E,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF,CAAC;AACJ,CAAC,CAAC;AApFW,QAAA,8BAA8B,kCAoFzC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ILlmSchema } from "@samchon/openapi";
|
|
2
|
+
import { AutoBeContext } from "../../context/AutoBeContext";
|
|
3
|
+
import { IFile } from "./AutoBeAnalyzeFileSystem";
|
|
4
|
+
import { AutoBeAnalyzePointer } from "./AutoBeAnalyzePointer";
|
|
5
|
+
import { AutoBeAnalyzeRole } from "./AutoBeAnalyzeRole";
|
|
6
|
+
export declare function writeDocumentUntilReviewPassed<Model extends ILlmSchema.Model>(ctx: AutoBeContext<Model>, pointer: AutoBeAnalyzePointer, totalFiles: Pick<IFile, "filename" | "reason">[], filename: string, roles: AutoBeAnalyzeRole[], retry?: number): Promise<AutoBeAnalyzePointer>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.writeDocumentUntilReviewPassed = writeDocumentUntilReviewPassed;
|
|
13
|
+
const orchestrateAnalyzeReviewer_1 = require("./orchestrateAnalyzeReviewer");
|
|
14
|
+
const orchestrateAnalyzeWrite_1 = require("./orchestrateAnalyzeWrite");
|
|
15
|
+
function writeDocumentUntilReviewPassed(ctx_1, pointer_1, totalFiles_1, filename_1, roles_1) {
|
|
16
|
+
return __awaiter(this, arguments, void 0, function* (ctx, pointer, totalFiles, filename, roles, retry = 3) {
|
|
17
|
+
var _a, _b, _c, _d;
|
|
18
|
+
const isAborted = { value: false };
|
|
19
|
+
let review = null;
|
|
20
|
+
for (let i = 0; i < retry; i++) {
|
|
21
|
+
if (isAborted.value === true) {
|
|
22
|
+
return pointer;
|
|
23
|
+
}
|
|
24
|
+
// Write the document until the review is passed.
|
|
25
|
+
const write = "Write Document OR Abort.";
|
|
26
|
+
const writer = (0, orchestrateAnalyzeWrite_1.orchestrateAnalyzeWrite)(ctx, {
|
|
27
|
+
totalFiles: totalFiles,
|
|
28
|
+
roles: roles,
|
|
29
|
+
targetFile: filename,
|
|
30
|
+
review,
|
|
31
|
+
}, pointer, isAborted);
|
|
32
|
+
yield writer.conversate(review !== null && review !== void 0 ? review : write).finally(() => {
|
|
33
|
+
const tokenUsage = writer.getTokenUsage();
|
|
34
|
+
ctx.usage().record(tokenUsage, ["analyze"]);
|
|
35
|
+
});
|
|
36
|
+
if (pointer.value === null) {
|
|
37
|
+
throw new Error("Failed to write document by unknown reason.");
|
|
38
|
+
}
|
|
39
|
+
ctx.dispatch({
|
|
40
|
+
type: "analyzeWrite",
|
|
41
|
+
files: pointer.value.files,
|
|
42
|
+
step: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
|
|
43
|
+
created_at: new Date().toISOString(),
|
|
44
|
+
});
|
|
45
|
+
// Do review
|
|
46
|
+
review = yield (0, orchestrateAnalyzeReviewer_1.orchestrateAnalyzeReviewer)(ctx, pointer.value);
|
|
47
|
+
if (review !== null)
|
|
48
|
+
ctx.dispatch({
|
|
49
|
+
type: "analyzeReview",
|
|
50
|
+
review,
|
|
51
|
+
step: (_d = (_c = ctx.state().analyze) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 0,
|
|
52
|
+
created_at: new Date().toISOString(),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return pointer;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=writeDocumentUntilReviewPassed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writeDocumentUntilReviewPassed.js","sourceRoot":"","sources":["../../../src/orchestrate/analyze/writeDocumentUntilReviewPassed.ts"],"names":[],"mappings":";;;;;;;;;;;AAUA,wEAuDC;AA1DD,6EAA0E;AAC1E,uEAAoE;AAEpE,SAAsB,8BAA8B;yDAGlD,GAAyB,EACzB,OAA6B,EAC7B,UAAgD,EAChD,QAAgB,EAChB,KAA0B,EAC1B,KAAK,GAAG,CAAC;;QAET,MAAM,SAAS,GAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACtD,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,iDAAiD;YACjD,MAAM,KAAK,GAAG,0BAAmC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAA,iDAAuB,EACpC,GAAG,EACH;gBACE,UAAU,EAAE,UAAU;gBACtB,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,QAAQ;gBACpB,MAAM;aACP,EACD,OAAO,EACP,SAAS,CACV,CAAC;YACF,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1C,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK;gBAC1B,IAAI,EAAE,MAAA,MAAA,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,0CAAE,IAAI,mCAAI,CAAC;gBACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;YAEH,YAAY;YACZ,MAAM,GAAG,MAAM,IAAA,uDAA0B,EAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,MAAM,KAAK,IAAI;gBACjB,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,eAAe;oBACrB,MAAM;oBACN,IAAI,EAAE,MAAA,MAAA,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,0CAAE,IAAI,mCAAI,CAAC;oBACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACrC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CAAA"}
|
|
@@ -46,7 +46,6 @@ const orchestrateInterface = (ctx) => (props) => __awaiter(void 0, void 0, void
|
|
|
46
46
|
type: "interface",
|
|
47
47
|
id: (0, uuid_1.v4)(),
|
|
48
48
|
document,
|
|
49
|
-
files: yield ctx.compiler.interface.compile(document),
|
|
50
49
|
reason: props.reason,
|
|
51
50
|
step: (_d = (_c = ctx.state().analyze) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 0,
|
|
52
51
|
created_at: start.toISOString(),
|
|
@@ -56,7 +55,6 @@ const orchestrateInterface = (ctx) => (props) => __awaiter(void 0, void 0, void
|
|
|
56
55
|
ctx.histories().push(result);
|
|
57
56
|
ctx.dispatch({
|
|
58
57
|
type: "interfaceComplete",
|
|
59
|
-
files: result.files,
|
|
60
58
|
document: result.document,
|
|
61
59
|
created_at: start.toISOString(),
|
|
62
60
|
reason: props.reason,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrateInterface.js","sourceRoot":"","sources":["../../../src/orchestrate/interface/orchestrateInterface.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,+BAA0B;AAI1B,qFAAkF;AAClF,qFAAkF;AAClF,mFAAgF;AAChF,qFAAkF;AAE3E,MAAM,oBAAoB,GAC/B,CAAiC,GAAyB,EAAE,EAAE,CAC9D,CACE,KAA8B,EACmC,EAAE;;IACnE,YAAY;IACZ,MAAM,KAAK,GAAS,IAAI,IAAI,EAAE,CAAC;IAC/B,GAAG,CAAC,QAAQ,CAAC;QACX,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE;QAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,MAAA,MAAA,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,0CAAE,IAAI,mCAAI,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,IAAI,GACR,MAAM,IAAA,6DAA6B,EAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;;QAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1B,aAAa;IACb,MAAM,UAAU,GACd,MAAM,IAAA,+DAA8B,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5D,eAAe;IACf,MAAM,QAAQ,GAA4B;QACxC,UAAU;QACV,UAAU,EAAE,MAAM,IAAA,+DAA8B,EAAC,GAAG,EAAE,UAAU,CAAC;KAClE,CAAC;IACF,QAAQ,CAAC,UAAU,GAAG,MAAM,IAAA,+DAA8B,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE1E,aAAa;IACb,MAAM,MAAM,GAA2B;QACrC,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,IAAA,SAAE,GAAE;QACR,QAAQ;QACR,
|
|
1
|
+
{"version":3,"file":"orchestrateInterface.js","sourceRoot":"","sources":["../../../src/orchestrate/interface/orchestrateInterface.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQA,+BAA0B;AAI1B,qFAAkF;AAClF,qFAAkF;AAClF,mFAAgF;AAChF,qFAAkF;AAE3E,MAAM,oBAAoB,GAC/B,CAAiC,GAAyB,EAAE,EAAE,CAC9D,CACE,KAA8B,EACmC,EAAE;;IACnE,YAAY;IACZ,MAAM,KAAK,GAAS,IAAI,IAAI,EAAE,CAAC;IAC/B,GAAG,CAAC,QAAQ,CAAC;QACX,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE;QAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,MAAA,MAAA,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,0CAAE,IAAI,mCAAI,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,IAAI,GACR,MAAM,IAAA,6DAA6B,EAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACrC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnB,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;;QAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1B,aAAa;IACb,MAAM,UAAU,GACd,MAAM,IAAA,+DAA8B,EAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5D,eAAe;IACf,MAAM,QAAQ,GAA4B;QACxC,UAAU;QACV,UAAU,EAAE,MAAM,IAAA,+DAA8B,EAAC,GAAG,EAAE,UAAU,CAAC;KAClE,CAAC;IACF,QAAQ,CAAC,UAAU,GAAG,MAAM,IAAA,+DAA8B,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE1E,aAAa;IACb,MAAM,MAAM,GAA2B;QACrC,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,IAAA,SAAE,GAAE;QACR,QAAQ;QACR,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,MAAA,MAAA,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,0CAAE,IAAI,mCAAI,CAAC;QACpC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE;QAC/B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;IACF,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC;IAC/B,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,QAAQ,CAAC;QACX,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE;QAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,MAAA,MAAA,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,0CAAE,IAAI,mCAAI,CAAC;KACE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA,CAAC;AArDS,QAAA,oBAAoB,wBAqD7B"}
|
|
@@ -59,6 +59,7 @@ const forceRetry_1 = require("../../utils/forceRetry");
|
|
|
59
59
|
const transformInterfaceHistories_1 = require("./transformInterfaceHistories");
|
|
60
60
|
function orchestrateInterfaceComponents(ctx_1, operations_1) {
|
|
61
61
|
return __awaiter(this, arguments, void 0, function* (ctx, operations, capacity = 12) {
|
|
62
|
+
var _a;
|
|
62
63
|
const typeNames = new Set();
|
|
63
64
|
for (const op of operations) {
|
|
64
65
|
if (op.requestBody !== null)
|
|
@@ -73,6 +74,7 @@ function orchestrateInterfaceComponents(ctx_1, operations_1) {
|
|
|
73
74
|
let progress = 0;
|
|
74
75
|
const x = {
|
|
75
76
|
schemas: {},
|
|
77
|
+
authorization: (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.roles,
|
|
76
78
|
};
|
|
77
79
|
for (const y of yield Promise.all(matrix.map((it) => __awaiter(this, void 0, void 0, function* () {
|
|
78
80
|
var _a, _b;
|
|
@@ -90,8 +92,6 @@ function orchestrateInterfaceComponents(ctx_1, operations_1) {
|
|
|
90
92
|
return row;
|
|
91
93
|
})))) {
|
|
92
94
|
Object.assign(x.schemas, y.schemas);
|
|
93
|
-
if (y.authorization)
|
|
94
|
-
x.authorization = y.authorization;
|
|
95
95
|
}
|
|
96
96
|
return x;
|
|
97
97
|
});
|
|
@@ -148,12 +148,10 @@ function process(ctx, operations, oldbie, remained) {
|
|
|
148
148
|
createApplication({
|
|
149
149
|
model: ctx.model,
|
|
150
150
|
build: (components) => __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
var _a
|
|
152
|
-
var _c;
|
|
151
|
+
var _a;
|
|
153
152
|
(_a = pointer.value) !== null && _a !== void 0 ? _a : (pointer.value = {
|
|
154
153
|
schemas: {},
|
|
155
154
|
});
|
|
156
|
-
(_b = (_c = pointer.value).authorization) !== null && _b !== void 0 ? _b : (_c.authorization = components.authorization);
|
|
157
155
|
Object.assign(pointer.value.schemas, components.schemas);
|
|
158
156
|
}),
|
|
159
157
|
pointer,
|
|
@@ -222,7 +220,7 @@ const claude = {
|
|
|
222
220
|
properties: {
|
|
223
221
|
components: {
|
|
224
222
|
description: "Complete set of schema components for the OpenAPI specification.\n\nThis property contains comprehensive type definitions for all entities in\nthe system. It is the central repository of all named schema types that\nwill be used throughout the API specification.\n\nCRITICAL REQUIREMENT: All object types MUST be defined as named types in\nthe components.schemas section. Inline anonymous object definitions are\nstrictly prohibited.\n\nThis components object should include:\n\n- Main entity types (IEntityName)\n- Operation-specific variants (.ICreate, .IUpdate, .ISummary, etc.)\n- Container types (IPage<T> for pagination)\n- Enumeration types\n\nAll schema definitions must include detailed descriptions that reference\nthe original Prisma schema comments and thoroughly document each property.\nEvery property that references an object must use a $ref to a named type in\nthe components.schemas section. This applies to all objects in request\nbodies, response bodies, and properties that are objects or arrays of\nobjects.\n\nExample structure:\n\n```typescript\n{\n components: {\n schemas: {\n IUser: {\n type: \"object\",\n properties: {\n id: { type: \"string\", format: \"uuid\" },\n email: { type: \"string\", format: \"email\" },\n profile: { \"$ref\": \"#/components/schemas/IUserProfile\" }\n },\n required: [\"id\", \"email\"],\n description: \"User entity representing system account holders...\"\n },\n \"IUser.ICreate\": { ... },\n // Additional schemas\n }\n }\n}\n```",
|
|
225
|
-
$ref: "#/$defs/
|
|
223
|
+
$ref: "#/$defs/OmitAutoBeOpenApi.IComponentsauthorization"
|
|
226
224
|
}
|
|
227
225
|
},
|
|
228
226
|
required: [
|
|
@@ -230,40 +228,13 @@ const claude = {
|
|
|
230
228
|
],
|
|
231
229
|
additionalProperties: false,
|
|
232
230
|
$defs: {
|
|
233
|
-
"
|
|
234
|
-
description: "
|
|
231
|
+
"OmitAutoBeOpenApi.IComponentsauthorization": {
|
|
232
|
+
description: "Construct a type with the properties of T except for those in type K.",
|
|
235
233
|
type: "object",
|
|
236
234
|
properties: {
|
|
237
235
|
schemas: {
|
|
238
236
|
description: "An object to hold reusable DTO schemas.\n\nIn other words, a collection of named JSON schemas.\n\nIMPORTANT: For each schema in this collection:\n\n1. EVERY schema MUST have a detailed description that references and aligns\n with the description comments from the corresponding Prisma DB schema\n tables\n2. EACH property within the schema MUST have detailed descriptions that\n reference and align with the description comments from the\n corresponding DB schema columns\n3. All descriptions MUST be organized into MULTIPLE PARAGRAPHS (separated by\n line breaks) when appropriate\n4. Descriptions should be comprehensive enough that anyone reading them can\n understand the purpose, functionality, and constraints of each type\n and property without needing to reference other documentation",
|
|
239
237
|
$ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema"
|
|
240
|
-
},
|
|
241
|
-
authorization: {
|
|
242
|
-
description: "Whether includes `Authorization` header or not.",
|
|
243
|
-
type: "object",
|
|
244
|
-
properties: {
|
|
245
|
-
roles: {
|
|
246
|
-
type: "array",
|
|
247
|
-
items: {
|
|
248
|
-
type: "object",
|
|
249
|
-
properties: {
|
|
250
|
-
title: {
|
|
251
|
-
type: "string"
|
|
252
|
-
},
|
|
253
|
-
description: {
|
|
254
|
-
type: "string"
|
|
255
|
-
}
|
|
256
|
-
},
|
|
257
|
-
required: [
|
|
258
|
-
"title",
|
|
259
|
-
"description"
|
|
260
|
-
]
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
},
|
|
264
|
-
required: [
|
|
265
|
-
"roles"
|
|
266
|
-
]
|
|
267
238
|
}
|
|
268
239
|
},
|
|
269
240
|
required: [
|
|
@@ -295,18 +266,18 @@ const claude = {
|
|
|
295
266
|
}
|
|
296
267
|
},
|
|
297
268
|
description: "Generate OpenAPI components containing named schema types.\n\nThis method receives a complete set of schema components and integrates\nthem into the final OpenAPI specification. It processes all entity schemas,\ntheir variants, and related type definitions to ensure a comprehensive and\nconsistent API design.\n\nThe provided components should include schemas for all entities identified\nin the previous phases of API path/method definition and operation\ncreation. This ensures that the final OpenAPI document has complete type\ncoverage for all operations.\n\nCRITICAL: All schema definitions must follow the established naming\nconventions (IEntityName, IEntityName.ICreate, etc.) and must be thoroughly\ndocumented with descriptions that reference the original Prisma schema\ncomments.",
|
|
298
|
-
validate: (() => { const _io0 = input => "object" === typeof input.components && null !== input.components && _io1(input.components); const _io1 = input => "object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) && _io2(input.schemas)
|
|
269
|
+
validate: (() => { const _io0 = input => "object" === typeof input.components && null !== input.components && _io1(input.components); const _io1 = input => "object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) && _io2(input.schemas); const _io2 = input => Object.keys(input).every(key => {
|
|
299
270
|
const value = input[key];
|
|
300
271
|
if (undefined === value)
|
|
301
272
|
return true;
|
|
302
273
|
return "object" === typeof value && null !== value && _io3(value);
|
|
303
|
-
}); const _io3 = input => "string" === typeof input.description; const
|
|
274
|
+
}); const _io3 = input => "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.components && null !== input.components || _report(_exceptionable, {
|
|
304
275
|
path: _path + ".components",
|
|
305
|
-
expected: "AutoBeOpenApi.IComponents",
|
|
276
|
+
expected: "Omit<AutoBeOpenApi.IComponents, \"authorization\">",
|
|
306
277
|
value: input.components
|
|
307
278
|
})) && _vo1(input.components, _path + ".components", true && _exceptionable) || _report(_exceptionable, {
|
|
308
279
|
path: _path + ".components",
|
|
309
|
-
expected: "AutoBeOpenApi.IComponents",
|
|
280
|
+
expected: "Omit<AutoBeOpenApi.IComponents, \"authorization\">",
|
|
310
281
|
value: input.components
|
|
311
282
|
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) || _report(_exceptionable, {
|
|
312
283
|
path: _path + ".schemas",
|
|
@@ -316,14 +287,6 @@ const claude = {
|
|
|
316
287
|
path: _path + ".schemas",
|
|
317
288
|
expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
|
|
318
289
|
value: input.schemas
|
|
319
|
-
}), undefined === input.authorization || ("object" === typeof input.authorization && null !== input.authorization || _report(_exceptionable, {
|
|
320
|
-
path: _path + ".authorization",
|
|
321
|
-
expected: "(__type | undefined)",
|
|
322
|
-
value: input.authorization
|
|
323
|
-
})) && _vo4(input.authorization, _path + ".authorization", true && _exceptionable) || _report(_exceptionable, {
|
|
324
|
-
path: _path + ".authorization",
|
|
325
|
-
expected: "(__type | undefined)",
|
|
326
|
-
value: input.authorization
|
|
327
290
|
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
|
|
328
291
|
const value = input[key];
|
|
329
292
|
if (undefined === value)
|
|
@@ -341,30 +304,6 @@ const claude = {
|
|
|
341
304
|
path: _path + ".description",
|
|
342
305
|
expected: "string",
|
|
343
306
|
value: input.description
|
|
344
|
-
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [(Array.isArray(input.roles) || _report(_exceptionable, {
|
|
345
|
-
path: _path + ".roles",
|
|
346
|
-
expected: "Array<__type>",
|
|
347
|
-
value: input.roles
|
|
348
|
-
})) && input.roles.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
349
|
-
path: _path + ".roles[" + _index2 + "]",
|
|
350
|
-
expected: "__type.o1",
|
|
351
|
-
value: elem
|
|
352
|
-
})) && _vo5(elem, _path + ".roles[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
353
|
-
path: _path + ".roles[" + _index2 + "]",
|
|
354
|
-
expected: "__type.o1",
|
|
355
|
-
value: elem
|
|
356
|
-
})).every(flag => flag) || _report(_exceptionable, {
|
|
357
|
-
path: _path + ".roles",
|
|
358
|
-
expected: "Array<__type>",
|
|
359
|
-
value: input.roles
|
|
360
|
-
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.title || _report(_exceptionable, {
|
|
361
|
-
path: _path + ".title",
|
|
362
|
-
expected: "string",
|
|
363
|
-
value: input.title
|
|
364
|
-
}), "string" === typeof input.description || _report(_exceptionable, {
|
|
365
|
-
path: _path + ".description",
|
|
366
|
-
expected: "string",
|
|
367
|
-
value: input.description
|
|
368
307
|
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
369
308
|
if (false === __is(input)) {
|
|
370
309
|
errors = [];
|
|
@@ -412,7 +351,7 @@ const collection = {
|
|
|
412
351
|
type: "object",
|
|
413
352
|
properties: {
|
|
414
353
|
components: {
|
|
415
|
-
$ref: "#/$defs/
|
|
354
|
+
$ref: "#/$defs/OmitAutoBeOpenApi.IComponentsauthorization"
|
|
416
355
|
}
|
|
417
356
|
},
|
|
418
357
|
required: [
|
|
@@ -420,39 +359,12 @@ const collection = {
|
|
|
420
359
|
],
|
|
421
360
|
additionalProperties: false,
|
|
422
361
|
$defs: {
|
|
423
|
-
"
|
|
424
|
-
description: "
|
|
362
|
+
"OmitAutoBeOpenApi.IComponentsauthorization": {
|
|
363
|
+
description: "Construct a type with the properties of T except for those in type K.\n\n### Description of {@link schemas} property:\n\n> An object to hold reusable DTO schemas.\n> \n> In other words, a collection of named JSON schemas.\n> \n> IMPORTANT: For each schema in this collection:\n> \n> 1. EVERY schema MUST have a detailed description that references and aligns\n> with the description comments from the corresponding Prisma DB schema\n> tables\n> 2. EACH property within the schema MUST have detailed descriptions that\n> reference and align with the description comments from the\n> corresponding DB schema columns\n> 3. All descriptions MUST be organized into MULTIPLE PARAGRAPHS (separated by\n> line breaks) when appropriate\n> 4. Descriptions should be comprehensive enough that anyone reading them can\n> understand the purpose, functionality, and constraints of each type\n> and property without needing to reference other documentation",
|
|
425
364
|
type: "object",
|
|
426
365
|
properties: {
|
|
427
366
|
schemas: {
|
|
428
367
|
$ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchemaDescriptiveAutoBeOpenApi.IJsonSchema"
|
|
429
|
-
},
|
|
430
|
-
authorization: {
|
|
431
|
-
description: "Whether includes `Authorization` header or not.",
|
|
432
|
-
type: "object",
|
|
433
|
-
properties: {
|
|
434
|
-
roles: {
|
|
435
|
-
type: "array",
|
|
436
|
-
items: {
|
|
437
|
-
type: "object",
|
|
438
|
-
properties: {
|
|
439
|
-
title: {
|
|
440
|
-
type: "string"
|
|
441
|
-
},
|
|
442
|
-
description: {
|
|
443
|
-
type: "string"
|
|
444
|
-
}
|
|
445
|
-
},
|
|
446
|
-
required: [
|
|
447
|
-
"title",
|
|
448
|
-
"description"
|
|
449
|
-
]
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
|
-
required: [
|
|
454
|
-
"roles"
|
|
455
|
-
]
|
|
456
368
|
}
|
|
457
369
|
},
|
|
458
370
|
required: [
|
|
@@ -484,18 +396,18 @@ const collection = {
|
|
|
484
396
|
}
|
|
485
397
|
},
|
|
486
398
|
description: "Generate OpenAPI components containing named schema types.\n\nThis method receives a complete set of schema components and integrates\nthem into the final OpenAPI specification. It processes all entity schemas,\ntheir variants, and related type definitions to ensure a comprehensive and\nconsistent API design.\n\nThe provided components should include schemas for all entities identified\nin the previous phases of API path/method definition and operation\ncreation. This ensures that the final OpenAPI document has complete type\ncoverage for all operations.\n\nCRITICAL: All schema definitions must follow the established naming\nconventions (IEntityName, IEntityName.ICreate, etc.) and must be thoroughly\ndocumented with descriptions that reference the original Prisma schema\ncomments.",
|
|
487
|
-
validate: (() => { const _io0 = input => "object" === typeof input.components && null !== input.components && _io1(input.components); const _io1 = input => "object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) && _io2(input.schemas)
|
|
399
|
+
validate: (() => { const _io0 = input => "object" === typeof input.components && null !== input.components && _io1(input.components); const _io1 = input => "object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) && _io2(input.schemas); const _io2 = input => Object.keys(input).every(key => {
|
|
488
400
|
const value = input[key];
|
|
489
401
|
if (undefined === value)
|
|
490
402
|
return true;
|
|
491
403
|
return "object" === typeof value && null !== value && _io3(value);
|
|
492
|
-
}); const _io3 = input => "string" === typeof input.description; const
|
|
404
|
+
}); const _io3 = input => "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.components && null !== input.components || _report(_exceptionable, {
|
|
493
405
|
path: _path + ".components",
|
|
494
|
-
expected: "AutoBeOpenApi.IComponents",
|
|
406
|
+
expected: "Omit<AutoBeOpenApi.IComponents, \"authorization\">",
|
|
495
407
|
value: input.components
|
|
496
408
|
})) && _vo1(input.components, _path + ".components", true && _exceptionable) || _report(_exceptionable, {
|
|
497
409
|
path: _path + ".components",
|
|
498
|
-
expected: "AutoBeOpenApi.IComponents",
|
|
410
|
+
expected: "Omit<AutoBeOpenApi.IComponents, \"authorization\">",
|
|
499
411
|
value: input.components
|
|
500
412
|
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.schemas && null !== input.schemas && false === Array.isArray(input.schemas) || _report(_exceptionable, {
|
|
501
413
|
path: _path + ".schemas",
|
|
@@ -505,14 +417,6 @@ const collection = {
|
|
|
505
417
|
path: _path + ".schemas",
|
|
506
418
|
expected: "Record<string, AutoBeOpenApi.IJsonSchemaDescriptive<AutoBeOpenApi.IJsonSchema>>",
|
|
507
419
|
value: input.schemas
|
|
508
|
-
}), undefined === input.authorization || ("object" === typeof input.authorization && null !== input.authorization || _report(_exceptionable, {
|
|
509
|
-
path: _path + ".authorization",
|
|
510
|
-
expected: "(__type | undefined)",
|
|
511
|
-
value: input.authorization
|
|
512
|
-
})) && _vo4(input.authorization, _path + ".authorization", true && _exceptionable) || _report(_exceptionable, {
|
|
513
|
-
path: _path + ".authorization",
|
|
514
|
-
expected: "(__type | undefined)",
|
|
515
|
-
value: input.authorization
|
|
516
420
|
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => [false === _exceptionable || Object.keys(input).map(key => {
|
|
517
421
|
const value = input[key];
|
|
518
422
|
if (undefined === value)
|
|
@@ -530,30 +434,6 @@ const collection = {
|
|
|
530
434
|
path: _path + ".description",
|
|
531
435
|
expected: "string",
|
|
532
436
|
value: input.description
|
|
533
|
-
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [(Array.isArray(input.roles) || _report(_exceptionable, {
|
|
534
|
-
path: _path + ".roles",
|
|
535
|
-
expected: "Array<__type>",
|
|
536
|
-
value: input.roles
|
|
537
|
-
})) && input.roles.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
538
|
-
path: _path + ".roles[" + _index2 + "]",
|
|
539
|
-
expected: "__type.o1",
|
|
540
|
-
value: elem
|
|
541
|
-
})) && _vo5(elem, _path + ".roles[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
542
|
-
path: _path + ".roles[" + _index2 + "]",
|
|
543
|
-
expected: "__type.o1",
|
|
544
|
-
value: elem
|
|
545
|
-
})).every(flag => flag) || _report(_exceptionable, {
|
|
546
|
-
path: _path + ".roles",
|
|
547
|
-
expected: "Array<__type>",
|
|
548
|
-
value: input.roles
|
|
549
|
-
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.title || _report(_exceptionable, {
|
|
550
|
-
path: _path + ".title",
|
|
551
|
-
expected: "string",
|
|
552
|
-
value: input.title
|
|
553
|
-
}), "string" === typeof input.description || _report(_exceptionable, {
|
|
554
|
-
path: _path + ".description",
|
|
555
|
-
expected: "string",
|
|
556
|
-
value: input.description
|
|
557
437
|
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
558
438
|
if (false === __is(input)) {
|
|
559
439
|
errors = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrateInterfaceComponents.js","sourceRoot":"","sources":["../../../src/orchestrate/interface/orchestrateInterfaceComponents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,wEA+CC;;;AA/DD,yCAAoE;AAGpE,2FAAwF;AAExF,kDAA0B;AAC1B,+BAA0B;AAI1B,uEAAoE;AACpE,yDAAsD;AACtD,iEAA8D;AAC9D,uDAAoD;AACpD,+EAA4E;AAE5E,SAAsB,8BAA8B;yDAGlD,GAAyB,EACzB,UAAsC,EACtC,WAAmB,EAAE
|
|
1
|
+
{"version":3,"file":"orchestrateInterfaceComponents.js","sourceRoot":"","sources":["../../../src/orchestrate/interface/orchestrateInterfaceComponents.ts"],"names":[],"mappings":"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"}
|