fraim 2.0.202 → 2.0.204

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +3 -3
  2. package/bin/fraim.js +8 -18
  3. package/dist/src/cli/commands/first-run.js +2 -37
  4. package/dist/src/cli/doctor/checks/mcp-connectivity-checks.js +1 -1
  5. package/dist/src/cli/fraim.js +0 -2
  6. package/dist/src/cli/setup/ide-invocation-surfaces.js +6 -6
  7. package/dist/src/cli/utils/managed-agent-paths.js +76 -6
  8. package/dist/src/cli/utils/version-utils.js +2 -2
  9. package/dist/src/config/persona-capability-bundles.js +3 -3
  10. package/dist/src/core/job-phases.js +168 -0
  11. package/dist/src/core/utils/ports.js +32 -0
  12. package/dist/src/core/utils/stub-generator.js +24 -2
  13. package/dist/src/first-run/session-service.js +106 -24
  14. package/dist/src/local-mcp-server/learning-context-builder.js +1 -1
  15. package/dist/src/local-mcp-server/stdio-server.js +41 -9
  16. package/dist/src/routes/analytics.js +2 -2
  17. package/dist/src/services/registry-service.js +2 -2
  18. package/index.js +1 -1
  19. package/package.json +61 -181
  20. package/dist/src/ai-hub/catalog.js +0 -406
  21. package/dist/src/ai-hub/cert-store.js +0 -70
  22. package/dist/src/ai-hub/conversation-store.js +0 -359
  23. package/dist/src/ai-hub/desktop-main.js +0 -449
  24. package/dist/src/ai-hub/hosts.js +0 -1664
  25. package/dist/src/ai-hub/hub-latest-version.js +0 -52
  26. package/dist/src/ai-hub/hub-launch-decision.js +0 -57
  27. package/dist/src/ai-hub/hub-runtime-file.js +0 -43
  28. package/dist/src/ai-hub/managed-browser.js +0 -269
  29. package/dist/src/ai-hub/manager-turns.js +0 -64
  30. package/dist/src/ai-hub/office-sideload.js +0 -156
  31. package/dist/src/ai-hub/openclaw-bridge.js +0 -250
  32. package/dist/src/ai-hub/preferences.js +0 -201
  33. package/dist/src/ai-hub/remote-hub-gateway.js +0 -88
  34. package/dist/src/ai-hub/server.js +0 -3827
  35. package/dist/src/ai-hub/types.js +0 -2
  36. package/dist/src/ai-hub/word-sideload.js +0 -95
  37. package/dist/src/cli/commands/hub.js +0 -238
  38. package/dist/src/cli/commands/test-mcp.js +0 -171
  39. package/dist/src/cli/setup/first-run.js +0 -242
  40. package/dist/src/core/config-writer.js +0 -75
  41. package/dist/src/core/utils/job-aliases.js +0 -47
  42. package/dist/src/core/utils/workflow-parser.js +0 -174
  43. package/dist/src/services/email-service-clean.js +0 -782
  44. package/extensions/office-word/favicon.ico +0 -0
  45. package/extensions/office-word/icon-64.png +0 -0
  46. package/extensions/office-word/manifest.xml +0 -33
  47. package/extensions/office-word/taskpane.html +0 -242
  48. package/public/ai-hub/index.html +0 -894
  49. package/public/ai-hub/powerpoint-taskpane/icon-64.png +0 -0
  50. package/public/ai-hub/powerpoint-taskpane/index.html +0 -236
  51. package/public/ai-hub/powerpoint-taskpane/manifest.xml +0 -30
  52. package/public/ai-hub/review.css +0 -381
  53. package/public/ai-hub/script.js +0 -11024
  54. package/public/ai-hub/styles.css +0 -4873
  55. package/public/portfolio/ashley.html +0 -523
  56. package/public/portfolio/auditya.html +0 -83
  57. package/public/portfolio/banke.html +0 -83
  58. package/public/portfolio/beza.html +0 -659
  59. package/public/portfolio/careena.html +0 -632
  60. package/public/portfolio/casey.html +0 -568
  61. package/public/portfolio/celia.html +0 -490
  62. package/public/portfolio/deidre.html +0 -642
  63. package/public/portfolio/gautam.html +0 -597
  64. package/public/portfolio/hari.html +0 -469
  65. package/public/portfolio/huxley.html +0 -1354
  66. package/public/portfolio/index.html +0 -741
  67. package/public/portfolio/maestro.html +0 -518
  68. package/public/portfolio/mandy.html +0 -590
  69. package/public/portfolio/mona.html +0 -597
  70. package/public/portfolio/pam.html +0 -887
  71. package/public/portfolio/procella.html +0 -107
  72. package/public/portfolio/qasm.html +0 -569
  73. package/public/portfolio/ricardo.html +0 -489
  74. package/public/portfolio/sade.html +0 -560
  75. package/public/portfolio/sam.html +0 -654
  76. package/public/portfolio/sechar.html +0 -580
  77. package/public/portfolio/sreya.html +0 -599
  78. package/public/portfolio/swen.html +0 -601
  79. /package/dist/src/{ai-hub → core}/brand-store.js +0 -0
