@quanvo99/ai-rules 0.1.4 → 0.1.5

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 (44) hide show
  1. package/dist/cli/commands/generate-questions.d.ts +7 -0
  2. package/dist/cli/commands/generate-questions.d.ts.map +1 -0
  3. package/dist/cli/commands/generate-questions.js +120 -0
  4. package/dist/cli/commands/generate-questions.js.map +1 -0
  5. package/dist/cli/commands/init.d.ts.map +1 -1
  6. package/dist/cli/commands/init.js +45 -0
  7. package/dist/cli/commands/init.js.map +1 -1
  8. package/dist/cli/lib/files.d.ts +8 -0
  9. package/dist/cli/lib/files.d.ts.map +1 -1
  10. package/dist/cli/lib/files.js +19 -0
  11. package/dist/cli/lib/files.js.map +1 -1
  12. package/dist/cli/lib/github.d.ts +9 -0
  13. package/dist/cli/lib/github.d.ts.map +1 -1
  14. package/dist/cli/lib/github.js +20 -0
  15. package/dist/cli/lib/github.js.map +1 -1
  16. package/dist/cli/lib/ollama-client.d.ts +66 -0
  17. package/dist/cli/lib/ollama-client.d.ts.map +1 -0
  18. package/dist/cli/lib/ollama-client.js +198 -0
  19. package/dist/cli/lib/ollama-client.js.map +1 -0
  20. package/dist/cli/lib/question-prompt.d.ts +37 -0
  21. package/dist/cli/lib/question-prompt.d.ts.map +1 -0
  22. package/dist/cli/lib/question-prompt.js +204 -0
  23. package/dist/cli/lib/question-prompt.js.map +1 -0
  24. package/dist/cli/lib/question-schema.d.ts +84 -0
  25. package/dist/cli/lib/question-schema.d.ts.map +1 -0
  26. package/dist/cli/lib/question-schema.js +135 -0
  27. package/dist/cli/lib/question-schema.js.map +1 -0
  28. package/dist/cli/lib/question-types.d.ts +72 -0
  29. package/dist/cli/lib/question-types.d.ts.map +1 -0
  30. package/dist/cli/lib/question-types.js +28 -0
  31. package/dist/cli/lib/question-types.js.map +1 -0
  32. package/dist/cli/lib/types.d.ts +2 -1
  33. package/dist/cli/lib/types.d.ts.map +1 -1
  34. package/dist/cli/lib/types.js +1 -0
  35. package/dist/cli/lib/types.js.map +1 -1
  36. package/dist/lib/question-types.d.ts +69 -0
  37. package/dist/lib/question-types.d.ts.map +1 -0
  38. package/dist/lib/question-types.js +3 -0
  39. package/dist/lib/question-types.js.map +1 -0
  40. package/dist/server/types.d.ts +47 -1
  41. package/dist/server/types.d.ts.map +1 -1
  42. package/dist/server/types.js +2 -1
  43. package/dist/server/types.js.map +1 -1
  44. package/package.json +1 -1
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Base question interface with common fields
3
+ */
4
+ export interface BaseQuestion {
5
+ /** Unique identifier in kebab-case */
6
+ id: string;
7
+ /** The question text */
8
+ text: string;
9
+ /** Array of tags for fuzzy search matching */
10
+ tags: string[];
11
+ }
12
+ /**
13
+ * Yes/No question type
14
+ * Must include keywords array that gets added to context if user answers yes
15
+ */
16
+ export interface YesNoQuestion extends BaseQuestion {
17
+ type: "yes-no";
18
+ /** Keywords added to search context if user answers yes */
19
+ keywords: string[];
20
+ }
21
+ /**
22
+ * Choice question type with multiple options
23
+ * Selected option's keywords are added to context
24
+ */
25
+ export interface ChoiceQuestion extends BaseQuestion {
26
+ type: "choice";
27
+ /** Array of choice options with text and keywords */
28
+ options: Array<{
29
+ text: string;
30
+ keywords: string[];
31
+ }>;
32
+ }
33
+ /**
34
+ * Open-ended question type
35
+ * Full user answer text is added to context
36
+ */
37
+ export interface OpenEndedQuestion extends BaseQuestion {
38
+ type: "open-ended";
39
+ }
40
+ /**
41
+ * Union type for all question types
42
+ */
43
+ export type Question = YesNoQuestion | ChoiceQuestion | OpenEndedQuestion;
44
+ /**
45
+ * Question file structure as stored in JSON files
46
+ * Contains array of questions for a specific rule or category
47
+ */
48
+ export interface QuestionFile {
49
+ questions: Question[];
50
+ }
51
+ /**
52
+ * Response type for question generation (used by CLI)
53
+ * Wrapper around QuestionFile for API responses
54
+ */
55
+ export type QuestionResponse = QuestionFile;
56
+ /**
57
+ * Question answer types for context state management
58
+ */
59
+ export type QuestionAnswer = {
60
+ type: "yes-no";
61
+ value: boolean;
62
+ } | {
63
+ type: "choice";
64
+ value: number;
65
+ } | {
66
+ type: "open-ended";
67
+ value: string;
68
+ };
69
+ //# sourceMappingURL=question-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-types.d.ts","sourceRoot":"","sources":["../../../src/lib/question-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,YAAY;IACnD,IAAI,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,OAAO,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACtD,IAAI,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,cAAc,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=question-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-types.js","sourceRoot":"","sources":["../../../src/lib/question-types.ts"],"names":[],"mappings":""}
@@ -59,12 +59,21 @@ export interface RuleCategory {
59
59
  files: RuleFile[];
60
60
  }
