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