@chibitek/chibi 0.1.171 → 0.1.173

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-DrPBKmVh.js → abnfDiagram-O67JEVCF-DaA9WpZw.js} +1 -1
  2. package/dist/assets/{arc-BEIChVSB.js → arc-DJ4Kdvv6.js} +1 -1
  3. package/dist/assets/{architectureDiagram-NJMV4G6O-Da60nTzs.js → architectureDiagram-NJMV4G6O-B975BUTv.js} +1 -1
  4. package/dist/assets/{blockDiagram-BEXU5L5S-_NelwIQj.js → blockDiagram-BEXU5L5S-CXOOfLy7.js} +1 -1
  5. package/dist/assets/{c4Diagram-YGBWAQC7-DUdkQ3dy.js → c4Diagram-YGBWAQC7-CorqQ94E.js} +1 -1
  6. package/dist/assets/channel-sBYHnjxz.js +1 -0
  7. package/dist/assets/{chunk-2Q5K7J3B-BQgYAptM.js → chunk-2Q5K7J3B-CPFHpKez.js} +1 -1
  8. package/dist/assets/{chunk-3FUC2YCW-XXOXwcoW.js → chunk-3FUC2YCW-CrzBuB3A.js} +2 -2
  9. package/dist/assets/{chunk-5VM5RSS4-CUyMXCSt.js → chunk-5VM5RSS4-DXJTBdvO.js} +1 -1
  10. package/dist/assets/{chunk-GTNCS2PH-BwctbINm.js → chunk-GTNCS2PH-B0TxALG4.js} +1 -1
  11. package/dist/assets/{chunk-GWA4HPMP-DQ0bZK59.js → chunk-GWA4HPMP-BL44uVOP.js} +1 -1
  12. package/dist/assets/{chunk-JWPE2WC7-BADCk9AK.js → chunk-JWPE2WC7-CxSklH7P.js} +1 -1
  13. package/dist/assets/{chunk-NETBCI7D-CoJxabSR.js → chunk-NETBCI7D-_Lb-D8AY.js} +1 -1
  14. package/dist/assets/{chunk-WEXAMYUT-fupByVJn.js → chunk-WEXAMYUT-Dz5jp0xb.js} +1 -1
  15. package/dist/assets/{chunk-XXDRQBXY-BavbGHGi.js → chunk-XXDRQBXY-C-cd9N0r.js} +1 -1
  16. package/dist/assets/{classDiagram-v2-NBCMYWYE-B5wfUNKJ.js → classDiagram-v2-NBCMYWYE-DtQ1781-.js} +1 -1
  17. package/dist/assets/{cose-bilkent-JH36ORCC-DlYFmKDe.js → cose-bilkent-JH36ORCC-CHzWXNdH.js} +1 -1
  18. package/dist/assets/{cynefin-OW5HDTMX-Y0U-21MH.js → cynefin-OW5HDTMX-lHbKcf1S.js} +1 -1
  19. package/dist/assets/{cynefinDiagram-VND7K2PF-D1Fh1sU0.js → cynefinDiagram-VND7K2PF-BxY6MCKD.js} +1 -1
  20. package/dist/assets/{dagre-6A5THRUB-BNU-Trog.js → dagre-6A5THRUB-C2SBw-Mo.js} +1 -1
  21. package/dist/assets/{diagram-22UHCM2B-Bjie4nDQ.js → diagram-22UHCM2B-BwIAlmAU.js} +1 -1
  22. package/dist/assets/{diagram-3UASUU5V-Qnbrq1T5.js → diagram-3UASUU5V-i6fBkckD.js} +1 -1
  23. package/dist/assets/{diagram-ATOU4E4O-CNJasPCN.js → diagram-ATOU4E4O-DwedCbB_.js} +1 -1
  24. package/dist/assets/{diagram-CDSNMT55-BAzGZBKX.js → diagram-CDSNMT55-BISF-AQC.js} +1 -1
  25. package/dist/assets/{diagram-MLGK6HIB-I8ACRaw-.js → diagram-MLGK6HIB-ImgdRRxp.js} +1 -1
  26. package/dist/assets/{diagram-MPIPVDR6-nLlrAEPz.js → diagram-MPIPVDR6-CxlAwPCS.js} +1 -1
  27. package/dist/assets/{ebnfDiagram-ZINNZB2B-DF9BG3pH.js → ebnfDiagram-ZINNZB2B-sVJkymKa.js} +1 -1
  28. package/dist/assets/{elk-276RUBZZ-C1AJYKMV.js → elk-276RUBZZ-DU1vyX4w.js} +1 -1
  29. package/dist/assets/{erDiagram-OPXOYQCR-MNNcRrPy.js → erDiagram-OPXOYQCR-CnCmL1Ve.js} +1 -1
  30. package/dist/assets/{flowDiagram-KWPJA3E3-C7mfBfgt.js → flowDiagram-KWPJA3E3-DME2uLJf.js} +1 -1
  31. package/dist/assets/{ganttDiagram-FUAMR5RP-a9zNyDbb.js → ganttDiagram-FUAMR5RP-CJQNW9ts.js} +1 -1
  32. package/dist/assets/{gitGraphDiagram-X574FWY7-OL8NhUsO.js → gitGraphDiagram-X574FWY7-D88_Y9tg.js} +1 -1
  33. package/dist/assets/{index-xypOVpVT.js → index-ChmZZe7i.js} +1 -1
  34. package/dist/assets/{index-DojGBgbN.js → index-U9LN4GhF.js} +140 -140
  35. package/dist/assets/{infoDiagram-VRGFBTTK-CF-3pzUZ.js → infoDiagram-VRGFBTTK-CxWEf3NI.js} +1 -1
  36. package/dist/assets/{ishikawaDiagram-OU5B5YK6-B2HqD-sv.js → ishikawaDiagram-OU5B5YK6-B_YoNVjF.js} +1 -1
  37. package/dist/assets/{journeyDiagram-ZHPQQLJL-84gzOTb9.js → journeyDiagram-ZHPQQLJL-ZYuBE2Bm.js} +1 -1
  38. package/dist/assets/{kanban-definition-PNTS6WVX-D7Ee23QC.js → kanban-definition-PNTS6WVX-jmY_M4Qf.js} +1 -1
  39. package/dist/assets/{linear-CdAXsmfc.js → linear-kKUF6ayN.js} +1 -1
  40. package/dist/assets/{mermaid.core-CE_M1v1e.js → mermaid.core-DC5051S_.js} +5 -5
  41. package/dist/assets/{mindmap-definition-NLK3R4M7-KSTIET9y.js → mindmap-definition-NLK3R4M7-C5knfygJ.js} +1 -1
  42. package/dist/assets/{pegDiagram-GJSIUBJH-C7ogvddb.js → pegDiagram-GJSIUBJH-Ex6iedL2.js} +1 -1
  43. package/dist/assets/{pieDiagram-5QR66LMP-Bp1CgCrM.js → pieDiagram-5QR66LMP-Dv38Ox0D.js} +1 -1
  44. package/dist/assets/{quadrantDiagram-O4NWA36T-Bw7aN9Lh.js → quadrantDiagram-O4NWA36T-CwOEor8N.js} +1 -1
  45. package/dist/assets/{railroadDiagram-XR7U4H2S-Dij4U4NY.js → railroadDiagram-XR7U4H2S-DVgqz5MR.js} +1 -1
  46. package/dist/assets/{requirementDiagram-PLB6GJNP-DOxTQvCl.js → requirementDiagram-PLB6GJNP-BxiuYo52.js} +1 -1
  47. package/dist/assets/{sankeyDiagram-IPEJSGJF-DPCUmNbV.js → sankeyDiagram-IPEJSGJF--vq_1flP.js} +1 -1
  48. package/dist/assets/{sequenceDiagram-PO4LG4MO-DPjC8zGe.js → sequenceDiagram-PO4LG4MO-9hLpfPA6.js} +1 -1
  49. package/dist/assets/{sizeCapture-INFHLROL-WlmsNlh-.js → sizeCapture-INFHLROL-BeGMkj9s.js} +1 -1
  50. package/dist/assets/{stateDiagram-v2-GCMORJYK-BwMPiapI.js → stateDiagram-v2-GCMORJYK-BnNOMugb.js} +1 -1
  51. package/dist/assets/{swimlanes-2SLR337P-Cyja7ZPb.js → swimlanes-2SLR337P-C1YG6Jq-.js} +1 -1
  52. package/dist/assets/swimlanesDiagram-TC7HE7FX-9DghUs7S.js +8 -0
  53. package/dist/assets/{timeline-definition-EJHVYXUP-BehkSauz.js → timeline-definition-EJHVYXUP-Co7OtwGA.js} +1 -1
  54. package/dist/assets/{usecaseDiagram-POWQR4AR-koUjcmpW.js → usecaseDiagram-POWQR4AR-BYHFARv3.js} +1 -1
  55. package/dist/assets/{vennDiagram-UO4OBE2U-Ch8TXIpy.js → vennDiagram-UO4OBE2U-C-sdhL3h.js} +1 -1
  56. package/dist/assets/{wardleyDiagram-VNRHLVJA-Dm5kC4c2.js → wardleyDiagram-VNRHLVJA-wf8ZNrmQ.js} +1 -1
  57. package/dist/assets/{xychartDiagram-PMCCYNJV-YA-1zyQz.js → xychartDiagram-PMCCYNJV-BjRlkVGv.js} +1 -1
  58. package/dist/index.html +1 -1
  59. package/dist-server/companion/src/routes.js +8 -0
  60. package/dist-server/index.js +2139 -1526
  61. package/dist-server/openmausbot.js +63 -0
  62. package/dist-server/pair-cli.js +63 -0
  63. package/dist-server/server/builtin-chibi.js +1 -1
  64. package/dist-server/server/drivers/acp/custom.js +3 -0
  65. package/dist-server/server/engine-tiers-view.js +49 -0
  66. package/dist-server/server/engine-tiers.js +37 -55
  67. package/dist-server/server/harness-import/engine-policy.js +6 -1
  68. package/dist-server/server/index.js +12 -13
  69. package/dist-server/server/personal-bot.js +0 -26
  70. package/dist-server/server/remote-desktop.js +139 -7
  71. package/dist-server/server/routes/engine-tiers.js +12 -1
  72. package/dist-server/server/subscription-bots.js +2 -21
  73. package/dist-server/server/turn-resources.js +28 -0
  74. package/dist-server/server/workspace-backup-archive.js +138 -0
  75. package/dist-server/server/workspace-backup-http.js +50 -8
  76. package/dist-server/server/workspace-backup-private.js +83 -0
  77. package/dist-server/server/workspace-backup-secrets.js +90 -0
  78. package/dist-server/server/workspace-backup.js +171 -235
  79. package/dist-server/server/workspace-restore-paths.js +186 -0
  80. package/dist-server/shared/provider-accounts.js +29 -0
  81. package/package.json +1 -1
  82. package/dist/assets/channel-DEJSSlVQ.js +0 -1
  83. package/dist/assets/swimlanesDiagram-TC7HE7FX-Dh25zxzq.js +0 -8