61
61
  /**
62
- * Represents an agent with all its categories
62
+ * Represents a single skill file
63
+ */
64
+ export interface SkillFile {
65
+ name: string;
66
+ content: string;
67
+ }
68
+ /**
69
+ * Represents an agent with all its categories and optional skills
63
70
  */
64
71
  export interface RuleAgent {
65
72
  categories: {
66
73
  [categoryName: string]: RuleCategory;
67
74
  };
75
+ /** Optional skills (currently only for Claude Code) */
76
+ skills?: SkillFile[];
68
77
  }
69
78
  /**
70
79
  * Complete rules data structure returned by the API
@@ -89,4 +98,41 @@ export interface GitHubError {
89
98
  documentation_url?: string;
90
99
  }
91
100
  export declare const RULES_DATA_COLLECTION_NAME = "rules_data";
101
+ /**
102
+ * Question document type for individual MongoDB documents
103
+ * Each question is stored as a separate document
104
+ */
105
+ export interface QuestionDocument {
106
+ /** Unique identifier in kebab-case */
107
+ id: string;
108
+ /** The question text */
109
+ text: string;
110
+ /** Question type */
111
+ type: "yes-no" | "choice" | "open-ended";
112
+ /** Array of tags for fuzzy search matching */
113
+ tags: string[];
114
+ /** Keywords for yes-no questions (optional) */
115
+ keywords?: string[];
116
+ /** Options for choice questions (optional) */
117
+ options?: Array<{
118
+ text: string;
119
+ keywords: string[];
120
+ }>;
121
+ /** Source file where question was originally defined */
122
+ sourceFile: string;
123
+ /** When this question was cached from GitHub */
124
+ lastFetched: Date;
125
+ /** When this document was created */
126
+ createdAt: Date;
127
+ /** When this document was last updated */
128
+ updatedAt: Date;
129
+ }
130
+ /**
131
+ * Questions response type for server component data
132
+ * Contains all questions fetched from database
133
+ */
134
+ export interface QuestionsResponse {
135
+ questions: QuestionDocument[];
136
+ }
137
+ export declare const QUESTIONS_COLLECTION_NAME = "questions";
92
138
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE;QACX,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAC;KACrC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;KAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,0BAA0B,eAAe,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RULES_DATA_COLLECTION_NAME = void 0;
3
+ exports.QUESTIONS_COLLECTION_NAME = exports.RULES_DATA_COLLECTION_NAME = void 0;
4
4
  exports.RULES_DATA_COLLECTION_NAME = "rules_data";
5
+ exports.QUESTIONS_COLLECTION_NAME = "questions";
5
6
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":";;;AAoGa,QAAA,0BAA0B,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":";;;AA8Ga,QAAA,0BAA0B,GAAG,YAAY,CAAC;AAwC1C,QAAA,yBAAyB,GAAG,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quanvo99/ai-rules",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "CLI tool for managing AI agent rules across projects",
5
5
  "main": "dist/index.js",
6
6
  "bin": {