openai-code-assistant 1.0.1 → 1.0.3

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 CHANGED
@@ -1,44 +1,69 @@
1
- # Spey Project
2
-
3
- ## Project Description
4
- Spey is an advanced agent-based system designed to facilitate automated task management through specialized agents. These agents include Customer Triage, Manager, Reviewer, and Supervisor, each handling specific operational domains like customer inquiry triage, task management, review processes, and supervision. Spey leverages OpenAI models to enhance automation and intelligence in handling workflows.
5
-
6
- ## Setup Instructions
7
- 1. Clone the repository.
8
- 2. Install dependencies:
9
- ```bash
10
- npm install
11
- ```
12
- 3. Environment Configuration:
13
- - Create a `.env` file in the root directory (if not existing).
14
- - Set the following environment variables:
15
- - `OPENAI_MODEL_NAME`: (Optional) OpenAI model to use. Defaults to `gpt-3.5-turbo` if unspecified.
16
- - `AGENT_WORKSPACE_ROOT`: (Optional) Path to the workspace root directory. Defaults to current working directory.
17
-
18
- ## Running Instructions
19
- Run the system using:
1
+ # openai-code-assistant
2
+
3
+ ## Overview
4
+
5
+ openai-code-assistant is a private command-line interface (CLI) tool that leverages OpenAI models by orchestrating AI agents to accomplish complex tasks such as code reviewing, generating documentation, refactoring, and providing intelligent assistance through AI models.
6
+
7
+ A key component of this orchestration is the use of a `supervisorAgent`, which significantly improves task efficiency and accuracy. Unlike a simple chatbot AI that typically focuses on generating responses or implementations directly, the `supervisorAgent` validates the solutions it produces. This validation process ensures that tasks are not only implemented but also carefully checked for correctness and completeness before completion. This layered approach of implementation plus validation helps avoid common errors and improves overall task quality.
8
+
9
+ The tool enables developers to interactively harness the power of OpenAI in their terminal workflows.
10
+
11
+ ## Installation
12
+
13
+ You can install openai-code-assistant either globally or as a dependency in your project.
14
+
15
+ ### Global Installation
16
+
17
+ ```bash
18
+ npm install -g openai-code-assistant
19
+ ```
20
+
21
+ This allows you to run the CLI tool anywhere on your system using the command:
22
+
23
+ ```bash
24
+ openai-code-assistant
25
+ ```
26
+
27
+ ### Local Installation
28
+
29
+ Install openai-code-assistant as a dependency in your project's directory:
30
+
31
+ ```bash
32
+ npm install openai-code-assistant
33
+ ```
34
+
35
+ ## Usage
36
+
37
+ 1. Navigate to your project directory:
38
+
39
+ ```bash
40
+ cd ./my-project
41
+ ```
42
+
43
+ 2. Run the CLI tool:
44
+
45
+ - If installed globally:
46
+
47
+ ```bash
48
+ openai-code-assistant
49
+ ```
50
+
51
+ - If installed locally:
52
+
20
53
  ```bash
21
- npm start
54
+ npx openai-code-assistant
22
55
  ```
23
56
 
24
- ### Development vs Production
25
- - In development, you can run agents individually or in watch mode for rapid feedback (setup as needed).
26
- - Production mode runs the integrated system with all agents collaborating.
57
+ ## Prerequisites
58
+
59
+ - Node.js installed (recommended version 16 or later).
60
+ - OpenAI API key set in your environment variables as `OPENAI_API_KEY`.
61
+ - Optionally, specify the OpenAI model name using the environment variable `OPENAI_MODEL_NAME`. Defaults to `gpt-4.1-mini` if not set.
27
62
 
28
- ## Typical Workflow Example with Agents
29
- - Customer Triage Agent receives and categorizes incoming customer requests.
30
- - Manager Agent allocates tasks and resources based on triage results.
31
- - Reviewer Agent audits completed tasks for quality assurance.
32
- - Supervisor Agent oversees overall system health and performance.
63
+ ## Privacy
33
64
 
34
- ## Key Configuration Constants (src/config.ts)
35
- - `OPENAI_MODEL_NAME`: Specifies the AI model name, defaults to "gpt-3.5-turbo" if not set.
36
- - `WORKSPACE_ROOT`: Absolute path to the project workspace root, defaulting to the current working directory, configurable via `AGENT_WORKSPACE_ROOT`.
65
+ The source code of this project is private and not for public distribution. However, the use of openai-code-assistant in any projects, whether internal or external, is welcomed and encouraged.
37
66
 
38
- ## Dependencies
39
- Spey uses key dependencies including:
40
- - `dotenv`: To load environment variables.
41
- - `OpenAI API Client` (assumed, based on usage): For interacting with OpenAI models.
42
- - Various utilities for file handling and workspace management.
67
+ ## License
43
68
 