@@ -0,0 +1,186 @@
1
+ // Moving a workspace to another computer: the person's home folder, user
2
+ // name and data folder can all differ there. Every absolute path the backup
3
+ // recorded is rebased by an explicit old-root prefix, never by free-form text
4
+ // search, and whatever still points nowhere on this computer is reported.
5
+ import { execFileSync } from "node:child_process";
6
+ import { existsSync, lstatSync, readFileSync, readdirSync, renameSync, symlinkSync, writeFileSync } from "node:fs";
7
+ import { dirname, isAbsolute, join, posix, relative, resolve, win32 } from "node:path";
8
+ export function validRelative(path) {
9
+ return !!path && path.length <= 4096 && !isAbsolute(path) && !/[\\\0:]/.test(path) &&
10
+ path.split("/").every((part) => !!part && part !== "." && part !== ".." && !/[. ]$/.test(part) &&
11
+ !/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(part));
12
+ }
13
+ export function absolutePath(value) {
14
+ return posix.isAbsolute(value) || win32.isAbsolute(value);
15
+ }
16
+ /** Pairs for a restore: data folder first, then the home folder, skipping
17
+ * no-op pairs and a source home that is a filesystem root. */
18
+ export function restorePathPairs(source, target) {
19
+ const pairs = [[source.dataDir, target.dataDir]];
20
+ if (source.home && source.home.replaceAll("\\", "/").replace(/\/$/, "").includes("/"))
21
+ pairs.push([source.home, target.home]);
22
+ return pairs.filter(([from, to]) => from !== to);
23
+ }
24
+ export function rebasePath(value, pairs) {
25
+ // Normalize Windows separators without interpreting unrelated external paths.
26
+ const normalized = value.replaceAll("\\", "/");
27
+ for (const [source, destination] of pairs) {
28
+ const original = source.replaceAll("\\", "/").replace(/\/$/, "");
29
+ if (!original || (normalized !== original && !normalized.startsWith(`${original}/`)))
30
+ continue;
31
+ const suffix = normalized.slice(original.length).replace(/^\//, "");
32
+ if (suffix && !validRelative(suffix))
33
+ return value;
34
+ return suffix ? join(destination, suffix) : destination;
35
+ }
36
+ return value;
37
+ }
38
+ const PATH_KEYS = new Set(["cwd", "pinnedCwd", "workspace", "configDir", "profileDirectory", "agentDir", "dataDir", "home", "cli", "path", "filePath", "localPath"]);
39
+ /** Rebase every known path field in place. With `unresolved`, an absolute
40
+ * path that `exists` cannot find after rebasing is collected for the report. */
41
+ export function rebaseFields(value, pairs, unresolved) {
42
+ if (Array.isArray(value)) {
43
+ for (const item of value)
44
+ rebaseFields(item, pairs, unresolved);
45
+ return;
46
+ }
47
+ if (!value || typeof value !== "object")
48
+ return;
49
+ const fields = value;
50
+ for (const [key, item] of Object.entries(fields)) {
51
+ if (PATH_KEYS.has(key) && typeof item === "string") {
52
+ fields[key] = rebasePath(item, pairs);
53
+ const next = fields[key];
54
+ if (unresolved && absolutePath(next) && !unresolved.exists(next))
55
+ unresolved.paths.add(next);
56
+ }
57
+ else if (item && typeof item === "object")
58
+ rebaseFields(item, pairs, unresolved);
59
+ }
60
+ }
61
+ /** Notes, SOUL.md, memory and skills mention folders as `<old home>/...`.
62
+ * Only that exact prefix followed by a separator is rewritten, in one pass so
63
+ * a new root that contains an old one is never rewritten twice. */
64
+ export function rebaseText(text, pairs) {
65
+ const roots = new Map(pairs.map(([from, to]) => [`${from.replace(/[\\/]$/, "")}/`, `${to.replace(/[\\/]$/, "")}/`])
66
+ .filter(([from]) => from.length > 2));
67
+ if (!roots.size)
68
+ return text;
69
+ const pattern = new RegExp([...roots.keys()].sort((a, b) => b.length - a.length).map((root) => root.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|"), "g");
70
+ return text.replace(pattern, (root) => roots.get(root));
71
+ }
72
+ const TEXT_FILE = /\.(?:md|json|toml)$/;
73
+ const MAX_REWRITE_BYTES = 16 * 1024 ** 2;
74
+ /** Rewrite home-relative paths inside a restored copy: text files under the
75
+ * bot, skill and provider folders, and the per-folder project directories
76
+ * Claude Code keeps under a provider home (`.../projects/<encoded path>`).
77
+ * Project code under task workspaces is the person's own and is left alone. */
78
+ export function rebaseTree(root, pairs) {
79
+ const visit = (directory, depth) => {
80
+ for (const name of readdirSync(directory)) {
81
+ const path = join(directory, name);
82
+ const stat = lstatSync(path);
83
+ if (stat.isDirectory()) {
84
+ if (name === "projects" && relative(root, path).startsWith("providers"))
85
+ renameProjectDirs(path, pairs);
86
+ if (depth < 12)
87
+ visit(path, depth + 1);
88
+ }
89
+ else if (stat.isFile() && TEXT_FILE.test(name) && stat.size <= MAX_REWRITE_BYTES) {
90
+ const text = readFileSync(path, "utf8");
91
+ const next = rebaseText(text, pairs);
92
+ if (next !== text)
93
+ writeFileSync(path, next, { mode: stat.mode & 0o777 });
94
+ }
95
+ }
96
+ };
97
+ for (const top of ["workspaces", "skills", "providers"])
98
+ if (existsSync(join(root, top)) && lstatSync(join(root, top)).isDirectory())
99
+ visit(join(root, top), 0);
100
+ }
101
+ function renameProjectDirs(projects, pairs) {
102
+ for (const name of readdirSync(projects)) {
103
+ for (const [from, to] of pairs) {
104
+ const prefix = encodedProjectDir(from.replace(/[\\/]$/, ""));
105
+ if (name !== prefix && !name.startsWith(`${prefix}-`))
106
+ continue;
107
+ const next = encodedProjectDir(to.replace(/[\\/]$/, "")) + name.slice(prefix.length);
108
+ if (!existsSync(join(projects, next)))
109
+ renameSync(join(projects, name), join(projects, next));
110
+ break;
111
+ }
112
+ }
113
+ }
114
+ /** Recreate recorded symbolic links in a restored copy. Absolute targets are
115
+ * rebased; a relative target may not climb out of the data folder. Links
116
+ * whose target is missing here are still made, and reported. */
117
+ export function restoreLinks(root, dataDir, links, pairs, unresolved) {
118
+ const skipped = [];
119
+ for (const link of links) {
120
+ const target = absolutePath(link.target) ? rebasePath(link.target, pairs) : link.target;
121
+ const resolved = absolutePath(target) ? target : resolve(dataDir, dirname(link.path), target);
122
+ const inside = relative(resolve(dataDir), resolved);
123
+ const outside = inside === ".." || inside.startsWith("../") || inside.startsWith("..\\") || isAbsolute(inside);
124
+ if (outside && !absolutePath(target)) {
125
+ skipped.push(link.path);
126
+ continue;
127
+ }
128
+ // ponytail: plain symlinks; Windows directory links need Developer Mode or a junction.
129
+ symlinkSync(target, join(root, link.path));
130
+ if (!existsSync(outside ? resolved : join(root, inside)))
131
+ unresolved.add(resolved);
132
+ }
133
+ return skipped;
134
+ }
135
+ /** The origin a clean, fully pushed checkout can be cloned from again, or
136
+ * null when anything in it exists only here (changes, unpushed commits, a
137
+ * branch without upstream, stashes) and it must travel in the backup. */
138
+ export function reclonableCheckout(directory) {
139
+ const remote = checkoutRemote(directory);
140
+ if (!remote)
141
+ return null;
142
+ try {
143
+ const git = (...args) => execFileSync("git", ["-C", directory, ...args], { encoding: "utf8", timeout: 30_000, stdio: ["ignore", "pipe", "ignore"] });
144
+ const lines = git("status", "--porcelain=v1", "--branch").trimEnd().split("\n");
145
+ if (lines.length !== 1 || !/^## \S+\.\.\.\S+(?: \[behind \d+\])?$/.test(lines[0]))
146
+ return null;
147
+ return git("stash", "list").trim() ? null : remote;
148
+ }
149
+ catch {
150
+ return null;
151
+ }
152
+ }
153
+ /** Claude Code names its per-folder project directories after the folder
154
+ * path with every non-alphanumeric character turned into "-". */
155
+ export function encodedProjectDir(path) {
156
+ return path.replace(/[^A-Za-z0-9]/g, "-");
157
+ }
158
+ /** The origin a project checkout can be cloned from again, or null when it
159
+ * has none and so must travel inside the backup. Worktrees keep `.git` as a
160
+ * file naming their real git folder; its `commondir` holds the config. */
161
+ export function checkoutRemote(directory) {
162
+ try {
163
+ let gitDir = join(directory, ".git");
164
+ if (!readdirSync(directory).includes(".git"))
165
+ return null;
166
+ try {
167
+ readdirSync(gitDir);
168
+ }
169
+ catch {
170
+ const pointer = /^gitdir:\s*(.+)$/m.exec(readFileSync(gitDir, "utf8"))?.[1]?.trim();
171
+ if (!pointer)
172
+ return null;
173
+ gitDir = isAbsolute(pointer) ? pointer : join(directory, pointer);
174
+ const common = join(gitDir, "commondir");
175
+ if (existsSync(common)) {
176
+ const shared = readFileSync(common, "utf8").trim();
177
+ gitDir = isAbsolute(shared) ? shared : join(gitDir, shared);
178
+ }
179
+ }
180
+ const config = readFileSync(join(gitDir, "config"), "utf8");
181
+ return /\[remote "origin"\][^[]*?\burl\s*=\s*(\S+)/.exec(config)?.[1] ?? null;
182
+ }
183
+ catch {
184
+ return null;
185
+ }
186
+ }
@@ -63,6 +63,35 @@ export const ACCOUNT_PROVIDERS = [
63
63
  id: "opencodeGo", kind: "apiKey", label: "OpenCode Go", billing: "subscription", driver: "opencodeGo", envVar: "OPENCODE_API_KEY",
64
64
  config: {}, keyUrl: "https://opencode.ai/go", signupUrl: "https://opencode.ai/go",
65
65
  },
66
+ // Permanent free tiers (docs/specs/free-models-in-auto): the last resort
67
+ // when every subscription and pay-per-use key is out (Erick's rule, a
68
+ // model or billing error never stops the user). Off by default
69
+ // (engineTiers.includeFree); never used for client-facing bots.
70
+ {
71
+ id: "openrouterFree", kind: "apiKey", label: "OpenRouter (free models)", billing: "free", driver: "openai-compat", envVar: "OPENROUTER_FREE_API_KEY", icon: "openrouter",
72
+ config: { url: "https://openrouter.ai/api/v1", apiKeyEnv: "OPENROUTER_FREE_API_KEY", model: "", provider: "" },
73
+ keyTest: { provider: "openaiCompat", url: "https://openrouter.ai/api/v1" }, keyUrl: "https://openrouter.ai/keys", signupUrl: "https://openrouter.ai/models?max_price=0",
74
+ },
75
+ {
76
+ id: "googleAiStudioFree", kind: "apiKey", label: "Google AI Studio (free tier)", billing: "free", driver: "openai-compat", envVar: "GOOGLE_AI_STUDIO_FREE_API_KEY", icon: "google",
77
+ config: { url: "https://generativelanguage.googleapis.com/v1beta/openai", apiKeyEnv: "GOOGLE_AI_STUDIO_FREE_API_KEY", model: "", provider: "" },
78
+ keyTest: { provider: "openaiCompat", url: "https://generativelanguage.googleapis.com/v1beta/openai" }, keyUrl: "https://aistudio.google.com/apikey",
79
+ },
80
+ {
81
+ id: "groqFree", kind: "apiKey", label: "Groq (free tier)", billing: "free", driver: "openai-compat", envVar: "GROQ_FREE_API_KEY",
82
+ config: { url: "https://api.groq.com/openai/v1", apiKeyEnv: "GROQ_FREE_API_KEY", model: "", provider: "" },
83
+ keyTest: { provider: "openaiCompat", url: "https://api.groq.com/openai/v1" }, keyUrl: "https://console.groq.com/keys",
84
+ },
85
+ {
86
+ id: "cerebrasFree", kind: "apiKey", label: "Cerebras (free tier)", billing: "free", driver: "openai-compat", envVar: "CEREBRAS_FREE_API_KEY",
87
+ config: { url: "https://api.cerebras.ai/v1", apiKeyEnv: "CEREBRAS_FREE_API_KEY", model: "", provider: "" },
88
+ keyTest: { provider: "openaiCompat", url: "https://api.cerebras.ai/v1" }, keyUrl: "https://cloud.cerebras.ai/platform/apikeys",
89
+ },
90
+ {
91
+ id: "nvidiaFree", kind: "apiKey", label: "NVIDIA NIM (free tier)", billing: "free", driver: "openai-compat", envVar: "NVIDIA_FREE_API_KEY",
92
+ config: { url: "https://integrate.api.nvidia.com/v1", apiKeyEnv: "NVIDIA_FREE_API_KEY", model: "", provider: "" },
93
+ keyTest: { provider: "openaiCompat", url: "https://integrate.api.nvidia.com/v1" }, keyUrl: "https://build.nvidia.com/settings/api-keys",
94
+ },
66
95
  ];
67
96
  export function accountProvider(id) {
68
97
  return ACCOUNT_PROVIDERS.find((provider) => provider.id === id);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chibitek/chibi",
3
- "version": "0.1.171",
3
+ "version": "0.1.173",
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-CE_M1v1e.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1,8 +0,0 @@
1
- import{c as r,s as e}from"./flowDiagram-KWPJA3E3-C7mfBfgt.js";import{_ as a}from"./mermaid.core-CE_M1v1e.js";import"./chunk-5VM5RSS4-CUyMXCSt.js";import"./chunk-XXDRQBXY-BavbGHGi.js";import"./chunk-WEXAMYUT-fupByVJn.js";import"./chunk-GWA4HPMP-DQ0bZK59.js";import"./channel-DEJSSlVQ.js";import"./index-DojGBgbN.js";var o=a(t=>`${e(t)}
2
- .swimlane.cluster:not([data-color-id]) rect {
3
- stroke: ${t.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,"getStyles"),s=o,u=r({styles:s});export{u as diagram};