@autobe/agent 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/lib/AutoBeAgent.js +4 -4
  2. package/lib/AutoBeAgent.js.map +1 -1
  3. package/lib/constants/AutoBeSystemPromptConstant.d.ts +5 -2
  4. package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
  5. package/lib/context/AutoBeContext.d.ts +2 -2
  6. package/lib/context/IAutoBeApplicationProps.d.ts +6 -0
  7. package/lib/factory/createAgenticaHistory.js +1 -0
  8. package/lib/factory/createAgenticaHistory.js.map +1 -1
  9. package/lib/factory/createAutoBeApplication.js +17 -17
  10. package/lib/factory/createAutoBeApplication.js.map +1 -1
  11. package/lib/index.mjs +6228 -4563
  12. package/lib/index.mjs.map +1 -1
  13. package/lib/{analyze → orchestrate/analyze}/AutoBeAnalyzeAgent.d.ts +4 -8
  14. package/lib/{analyze → orchestrate/analyze}/AutoBeAnalyzeAgent.js +25 -20
  15. package/lib/orchestrate/analyze/AutoBeAnalyzeAgent.js.map +1 -0
  16. package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.js.map +1 -0
  17. package/lib/orchestrate/analyze/AutoBeAnalyzePointer.d.ts +9 -0
  18. package/lib/orchestrate/analyze/AutoBeAnalyzePointer.js +3 -0
  19. package/lib/orchestrate/analyze/AutoBeAnalyzePointer.js.map +1 -0
  20. package/lib/{analyze → orchestrate/analyze}/AutoBeAnalyzeReviewer.d.ts +1 -1
  21. package/lib/{analyze → orchestrate/analyze}/AutoBeAnalyzeReviewer.js +8 -5
  22. package/lib/orchestrate/analyze/AutoBeAnalyzeReviewer.js.map +1 -0
  23. package/lib/orchestrate/analyze/orchestrateAnalyze.d.ts +31 -0
  24. package/lib/orchestrate/{orchestrateAnalyze.js → analyze/orchestrateAnalyze.js} +200 -59
  25. package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -0
  26. package/lib/orchestrate/facade/transformFacadeStateMessage.js +1 -1
  27. package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +1 -1
  28. package/lib/orchestrate/index.d.ts +3 -3
  29. package/lib/orchestrate/index.js +6 -6
  30. package/lib/orchestrate/index.js.map +1 -1
  31. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +8 -1
  32. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  33. package/lib/orchestrate/interface/orchestrateInterfaceComponents.js +6 -1
  34. package/lib/orchestrate/interface/orchestrateInterfaceComponents.js.map +1 -1
  35. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +3 -1
  36. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  37. package/lib/orchestrate/interface/transformInterfaceHistories.js +41 -0
  38. package/lib/orchestrate/interface/transformInterfaceHistories.js.map +1 -1
  39. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +6 -5
  40. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  41. package/lib/orchestrate/prisma/transformPrismaComponentsHistories.d.ts +1 -1
  42. package/lib/orchestrate/prisma/transformPrismaComponentsHistories.js +28 -1
  43. package/lib/orchestrate/prisma/transformPrismaComponentsHistories.js.map +1 -1
  44. package/lib/orchestrate/prisma/transformPrismaCorrectHistories.js +9 -0
  45. package/lib/orchestrate/prisma/transformPrismaCorrectHistories.js.map +1 -1
  46. package/lib/orchestrate/prisma/transformPrismaHistories.js +9 -0
  47. package/lib/orchestrate/prisma/transformPrismaHistories.js.map +1 -1
  48. package/lib/orchestrate/prisma/transformPrismaSchemaHistories.js +7 -0
  49. package/lib/orchestrate/prisma/transformPrismaSchemaHistories.js.map +1 -1
  50. package/lib/orchestrate/{orchestrateTest.d.ts → test/orchestrateTest.d.ts} +2 -2
  51. package/lib/orchestrate/test/orchestrateTest.js +70 -0
  52. package/lib/orchestrate/test/orchestrateTest.js.map +1 -0
  53. package/lib/orchestrate/test/orchestrateTestCorrect.d.ts +4 -0
  54. package/lib/orchestrate/test/orchestrateTestCorrect.js +543 -0
  55. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -0
  56. package/lib/orchestrate/test/orchestrateTestProgress.d.ts +4 -0
  57. package/lib/orchestrate/test/orchestrateTestProgress.js +403 -0
  58. package/lib/orchestrate/test/orchestrateTestProgress.js.map +1 -0
  59. package/lib/orchestrate/test/orchestrateTestScenario.d.ts +4 -0
  60. package/lib/orchestrate/test/orchestrateTestScenario.js +700 -0
  61. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -0
  62. package/lib/orchestrate/test/transformTestCorrectHistories.d.ts +2 -0
  63. package/lib/orchestrate/test/transformTestCorrectHistories.js +47 -0
  64. package/lib/orchestrate/test/transformTestCorrectHistories.js.map +1 -0
  65. package/lib/orchestrate/test/transformTestHistories.d.ts +3 -0
  66. package/lib/orchestrate/test/transformTestHistories.js +74 -0
  67. package/lib/orchestrate/test/transformTestHistories.js.map +1 -0
  68. package/lib/orchestrate/test/transformTestProgressHistories.d.ts +2 -0
  69. package/lib/orchestrate/test/transformTestProgressHistories.js +47 -0
  70. package/lib/orchestrate/test/transformTestProgressHistories.js.map +1 -0
  71. package/lib/orchestrate/test/transformTestScenarioHistories.d.ts +4 -0
  72. package/lib/orchestrate/test/transformTestScenarioHistories.js +176 -0
  73. package/lib/orchestrate/test/transformTestScenarioHistories.js.map +1 -0
  74. package/lib/structures/IAutoBeVendor.d.ts +45 -2
  75. package/package.json +6 -6
  76. package/src/AutoBeAgent.ts +5 -3
  77. package/src/constants/AutoBeSystemPromptConstant.ts +5 -2
  78. package/src/context/AutoBeContext.ts +2 -2
  79. package/src/context/IAutoBeApplicationProps.ts +6 -0
  80. package/src/factory/createAgenticaHistory.ts +1 -0
  81. package/src/factory/createAutoBeApplication.ts +2 -2
  82. package/src/{analyze → orchestrate/analyze}/AutoBeAnalyzeAgent.ts +38 -36
  83. package/src/orchestrate/analyze/AutoBeAnalyzePointer.ts +10 -0
  84. package/src/{analyze → orchestrate/analyze}/AutoBeAnalyzeReviewer.ts +9 -6
  85. package/src/orchestrate/{orchestrateAnalyze.ts → analyze/orchestrateAnalyze.ts} +91 -39
  86. package/src/orchestrate/index.ts +3 -3
  87. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +8 -1
  88. package/src/orchestrate/interface/orchestrateInterfaceComponents.ts +6 -1
  89. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +3 -1
  90. package/src/orchestrate/interface/transformInterfaceHistories.ts +40 -0
  91. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +4 -1
  92. package/src/orchestrate/prisma/transformPrismaComponentsHistories.ts +28 -0
  93. package/src/orchestrate/prisma/transformPrismaCorrectHistories.ts +9 -0
  94. package/src/orchestrate/prisma/transformPrismaHistories.ts +9 -0
  95. package/src/orchestrate/prisma/transformPrismaSchemaHistories.ts +7 -0
  96. package/src/orchestrate/test/orchestrateTest.ts +86 -0
  97. package/src/orchestrate/test/orchestrateTestCorrect.ts +368 -0
  98. package/src/orchestrate/test/orchestrateTestProgress.ts +264 -0
  99. package/src/orchestrate/test/orchestrateTestScenario.ts +178 -0
  100. package/src/orchestrate/test/transformTestCorrectHistories.ts +51 -0
  101. package/src/orchestrate/test/transformTestHistories.ts +77 -0
  102. package/src/orchestrate/test/transformTestProgressHistories.ts +51 -0
  103. package/src/orchestrate/test/transformTestScenarioHistories.ts +184 -0
  104. package/src/structures/IAutoBeVendor.ts +48 -2
  105. package/lib/analyze/AnalyzeAgent.d.ts +0 -24
  106. package/lib/analyze/AnalyzeAgent.js +0 -942
  107. package/lib/analyze/AnalyzeAgent.js.map +0 -1
  108. package/lib/analyze/AutoBeAnalyzeAgent.js.map +0 -1
  109. package/lib/analyze/AutoBeAnalyzeFileSystem.js.map +0 -1
  110. package/lib/analyze/AutoBeAnalyzeReviewer.js.map +0 -1
  111. package/lib/orchestrate/orchestrateAnalyze.d.ts +0 -6
  112. package/lib/orchestrate/orchestrateAnalyze.js.map +0 -1
  113. package/lib/orchestrate/orchestrateTest.js +0 -19
  114. package/lib/orchestrate/orchestrateTest.js.map +0 -1
  115. package/src/analyze/AnalyzeAgent.ts +0 -183
  116. package/src/orchestrate/orchestrateTest.ts +0 -18
  117. /package/lib/{analyze → orchestrate/analyze}/AutoBeAnalyzeFileSystem.d.ts +0 -0
  118. /package/lib/{analyze → orchestrate/analyze}/AutoBeAnalyzeFileSystem.js +0 -0
  119. /package/src/{analyze → orchestrate/analyze}/AutoBeAnalyzeFileSystem.ts +0 -0
