@chibitek/chibi 0.1.173 → 0.1.175

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 (83) hide show
  1. package/dist/assets/{abnfDiagram-O67JEVCF-DaA9WpZw.js → abnfDiagram-O67JEVCF-CjXTIXBz.js} +1 -1
  2. package/dist/assets/{arc-DJ4Kdvv6.js → arc-1QgG2iO9.js} +1 -1
  3. package/dist/assets/{architectureDiagram-NJMV4G6O-B975BUTv.js → architectureDiagram-NJMV4G6O-CzCo4hRJ.js} +1 -1
  4. package/dist/assets/{blockDiagram-BEXU5L5S-CXOOfLy7.js → blockDiagram-BEXU5L5S-DhrHIUjL.js} +1 -1
  5. package/dist/assets/{c4Diagram-YGBWAQC7-CorqQ94E.js → c4Diagram-YGBWAQC7-gOjFoY7Z.js} +1 -1
  6. package/dist/assets/channel-DB0DMkPD.js +1 -0
  7. package/dist/assets/{chunk-2Q5K7J3B-CPFHpKez.js → chunk-2Q5K7J3B-B9bsMZTt.js} +1 -1
  8. package/dist/assets/{chunk-3FUC2YCW-CrzBuB3A.js → chunk-3FUC2YCW-D6qIOfLe.js} +2 -2
  9. package/dist/assets/{chunk-5VM5RSS4-DXJTBdvO.js → chunk-5VM5RSS4-DCixOiOi.js} +1 -1
  10. package/dist/assets/{chunk-GTNCS2PH-B0TxALG4.js → chunk-GTNCS2PH-Bh52Az-G.js} +1 -1
  11. package/dist/assets/{chunk-GWA4HPMP-BL44uVOP.js → chunk-GWA4HPMP-Dbs4EZ88.js} +1 -1
  12. package/dist/assets/{chunk-JWPE2WC7-CxSklH7P.js → chunk-JWPE2WC7-jReoeHz2.js} +1 -1
  13. package/dist/assets/{chunk-NETBCI7D-_Lb-D8AY.js → chunk-NETBCI7D-CF3H0lZo.js} +1 -1
  14. package/dist/assets/{chunk-WEXAMYUT-Dz5jp0xb.js → chunk-WEXAMYUT-DetCJmJX.js} +1 -1
  15. package/dist/assets/{chunk-XXDRQBXY-C-cd9N0r.js → chunk-XXDRQBXY-CigsN-8U.js} +1 -1
  16. package/dist/assets/{classDiagram-v2-NBCMYWYE-DtQ1781-.js → classDiagram-v2-NBCMYWYE-D8ZcMUWM.js} +1 -1
  17. package/dist/assets/{cose-bilkent-JH36ORCC-CHzWXNdH.js → cose-bilkent-JH36ORCC-BnqFoYIa.js} +1 -1
  18. package/dist/assets/{cynefin-OW5HDTMX-lHbKcf1S.js → cynefin-OW5HDTMX-DWSSGPqP.js} +1 -1
  19. package/dist/assets/{cynefinDiagram-VND7K2PF-BxY6MCKD.js → cynefinDiagram-VND7K2PF-Doo-ZQ5E.js} +1 -1
  20. package/dist/assets/{dagre-6A5THRUB-C2SBw-Mo.js → dagre-6A5THRUB-Bje_N-ue.js} +1 -1
  21. package/dist/assets/{diagram-22UHCM2B-BwIAlmAU.js → diagram-22UHCM2B-osEfxfGj.js} +1 -1
  22. package/dist/assets/{diagram-3UASUU5V-i6fBkckD.js → diagram-3UASUU5V-D0ybINw1.js} +1 -1
  23. package/dist/assets/{diagram-ATOU4E4O-DwedCbB_.js → diagram-ATOU4E4O-DwS59waF.js} +1 -1
  24. package/dist/assets/{diagram-CDSNMT55-BISF-AQC.js → diagram-CDSNMT55-stDTabsA.js} +1 -1
  25. package/dist/assets/{diagram-MLGK6HIB-ImgdRRxp.js → diagram-MLGK6HIB-COdtBBj4.js} +1 -1
  26. package/dist/assets/{diagram-MPIPVDR6-CxlAwPCS.js → diagram-MPIPVDR6-S32r0-4f.js} +1 -1
  27. package/dist/assets/{ebnfDiagram-ZINNZB2B-sVJkymKa.js → ebnfDiagram-ZINNZB2B-CZxbMOzV.js} +1 -1
  28. package/dist/assets/{elk-276RUBZZ-DU1vyX4w.js → elk-276RUBZZ-PzYOam0u.js} +1 -1
  29. package/dist/assets/{erDiagram-OPXOYQCR-CnCmL1Ve.js → erDiagram-OPXOYQCR-D0HBOTqF.js} +1 -1
  30. package/dist/assets/{flowDiagram-KWPJA3E3-DME2uLJf.js → flowDiagram-KWPJA3E3-1d8rftXL.js} +1 -1
  31. package/dist/assets/{ganttDiagram-FUAMR5RP-CJQNW9ts.js → ganttDiagram-FUAMR5RP-CWn83VOd.js} +1 -1
  32. package/dist/assets/{gitGraphDiagram-X574FWY7-D88_Y9tg.js → gitGraphDiagram-X574FWY7-CkLyRxvr.js} +1 -1
  33. package/dist/assets/{index-U9LN4GhF.js → index-BcBNl1Sc.js} +175 -175
  34. package/dist/assets/index-D17LLrYN.css +1 -0
  35. package/dist/assets/{index-ChmZZe7i.js → index-DfdDXEfq.js} +1 -1
  36. package/dist/assets/{infoDiagram-VRGFBTTK-CxWEf3NI.js → infoDiagram-VRGFBTTK-BmAsjOaa.js} +1 -1
  37. package/dist/assets/{ishikawaDiagram-OU5B5YK6-B_YoNVjF.js → ishikawaDiagram-OU5B5YK6-B9d57hp_.js} +1 -1
  38. package/dist/assets/{journeyDiagram-ZHPQQLJL-ZYuBE2Bm.js → journeyDiagram-ZHPQQLJL-II3Kse3X.js} +1 -1
  39. package/dist/assets/{kanban-definition-PNTS6WVX-jmY_M4Qf.js → kanban-definition-PNTS6WVX-DtovCoCx.js} +1 -1
  40. package/dist/assets/{linear-kKUF6ayN.js → linear-BnH8vI1-.js} +1 -1
  41. package/dist/assets/{mermaid.core-DC5051S_.js → mermaid.core-BExpGmRM.js} +5 -5
  42. package/dist/assets/{mindmap-definition-NLK3R4M7-C5knfygJ.js → mindmap-definition-NLK3R4M7-CSGJyaor.js} +1 -1
  43. package/dist/assets/{pegDiagram-GJSIUBJH-Ex6iedL2.js → pegDiagram-GJSIUBJH-BFgKWA7i.js} +1 -1
  44. package/dist/assets/{pieDiagram-5QR66LMP-Dv38Ox0D.js → pieDiagram-5QR66LMP-Dl3FAvDB.js} +1 -1
  45. package/dist/assets/{quadrantDiagram-O4NWA36T-CwOEor8N.js → quadrantDiagram-O4NWA36T-DafRWmMB.js} +1 -1
  46. package/dist/assets/{railroadDiagram-XR7U4H2S-DVgqz5MR.js → railroadDiagram-XR7U4H2S-CHJ7SyyJ.js} +1 -1
  47. package/dist/assets/{requirementDiagram-PLB6GJNP-BxiuYo52.js → requirementDiagram-PLB6GJNP-DJzpaN8z.js} +1 -1
  48. package/dist/assets/{sankeyDiagram-IPEJSGJF--vq_1flP.js → sankeyDiagram-IPEJSGJF-BKqi0qaK.js} +1 -1
  49. package/dist/assets/{sequenceDiagram-PO4LG4MO-9hLpfPA6.js → sequenceDiagram-PO4LG4MO-Bdc2LKBx.js} +1 -1
  50. package/dist/assets/{sizeCapture-INFHLROL-BeGMkj9s.js → sizeCapture-INFHLROL-CIuw2Jav.js} +1 -1
  51. package/dist/assets/{stateDiagram-v2-GCMORJYK-BnNOMugb.js → stateDiagram-v2-GCMORJYK-CocMnCmt.js} +1 -1
  52. package/dist/assets/{swimlanes-2SLR337P-C1YG6Jq-.js → swimlanes-2SLR337P-D7Kw4SfT.js} +1 -1
  53. package/dist/assets/swimlanesDiagram-TC7HE7FX-Bq7WUTaZ.js +8 -0
  54. package/dist/assets/{timeline-definition-EJHVYXUP-Co7OtwGA.js → timeline-definition-EJHVYXUP-DEXnhdui.js} +1 -1
  55. package/dist/assets/{usecaseDiagram-POWQR4AR-BYHFARv3.js → usecaseDiagram-POWQR4AR-CJTa0bWM.js} +1 -1
  56. package/dist/assets/{vennDiagram-UO4OBE2U-C-sdhL3h.js → vennDiagram-UO4OBE2U-CKphfio6.js} +1 -1
  57. package/dist/assets/{wardleyDiagram-VNRHLVJA-wf8ZNrmQ.js → wardleyDiagram-VNRHLVJA-COQ5I4oG.js} +1 -1
  58. package/dist/assets/{xychartDiagram-PMCCYNJV-BjRlkVGv.js → xychartDiagram-PMCCYNJV-BqlgNUIm.js} +1 -1
  59. package/dist/index.html +2 -2
  60. package/dist-server/container-mcp.js +1 -0
  61. package/dist-server/index.js +1305 -747
  62. package/dist-server/openmausbot.js +3 -2
  63. package/dist-server/pair-cli.js +3 -2
  64. package/dist-server/server/about-me-sync.js +172 -0
  65. package/dist-server/server/config.js +1 -1
  66. package/dist-server/server/dictation.js +8 -0
  67. package/dist-server/server/drivers/claude.js +4 -4
  68. package/dist-server/server/icm-context.js +0 -22
  69. package/dist-server/server/index.js +26 -31
  70. package/dist-server/server/oauth-account-core.js +153 -0
  71. package/dist-server/server/oauth-account-tools.js +7 -348
  72. package/dist-server/server/oauth-calendar-tools.js +551 -0
  73. package/dist-server/server/paw/service.js +2 -1
  74. package/dist-server/server/paw/workspace.js +2 -1
  75. package/dist-server/server/vault/routes.js +20 -0
  76. package/dist-server/server/vault/store.js +24 -0
  77. package/dist-server/shared/oauth-providers.js +2 -1
  78. package/dist-server/shared/vault-csv.js +94 -0
  79. package/dist-server/vps-container-mcp.js +1 -0
  80. package/package.json +1 -1
  81. package/dist/assets/channel-sBYHnjxz.js +0 -1
  82. package/dist/assets/index-COwCaN7p.css +0 -1
  83. package/dist/assets/swimlanesDiagram-TC7HE7FX-9DghUs7S.js +0 -8
