@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.
Files changed (45) hide show
  1. package/README.md +301 -0
  2. package/dist/src/auth/auth-manager.js +1 -1
  3. package/dist/src/auth/auth-manager.js.map +1 -1
  4. package/dist/src/config/config.schema.d.ts +5 -0
  5. package/dist/src/config/config.schema.d.ts.map +1 -1
  6. package/dist/src/config/config.schema.js +1 -0
  7. package/dist/src/config/config.schema.js.map +1 -1
  8. package/dist/src/config/defaults.d.ts.map +1 -1
  9. package/dist/src/config/defaults.js +1 -0
  10. package/dist/src/config/defaults.js.map +1 -1
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +5 -0
  13. package/dist/src/index.js.map +1 -1
  14. package/dist/src/integrations/atlassian/mcp-client.d.ts +40 -0
  15. package/dist/src/integrations/atlassian/mcp-client.d.ts.map +1 -0
  16. package/dist/src/integrations/atlassian/mcp-client.js +198 -0
  17. package/dist/src/integrations/atlassian/mcp-client.js.map +1 -0
  18. package/dist/src/repl/commands/breakdown.d.ts +3 -0
  19. package/dist/src/repl/commands/breakdown.d.ts.map +1 -0
  20. package/dist/src/repl/commands/breakdown.js +141 -0
  21. package/dist/src/repl/commands/breakdown.js.map +1 -0
  22. package/dist/src/repl/commands/config.d.ts.map +1 -1
  23. package/dist/src/repl/commands/config.js +8 -2
  24. package/dist/src/repl/commands/config.js.map +1 -1
  25. package/dist/src/repl/commands/help.d.ts.map +1 -1
  26. package/dist/src/repl/commands/help.js +3 -0
  27. package/dist/src/repl/commands/help.js.map +1 -1
  28. package/dist/src/repl/commands/search.d.ts +3 -0
  29. package/dist/src/repl/commands/search.d.ts.map +1 -0
  30. package/dist/src/repl/commands/search.js +49 -0
  31. package/dist/src/repl/commands/search.js.map +1 -0
  32. package/dist/src/repl/commands/ticket.d.ts.map +1 -1
  33. package/dist/src/repl/commands/ticket.js +12 -2
  34. package/dist/src/repl/commands/ticket.js.map +1 -1
  35. package/dist/src/repl/repl.d.ts.map +1 -1
  36. package/dist/src/repl/repl.js +4 -0
  37. package/dist/src/repl/repl.js.map +1 -1
  38. package/dist/src/types/config.d.ts +1 -0
  39. package/dist/src/types/config.d.ts.map +1 -1
  40. package/dist/src/ui/setup-wizard.d.ts +3 -0
  41. package/dist/src/ui/setup-wizard.d.ts.map +1 -0
  42. package/dist/src/ui/setup-wizard.js +135 -0
  43. package/dist/src/ui/setup-wizard.js.map +1 -0
  44. package/dist/src/ui/welcome.js +1 -1
  45. 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":"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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
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":"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"}
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,SA4C5B,CAAC"}
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"}
@@ -3,6 +3,7 @@ export const DEFAULT_CONFIG = {
3
3
  clientId: '',
4
4
  clientSecret: '',
5
5
  callbackUrl: 'http://localhost:3456/callback',
6
+ mcpServerUrl: 'https://mcp.atlassian.com/v1/mcp',
6
7
  },
7
8
  bitbucket: {
8
9
  workspace: '',
@@ -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;KAC9C;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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBxD"}
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();
@@ -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;AAE9C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,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"}
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"}