opencode-athena 0.0.1

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.
@@ -0,0 +1,628 @@
1
+ export { default as OpenCodeAthena, default } from './plugin/index.js';
2
+ import { z } from 'zod';
3
+ import '@opencode-ai/plugin';
4
+
5
+ /**
6
+ * Shared TypeScript type definitions for OpenCode Athena
7
+ */
8
+ /**
9
+ * Options passed to the install command
10
+ */
11
+ interface InstallOptions {
12
+ preset: string;
13
+ yes: boolean;
14
+ advanced: boolean;
15
+ global: boolean;
16
+ local: boolean;
17
+ }
18
+ /**
19
+ * Subscription information gathered during install
20
+ */
21
+ interface SubscriptionAnswers {
22
+ hasClaude: boolean;
23
+ claudeTier: "max5x" | "max20x" | "pro" | "none";
24
+ hasOpenAI: boolean;
25
+ hasGoogle: boolean;
26
+ googleAuth: "antigravity" | "personal" | "api" | "none";
27
+ }
28
+ /**
29
+ * Methodology preferences gathered during install
30
+ */
31
+ interface MethodologyAnswers {
32
+ defaultTrack: "quick-flow" | "bmad-method" | "enterprise";
33
+ autoStatusUpdate: boolean;
34
+ }
35
+ /**
36
+ * Feature selections gathered during install
37
+ */
38
+ interface FeatureAnswers {
39
+ enabledFeatures: string[];
40
+ mcps: string[];
41
+ }
42
+ /**
43
+ * Advanced options gathered during install
44
+ */
45
+ interface AdvancedAnswers {
46
+ parallelStoryLimit?: number;
47
+ experimental?: string[];
48
+ }
49
+ /**
50
+ * Model assignments for each agent role
51
+ */
52
+ interface ModelAnswers {
53
+ sisyphus: string;
54
+ oracle: string;
55
+ librarian: string;
56
+ frontend?: string;
57
+ documentWriter?: string;
58
+ multimodalLooker?: string;
59
+ }
60
+ /**
61
+ * All answers from the install wizard
62
+ */
63
+ interface InstallAnswers {
64
+ subscriptions: SubscriptionAnswers;
65
+ models: ModelAnswers;
66
+ methodology: MethodologyAnswers;
67
+ features: FeatureAnswers;
68
+ advanced: AdvancedAnswers;
69
+ installLocation: "global" | "local";
70
+ }
71
+ /**
72
+ * Athena configuration file structure
73
+ */
74
+ interface AthenaConfig {
75
+ $schema?: string;
76
+ version: string;
77
+ subscriptions: {
78
+ claude: {
79
+ enabled: boolean;
80
+ tier: "max5x" | "max20x" | "pro" | "none";
81
+ };
82
+ openai: {
83
+ enabled: boolean;
84
+ };
85
+ google: {
86
+ enabled: boolean;
87
+ authMethod: "antigravity" | "personal" | "api" | "none";
88
+ };
89
+ };
90
+ models: {
91
+ sisyphus: string;
92
+ oracle: string;
93
+ librarian: string;
94
+ frontend?: string;
95
+ documentWriter?: string;
96
+ multimodalLooker?: string;
97
+ };
98
+ bmad: {
99
+ defaultTrack: "quick-flow" | "bmad-method" | "enterprise";
100
+ autoStatusUpdate: boolean;
101
+ parallelStoryLimit: number;
102
+ };
103
+ features: {
104
+ bmadBridge: boolean;
105
+ autoStatus: boolean;
106
+ parallelExecution: boolean;
107
+ notifications: boolean;
108
+ contextMonitor: boolean;
109
+ commentChecker: boolean;
110
+ lspTools: boolean;
111
+ };
112
+ mcps: {
113
+ context7: boolean;
114
+ exa: boolean;
115
+ grepApp: boolean;
116
+ };
117
+ }
118
+ /**
119
+ * Prerequisites check result
120
+ */
121
+ interface Prerequisites {
122
+ opencode: {
123
+ installed: boolean;
124
+ version?: string;
125
+ compatible: boolean;
126
+ };
127
+ athena: {
128
+ installed: boolean;
129
+ version?: string;
130
+ };
131
+ node: {
132
+ installed: boolean;
133
+ version?: string;
134
+ compatible: boolean;
135
+ };
136
+ }
137
+ /**
138
+ * Story status in sprint tracking
139
+ */
140
+ type StoryStatus = "pending" | "in_progress" | "completed" | "blocked" | "needs_review";
141
+ /**
142
+ * Internal tracker status (includes transitional states)
143
+ */
144
+ type TrackerStatus = StoryStatus | "loading";
145
+ /**
146
+ * Tracked story state
147
+ */
148
+ interface TrackedStory {
149
+ id: string;
150
+ content: string;
151
+ status: TrackerStatus;
152
+ startedAt: string;
153
+ completedAt?: string;
154
+ }
155
+ /**
156
+ * Sprint status structure (from sprint-status.yaml)
157
+ */
158
+ interface SprintStatus {
159
+ sprint_number?: number;
160
+ current_epic?: string;
161
+ current_story?: string | null;
162
+ completed_stories: string[];
163
+ pending_stories: string[];
164
+ in_progress_stories: string[];
165
+ blocked_stories: string[];
166
+ stories_needing_review?: string[];
167
+ story_updates?: Record<string, {
168
+ status: StoryStatus;
169
+ updated_at: string;
170
+ notes?: string;
171
+ completion_summary?: string;
172
+ }>;
173
+ last_modified?: string;
174
+ }
175
+ /**
176
+ * Story tracker persistent state
177
+ */
178
+ interface TrackerState {
179
+ currentStory: TrackedStory | null;
180
+ sessionId: string;
181
+ projectDir: string;
182
+ history: Array<{
183
+ storyId: string;
184
+ status: string;
185
+ timestamp: string;
186
+ }>;
187
+ }
188
+ /**
189
+ * Result from athena_get_story tool
190
+ */
191
+ interface GetStoryResult {
192
+ storyId?: string;
193
+ story?: string;
194
+ architecture?: string;
195
+ prd?: string;
196
+ sprint?: {
197
+ currentEpic: string;
198
+ completedStories: number;
199
+ pendingStories: number;
200
+ blockedStories: number;
201
+ };
202
+ instructions?: string;
203
+ error?: string;
204
+ suggestion?: string;
205
+ sprintProgress?: {
206
+ completed: number;
207
+ total: number;
208
+ };
209
+ }
210
+ /**
211
+ * Result from athena_update_status tool
212
+ */
213
+ interface UpdateStatusResult {
214
+ success?: boolean;
215
+ storyId?: string;
216
+ newStatus?: StoryStatus;
217
+ updatedAt?: string;
218
+ sprintProgress?: {
219
+ completed: number;
220
+ inProgress: number;
221
+ pending: number;
222
+ blocked: number;
223
+ total: number;
224
+ percentComplete: number;
225
+ };
226
+ nextStory?: string | null;
227
+ error?: string;
228
+ }
229
+
230
+ /**
231
+ * Complete Athena configuration schema
232
+ */
233
+ declare const AthenaConfigSchema: z.ZodObject<{
234
+ $schema: z.ZodOptional<z.ZodString>;
235
+ version: z.ZodString;
236
+ subscriptions: z.ZodObject<{
237
+ claude: z.ZodObject<{
238
+ enabled: z.ZodBoolean;
239
+ tier: z.ZodEnum<["max5x", "max20x", "pro", "none"]>;
240
+ }, "strip", z.ZodTypeAny, {
241
+ enabled: boolean;
242
+ tier: "max5x" | "max20x" | "pro" | "none";
243
+ }, {
244
+ enabled: boolean;
245
+ tier: "max5x" | "max20x" | "pro" | "none";
246
+ }>;
247
+ openai: z.ZodObject<{
248
+ enabled: z.ZodBoolean;
249
+ }, "strip", z.ZodTypeAny, {
250
+ enabled: boolean;
251
+ }, {
252
+ enabled: boolean;
253
+ }>;
254
+ google: z.ZodObject<{
255
+ enabled: z.ZodBoolean;
256
+ authMethod: z.ZodEnum<["antigravity", "personal", "api", "none"]>;
257
+ }, "strip", z.ZodTypeAny, {
258
+ enabled: boolean;
259
+ authMethod: "none" | "antigravity" | "personal" | "api";
260
+ }, {
261
+ enabled: boolean;
262
+ authMethod: "none" | "antigravity" | "personal" | "api";
263
+ }>;
264
+ }, "strip", z.ZodTypeAny, {
265
+ openai: {
266
+ enabled: boolean;
267
+ };
268
+ google: {
269
+ enabled: boolean;
270
+ authMethod: "none" | "antigravity" | "personal" | "api";
271
+ };
272
+ claude: {
273
+ enabled: boolean;
274
+ tier: "max5x" | "max20x" | "pro" | "none";
275
+ };
276
+ }, {
277
+ openai: {
278
+ enabled: boolean;
279
+ };
280
+ google: {
281
+ enabled: boolean;
282
+ authMethod: "none" | "antigravity" | "personal" | "api";
283
+ };
284
+ claude: {
285
+ enabled: boolean;
286
+ tier: "max5x" | "max20x" | "pro" | "none";
287
+ };
288
+ }>;
289
+ models: z.ZodObject<{
290
+ sisyphus: z.ZodString;
291
+ oracle: z.ZodString;
292
+ librarian: z.ZodString;
293
+ frontend: z.ZodOptional<z.ZodString>;
294
+ documentWriter: z.ZodOptional<z.ZodString>;
295
+ multimodalLooker: z.ZodOptional<z.ZodString>;
296
+ }, "strip", z.ZodTypeAny, {
297
+ sisyphus: string;
298
+ oracle: string;
299
+ librarian: string;
300
+ frontend?: string | undefined;
301
+ documentWriter?: string | undefined;
302
+ multimodalLooker?: string | undefined;
303
+ }, {
304
+ sisyphus: string;
305
+ oracle: string;
306
+ librarian: string;
307
+ frontend?: string | undefined;
308
+ documentWriter?: string | undefined;
309
+ multimodalLooker?: string | undefined;
310
+ }>;
311
+ bmad: z.ZodObject<{
312
+ defaultTrack: z.ZodEnum<["quick-flow", "bmad-method", "enterprise"]>;
313
+ autoStatusUpdate: z.ZodBoolean;
314
+ parallelStoryLimit: z.ZodNumber;
315
+ }, "strip", z.ZodTypeAny, {
316
+ defaultTrack: "quick-flow" | "bmad-method" | "enterprise";
317
+ autoStatusUpdate: boolean;
318
+ parallelStoryLimit: number;
319
+ }, {
320
+ defaultTrack: "quick-flow" | "bmad-method" | "enterprise";
321
+ autoStatusUpdate: boolean;
322
+ parallelStoryLimit: number;
323
+ }>;
324
+ features: z.ZodObject<{
325
+ bmadBridge: z.ZodBoolean;
326
+ autoStatus: z.ZodBoolean;
327
+ parallelExecution: z.ZodBoolean;
328
+ notifications: z.ZodBoolean;
329
+ contextMonitor: z.ZodBoolean;
330
+ commentChecker: z.ZodBoolean;
331
+ lspTools: z.ZodBoolean;
332
+ }, "strip", z.ZodTypeAny, {
333
+ bmadBridge: boolean;
334
+ autoStatus: boolean;
335
+ parallelExecution: boolean;
336
+ notifications: boolean;
337
+ contextMonitor: boolean;
338
+ commentChecker: boolean;
339
+ lspTools: boolean;
340
+ }, {
341
+ bmadBridge: boolean;
342
+ autoStatus: boolean;
343
+ parallelExecution: boolean;
344
+ notifications: boolean;
345
+ contextMonitor: boolean;
346
+ commentChecker: boolean;
347
+ lspTools: boolean;
348
+ }>;
349
+ mcps: z.ZodObject<{
350
+ context7: z.ZodBoolean;
351
+ exa: z.ZodBoolean;
352
+ grepApp: z.ZodBoolean;
353
+ }, "strip", z.ZodTypeAny, {
354
+ context7: boolean;
355
+ exa: boolean;
356
+ grepApp: boolean;
357
+ }, {
358
+ context7: boolean;
359
+ exa: boolean;
360
+ grepApp: boolean;
361
+ }>;
362
+ }, "strip", z.ZodTypeAny, {
363
+ subscriptions: {
364
+ openai: {
365
+ enabled: boolean;
366
+ };
367
+ google: {
368
+ enabled: boolean;
369
+ authMethod: "none" | "antigravity" | "personal" | "api";
370
+ };
371
+ claude: {
372
+ enabled: boolean;
373
+ tier: "max5x" | "max20x" | "pro" | "none";
374
+ };
375
+ };
376
+ models: {
377
+ sisyphus: string;
378
+ oracle: string;
379
+ librarian: string;
380
+ frontend?: string | undefined;
381
+ documentWriter?: string | undefined;
382
+ multimodalLooker?: string | undefined;
383
+ };
384
+ bmad: {
385
+ defaultTrack: "quick-flow" | "bmad-method" | "enterprise";
386
+ autoStatusUpdate: boolean;
387
+ parallelStoryLimit: number;
388
+ };
389
+ features: {
390
+ bmadBridge: boolean;
391
+ autoStatus: boolean;
392
+ parallelExecution: boolean;
393
+ notifications: boolean;
394
+ contextMonitor: boolean;
395
+ commentChecker: boolean;
396
+ lspTools: boolean;
397
+ };
398
+ mcps: {
399
+ context7: boolean;
400
+ exa: boolean;
401
+ grepApp: boolean;
402
+ };
403
+ version: string;
404
+ $schema?: string | undefined;
405
+ }, {
406
+ subscriptions: {
407
+ openai: {
408
+ enabled: boolean;
409
+ };
410
+ google: {
411
+ enabled: boolean;
412
+ authMethod: "none" | "antigravity" | "personal" | "api";
413
+ };
414
+ claude: {
415
+ enabled: boolean;
416
+ tier: "max5x" | "max20x" | "pro" | "none";
417
+ };
418
+ };
419
+ models: {
420
+ sisyphus: string;
421
+ oracle: string;
422
+ librarian: string;
423
+ frontend?: string | undefined;
424
+ documentWriter?: string | undefined;
425
+ multimodalLooker?: string | undefined;
426
+ };
427
+ bmad: {
428
+ defaultTrack: "quick-flow" | "bmad-method" | "enterprise";
429
+ autoStatusUpdate: boolean;
430
+ parallelStoryLimit: number;
431
+ };
432
+ features: {
433
+ bmadBridge: boolean;
434
+ autoStatus: boolean;
435
+ parallelExecution: boolean;
436
+ notifications: boolean;
437
+ contextMonitor: boolean;
438
+ commentChecker: boolean;
439
+ lspTools: boolean;
440
+ };
441
+ mcps: {
442
+ context7: boolean;
443
+ exa: boolean;
444
+ grepApp: boolean;
445
+ };
446
+ version: string;
447
+ $schema?: string | undefined;
448
+ }>;
449
+ /**
450
+ * Schema for athena_get_story arguments
451
+ */
452
+ declare const GetStoryArgsSchema: z.ZodObject<{
453
+ storyId: z.ZodOptional<z.ZodString>;
454
+ }, "strip", z.ZodTypeAny, {
455
+ storyId?: string | undefined;
456
+ }, {
457
+ storyId?: string | undefined;
458
+ }>;
459
+ /**
460
+ * Schema for athena_update_status arguments
461
+ */
462
+ declare const UpdateStatusArgsSchema: z.ZodObject<{
463
+ storyId: z.ZodString;
464
+ status: z.ZodEnum<["in_progress", "completed", "blocked", "needs_review"]>;
465
+ notes: z.ZodOptional<z.ZodString>;
466
+ completionSummary: z.ZodOptional<z.ZodString>;
467
+ }, "strip", z.ZodTypeAny, {
468
+ status: "in_progress" | "completed" | "blocked" | "needs_review";
469
+ storyId: string;
470
+ notes?: string | undefined;
471
+ completionSummary?: string | undefined;
472
+ }, {
473
+ status: "in_progress" | "completed" | "blocked" | "needs_review";
474
+ storyId: string;
475
+ notes?: string | undefined;
476
+ completionSummary?: string | undefined;
477
+ }>;
478
+ /**
479
+ * Story status enum for sprint tracking
480
+ */
481
+ declare const StoryStatusEnum: z.ZodEnum<["pending", "in_progress", "completed", "blocked", "needs_review"]>;
482
+ /**
483
+ * Tracker status enum (includes transitional states)
484
+ */
485
+ declare const TrackerStatusEnum: z.ZodEnum<["pending", "in_progress", "completed", "blocked", "needs_review", "loading"]>;
486
+ /**
487
+ * Schema for sprint-status.yaml content
488
+ */
489
+ declare const SprintStatusSchema: z.ZodObject<{
490
+ sprint_number: z.ZodOptional<z.ZodNumber>;
491
+ current_epic: z.ZodOptional<z.ZodString>;
492
+ current_story: z.ZodOptional<z.ZodNullable<z.ZodString>>;
493
+ completed_stories: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
494
+ pending_stories: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
495
+ in_progress_stories: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
496
+ blocked_stories: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
497
+ stories_needing_review: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
498
+ story_updates: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
499
+ status: z.ZodEnum<["pending", "in_progress", "completed", "blocked", "needs_review"]>;
500
+ updated_at: z.ZodString;
501
+ notes: z.ZodOptional<z.ZodString>;
502
+ completion_summary: z.ZodOptional<z.ZodString>;
503
+ }, "strip", z.ZodTypeAny, {
504
+ status: "pending" | "in_progress" | "completed" | "blocked" | "needs_review";
505
+ updated_at: string;
506
+ notes?: string | undefined;
507
+ completion_summary?: string | undefined;
508
+ }, {
509
+ status: "pending" | "in_progress" | "completed" | "blocked" | "needs_review";
510
+ updated_at: string;
511
+ notes?: string | undefined;
512
+ completion_summary?: string | undefined;
513
+ }>>>;
514
+ last_modified: z.ZodOptional<z.ZodString>;
515
+ }, "strip", z.ZodTypeAny, {
516
+ completed_stories: string[];
517
+ pending_stories: string[];
518
+ in_progress_stories: string[];
519
+ blocked_stories: string[];
520
+ sprint_number?: number | undefined;
521
+ current_epic?: string | undefined;
522
+ current_story?: string | null | undefined;
523
+ stories_needing_review?: string[] | undefined;
524
+ story_updates?: Record<string, {
525
+ status: "pending" | "in_progress" | "completed" | "blocked" | "needs_review";
526
+ updated_at: string;
527
+ notes?: string | undefined;
528
+ completion_summary?: string | undefined;
529
+ }> | undefined;
530
+ last_modified?: string | undefined;
531
+ }, {
532
+ sprint_number?: number | undefined;
533
+ current_epic?: string | undefined;
534
+ current_story?: string | null | undefined;
535
+ completed_stories?: string[] | undefined;
536
+ pending_stories?: string[] | undefined;
537
+ in_progress_stories?: string[] | undefined;
538
+ blocked_stories?: string[] | undefined;
539
+ stories_needing_review?: string[] | undefined;
540
+ story_updates?: Record<string, {
541
+ status: "pending" | "in_progress" | "completed" | "blocked" | "needs_review";
542
+ updated_at: string;
543
+ notes?: string | undefined;
544
+ completion_summary?: string | undefined;
545
+ }> | undefined;
546
+ last_modified?: string | undefined;
547
+ }>;
548
+
549
+ /**
550
+ * Current version of OpenCode Athena
551
+ * Updated during release process
552
+ */
553
+ declare const VERSION = "0.0.1";
554
+ /**
555
+ * Package name for CLI display
556
+ */
557
+ declare const PACKAGE_NAME = "opencode-athena";
558
+ /**
559
+ * CLI display name
560
+ */
561
+ declare const DISPLAY_NAME = "OpenCode Athena";
562
+ /**
563
+ * Configuration paths
564
+ */
565
+ declare const CONFIG_PATHS: {
566
+ /** Global OpenCode config directory */
567
+ readonly globalConfigDir: string;
568
+ /** Global Athena config file */
569
+ readonly globalAthenaConfig: string;
570
+ /** Global OpenCode config file */
571
+ readonly globalOpencodeConfig: string;
572
+ /** Global oh-my-opencode config file */
573
+ readonly globalOmoConfig: string;
574
+ /** Commands directory */
575
+ readonly commandsDir: string;
576
+ /** Plugin directory */
577
+ readonly pluginDir: string;
578
+ /** Athena state file (for story tracking) */
579
+ readonly stateFile: string;
580
+ };
581
+ /**
582
+ * Project-specific paths (relative to project root)
583
+ */
584
+ declare const PROJECT_PATHS: {
585
+ /** Local Athena config */
586
+ readonly localConfig: ".opencode/athena.json";
587
+ /** BMAD directory */
588
+ readonly bmadDir: "docs";
589
+ /** BMAD docs directory (deprecated - same as bmadDir in v6) */
590
+ readonly bmadDocsDir: "docs";
591
+ /** Sprint status file */
592
+ readonly sprintStatus: "docs/implementation-artifacts/sprint-status.yaml";
593
+ /** Stories directory */
594
+ readonly storiesDir: "docs/implementation-artifacts/stories";
595
+ /** Architecture document */
596
+ readonly architecture: "docs/project-planning-artifacts/architecture.md";
597
+ /** PRD document */
598
+ readonly prd: "docs/project-planning-artifacts/PRD.md";
599
+ };
600
+ /**
601
+ * Default configuration values
602
+ */
603
+ declare const DEFAULTS: {
604
+ /** Default BMAD track for new projects */
605
+ readonly defaultTrack: "bmad-method";
606
+ /** Whether to auto-update sprint status */
607
+ readonly autoStatusUpdate: true;
608
+ /** Maximum parallel stories */
609
+ readonly parallelStoryLimit: 3;
610
+ /** Default features enabled */
611
+ readonly features: {
612
+ readonly bmadBridge: true;
613
+ readonly autoStatus: true;
614
+ readonly parallelExecution: true;
615
+ readonly notifications: true;
616
+ readonly contextMonitor: true;
617
+ readonly commentChecker: true;
618
+ readonly lspTools: true;
619
+ };
620
+ /** Default MCPs enabled */
621
+ readonly mcps: {
622
+ readonly context7: true;
623
+ readonly exa: true;
624
+ readonly grepApp: true;
625
+ };
626
+ };
627
+
628
+ export { type AthenaConfig, AthenaConfigSchema, CONFIG_PATHS, DEFAULTS, DISPLAY_NAME, GetStoryArgsSchema, type GetStoryResult, type InstallAnswers, type InstallOptions, PACKAGE_NAME, PROJECT_PATHS, type Prerequisites, type SprintStatus, SprintStatusSchema, type StoryStatus, StoryStatusEnum, type TrackedStory, type TrackerState, type TrackerStatus, TrackerStatusEnum, UpdateStatusArgsSchema, type UpdateStatusResult, VERSION };