@@ -9,7 +9,8 @@ export const OAUTH_PROVIDER_IDS = ["google", "microsoft"];
9
9
  * docs/chibitek/google-verification/scope-map.md):
10
10
  * gmail gmail_search, gmail_read gmail.readonly (restricted)
11
11
  * gmailSend gmail_create_draft, gmail_send_draft gmail.compose (restricted)
12
- * calendar calendar_list_events, calendar_create_event calendar.events (sensitive)
12
+ * calendar calendar_list_events, calendar_get_event, calendar_create_event,
13
+ * calendar_update_event, calendar_delete_event calendar.events (sensitive)
13
14
  * drive drive_search, drive_read drive.readonly (restricted)
14
15
  * drive.file cannot serve drive_search: it only reaches files Atomic created
15
16
  * or the person picked in Google's file picker. */
@@ -0,0 +1,94 @@
1
+ import { vaultOrigin } from "./vault.js";
2
+ export class VaultCsvError extends Error {
3
+ }
4
+ /** RFC 4180: quoted fields, doubled quotes, commas and newlines inside quotes. */
5
+ export function parseCsv(text) {
6
+ const rows = [];
7
+ let row = [];
8
+ let field = "";
9
+ let quoted = false;
10
+ const s = text.replace(/^/, "");
11
+ for (let i = 0; i < s.length; i++) {
12
+ const c = s[i];
13
+ if (quoted) {
14
+ if (c === '"' && s[i + 1] === '"') {
15
+ field += '"';
16
+ i++;
17
+ }
18
+ else if (c === '"')
19
+ quoted = false;
20
+ else
21
+ field += c;
22
+ }
23
+ else if (c === '"')
24
+ quoted = true;
25
+ else if (c === ",") {
26
+ row.push(field);
27
+ field = "";
28
+ }
29
+ else if (c === "\n" || c === "\r") {
30
+ if (c === "\r" && s[i + 1] === "\n")
31
+ i++;
32
+ row.push(field);
33
+ rows.push(row);
34
+ row = [];
35
+ field = "";
36
+ }
37
+ else
38
+ field += c;
39
+ }
40
+ if (field || row.length) {
41
+ row.push(field);
42
+ rows.push(row);
43
+ }
44
+ return rows.filter((r) => r.some((cell) => cell.trim()));
45
+ }
46
+ // Header names used by Chrome, Edge, Safari/Apple Passwords, Firefox,
47
+ // 1Password, Bitwarden, LastPass, Dashlane, Proton Pass, NordPass, RoboForm.
48
+ // Earlier names win, so a "username" column beats an "email" column.
49
+ const COLUMNS = {
50
+ url: ["url", "login_uri", "website", "web site", "uri", "login url"],
51
+ username: ["username", "login_username", "user name", "login", "user", "login name", "email", "e-mail"],
52
+ password: ["password", "login_password", "pwd", "pass"],
53
+ name: ["name", "title", "account"],
54
+ type: ["type"],
55
+ };
56
+ /** Logins from a password manager's CSV export. Notes, TOTP seeds and custom
57
+ * fields are dropped: they can hold secrets and hints are not secret. Rows
58
+ * without a website, username and password, or that are not logins, are
59
+ * counted in `skipped`. Imported items are private to the person (no bots). */
60
+ export function vaultLoginsFromCsv(text) {
61
+ const [header, ...rows] = parseCsv(text);
62
+ if (!header)
63
+ return { logins: [], skipped: 0 };
64
+ const names = header.map((cell) => cell.trim().toLowerCase());
65
+ const col = (key) => {
66
+ for (const name of COLUMNS[key]) {
67
+ const index = names.indexOf(name);
68
+ if (index >= 0)
69
+ return index;
70
+ }
71
+ return -1;
72
+ };
73
+ const at = { url: col("url"), username: col("username"), password: col("password"), name: col("name"), type: col("type") };
74
+ if (at.url < 0 || at.password < 0 || at.username < 0)
75
+ throw new VaultCsvError("This CSV has no website, username and password columns.");
76
+ const logins = [];
77
+ let skipped = 0;
78
+ for (const row of rows) {
79
+ const cell = (index) => (index >= 0 ? row[index] ?? "" : "").trim();
80
+ const type = cell(at.type).toLowerCase();
81
+ const raw = cell(at.url).split(/[\s,]+/)[0] ?? "";
82
+ // Old entries saved as http:// or a bare domain are filled over HTTPS.
83
+ const website = vaultOrigin(/^[a-z][a-z0-9+.-]*:\/\//i.test(raw) ? raw.replace(/^http:\/\//i, "https://") : `https://${raw}`);
84
+ const username = cell(at.username);
85
+ const password = row[at.password] ?? "";
86
+ if ((type && type !== "login") || !raw || !website || !username || !password || username.length > 320 || password.length > 4096) {
87
+ skipped++;
88
+ continue;
89
+ }
90
+ const label = (cell(at.name) || new URL(website).hostname).slice(0, 200);
91
+ logins.push({ kind: "login", label, hints: "", botIds: [], expiresAt: null, website, username, password });
92
+ }
93
+ return { logins, skipped };
94
+ }
@@ -17055,6 +17055,7 @@ var appConfigSchema = external_exports.object({
17055
17055
  icm: external_exports.object({
17056
17056
  enabled: external_exports.boolean().optional(),
17057
17057
  aboutMePrefilled: external_exports.boolean().optional(),
17058
+ // no longer read (About me syncs with PAW); kept so older configs parse
17058
17059
  path: external_exports.string().trim().max(4096).refine(
17059
17060
  (value) => !["\r", "\n", "\0"].some((character) => value.includes(character)),
17060
17061
  "Use a folder path without control characters"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chibitek/chibi",
3
- "version": "0.1.173",
3
+ "version": "0.1.175",
4
4
  "description": "Atomic by Chibitek: run your AI team's server anywhere and pair your devices to it",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-DC5051S_.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};