@akanjs/cli 0.0.146 → 0.0.148
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/README.md +7 -26
- package/cjs/index.js +186 -21
- package/cjs/src/guidelines/cssRule/cssRule.instruction.md +1 -1
- package/cjs/src/guidelines/docPageRule/docPageRule.instruction.md +59 -52
- package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +335 -752
- package/cjs/src/guidelines/modelTemplate/modelTemplate.instruction.md +418 -391
- package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +0 -292
- package/cjs/src/guidelines/scalarModule/scalarModule.instruction.md +84 -0
- package/cjs/src/templates/app/main.js +1 -2
- package/esm/index.js +194 -29
- package/esm/src/guidelines/cssRule/cssRule.instruction.md +1 -1
- package/esm/src/guidelines/docPageRule/docPageRule.instruction.md +59 -52
- package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +335 -752
- package/esm/src/guidelines/modelTemplate/modelTemplate.instruction.md +418 -391
- package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +0 -292
- package/esm/src/guidelines/scalarModule/scalarModule.instruction.md +84 -0
- package/esm/src/templates/app/main.js +1 -2
- package/package.json +1 -1
- package/src/guideline/guideline.command.d.ts +3 -1
- package/src/guideline/guideline.prompt.d.ts +15 -1
- package/src/guideline/guideline.runner.d.ts +17 -3
- package/src/guideline/guideline.script.d.ts +8 -2
- package/src/guidelines/cssRule/cssRule.instruction.md +1 -1
- package/src/guidelines/docPageRule/docPageRule.instruction.md +59 -52
- package/src/guidelines/modelConstant/modelConstant.instruction.md +335 -752
- package/src/guidelines/modelTemplate/modelTemplate.instruction.md +418 -391
- package/src/guidelines/modelUnit/modelUnit.instruction.md +0 -292
- package/src/guidelines/scalarModule/scalarModule.instruction.md +84 -0
package/esm/index.js
CHANGED
|
@@ -589,7 +589,7 @@ var withBase = (appName, config, libs, routes = []) => {
|
|
|
589
589
|
eslint: { ...config.eslint, ignoreDuringBuilds: true },
|
|
590
590
|
env: {
|
|
591
591
|
...config.env,
|
|
592
|
-
basePaths: routes.map(({ basePath: basePath2 }) => basePath2).join(",")
|
|
592
|
+
basePaths: [...new Set(routes.map(({ basePath: basePath2 }) => basePath2))].join(",")
|
|
593
593
|
},
|
|
594
594
|
transpilePackages: ["swiper", "ssr-window", "dom7"],
|
|
595
595
|
reactStrictMode: commandType === "start" ? false : true,
|
|
@@ -755,6 +755,7 @@ CMD ["npm", "start"]`,
|
|
|
755
755
|
config.libs ?? [],
|
|
756
756
|
config.frontend?.routes
|
|
757
757
|
),
|
|
758
|
+
routes: config.frontend?.routes,
|
|
758
759
|
explicitDependencies: config.frontend?.explicitDependencies ?? []
|
|
759
760
|
},
|
|
760
761
|
mobile: {
|
|
@@ -1238,7 +1239,10 @@ ${errorMessages}`);
|
|
|
1238
1239
|
];
|
|
1239
1240
|
const errors = diagnostics.filter((diagnostic) => diagnostic.category === ts3.DiagnosticCategory.Error);
|
|
1240
1241
|
const warnings = diagnostics.filter((diagnostic) => diagnostic.category === ts3.DiagnosticCategory.Warning);
|
|
1241
|
-
|
|
1242
|
+
const fileDiagnostics = diagnostics.filter((diagnostic) => diagnostic.file?.fileName === filePath);
|
|
1243
|
+
const fileErrors = fileDiagnostics.filter((diagnostic) => diagnostic.category === ts3.DiagnosticCategory.Error);
|
|
1244
|
+
const fileWarnings = fileDiagnostics.filter((diagnostic) => diagnostic.category === ts3.DiagnosticCategory.Warning);
|
|
1245
|
+
return { diagnostics, errors, warnings, fileDiagnostics, fileErrors, fileWarnings };
|
|
1242
1246
|
}
|
|
1243
1247
|
/**
|
|
1244
1248
|
* Format diagnostics for console output
|
|
@@ -1665,9 +1669,9 @@ var Executor = class _Executor {
|
|
|
1665
1669
|
typeCheck(filePath) {
|
|
1666
1670
|
const path9 = this.getPath(filePath);
|
|
1667
1671
|
const typeChecker = this.getTypeChecker();
|
|
1668
|
-
const {
|
|
1669
|
-
const message = typeChecker.formatDiagnostics(
|
|
1670
|
-
return {
|
|
1672
|
+
const { fileDiagnostics, fileErrors, fileWarnings } = typeChecker.check(path9);
|
|
1673
|
+
const message = typeChecker.formatDiagnostics(fileDiagnostics);
|
|
1674
|
+
return { fileDiagnostics, fileErrors, fileWarnings, message };
|
|
1671
1675
|
}
|
|
1672
1676
|
getLinter() {
|
|
1673
1677
|
this.linter ??= new Linter(this.cwdPath);
|
|
@@ -3097,7 +3101,7 @@ ${validate.map((v) => `- ${v}`).join("\n")}`;
|
|
|
3097
3101
|
writes.map(async ({ filePath }) => {
|
|
3098
3102
|
const typeCheckResult = executor.typeCheck(filePath);
|
|
3099
3103
|
const lintResult = await executor.lint(filePath);
|
|
3100
|
-
const needFix2 = !!typeCheckResult.
|
|
3104
|
+
const needFix2 = !!typeCheckResult.fileErrors.length || !!lintResult.errors.length;
|
|
3101
3105
|
return { filePath, typeCheckResult, lintResult, needFix: needFix2 };
|
|
3102
3106
|
})
|
|
3103
3107
|
);
|
|
@@ -3131,7 +3135,7 @@ ${fileCheck.lintResult.message}`
|
|
|
3131
3135
|
throw new Error("Failed to create scalar");
|
|
3132
3136
|
}
|
|
3133
3137
|
#getTypescriptCodes(text) {
|
|
3134
|
-
const codes = text.match(/```typescript([\s\S]*?)```/g);
|
|
3138
|
+
const codes = text.match(/```(typescript|tsx)([\s\S]*?)```/g);
|
|
3135
3139
|
if (!codes)
|
|
3136
3140
|
return [];
|
|
3137
3141
|
const result = codes.map((code) => {
|
|
@@ -3239,7 +3243,7 @@ var Builder = class {
|
|
|
3239
3243
|
};
|
|
3240
3244
|
|
|
3241
3245
|
// pkgs/@akanjs/devkit/src/prompter.ts
|
|
3242
|
-
import { select as select4 } from "@inquirer/prompts";
|
|
3246
|
+
import { input as input3, select as select4 } from "@inquirer/prompts";
|
|
3243
3247
|
import fsPromise2 from "fs/promises";
|
|
3244
3248
|
var Prompter = class {
|
|
3245
3249
|
static async selectGuideline() {
|
|
@@ -3256,6 +3260,9 @@ var Prompter = class {
|
|
|
3256
3260
|
const content = await fsPromise2.readFile(filePath, "utf-8");
|
|
3257
3261
|
return content;
|
|
3258
3262
|
}
|
|
3263
|
+
static async getUpdateRequest(guideName) {
|
|
3264
|
+
return await input3({ message: `What do you want to update in ${guideName}?` });
|
|
3265
|
+
}
|
|
3259
3266
|
async makeTsFileUpdatePrompt({ context: context2, request }) {
|
|
3260
3267
|
return `You are a senior developer writing TypeScript-based programs using Akan.js, an in-house framework. Here's an overview of the Akan.js framework:
|
|
3261
3268
|
${await this.getDocumentation("framework")}
|
|
@@ -3417,7 +3424,7 @@ var LibraryScript = class {
|
|
|
3417
3424
|
};
|
|
3418
3425
|
|
|
3419
3426
|
// pkgs/@akanjs/cli/src/application/application.runner.ts
|
|
3420
|
-
import { confirm as confirm2, input as
|
|
3427
|
+
import { confirm as confirm2, input as input4 } from "@inquirer/prompts";
|
|
3421
3428
|
import { StringOutputParser } from "@langchain/core/output_parsers";
|
|
3422
3429
|
import { PromptTemplate as PromptTemplate2 } from "@langchain/core/prompts";
|
|
3423
3430
|
import { RunnableSequence as RunnableSequence2 } from "@langchain/core/runnables";
|
|
@@ -3572,6 +3579,8 @@ var ApplicationRunner = class {
|
|
|
3572
3579
|
async #getViteConfig(app, command) {
|
|
3573
3580
|
const { env } = await this.#prepareCommand(app, command, "csr");
|
|
3574
3581
|
const tsconfig = app.workspace.getTsConfig();
|
|
3582
|
+
const akanConfig = await app.getConfig();
|
|
3583
|
+
const basePaths = akanConfig.frontend.routes ? [...new Set(akanConfig.frontend.routes.map(({ basePath: basePath2 }) => basePath2))].join(",") : void 0;
|
|
3575
3584
|
const processEnv = env;
|
|
3576
3585
|
const akanjsPrefix = process.env.USE_AKANJS_PKGS === "true" ? `${app.workspace.workspaceRoot}/pkgs/` : "";
|
|
3577
3586
|
const config = vite.defineConfig({
|
|
@@ -3635,7 +3644,8 @@ var ApplicationRunner = class {
|
|
|
3635
3644
|
APP_OPERATION_MODE: processEnv.APP_OPERATION_MODE ?? "local",
|
|
3636
3645
|
AKAN_WORKSPACE_ROOT: app.workspace.workspaceRoot,
|
|
3637
3646
|
AKAN_APP_ROOT: app.cwdPath,
|
|
3638
|
-
RENDER_ENV: "csr"
|
|
3647
|
+
RENDER_ENV: "csr",
|
|
3648
|
+
basePaths
|
|
3639
3649
|
},
|
|
3640
3650
|
"process.platform": JSON.stringify("browser"),
|
|
3641
3651
|
"process.version": JSON.stringify(process.version)
|
|
@@ -3877,8 +3887,8 @@ var ApplicationRunner = class {
|
|
|
3877
3887
|
if (!openAIApiKey)
|
|
3878
3888
|
throw new Error("OPENAI_API_KEY is not set");
|
|
3879
3889
|
const chatModel = new ChatOpenAI3({ modelName: "gpt-4o", openAIApiKey });
|
|
3880
|
-
const projectName = await
|
|
3881
|
-
const projectDesc = await
|
|
3890
|
+
const projectName = await input4({ message: "please enter project name." });
|
|
3891
|
+
const projectDesc = await input4({ message: "please enter project description. (40 ~ 60 characters)" });
|
|
3882
3892
|
const spinner = ora3("Gerating project files...");
|
|
3883
3893
|
const mainPrompt = PromptTemplate2.fromTemplate(`prompt.requestApplication()`);
|
|
3884
3894
|
const chain = RunnableSequence2.from([mainPrompt, chatModel, new StringOutputParser()]);
|
|
@@ -3945,7 +3955,11 @@ var ApplicationScript = class {
|
|
|
3945
3955
|
await this.syncApplication(app);
|
|
3946
3956
|
if (app.workspace.getBaseDevEnv().env === "local")
|
|
3947
3957
|
await this.dbup(app.workspace);
|
|
3948
|
-
await Promise.all([
|
|
3958
|
+
await Promise.all([
|
|
3959
|
+
this.startBackend(app, { open: open2, sync: false }),
|
|
3960
|
+
this.startFrontend(app, { open: open2, sync: false }),
|
|
3961
|
+
this.startCsr(app, { open: open2, sync: false })
|
|
3962
|
+
]);
|
|
3949
3963
|
}
|
|
3950
3964
|
async buildBackend(app, { sync = true } = {}) {
|
|
3951
3965
|
if (sync)
|
|
@@ -5486,7 +5500,9 @@ var GuidelinePrompt = class extends Prompter {
|
|
|
5486
5500
|
});
|
|
5487
5501
|
const paths = [];
|
|
5488
5502
|
for await (const path9 of matchingPaths) {
|
|
5489
|
-
|
|
5503
|
+
const fileContent = fs16.readFileSync(path9, "utf-8");
|
|
5504
|
+
const textFilter = filterText ? new RegExp(filterText) : null;
|
|
5505
|
+
if (filterText && !textFilter?.test(fileContent))
|
|
5490
5506
|
continue;
|
|
5491
5507
|
paths.push(path9);
|
|
5492
5508
|
}
|
|
@@ -5539,10 +5555,39 @@ ${guideJson.update.rules.map((rule) => `- ${rule}`).join("\n")}
|
|
|
5539
5555
|
|
|
5540
5556
|
=> Now, you need to write the file content here. Let's go.
|
|
5541
5557
|
`;
|
|
5542
|
-
return { request, writePath };
|
|
5558
|
+
return { guideJson, request, writePath };
|
|
5543
5559
|
}
|
|
5544
|
-
async
|
|
5545
|
-
const
|
|
5560
|
+
async requestUpdateInstruction(updateRequest) {
|
|
5561
|
+
const guideJson = await Prompter.getGuideJson(this.name);
|
|
5562
|
+
const resultPath = `${__dirname}/src/guidelines/${this.name}/${guideJson.update.filePath}`;
|
|
5563
|
+
const writePath = `${this.workspace.workspaceRoot}/pkgs/@akanjs/cli/src/guidelines/${this.name}/${guideJson.update.filePath}`;
|
|
5564
|
+
const isResultExists = this.workspace.exists(writePath);
|
|
5565
|
+
if (!isResultExists)
|
|
5566
|
+
throw new Error(`${guideJson.update.filePath} file does not exist. Please create it first.`);
|
|
5567
|
+
const existingResult = this.workspace.readFile(resultPath);
|
|
5568
|
+
const request = `
|
|
5569
|
+
I am a developer of akanjs framework, a full-stack framework for building web applications.
|
|
5570
|
+
I want to update a ${guideJson.update.filePath} file for ${guideJson.description}.
|
|
5571
|
+
This file is a programming guideline for Akan.js framwork users.
|
|
5572
|
+
|
|
5573
|
+
# ${guideJson.title} Workflow
|
|
5574
|
+
- 1. Read already-written ${guideJson.update.filePath} file.
|
|
5575
|
+
- 2. Write the updated file content of the ${guideJson.update.filePath} with the update request.
|
|
5576
|
+
|
|
5577
|
+
## 1. Read already-written ${guideJson.update.filePath} file.
|
|
5578
|
+
\`\`\`markdown
|
|
5579
|
+
${existingResult}
|
|
5580
|
+
\`\`\`
|
|
5581
|
+
|
|
5582
|
+
## 2. Write the updated file content of the ${guideJson.update.filePath} with the update request.
|
|
5583
|
+
Request: ${updateRequest}
|
|
5584
|
+
|
|
5585
|
+
=> Now, you need to write the file content here. Let's go.
|
|
5586
|
+
`;
|
|
5587
|
+
return { guideJson, request, writePath };
|
|
5588
|
+
}
|
|
5589
|
+
async requestCreateDocumentPage(page) {
|
|
5590
|
+
const writePath = `apps/angelo/app${page}`;
|
|
5546
5591
|
if (!this.workspace.exists(writePath))
|
|
5547
5592
|
this.workspace.writeFile(
|
|
5548
5593
|
writePath,
|
|
@@ -5584,6 +5629,69 @@ Please return only the file result in the following format for easy parsing.
|
|
|
5584
5629
|
// File: ${writePath}
|
|
5585
5630
|
...pageContent
|
|
5586
5631
|
\`\`\`
|
|
5632
|
+
`;
|
|
5633
|
+
return { request, writePath };
|
|
5634
|
+
}
|
|
5635
|
+
async requestUpdateDocumentPage(page, updateRequest) {
|
|
5636
|
+
const writePath = `apps/angelo/app${page}`;
|
|
5637
|
+
if (!this.workspace.exists(writePath))
|
|
5638
|
+
this.workspace.writeFile(
|
|
5639
|
+
writePath,
|
|
5640
|
+
`export default function Page() {
|
|
5641
|
+
return <div>No Content</div>;
|
|
5642
|
+
}
|
|
5643
|
+
`
|
|
5644
|
+
);
|
|
5645
|
+
const instruction = await Prompter.getInstruction(this.name);
|
|
5646
|
+
const pageContent = this.workspace.getLocalFile(writePath);
|
|
5647
|
+
const request = `
|
|
5648
|
+
I'm updating a documentation website for the Akan.js framework.
|
|
5649
|
+
|
|
5650
|
+
I want to update the Next.js server-side page located at ${writePath}.
|
|
5651
|
+
Below is the content of the currently written page. You should update stale infos and preserve the existing content.
|
|
5652
|
+
\`\`\`tsx
|
|
5653
|
+
// File: ${writePath}
|
|
5654
|
+
${pageContent.content}
|
|
5655
|
+
\`\`\`
|
|
5656
|
+
|
|
5657
|
+
The existing instruction is below.
|
|
5658
|
+
\`\`\`markdown
|
|
5659
|
+
${instruction}
|
|
5660
|
+
\`\`\`
|
|
5661
|
+
|
|
5662
|
+
Please update this page with the request below.
|
|
5663
|
+
${updateRequest}
|
|
5664
|
+
|
|
5665
|
+
Please return only the file result in the following format for easy parsing.
|
|
5666
|
+
\`\`\`tsx
|
|
5667
|
+
// File: ${writePath}
|
|
5668
|
+
...pageContent
|
|
5669
|
+
\`\`\`
|
|
5670
|
+
`;
|
|
5671
|
+
return { request, writePath };
|
|
5672
|
+
}
|
|
5673
|
+
async requestReapplyInstruction(filePath) {
|
|
5674
|
+
const guideJson = await Prompter.getGuideJson(this.name);
|
|
5675
|
+
const writePath = `${this.workspace.workspaceRoot}/pkgs/@akanjs/cli/src/guidelines/${this.name}/${guideJson.update.filePath}`;
|
|
5676
|
+
if (!guideJson.page)
|
|
5677
|
+
throw new Error(`${this.name} does not have a page.`);
|
|
5678
|
+
const pagePath = `apps/angelo/app${guideJson.page}`;
|
|
5679
|
+
const pageFile = this.workspace.getLocalFile(pagePath);
|
|
5680
|
+
const request = `
|
|
5681
|
+
I want to apply information in the Next.js page to markdown instruction file.
|
|
5682
|
+
|
|
5683
|
+
Here's the newest information in the Next.js page.
|
|
5684
|
+
\`\`\`tsx
|
|
5685
|
+
// File: ${pagePath}
|
|
5686
|
+
${pageFile.content}
|
|
5687
|
+
\`\`\`
|
|
5688
|
+
|
|
5689
|
+
Here's the existing instruction file.
|
|
5690
|
+
\`\`\`markdown
|
|
5691
|
+
${await Prompter.getInstruction(this.name)}
|
|
5692
|
+
\`\`\`
|
|
5693
|
+
|
|
5694
|
+
Please update the instruction file with the information in the Next.js page.
|
|
5587
5695
|
`;
|
|
5588
5696
|
return { request, writePath };
|
|
5589
5697
|
}
|
|
@@ -5594,19 +5702,45 @@ var GuidelineRunner = class {
|
|
|
5594
5702
|
async generateInstruction(workspace, guideName) {
|
|
5595
5703
|
const session = new AiSession("generateInstruction", { workspace, cacheKey: guideName });
|
|
5596
5704
|
const prompt = new GuidelinePrompt(workspace, guideName);
|
|
5597
|
-
const { request, writePath } = await prompt.requestCreateInstruction();
|
|
5705
|
+
const { guideJson, request, writePath } = await prompt.requestCreateInstruction();
|
|
5706
|
+
const guidelineContent = await session.editMarkdown(request);
|
|
5707
|
+
workspace.writeFile(writePath, guidelineContent);
|
|
5708
|
+
return { guideJson, session };
|
|
5709
|
+
}
|
|
5710
|
+
async updateInstruction(workspace, guideName, { updateRequest }) {
|
|
5711
|
+
const session = new AiSession("updateInstruction", { workspace, cacheKey: guideName });
|
|
5712
|
+
const prompt = new GuidelinePrompt(workspace, guideName);
|
|
5713
|
+
const { guideJson, request, writePath } = await prompt.requestUpdateInstruction(updateRequest);
|
|
5598
5714
|
const guidelineContent = await session.editMarkdown(request);
|
|
5599
5715
|
workspace.writeFile(writePath, guidelineContent);
|
|
5716
|
+
return { guideJson, session };
|
|
5600
5717
|
}
|
|
5601
|
-
async
|
|
5718
|
+
async generateDocument(workspace, guideName) {
|
|
5602
5719
|
const session = new AiSession("deployDocPages", { workspace, cacheKey: guideName });
|
|
5603
5720
|
const guideJson = await Prompter.getGuideJson(guideName);
|
|
5604
5721
|
const prompt = new GuidelinePrompt(workspace, guideName);
|
|
5605
5722
|
if (!guideJson.page)
|
|
5606
5723
|
return Promise.resolve({});
|
|
5607
|
-
const { request } = await prompt.
|
|
5724
|
+
const { request } = await prompt.requestCreateDocumentPage(guideJson.page);
|
|
5608
5725
|
await session.writeTypescripts(request, workspace);
|
|
5609
5726
|
}
|
|
5727
|
+
async updateDocument(workspace, guideName, { updateRequest, session }) {
|
|
5728
|
+
const guideJson = await Prompter.getGuideJson(guideName);
|
|
5729
|
+
if (!guideJson.page)
|
|
5730
|
+
throw new Error(`${guideName} does not have a page.`);
|
|
5731
|
+
const prompt = new GuidelinePrompt(workspace, guideName);
|
|
5732
|
+
const { request, writePath } = await prompt.requestUpdateDocumentPage(guideJson.page, updateRequest);
|
|
5733
|
+
const guidelineContent = await session.editMarkdown(request);
|
|
5734
|
+
workspace.writeFile(writePath, guidelineContent);
|
|
5735
|
+
}
|
|
5736
|
+
async reapplyInstruction(workspace, guideName) {
|
|
5737
|
+
const session = new AiSession("reapplyInstruction", { workspace, cacheKey: guideName });
|
|
5738
|
+
const guideJson = await Prompter.getGuideJson(guideName);
|
|
5739
|
+
const prompt = new GuidelinePrompt(workspace, guideName);
|
|
5740
|
+
const { request, writePath } = await prompt.requestReapplyInstruction(guideJson.update.filePath);
|
|
5741
|
+
const guidelineContent = await session.editMarkdown(request);
|
|
5742
|
+
workspace.writeFile(writePath, guidelineContent);
|
|
5743
|
+
}
|
|
5610
5744
|
};
|
|
5611
5745
|
|
|
5612
5746
|
// pkgs/@akanjs/cli/src/guideline/guideline.script.ts
|
|
@@ -5616,9 +5750,23 @@ var GuidelineScript = class {
|
|
|
5616
5750
|
const guideName = name ?? await Prompter.selectGuideline();
|
|
5617
5751
|
await this.#runner.generateInstruction(workspace, guideName);
|
|
5618
5752
|
}
|
|
5619
|
-
async
|
|
5753
|
+
async updateInstruction(workspace, name = null, updateRequest) {
|
|
5754
|
+
const guideName = name ?? await Prompter.selectGuideline();
|
|
5755
|
+
const { guideJson, session } = await this.#runner.updateInstruction(workspace, guideName, { updateRequest });
|
|
5756
|
+
if (guideJson.page)
|
|
5757
|
+
await this.updateDocument(workspace, guideName, { updateRequest, session });
|
|
5758
|
+
}
|
|
5759
|
+
async generateDocument(workspace, name = null) {
|
|
5760
|
+
const guideName = name ?? await Prompter.selectGuideline();
|
|
5761
|
+
await this.#runner.generateDocument(workspace, guideName);
|
|
5762
|
+
}
|
|
5763
|
+
async updateDocument(workspace, name = null, { updateRequest, session }) {
|
|
5620
5764
|
const guideName = name ?? await Prompter.selectGuideline();
|
|
5621
|
-
await this.#runner.
|
|
5765
|
+
await this.#runner.updateDocument(workspace, guideName, { updateRequest, session });
|
|
5766
|
+
}
|
|
5767
|
+
async reapplyInstruction(workspace, name = null) {
|
|
5768
|
+
const guideName = name ?? await Prompter.selectGuideline();
|
|
5769
|
+
await this.#runner.reapplyInstruction(workspace, guideName);
|
|
5622
5770
|
}
|
|
5623
5771
|
};
|
|
5624
5772
|
|
|
@@ -5628,8 +5776,14 @@ var GuidelineCommand = class {
|
|
|
5628
5776
|
async generateInstruction(name, workspace) {
|
|
5629
5777
|
await this.guidelineScript.generateInstruction(workspace, name);
|
|
5630
5778
|
}
|
|
5631
|
-
async
|
|
5632
|
-
await this.guidelineScript.
|
|
5779
|
+
async updateInstruction(name, request, workspace) {
|
|
5780
|
+
await this.guidelineScript.updateInstruction(workspace, name, request);
|
|
5781
|
+
}
|
|
5782
|
+
async generateDocument(name, workspace) {
|
|
5783
|
+
await this.guidelineScript.generateDocument(workspace, name);
|
|
5784
|
+
}
|
|
5785
|
+
async reapplyInstruction(name, workspace) {
|
|
5786
|
+
await this.guidelineScript.reapplyInstruction(workspace, name);
|
|
5633
5787
|
}
|
|
5634
5788
|
};
|
|
5635
5789
|
__decorateClass([
|
|
@@ -5637,11 +5791,22 @@ __decorateClass([
|
|
|
5637
5791
|
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
5638
5792
|
__decorateParam(1, Workspace())
|
|
5639
5793
|
], GuidelineCommand.prototype, "generateInstruction", 1);
|
|
5794
|
+
__decorateClass([
|
|
5795
|
+
Target.Public(),
|
|
5796
|
+
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
5797
|
+
__decorateParam(1, Option("request", { ask: "What do you want to update?" })),
|
|
5798
|
+
__decorateParam(2, Workspace())
|
|
5799
|
+
], GuidelineCommand.prototype, "updateInstruction", 1);
|
|
5800
|
+
__decorateClass([
|
|
5801
|
+
Target.Public(),
|
|
5802
|
+
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
5803
|
+
__decorateParam(1, Workspace())
|
|
5804
|
+
], GuidelineCommand.prototype, "generateDocument", 1);
|
|
5640
5805
|
__decorateClass([
|
|
5641
5806
|
Target.Public(),
|
|
5642
5807
|
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
5643
5808
|
__decorateParam(1, Workspace())
|
|
5644
|
-
], GuidelineCommand.prototype, "
|
|
5809
|
+
], GuidelineCommand.prototype, "reapplyInstruction", 1);
|
|
5645
5810
|
GuidelineCommand = __decorateClass([
|
|
5646
5811
|
Commands()
|
|
5647
5812
|
], GuidelineCommand);
|
|
@@ -5650,7 +5815,7 @@ GuidelineCommand = __decorateClass([
|
|
|
5650
5815
|
import pluralize2 from "pluralize";
|
|
5651
5816
|
|
|
5652
5817
|
// pkgs/@akanjs/cli/src/scalar/scalar.prompt.ts
|
|
5653
|
-
import { input as
|
|
5818
|
+
import { input as input5 } from "@inquirer/prompts";
|
|
5654
5819
|
var ScalarPrompt = class extends Prompter {
|
|
5655
5820
|
constructor(sys3, name) {
|
|
5656
5821
|
super();
|
|
@@ -5658,13 +5823,13 @@ var ScalarPrompt = class extends Prompter {
|
|
|
5658
5823
|
this.name = name;
|
|
5659
5824
|
}
|
|
5660
5825
|
async requestUpdateConstant() {
|
|
5661
|
-
const request = await
|
|
5826
|
+
const request = await input5({ message: `What do you want to change?` });
|
|
5662
5827
|
return { request, validate: void 0 };
|
|
5663
5828
|
}
|
|
5664
5829
|
async requestCreateConstant() {
|
|
5665
5830
|
const constantFiles = await this.sys.getConstantFilesWithLibs();
|
|
5666
|
-
const description = await
|
|
5667
|
-
const schemaDescription = await
|
|
5831
|
+
const description = await input5({ message: "description of scalar scalar" });
|
|
5832
|
+
const schemaDescription = await input5({ message: "schema description of scalar scalar" });
|
|
5668
5833
|
await this.sys.applyTemplate({
|
|
5669
5834
|
basePath: "./lib/__scalar",
|
|
5670
5835
|
template: "__scalar",
|
|
@@ -180,7 +180,7 @@ export const Card = ({ className, project, href }: ModelProps<"project", cnst.Li
|
|
|
180
180
|
className={clsx(
|
|
181
181
|
"border-base-300 bg-base-100 flex flex-col gap-3 rounded-lg border-2 p-4",
|
|
182
182
|
"hover:border-primary transition-all hover:shadow-md",
|
|
183
|
-
"focus:ring-primary focus:
|
|
183
|
+
"focus:ring-primary focus:ring-2 focus:outline-hidden",
|
|
184
184
|
className
|
|
185
185
|
)}
|
|
186
186
|
>
|