OXYGENHUB
◆ v0.13.0 oxygenhub-vscode / package.json
31.4 KiB · JSON · last changed OxygenHub 0.13.0: Drops in the editor with Share as a Drop (closes #7); Flow approvals, expedite, reports, timings and test results (closes #8); ready/draft, landable, trust reports, asset downloads and new repositories (closes #9) 6 days ago source blame history raw
1
{
2
  "name": "oxygenhub",
3
  "displayName": "OxygenHub VCS",
4
  "description": "Proposals, reviews, issues and checks from an OxygenHub, in the editor. Builds on the Oxygen extension.",
5
  "version": "0.13.0",
6
  "publisher": "oxygenhub",
7
  "author": {
8
    "name": "OxygenHub.io",
9
    "url": "https://oxygenhub.io"
10
  },
11
  "homepage": "https://oxygenhub.io/andymccall/oxygenhub-vscode",
12
  "repository": {
13
    "type": "oxygen",
14
    "url": "https://oxygenhub.io/andymccall/oxygenhub-vscode"
15
  },
16
  "bugs": {
17
    "url": "https://oxygenhub.io/andymccall/oxygenhub-vscode/issues"
18
  },
19
  "galleryBanner": {
20
    "color": "#0B1B33",
21
    "theme": "dark"
22
  },
23
  "preview": true,
24
  "pricing": "Free",
25
  "qna": "https://oxygenhub.io/andymccall/oxygenhub-vscode/issues",
26
  "license": "MIT OR Apache-2.0",
27
  "icon": "assets/images/oxygenhub.png",
28
  "engines": {
29
    "vscode": "^1.137.0"
30
  },
31
  "categories": [
32
    "SCM Providers",
33
    "Other"
34
  ],
35
  "keywords": [
36
    "oxygen",
37
    "oxygenhub",
38
    "review",
39
    "proposals",
40
    "issues"
41
  ],
42
  "extensionDependencies": [
43
    "oxygenhub.oxygen-vscode"
44
  ],
45
  "activationEvents": [
46
    "workspaceContains:.oxy/format",
47
    "onAuthenticationRequest:oxygenhub",
48
    "onStartupFinished"
49
  ],
50
  "main": "./dist/extension.js",
51
  "contributes": {
52
    "authentication": [
53
      {
54
        "id": "oxygenhub",
55
        "label": "OxygenHub"
56
      }
57
    ],
58
    "configuration": {
59
      "title": "OxygenHub",
60
      "properties": {
61
        "oxygenhub.hubs": {
62
          "type": "array",
63
          "items": {
64
            "type": "string"
65
          },
66
          "default": [],
67
          "description": "Base URLs of hubs you use (learnt from sign in too)."
68
        },
69
        "oxygenhub.caFiles": {
70
          "type": "object",
71
          "additionalProperties": {
72
            "type": "string"
73
          },
74
          "default": {},
75
          "description": "CA certificate files for hubs with self-signed certificates, by base URL, e.g. {\"https://earth.example:7343\": \"~/.config/oxy/earth-ca.pem\"}. Checkouts whose remote names a CA (remote.NAME.ca) need no entry."
76
        },
77
        "oxygenhub.proposalBookmarkPrefix": {
78
          "type": "string",
79
          "default": "proposal/",
80
          "description": "Prefix of the local bookmark created when checking out a proposal."
81
        },
82
        "oxygenhub.autoRefresh": {
83
          "type": "number",
84
          "default": 60,
85
          "description": "Seconds between view refreshes; 0 disables."
86
        },
87
        "oxygenhub.announceNotifications": {
88
          "type": "boolean",
89
          "default": true,
90
          "description": "Show a message when new notifications arrive (checked on the autoRefresh interval)."
91
        },
92
        "oxygenhub.flowPollSeconds": {
93
          "type": "number",
94
          "default": 5,
95
          "minimum": 2,
96
          "description": "How often the Flow view and status bar look again while a run is queued or running (seconds); once a minute otherwise."
97
        },
98
        "oxygenhub.flowNotifications": {
99
          "type": "boolean",
100
          "default": true,
101
          "description": "Say when an OxygenFlow run you can see finishes, with a way to its failed job's log."
102
        },
103
        "oxygenhub.dropVisibility": {
104
          "type": "string",
105
          "enum": [
106
            "secret",
107
            "public"
108
          ],
109
          "default": "secret",
110
          "description": "Which Share as a Drop offers first: secret (unlisted, readable with its address) or public (listed on your Drops page)."
111
        },
112
        "oxygenhub.copyDropLink": {
113
          "type": "boolean",
114
          "default": true,
115
          "description": "Copy a new drop's address to the clipboard when it is made."
116
        }
117
      }
118
    },
119
    "viewsContainers": {
120
      "activitybar": [
121
        {
122
          "id": "oxygenhub",
123
          "title": "OxygenHub",
124
          "icon": "assets/images/oxygenhub-activity.svg"
125
        }
126
      ]
127
    },
128
    "views": {
129
      "oxygenhub": [
130
        {
131
          "id": "oxygenhub.proposals",
132
          "name": "Proposals"
133
        },
134
        {
135
          "id": "oxygenhub.issues",
136
          "name": "Issues"
137
        },
138
        {
139
          "id": "oxygenhub.releases",
140
          "name": "Releases"
141
        },
142
        {
143
          "id": "oxygenhub.flow",
144
          "name": "Flow"
145
        },
146
        {
147
          "id": "oxygenhub.diffusion",
148
          "name": "Diffusion"
149
        },
150
        {
151
          "id": "oxygenhub.drops",
152
          "name": "Drops"
153
        }
154
      ]
155
    },
156
    "viewsWelcome": [
157
      {
158
        "view": "oxygenhub.proposals",
159
        "contents": "Sign in to an OxygenHub to see proposals.\n[Sign in](command:oxygenhub.signIn)"
160
      },
161
      {
162
        "view": "oxygenhub.flow",
163
        "contents": "OxygenFlow runs of your hub repositories appear here: a push that moves a bookmark starts one.\n[Run Pipeline](command:oxygenhub.runPipeline)"
164
      },
165
      {
166
        "view": "oxygenhub.drops",
167
        "contents": "Drops are small shareable sets of files: snippets, notes, configs, each with its own history.\n[New Drop](command:oxygenhub.newDrop)\n[Open a Drop](command:oxygenhub.openDrop)\nSelect code in an editor and choose Share as a Drop from its menu."
168
      }
169
    ],
170
    "commands": [
171
      {
172
        "command": "oxygenhub.signIn",
173
        "title": "Sign in",
174
        "category": "OxygenHub"
175
      },
176
      {
177
        "command": "oxygenhub.signOut",
178
        "title": "Sign out",
179
        "category": "OxygenHub"
180
      },
181
      {
182
        "command": "oxygenhub.refresh",
183
        "title": "Refresh",
184
        "category": "OxygenHub",
185
        "icon": "$(refresh)"
186
      },
187
      {
188
        "command": "oxygenhub.inbox",
189
        "title": "Open Inbox",
190
        "category": "OxygenHub",
191
        "icon": "$(bell)"
192
      },
193
      {
194
        "command": "oxygenhub.openProposal",
195
        "title": "Open Proposal",
196
        "category": "OxygenHub"
197
      },
198
      {
199
        "command": "oxygenhub.openOnHub",
200
        "title": "Open on Hub",
201
        "category": "OxygenHub",
202
        "icon": "$(link-external)"
203
      },
204
      {
205
        "command": "oxygenhub.openProposalFile",
206
        "title": "Open Proposal File Diff",
207
        "category": "OxygenHub"
208
      },
209
      {
210
        "command": "oxygenhub.openProposalChanges",
211
        "title": "View Changes",
212
        "category": "OxygenHub",
213
        "icon": "$(diff-multiple)"
214
      },
215
      {
216
        "command": "oxygenhub.checkoutProposal",
217
        "title": "Check Out Proposal",
218
        "category": "OxygenHub",
219
        "icon": "$(git-branch)"
220
      },
221
      {
222
        "command": "oxygenhub.review",
223
        "title": "Review\u2026",
224
        "category": "OxygenHub",
225
        "icon": "$(comment-discussion)"
226
      },
227
      {
228
        "command": "oxygenhub.sealApproval",
229
        "title": "Seal My Approval (oxy seal --proposal)",
230
        "category": "OxygenHub"
231
      },
232
      {
233
        "command": "oxygenhub.land",
234
        "title": "Land Proposal",
235
        "category": "OxygenHub"
236
      },
237
      {
238
        "command": "oxygenhub.closeProposal",
239
        "title": "Close Proposal",
240
        "category": "OxygenHub"
241
      },
242
      {
243
        "command": "oxygenhub.createProposal",
244
        "title": "Propose Current Bookmark\u2026",
245
        "category": "OxygenHub"
246
      },
247
      {
248
        "command": "oxygenhub.newIssue",
249
        "title": "New Issue\u2026",
250
        "category": "OxygenHub",
251
        "icon": "$(add)"
252
      },
253
      {
254
        "command": "oxygenhub.draftRelease",
255
        "title": "Draft Release\u2026",
256
        "category": "OxygenHub",
257
        "icon": "$(tag)"
258
      },
259
      {
260
        "command": "oxygenhub.issueFromSelection",
261
        "title": "New Issue from Selection\u2026",
262
        "category": "OxygenHub"
263
      },
264
      {
265
        "command": "oxygenhub.openIssue",
266
        "title": "Open Issue",
267
        "category": "OxygenHub"
268
      },
269
      {
270
        "command": "oxygenhub.commentIssue",
271
        "title": "Comment on Issue\u2026",
272
        "category": "OxygenHub"
273
      },
274
      {
275
        "command": "oxygenhub.closeIssue",
276
        "title": "Close Issue",
277
        "category": "OxygenHub"
278
      },
279
      {
280
        "command": "oxygenhub.reopenIssue",
281
        "title": "Reopen Issue",
282
        "category": "OxygenHub"
283
      },
284
      {
285
        "command": "oxygenhub.assignMe",
286
        "title": "Assign to Me",
287
        "category": "OxygenHub"
288
      },
289
      {
290
        "command": "oxygenhub.newThread",
291
        "title": "Start Review Thread",
292
        "category": "OxygenHub"
293
      },
294
      {
295
        "command": "oxygenhub.reply",
296
        "title": "Reply",
297
        "category": "OxygenHub"
298
      },
299
      {
300
        "command": "oxygenhub.resolveThread",
301
        "title": "Resolve",
302
        "category": "OxygenHub"
303
      },
304
      {
305
        "command": "oxygenhub.flowRefresh",
306
        "title": "Refresh Flow",
307
        "category": "OxygenHub",
308
        "icon": "$(refresh)"
309
      },
310
      {
311
        "command": "oxygenhub.runPipeline",
312
        "title": "Run Pipeline\u2026",
313
        "category": "OxygenHub",
314
        "icon": "$(play)"
315
      },
316
      {
317
        "command": "oxygenhub.rerunFlow",
318
        "title": "Re-run",
319
        "category": "OxygenHub",
320
        "icon": "$(debug-rerun)"
321
      },
322
      {
323
        "command": "oxygenhub.flowLog",
324
        "title": "Show Job Log",
325
        "category": "OxygenHub",
326
        "icon": "$(output)"
327
      },
328
      {
329
        "command": "oxygenhub.openFlowRun",
330
        "title": "Open Run on OxygenHub",
331
        "category": "OxygenHub",
332
        "icon": "$(link-external)"
333
      },
334
      {
335
        "command": "oxygenhub.flowRecent",
336
        "title": "Recent Flow Runs\u2026",
337
        "category": "OxygenHub"
338
      },
339
      {
340
        "command": "oxygenhub.openDiffusionPin",
341
        "title": "Open Bump or Repository",
342
        "category": "OxygenHub"
343
      },
344
      {
345
        "command": "oxygenhub.openDiffusionOnHub",
346
        "title": "Open on OxygenHub",
347
        "category": "OxygenHub",
348
        "icon": "$(link-external)"
349
      },
350
      {
351
        "command": "oxygenhub.dropsRefresh",
352
        "title": "Refresh Drops",
353
        "category": "OxygenHub",
354
        "icon": "$(refresh)"
355
      },
356
      {
357
        "command": "oxygenhub.newDrop",
358
        "title": "New Drop\u2026",
359
        "category": "OxygenHub",
360
        "icon": "$(add)"
361
      },
362
      {
363
        "command": "oxygenhub.openDrop",
364
        "title": "Open a Drop\u2026",
365
        "category": "OxygenHub",
366
        "icon": "$(link-external)"
367
      },
368
      {
369
        "command": "oxygenhub.shareSelectionAsDrop",
370
        "title": "Share as a Drop\u2026",
371
        "category": "OxygenHub",
372
        "icon": "$(cloud-upload)"
373
      },
374
      {
375
        "command": "oxygenhub.shareFilesAsDrop",
376
        "title": "Share Files as a Drop\u2026",
377
        "category": "OxygenHub",
378
        "icon": "$(cloud-upload)"
379
      },
380
      {
381
        "command": "oxygenhub.openDropOnHub",
382
        "title": "Open Drop on Hub",
383
        "category": "OxygenHub",
384
        "icon": "$(globe)"
385
      },
386
      {
387
        "command": "oxygenhub.copyDropLink",
388
        "title": "Copy Drop Link",
389
        "category": "OxygenHub",
390
        "icon": "$(link)"
391
      },
392
      {
393
        "command": "oxygenhub.copyDropClone",
394
        "title": "Copy oxy clone Command",
395
        "category": "OxygenHub"
396
      },
397
      {
398
        "command": "oxygenhub.copyDropEmbed",
399
        "title": "Copy Embed HTML",
400
        "category": "OxygenHub"
401
      },
402
      {
403
        "command": "oxygenhub.cloneDrop",
404
        "title": "Clone Drop\u2026",
405
        "category": "OxygenHub"
406
      },
407
      {
408
        "command": "oxygenhub.editDrop",
409
        "title": "Edit Title and Description\u2026",
410
        "category": "OxygenHub",
411
        "icon": "$(edit)"
412
      },
413
      {
414
        "command": "oxygenhub.toggleDropVisibility",
415
        "title": "Make Public / Secret",
416
        "category": "OxygenHub"
417
      },
418
      {
419
        "command": "oxygenhub.addDropFile",
420
        "title": "Add File\u2026",
421
        "category": "OxygenHub",
422
        "icon": "$(new-file)"
423
      },
424
      {
425
        "command": "oxygenhub.deleteDropFile",
426
        "title": "Remove File from Drop",
427
        "category": "OxygenHub"
428
      },
429
      {
430
        "command": "oxygenhub.deleteDrop",
431
        "title": "Delete Drop\u2026",
432
        "category": "OxygenHub",
433
        "icon": "$(trash)"
434
      },
435
      {
436
        "command": "oxygenhub.forkDrop",
437
        "title": "Fork Drop",
438
        "category": "OxygenHub",
439
        "icon": "$(repo-forked)"
440
      },
441
      {
442
        "command": "oxygenhub.starDrop",
443
        "title": "Star Drop",
444
        "category": "OxygenHub",
445
        "icon": "$(star-empty)"
446
      },
447
      {
448
        "command": "oxygenhub.unstarDrop",
449
        "title": "Unstar Drop",
450
        "category": "OxygenHub",
451
        "icon": "$(star-full)"
452
      },
453
      {
454
        "command": "oxygenhub.dropComments",
455
        "title": "Comments\u2026",
456
        "category": "OxygenHub",
457
        "icon": "$(comment-discussion)"
458
      },
459
      {
460
        "command": "oxygenhub.approveJob",
461
        "title": "Approve Job",
462
        "category": "OxygenFlow",
463
        "icon": "$(pass)"
464
      },
465
      {
466
        "command": "oxygenhub.rejectJob",
467
        "title": "Reject Job\u2026",
468
        "category": "OxygenFlow",
469
        "icon": "$(close)"
470
      },
471
      {
472
        "command": "oxygenhub.expediteRun",
473
        "title": "Expedite Run\u2026",
474
        "category": "OxygenFlow",
475
        "icon": "$(rocket)"
476
      },
477
      {
478
        "command": "oxygenhub.cancelRun",
479
        "title": "Cancel Run",
480
        "category": "OxygenFlow",
481
        "icon": "$(debug-stop)"
482
      },
483
      {
484
        "command": "oxygenhub.jobReports",
485
        "title": "Show Reports\u2026",
486
        "category": "OxygenFlow",
487
        "icon": "$(graph)"
488
      },
489
      {
490
        "command": "oxygenhub.releaseTrust",
491
        "title": "Show Trust Report",
492
        "category": "OxygenHub",
493
        "icon": "$(shield)"
494
      },
495
      {
496
        "command": "oxygenhub.saveAsset",
497
        "title": "Save Asset\u2026",
498
        "category": "OxygenHub",
499
        "icon": "$(cloud-download)"
500
      },
501
      {
502
        "command": "oxygenhub.newRepository",
503
        "title": "New Repository\u2026",
504
        "category": "OxygenHub",
505
        "icon": "$(repo-create)"
506
      },
507
      {
508
        "command": "oxygenhub.markReady",
509
        "title": "Mark Ready for Review",
510
        "category": "OxygenHub"
511
      },
512
      {
513
        "command": "oxygenhub.convertToDraft",
514
        "title": "Convert to Draft",
515
        "category": "OxygenHub"
516
      },
517
      {
518
        "command": "oxygenhub.landable",
519
        "title": "Ready to Land\u2026",
520
        "category": "OxygenHub",
521
        "icon": "$(pass)"
522
      }
523
    ],
524
    "menus": {
525
      "view/title": [
526
        {
527
          "command": "oxygenhub.refresh",
528
          "when": "view == oxygenhub.proposals || view == oxygenhub.issues || view == oxygenhub.releases || view == oxygenhub.diffusion",
529
          "group": "navigation"
530
        },
531
        {
532
          "command": "oxygenhub.createProposal",
533
          "when": "view == oxygenhub.proposals",
534
          "group": "navigation"
535
        },
536
        {
537
          "command": "oxygenhub.newIssue",
538
          "when": "view == oxygenhub.issues",
539
          "group": "navigation"
540
        },
541
        {
542
          "command": "oxygenhub.draftRelease",
543
          "when": "view == oxygenhub.releases",
544
          "group": "navigation"
545
        },
546
        {
547
          "command": "oxygenhub.runPipeline",
548
          "when": "view == oxygenhub.flow",
549
          "group": "navigation@1"
550
        },
551
        {
552
          "command": "oxygenhub.flowRefresh",
553
          "when": "view == oxygenhub.flow",
554
          "group": "navigation@2"
555
        },
556
        {
557
          "command": "oxygenhub.newDrop",
558
          "when": "view == oxygenhub.drops",
559
          "group": "navigation@1"
560
        },
561
        {
562
          "command": "oxygenhub.openDrop",
563
          "when": "view == oxygenhub.drops",
564
          "group": "navigation@2"
565
        },
566
        {
567
          "command": "oxygenhub.dropsRefresh",
568
          "when": "view == oxygenhub.drops",
569
          "group": "navigation@3"
570
        },
571
        {
572
          "command": "oxygenhub.landable",
573
          "when": "view == oxygenhub.proposals",
574
          "group": "navigation"
575
        },
576
        {
577
          "command": "oxygenhub.newRepository",
578
          "when": "view == oxygenhub.proposals",
579
          "group": "9_new"
580
        }
581
      ],
582
      "view/item/context": [
583
        {
584
          "command": "oxygenhub.openProposalChanges",
585
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
586
          "group": "inline"
587
        },
588
        {
589
          "command": "oxygenhub.openOnHub",
590
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
591
          "group": "inline"
592
        },
593
        {
594
          "command": "oxygenhub.checkoutProposal",
595
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
596
          "group": "inline"
597
        },
598
        {
599
          "command": "oxygenhub.review",
600
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
601
          "group": "inline"
602
        },
603
        {
604
          "command": "oxygenhub.sealApproval",
605
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
606
          "group": "actions@1"
607
        },
608
        {
609
          "command": "oxygenhub.land",
610
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
611
          "group": "actions@2"
612
        },
613
        {
614
          "command": "oxygenhub.closeProposal",
615
          "when": "view == oxygenhub.proposals && viewItem =~ /^proposal(Draft)?$/",
616
          "group": "actions@3"
617
        },
618
        {
619
          "command": "oxygenhub.openOnHub",
620
          "when": "view == oxygenhub.issues && viewItem == issue",
621
          "group": "inline"
622
        },
623
        {
624
          "command": "oxygenhub.commentIssue",
625
          "when": "view == oxygenhub.issues && viewItem == issue",
626
          "group": "actions@1"
627
        },
628
        {
629
          "command": "oxygenhub.assignMe",
630
          "when": "view == oxygenhub.issues && viewItem == issue",
631
          "group": "actions@2"
632
        },
633
        {
634
          "command": "oxygenhub.closeIssue",
635
          "when": "view == oxygenhub.issues && viewItem == issue",
636
          "group": "actions@3"
637
        },
638
        {
639
          "command": "oxygenhub.reopenIssue",
640
          "when": "view == oxygenhub.issues && viewItem == issue",
641
          "group": "actions@3"
642
        },
643
        {
644
          "command": "oxygenhub.draftRelease",
645
          "when": "view == oxygenhub.releases && viewItem == releaseRepo",
646
          "group": "inline"
647
        },
648
        {
649
          "command": "oxygenhub.openDiffusionOnHub",
650
          "when": "view == oxygenhub.diffusion && viewItem =~ /^diffusion/",
651
          "group": "inline"
652
        },
653
        {
654
          "command": "oxygenhub.runPipeline",
655
          "when": "view == oxygenhub.flow && viewItem == flowRepo",
656
          "group": "inline"
657
        },
658
        {
659
          "command": "oxygenhub.rerunFlow",
660
          "when": "view == oxygenhub.flow && viewItem == flowRun",
661
          "group": "inline@1"
662
        },
663
        {
664
          "command": "oxygenhub.openFlowRun",
665
          "when": "view == oxygenhub.flow && viewItem =~ /^flowRun/",
666
          "group": "inline@2"
667
        },
668
        {
669
          "command": "oxygenhub.flowLog",
670
          "when": "view == oxygenhub.flow && viewItem == flowJob",
671
          "group": "inline"
672
        },
673
        {
674
          "command": "oxygenhub.copyDropLink",
675
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
676
          "group": "inline@1"
677
        },
678
        {
679
          "command": "oxygenhub.openDropOnHub",
680
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
681
          "group": "inline@2"
682
        },
683
        {
684
          "command": "oxygenhub.addDropFile",
685
          "when": "view == oxygenhub.drops && viewItem =~ /^dropMine/",
686
          "group": "1_edit@1"
687
        },
688
        {
689
          "command": "oxygenhub.editDrop",
690
          "when": "view == oxygenhub.drops && viewItem =~ /^dropMine/",
691
          "group": "1_edit@2"
692
        },
693
        {
694
          "command": "oxygenhub.toggleDropVisibility",
695
          "when": "view == oxygenhub.drops && viewItem =~ /^dropMine/",
696
          "group": "1_edit@3"
697
        },
698
        {
699
          "command": "oxygenhub.copyDropLink",
700
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
701
          "group": "2_share@1"
702
        },
703
        {
704
          "command": "oxygenhub.copyDropClone",
705
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
706
          "group": "2_share@2"
707
        },
708
        {
709
          "command": "oxygenhub.copyDropEmbed",
710
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
711
          "group": "2_share@3"
712
        },
713
        {
714
          "command": "oxygenhub.cloneDrop",
715
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
716
          "group": "2_share@4"
717
        },
718
        {
719
          "command": "oxygenhub.dropComments",
720
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/",
721
          "group": "3_social@1"
722
        },
723
        {
724
          "command": "oxygenhub.starDrop",
725
          "when": "view == oxygenhub.drops && viewItem =~ /^drop(Mine|Other)/ && viewItem =~ /^drop(Mine|Other)$/",
726
          "group": "3_social@2"
727
        },
728
        {
729
          "command": "oxygenhub.unstarDrop",
730
          "when": "view == oxygenhub.drops && viewItem =~ /Starred$/",
731
          "group": "3_social@2"
732
        },
733
        {
734
          "command": "oxygenhub.forkDrop",
735
          "when": "view == oxygenhub.drops && viewItem =~ /^dropOther/",
736
          "group": "3_social@3"
737
        },
738
        {
739
          "command": "oxygenhub.deleteDrop",
740
          "when": "view == oxygenhub.drops && viewItem =~ /^dropMine/",
741
          "group": "9_delete"
742
        },
743
        {
744
          "command": "oxygenhub.deleteDropFile",
745
          "when": "view == oxygenhub.drops && viewItem == dropFileMine",
746
          "group": "9_delete"
747
        },
748
        {
749
          "command": "oxygenhub.markReady",
750
          "when": "view == oxygenhub.proposals && viewItem == proposalDraft",
751
          "group": "actions@0"
752
        },
753
        {
754
          "command": "oxygenhub.convertToDraft",
755
          "when": "view == oxygenhub.proposals && viewItem == proposal",
756
          "group": "actions@4"
757
        },
758
        {
759
          "command": "oxygenhub.approveJob",
760
          "when": "view == oxygenhub.flow && viewItem == flowJobWaiting",
761
          "group": "inline@1"
762
        },
763
        {
764
          "command": "oxygenhub.rejectJob",
765
          "when": "view == oxygenhub.flow && viewItem == flowJobWaiting",
766
          "group": "inline@2"
767
        },
768
        {
769
          "command": "oxygenhub.jobReports",
770
          "when": "view == oxygenhub.flow && viewItem == flowJob",
771
          "group": "actions@1"
772
        },
773
        {
774
          "command": "oxygenhub.expediteRun",
775
          "when": "view == oxygenhub.flow && viewItem == flowRunLive",
776
          "group": "actions@1"
777
        },
778
        {
779
          "command": "oxygenhub.cancelRun",
780
          "when": "view == oxygenhub.flow && viewItem == flowRunLive",
781
          "group": "actions@2"
782
        },
783
        {
784
          "command": "oxygenhub.releaseTrust",
785
          "when": "view == oxygenhub.releases && viewItem == release",
786
          "group": "inline"
787
        },
788
        {
789
          "command": "oxygenhub.saveAsset",
790
          "when": "view == oxygenhub.releases && viewItem == releaseAsset",
791
          "group": "inline"
792
        }
793
      ],
794
      "comments/commentThread/context": [
795
        {
796
          "command": "oxygenhub.reply",
797
          "when": "commentController == oxygenhub",
798
          "group": "inline"
799
        },
800
        {
801
          "command": "oxygenhub.newThread",
802
          "when": "commentController == oxygenhub && commentThreadIsEmpty",
803
          "group": "inline"
804
        }
805
      ],
806
      "comments/commentThread/title": [
807
        {
808
          "command": "oxygenhub.resolveThread",
809
          "when": "commentController == oxygenhub",
810
          "group": "navigation"
811
        }
812
      ],
813
      "commandPalette": [
814
        {
815
          "command": "oxygenhub.openDiffusionPin",
816
          "when": "false"
817
        },
818
        {
819
          "command": "oxygenhub.openDiffusionOnHub",
820
          "when": "false"
821
        },
822
        {
823
          "command": "oxygenhub.openProposalFile",
824
          "when": "false"
825
        },
826
        {
827
          "command": "oxygenhub.rerunFlow",
828
          "when": "false"
829
        },
830
        {
831
          "command": "oxygenhub.flowLog",
832
          "when": "false"
833
        },
834
        {
835
          "command": "oxygenhub.openFlowRun",
836
          "when": "false"
837
        },
838
        {
839
          "command": "oxygenhub.openDropOnHub",
840
          "when": "false"
841
        },
842
        {
843
          "command": "oxygenhub.copyDropLink",
844
          "when": "false"
845
        },
846
        {
847
          "command": "oxygenhub.copyDropClone",
848
          "when": "false"
849
        },
850
        {
851
          "command": "oxygenhub.copyDropEmbed",
852
          "when": "false"
853
        },
854
        {
855
          "command": "oxygenhub.cloneDrop",
856
          "when": "false"
857
        },
858
        {
859
          "command": "oxygenhub.editDrop",
860
          "when": "false"
861
        },
862
        {
863
          "command": "oxygenhub.toggleDropVisibility",
864
          "when": "false"
865
        },
866
        {
867
          "command": "oxygenhub.addDropFile",
868
          "when": "false"
869
        },
870
        {
871
          "command": "oxygenhub.deleteDropFile",
872
          "when": "false"
873
        },
874
        {
875
          "command": "oxygenhub.deleteDrop",
876
          "when": "false"
877
        },
878
        {
879
          "command": "oxygenhub.forkDrop",
880
          "when": "false"
881
        },
882
        {
883
          "command": "oxygenhub.starDrop",
884
          "when": "false"
885
        },
886
        {
887
          "command": "oxygenhub.unstarDrop",
888
          "when": "false"
889
        },
890
        {
891
          "command": "oxygenhub.dropComments",
892
          "when": "false"
893
        },
894
        {
895
          "command": "oxygenhub.approveJob",
896
          "when": "false"
897
        },
898
        {
899
          "command": "oxygenhub.rejectJob",
900
          "when": "false"
901
        },
902
        {
903
          "command": "oxygenhub.expediteRun",
904
          "when": "false"
905
        },
906
        {
907
          "command": "oxygenhub.cancelRun",
908
          "when": "false"
909
        },
910
        {
911
          "command": "oxygenhub.jobReports",
912
          "when": "false"
913
        },
914
        {
915
          "command": "oxygenhub.releaseTrust",
916
          "when": "false"
917
        },
918
        {
919
          "command": "oxygenhub.saveAsset",
920
          "when": "false"
921
        }
922
      ],
923
      "editor/context": [
924
        {
925
          "command": "oxygenhub.issueFromSelection",
926
          "when": "resourceScheme == file",
927
          "group": "9_oxygenhub@1"
928
        },
929
        {
930
          "command": "oxygenhub.shareSelectionAsDrop",
931
          "group": "9_oxygenhub@2"
932
        }
933
      ],
934
      "editor/title/context": [
935
        {
936
          "command": "oxygenhub.shareSelectionAsDrop",
937
          "when": "resourceScheme == file || resourceScheme == untitled",
938
          "group": "9_oxygenhub"
939
        }
940
      ],
941
      "explorer/context": [
942
        {
943
          "command": "oxygenhub.shareFilesAsDrop",
944
          "group": "9_oxygenhub"
945
        }
946
      ]
947
    },
948
    "colors": [
949
      {
950
        "id": "oxygenhub.flowRunning",
951
        "description": "OxygenFlow: the icon of a run or job that is running.",
952
        "defaults": {
953
          "dark": "#35c7ff",
954
          "light": "#0a74b8",
955
          "highContrast": "#35c7ff",
956
          "highContrastLight": "#0a5a8f"
957
        }
958
      }
959
    ],
960
    "walkthroughs": [
961
      {
962
        "id": "oxygenhub.gettingStarted",
963
        "title": "Get started with OxygenHub",
964
        "description": "Sign in, propose and review, and watch OxygenFlow from the editor.",
965
        "steps": [
966
          {
967
            "id": "oxygenhub.signin",
968
            "title": "Sign in to your hub",
969
            "description": "A hub URL and a personal access token (Settings \u2192 Tokens on the hub). A self-signed hub works too: the extension uses the CA your checkout's remote names.\n[Sign In](command:oxygenhub.signIn)",
970
            "media": {
971
              "markdown": "walkthrough/signin.md"
972
            },
973
            "completionEvents": [
974
              "onCommand:oxygenhub.signIn"
975
            ]
976
          },
977
          {
978
            "id": "oxygenhub.proposals",
979
            "title": "Proposals and issues",
980
            "description": "The OxygenHub sidebar lists your repositories' proposals and issues. Open a proposal to see its changes, review it, seal your approval with your key, and land it.\n[Open OxygenHub](command:workbench.view.extension.oxygenhub)",
981
            "media": {
982
              "markdown": "walkthrough/proposals.md"
983
            },
984
            "completionEvents": [
985
              "onView:oxygenhub.proposals"
986
            ]
987
          },
988
          {
989
            "id": "oxygenhub.propose",
990
            "title": "Propose your bookmark",
991
            "description": "From a bookmark with work on it, propose it for the default bookmark. Issues its changes close are linked, and closed when it lands.\n[Create Proposal](command:oxygenhub.createProposal)",
992
            "media": {
993
              "markdown": "walkthrough/propose.md"
994
            },
995
            "completionEvents": [
996
              "onCommand:oxygenhub.createProposal"
997
            ]
998
          },
999
          {
1000
            "id": "oxygenhub.flow",
1001
            "title": "Watch Flow",
1002
            "description": "Every push runs the repository's OxygenFlow pipeline in microVMs. The Flow view shows runs and jobs as they go; click a job for its log, live. Run Pipeline starts one without a push.\n[Run Pipeline](command:oxygenhub.runPipeline)",
1003
            "media": {
1004
              "markdown": "walkthrough/flow.md"
1005
            },
1006
            "completionEvents": [
1007
              "onCommand:oxygenhub.runPipeline"
1008
            ]
1009
          },
1010
          {
1011
            "id": "oxygenhub.inbox",
1012
            "title": "Your inbox",
1013
            "description": "Mentions, reviews asked of you and activity on what you watch.\n[Open Inbox](command:oxygenhub.inbox)",
1014
            "media": {
1015
              "markdown": "walkthrough/inbox.md"
1016
            },
1017
            "completionEvents": [
1018
              "onCommand:oxygenhub.inbox"
1019
            ]
1020
          }
1021
        ]
1022
      }
1023
    ]
1024
  },
1025
  "scripts": {
1026
    "types": "cp ../oxygenhub/crates/hub-api/ts/index.d.ts src/hubapi.d.ts",
1027
    "build": "esbuild src/extension.ts --bundle --platform=node --format=cjs --external:vscode --outfile=dist/extension.js --sourcemap",
1028
    "watch": "npm run build -- --watch",
1029
    "typecheck": "tsc --noEmit -p .",
1030
    "pretest": "esbuild src/hub.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/hub.mjs && esbuild src/provider.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/provider.mjs && esbuild src/refs.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/refs.mjs && esbuild src/flowview.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/flowview.mjs && esbuild src/diffusionview.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/diffusionview.mjs && esbuild src/dropkit.ts --bundle --platform=node --format=esm --sourcemap --outfile=out/dropkit.mjs",
1031
    "test": "node --enable-source-maps --test \"test/**/*.test.mjs\"",
1032
    "pretest:ci": "npm run pretest",
1033
    "test:ci": "node --enable-source-maps --test --experimental-test-coverage --test-coverage-exclude=\"test/**\" --test-reporter=spec --test-reporter-destination=stdout --test-reporter=junit --test-reporter-destination=out/junit.xml --test-reporter=lcov --test-reporter-destination=out/lcov.info \"test/**/*.test.mjs\"",
1034
    "check": "npm run typecheck && npm run build && npm test",
1035
    "package": "vsce package --no-dependencies"
1036
  },
1037
  "devDependencies": {
1038
    "@types/node": "^24.0.0",
1039
    "@types/vscode": "^1.137.0",
1040
    "@vscode/vsce": "^4.0.0",
1041
    "esbuild": "^0.28.0",
1042
    "typescript": "^5.9.0"
1043
  }
1044
}