@@ -1,83 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en" data-theme="light">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>BANKe - AI Banking KYC Employee - FRAIM Portfolio</title>
7
- <link rel="preconnect" href="https://fonts.googleapis.com">
8
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">
10
- <style>
11
- :root { --accent:#0f766e; --accent-2:#2563eb; --text:#0f172a; --muted:#64748b; --bg:#f8fafc; --surface:#fff; --surface-2:#eef6ff; --border:#dbeafe; --shadow:0 12px 36px rgba(15,23,42,.12); }
12
- [data-theme="dark"] { --text:#e5e7eb; --muted:#94a3b8; --bg:#08111f; --surface:#0f1f33; --surface-2:#132942; --border:#244766; --shadow:0 12px 36px rgba(0,0,0,.38); }
13
- * { box-sizing:border-box; margin:0; padding:0; }
14
- body { font-family:Inter,sans-serif; background:var(--bg); color:var(--text); min-height:100vh; }
15
- .site-header { position:sticky; top:0; z-index:10; display:flex; justify-content:space-between; align-items:center; padding:14px 32px; background:var(--surface); border-bottom:1px solid var(--border); }
16
- .brand { display:flex; align-items:center; gap:10px; color:var(--text); text-decoration:none; font-weight:800; }
17
- .brand-logo { width:32px; height:32px; border-radius:8px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
18
- .theme-btn { background:var(--surface-2); color:var(--muted); border:1px solid var(--border); border-radius:8px; padding:7px 10px; cursor:pointer; }
19
- .hero { max-width:960px; margin:56px auto 0; padding:0 24px; text-align:center; }
20
- .avatar { width:96px; height:96px; margin:0 auto 22px; border-radius:50%; display:grid; place-items:center; color:#fff; font:800 38px/1 JetBrains Mono,monospace; background:linear-gradient(135deg,var(--accent),var(--accent-2)); box-shadow:0 0 0 8px var(--surface-2); }
21
- .chip { display:inline-block; color:var(--accent); background:var(--surface-2); border:1px solid var(--border); border-radius:999px; padding:5px 14px; font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
22
- h1 { margin:18px auto 14px; font-size:clamp(34px,5vw,56px); line-height:1.05; letter-spacing:-1px; max-width:760px; }
23
- h1 span { color:var(--accent); }
24
- .hero p { color:var(--muted); font-size:17px; line-height:1.7; max-width:680px; margin:0 auto; }
25
- .section { max-width:980px; margin:56px auto 80px; padding:0 24px; display:grid; gap:18px; }
26
- .card { background:var(--surface); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; }
27
- .card-head { padding:22px 24px; display:flex; gap:16px; align-items:flex-start; cursor:pointer; }
28
- .num { width:40px; height:40px; border-radius:10px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-2)); font-weight:800; }
29
- .meta { flex:1; min-width:0; }
30
- .tag { color:var(--accent); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px; }
31
- .title { font-size:19px; font-weight:800; margin-bottom:5px; }
32
- .sub { color:var(--muted); font-size:13px; line-height:1.5; }
33
- .body { display:none; border-top:1px solid var(--border); padding:24px; }
34
- .card.open .body { display:block; }
35
- .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
36
- .box { background:var(--surface-2); border-radius:10px; padding:14px; }
37
- .box b { display:block; color:var(--accent); font-size:11px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px; }
38
- .box span { color:var(--muted); font-size:13px; line-height:1.55; }
39
- table { width:100%; border-collapse:collapse; background:var(--surface-2); border-radius:10px; overflow:hidden; }
40
- th,td { text-align:left; padding:11px 12px; border-bottom:1px solid var(--border); font-size:12px; vertical-align:top; }
41
- th { color:var(--accent); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
42
- .mono { font-family:JetBrains Mono,monospace; font-size:12px; }
43
- @media (max-width:720px) { .site-header { padding:12px 16px; } .grid { grid-template-columns:1fr; } }
44
- </style>
45
- </head>
46
- <body>
47
- <header class="site-header">
48
- <a class="brand" href="/portfolio/"><div class="brand-logo">F</div><span>FRAIM</span></a>
49
- <button class="theme-btn" onclick="toggleTheme()" title="Toggle dark mode">Theme</button>
50
- </header>
51
- <section class="hero">
52
- <div class="avatar"><img src="https://api.dicebear.com/9.x/notionists/svg?seed=BANKe-banking-kyc&backgroundColor=ccfbf1&radius=50" width="96" height="96" alt="BANKe banking KYC avatar" style="border-radius:50%;"></div>
53
- <div class="chip">AI Banking KYC Employee</div>
54
- <h1>BANKe turns KYC work into <span>auditable evidence</span>.</h1>
55
- <p>BANKe reviews consent-backed banking cases, records source evidence, makes a bounded KYC decision, and leaves receipts that a separate auditor can inspect later.</p>
56
- </section>
57
- <main class="section">
58
- <article class="card open">
59
- <div class="card-head" onclick="toggleCard(this)"><div class="num">1</div><div class="meta"><div class="tag">Banking KYC</div><div class="title">Consent-backed applicant review</div><div class="sub">Account aggregator case review with redacted applicant data and explicit consent scope.</div></div></div>
60
- <div class="body">
61
- <div class="grid"><div class="box"><b>Problem</b><span>A banking team needs to prove why a KYC case was approved without exposing raw PII.</span></div><div class="box"><b>Work</b><span>BANKe collects identity, consent, account ownership, sanctions, and velocity checks into one normalized bundle.</span></div><div class="box"><b>Outcome</b><span>The decision cites evidence ids and produces a receipt that AUDITya can audit later.</span></div></div>
62
- <table><tr><th>Evidence id</th><th>Check</th><th>Result</th><th>Artifact</th></tr><tr><td class="mono">kyc-e-001</td><td>Consent scope</td><td>Pass</td><td class="mono">docs/banking/{case-id}/{case-id}-{date}-kyc-review.docx</td></tr><tr><td class="mono">kyc-e-003</td><td>Account ownership</td><td>Pass</td><td class="mono">docs/banking/{case-id}/{case-id}-{date}-kyc-review.docx</td></tr><tr><td class="mono">kyc-e-006</td><td>Velocity risk</td><td>Observation</td><td class="mono">docs/banking/{case-id}/{case-id}-{date}-kyc-review.docx</td></tr></table>
63
- </div>
64
- </article>
65
- <article class="card">
66
- <div class="card-head" onclick="toggleCard(this)"><div class="num">2</div><div class="meta"><div class="tag">Decision receipt</div><div class="title">Evidence first, decision second</div><div class="sub">Every approval reason points to an evidence id and source artifact.</div></div></div>
67
- <div class="body">
68
- <table><tr><th>Decision reason</th><th>Evidence</th><th>Review boundary</th></tr><tr><td>Applicant identity is consistent with consent artifact.</td><td class="mono">kyc-e-001, kyc-e-002</td><td>Source mode recorded per evidence item.</td></tr><tr><td>Bank account ownership matches the applicant.</td><td class="mono">kyc-e-003</td><td>Redacted account hash retained.</td></tr><tr><td>No sanctions or PEP hit found.</td><td class="mono">kyc-e-004</td><td>Provider or sandbox source recorded in the receipt.</td></tr></table>
69
- </div>
70
- </article>
71
- <article class="card">
72
- <div class="card-head" onclick="toggleCard(this)"><div class="num">3</div><div class="meta"><div class="tag">Audit handoff</div><div class="title">Stable artifact paths for future review</div><div class="sub">The KYC folder is designed to be reused by the audit job without rewriting source evidence.</div></div></div>
73
- <div class="body">
74
- <table><tr><th>Path</th><th>Purpose</th></tr><tr><td class="mono">docs/banking/{case-id}/{case-id}-{date}-kyc-review.docx</td><td>Human-readable case context, evidence table, decision, receipt, and audit handoff.</td></tr><tr><td class="mono">docs/banking/{case-id}/{case-id}-{date}-audit-report.docx</td><td>AUDITya's future review artifact points back to this same pack.</td></tr></table>
75
- </div>
76
- </article>
77
- </main>
78
- <script>
79
- function toggleTheme(){const html=document.documentElement;html.setAttribute('data-theme',html.getAttribute('data-theme')==='dark'?'light':'dark');}
80
- function toggleCard(header){header.closest('.card').classList.toggle('open');}
81
- </script>
82
- </body>
83
- </html>