fraim-framework 2.0.150 → 2.0.152
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ai-hub/hosts.js +16 -7
- package/dist/src/ai-hub/server.js +7 -1
- package/dist/src/cli/commands/test-mcp.js +171 -0
- package/dist/src/cli/setup/first-run.js +242 -0
- package/dist/src/core/config-writer.js +75 -0
- package/dist/src/core/utils/job-aliases.js +47 -0
- package/dist/src/core/utils/workflow-parser.js +174 -0
- package/index.js +1 -1
- package/package.json +2 -5
- package/public/ai-hub/index.html +67 -67
- package/public/ai-hub/script.js +374 -365
- package/public/ai-hub/styles.css +582 -565
- package/public/first-run/index.html +35 -35
- package/public/first-run/script.js +667 -667
- package/public/first-run/styles.css +73 -73
|
@@ -421,14 +421,14 @@ body {
|
|
|
421
421
|
flex-direction: column;
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
-
.recruit-container,
|
|
425
|
-
.start-container {
|
|
426
|
-
gap: 12px;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
.start-container {
|
|
430
|
-
gap: 14px;
|
|
431
|
-
}
|
|
424
|
+
.recruit-container,
|
|
425
|
+
.start-container {
|
|
426
|
+
gap: 12px;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.start-container {
|
|
430
|
+
gap: 14px;
|
|
431
|
+
}
|
|
432
432
|
|
|
433
433
|
.user-type-card {
|
|
434
434
|
background: var(--surface);
|
|
@@ -448,23 +448,23 @@ body {
|
|
|
448
448
|
border-color: var(--accent);
|
|
449
449
|
background: var(--accent-soft);
|
|
450
450
|
}
|
|
451
|
-
.user-type-card--featured:hover {
|
|
452
|
-
box-shadow: 0 4px 20px rgba(61, 138, 110, 0.18);
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
.user-type-card--ide-default {
|
|
456
|
-
padding: 24px;
|
|
457
|
-
gap: 18px;
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
.user-type-card--compact {
|
|
461
|
-
padding: 16px 18px;
|
|
462
|
-
gap: 12px;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
.user-type-card--alpha {
|
|
466
|
-
background: linear-gradient(180deg, #fbfcfa 0%, #f4f7f2 100%);
|
|
467
|
-
}
|
|
451
|
+
.user-type-card--featured:hover {
|
|
452
|
+
box-shadow: 0 4px 20px rgba(61, 138, 110, 0.18);
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
.user-type-card--ide-default {
|
|
456
|
+
padding: 24px;
|
|
457
|
+
gap: 18px;
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.user-type-card--compact {
|
|
461
|
+
padding: 16px 18px;
|
|
462
|
+
gap: 12px;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.user-type-card--alpha {
|
|
466
|
+
background: linear-gradient(180deg, #fbfcfa 0%, #f4f7f2 100%);
|
|
467
|
+
}
|
|
468
468
|
|
|
469
469
|
.card-header {
|
|
470
470
|
display: flex;
|
|
@@ -492,38 +492,38 @@ body {
|
|
|
492
492
|
border-color: var(--accent);
|
|
493
493
|
}
|
|
494
494
|
|
|
495
|
-
.card-title {
|
|
496
|
-
display: block;
|
|
497
|
-
font-size: 15px;
|
|
498
|
-
font-weight: 600;
|
|
499
|
-
color: var(--text);
|
|
500
|
-
margin-bottom: 3px;
|
|
501
|
-
}
|
|
502
|
-
.card-desc { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.45; }
|
|
503
|
-
|
|
504
|
-
.card-eyebrow {
|
|
505
|
-
display: inline-flex;
|
|
506
|
-
align-self: flex-start;
|
|
507
|
-
padding: 4px 10px;
|
|
508
|
-
border-radius: 999px;
|
|
509
|
-
background: var(--accent-soft);
|
|
510
|
-
color: var(--accent-strong);
|
|
511
|
-
font-size: 11px;
|
|
512
|
-
font-weight: 700;
|
|
513
|
-
letter-spacing: 0.06em;
|
|
514
|
-
text-transform: uppercase;
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
.route-note {
|
|
518
|
-
margin: 0;
|
|
519
|
-
color: var(--muted);
|
|
520
|
-
font-size: 13px;
|
|
521
|
-
line-height: 1.5;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
.route-note--compact {
|
|
525
|
-
font-size: 12px;
|
|
526
|
-
}
|
|
495
|
+
.card-title {
|
|
496
|
+
display: block;
|
|
497
|
+
font-size: 15px;
|
|
498
|
+
font-weight: 600;
|
|
499
|
+
color: var(--text);
|
|
500
|
+
margin-bottom: 3px;
|
|
501
|
+
}
|
|
502
|
+
.card-desc { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.45; }
|
|
503
|
+
|
|
504
|
+
.card-eyebrow {
|
|
505
|
+
display: inline-flex;
|
|
506
|
+
align-self: flex-start;
|
|
507
|
+
padding: 4px 10px;
|
|
508
|
+
border-radius: 999px;
|
|
509
|
+
background: var(--accent-soft);
|
|
510
|
+
color: var(--accent-strong);
|
|
511
|
+
font-size: 11px;
|
|
512
|
+
font-weight: 700;
|
|
513
|
+
letter-spacing: 0.06em;
|
|
514
|
+
text-transform: uppercase;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.route-note {
|
|
518
|
+
margin: 0;
|
|
519
|
+
color: var(--muted);
|
|
520
|
+
font-size: 13px;
|
|
521
|
+
line-height: 1.5;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
.route-note--compact {
|
|
525
|
+
font-size: 12px;
|
|
526
|
+
}
|
|
527
527
|
|
|
528
528
|
.btn {
|
|
529
529
|
display: inline-flex;
|
|
@@ -572,9 +572,9 @@ body {
|
|
|
572
572
|
border-color: var(--line);
|
|
573
573
|
}
|
|
574
574
|
|
|
575
|
-
/* IDE command display — shown after choosing "In my IDE". */
|
|
576
|
-
.cmd-block {
|
|
577
|
-
background: #0d1410;
|
|
575
|
+
/* IDE command display — shown after choosing "In my IDE". */
|
|
576
|
+
.cmd-block {
|
|
577
|
+
background: #0d1410;
|
|
578
578
|
color: #c8d3cd;
|
|
579
579
|
font-family: "JetBrains Mono", "Cascadia Code", Consolas, monospace;
|
|
580
580
|
font-size: 14px;
|
|
@@ -612,16 +612,16 @@ body {
|
|
|
612
612
|
* want the surface to degrade gracefully for users who happen to open it
|
|
613
613
|
* in a narrow window. Stack the label / verb / change link vertically and
|
|
614
614
|
* let the row breathe. */
|
|
615
|
-
@media (max-width: 600px) {
|
|
616
|
-
.page { padding: 24px 16px 24px; }
|
|
617
|
-
.checklist .row { gap: 8px; padding: 12px 14px; }
|
|
618
|
-
.row .label { min-width: 0; }
|
|
619
|
-
.row .verb { flex: 1 1 100%; }
|
|
620
|
-
.row .change-link { margin-left: auto; }
|
|
621
|
-
.row .project-picker { gap: 8px; }
|
|
622
|
-
.row .project-picker input { width: 100%; min-width: 0; }
|
|
623
|
-
.user-type-card--ide-default,
|
|
624
|
-
.user-type-card--compact {
|
|
625
|
-
padding: 18px 16px;
|
|
626
|
-
}
|
|
627
|
-
}
|
|
615
|
+
@media (max-width: 600px) {
|
|
616
|
+
.page { padding: 24px 16px 24px; }
|
|
617
|
+
.checklist .row { gap: 8px; padding: 12px 14px; }
|
|
618
|
+
.row .label { min-width: 0; }
|
|
619
|
+
.row .verb { flex: 1 1 100%; }
|
|
620
|
+
.row .change-link { margin-left: auto; }
|
|
621
|
+
.row .project-picker { gap: 8px; }
|
|
622
|
+
.row .project-picker input { width: 100%; min-width: 0; }
|
|
623
|
+
.user-type-card--ide-default,
|
|
624
|
+
.user-type-card--compact {
|
|
625
|
+
padding: 18px 16px;
|
|
626
|
+
}
|
|
627
|
+
}
|