@@ -1,942 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- var __importDefault = (this && this.__importDefault) || function (mod) {
45
- return (mod && mod.__esModule) ? mod : { "default": mod };
46
- };
47
- Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.AnalyzeAgent = void 0;
49
- const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
50
- const core_1 = require("@agentica/core");
51
- const typia_1 = __importDefault(require("typia"));
52
- const assertSchemaModel_1 = require("../context/assertSchemaModel");
53
- const AutoBeAnalyzeFileSystem_1 = require("./AutoBeAnalyzeFileSystem");
54
- class AnalyzeAgent {
55
- constructor(createReviewerAgentFn, ctx, pointer) {
56
- this.createReviewerAgentFn = createReviewerAgentFn;
57
- this.ctx = ctx;
58
- this.pointer = pointer;
59
- this.fileMap = {};
60
- (0, assertSchemaModel_1.assertSchemaModel)(ctx.model);
61
- const controller = createController({
62
- model: ctx.model,
63
- execute: new AutoBeAnalyzeFileSystem_1.AutoBeAnalyzeFileSystem(this.fileMap),
64
- build: (files) => __awaiter(this, void 0, void 0, function* () {
65
- this.pointer.value = { files };
66
- }),
67
- });
68
- this.createInnerAgent = () => {
69
- const agent = new core_1.MicroAgentica({
70
- controllers: [controller],
71
- model: ctx.model,
72
- vendor: ctx.vendor,
73
- config: {
74
- systemPrompt: {
75
- common: () => {
76
- var _a, _b;
77
- return "# 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("{% Guidelines %}", "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 */).replace("{% User Locale %}", (_b = (_a = ctx.config) === null || _a === void 0 ? void 0 : _a.locale) !== null && _b !== void 0 ? _b : "en-US");
78
- },
79
- describe: () => {
80
- return "Answer only 'completion' or 'failure'.";
81
- },
82
- },
83
- },
84
- tokenUsage: ctx.usage(),
85
- histories: [],
86
- });
87
- return agent;
88
- };
89
- }
90
- /**
91
- * Conversate with planner agent
92
- *
93
- * @param content Conversation from user in this time.
94
- * @returns
95
- */
96
- conversate(content) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- var _a, _b, _c, _d;
99
- const response = yield this.createInnerAgent().conversate(content);
100
- const lastMessage = response[response.length - 1];
101
- if ("text" in lastMessage) {
102
- this.ctx.dispatch({
103
- type: "analyzeWriteDocument",
104
- files: this.fileMap,
105
- created_at: new Date().toISOString(),
106
- step: (_b = (_a = this.ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
107
- });
108
- const aborted = lastMessage.type === "describe" &&
109
- lastMessage.executes.some((el) => {
110
- if (el.protocol === "class" &&
111
- el.operation.function.name === "abort") {
112
- el.arguments;
113
- return true;
114
- }
115
- });
116
- if (aborted === true) {
117
- return lastMessage.text;
118
- }
119
- const currentFiles = JSON.stringify(this.fileMap);
120
- const reviewer = this.createReviewerAgentFn(this.ctx, {
121
- query: content,
122
- files: currentFiles,
123
- });
124
- const [review] = yield reviewer.conversate(lastMessage.text);
125
- if (review) {
126
- if (review.type === "assistantMessage") {
127
- this.ctx.dispatch({
128
- type: "analyzeReview",
129
- review: review.text,
130
- created_at: new Date().toISOString(),
131
- step: (_d = (_c = this.ctx.state().analyze) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 0,
132
- });
133
- return this.conversate(JSON.stringify({
134
- user_query: content,
135
- message: `THIS IS ANSWER OF REVIEW AGENT. FOLLOW THIS INSTRUCTIONS. AND DON\'T REQUEST ANYTHING.`,
136
- review: review.text,
137
- }));
138
- }
139
- }
140
- return `If the document is not 1,000 characters, please fill it out in more abundance, and if it exceeds 1,000 characters, please fill out the next document. If you don't have the next document, you can exit now.`;
141
- }
142
- return "COMPLETE";
143
- });
144
- }
145
- }
146
- exports.AnalyzeAgent = AnalyzeAgent;
147
- function createController(props) {
148
- (0, assertSchemaModel_1.assertSchemaModel)(props.model);
149
- const application = collection[props.model];
150
- return {
151
- protocol: "class",
152
- name: "AutoBeAnalyzeFileSystem",
153
- application,
154
- // execute: props.execute,
155
- execute: {
156
- removeFile: (input) => {
157
- const response = props.execute.removeFile(input);
158
- props.build(props.execute.allFiles());
159
- return response;
160
- },
161
- abort: (input) => {
162
- const response = props.execute.abort(input);
163
- props.build(props.execute.allFiles());
164
- return response;
165
- },
166
- createOrUpdateFiles: (input) => {
167
- const response = props.execute.createOrUpdateFiles(input);
168
- props.build(props.execute.allFiles());
169
- return response;
170
- },
171
- },
172
- };
173
- }
174
- const claude = {
175
- model: "claude",
176
- options: {
177
- reference: true,
178
- separate: null
179
- },
180
- functions: [
181
- {
182
- name: "createOrUpdateFiles",
183
- parameters: {
184
- type: "object",
185
- properties: {
186
- files: {
187
- type: "array",
188
- items: {
189
- description: "Current Type: {@link IFile}",
190
- type: "object",
191
- properties: {
192
- reason: {
193
- description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
194
- type: "string"
195
- },
196
- filename: {
197
- title: "Filename to generate or overwrite",
198
- description: "Filename to generate or overwrite.",
199
- type: "string",
200
- pattern: "((.*)\\.md)$"
201
- },
202
- markdown: {
203
- description: "Markdown file content. Only write the content of the file. Do not include\nany questions. This should contain only the contents of the file. Do not\nwrite down any questions or appreciation. For example, remove a sentence\nsuch as \"Is it okay if we proceed with the table of contents? Please let me\nknow if there is anything to add or exclude from the table of contents!\"",
204
- type: "string"
205
- }
206
- },
207
- required: [
208
- "reason",
209
- "filename",
210
- "markdown"
211
- ]
212
- },
213
- minItems: 1
214
- }
215
- },
216
- required: [
217
- "files"
218
- ],
219
- additionalProperties: false,
220
- $defs: {}
221
- },
222
- validate: (() => { const _io0 = input => Array.isArray(input.files) && (1 <= input.files.length && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)) && "string" === typeof input.markdown; const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.files) || _report(_exceptionable, {
223
- path: _path + ".files",
224
- expected: "(Array<IFile> & MinItems<1>)",
225
- value: input.files
226
- })) && ((1 <= input.files.length || _report(_exceptionable, {
227
- path: _path + ".files",
228
- expected: "Array<> & MinItems<1>",
229
- value: input.files
230
- })) && input.files.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
231
- path: _path + ".files[" + _index2 + "]",
232
- expected: "IFile",
233
- value: elem
234
- })) && _vo1(elem, _path + ".files[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
235
- path: _path + ".files[" + _index2 + "]",
236
- expected: "IFile",
237
- value: elem
238
- })).every(flag => flag)) || _report(_exceptionable, {
239
- path: _path + ".files",
240
- expected: "(Array<IFile> & MinItems<1>)",
241
- value: input.files
242
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
243
- path: _path + ".reason",
244
- expected: "string",
245
- value: input.reason
246
- }), "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
247
- path: _path + ".filename",
248
- expected: "`${string}.md`",
249
- value: input.filename
250
- }), "string" === typeof input.markdown || _report(_exceptionable, {
251
- path: _path + ".markdown",
252
- expected: "string",
253
- value: input.markdown
254
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
255
- if (false === __is(input)) {
256
- errors = [];
257
- _report = __typia_transform__validateReport._validateReport(errors);
258
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
259
- path: _path + "",
260
- expected: "__type",
261
- value: input
262
- })) && _vo0(input, _path + "", true) || _report(true, {
263
- path: _path + "",
264
- expected: "__type",
265
- value: input
266
- }))(input, "$input", true);
267
- const success = 0 === errors.length;
268
- return success ? {
269
- success,
270
- data: input
271
- } : {
272
- success,
273
- errors,
274
- data: input
275
- };
276
- }
277
- return {
278
- success: true,
279
- data: input
280
- };
281
- }; })()
282
- },
283
- {
284
- name: "removeFile",
285
- parameters: {
286
- description: "Description of the current {@link PickIFilefilename} type:\n\n> From T, pick a set of properties whose keys are in the union K",
287
- type: "object",
288
- properties: {
289
- filename: {
290
- title: "Filename to generate or overwrite",
291
- description: "Filename to generate or overwrite.",
292
- type: "string",
293
- pattern: "((.*)\\.md)$"
294
- }
295
- },
296
- required: [
297
- "filename"
298
- ],
299
- additionalProperties: false,
300
- $defs: {}
301
- },
302
- validate: (() => { const _io0 = input => "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
303
- path: _path + ".filename",
304
- expected: "`${string}.md`",
305
- value: input.filename
306
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
307
- if (false === __is(input)) {
308
- errors = [];
309
- _report = __typia_transform__validateReport._validateReport(errors);
310
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
311
- path: _path + "",
312
- expected: "Pick<IFile, \"filename\">",
313
- value: input
314
- })) && _vo0(input, _path + "", true) || _report(true, {
315
- path: _path + "",
316
- expected: "Pick<IFile, \"filename\">",
317
- value: input
318
- }))(input, "$input", true);
319
- const success = 0 === errors.length;
320
- return success ? {
321
- success,
322
- data: input
323
- } : {
324
- success,
325
- errors,
326
- data: input
327
- };
328
- }
329
- return {
330
- success: true,
331
- data: input
332
- };
333
- }; })()
334
- },
335
- {
336
- name: "abort",
337
- parameters: {
338
- type: "object",
339
- properties: {
340
- reason: {
341
- type: "string"
342
- }
343
- },
344
- required: [
345
- "reason"
346
- ],
347
- additionalProperties: false,
348
- $defs: {}
349
- },
350
- output: {
351
- "const": "OK"
352
- },
353
- validate: (() => { const _io0 = input => "string" === typeof input.reason; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
354
- path: _path + ".reason",
355
- expected: "string",
356
- value: input.reason
357
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
358
- if (false === __is(input)) {
359
- errors = [];
360
- _report = __typia_transform__validateReport._validateReport(errors);
361
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
362
- path: _path + "",
363
- expected: "__type",
364
- value: input
365
- })) && _vo0(input, _path + "", true) || _report(true, {
366
- path: _path + "",
367
- expected: "__type",
368
- value: input
369
- }))(input, "$input", true);
370
- const success = 0 === errors.length;
371
- return success ? {
372
- success,
373
- data: input
374
- } : {
375
- success,
376
- errors,
377
- data: input
378
- };
379
- }
380
- return {
381
- success: true,
382
- data: input
383
- };
384
- }; })()
385
- },
386
- {
387
- name: "allFiles",
388
- parameters: {
389
- type: "object",
390
- properties: {},
391
- additionalProperties: false,
392
- required: [],
393
- $defs: {}
394
- },
395
- output: {
396
- description: "Description of the current {@link Recordstringstring} type:\n\n> Construct a type with a set of properties K of type T",
397
- type: "object",
398
- properties: {},
399
- required: [],
400
- additionalProperties: {
401
- type: "string"
402
- }
403
- },
404
- validate: (() => { const __is = input => true; let errors; let _report; return input => {
405
- if (false === __is(input)) {
406
- errors = [];
407
- _report = __typia_transform__validateReport._validateReport(errors);
408
- ((input, _path, _exceptionable = true) => true)(input, "$input", true);
409
- const success = 0 === errors.length;
410
- return success ? {
411
- success,
412
- data: input
413
- } : {
414
- success,
415
- errors,
416
- data: input
417
- };
418
- }
419
- return {
420
- success: true,
421
- data: input
422
- };
423
- }; })()
424
- }
425
- ]
426
- };
427
- const collection = {
428
- chatgpt: {
429
- model: "chatgpt",
430
- options: {
431
- reference: true,
432
- strict: false,
433
- separate: null
434
- },
435
- functions: [
436
- {
437
- name: "createOrUpdateFiles",
438
- parameters: {
439
- type: "object",
440
- properties: {
441
- files: {
442
- description: "@minItems 1",
443
- type: "array",
444
- items: {
445
- description: "Current Type: {@link IFile}",
446
- type: "object",
447
- properties: {
448
- reason: {
449
- description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
450
- type: "string"
451
- },
452
- filename: {
453
- title: "Filename to generate or overwrite",
454
- description: "Filename to generate or overwrite.\n\n\n@pattern ((.*)\\.md)$",
455
- type: "string"
456
- },
457
- markdown: {
458
- description: "Markdown file content. Only write the content of the file. Do not include\nany questions. This should contain only the contents of the file. Do not\nwrite down any questions or appreciation. For example, remove a sentence\nsuch as \"Is it okay if we proceed with the table of contents? Please let me\nknow if there is anything to add or exclude from the table of contents!\"",
459
- type: "string"
460
- }
461
- },
462
- required: [
463
- "reason",
464
- "filename",
465
- "markdown"
466
- ]
467
- }
468
- }
469
- },
470
- required: [
471
- "files"
472
- ],
473
- additionalProperties: false,
474
- $defs: {}
475
- },
476
- validate: (() => { const _io0 = input => Array.isArray(input.files) && (1 <= input.files.length && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)) && "string" === typeof input.markdown; const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.files) || _report(_exceptionable, {
477
- path: _path + ".files",
478
- expected: "(Array<IFile> & MinItems<1>)",
479
- value: input.files
480
- })) && ((1 <= input.files.length || _report(_exceptionable, {
481
- path: _path + ".files",
482
- expected: "Array<> & MinItems<1>",
483
- value: input.files
484
- })) && input.files.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
485
- path: _path + ".files[" + _index2 + "]",
486
- expected: "IFile",
487
- value: elem
488
- })) && _vo1(elem, _path + ".files[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
489
- path: _path + ".files[" + _index2 + "]",
490
- expected: "IFile",
491
- value: elem
492
- })).every(flag => flag)) || _report(_exceptionable, {
493
- path: _path + ".files",
494
- expected: "(Array<IFile> & MinItems<1>)",
495
- value: input.files
496
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
497
- path: _path + ".reason",
498
- expected: "string",
499
- value: input.reason
500
- }), "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
501
- path: _path + ".filename",
502
- expected: "`${string}.md`",
503
- value: input.filename
504
- }), "string" === typeof input.markdown || _report(_exceptionable, {
505
- path: _path + ".markdown",
506
- expected: "string",
507
- value: input.markdown
508
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
509
- if (false === __is(input)) {
510
- errors = [];
511
- _report = __typia_transform__validateReport._validateReport(errors);
512
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
513
- path: _path + "",
514
- expected: "__type",
515
- value: input
516
- })) && _vo0(input, _path + "", true) || _report(true, {
517
- path: _path + "",
518
- expected: "__type",
519
- value: input
520
- }))(input, "$input", true);
521
- const success = 0 === errors.length;
522
- return success ? {
523
- success,
524
- data: input
525
- } : {
526
- success,
527
- errors,
528
- data: input
529
- };
530
- }
531
- return {
532
- success: true,
533
- data: input
534
- };
535
- }; })()
536
- },
537
- {
538
- name: "removeFile",
539
- parameters: {
540
- description: "Description of the current {@link PickIFilefilename} type:\n\n> From T, pick a set of properties whose keys are in the union K",
541
- type: "object",
542
- properties: {
543
- filename: {
544
- title: "Filename to generate or overwrite",
545
- description: "Filename to generate or overwrite.\n\n\n@pattern ((.*)\\.md)$",
546
- type: "string"
547
- }
548
- },
549
- required: [
550
- "filename"
551
- ],
552
- additionalProperties: false,
553
- $defs: {}
554
- },
555
- validate: (() => { const _io0 = input => "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
556
- path: _path + ".filename",
557
- expected: "`${string}.md`",
558
- value: input.filename
559
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
560
- if (false === __is(input)) {
561
- errors = [];
562
- _report = __typia_transform__validateReport._validateReport(errors);
563
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
564
- path: _path + "",
565
- expected: "Pick<IFile, \"filename\">",
566
- value: input
567
- })) && _vo0(input, _path + "", true) || _report(true, {
568
- path: _path + "",
569
- expected: "Pick<IFile, \"filename\">",
570
- value: input
571
- }))(input, "$input", true);
572
- const success = 0 === errors.length;
573
- return success ? {
574
- success,
575
- data: input
576
- } : {
577
- success,
578
- errors,
579
- data: input
580
- };
581
- }
582
- return {
583
- success: true,
584
- data: input
585
- };
586
- }; })()
587
- },
588
- {
589
- name: "abort",
590
- parameters: {
591
- type: "object",
592
- properties: {
593
- reason: {
594
- type: "string"
595
- }
596
- },
597
- required: [
598
- "reason"
599
- ],
600
- additionalProperties: false,
601
- $defs: {}
602
- },
603
- output: {
604
- type: "string",
605
- "enum": [
606
- "OK"
607
- ]
608
- },
609
- validate: (() => { const _io0 = input => "string" === typeof input.reason; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
610
- path: _path + ".reason",
611
- expected: "string",
612
- value: input.reason
613
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
614
- if (false === __is(input)) {
615
- errors = [];
616
- _report = __typia_transform__validateReport._validateReport(errors);
617
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
618
- path: _path + "",
619
- expected: "__type",
620
- value: input
621
- })) && _vo0(input, _path + "", true) || _report(true, {
622
- path: _path + "",
623
- expected: "__type",
624
- value: input
625
- }))(input, "$input", true);
626
- const success = 0 === errors.length;
627
- return success ? {
628
- success,
629
- data: input
630
- } : {
631
- success,
632
- errors,
633
- data: input
634
- };
635
- }
636
- return {
637
- success: true,
638
- data: input
639
- };
640
- }; })()
641
- },
642
- {
643
- name: "allFiles",
644
- parameters: {
645
- type: "object",
646
- properties: {},
647
- additionalProperties: false,
648
- required: [],
649
- $defs: {}
650
- },
651
- output: {
652
- description: "Description of the current {@link Recordstringstring} type:\n\n> Construct a type with a set of properties K of type T",
653
- type: "object",
654
- properties: {},
655
- required: [],
656
- additionalProperties: {
657
- type: "string"
658
- }
659
- },
660
- validate: (() => { const __is = input => true; let errors; let _report; return input => {
661
- if (false === __is(input)) {
662
- errors = [];
663
- _report = __typia_transform__validateReport._validateReport(errors);
664
- ((input, _path, _exceptionable = true) => true)(input, "$input", true);
665
- const success = 0 === errors.length;
666
- return success ? {
667
- success,
668
- data: input
669
- } : {
670
- success,
671
- errors,
672
- data: input
673
- };
674
- }
675
- return {
676
- success: true,
677
- data: input
678
- };
679
- }; })()
680
- }
681
- ]
682
- },
683
- claude,
684
- llama: claude,
685
- deepseek: claude,
686
- "3.1": claude,
687
- "3.0": {
688
- model: "3.0",
689
- options: {
690
- constraint: true,
691
- recursive: 3,
692
- separate: null
693
- },
694
- functions: [
695
- {
696
- name: "createOrUpdateFiles",
697
- parameters: {
698
- type: "object",
699
- properties: {
700
- files: {
701
- type: "array",
702
- items: {
703
- type: "object",
704
- properties: {
705
- reason: {
706
- type: "string",
707
- description: "Describe briefly why you made this document, and if you have any plans for\nthe next one."
708
- },
709
- filename: {
710
- type: "string",
711
- pattern: "((.*)\\.md)$",
712
- title: "Filename to generate or overwrite",
713
- description: "Filename to generate or overwrite."
714
- },
715
- markdown: {
716
- type: "string",
717
- description: "Markdown file content. Only write the content of the file. Do not include\nany questions. This should contain only the contents of the file. Do not\nwrite down any questions or appreciation. For example, remove a sentence\nsuch as \"Is it okay if we proceed with the table of contents? Please let me\nknow if there is anything to add or exclude from the table of contents!\""
718
- }
719
- },
720
- required: [
721
- "reason",
722
- "filename",
723
- "markdown"
724
- ],
725
- description: "Current Type: {@link IFile}",
726
- additionalProperties: false
727
- },
728
- minItems: 1
729
- }
730
- },
731
- required: [
732
- "files"
733
- ],
734
- additionalProperties: false
735
- },
736
- validate: (() => { const _io0 = input => Array.isArray(input.files) && (1 <= input.files.length && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)) && "string" === typeof input.markdown; const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.files) || _report(_exceptionable, {
737
- path: _path + ".files",
738
- expected: "(Array<IFile> & MinItems<1>)",
739
- value: input.files
740
- })) && ((1 <= input.files.length || _report(_exceptionable, {
741
- path: _path + ".files",
742
- expected: "Array<> & MinItems<1>",
743
- value: input.files
744
- })) && input.files.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
745
- path: _path + ".files[" + _index2 + "]",
746
- expected: "IFile",
747
- value: elem
748
- })) && _vo1(elem, _path + ".files[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
749
- path: _path + ".files[" + _index2 + "]",
750
- expected: "IFile",
751
- value: elem
752
- })).every(flag => flag)) || _report(_exceptionable, {
753
- path: _path + ".files",
754
- expected: "(Array<IFile> & MinItems<1>)",
755
- value: input.files
756
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
757
- path: _path + ".reason",
758
- expected: "string",
759
- value: input.reason
760
- }), "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
761
- path: _path + ".filename",
762
- expected: "`${string}.md`",
763
- value: input.filename
764
- }), "string" === typeof input.markdown || _report(_exceptionable, {
765
- path: _path + ".markdown",
766
- expected: "string",
767
- value: input.markdown
768
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
769
- if (false === __is(input)) {
770
- errors = [];
771
- _report = __typia_transform__validateReport._validateReport(errors);
772
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
773
- path: _path + "",
774
- expected: "__type",
775
- value: input
776
- })) && _vo0(input, _path + "", true) || _report(true, {
777
- path: _path + "",
778
- expected: "__type",
779
- value: input
780
- }))(input, "$input", true);
781
- const success = 0 === errors.length;
782
- return success ? {
783
- success,
784
- data: input
785
- } : {
786
- success,
787
- errors,
788
- data: input
789
- };
790
- }
791
- return {
792
- success: true,
793
- data: input
794
- };
795
- }; })()
796
- },
797
- {
798
- name: "removeFile",
799
- parameters: {
800
- type: "object",
801
- properties: {
802
- filename: {
803
- type: "string",
804
- pattern: "((.*)\\.md)$",
805
- title: "Filename to generate or overwrite",
806
- description: "Filename to generate or overwrite."
807
- }
808
- },
809
- required: [
810
- "filename"
811
- ],
812
- description: "Description of the current {@link PickIFilefilename} type:\n\n> From T, pick a set of properties whose keys are in the union K",
813
- additionalProperties: false
814
- },
815
- validate: (() => { const _io0 = input => "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
816
- path: _path + ".filename",
817
- expected: "`${string}.md`",
818
- value: input.filename
819
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
820
- if (false === __is(input)) {
821
- errors = [];
822
- _report = __typia_transform__validateReport._validateReport(errors);
823
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
824
- path: _path + "",
825
- expected: "Pick<IFile, \"filename\">",
826
- value: input
827
- })) && _vo0(input, _path + "", true) || _report(true, {
828
- path: _path + "",
829
- expected: "Pick<IFile, \"filename\">",
830
- value: input
831
- }))(input, "$input", true);
832
- const success = 0 === errors.length;
833
- return success ? {
834
- success,
835
- data: input
836
- } : {
837
- success,
838
- errors,
839
- data: input
840
- };
841
- }
842
- return {
843
- success: true,
844
- data: input
845
- };
846
- }; })()
847
- },
848
- {
849
- name: "abort",
850
- parameters: {
851
- type: "object",
852
- properties: {
853
- reason: {
854
- type: "string"
855
- }
856
- },
857
- required: [
858
- "reason"
859
- ],
860
- additionalProperties: false
861
- },
862
- output: {
863
- type: "string",
864
- "enum": [
865
- "OK"
866
- ]
867
- },
868
- validate: (() => { const _io0 = input => "string" === typeof input.reason; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
869
- path: _path + ".reason",
870
- expected: "string",
871
- value: input.reason
872
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
873
- if (false === __is(input)) {
874
- errors = [];
875
- _report = __typia_transform__validateReport._validateReport(errors);
876
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
877
- path: _path + "",
878
- expected: "__type",
879
- value: input
880
- })) && _vo0(input, _path + "", true) || _report(true, {
881
- path: _path + "",
882
- expected: "__type",
883
- value: input
884
- }))(input, "$input", true);
885
- const success = 0 === errors.length;
886
- return success ? {
887
- success,
888
- data: input
889
- } : {
890
- success,
891
- errors,
892
- data: input
893
- };
894
- }
895
- return {
896
- success: true,
897
- data: input
898
- };
899
- }; })()
900
- },
901
- {
902
- name: "allFiles",
903
- parameters: {
904
- type: "object",
905
- properties: {},
906
- additionalProperties: false,
907
- required: []
908
- },
909
- output: {
910
- type: "object",
911
- properties: {},
912
- required: [],
913
- description: "Description of the current {@link Recordstringstring} type:\n\n> Construct a type with a set of properties K of type T",
914
- additionalProperties: {
915
- type: "string"
916
- }
917
- },
918
- validate: (() => { const __is = input => true; let errors; let _report; return input => {
919
- if (false === __is(input)) {
920
- errors = [];
921
- _report = __typia_transform__validateReport._validateReport(errors);
922
- ((input, _path, _exceptionable = true) => true)(input, "$input", true);
923
- const success = 0 === errors.length;
924
- return success ? {
925
- success,
926
- data: input
927
- } : {
928
- success,
929
- errors,
930
- data: input
931
- };
932
- }
933
- return {
934
- success: true,
935
- data: input
936
- };
937
- }; })()
938
- }
939
- ]
940
- },
941
- };
942
- //# sourceMappingURL=AnalyzeAgent.js.map