added prompt context library (#27)
This commit is contained in:
@@ -35,6 +35,7 @@
|
|||||||
"@octokit/core": "^3.5.1",
|
"@octokit/core": "^3.5.1",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"cli-select": "^1.1.2",
|
"cli-select": "^1.1.2",
|
||||||
|
"clipboardy": "2.3.0",
|
||||||
"enquirer": "^2.3.6",
|
"enquirer": "^2.3.6",
|
||||||
"gluegun": "latest",
|
"gluegun": "latest",
|
||||||
"lodash.snakecase": "^4.1.1",
|
"lodash.snakecase": "^4.1.1",
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import { GluegunMenuToolbox } from '@lenne.tech/gluegun-menu';
|
||||||
|
import { defaultMenuSettings } from '../../globals';
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'ai',
|
||||||
|
alias: ['ai'],
|
||||||
|
description: 'AI (ai)',
|
||||||
|
hidden: false,
|
||||||
|
run: async (toolbox: GluegunMenuToolbox) => {
|
||||||
|
await toolbox.menu.showMenu('ai', defaultMenuSettings);
|
||||||
|
},
|
||||||
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,51 @@
|
|||||||
|
import { GluegunMenuToolbox } from '@lenne.tech/gluegun-menu';
|
||||||
|
import * as path from 'path';
|
||||||
|
import * as fs from 'fs';
|
||||||
|
import chalk = require('chalk');
|
||||||
|
const { AutoComplete } = require('enquirer');
|
||||||
|
const clipboard = require('clipboardy');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
name: 'promptcontextlibrary',
|
||||||
|
alias: ['pcl'],
|
||||||
|
description: 'Prompt Context Library (pcl)',
|
||||||
|
hidden: false,
|
||||||
|
run: async (toolbox: GluegunMenuToolbox) => {
|
||||||
|
const currentDir = path.dirname(__filename);
|
||||||
|
const files = fs
|
||||||
|
.readdirSync(currentDir)
|
||||||
|
.filter((file) => file.endsWith('.txt'))
|
||||||
|
.map((file) => ({
|
||||||
|
name: file.replace(/-/g, ' ').replace(/\b\w/g, (l) => l.toUpperCase()),
|
||||||
|
value: file,
|
||||||
|
}));
|
||||||
|
|
||||||
|
console.log(chalk.cyan('📚 Welcome to the Prompt Context Library! 📚'));
|
||||||
|
|
||||||
|
const prompt = new AutoComplete({
|
||||||
|
name: 'context',
|
||||||
|
message: chalk.yellow('✨ Select a context file:'),
|
||||||
|
limit: 10,
|
||||||
|
initial: 0,
|
||||||
|
choices: files,
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
const answer = await prompt.run();
|
||||||
|
const filePath = path.join(currentDir, answer);
|
||||||
|
const fileContent = fs.readFileSync(filePath, 'utf8');
|
||||||
|
|
||||||
|
// Copy content to clipboard
|
||||||
|
await clipboard.write(fileContent);
|
||||||
|
|
||||||
|
console.log(chalk.green(`🎯 Selected: ${chalk.bold(answer)}`));
|
||||||
|
console.log(
|
||||||
|
chalk.magenta(
|
||||||
|
'📋 Context has been copied to clipboard and is ready to paste! 🚀'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(chalk.red('❌ Operation cancelled'));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -800,6 +800,11 @@ app-module-path@^2.2.0:
|
|||||||
resolved "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz"
|
resolved "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz"
|
||||||
integrity sha1-ZBqlXft9am8KgUHEucCqULbCTdU=
|
integrity sha1-ZBqlXft9am8KgUHEucCqULbCTdU=
|
||||||
|
|
||||||
|
arch@^2.1.1:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
|
||||||
|
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
|
||||||
|
|
||||||
arg@^4.1.0:
|
arg@^4.1.0:
|
||||||
version "4.1.3"
|
version "4.1.3"
|
||||||
resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
|
resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz"
|
||||||
@@ -1177,6 +1182,15 @@ cli-table3@0.6.0:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
colors "^1.1.2"
|
colors "^1.1.2"
|
||||||
|
|
||||||
|
clipboardy@2.3.0:
|
||||||
|
version "2.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290"
|
||||||
|
integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==
|
||||||
|
dependencies:
|
||||||
|
arch "^2.1.1"
|
||||||
|
execa "^1.0.0"
|
||||||
|
is-wsl "^2.1.1"
|
||||||
|
|
||||||
cliui@^5.0.0:
|
cliui@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"
|
resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"
|
||||||
@@ -2409,6 +2423,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
|
|||||||
is-data-descriptor "^1.0.0"
|
is-data-descriptor "^1.0.0"
|
||||||
kind-of "^6.0.2"
|
kind-of "^6.0.2"
|
||||||
|
|
||||||
|
is-docker@^2.0.0:
|
||||||
|
version "2.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
||||||
|
integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
|
||||||
|
|
||||||
is-extendable@^0.1.0, is-extendable@^0.1.1:
|
is-extendable@^0.1.0, is-extendable@^0.1.1:
|
||||||
version "0.1.1"
|
version "0.1.1"
|
||||||
resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
|
resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
|
||||||
@@ -2553,6 +2572,13 @@ is-wsl@^1.1.0:
|
|||||||
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"
|
resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz"
|
||||||
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
|
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
|
||||||
|
|
||||||
|
is-wsl@^2.1.1:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
|
||||||
|
integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
|
||||||
|
dependencies:
|
||||||
|
is-docker "^2.0.0"
|
||||||
|
|
||||||
isarray@1.0.0:
|
isarray@1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
|
resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
|
||||||
|
|||||||
Reference in New Issue
Block a user