ai-devkit 0.5.0 → 0.6.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/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/memory.d.ts +3 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +53 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +112 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/lib/EnvironmentSelector.d.ts +1 -0
- package/dist/lib/EnvironmentSelector.d.ts.map +1 -1
- package/dist/lib/EnvironmentSelector.js +28 -0
- package/dist/lib/EnvironmentSelector.js.map +1 -1
- package/dist/lib/TemplateManager.d.ts +9 -0
- package/dist/lib/TemplateManager.d.ts.map +1 -1
- package/dist/lib/TemplateManager.js +50 -0
- package/dist/lib/TemplateManager.js.map +1 -1
- package/dist/templates/commands/capture-knowledge.md +55 -0
- package/dist/templates/commands/check-implementation.md +30 -0
- package/dist/templates/commands/code-review.md +90 -0
- package/dist/templates/commands/debug.md +54 -0
- package/dist/templates/commands/execute-plan.md +80 -0
- package/dist/templates/commands/new-requirement.md +136 -0
- package/dist/templates/commands/remember.md +27 -0
- package/dist/templates/commands/review-design.md +21 -0
- package/dist/templates/commands/review-requirements.md +19 -0
- package/dist/templates/commands/simplify-implementation.md +153 -0
- package/dist/templates/commands/update-planning.md +70 -0
- package/dist/templates/commands/writing-test.md +53 -0
- package/dist/templates/env/base.md +51 -0
- package/dist/templates/phases/deployment.md +72 -0
- package/dist/templates/phases/design.md +60 -0
- package/dist/templates/phases/implementation.md +65 -0
- package/dist/templates/phases/monitoring.md +80 -0
- package/dist/templates/phases/planning.md +60 -0
- package/dist/templates/phases/requirements.md +51 -0
- package/dist/templates/phases/testing.md +81 -0
- package/dist/templates/templates/commands/capture-knowledge.md +55 -0
- package/dist/templates/templates/commands/check-implementation.md +30 -0
- package/dist/templates/templates/commands/code-review.md +90 -0
- package/dist/templates/templates/commands/debug.md +54 -0
- package/dist/templates/templates/commands/execute-plan.md +80 -0
- package/dist/templates/templates/commands/new-requirement.md +136 -0
- package/dist/templates/templates/commands/remember.md +27 -0
- package/dist/templates/templates/commands/review-design.md +21 -0
- package/dist/templates/templates/commands/review-requirements.md +19 -0
- package/dist/templates/templates/commands/simplify-implementation.md +153 -0
- package/dist/templates/templates/commands/update-planning.md +70 -0
- package/dist/templates/templates/commands/writing-test.md +53 -0
- package/dist/templates/templates/env/base.md +51 -0
- package/dist/templates/templates/phases/deployment.md +72 -0
- package/dist/templates/templates/phases/design.md +60 -0
- package/dist/templates/templates/phases/implementation.md +65 -0
- package/dist/templates/templates/phases/monitoring.md +80 -0
- package/dist/templates/templates/phases/planning.md +60 -0
- package/dist/templates/templates/phases/requirements.md +51 -0
- package/dist/templates/templates/phases/testing.md +81 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/util/env.d.ts +2 -0
- package/dist/util/env.d.ts.map +1 -1
- package/dist/util/env.js +11 -0
- package/dist/util/env.js.map +1 -1
- package/package.json +4 -2
- package/project.json +29 -0
- package/templates/commands/capture-knowledge.md +5 -0
- package/templates/commands/check-implementation.md +5 -0
- package/templates/commands/code-review.md +5 -0
- package/templates/commands/debug.md +5 -0
- package/templates/commands/execute-plan.md +5 -0
- package/templates/commands/new-requirement.md +5 -0
- package/templates/commands/remember.md +27 -0
- package/templates/commands/review-design.md +6 -0
- package/templates/commands/review-requirements.md +6 -0
- package/templates/commands/simplify-implementation.md +5 -0
- package/templates/commands/update-planning.md +5 -0
- package/templates/commands/writing-test.md +5 -0
- package/CHANGELOG.md +0 -87
- package/README.md +0 -298
- package/web/.nojekyll +0 -2
- package/web/CNAME +0 -1
- package/web/README.md +0 -100
- package/web/app/favicon.ico +0 -0
- package/web/app/globals.css +0 -122
- package/web/app/layout.tsx +0 -106
- package/web/app/page.tsx +0 -119
- package/web/app/roadmap/page.tsx +0 -150
- package/web/app/robots.ts +0 -16
- package/web/app/sitemap.ts +0 -46
- package/web/app/vision/page.tsx +0 -49
- package/web/components/Footer.tsx +0 -81
- package/web/components/GitHubButton.tsx +0 -49
- package/web/components/GitHubStars.tsx +0 -27
- package/web/components/Header.tsx +0 -108
- package/web/components/MarkdownContent.tsx +0 -35
- package/web/components/SkipToContent.tsx +0 -11
- package/web/content/pages/vision.md +0 -44
- package/web/content/roadmap/1-web.md +0 -9
- package/web/content/roadmap/2-integrations.md +0 -7
- package/web/content/roadmap/3-cli-enhancements.md +0 -8
- package/web/content/roadmap/4-local-memory.md +0 -8
- package/web/eslint.config.mjs +0 -18
- package/web/lib/GitHubContext.tsx +0 -57
- package/web/lib/content/loader.ts +0 -152
- package/web/lib/content/types.ts +0 -37
- package/web/lib/utils.ts +0 -12
- package/web/next.config.ts +0 -11
- package/web/package-lock.json +0 -8837
- package/web/package.json +0 -34
- package/web/postcss.config.mjs +0 -7
- package/web/public/file.svg +0 -1
- package/web/public/globe.svg +0 -1
- package/web/public/next.svg +0 -1
- package/web/public/vercel.svg +0 -1
- package/web/public/window.svg +0 -1
package/dist/cli.js
CHANGED
|
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const init_1 = require("./commands/init");
|
|
6
6
|
const phase_1 = require("./commands/phase");
|
|
7
|
+
const setup_1 = require("./commands/setup");
|
|
8
|
+
const memory_1 = require("./commands/memory");
|
|
7
9
|
const program = new commander_1.Command();
|
|
8
10
|
program
|
|
9
11
|
.name('ai-devkit')
|
|
@@ -20,5 +22,11 @@ program
|
|
|
20
22
|
.command('phase [name]')
|
|
21
23
|
.description('Add a specific phase template (requirements|design|planning|implementation|testing|deployment|monitoring)')
|
|
22
24
|
.action(phase_1.phaseCommand);
|
|
25
|
+
program
|
|
26
|
+
.command('setup')
|
|
27
|
+
.description('Set up AI DevKit commands globally')
|
|
28
|
+
.option('-g, --global', 'Install commands to global environment folders')
|
|
29
|
+
.action(setup_1.setupCommand);
|
|
30
|
+
(0, memory_1.registerMemoryCommand)(program);
|
|
23
31
|
program.parse();
|
|
24
32
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,4CAAgD;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,4CAAgD;AAChD,4CAAgD;AAChD,8CAA0D;AAE1D,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,yBAAyB,EAAE,8CAA8C,CAAC;KACjF,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;KAC/E,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,2GAA2G,CAAC;KACxH,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,cAAc,EAAE,gDAAgD,CAAC;KACxE,MAAM,CAAC,oBAAY,CAAC,CAAC;AAExB,IAAA,8BAAqB,EAAC,OAAO,CAAC,CAAC;AAE/B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAuB,MAAM,UAAU,CAAC;AAqChE,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBAqHrD"}
|
package/dist/commands/init.js
CHANGED
|
@@ -125,7 +125,7 @@ async function initCommand(options) {
|
|
|
125
125
|
shouldCopy = overwrite;
|
|
126
126
|
}
|
|
127
127
|
if (shouldCopy) {
|
|
128
|
-
|
|
128
|
+
await templateManager.copyPhaseTemplate(phase);
|
|
129
129
|
await configManager.addPhase(phase);
|
|
130
130
|
console.log(chalk_1.default.green(`[OK] Created ${phase} phase`));
|
|
131
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAkDA,kCAqHC;AAvKD,iDAAyC;AACzC,wDAAgC;AAChC,kDAA0B;AAC1B,0CAA8C;AAC9C,4DAAyD;AACzD,oEAAiE;AACjE,wDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;AAkDA,kCAqHC;AAvKD,iDAAyC;AACzC,wDAAgC;AAChC,kDAA0B;AAC1B,0CAA8C;AAC9C,4DAAyD;AACzD,oEAAiE;AACjE,wDAAqD;AACrD,oCAAgE;AAChE,2CAAwD;AAExD,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB;IAC1B,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CACV,iGAAiG,CAClG,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,IAAA,wBAAQ,EAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,EACzD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAQM,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,aAAa,GAAG,IAAI,sBAAa,EAAE,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;IAC9C,MAAM,mBAAmB,GAAG,IAAI,yCAAmB,EAAE,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,6BAAa,EAAE,CAAC;IAE1C,mBAAmB,EAAE,CAAC;IAEtB,IAAI,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YAC/C;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,+DAA+D;gBACxE,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,GAAsB,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IACxE,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,oBAAoB,GAAG,MAAM,mBAAmB,CAAC,kBAAkB,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACjF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAA,+BAAsB,EAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;IACH,CAAC;IACD,MAAM,oBAAoB,GAAsB,EAAE,CAAC;IACnD,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;QACzC,IAAI,MAAM,eAAe,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB,GAAG,IAAI,CAAC;IAClC,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6DAA6D,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5H,sBAAsB,GAAG,MAAM,mBAAmB,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAErF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAEzD,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,aAAa,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAElF,mBAAmB,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC;IAElE,aAAa,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IACvF,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,UAAU,GAAG,IAAI,CAAC;QAEtB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;gBAC1C;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,GAAG,2BAAmB,CAAC,KAAK,CAAC,6BAA6B;oBACnE,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C5D"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerMemoryCommand = registerMemoryCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const api_1 = require("@ai-devkit/memory/api");
|
|
9
|
+
function registerMemoryCommand(program) {
|
|
10
|
+
const memoryCommand = program
|
|
11
|
+
.command('memory')
|
|
12
|
+
.description('Interact with the knowledge memory service');
|
|
13
|
+
memoryCommand
|
|
14
|
+
.command('store')
|
|
15
|
+
.description('Store a new knowledge item')
|
|
16
|
+
.requiredOption('-t, --title <title>', 'Title of the knowledge item (10-100 chars)')
|
|
17
|
+
.requiredOption('-c, --content <content>', 'Content of the knowledge item (50-5000 chars)')
|
|
18
|
+
.option('--tags <tags>', 'Comma-separated tags (e.g., "api,backend")')
|
|
19
|
+
.option('-s, --scope <scope>', 'Scope: global, project:<name>, or repo:<name>', 'global')
|
|
20
|
+
.action((options) => {
|
|
21
|
+
try {
|
|
22
|
+
const result = (0, api_1.memoryStoreCommand)(options);
|
|
23
|
+
console.log(JSON.stringify(result, null, 2));
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
27
|
+
console.error(chalk_1.default.red(`[ERROR] ${message}`));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
memoryCommand
|
|
32
|
+
.command('search')
|
|
33
|
+
.description('Search for knowledge items')
|
|
34
|
+
.requiredOption('-q, --query <query>', 'Search query (3-500 chars)')
|
|
35
|
+
.option('--tags <tags>', 'Comma-separated context tags to boost results')
|
|
36
|
+
.option('-s, --scope <scope>', 'Scope filter')
|
|
37
|
+
.option('-l, --limit <limit>', 'Maximum results (1-20)', '5')
|
|
38
|
+
.action((options) => {
|
|
39
|
+
try {
|
|
40
|
+
const result = (0, api_1.memorySearchCommand)({
|
|
41
|
+
...options,
|
|
42
|
+
limit: options.limit ? parseInt(options.limit, 10) : 5
|
|
43
|
+
});
|
|
44
|
+
console.log(JSON.stringify(result, null, 2));
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
48
|
+
console.error(chalk_1.default.red(`[ERROR] ${message}`));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":";;;;;AAKA,sDA2CC;AAhDD,kDAA0B;AAE1B,+CAAgF;AAGhF,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,MAAM,aAAa,GAAG,OAAO;SAC1B,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4CAA4C,CAAC,CAAC;IAE7D,aAAa;SACV,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;SACnF,cAAc,CAAC,yBAAyB,EAAE,+CAA+C,CAAC;SAC1F,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,qBAAqB,EAAE,+CAA+C,EAAE,QAAQ,CAAC;SACxF,MAAM,CAAC,CAAC,OAA2B,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,aAAa;SACV,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,+CAA+C,CAAC;SACxE,MAAM,CAAC,qBAAqB,EAAE,cAAc,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,GAAG,CAAC;SAC5D,MAAM,CAAC,CAAC,OAAiD,EAAE,EAAE;QAC5D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,yBAAmB,EAAC;gBACjC,GAAG,OAAO;gBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAQA,UAAU,YAAY;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBAQvD"}
|
|
@@ -0,0 +1,112 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.setupCommand = setupCommand;
|
|
40
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const TemplateManager_1 = require("../lib/TemplateManager");
|
|
44
|
+
const EnvironmentSelector_1 = require("../lib/EnvironmentSelector");
|
|
45
|
+
const env_1 = require("../util/env");
|
|
46
|
+
async function setupCommand(options) {
|
|
47
|
+
if (!options.global) {
|
|
48
|
+
console.log(chalk_1.default.yellow('Please use --global flag to set up global commands.'));
|
|
49
|
+
console.log(chalk_1.default.blue('Usage: ai-devkit setup --global'));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
await setupGlobalCommands();
|
|
53
|
+
}
|
|
54
|
+
async function setupGlobalCommands() {
|
|
55
|
+
const templateManager = new TemplateManager_1.TemplateManager();
|
|
56
|
+
const environmentSelector = new EnvironmentSelector_1.EnvironmentSelector();
|
|
57
|
+
console.log(chalk_1.default.blue('Global Setup\n'));
|
|
58
|
+
console.log(chalk_1.default.gray('This will copy AI DevKit commands to your global environment folders.\n'));
|
|
59
|
+
const selectedEnvironments = await environmentSelector.selectGlobalEnvironments();
|
|
60
|
+
if (selectedEnvironments.length === 0) {
|
|
61
|
+
console.log(chalk_1.default.yellow('No environments selected. Setup cancelled.'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
environmentSelector.displaySelectionSummary(selectedEnvironments);
|
|
65
|
+
for (const envCode of selectedEnvironments) {
|
|
66
|
+
await processGlobalEnvironment(envCode, templateManager);
|
|
67
|
+
}
|
|
68
|
+
console.log(chalk_1.default.green('\n✅ Global setup completed successfully!\n'));
|
|
69
|
+
console.log(chalk_1.default.blue('Your commands are now available globally for the selected environments.'));
|
|
70
|
+
}
|
|
71
|
+
async function processGlobalEnvironment(envCode, templateManager) {
|
|
72
|
+
const envName = (0, env_1.getEnvironmentDisplayName)(envCode);
|
|
73
|
+
const env = (0, env_1.getEnvironment)(envCode);
|
|
74
|
+
if (!env || !env.globalCommandPath) {
|
|
75
|
+
console.log(chalk_1.default.red(`[ERROR] ${envName} does not support global setup.`));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
console.log(chalk_1.default.blue(`\nSetting up ${envName}...`));
|
|
79
|
+
console.log(chalk_1.default.gray(` Global path: ~/${env.globalCommandPath}`));
|
|
80
|
+
const commandsExist = await templateManager.checkGlobalCommandsExist(envCode);
|
|
81
|
+
if (commandsExist) {
|
|
82
|
+
const { shouldOverwrite } = await inquirer_1.default.prompt([
|
|
83
|
+
{
|
|
84
|
+
type: 'confirm',
|
|
85
|
+
name: 'shouldOverwrite',
|
|
86
|
+
message: `Global commands already exist for ${envName}. Overwrite?`,
|
|
87
|
+
default: false
|
|
88
|
+
}
|
|
89
|
+
]);
|
|
90
|
+
if (!shouldOverwrite) {
|
|
91
|
+
console.log(chalk_1.default.yellow(`[SKIP] Skipped ${envName} (files already exist)`));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const copiedFiles = await templateManager.copyCommandsToGlobal(envCode);
|
|
97
|
+
console.log(chalk_1.default.green(`[OK] Copied ${copiedFiles.length} commands to ${envName} global folder`)); // Show copied files
|
|
98
|
+
copiedFiles.forEach(file => {
|
|
99
|
+
const fileName = path.basename(file);
|
|
100
|
+
console.log(chalk_1.default.gray(` • ${fileName}`));
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
if (error instanceof Error) {
|
|
105
|
+
console.log(chalk_1.default.red(`[ERROR] Failed to set up ${envName}: ${error.message}`));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.log(chalk_1.default.red(`[ERROR] Failed to set up ${envName}`));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,5 +3,6 @@ export declare class EnvironmentSelector {
|
|
|
3
3
|
selectEnvironments(): Promise<EnvironmentCode[]>;
|
|
4
4
|
confirmOverride(conflicts: EnvironmentCode[]): Promise<boolean>;
|
|
5
5
|
displaySelectionSummary(selected: EnvironmentCode[]): void;
|
|
6
|
+
selectGlobalEnvironments(): Promise<EnvironmentCode[]>;
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=EnvironmentSelector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,qBAAa,mBAAmB;IACxB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BhD,eAAe,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrE,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,qBAAa,mBAAmB;IACxB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA4BhD,eAAe,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrE,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI;IAapD,wBAAwB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAgC7D"}
|
|
@@ -57,6 +57,34 @@ class EnvironmentSelector {
|
|
|
57
57
|
});
|
|
58
58
|
console.log('');
|
|
59
59
|
}
|
|
60
|
+
async selectGlobalEnvironments() {
|
|
61
|
+
const globalCapableEnvs = (0, env_1.getGlobalCapableEnvironments)();
|
|
62
|
+
if (globalCapableEnvs.length === 0) {
|
|
63
|
+
console.log('No environments support global setup.');
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
const choices = globalCapableEnvs.map(env => ({
|
|
67
|
+
name: env.name,
|
|
68
|
+
value: env.code,
|
|
69
|
+
short: env.name
|
|
70
|
+
}));
|
|
71
|
+
const answers = await inquirer_1.default.prompt([
|
|
72
|
+
{
|
|
73
|
+
type: 'checkbox',
|
|
74
|
+
name: 'environments',
|
|
75
|
+
message: 'Select AI environments for global setup (use space to select, enter to confirm):',
|
|
76
|
+
choices,
|
|
77
|
+
pageSize: 10,
|
|
78
|
+
validate: (input) => {
|
|
79
|
+
if (input.length === 0) {
|
|
80
|
+
return 'Please select at least one environment.';
|
|
81
|
+
}
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]);
|
|
86
|
+
return answers.environments;
|
|
87
|
+
}
|
|
60
88
|
}
|
|
61
89
|
exports.EnvironmentSelector = EnvironmentSelector;
|
|
62
90
|
//# sourceMappingURL=EnvironmentSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentSelector.js","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,
|
|
1
|
+
{"version":3,"file":"EnvironmentSelector.js","sourceRoot":"","sources":["../../src/lib/EnvironmentSelector.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,5 +16,14 @@ export declare class TemplateManager {
|
|
|
16
16
|
* Uses triple quotes for multi-line strings.
|
|
17
17
|
*/
|
|
18
18
|
private generateTomlContent;
|
|
19
|
+
/**
|
|
20
|
+
* Copy command templates to the global folder for a specific environment.
|
|
21
|
+
* Global folders are located in the user's home directory.
|
|
22
|
+
*/
|
|
23
|
+
copyCommandsToGlobal(envCode: EnvironmentCode): Promise<string[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Check if any global commands already exist for a specific environment.
|
|
26
|
+
*/
|
|
27
|
+
checkGlobalCommandsExist(envCode: EnvironmentCode): Promise<boolean>;
|
|
19
28
|
}
|
|
20
29
|
//# sourceMappingURL=TemplateManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AAGzE,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAsB;IAKvC,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAWhD,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C,yBAAyB,CAC7B,cAAc,EAAE,eAAe,EAAE,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC;IAsBd,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;YAgBxD,sBAAsB;YAsCtB,YAAY;YA+BZ,uBAAuB;YAoBvB,uBAAuB;IA8BrC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;OAGG;IACG,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkCvE;;OAEG;IACG,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;CAgB3E"}
|
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.TemplateManager = void 0;
|
|
40
40
|
const fs = __importStar(require("fs-extra"));
|
|
41
41
|
const path = __importStar(require("path"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
42
43
|
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
43
44
|
const env_1 = require("../util/env");
|
|
44
45
|
class TemplateManager {
|
|
@@ -179,6 +180,55 @@ class TemplateManager {
|
|
|
179
180
|
prompt='''${escapedPrompt}'''
|
|
180
181
|
`;
|
|
181
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Copy command templates to the global folder for a specific environment.
|
|
185
|
+
* Global folders are located in the user's home directory.
|
|
186
|
+
*/
|
|
187
|
+
async copyCommandsToGlobal(envCode) {
|
|
188
|
+
const env = (0, env_1.getEnvironment)(envCode);
|
|
189
|
+
if (!env || !env.globalCommandPath) {
|
|
190
|
+
throw new Error(`Environment '${envCode}' does not support global setup`);
|
|
191
|
+
}
|
|
192
|
+
const copiedFiles = [];
|
|
193
|
+
const homeDir = os.homedir();
|
|
194
|
+
const globalTargetDir = path.join(homeDir, env.globalCommandPath);
|
|
195
|
+
const commandsSourceDir = path.join(this.templatesDir, "commands");
|
|
196
|
+
try {
|
|
197
|
+
await fs.ensureDir(globalTargetDir);
|
|
198
|
+
const commandFiles = await fs.readdir(commandsSourceDir);
|
|
199
|
+
for (const file of commandFiles) {
|
|
200
|
+
if (!file.endsWith(".md"))
|
|
201
|
+
continue;
|
|
202
|
+
const sourceFile = path.join(commandsSourceDir, file);
|
|
203
|
+
const targetFile = path.join(globalTargetDir, file);
|
|
204
|
+
await fs.copy(sourceFile, targetFile);
|
|
205
|
+
copiedFiles.push(targetFile);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
if (error instanceof Error) {
|
|
210
|
+
throw new Error(`Failed to copy commands to global folder: ${error.message}`);
|
|
211
|
+
}
|
|
212
|
+
throw error;
|
|
213
|
+
}
|
|
214
|
+
return copiedFiles;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Check if any global commands already exist for a specific environment.
|
|
218
|
+
*/
|
|
219
|
+
async checkGlobalCommandsExist(envCode) {
|
|
220
|
+
const env = (0, env_1.getEnvironment)(envCode);
|
|
221
|
+
if (!env || !env.globalCommandPath) {
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
const homeDir = os.homedir();
|
|
225
|
+
const globalTargetDir = path.join(homeDir, env.globalCommandPath);
|
|
226
|
+
if (!(await fs.pathExists(globalTargetDir))) {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
const files = await fs.readdir(globalTargetDir);
|
|
230
|
+
return files.some((file) => file.endsWith(".md"));
|
|
231
|
+
}
|
|
182
232
|
}
|
|
183
233
|
exports.TemplateManager = TemplateManager;
|
|
184
234
|
//# sourceMappingURL=TemplateManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/lib/TemplateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Capture structured knowledge about a code entry point and save it to the knowledge docs.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Knowledge Capture Assistant
|
|
6
|
+
|
|
7
|
+
Guide me through creating a structured understanding of a code entry point and saving it to the knowledge docs.
|
|
8
|
+
|
|
9
|
+
## Memory (use when helpful)
|
|
10
|
+
- If you need clarification or project conventions, query `memory.searchKnowledge` with a brief task description, tags, and scope.
|
|
11
|
+
- If I ask to save reusable guidance, run `/remember` (or call `memory.storeKnowledge`).
|
|
12
|
+
- If MCP tools are unavailable, use `ai-devkit memory search` or `ai-devkit memory store`.
|
|
13
|
+
|
|
14
|
+
## Step 1: Gather Context
|
|
15
|
+
- Entry point (file, folder, function, API)
|
|
16
|
+
- Why this entry point matters (feature, bug, investigation)
|
|
17
|
+
- Relevant requirements/design docs (if any)
|
|
18
|
+
- Desired depth or focus areas (logic, dependencies, data flow)
|
|
19
|
+
|
|
20
|
+
## Step 2: Validate Entry Point
|
|
21
|
+
- Determine entry point type and confirm it exists
|
|
22
|
+
- Surface ambiguity (multiple matches) and ask for clarification
|
|
23
|
+
- If not found, suggest likely alternatives or spelling fixes
|
|
24
|
+
|
|
25
|
+
## Step 3: Collect Source Context
|
|
26
|
+
- Read the primary file/module and summarize purpose, exports, key patterns
|
|
27
|
+
- For folders: list structure, highlight key modules
|
|
28
|
+
- For functions/APIs: capture signature, parameters, return values, error handling
|
|
29
|
+
- Extract essential snippets (avoid large dumps)
|
|
30
|
+
|
|
31
|
+
## Step 4: Analyze Dependencies
|
|
32
|
+
- Build a dependency view up to depth 3
|
|
33
|
+
- Track visited nodes to avoid loops
|
|
34
|
+
- Categorize dependencies (imports, function calls, services, external packages)
|
|
35
|
+
- Note important external systems or generated code that should be excluded
|
|
36
|
+
|
|
37
|
+
## Step 5: Synthesize Explanation
|
|
38
|
+
- Draft an overview (purpose, language, high-level behavior)
|
|
39
|
+
- Detail core logic, key components, execution flow, patterns
|
|
40
|
+
- Highlight error handling, performance, security considerations
|
|
41
|
+
- Identify potential improvements or risks discovered during analysis
|
|
42
|
+
|
|
43
|
+
## Step 6: Create Documentation
|
|
44
|
+
- Normalize entry point name to kebab-case (`calculateTotalPrice` → `calculate-total-price`)
|
|
45
|
+
- Create `docs/ai/implementation/knowledge-{name}.md` using the headings implied in Step 5 (Overview, Implementation Details, Dependencies, Visual Diagrams, Additional Insights, Metadata, Next Steps)
|
|
46
|
+
- Populate sections with findings, diagrams, and metadata (analysis date, depth, files touched)
|
|
47
|
+
- Include mermaid diagrams when they clarify flows or relationships
|
|
48
|
+
|
|
49
|
+
## Step 7: Review & Next Actions
|
|
50
|
+
- Summarize key insights and open questions for follow-up
|
|
51
|
+
- Suggest related areas for deeper dives or refactors
|
|
52
|
+
- Confirm the knowledge file path and remind to commit it
|
|
53
|
+
- Encourage running `/capture-knowledge` again for related entry points if needed
|
|
54
|
+
|
|
55
|
+
Let me know the entry point and goals when you’re ready to begin the knowledge capture.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Compare implementation with design and requirements docs to ensure alignment.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Compare the current implementation with the design in docs/ai/design/ and requirements in docs/ai/requirements/. Please follow this structured review:
|
|
6
|
+
|
|
7
|
+
## Memory (use when helpful)
|
|
8
|
+
- If you need clarification or project conventions, query `memory.searchKnowledge` with a brief task description, tags, and scope.
|
|
9
|
+
- If I ask to save reusable guidance, run `/remember` (or call `memory.storeKnowledge`).
|
|
10
|
+
- If MCP tools are unavailable, use `ai-devkit memory search` or `ai-devkit memory store`.
|
|
11
|
+
|
|
12
|
+
1. Ask me for:
|
|
13
|
+
- Feature/branch description
|
|
14
|
+
- List of modified files
|
|
15
|
+
- Relevant design doc(s) (feature-specific and/or project-level)
|
|
16
|
+
- Any known constraints or assumptions
|
|
17
|
+
|
|
18
|
+
2. For each design doc:
|
|
19
|
+
- Summarize key architectural decisions and constraints
|
|
20
|
+
- Highlight components, interfaces, and data flows that must be respected
|
|
21
|
+
|
|
22
|
+
3. File-by-file comparison:
|
|
23
|
+
- Confirm implementation matches design intent
|
|
24
|
+
- Note deviations or missing pieces
|
|
25
|
+
- Flag logic gaps, edge cases, or security issues
|
|
26
|
+
- Suggest simplifications or refactors
|
|
27
|
+
- Identify missing tests or documentation updates
|
|
28
|
+
|
|
29
|
+
4. Summarize findings with recommended next steps.
|
|
30
|
+
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Perform a local code review before pushing changes, ensuring alignment with design docs and best practices.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Local Code Review Assistant
|
|
6
|
+
|
|
7
|
+
You are helping me perform a local code review **before** I push changes. Please follow this structured workflow.
|
|
8
|
+
|
|
9
|
+
## Memory (use when helpful)
|
|
10
|
+
- If you need clarification or project conventions, query `memory.searchKnowledge` with a brief task description, tags, and scope.
|
|
11
|
+
- If I ask to save reusable guidance, run `/remember` (or call `memory.storeKnowledge`).
|
|
12
|
+
- If MCP tools are unavailable, use `ai-devkit memory search` or `ai-devkit memory store`.
|
|
13
|
+
|
|
14
|
+
## Step 1: Gather Context
|
|
15
|
+
Ask me for:
|
|
16
|
+
- Brief feature/branch description
|
|
17
|
+
- List of modified files (with optional summaries)
|
|
18
|
+
- Relevant design doc(s) (e.g., `docs/ai/design/feature-{name}.md` or project-level design)
|
|
19
|
+
- Any known constraints or risky areas
|
|
20
|
+
- Any open bugs or TODOs linked to this work
|
|
21
|
+
- Which tests have already been run
|
|
22
|
+
|
|
23
|
+
If possible, request the latest diff:
|
|
24
|
+
```bash
|
|
25
|
+
git status -sb
|
|
26
|
+
git diff --stat
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Step 2: Understand Design Alignment
|
|
30
|
+
For each provided design doc:
|
|
31
|
+
- Summarize the architectural intent
|
|
32
|
+
- Note critical requirements, patterns, or constraints the design mandates
|
|
33
|
+
|
|
34
|
+
## Step 3: File-by-File Review
|
|
35
|
+
For every modified file:
|
|
36
|
+
1. Highlight deviations from the referenced design or requirements
|
|
37
|
+
2. Spot potential logic or flow issues and edge cases
|
|
38
|
+
3. Identify redundant or duplicate code
|
|
39
|
+
4. Suggest simplifications or refactors (prefer clarity over cleverness)
|
|
40
|
+
5. Flag security concerns (input validation, secrets, auth, data handling)
|
|
41
|
+
6. Check for performance pitfalls or scalability risks
|
|
42
|
+
7. Ensure error handling, logging, and observability are appropriate
|
|
43
|
+
8. Note any missing comments or docs
|
|
44
|
+
9. Flag missing or outdated tests related to this file
|
|
45
|
+
|
|
46
|
+
## Step 4: Cross-Cutting Concerns
|
|
47
|
+
- Verify naming consistency and adherence to project conventions
|
|
48
|
+
- Confirm documentation/comments are updated where the behavior changed
|
|
49
|
+
- Identify missing tests (unit, integration, E2E) needed to cover the changes
|
|
50
|
+
- Ensure configuration/migration updates are captured if applicable
|
|
51
|
+
|
|
52
|
+
## Step 5: Summarize Findings
|
|
53
|
+
Provide results in this structure:
|
|
54
|
+
```
|
|
55
|
+
### Summary
|
|
56
|
+
- Blocking issues: [count]
|
|
57
|
+
- Important follow-ups: [count]
|
|
58
|
+
- Nice-to-have improvements: [count]
|
|
59
|
+
|
|
60
|
+
### Detailed Notes
|
|
61
|
+
1. **[File or Component]**
|
|
62
|
+
- Issue/Observation: ...
|
|
63
|
+
- Impact: (e.g., blocking / important / nice-to-have)
|
|
64
|
+
- Recommendation: ...
|
|
65
|
+
- Design reference: [...]
|
|
66
|
+
|
|
67
|
+
2. ... (repeat per finding)
|
|
68
|
+
|
|
69
|
+
### Recommended Next Steps
|
|
70
|
+
- [ ] Address blocking issues
|
|
71
|
+
- [ ] Update design/implementation docs if needed
|
|
72
|
+
- [ ] Add/adjust tests:
|
|
73
|
+
- Unit:
|
|
74
|
+
- Integration:
|
|
75
|
+
- E2E:
|
|
76
|
+
- [ ] Rerun local test suite
|
|
77
|
+
- [ ] Re-run code review command after fixes
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Step 6: Final Checklist
|
|
81
|
+
Confirm whether each item is complete (yes/no/needs follow-up):
|
|
82
|
+
- Implementation matches design & requirements
|
|
83
|
+
- No obvious logic or edge-case gaps remain
|
|
84
|
+
- Redundant code removed or justified
|
|
85
|
+
- Security considerations addressed
|
|
86
|
+
- Tests cover new/changed behavior
|
|
87
|
+
- Documentation/design notes updated
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
Let me know when you're ready to begin the review.
|