genaicode 0.12.1 → 0.13.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 (85) hide show
  1. package/README.md +1 -1
  2. package/dist/ai-service/service-configurations-types.d.ts +15 -1
  3. package/dist/ai-service/service-configurations-types.js +4 -0
  4. package/dist/ai-service/service-configurations-types.js.map +1 -1
  5. package/dist/cli/cli-params.d.ts +1 -0
  6. package/dist/cli/cli-params.js +1 -0
  7. package/dist/cli/cli-params.js.map +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +1 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/main/codegen-types.d.ts +2 -1
  12. package/dist/main/codegen.js +1 -0
  13. package/dist/main/codegen.js.map +1 -1
  14. package/dist/main/common/user-actions.d.ts +5 -2
  15. package/dist/main/common/user-actions.js +2 -2
  16. package/dist/main/common/user-actions.js.map +1 -1
  17. package/dist/main/config-lib.d.ts +12 -3
  18. package/dist/main/config-lib.js +61 -44
  19. package/dist/main/config-lib.js.map +1 -1
  20. package/dist/main/config-schema.d.ts +2 -1
  21. package/dist/main/config-schema.js +153 -19
  22. package/dist/main/config-schema.js.map +1 -1
  23. package/dist/main/config-types.d.ts +43 -16
  24. package/dist/main/config-types.js +3 -1
  25. package/dist/main/config-types.js.map +1 -1
  26. package/dist/main/config.d.ts +8 -2
  27. package/dist/main/config.js +59 -11
  28. package/dist/main/config.js.map +1 -1
  29. package/dist/main/plugin-loader.d.ts +1 -0
  30. package/dist/main/plugin-loader.js +28 -6
  31. package/dist/main/plugin-loader.js.map +1 -1
  32. package/dist/main/ui/backend/api.js +2 -0
  33. package/dist/main/ui/backend/api.js.map +1 -1
  34. package/dist/main/ui/backend/endpoints/config-endpoint.js +12 -0
  35. package/dist/main/ui/backend/endpoints/config-endpoint.js.map +1 -1
  36. package/dist/main/ui/backend/endpoints/question-endpoint.js +5 -4
  37. package/dist/main/ui/backend/endpoints/question-endpoint.js.map +1 -1
  38. package/dist/main/ui/backend/service.d.ts +3 -1
  39. package/dist/main/ui/backend/service.js +4 -3
  40. package/dist/main/ui/backend/service.js.map +1 -1
  41. package/dist/main/ui/common/api-types.d.ts +1 -0
  42. package/dist/main/ui/common/api-types.js.map +1 -1
  43. package/dist/main/ui/frontend/assets/index-C2MB0Z2i.js +2665 -0
  44. package/dist/main/ui/frontend/index.html +1 -1
  45. package/dist/main/ui/user-action-handlers.js +3 -1
  46. package/dist/main/ui/user-action-handlers.js.map +1 -1
  47. package/dist/prompt/function-calling-validate.js +1 -0
  48. package/dist/prompt/function-calling-validate.js.map +1 -1
  49. package/dist/prompt/function-calling.js +7 -4
  50. package/dist/prompt/function-calling.js.map +1 -1
  51. package/dist/prompt/function-defs/ask-question.d.ts +2 -2
  52. package/dist/prompt/function-defs/ask-question.js +60 -52
  53. package/dist/prompt/function-defs/ask-question.js.map +1 -1
  54. package/dist/prompt/function-defs/conversation-graph.d.ts +1 -1
  55. package/dist/prompt/function-defs/conversation-graph.js +4 -4
  56. package/dist/prompt/function-defs/conversation-graph.js.map +1 -1
  57. package/dist/prompt/function-defs/run-bash-command.d.ts +2 -0
  58. package/dist/prompt/function-defs/run-bash-command.js +29 -0
  59. package/dist/prompt/function-defs/run-bash-command.js.map +1 -0
  60. package/dist/prompt/function-defs/run-project-command.d.ts +2 -0
  61. package/dist/prompt/function-defs/run-project-command.js +37 -0
  62. package/dist/prompt/function-defs/run-project-command.js.map +1 -0
  63. package/dist/prompt/steps/step-ask-question/handlers/container-task/commands/send-message.js +1 -1
  64. package/dist/prompt/steps/step-ask-question/handlers/container-task/commands/send-message.js.map +1 -1
  65. package/dist/prompt/steps/step-ask-question/handlers/handle-lint.d.ts +2 -2
  66. package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js +31 -69
  67. package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js.map +1 -1
  68. package/dist/prompt/steps/step-ask-question/handlers/handle-project-command.d.ts +2 -0
  69. package/dist/prompt/steps/step-ask-question/handlers/handle-project-command.js +282 -0
  70. package/dist/prompt/steps/step-ask-question/handlers/handle-project-command.js.map +1 -0
  71. package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.d.ts +1 -1
  72. package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.js +70 -3
  73. package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.js.map +1 -1
  74. package/dist/prompt/steps/step-ask-question/handlers/handle-run-bash-command.d.ts +2 -0
  75. package/dist/prompt/steps/step-ask-question/handlers/handle-run-bash-command.js +185 -0
  76. package/dist/prompt/steps/step-ask-question/handlers/handle-run-bash-command.js.map +1 -0
  77. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +2 -1
  78. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
  79. package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +31 -12
  80. package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +2 -1
  81. package/dist/prompt/steps/step-ask-question/step-ask-question.js +16 -2
  82. package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
  83. package/dist/prompt/systemprompt.js +2 -2
  84. package/package.json +4 -3
  85. package/dist/main/ui/frontend/assets/index-j9Oi9iiP.js +0 -2635
