@channelfactory/cliend 0.1.0 → 0.3.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/README.md +301 -0
- package/dist/src/auth/auth-manager.js +1 -1
- package/dist/src/auth/auth-manager.js.map +1 -1
- package/dist/src/config/config.schema.d.ts +5 -0
- package/dist/src/config/config.schema.d.ts.map +1 -1
- package/dist/src/config/config.schema.js +1 -0
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/config/defaults.d.ts.map +1 -1
- package/dist/src/config/defaults.js +1 -0
- package/dist/src/config/defaults.js.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/atlassian/mcp-client.d.ts +40 -0
- package/dist/src/integrations/atlassian/mcp-client.d.ts.map +1 -0
- package/dist/src/integrations/atlassian/mcp-client.js +198 -0
- package/dist/src/integrations/atlassian/mcp-client.js.map +1 -0
- package/dist/src/repl/commands/breakdown.d.ts +3 -0
- package/dist/src/repl/commands/breakdown.d.ts.map +1 -0
- package/dist/src/repl/commands/breakdown.js +141 -0
- package/dist/src/repl/commands/breakdown.js.map +1 -0
- package/dist/src/repl/commands/config.d.ts.map +1 -1
- package/dist/src/repl/commands/config.js +8 -2
- package/dist/src/repl/commands/config.js.map +1 -1
- package/dist/src/repl/commands/help.d.ts.map +1 -1
- package/dist/src/repl/commands/help.js +3 -0
- package/dist/src/repl/commands/help.js.map +1 -1
- package/dist/src/repl/commands/search.d.ts +3 -0
- package/dist/src/repl/commands/search.d.ts.map +1 -0
- package/dist/src/repl/commands/search.js +49 -0
- package/dist/src/repl/commands/search.js.map +1 -0
- package/dist/src/repl/commands/ticket.d.ts.map +1 -1
- package/dist/src/repl/commands/ticket.js +12 -2
- package/dist/src/repl/commands/ticket.js.map +1 -1
- package/dist/src/repl/repl.d.ts.map +1 -1
- package/dist/src/repl/repl.js +4 -0
- package/dist/src/repl/repl.js.map +1 -1
- package/dist/src/types/config.d.ts +1 -0
- package/dist/src/types/config.d.ts.map +1 -1
- package/dist/src/ui/setup-wizard.d.ts +3 -0
- package/dist/src/ui/setup-wizard.d.ts.map +1 -0
- package/dist/src/ui/setup-wizard.js +135 -0
- package/dist/src/ui/setup-wizard.js.map +1 -0
- package/dist/src/ui/welcome.js +1 -1
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# cliend
|
|
2
|
+
|
|
3
|
+
Internal interactive CLI tool that orchestrates multiple AI coding systems. Type `cliend` in any project directory to start an AI-assisted development session.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
Requires **Node.js >= 22**.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @channelfactory/cliend
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
On first run, a setup wizard will prompt you for the required API keys and configuration. You can re-run it anytime with `/config setup`.
|
|
14
|
+
|
|
15
|
+
## Update
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm update -g @channelfactory/cliend
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
$ cliend
|
|
25
|
+
|
|
26
|
+
╭──────────────────────────────────────────╮
|
|
27
|
+
│ cliend v0.3.0 — AI Development Agent │
|
|
28
|
+
│ Project: my-app │
|
|
29
|
+
│ Type /help for commands │
|
|
30
|
+
╰──────────────────────────────────────────╯
|
|
31
|
+
|
|
32
|
+
> implement the login form for ticket PROJ-123
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## How It Works
|
|
36
|
+
|
|
37
|
+
### Flow
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
┌─────────────────────────────────────────────────────────────────────┐
|
|
41
|
+
│ User types a message in the REPL │
|
|
42
|
+
└──────────────────────────┬──────────────────────────────────────────┘
|
|
43
|
+
│
|
|
44
|
+
▼
|
|
45
|
+
┌────────────────────────┐
|
|
46
|
+
│ First message? │
|
|
47
|
+
│ Detect ticket ID │
|
|
48
|
+
│ (e.g. PROJ-123) │
|
|
49
|
+
└──────────┬─────────────┘
|
|
50
|
+
│
|
|
51
|
+
┌──────────▼─────────────┐
|
|
52
|
+
│ Gather context (once) │
|
|
53
|
+
│ │
|
|
54
|
+
│ ● Jira ticket info │
|
|
55
|
+
│ (via REST API) │
|
|
56
|
+
│ │
|
|
57
|
+
│ ● Obsidian docs │
|
|
58
|
+
│ (from Bitbucket) │
|
|
59
|
+
│ │
|
|
60
|
+
│ ● Memory │
|
|
61
|
+
│ (global + project │
|
|
62
|
+
│ + session) │
|
|
63
|
+
└──────────┬─────────────┘
|
|
64
|
+
│
|
|
65
|
+
┌──────────▼─────────────┐
|
|
66
|
+
│ Context Builder │
|
|
67
|
+
│ Assembles system │
|
|
68
|
+
│ prompt from all │
|
|
69
|
+
│ gathered context │
|
|
70
|
+
└──────────┬─────────────┘
|
|
71
|
+
│
|
|
72
|
+
┌─────────────┼─────────────┐
|
|
73
|
+
▼ ▼ ▼
|
|
74
|
+
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
75
|
+
│ Claude │ │ Codex │ │ ChatGPT │
|
|
76
|
+
│ (Sonnet) │ │ (Mini) │ │ (GPT-4o)│
|
|
77
|
+
└────┬─────┘ └────┬─────┘ └────┬─────┘
|
|
78
|
+
│ │ │
|
|
79
|
+
└─────────────┼─────────────┘
|
|
80
|
+
│
|
|
81
|
+
┌──────────▼─────────────┐
|
|
82
|
+
│ AI Judge │
|
|
83
|
+
│ (Claude Sonnet) │
|
|
84
|
+
│ │
|
|
85
|
+
│ Scores each output: │
|
|
86
|
+
│ ● Readability 25% │
|
|
87
|
+
│ ● Standards 25% │
|
|
88
|
+
│ ● Performance 20% │
|
|
89
|
+
│ ● Completeness 20% │
|
|
90
|
+
│ ● Security 10% │
|
|
91
|
+
└──────────┬─────────────┘
|
|
92
|
+
│
|
|
93
|
+
┌──────────▼─────────────┐
|
|
94
|
+
│ Score Table + Winner │
|
|
95
|
+
└────────────────────────┘
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Example Output
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Sending to 3 AI providers...
|
|
102
|
+
|
|
103
|
+
┌──────────────┬──────┬──────┬──────┬──────┬──────┬───────┐
|
|
104
|
+
│ Provider │ Read │ Perf │ Stds │ Comp │ Sec │ TOTAL │
|
|
105
|
+
├──────────────┼──────┼──────┼──────┼──────┼──────┼───────┤
|
|
106
|
+
│ Claude Code │ 9 │ 8 │ 9 │ 9 │ 8 │ 87 │
|
|
107
|
+
│ Codex │ 8 │ 7 │ 8 │ 8 │ 7 │ 77 │
|
|
108
|
+
│ ChatGPT │ 7 │ 8 │ 7 │ 7 │ 8 │ 73 │
|
|
109
|
+
└──────────────┴──────┴──────┴──────┴──────┴──────┴───────┘
|
|
110
|
+
|
|
111
|
+
Winner: Claude Code (87/100)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Conversation Context
|
|
115
|
+
|
|
116
|
+
Context is gathered **once** on the first message and reused for the entire session:
|
|
117
|
+
|
|
118
|
+
- **Jira ticket**: Auto-detected from your message (e.g. `PROJ-123`) or set with `/ticket`
|
|
119
|
+
- **Obsidian docs**: Fetched from a Bitbucket repo, ranked by relevance to the task
|
|
120
|
+
- **Memory**: Three-tier system (global, project, session) loaded into every prompt
|
|
121
|
+
|
|
122
|
+
Follow-up messages reuse the stored context — no re-fetching.
|
|
123
|
+
|
|
124
|
+
## Commands
|
|
125
|
+
|
|
126
|
+
| Command | Description |
|
|
127
|
+
|---------|-------------|
|
|
128
|
+
| `/help` | Show available commands |
|
|
129
|
+
| `/ticket <ID>` | Fetch/switch Jira ticket context |
|
|
130
|
+
| `/obsidian` | Refresh Obsidian docs from Bitbucket |
|
|
131
|
+
| `/sessions` | List all chat sessions for this project |
|
|
132
|
+
| `/resume <N>` | Resume a previous session |
|
|
133
|
+
| `/new [name]` | Start a new session |
|
|
134
|
+
| `/memory` | Show/edit session memory |
|
|
135
|
+
| `/status` | Check auth and service connectivity |
|
|
136
|
+
| `/breakdown <ID>` | Break down a Jira ticket into subtasks (AI + Rovo) |
|
|
137
|
+
| `/search <query>` | Search Jira & Confluence via Rovo AI |
|
|
138
|
+
| `/config` | View current configuration |
|
|
139
|
+
| `/config setup` | Re-run the setup wizard |
|
|
140
|
+
| `/auth` | Authenticate with Atlassian (OAuth) |
|
|
141
|
+
| `/clear` | Clear the screen |
|
|
142
|
+
| `/exit` | End the session |
|
|
143
|
+
|
|
144
|
+
## Rovo Integration (Jira Read/Write)
|
|
145
|
+
|
|
146
|
+
cliend connects to the **Atlassian Rovo MCP Server** for full Jira read/write access:
|
|
147
|
+
|
|
148
|
+
### `/breakdown PROJ-123`
|
|
149
|
+
|
|
150
|
+
Breaks a ticket into subtasks:
|
|
151
|
+
|
|
152
|
+
1. Fetches the parent ticket from Jira via Rovo
|
|
153
|
+
2. Sends the ticket context to AI providers (Claude, Codex, ChatGPT)
|
|
154
|
+
3. AI generates a list of subtasks
|
|
155
|
+
4. You review and confirm
|
|
156
|
+
5. Subtasks are created directly in Jira under the parent ticket
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
> /breakdown PROJ-123
|
|
160
|
+
|
|
161
|
+
PROJ-123 — Add user login form with email/password
|
|
162
|
+
|
|
163
|
+
Generating subtask breakdown via AI...
|
|
164
|
+
|
|
165
|
+
Proposed subtasks for PROJ-123:
|
|
166
|
+
|
|
167
|
+
1. Set up login form component with email/password fields
|
|
168
|
+
2. Add client-side validation (email format, password length)
|
|
169
|
+
3. Implement "Remember me" checkbox with localStorage
|
|
170
|
+
4. Add forgot password link and routing
|
|
171
|
+
5. Handle API error responses and display messages
|
|
172
|
+
|
|
173
|
+
Create 5 subtasks in Jira? (y/N) y
|
|
174
|
+
|
|
175
|
+
✓ Created PROJ-124: Set up login form component
|
|
176
|
+
✓ Created PROJ-125: Add client-side validation
|
|
177
|
+
✓ Created PROJ-126: Implement remember me checkbox
|
|
178
|
+
✓ Created PROJ-127: Add forgot password link
|
|
179
|
+
✓ Created PROJ-128: Handle API error responses
|
|
180
|
+
|
|
181
|
+
Done. Subtasks created under PROJ-123.
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### `/search <query>`
|
|
185
|
+
|
|
186
|
+
AI-powered semantic search across Jira and Confluence:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
> /search how does the auth flow work
|
|
190
|
+
|
|
191
|
+
3 results found:
|
|
192
|
+
|
|
193
|
+
1. [Jira] PROJ-89 — Implement OAuth 2.0 login flow
|
|
194
|
+
Covers the full auth flow including token refresh...
|
|
195
|
+
2. [Confluence] Authentication Architecture
|
|
196
|
+
Describes the auth patterns used across services...
|
|
197
|
+
3. [Jira] PROJ-45 — Fix token expiration handling
|
|
198
|
+
Tokens were not being refreshed correctly when...
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Prerequisites
|
|
202
|
+
|
|
203
|
+
- Your Atlassian Cloud workspace must have a **paid plan** (Standard, Premium, or Enterprise) — Rovo is included at no extra cost
|
|
204
|
+
- An org admin must have AI features enabled in **Atlassian Administration > Apps > AI settings**
|
|
205
|
+
- Run `/auth` in cliend to connect your Atlassian account
|
|
206
|
+
|
|
207
|
+
## Setup Wizard
|
|
208
|
+
|
|
209
|
+
On first launch (when `~/.cliend/config.json` doesn't exist), cliend prompts for:
|
|
210
|
+
|
|
211
|
+
1. **Anthropic API Key** — get it at [console.anthropic.com/settings/keys](https://console.anthropic.com/settings/keys)
|
|
212
|
+
2. **OpenAI API Key** — get it at [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
|
|
213
|
+
3. **Atlassian Client ID & Secret** — create an OAuth 2.0 app at [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps)
|
|
214
|
+
4. **Bitbucket Workspace & Repo** — the repo where your Obsidian docs live
|
|
215
|
+
|
|
216
|
+
Config is saved to `~/.cliend/config.json` and persists across all projects.
|
|
217
|
+
|
|
218
|
+
### Atlassian OAuth App Setup
|
|
219
|
+
|
|
220
|
+
When creating the Atlassian OAuth app:
|
|
221
|
+
|
|
222
|
+
1. Go to [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps)
|
|
223
|
+
2. Click **Create** > **OAuth 2.0 integration**
|
|
224
|
+
3. Under **Authorization**, add callback URL: `http://localhost:3456/callback`
|
|
225
|
+
4. Under **Permissions**, add scopes: `read:jira-work`, `read:jira-user`
|
|
226
|
+
5. Copy the **Client ID** and **Secret** for the setup wizard
|
|
227
|
+
|
|
228
|
+
After setup, run `/auth` inside cliend to connect your Atlassian account.
|
|
229
|
+
|
|
230
|
+
## Per-Directory Sessions
|
|
231
|
+
|
|
232
|
+
Each project directory gets its own `.cliend/` folder with isolated sessions:
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
my-project/
|
|
236
|
+
└── .cliend/
|
|
237
|
+
├── config.json # Project-level config overrides
|
|
238
|
+
├── memory.md # Project-level memory (shared across sessions)
|
|
239
|
+
└── sessions/
|
|
240
|
+
├── session-abc123/
|
|
241
|
+
│ ├── meta.json # Session metadata
|
|
242
|
+
│ ├── history.jsonl # Conversation log (append-only)
|
|
243
|
+
│ ├── memory.md # Session-specific memory
|
|
244
|
+
│ └── context/
|
|
245
|
+
│ ├── ticket.json # Cached Jira ticket
|
|
246
|
+
│ └── docs.json # Cached Obsidian docs
|
|
247
|
+
└── session-def456/
|
|
248
|
+
└── ...
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Memory Hierarchy
|
|
252
|
+
|
|
253
|
+
1. **Global** (`~/.cliend/memory.md`) — cross-project preferences
|
|
254
|
+
2. **Project** (`.cliend/memory.md`) — project conventions, architecture notes
|
|
255
|
+
3. **Session** (`.cliend/sessions/<id>/memory.md`) — task-specific decisions
|
|
256
|
+
|
|
257
|
+
All three levels are loaded into every AI prompt.
|
|
258
|
+
|
|
259
|
+
## Configuration
|
|
260
|
+
|
|
261
|
+
Config is loaded in layers (highest priority wins):
|
|
262
|
+
|
|
263
|
+
1. Environment variables (`CLIEND_ANTHROPIC_API_KEY`, etc.)
|
|
264
|
+
2. Project config (`.cliend/config.json`)
|
|
265
|
+
3. Global config (`~/.cliend/config.json`)
|
|
266
|
+
4. Built-in defaults
|
|
267
|
+
|
|
268
|
+
### Environment Variables
|
|
269
|
+
|
|
270
|
+
| Variable | Description |
|
|
271
|
+
|----------|-------------|
|
|
272
|
+
| `CLIEND_ANTHROPIC_API_KEY` | Anthropic API key (Claude) |
|
|
273
|
+
| `CLIEND_OPENAI_API_KEY` | OpenAI API key (Codex + ChatGPT) |
|
|
274
|
+
| `CLIEND_ATLASSIAN_CLIENT_ID` | Atlassian OAuth Client ID |
|
|
275
|
+
| `CLIEND_ATLASSIAN_CLIENT_SECRET` | Atlassian OAuth Client Secret |
|
|
276
|
+
| `CLIEND_BITBUCKET_WORKSPACE` | Bitbucket workspace slug |
|
|
277
|
+
| `CLIEND_BITBUCKET_REPO_SLUG` | Bitbucket repo with Obsidian docs |
|
|
278
|
+
| `CLIEND_BITBUCKET_OBSIDIAN_PATH` | Path within repo (default: `docs/obsidian`) |
|
|
279
|
+
| `CLIEND_LOG_LEVEL` | Logging level: `debug`, `info`, `warn`, `error` |
|
|
280
|
+
|
|
281
|
+
## Development
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
git clone git@bitbucket.org:sigmacf/cliend.git
|
|
285
|
+
cd cliend
|
|
286
|
+
npm install
|
|
287
|
+
npm run dev # Run with tsx (hot reload)
|
|
288
|
+
npm run build # Compile TypeScript
|
|
289
|
+
npm test # Run tests
|
|
290
|
+
npm run typecheck # Type-check without emitting
|
|
291
|
+
npm run lint # ESLint
|
|
292
|
+
npm run format # Prettier
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Docker
|
|
296
|
+
|
|
297
|
+
```bash
|
|
298
|
+
docker compose up cliend # Dev mode with hot reload
|
|
299
|
+
docker compose --profile test up # Run tests
|
|
300
|
+
docker compose --profile build up # Production build
|
|
301
|
+
```
|
|
@@ -4,7 +4,7 @@ import { startCallbackServer } from './local-server.js';
|
|
|
4
4
|
import { TokenExpiredError, OAuthFlowError } from '../errors/auth-error.js';
|
|
5
5
|
const AUTH_URL = 'https://auth.atlassian.com/authorize';
|
|
6
6
|
const TOKEN_URL = 'https://auth.atlassian.com/oauth/token';
|
|
7
|
-
const SCOPES = ['read:jira-work', 'read:jira-user', 'offline_access'];
|
|
7
|
+
const SCOPES = ['read:jira-work', 'read:jira-user', 'write:jira-work', 'offline_access'];
|
|
8
8
|
export class AuthManager {
|
|
9
9
|
config;
|
|
10
10
|
logger;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../../src/auth/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE5E,MAAM,QAAQ,GAAG,sCAAsC,CAAC;AACxD,MAAM,SAAS,GAAG,wCAAwC,CAAC;AAC3D,MAAM,MAAM,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../../src/auth/auth-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,16 +5,19 @@ export declare const appConfigSchema: z.ZodObject<{
|
|
|
5
5
|
clientSecret: z.ZodDefault<z.ZodString>;
|
|
6
6
|
callbackUrl: z.ZodDefault<z.ZodString>;
|
|
7
7
|
cloudId: z.ZodOptional<z.ZodString>;
|
|
8
|
+
mcpServerUrl: z.ZodDefault<z.ZodString>;
|
|
8
9
|
}, "strip", z.ZodTypeAny, {
|
|
9
10
|
clientId: string;
|
|
10
11
|
callbackUrl: string;
|
|
11
12
|
clientSecret: string;
|
|
13
|
+
mcpServerUrl: string;
|
|
12
14
|
cloudId?: string | undefined;
|
|
13
15
|
}, {
|
|
14
16
|
clientId?: string | undefined;
|
|
15
17
|
callbackUrl?: string | undefined;
|
|
16
18
|
clientSecret?: string | undefined;
|
|
17
19
|
cloudId?: string | undefined;
|
|
20
|
+
mcpServerUrl?: string | undefined;
|
|
18
21
|
}>;
|
|
19
22
|
bitbucket: z.ZodObject<{
|
|
20
23
|
workspace: z.ZodDefault<z.ZodString>;
|
|
@@ -204,6 +207,7 @@ export declare const appConfigSchema: z.ZodObject<{
|
|
|
204
207
|
clientId: string;
|
|
205
208
|
callbackUrl: string;
|
|
206
209
|
clientSecret: string;
|
|
210
|
+
mcpServerUrl: string;
|
|
207
211
|
cloudId?: string | undefined;
|
|
208
212
|
};
|
|
209
213
|
bitbucket: {
|
|
@@ -251,6 +255,7 @@ export declare const appConfigSchema: z.ZodObject<{
|
|
|
251
255
|
callbackUrl?: string | undefined;
|
|
252
256
|
clientSecret?: string | undefined;
|
|
253
257
|
cloudId?: string | undefined;
|
|
258
|
+
mcpServerUrl?: string | undefined;
|
|
254
259
|
};
|
|
255
260
|
bitbucket: {
|
|
256
261
|
workspace?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0B1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -23,6 +23,7 @@ export const appConfigSchema = z.object({
|
|
|
23
23
|
clientSecret: z.string().default(''),
|
|
24
24
|
callbackUrl: z.string().url().default('http://localhost:3456/callback'),
|
|
25
25
|
cloudId: z.string().optional(),
|
|
26
|
+
mcpServerUrl: z.string().url().default('https://mcp.atlassian.com/v1/mcp'),
|
|
26
27
|
}),
|
|
27
28
|
bitbucket: z.object({
|
|
28
29
|
workspace: z.string().default(''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../../src/config/config.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC;KACzB,MAAM,CAAC;IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CAChD,CAAC;KACD,MAAM,CACL,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;IACtF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC,EACD,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAC7C,CAAC;AAEJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;QACvE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"config.schema.js","sourceRoot":"","sources":["../../../src/config/config.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,SA6C5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,gCAAgC;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAc;IACvC,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,gCAAgC;QAC7C,YAAY,EAAE,kCAAkC;KACjD;IACD,SAAS,EAAE;QACT,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,eAAe;QAC7B,MAAM,EAAE,MAAM;KACf;IACD,SAAS,EAAE;QACT,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,OAAO;SACnB;QACD,KAAK,EAAE;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,OAAO;SACnB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,OAAO;SACnB;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE;YACP,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;SACf;KACF;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;KACd;CACF,CAAC"}
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxD"}
|
package/dist/src/index.js
CHANGED
|
@@ -3,7 +3,12 @@ import { ConfigManager } from './config/config-manager.js';
|
|
|
3
3
|
import { SessionManager } from './session/session-manager.js';
|
|
4
4
|
import { AuthManager } from './auth/auth-manager.js';
|
|
5
5
|
import { createLogger } from './ui/logger.js';
|
|
6
|
+
import { needsSetup, runSetupWizard } from './ui/setup-wizard.js';
|
|
6
7
|
export async function main(argv) {
|
|
8
|
+
// First-run setup wizard
|
|
9
|
+
if (needsSetup()) {
|
|
10
|
+
await runSetupWizard();
|
|
11
|
+
}
|
|
7
12
|
const logger = createLogger();
|
|
8
13
|
const configManager = new ConfigManager();
|
|
9
14
|
const config = await configManager.load();
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,yBAAyB;IACzB,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC;QACpB,MAAM;QACN,WAAW;QACX,cAAc;QACd,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Logger } from 'pino';
|
|
2
|
+
import type { AppConfig } from '../../types/config.js';
|
|
3
|
+
import type { JiraTicket } from '../../types/ticket.js';
|
|
4
|
+
import { AuthManager } from '../../auth/auth-manager.js';
|
|
5
|
+
interface CreateIssueParams {
|
|
6
|
+
projectKey: string;
|
|
7
|
+
issueType: string;
|
|
8
|
+
summary: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
parentKey?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SearchResult {
|
|
13
|
+
type: 'jira-issue' | 'confluence-page' | 'unknown';
|
|
14
|
+
title: string;
|
|
15
|
+
url?: string;
|
|
16
|
+
excerpt: string;
|
|
17
|
+
}
|
|
18
|
+
export declare class McpClient {
|
|
19
|
+
private readonly serverUrl;
|
|
20
|
+
private readonly authManager;
|
|
21
|
+
private readonly logger;
|
|
22
|
+
private requestId;
|
|
23
|
+
private initialized;
|
|
24
|
+
private sessionId;
|
|
25
|
+
constructor(config: AppConfig, authManager: AuthManager, logger: Logger);
|
|
26
|
+
private ensureInitialized;
|
|
27
|
+
getJiraIssue(issueKey: string): Promise<JiraTicket>;
|
|
28
|
+
searchJql(jql: string): Promise<string>;
|
|
29
|
+
search(query: string): Promise<SearchResult[]>;
|
|
30
|
+
createIssue(params: CreateIssueParams): Promise<string>;
|
|
31
|
+
editIssue(issueKey: string, fields: Record<string, string>): Promise<string>;
|
|
32
|
+
addComment(issueKey: string, comment: string): Promise<string>;
|
|
33
|
+
transitionIssue(issueKey: string, transitionId: string): Promise<string>;
|
|
34
|
+
private callTool;
|
|
35
|
+
private send;
|
|
36
|
+
private parseIssueFromText;
|
|
37
|
+
private parseSearchResults;
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=mcp-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../../../src/integrations/atlassian/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAczD,UAAU,iBAAiB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,GAAG,iBAAiB,GAAG,SAAS,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAuB;gBAE5B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;YAMzD,iBAAiB;IAmBzB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMnD,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAM9C,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAavD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAKhE,QAAQ;YAkBR,IAAI;IA6ClB,OAAO,CAAC,kBAAkB;IAsD1B,OAAO,CAAC,kBAAkB;CAyB3B"}
|