cohvu 2.17.0 → 2.19.0
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/auth.js +9 -0
- package/dist/auth.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.js +59 -19
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +6 -0
- package/dist/log.js +51 -0
- package/dist/log.js.map +1 -0
- package/dist/platforms.d.ts +1 -0
- package/dist/platforms.js +5 -0
- package/dist/platforms.js.map +1 -1
- package/dist/postinstall.js +1 -1
- package/dist/postinstall.js.map +1 -1
- package/dist/proxy.js +263 -98
- package/dist/proxy.js.map +1 -1
- package/dist/setup.js +42 -28
- package/dist/setup.js.map +1 -1
- package/dist/teardown.js +26 -0
- package/dist/teardown.js.map +1 -1
- package/dist/tui/tabs/KnowledgeTab.js +10 -0
- package/dist/tui/tabs/KnowledgeTab.js.map +1 -1
- package/dist/tui/tabs/ProjectTab.js +4 -1
- package/dist/tui/tabs/ProjectTab.js.map +1 -1
- package/dist/tui/tabs/YouTab.js +2 -2
- package/dist/tui/tabs/YouTab.js.map +1 -1
- package/package.json +1 -1
package/dist/auth.js
CHANGED
|
@@ -57,6 +57,12 @@ export async function deviceAuthFlow(baseUrl) {
|
|
|
57
57
|
console.log('');
|
|
58
58
|
openBrowser(deviceData.verification_url);
|
|
59
59
|
const spinner = ora({ text: 'waiting for sign in', indent: 2 }).start();
|
|
60
|
+
// If the browser didn't open (missing xdg-open, SSH session, etc.) the
|
|
61
|
+
// printed URL may have scrolled past. After ~10 seconds without
|
|
62
|
+
// resolution, surface it on the spinner itself.
|
|
63
|
+
const hintTimer = setTimeout(() => {
|
|
64
|
+
spinner.text = 'sign in at ' + deviceData.verification_url;
|
|
65
|
+
}, 10_000);
|
|
60
66
|
// Poll for API key
|
|
61
67
|
const deadline = Date.now() + deviceData.expires_in * 1000;
|
|
62
68
|
while (Date.now() < deadline) {
|
|
@@ -71,6 +77,7 @@ export async function deviceAuthFlow(baseUrl) {
|
|
|
71
77
|
if (body.error === "authorization_pending")
|
|
72
78
|
continue;
|
|
73
79
|
if (body.error === "expired_token") {
|
|
80
|
+
clearTimeout(hintTimer);
|
|
74
81
|
spinner.fail('sign in expired');
|
|
75
82
|
throw new Error("Device code expired");
|
|
76
83
|
}
|
|
@@ -78,9 +85,11 @@ export async function deviceAuthFlow(baseUrl) {
|
|
|
78
85
|
}
|
|
79
86
|
const data = (await tokenRes.json());
|
|
80
87
|
storeApiKey(data.api_key);
|
|
88
|
+
clearTimeout(hintTimer);
|
|
81
89
|
spinner.succeed('signed in');
|
|
82
90
|
return data.api_key;
|
|
83
91
|
}
|
|
92
|
+
clearTimeout(hintTimer);
|
|
84
93
|
spinner.fail('sign in timed out');
|
|
85
94
|
throw new Error("Device auth timed out");
|
|
86
95
|
}
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
package/dist/constants.js
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
import { readFileSync } from "fs";
|
|
2
|
+
import { dirname, join } from "path";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
1
4
|
export const DEFAULT_BASE_URL = "https://api.cohvu.com";
|
|
5
|
+
// CLI_VERSION pulled from the published package.json at module load — the
|
|
6
|
+
// dist is always shipped alongside its package.json, so the resolve path
|
|
7
|
+
// is stable. Prefer this over a hand-edited constant because it can't drift.
|
|
8
|
+
const pkgPath = join(dirname(fileURLToPath(import.meta.url)), "..", "package.json");
|
|
9
|
+
export const CLI_VERSION = JSON.parse(readFileSync(pkgPath, "utf-8")).version;
|
|
2
10
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AAExD,0EAA0E;AAC1E,yEAAyE;AACzE,6EAA6E;AAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,WAAW,GAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAC,OAAO,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -67,9 +67,13 @@ else if (subcommand === "disconnect") {
|
|
|
67
67
|
console.log(chalk.dim(" disconnected — run cohvu to reconnect"));
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
-
else if (subcommand
|
|
70
|
+
else if (subcommand === "--help" || subcommand === "-h" || subcommand === "help") {
|
|
71
|
+
printHelp();
|
|
72
|
+
}
|
|
73
|
+
else if (subcommand) {
|
|
71
74
|
console.log(chalk.dim(` unknown command: ${subcommand}`));
|
|
72
|
-
console.log(
|
|
75
|
+
console.log('');
|
|
76
|
+
printHelp();
|
|
73
77
|
process.exit(1);
|
|
74
78
|
}
|
|
75
79
|
else if (!process.stdin.isTTY) {
|
|
@@ -87,6 +91,35 @@ else {
|
|
|
87
91
|
// ---------------------------------------------------------------------------
|
|
88
92
|
// Helpers
|
|
89
93
|
// ---------------------------------------------------------------------------
|
|
94
|
+
// Surface setup outcomes. A platform shows when a step was newly written;
|
|
95
|
+
// stays silent when everything was already in place; surfaces its error
|
|
96
|
+
// when something failed. No fallback "all set" line — silence on no-ops
|
|
97
|
+
// is the cleaner signal.
|
|
98
|
+
function reportSetup(result, _opts) {
|
|
99
|
+
const platforms = result.platforms;
|
|
100
|
+
for (const p of platforms) {
|
|
101
|
+
const steps = [p.mcp, p.instructions, p.permissions].filter((s) => s !== null);
|
|
102
|
+
const newlyWrote = steps.some((s) => s === 'ok');
|
|
103
|
+
const failed = steps.find((s) => s !== 'ok' && s !== 'skipped');
|
|
104
|
+
if (failed && typeof failed === 'object' && 'failed' in failed) {
|
|
105
|
+
console.log(chalk.dim(' ') + chalk.red('\u2717') + chalk.dim(' ' + p.name + ' \u2014 ' + failed.failed));
|
|
106
|
+
}
|
|
107
|
+
else if (newlyWrote) {
|
|
108
|
+
console.log(chalk.dim(' ') + chalk.green('\u2713') + chalk.dim(' connected to ' + p.name));
|
|
109
|
+
}
|
|
110
|
+
// All "skipped" → already connected, stay silent.
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function printHelp() {
|
|
114
|
+
console.log('');
|
|
115
|
+
console.log(chalk.dim(' cohvu ') + 'open the dashboard (or act as MCP proxy when piped)');
|
|
116
|
+
console.log(chalk.dim(' cohvu status ') + 'show sign-in, active project, connectivity');
|
|
117
|
+
console.log(chalk.dim(' cohvu pause ') + "pause cohvu — agents won't see tools until resumed");
|
|
118
|
+
console.log(chalk.dim(' cohvu resume ') + 'resume');
|
|
119
|
+
console.log(chalk.dim(' cohvu update ') + 'update to the latest version');
|
|
120
|
+
console.log(chalk.dim(' cohvu disconnect ') + 'remove cohvu from editors and sign out');
|
|
121
|
+
console.log('');
|
|
122
|
+
}
|
|
90
123
|
function prompt(question) {
|
|
91
124
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
92
125
|
return new Promise((resolve) => {
|
|
@@ -147,25 +180,29 @@ async function enterDashboard() {
|
|
|
147
180
|
const api = new ApiClient(baseUrl);
|
|
148
181
|
const me = await api.me();
|
|
149
182
|
const setupSpinner = ora({ text: 'setting up your tools', indent: 2 }).start();
|
|
150
|
-
await runSetup();
|
|
151
|
-
setupSpinner.
|
|
183
|
+
const setupResult = await runSetup();
|
|
184
|
+
setupSpinner.stop();
|
|
185
|
+
reportSetup(setupResult, { firstRun: true });
|
|
152
186
|
const hasProjects = me.personal_projects.length > 0 ||
|
|
153
187
|
me.teams.some(t => t.projects.length > 0);
|
|
188
|
+
// Empty input skips and lands the user in the dashboard with no active
|
|
189
|
+
// project. The Knowledge tab renders a "create your first project" card
|
|
190
|
+
// in that state so the decision gets made from inside the dashboard
|
|
191
|
+
// where they can see what they're naming.
|
|
154
192
|
if (!hasProjects) {
|
|
155
193
|
console.log('');
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
console.log(chalk.dim(" couldn't create project \u2014 try again from the dashboard"));
|
|
194
|
+
console.log(chalk.dim(' name a project, or press enter to skip.'));
|
|
195
|
+
console.log('');
|
|
196
|
+
const name = (await prompt(' \u203a ')).trim();
|
|
197
|
+
if (name) {
|
|
198
|
+
const slug = deriveSlug(name);
|
|
199
|
+
try {
|
|
200
|
+
await api.createProject(name, slug, me.user.id);
|
|
201
|
+
console.log(chalk.dim(' created ' + slug));
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
console.log(chalk.dim(" couldn't create \u2014 try again from the dashboard"));
|
|
205
|
+
}
|
|
169
206
|
}
|
|
170
207
|
console.log('');
|
|
171
208
|
}
|
|
@@ -195,8 +232,11 @@ async function enterDashboard() {
|
|
|
195
232
|
// Network error — proceed anyway, TUI will handle offline state
|
|
196
233
|
}
|
|
197
234
|
}
|
|
198
|
-
// Ensure any new platforms are configured (idempotent — skips existing)
|
|
199
|
-
|
|
235
|
+
// Ensure any new platforms are configured (idempotent — skips existing).
|
|
236
|
+
// Report only when something actually changed or failed on returning
|
|
237
|
+
// launches; the normal no-op case stays silent.
|
|
238
|
+
const setupResult = await runSetup();
|
|
239
|
+
reportSetup(setupResult, { firstRun: false });
|
|
200
240
|
}
|
|
201
241
|
const openSpinner = ora({ text: 'opening cohvu', indent: 2 }).start();
|
|
202
242
|
await new Promise((r) => setTimeout(r, needsAuth ? 500 : 200));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,YAAY;AACZ,EAAE;AACF,0EAA0E;AAC1E,8DAA8D;AAC9D,sCAAsC;AACtC,kEAAkE;AAClE,sDAAsD;AACtD,mEAAmE;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const log: {
|
|
2
|
+
error: (event: string, data?: Record<string, unknown>) => void;
|
|
3
|
+
warn: (event: string, data?: Record<string, unknown>) => void;
|
|
4
|
+
info: (event: string, data?: Record<string, unknown>) => void;
|
|
5
|
+
debug: (event: string, data?: Record<string, unknown>) => void;
|
|
6
|
+
};
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Structured logging for the MCP proxy. Writes JSON lines to stderr so the
|
|
2
|
+
// editor's MCP log panel can surface them for debugging. Stdout is reserved
|
|
3
|
+
// for the MCP protocol — never write non-protocol bytes there.
|
|
4
|
+
//
|
|
5
|
+
// Levels:
|
|
6
|
+
// error — failures that surface to the agent
|
|
7
|
+
// warn — degraded state (manifest fetch retrying, etc.)
|
|
8
|
+
// info — lifecycle events (proxy start, paused, signed-out)
|
|
9
|
+
// debug — per-request detail (tool calls, manifest refreshes)
|
|
10
|
+
//
|
|
11
|
+
// Default level is `info`. Developers who want per-request traces set
|
|
12
|
+
// `COHVU_LOG=debug`. Setting `COHVU_LOG=error` silences lifecycle noise.
|
|
13
|
+
const LEVEL_ORDER = {
|
|
14
|
+
error: 0,
|
|
15
|
+
warn: 1,
|
|
16
|
+
info: 2,
|
|
17
|
+
debug: 3,
|
|
18
|
+
};
|
|
19
|
+
function resolveLevel() {
|
|
20
|
+
const raw = (process.env.COHVU_LOG ?? "info").toLowerCase();
|
|
21
|
+
if (raw === "error" || raw === "warn" || raw === "info" || raw === "debug")
|
|
22
|
+
return raw;
|
|
23
|
+
return "info";
|
|
24
|
+
}
|
|
25
|
+
const ACTIVE_LEVEL = resolveLevel();
|
|
26
|
+
function shouldLog(level) {
|
|
27
|
+
return LEVEL_ORDER[level] <= LEVEL_ORDER[ACTIVE_LEVEL];
|
|
28
|
+
}
|
|
29
|
+
function emit(level, event, data) {
|
|
30
|
+
if (!shouldLog(level))
|
|
31
|
+
return;
|
|
32
|
+
const entry = {
|
|
33
|
+
ts: new Date().toISOString(),
|
|
34
|
+
level,
|
|
35
|
+
event,
|
|
36
|
+
...data,
|
|
37
|
+
};
|
|
38
|
+
try {
|
|
39
|
+
process.stderr.write(JSON.stringify(entry) + "\n");
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// stderr closed — nothing we can do; the editor process handles lifecycle.
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export const log = {
|
|
46
|
+
error: (event, data = {}) => emit("error", event, data),
|
|
47
|
+
warn: (event, data = {}) => emit("warn", event, data),
|
|
48
|
+
info: (event, data = {}) => emit("info", event, data),
|
|
49
|
+
debug: (event, data = {}) => emit("debug", event, data),
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,+DAA+D;AAC/D,EAAE;AACF,UAAU;AACV,gDAAgD;AAChD,4DAA4D;AAC5D,gEAAgE;AAChE,iEAAiE;AACjE,EAAE;AACF,sEAAsE;AACtE,yEAAyE;AAIzE,MAAM,WAAW,GAA0B;IACzC,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC;IACvF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC;AAEpC,SAAS,SAAS,CAAC,KAAY;IAC7B,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,IAAI,CAAC,KAAY,EAAE,KAAa,EAAE,IAA6B;IACtE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO;IAC9B,MAAM,KAAK,GAAG;QACZ,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,KAAK;QACL,KAAK;QACL,GAAG,IAAI;KACR,CAAC;IACF,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,CAAC,KAAa,EAAE,OAAgC,EAAE,EAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;IAC9F,IAAI,EAAE,CAAC,KAAa,EAAE,OAAgC,EAAE,EAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5F,IAAI,EAAE,CAAC,KAAa,EAAE,OAAgC,EAAE,EAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5F,KAAK,EAAE,CAAC,KAAa,EAAE,OAAgC,EAAE,EAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;CAC/F,CAAC"}
|
package/dist/platforms.d.ts
CHANGED
package/dist/platforms.js
CHANGED
|
@@ -13,6 +13,7 @@ const PLATFORMS = [
|
|
|
13
13
|
{
|
|
14
14
|
name: "Claude Code",
|
|
15
15
|
detectPath: ".claude",
|
|
16
|
+
agentSlug: "claude-code",
|
|
16
17
|
mcp: { path: ".claude.json", rootKey: "mcpServers", format: "json" },
|
|
17
18
|
instructions: { path: join(".claude", "CLAUDE.md"), format: "markdown" },
|
|
18
19
|
permissions: {
|
|
@@ -23,6 +24,7 @@ const PLATFORMS = [
|
|
|
23
24
|
{
|
|
24
25
|
name: "Cursor",
|
|
25
26
|
detectPath: ".cursor",
|
|
27
|
+
agentSlug: "cursor",
|
|
26
28
|
mcp: { path: join(".cursor", "mcp.json"), rootKey: "mcpServers", format: "json" },
|
|
27
29
|
instructions: { path: join(".cursor", "rules", "cohvu.mdc"), format: "mdc" },
|
|
28
30
|
permissions: null,
|
|
@@ -30,6 +32,7 @@ const PLATFORMS = [
|
|
|
30
32
|
{
|
|
31
33
|
name: "Windsurf",
|
|
32
34
|
detectPath: join(".codeium", "windsurf"),
|
|
35
|
+
agentSlug: "windsurf",
|
|
33
36
|
mcp: {
|
|
34
37
|
path: join(".codeium", "windsurf", "mcp_config.json"),
|
|
35
38
|
rootKey: "mcpServers",
|
|
@@ -44,6 +47,7 @@ const PLATFORMS = [
|
|
|
44
47
|
{
|
|
45
48
|
name: "Cline",
|
|
46
49
|
detectPath: join(vscodeUserDir(), "globalStorage", "saoudrizwan.claude-dev"),
|
|
50
|
+
agentSlug: "cline",
|
|
47
51
|
mcp: {
|
|
48
52
|
path: join(vscodeUserDir(), "globalStorage", "saoudrizwan.claude-dev", "settings", "cline_mcp_settings.json"),
|
|
49
53
|
rootKey: "mcpServers",
|
|
@@ -55,6 +59,7 @@ const PLATFORMS = [
|
|
|
55
59
|
{
|
|
56
60
|
name: "Codex",
|
|
57
61
|
detectPath: ".codex",
|
|
62
|
+
agentSlug: "codex",
|
|
58
63
|
mcp: { path: join(".codex", "config.toml"), rootKey: "mcp_servers", format: "toml" },
|
|
59
64
|
instructions: { path: join(".codex", "AGENTS.md"), format: "markdown" },
|
|
60
65
|
permissions: null,
|
package/dist/platforms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../src/platforms.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../src/platforms.ts"],"names":[],"mappings":"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"}
|
package/dist/postinstall.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { openSync, writeSync, closeSync } from "fs";
|
|
3
3
|
try {
|
|
4
4
|
const fd = openSync("/dev/tty", "w");
|
|
5
|
-
writeSync(fd, "\n
|
|
5
|
+
writeSync(fd, "\n installed. run \x1b[1mcohvu\x1b[0m.\n\n");
|
|
6
6
|
closeSync(fd);
|
|
7
7
|
}
|
|
8
8
|
catch {
|
package/dist/postinstall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpD,IAAI,CAAC;IACH,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEpD,IAAI,CAAC;IACH,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,EAAE,6CAA6C,CAAC,CAAC;IAC7D,SAAS,CAAC,EAAE,CAAC,CAAC;AAChB,CAAC;AAAC,MAAM,CAAC;IACP,wCAAwC;AAC1C,CAAC"}
|