package/README.md CHANGED
@@ -74,7 +74,7 @@ GenAIcode supports various command-line options to customize its behavior:
74
74
 
75
75
  ## Configuration (.genaicoderc)
76
76
 
77
- The `.genaicoderc` file allows you to configure various aspects of GenAIcode's behavior. Here are the available options:
77
+ The `.genaicoderc`(or `genaicode.config.ts` + js/mts etc.) file allows you to configure various aspects of GenAIcode's behavior. Here are the available options:
78
78
 
79
79
  ```json
80
80
  {
@@ -1,4 +1,3 @@
1
- import { ModelSpecificSettings } from '../main/config-types.js';
2
1
  /**
3
2
  * Full service configuration interface.
4
3
  * This interface includes sensitive data and should only be used internally.
@@ -64,3 +63,18 @@ export type ServiceConfigRequirements = {
64
63
  export type PluginAiServiceType = `plugin:${string}`; /** Example: {@link ../../examples/genaicode_plugins/nonsense_action_handlers.ts} */
65
64
  export type PluginActionType = `plugin:${string}`;
66
65
  export type AiServiceType = 'vertex-ai' | 'ai-studio' | 'openai' | 'local-llm' | 'anthropic' | 'github-models' | PluginAiServiceType;
66
+ /**
67
+ * Configuration for specific model settings within a service.
68
+ */
69
+ export interface ModelSpecificSettings {
70
+ /** System instructions specific to this model */
71
+ systemInstruction?: string[];
72
+ /** Maximum number of tokens to generate in the output specific to this model */
73
+ outputTokenLimit?: number;
74
+ /** Whether the model should use 'thinking' mode if available */
75
+ thinkingEnabled?: boolean;
76
+ /** The token budget for 'thinking' mode */
77
+ thinkingBudget?: number;
78
+ /** Temperature unsupported */
79
+ temperatureUnsupported?: boolean;
80
+ }
@@ -1,2 +1,6 @@
1
+ /**
2
+ * Full service configuration interface.
3
+ * This interface includes sensitive data and should only be used internally.
4
+ */
1
5
  export {};
2
6
  //# sourceMappingURL=service-configurations-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service-configurations-types.js","sourceRoot":"","sources":["../../src/ai-service/service-configurations-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"service-configurations-types.js","sourceRoot":"","sources":["../../src/ai-service/service-configurations-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -17,6 +17,7 @@ export declare const cheap: boolean;
17
17
  export declare const interactive: boolean;
18
18
  export declare const ui: boolean;
19
19
  export declare const askQuestion: boolean;
20
+ export declare const initialActionType: string | undefined;
20
21
  export declare const disableConversationSummary: boolean;
21
22
  export declare const helpRequested: boolean;
22
23
  export declare const temperature: number;
@@ -41,6 +41,7 @@ export const cheap = params.includes('--cheap');
41
41
  export const interactive = params.includes('--interactive');
42
42
  export const ui = params.includes('--ui');
43
43
  export const askQuestion = (interactive || ui) && !params.includes('--disable-ask-question'); // Default enabled in interactive/ui
44
+ export const initialActionType = params.find((param) => param.startsWith('--initial-action-type='))?.split('=')[1];
44
45
  export const disableConversationSummary = params.includes('--disable-conversation-summary');
45
46
  // Add support for --help option
46
47
  export const helpRequested = params.includes('--help');
@@ -1 +1 @@
1
- {"version":3,"file":"cli-params.js","sourceRoot":"","sources":["../../src/cli/cli-params.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-params.js","sourceRoot":"","sources":["../../src/cli/cli-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAErC,oCAAoC;AACpC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACzE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAEnE,2EAA2E;AAC3E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACxF,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IAE5E,wFAAwF;IACxF,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnG,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAEtE,MAAM,CAAC,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAC5F,MAAM,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAG3E,CAAC;AACd,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,CAAC,oCAAoC;AAClI,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE5F,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAEvD,wBAAwB;AACxB,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CACnF,CAAC,CAAC,iCAAiC;AAEpC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAEnH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM;KACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAEnE,oDAAoD;AACpD,0CAA0C;AAC1C,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AAEpH,IAAI,QAAQ,EAAE,CAAC;IACb,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QACrD,SAAS,GAAG,QAAQ,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,MAAM,EAAE,CAAC;IACX,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AACxD,CAAC;AAED,IAAI,KAAK,EAAE,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACjF,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;IACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,WAAW,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC;AAED,IAAI,wBAAwB,EAAE,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AACjD,CAAC;KAAM,CAAC;IACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAC1D,CAAC;AAED,kBAAkB;AAClB,IAAI,EAAE,EAAE,CAAC;IACP,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@ export * from './prompt/steps/step-ask-question/step-ask-question-types.js';
4
4
  export * from './main/common/content-bus.js';
5
5
  export * from './prompt/steps/steps-types.js';
6
6
  export * from './main/common/user-actions.js';
7
+ export { defineConfig } from './main/config-types.js';
7
8
  export declare function getRcConfig(): Promise<import("./main/config-types.js").RcConfig>;
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export * from './prompt/steps/step-ask-question/step-ask-question-types.js';
4
4
  export * from './main/common/content-bus.js';
5
5
  export * from './prompt/steps/steps-types.js';
6
6
  export * from './main/common/user-actions.js';
7
+ export { defineConfig } from './main/config-types.js';
7
8
  export async function getRcConfig() {
8
9
  const { rcConfig } = await import('./main/config.js');
9
10
  return rcConfig;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { GenerateContentFunction } from '../ai-service/common-types.js';
2
2
  import { FunctionCall, GenerateContentHook } from '../ai-service/common-types.js';
3
3
  import { FunctionDef } from '../ai-service/common-types.js';
4
- import { ActionHandler } from '../prompt/steps/step-ask-question/step-ask-question-types.js';
4
+ import { ActionHandler, ActionType } from '../prompt/steps/step-ask-question/step-ask-question-types.js';
5
5
  import { AiServiceType, ServiceConfig } from '../ai-service/service-configurations-types.js';
6
6
  export { type AiServiceType, type ServiceConfig } from '../ai-service/service-configurations-types.js';
7
7
  export type ImagenType = 'vertex-ai' | 'dall-e';
@@ -30,6 +30,7 @@ export interface CodegenOptions {
30
30
  contentMask?: string;
31
31
  ignorePatterns?: string[];
32
32
  askQuestion: boolean;
33
+ initialActionType?: ActionType;
33
34
  interactive?: boolean;
34
35
  ui?: boolean;
35
36
  uiPort?: number;
@@ -45,6 +45,7 @@ export async function runCodegen(isDev = false) {
45
45
  contentMask: cliParams.contentMask,
46
46
  ignorePatterns: cliParams.ignorePatterns,
47
47
  askQuestion: cliParams.askQuestion,
48
+ initialActionType: cliParams.initialActionType,
48
49
  disableCache: cliParams.disableCache,
49
50
  interactive: cliParams.interactive,
50
51
  ui: cliParams.ui,
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/main/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/main/codegen.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  import { PromptItemImage } from '../../ai-service/common-types';
2
+ import { ActionType } from '../../prompt/steps/step-ask-question/step-ask-question-types';
2
3
  import { CodegenOptions } from '../codegen-types';
3
4
  export type InputHandlerResponse = {
4
5
  answer: string;
5
6
  images?: PromptItemImage[];
6
7
  options?: CodegenOptions;
8
+ selectedActionType?: ActionType | undefined;
7
9
  };
8
- type InputHandler = (prompt: string, message: string) => Promise<InputHandlerResponse>;
10
+ type InputHandler = (prompt: string, message: string, promptActionType?: boolean) => Promise<InputHandlerResponse>;
9
11
  export type ConfirmHandlerResponse = {
10
12
  confirmed: boolean | undefined;
11
13
  options?: CodegenOptions;
12
14
  answer?: string;
15
+ selectedActionType?: ActionType | undefined;
13
16
  };
14
17
  export type ConfirmHandlerProps = {
15
18
  prompt: string;
@@ -20,7 +23,7 @@ export type ConfirmHandlerProps = {
20
23
  };
21
24
  type ConfirmHandler = (props: ConfirmHandlerProps) => Promise<ConfirmHandlerResponse>;
22
25
  type SecretHandler = (prompt: string) => Promise<string | undefined>;
23
- export declare function askUserForInput(prompt: string, message: string, options: CodegenOptions): Promise<InputHandlerResponse>;
26
+ export declare function askUserForInput(prompt: string, message: string, options: CodegenOptions, promptActionType?: boolean): Promise<InputHandlerResponse>;
24
27
  export declare function askUserForConfirmation(prompt: string, defaultValue: boolean, options: CodegenOptions, confirmLabel?: string, declineLabel?: string): Promise<ConfirmHandlerResponse>;
25
28
  export declare function askUserForConfirmationWithAnswer(prompt: string, confirmLabel: string, declineLabel: string, defaultValue: boolean, options: CodegenOptions): Promise<ConfirmHandlerResponse>;
26
29
  export declare function askUserForSecret(prompt: string): Promise<string | undefined>;
@@ -1,5 +1,5 @@
1
- export async function askUserForInput(prompt, message, options) {
2
- return handleOptionsUpdate(await inputHandler(prompt, message), options);
1
+ export async function askUserForInput(prompt, message, options, promptActionType) {
2
+ return handleOptionsUpdate(await inputHandler(prompt, message, promptActionType), options);
3
3
  }
4
4
  export async function askUserForConfirmation(prompt, defaultValue, options, confirmLabel = 'Yes', declineLabel = 'No') {
5
5
  return handleOptionsUpdate(await confirmHandler({
@@ -1 +1 @@
1
- {"version":3,"file":"user-actions.js","sourceRoot":"","sources":["../../../src/main/common/user-actions.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,OAAe,EACf,OAAuB;IAEvB,OAAO,mBAAmB,CAAC,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,YAAqB,EACrB,OAAuB,EACvB,YAAY,GAAG,KAAK,EACpB,YAAY,GAAG,IAAI;IAEnB,OAAO,mBAAmB,CACxB,MAAM,cAAc,CAAC;QACnB,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,aAAa,EAAE,KAAK;QACpB,YAAY;KACb,CAAC,EACF,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAc,EACd,YAAoB,EACpB,YAAoB,EACpB,YAAqB,EACrB,OAAuB;IAEvB,OAAO,mBAAmB,CACxB,MAAM,cAAc,CAAC;QACnB,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,aAAa,EAAE,IAAI;QACnB,YAAY;KACb,CAAC,EACF,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,IAAI,YAA0B,CAAC;AAC/B,IAAI,cAA8B,CAAC;AACnC,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAuB;IAC5D,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAsB;IAC1D,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,mBAAmB,CAAyC,QAAW,EAAE,OAAuB;IACvG,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"user-actions.js","sourceRoot":"","sources":["../../../src/main/common/user-actions.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,OAAe,EACf,OAAuB,EACvB,gBAA0B;IAE1B,OAAO,mBAAmB,CAAC,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,YAAqB,EACrB,OAAuB,EACvB,YAAY,GAAG,KAAK,EACpB,YAAY,GAAG,IAAI;IAEnB,OAAO,mBAAmB,CACxB,MAAM,cAAc,CAAC;QACnB,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,aAAa,EAAE,KAAK;QACpB,YAAY;KACb,CAAC,EACF,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,MAAc,EACd,YAAoB,EACpB,YAAoB,EACpB,YAAqB,EACrB,OAAuB;IAEvB,OAAO,mBAAmB,CACxB,MAAM,cAAc,CAAC;QACnB,MAAM;QACN,YAAY;QACZ,YAAY;QACZ,aAAa,EAAE,IAAI;QACnB,YAAY;KACb,CAAC,EACF,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,IAAI,YAA0B,CAAC;AAC/B,IAAI,cAA8B,CAAC;AACnC,IAAI,aAA4B,CAAC;AAEjC,MAAM,UAAU,oBAAoB,CAAC,OAAqB;IACxD,YAAY,GAAG,OAAO,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAuB;IAC5D,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAsB;IAC1D,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,mBAAmB,CAAyC,QAAW,EAAE,OAAuB;IACvG,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,4 +1,13 @@
1
1
  import { RcConfig } from './config-types.js';
2
- export declare const CODEGENRC_FILENAME = ".genaicoderc";
3
- export declare function findRcFile(): Promise<string>;
4
- export declare function parseRcFile(rcFilePath: string): RcConfig;
2
+ /**
3
+ * Loads and parses the GenAIcode configuration using the c12 library.
4
+ * It searches for genaicode.config.{ts,js,mjs,cjs,json} or .genaicoderc files.
5
+ * If no configuration is found, it interactively prompts the user to create one.
6
+ *
7
+ * @returns A promise that resolves to the loaded configuration and its file path.
8
+ * @throws An error if no configuration is found and the session is not interactive or the user declines creation.
9
+ */
10
+ export declare function loadConfiguration(): Promise<{
11
+ rcConfig: RcConfig;
12
+ configFilePath: string;
13
+ }>;
@@ -2,11 +2,12 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import assert from 'node:assert';
4
4
  import { confirm } from '@inquirer/prompts';
5
+ import { loadConfig } from 'c12';
5
6
  import { isAncestorDirectory } from '../files/file-utils.js';
6
7
  import { detectAndConfigureProfile, npmProfile } from '../project-profiles/index.js';
7
8
  import { validateRcConfig } from './config-schema.js';
8
- // This file contains project codegen configuration
9
- export const CODEGENRC_FILENAME = '.genaicoderc';
9
+ import { isPluginObject } from './plugin-loader.js';
10
+ const DEFAULT_CONFIG_FILENAME = '.genaicoderc';
10
11
  /**
11
12
  * Create initial .genaicoderc content with profile detection
12
13
  */
@@ -23,51 +24,67 @@ async function createInitialConfig(rcFilePath) {
23
24
  };
24
25
  return config;
25
26
  }
26
- // Find .genaicoderc file
27
- export async function findRcFile() {
28
- let rcFilePath = process.cwd();
29
- while (!fs.existsSync(path.join(rcFilePath, CODEGENRC_FILENAME))) {
30
- const parentDir = path.dirname(rcFilePath);
31
- if (parentDir === rcFilePath) {
32
- // We've reached the root directory, .genaicoderc not found,
33
- // so lets ask the user to create one in the current directory
34
- const isInteractiveSession = process.stdout.isTTY;
35
- // If it's an interactive session (or explicit flag for one of the interactive modes), ask to create the config file.
36
- if (isInteractiveSession || process.argv.includes('--interactive') || process.argv.includes('--ui')) {
37
- rcFilePath = process.cwd();
38
- const createRcFile = await confirm({
39
- message: `${CODEGENRC_FILENAME} not found in any parent directory, would you like to create one in the current directory (${rcFilePath})?`,
40
- default: false,
41
- });
42
- if (createRcFile) {
43
- const config = await createInitialConfig(path.join(rcFilePath, CODEGENRC_FILENAME));
44
- fs.writeFileSync(path.join(rcFilePath, CODEGENRC_FILENAME), JSON.stringify(config, null, 2));
45
- console.log(`Created ${CODEGENRC_FILENAME} in ${rcFilePath} with detected project profile`);
46
- return path.join(rcFilePath, CODEGENRC_FILENAME);
47
- }
48
- }
49
- throw new Error(`${CODEGENRC_FILENAME} not found in any parent directory`);
27
+ /**
28
+ * Loads and parses the GenAIcode configuration using the c12 library.
29
+ * It searches for genaicode.config.{ts,js,mjs,cjs,json} or .genaicoderc files.
30
+ * If no configuration is found, it interactively prompts the user to create one.
31
+ *
32
+ * @returns A promise that resolves to the loaded configuration and its file path.
33
+ * @throws An error if no configuration is found and the session is not interactive or the user declines creation.
34
+ */
35
+ export async function loadConfiguration() {
36
+ const result = await loadConfig({
37
+ name: 'genaicode',
38
+ cwd: process.cwd(),
39
+ packageJson: false,
40
+ globalRc: false,
41
+ rcFile: false,
42
+ // optional: keep default config discovery too by returning undefined when .rc is absent
43
+ resolve: async (_, { cwd }) => {
44
+ if (!cwd)
45
+ return;
46
+ const p = path.join(cwd, '.genaicoderc');
47
+ if (!fs.existsSync(p))
48
+ return; // fall back to c12’s normal discovery
49
+ const txt = fs.readFileSync(p, 'utf-8');
50
+ return { config: JSON.parse(txt), configFile: p };
51
+ },
52
+ });
53
+ if (result && result.layers?.length) {
54
+ const rcConfig = result.config;
55
+ const configFilePath = result.configFile;
56
+ if (!configFilePath) {
57
+ throw new Error('Could not determine configuration file path from c12 result.');
58
+ }
59
+ validateRcConfig(rcConfig);
60
+ assert(rcConfig.rootDir, 'Root dir not configured');
61
+ const rootDir = path.resolve(path.dirname(configFilePath), rcConfig.rootDir);
62
+ assert(isAncestorDirectory(path.dirname(configFilePath), rootDir), 'Root dir is not located inside project directory');
63
+ if (rcConfig.plugins) {
64
+ assert(Array.isArray(rcConfig.plugins), 'Plugins must be an array of strings');
65
+ rcConfig.plugins.forEach((plugin, index) => {
66
+ assert(typeof plugin === 'string' || isPluginObject(plugin), `Plugin at index ${index} must be a string or Plugin type`);
67
+ });
50
68
  }
51
- rcFilePath = parentDir;
69
+ return { rcConfig: { ...rcConfig, rootDir }, configFilePath };
52
70
  }
53
- return path.join(rcFilePath, CODEGENRC_FILENAME);
54
- }
55
- // Read and parse .genaicoderc file
56
- export function parseRcFile(rcFilePath) {
57
- assert(fs.existsSync(rcFilePath), `${CODEGENRC_FILENAME} not found`);
58
- const rcConfig = JSON.parse(fs.readFileSync(rcFilePath, 'utf-8'));
59
- validateRcConfig(rcConfig);
60
- assert(rcConfig.rootDir, 'Root dir not configured');
61
- const rootDir = path.resolve(path.dirname(rcFilePath), rcConfig.rootDir);
62
- assert(isAncestorDirectory(path.dirname(rcFilePath), rootDir), 'Root dir is not located inside project directory');
63
- // Validate content using json schema
64
- // Validate plugins array if it exists
65
- if (rcConfig.plugins) {
66
- assert(Array.isArray(rcConfig.plugins), 'Plugins must be an array of strings');
67
- rcConfig.plugins.forEach((plugin, index) => {
68
- assert(typeof plugin === 'string', `Plugin at index ${index} must be a string`);
71
+ // No config found, handle interactive creation
72
+ const isInteractiveSession = process.stdout.isTTY || process.argv.includes('--interactive') || process.argv.includes('--ui');
73
+ if (isInteractiveSession) {
74
+ const creationDir = process.cwd();
75
+ const createRcFile = await confirm({
76
+ message: `No GenAIcode config found. Would you like to create a default ${DEFAULT_CONFIG_FILENAME} in the current directory (${creationDir})?`,
77
+ default: false,
69
78
  });
79
+ if (createRcFile) {
80
+ const newConfigPath = path.join(creationDir, DEFAULT_CONFIG_FILENAME);
81
+ const config = await createInitialConfig(newConfigPath);
82
+ fs.writeFileSync(newConfigPath, JSON.stringify(config, null, 2));
83
+ console.log(`Created ${DEFAULT_CONFIG_FILENAME} in ${creationDir} with detected project profile`);
84
+ const resolvedRootDir = path.resolve(path.dirname(newConfigPath), config.rootDir);
85
+ return { rcConfig: { ...config, rootDir: resolvedRootDir }, configFilePath: newConfigPath };
86
+ }
70
87
  }
71
- return { ...rcConfig, rootDir };
88
+ throw new Error('No GenAIcode config found in any parent directory.');
72
89
  }
73
90
  //# sourceMappingURL=config-lib.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-lib.js","sourceRoot":"","sources":["../../src/main/config-lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-lib.js","sourceRoot":"","sources":["../../src/main/config-lib.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Schema } from 'jsonschema';
2
+ import { RcConfig } from './config-types.js';
2
3
  /**
3
4
  * This file contains the JSON schema for .genaicoderc configuration.
4
5
  * The schema is based on the RcConfig interface and provides comprehensive
@@ -11,4 +12,4 @@ export declare const GENAICODERC_SCHEMA: Schema;
11
12
  * Name of the virtual file that contains the schema
12
13
  */
13
14
  export declare const SCHEMA_VIRTUAL_FILE_NAME = ".genaicoderc.schema.json";
14
- export declare function validateRcConfig(rcConfig: unknown): void;
15
+ export declare function validateRcConfig(rcConfig: RcConfig): void;