44
- Feel free to explore the source codes under `src/` folder to understand the implementation details of each component.
69
+ The source code is private and not licensed for public distribution or modification. Usage of the tool itself in projects is permitted as described in the Privacy section.
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor-agent.d.ts","sourceRoot":"","sources":["../../src/agents/supervisor-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAuCvC,eAAO,MAAM,eAAe,wBAa1B,CAAC"}
1
+ {"version":3,"file":"supervisor-agent.d.ts","sourceRoot":"","sources":["../../src/agents/supervisor-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAyCvC,eAAO,MAAM,eAAe,wBAa1B,CAAC"}
@@ -23,10 +23,12 @@ const supervisorInstructions = `You are the supervisor responsible for deliverin
23
23
 
24
24
  Workflow:
25
25
  1. Call triage_specialist with the raw user request to obtain the structured plan JSON.
26
- 2. Feed that plan to implementation_manager so it performs the necessary workspace edits (it will call coding and file tools).
27
- 3. Once implementation is done, call qa_reviewer with the original request plus the manager summary to confirm compliance.
28
- 4. If qa_reviewer returns "No", summarize the findings and either re-run implementation_manager or escalate.
29
- 5. Keep responses concise (under 400 words) and include a final section detailing files touched and outstanding questions.
26
+ 2. If the plan contains actionable items, feed it to implementation_manager so it performs the necessary workspace edits (it will call coding and file tools). If the plan declares "no changes required", skip implementation and go to the final summary.
27
+ 3. Feed that plan to implementation_manager so it performs the necessary workspace edits (it will call coding and file tools).
28
+ 4. Only call qa_reviewer when implementation_manager actually made changes or when triage raises risk. Provide it with the original request plus the manager summary to confirm compliance.
29
+ 5. Once implementation is done, call qa_reviewer with the original request plus the manager summary to confirm compliance.
30
+ 6. If qa_reviewer returns "No", summarize the findings and either re-run implementation_manager or escalate.
31
+ 7. Keep responses concise (under 400 words) and include a final section detailing files touched and outstanding questions.
30
32
 
31
33
  You may directly use workspace tools for quick spot checks, but prefer the specialized agents whenever possible.`;
32
34
  export const supervisorAgent = new Agent({
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor-agent.js","sourceRoot":"","sources":["../../src/agents/supervisor-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,eAAe,EACb,+HAA+H;CAClI,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,wBAAwB;IAClC,eAAe,EACb,0GAA0G;CAC7G,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,aAAa;IACvB,eAAe,EACb,mGAAmG;CACtG,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG;;;;;;;;;iHASkF,CAAC;AAElH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC;IACvC,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,sBAAsB;IACpC,KAAK,EAAE;QACL,UAAU;QACV,WAAW;QACX,YAAY;QACZ,iBAAiB;QACjB,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;KACxB;IACD,KAAK,EAAE,iBAAiB;CACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"supervisor-agent.js","sourceRoot":"","sources":["../../src/agents/supervisor-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,mBAAmB;IAC7B,eAAe,EACb,+HAA+H;CAClI,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,wBAAwB;IAClC,eAAe,EACb,0GAA0G;CAC7G,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC;IACxC,QAAQ,EAAE,aAAa;IACvB,eAAe,EACb,mGAAmG;CACtG,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG;;;;;;;;;;;iHAWkF,CAAC;AAElH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC;IACvC,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,sBAAsB;IACpC,KAAK,EAAE;QACL,UAAU;QACV,WAAW;QACX,YAAY;QACZ,iBAAiB;QACjB,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;KACxB;IACD,KAAK,EAAE,iBAAiB;CACzB,CAAC,CAAC"}
@@ -3,5 +3,5 @@ export declare const generateOutput: ({ input, conversationId, signal, }: {
3
3
  input: string;
4
4
  conversationId: string;
5
5
  signal?: AbortController["signal"];
6
- }) => Promise<string>;
6
+ }) => Promise<string | undefined>;
7
7
  //# sourceMappingURL=generate-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-output.d.ts","sourceRoot":"","sources":["../src/generate-output.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAMvB,eAAO,MAAM,cAAc,GAAU,oCAIlC;IACD,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACpC,KAAG,OAAO,CAAC,MAAM,CAWjB,CAAC"}
1
+ {"version":3,"file":"generate-output.d.ts","sourceRoot":"","sources":["../src/generate-output.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AAKvB,eAAO,MAAM,cAAc,GAAU,oCAIlC;IACD,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;CACpC,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAgB7B,CAAC"}
@@ -1,15 +1,23 @@
1
1
  import "dotenv/config";
2
2
  import { run } from "@openai/agents";
3
3
  import { supervisorAgent } from "./agents/supervisor-agent.js";
4
- import { marked } from "marked";
5
4
  import { logOutputIteratively } from "./utils/cmd-operations.js";
6
5
  export const generateOutput = async ({ input, conversationId, signal, }) => {
7
6
  const logIntervalId = logOutputIteratively("thinking");
8
- const result = await run(supervisorAgent, input, {
9
- conversationId,
10
- ...(signal ? { signal } : undefined),
11
- });
12
- clearInterval(logIntervalId);
13
- return result.finalOutput;
7
+ let result;
8
+ try {
9
+ result = await run(supervisorAgent, input, {
10
+ conversationId,
11
+ ...(signal ? { signal } : undefined),
12
+ });
13
+ // console.log(result.runContext.usage);
14
+ }
15
+ catch (error) {
16
+ console.error(error?.message);
17
+ }
18
+ finally {
19
+ clearInterval(logIntervalId);
20
+ }
21
+ return result?.finalOutput;
14
22
  };
15
23
  //# sourceMappingURL=generate-output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-output.js","sourceRoot":"","sources":["../src/generate-output.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACnC,KAAK,EACL,cAAc,EACd,MAAM,GAKP,EAAmB,EAAE;IACpB,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE;QAC/C,cAAc;QACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KACrC,CAAC,CAAC;IAEH,aAAa,CAAC,aAAa,CAAC,CAAC;IAE7B,OAAO,MAAM,CAAC,WAAqB,CAAC;AACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-output.js","sourceRoot":"","sources":["../src/generate-output.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EACnC,KAAK,EACL,cAAc,EACd,MAAM,GAKP,EAA+B,EAAE;IAChC,MAAM,aAAa,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE;YACzC,cAAc;YACd,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACrC,CAAC,CAAC;QACH,wCAAwC;IAC1C,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,EAAE,WAAW,CAAC;AAC7B,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import "dotenv/config";
3
3
  import OpenAI from "openai";
4
+ import chalk from "chalk";
4
5
  import { marked } from "marked";
5
6
  import { markedTerminal } from "marked-terminal";
6
7
  import { generateOutput } from "./generate-output.js";
@@ -8,6 +9,10 @@ marked.use(markedTerminal({}));
8
9
  const client = new OpenAI();
9
10
  const { id: conversationId } = await client.conversations.create({});
10
11
  // conversation history
12
+ // guardrails
13
+ // documentation
14
+ // interface
15
+ // commands
11
16
  const abortController = new AbortController();
12
17
  let isProcessingRequest = false;
13
18
  console.log("Hello! How I can assist you today? Is there something specific you need help with?");
@@ -19,14 +24,16 @@ process.stdin.on("data", (chunk) => {
19
24
  abortController.abort();
20
25
  }
21
26
  if (input.trim()) {
22
- console.log(marked("**received:** " + chunk.toString()));
27
+ console.log(chalk.cyan("received:") + " " + chunk.toString());
23
28
  generateOutput({
24
29
  input,
25
30
  conversationId,
26
31
  signal: abortController.signal,
27
32
  })
28
33
  .then((result) => {
29
- console.log(`\r${marked(result)}`);
34
+ if (result) {
35
+ console.log(`\r${marked(result)}`);
36
+ }
30
37
  })
31
38
  .finally(() => {
32
39
  isProcessingRequest = false;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAQ,CAAC,CAAC;AAEtC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAErE,uBAAuB;AAEvB,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAC9C,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,OAAO,CAAC,GAAG,CACT,oFAAoF,CACrF,CAAC;AACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEzC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE/B,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACnC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEzD,cAAc,CAAC;YACb,KAAK;YACL,cAAc;YACd,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC;aACC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,mBAAmB,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,eAAe,CAAC;AACvB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAQ,CAAC,CAAC;AAEtC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AAC5B,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAErE,uBAAuB;AACvB,aAAa;AACb,gBAAgB;AAChB,YAAY;AACZ,WAAW;AAEX,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AAC9C,IAAI,mBAAmB,GAAG,KAAK,CAAC;AAEhC,OAAO,CAAC,GAAG,CACT,oFAAoF,CACrF,CAAC;AACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEzC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAE/B,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QACnC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9D,cAAc,CAAC;YACb,KAAK;YACL,cAAc;YACd,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC;aACC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,mBAAmB,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openai-code-assistant",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "scripts": {
5
5
  "test": "echo \"Error: no test specified\" && exit 1",
6
6
  "start": "node dist/index.js",
@@ -11,9 +11,23 @@
11
11
  "bin": {
12
12
  "openai-code-assistant": "dist/index.js"
13
13
  },
14
- "author": "",
14
+ "author": "https://github.com/shamshodisaev",
15
15
  "license": "ISC",
16
16
  "description": "",
17
+ "keywords": [
18
+ "OpenAI",
19
+ "AI agents",
20
+ "CLI tool",
21
+ "code assistant",
22
+ "code review",
23
+ "documentation generator",
24
+ "refactoring",
25
+ "supervisor agent",
26
+ "AI task orchestration",
27
+ "chatbot",
28
+ "OpenAI CLI",
29
+ "interactive assistant"
30
+ ],
17
31
  "type": "module",
18
32
  "devDependencies": {
19
33
  "@types/node": "^25.3.3",
@@ -26,6 +40,7 @@
26
40
  "@openai/agents": "^0.5.3",
27
41
  "@types/inquirer": "^9.0.9",
28
42
  "@types/marked-terminal": "^6.1.1",
43
+ "chalk": "^5.6.2",
29
44
  "dotenv": "^17.3.1",
30
45
  "inquirer": "^13.3.0",
31
46
  "marked": "^15.0.12",