@wirecat/bitrix24-cli 0.0.0-stage → 0.2.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/CHANGELOG.md +41 -0
- package/LICENSE +204 -0
- package/README.md +17 -2
- package/dist/api-keys.d.ts +21 -0
- package/dist/api-keys.d.ts.map +1 -0
- package/dist/api-keys.js +58 -0
- package/dist/api-keys.js.map +1 -0
- package/dist/bin/b24.d.ts +3 -0
- package/dist/bin/b24.d.ts.map +1 -0
- package/dist/bin/b24.js +40 -0
- package/dist/bin/b24.js.map +1 -0
- package/dist/bitrix/errors.d.ts +22 -0
- package/dist/bitrix/errors.d.ts.map +1 -0
- package/dist/bitrix/errors.js +76 -0
- package/dist/bitrix/errors.js.map +1 -0
- package/dist/bitrix/methods.d.ts +13 -0
- package/dist/bitrix/methods.d.ts.map +1 -0
- package/dist/bitrix/methods.js +33 -0
- package/dist/bitrix/methods.js.map +1 -0
- package/dist/bitrix/transport.d.ts +50 -0
- package/dist/bitrix/transport.d.ts.map +1 -0
- package/dist/bitrix/transport.js +189 -0
- package/dist/bitrix/transport.js.map +1 -0
- package/dist/bitrix/webhook.d.ts +14 -0
- package/dist/bitrix/webhook.d.ts.map +1 -0
- package/dist/bitrix/webhook.js +29 -0
- package/dist/bitrix/webhook.js.map +1 -0
- package/dist/bundle/all-profiles-QJ444GSX.js +24 -0
- package/dist/bundle/anthropic-RHRAVHC2.js +70 -0
- package/dist/bundle/app-server-QIT6S7AZ.js +224 -0
- package/dist/bundle/b24.js +32 -0
- package/dist/bundle/bun-H6RSODZ3.js +169 -0
- package/dist/bundle/bun-sqlite-BO4LTQHX.js +69 -0
- package/dist/bundle/chunk-2KCZ7BKW.js +215 -0
- package/dist/bundle/chunk-2SNUMZ7S.js +1028 -0
- package/dist/bundle/chunk-45AKJVKV.js +24 -0
- package/dist/bundle/chunk-4PDYYS5K.js +2 -0
- package/dist/bundle/chunk-5D4AEUVA.js +24783 -0
- package/dist/bundle/chunk-6WY72XVQ.js +216 -0
- package/dist/bundle/chunk-7GRZAKBB.js +639 -0
- package/dist/bundle/chunk-ADLS6FVG.js +24600 -0
- package/dist/bundle/chunk-BCF7P4FZ.js +558 -0
- package/dist/bundle/chunk-CNNEA2M4.js +54 -0
- package/dist/bundle/chunk-CXL33BFL.js +570 -0
- package/dist/bundle/chunk-D5S6QV6R.js +95 -0
- package/dist/bundle/chunk-DFDN6AUB.js +21 -0
- package/dist/bundle/chunk-DTXERR44.js +35 -0
- package/dist/bundle/chunk-EVYSBZ3I.js +153 -0
- package/dist/bundle/chunk-EXOOKUEA.js +82 -0
- package/dist/bundle/chunk-FLUEXJ4X.js +53 -0
- package/dist/bundle/chunk-FOTREPNS.js +366 -0
- package/dist/bundle/chunk-FZL7F5NR.js +2022 -0
- package/dist/bundle/chunk-GDFNH33E.js +1691 -0
- package/dist/bundle/chunk-H2ADPPSH.js +50910 -0
- package/dist/bundle/chunk-HAXNUIGQ.js +1245 -0
- package/dist/bundle/chunk-HGL63O5V.js +288 -0
- package/dist/bundle/chunk-INFYLWUA.js +929 -0
- package/dist/bundle/chunk-IRV2PCQ2.js +5213 -0
- package/dist/bundle/chunk-K3UIB6ZF.js +45 -0
- package/dist/bundle/chunk-LRGYKOCP.js +91 -0
- package/dist/bundle/chunk-LSPIOT6Z.js +459 -0
- package/dist/bundle/chunk-MBDK4YXG.js +34 -0
- package/dist/bundle/chunk-N6FLBXZS.js +73 -0
- package/dist/bundle/chunk-OTD2ZRXD.js +161 -0
- package/dist/bundle/chunk-P33NDCDI.js +78 -0
- package/dist/bundle/chunk-P364PLIK.js +257 -0
- package/dist/bundle/chunk-PH5FZX6E.js +193 -0
- package/dist/bundle/chunk-POC3V3AO.js +36616 -0
- package/dist/bundle/chunk-QC53QBNC.js +143 -0
- package/dist/bundle/chunk-QGMDQ2PM.js +122 -0
- package/dist/bundle/chunk-QIPTIUMJ.js +281 -0
- package/dist/bundle/chunk-QMPN6WKD.js +3512 -0
- package/dist/bundle/chunk-QQXH2OPB.js +594 -0
- package/dist/bundle/chunk-QSNROIJL.js +413 -0
- package/dist/bundle/chunk-RRJNNPR4.js +76 -0
- package/dist/bundle/chunk-SFRNX2TI.js +6848 -0
- package/dist/bundle/chunk-SGRYYE4X.js +266 -0
- package/dist/bundle/chunk-TE3FR6MI.js +884 -0
- package/dist/bundle/chunk-U5ACMCAQ.js +12049 -0
- package/dist/bundle/chunk-VEWWAGTD.js +2315 -0
- package/dist/bundle/chunk-VL6SPMZV.js +194 -0
- package/dist/bundle/chunk-WII44RXN.js +58 -0
- package/dist/bundle/chunk-WKRQ44EH.js +528 -0
- package/dist/bundle/chunk-WTPMJYMD.js +8308 -0
- package/dist/bundle/chunk-XD4FRDSL.js +565 -0
- package/dist/bundle/chunk-XJXONOB5.js +63 -0
- package/dist/bundle/chunk-XNHSPHUN.js +48 -0
- package/dist/bundle/chunk-XRFJWHY5.js +131 -0
- package/dist/bundle/chunk-Y5E2WNWB.js +35 -0
- package/dist/bundle/chunk-YYO7D2MO.js +783 -0
- package/dist/bundle/chunk-YZ5LHE5Q.js +31 -0
- package/dist/bundle/chunk-ZDQQCXFG.js +392 -0
- package/dist/bundle/chunk-ZEW4P6AH.js +158 -0
- package/dist/bundle/chunk-ZGZT5S6B.js +3480 -0
- package/dist/bundle/chunk-ZIAQPTUS.js +82 -0
- package/dist/bundle/chunk-ZVVMGPBJ.js +50 -0
- package/dist/bundle/command-contract-OKQOE6G4.js +30 -0
- package/dist/bundle/decode-5ZPLTYV6.js +160 -0
- package/dist/bundle/dist-6Y64DTOE.js +7577 -0
- package/dist/bundle/echarts-J6LAPIX7.js +42501 -0
- package/dist/bundle/embed-YG5LDHME.js +35 -0
- package/dist/bundle/embedder-7FNUA5OZ.js +108 -0
- package/dist/bundle/first-run-JPZNWIJN.js +23 -0
- package/dist/bundle/first-screen-VQM4MTS7.js +28 -0
- package/dist/bundle/instructions-AXWTQHMR.js +11 -0
- package/dist/bundle/mcp-7F46P6AM.js +165 -0
- package/dist/bundle/mcp-HUD6UH5X.js +160 -0
- package/dist/bundle/mcp-J5R5A65I.js +87 -0
- package/dist/bundle/node-CWKAIOEM.js +176 -0
- package/dist/bundle/node-P4E63KXA.js +2340 -0
- package/dist/bundle/node-TLZSIHIJ.js +21 -0
- package/dist/bundle/node-sqlite-LSEKVRDA.js +67 -0
- package/dist/bundle/oauth-THYNLRLD.js +17 -0
- package/dist/bundle/open-E47QYKFC.js +20 -0
- package/dist/bundle/openai-EWSGC3BC.js +227 -0
- package/dist/bundle/process-WKTEA3WE.js +91 -0
- package/dist/bundle/program-UYX5362I.js +20851 -0
- package/dist/bundle/prompt-CAQ7QR3U.js +12 -0
- package/dist/bundle/recognize-6KGHNZC3.js +23 -0
- package/dist/bundle/remote-3UO2WDC3.js +26 -0
- package/dist/bundle/rerank-2JVDPZBX.js +49 -0
- package/dist/bundle/serve-ES7AG5IK.js +19 -0
- package/dist/bundle/server-5LE5LNUQ.js +45 -0
- package/dist/bundle/server-BU4VBM6S.js +58 -0
- package/dist/bundle/state-7NH5G4XJ.js +33 -0
- package/dist/bundle/store-7O4JQD2Z.js +127 -0
- package/dist/bundle/store-maintenance-command-UDVGEY2D.js +47 -0
- package/dist/commands/api.d.ts +3 -0
- package/dist/commands/api.d.ts.map +1 -0
- package/dist/commands/api.js +131 -0
- package/dist/commands/api.js.map +1 -0
- package/dist/commands/crm-writes.d.ts +4 -0
- package/dist/commands/crm-writes.d.ts.map +1 -0
- package/dist/commands/crm-writes.js +182 -0
- package/dist/commands/crm-writes.js.map +1 -0
- package/dist/commands/crm.d.ts +3 -0
- package/dist/commands/crm.d.ts.map +1 -0
- package/dist/commands/crm.js +144 -0
- package/dist/commands/crm.js.map +1 -0
- package/dist/commands/doctor.d.ts +77 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +74 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +97 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +101 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/write.d.ts +21 -0
- package/dist/commands/write.d.ts.map +1 -0
- package/dist/commands/write.js +47 -0
- package/dist/commands/write.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -0
- package/dist/crm/conditions.d.ts +25 -0
- package/dist/crm/conditions.d.ts.map +1 -0
- package/dist/crm/conditions.js +78 -0
- package/dist/crm/conditions.js.map +1 -0
- package/dist/crm/deal.d.ts +27 -0
- package/dist/crm/deal.d.ts.map +1 -0
- package/dist/crm/deal.js +74 -0
- package/dist/crm/deal.js.map +1 -0
- package/dist/crm/items.d.ts +30 -0
- package/dist/crm/items.d.ts.map +1 -0
- package/dist/crm/items.js +76 -0
- package/dist/crm/items.js.map +1 -0
- package/dist/crm/lead.d.ts +36 -0
- package/dist/crm/lead.d.ts.map +1 -0
- package/dist/crm/lead.js +85 -0
- package/dist/crm/lead.js.map +1 -0
- package/dist/crm/organization.d.ts +32 -0
- package/dist/crm/organization.d.ts.map +1 -0
- package/dist/crm/organization.js +67 -0
- package/dist/crm/organization.js.map +1 -0
- package/dist/crm/person.d.ts +31 -0
- package/dist/crm/person.d.ts.map +1 -0
- package/dist/crm/person.js +67 -0
- package/dist/crm/person.js.map +1 -0
- package/dist/crm/pipeline.d.ts +17 -0
- package/dist/crm/pipeline.d.ts.map +1 -0
- package/dist/crm/pipeline.js +42 -0
- package/dist/crm/pipeline.js.map +1 -0
- package/dist/crm/product.d.ts +43 -0
- package/dist/crm/product.d.ts.map +1 -0
- package/dist/crm/product.js +42 -0
- package/dist/crm/product.js.map +1 -0
- package/dist/crm/stage.d.ts +20 -0
- package/dist/crm/stage.d.ts.map +1 -0
- package/dist/crm/stage.js +65 -0
- package/dist/crm/stage.js.map +1 -0
- package/dist/crm/user.d.ts +39 -0
- package/dist/crm/user.d.ts.map +1 -0
- package/dist/crm/user.js +54 -0
- package/dist/crm/user.js.map +1 -0
- package/dist/crm/values.d.ts +33 -0
- package/dist/crm/values.d.ts.map +1 -0
- package/dist/crm/values.js +54 -0
- package/dist/crm/values.js.map +1 -0
- package/dist/crm/walk.d.ts +19 -0
- package/dist/crm/walk.d.ts.map +1 -0
- package/dist/crm/walk.js +22 -0
- package/dist/crm/walk.js.map +1 -0
- package/dist/identity.d.ts +5 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +18 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +29 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +99 -0
- package/dist/mcp.js.map +1 -0
- package/dist/portal.d.ts +47 -0
- package/dist/portal.d.ts.map +1 -0
- package/dist/portal.js +52 -0
- package/dist/portal.js.map +1 -0
- package/dist/program.d.ts +6 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +45 -0
- package/dist/program.js.map +1 -0
- package/dist/reasons.d.ts +10 -0
- package/dist/reasons.d.ts.map +1 -0
- package/dist/reasons.js +28 -0
- package/dist/reasons.js.map +1 -0
- package/dist/token.d.ts +12 -0
- package/dist/token.d.ts.map +1 -0
- package/dist/token.js +41 -0
- package/dist/token.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/whoami.d.ts +8 -0
- package/dist/whoami.d.ts.map +1 -0
- package/dist/whoami.js +9 -0
- package/dist/whoami.js.map +1 -0
- package/package.json +83 -4
- package/skills/bitrix24-cli/SKILL.md +41 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { createRequire as __bundleRequire } from "node:module";
|
|
2
|
+
const require = __bundleRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
DefaultLogger,
|
|
5
|
+
DrizzleQueryError,
|
|
6
|
+
NoopLogger,
|
|
7
|
+
SQLiteAsyncDatabase,
|
|
8
|
+
SQLiteAsyncPreparedQuery,
|
|
9
|
+
SQLiteAsyncSession,
|
|
10
|
+
SQLiteAsyncTransaction,
|
|
11
|
+
SQLiteDialect,
|
|
12
|
+
booleanFromInteger,
|
|
13
|
+
bufferFromBytes,
|
|
14
|
+
castToText,
|
|
15
|
+
dateFromStoredMilliseconds,
|
|
16
|
+
dateFromStoredSeconds,
|
|
17
|
+
entityKind,
|
|
18
|
+
jitCompatCheck,
|
|
19
|
+
refineSqliteCodecs,
|
|
20
|
+
sql
|
|
21
|
+
} from "./chunk-SFRNX2TI.js";
|
|
22
|
+
import {
|
|
23
|
+
__name
|
|
24
|
+
} from "./chunk-ZVVMGPBJ.js";
|
|
25
|
+
|
|
26
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.586.0_@wirecat+cli-base@0.79.0_commander@15.0.0_esbuild@0.28.2_type_bdecddef0ae5a50ae90cab8b9e35c13b/node_modules/@wirecat/cli-core/dist/store/sqlite/drizzle/bun.js
|
|
27
|
+
import { Database } from "bun:sqlite";
|
|
28
|
+
var bunSQLiteCodecs = refineSqliteCodecs({
|
|
29
|
+
"integer:boolean": { normalize: booleanFromInteger },
|
|
30
|
+
"integer:timestamp": { normalize: dateFromStoredSeconds },
|
|
31
|
+
"integer:timestamp_ms": { normalize: dateFromStoredMilliseconds },
|
|
32
|
+
"text:json": { normalize: JSON.parse },
|
|
33
|
+
blob: { normalize: bufferFromBytes },
|
|
34
|
+
"blob:json": {
|
|
35
|
+
cast: castToText,
|
|
36
|
+
normalize: JSON.parse
|
|
37
|
+
},
|
|
38
|
+
"blob:bigint": {
|
|
39
|
+
cast: castToText,
|
|
40
|
+
normalize: BigInt
|
|
41
|
+
},
|
|
42
|
+
numeric: {
|
|
43
|
+
cast: castToText,
|
|
44
|
+
normalize: String
|
|
45
|
+
},
|
|
46
|
+
"numeric:number": { normalize: Number },
|
|
47
|
+
"numeric:bigint": {
|
|
48
|
+
cast: castToText,
|
|
49
|
+
normalize: BigInt
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
var SQLiteBunSession = class extends SQLiteAsyncSession {
|
|
53
|
+
static {
|
|
54
|
+
__name(this, "SQLiteBunSession");
|
|
55
|
+
}
|
|
56
|
+
client;
|
|
57
|
+
relations;
|
|
58
|
+
options;
|
|
59
|
+
static [entityKind] = "SQLiteBunSession";
|
|
60
|
+
logger;
|
|
61
|
+
constructor(client, dialect, relations, options = {}) {
|
|
62
|
+
super(dialect, "sync");
|
|
63
|
+
this.client = client;
|
|
64
|
+
this.relations = relations;
|
|
65
|
+
this.options = options;
|
|
66
|
+
this.logger = options.logger ?? new NoopLogger();
|
|
67
|
+
}
|
|
68
|
+
exec(query) {
|
|
69
|
+
this.client.exec(query);
|
|
70
|
+
}
|
|
71
|
+
prepareQuery(query, mode, _prepare, executeMethod, mapper, queryMetadata) {
|
|
72
|
+
let stmt;
|
|
73
|
+
try {
|
|
74
|
+
stmt = this.client.query(query.sql);
|
|
75
|
+
} catch (e) {
|
|
76
|
+
throw new DrizzleQueryError(query.sql, this.options.paramsInErrors ? query.params : void 0, e);
|
|
77
|
+
}
|
|
78
|
+
return new SQLiteAsyncPreparedQuery("sync", executeMethod, {
|
|
79
|
+
all: /* @__PURE__ */ __name((params) => {
|
|
80
|
+
if (mode === "arrays") return stmt.values(...params);
|
|
81
|
+
return stmt.all(...params);
|
|
82
|
+
}, "all"),
|
|
83
|
+
get: /* @__PURE__ */ __name((params) => {
|
|
84
|
+
if (mode === "arrays") return stmt.values(...params)[0];
|
|
85
|
+
return stmt.get(...params);
|
|
86
|
+
}, "get"),
|
|
87
|
+
run: /* @__PURE__ */ __name((params) => {
|
|
88
|
+
return stmt.run(...params);
|
|
89
|
+
}, "run")
|
|
90
|
+
}, query, mapper, mode, this.logger, void 0, queryMetadata, void 0, this.options.paramsInErrors);
|
|
91
|
+
}
|
|
92
|
+
transaction(transaction, config = {}) {
|
|
93
|
+
const tx = new SQLiteBunTransaction("sync", this.dialect, this, this.relations);
|
|
94
|
+
let result;
|
|
95
|
+
const nativeTx = this.client.transaction(() => {
|
|
96
|
+
result = transaction(tx);
|
|
97
|
+
});
|
|
98
|
+
if (config.behavior === "concurrent") throw new Error("Concurrent transactions are not supported by driver");
|
|
99
|
+
nativeTx[config.behavior ?? "deferred"]();
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
var SQLiteBunTransaction = class SQLiteBunTransaction2 extends SQLiteAsyncTransaction {
|
|
104
|
+
static {
|
|
105
|
+
__name(this, "SQLiteBunTransaction2");
|
|
106
|
+
}
|
|
107
|
+
static [entityKind] = "SQLiteBunTransaction";
|
|
108
|
+
transaction(transaction) {
|
|
109
|
+
const savepointName = `sp${this.nestedIndex}`;
|
|
110
|
+
const tx = new SQLiteBunTransaction2("sync", this.dialect, this.session, this._.relations, this.nestedIndex + 1);
|
|
111
|
+
this.session.run(sql.raw(`savepoint ${savepointName}`));
|
|
112
|
+
try {
|
|
113
|
+
const result = transaction(tx);
|
|
114
|
+
this.session.run(sql.raw(`release savepoint ${savepointName}`));
|
|
115
|
+
return result;
|
|
116
|
+
} catch (err) {
|
|
117
|
+
try {
|
|
118
|
+
this.session.run(sql.raw(`rollback to savepoint ${savepointName}`));
|
|
119
|
+
} catch {
|
|
120
|
+
}
|
|
121
|
+
throw err;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
var SQLiteBunDatabase = class extends SQLiteAsyncDatabase {
|
|
126
|
+
static {
|
|
127
|
+
__name(this, "SQLiteBunDatabase");
|
|
128
|
+
}
|
|
129
|
+
static [entityKind] = "SQLiteBunDatabase";
|
|
130
|
+
};
|
|
131
|
+
function construct(client, config = {}) {
|
|
132
|
+
const dialect = new SQLiteDialect({
|
|
133
|
+
codecs: config.codecs ?? bunSQLiteCodecs,
|
|
134
|
+
useJitMappers: jitCompatCheck(config.jit)
|
|
135
|
+
});
|
|
136
|
+
let logger;
|
|
137
|
+
if (config.logger === true) logger = new DefaultLogger();
|
|
138
|
+
else if (config.logger !== false) logger = config.logger;
|
|
139
|
+
const relations = config.relations ?? {};
|
|
140
|
+
const db = new SQLiteBunDatabase("sync", dialect, new SQLiteBunSession(client, dialect, relations, {
|
|
141
|
+
logger,
|
|
142
|
+
paramsInErrors: config.paramsInErrors
|
|
143
|
+
}), relations);
|
|
144
|
+
db.$client = client;
|
|
145
|
+
return db;
|
|
146
|
+
}
|
|
147
|
+
__name(construct, "construct");
|
|
148
|
+
function drizzle(...params) {
|
|
149
|
+
if (params[0] === void 0 || typeof params[0] === "string") return construct(params[0] === void 0 ? new Database() : new Database(params[0]), params[1]);
|
|
150
|
+
const { connection, client, ...DrizzleSQLiteConfig } = params[0];
|
|
151
|
+
if (client) return construct(client, DrizzleSQLiteConfig);
|
|
152
|
+
if (typeof connection === "object") {
|
|
153
|
+
const { source, ...opts } = connection;
|
|
154
|
+
const options = Object.values(opts).filter((v) => v !== void 0).length ? opts : void 0;
|
|
155
|
+
return construct(new Database(source, options), DrizzleSQLiteConfig);
|
|
156
|
+
}
|
|
157
|
+
return construct(new Database(connection), DrizzleSQLiteConfig);
|
|
158
|
+
}
|
|
159
|
+
__name(drizzle, "drizzle");
|
|
160
|
+
(function(_drizzle) {
|
|
161
|
+
function mock(config) {
|
|
162
|
+
return construct({}, config);
|
|
163
|
+
}
|
|
164
|
+
__name(mock, "mock");
|
|
165
|
+
_drizzle.mock = mock;
|
|
166
|
+
})(drizzle || (drizzle = {}));
|
|
167
|
+
export {
|
|
168
|
+
drizzle
|
|
169
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createRequire as __bundleRequire } from "node:module";
|
|
2
|
+
const require = __bundleRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
loadVectorExtension,
|
|
5
|
+
vectorExtension
|
|
6
|
+
} from "./chunk-WII44RXN.js";
|
|
7
|
+
import "./chunk-IRV2PCQ2.js";
|
|
8
|
+
import {
|
|
9
|
+
importFrom
|
|
10
|
+
} from "./chunk-Y5E2WNWB.js";
|
|
11
|
+
import {
|
|
12
|
+
__name
|
|
13
|
+
} from "./chunk-ZVVMGPBJ.js";
|
|
14
|
+
|
|
15
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.586.0_@wirecat+cli-base@0.79.0_commander@15.0.0_esbuild@0.28.2_type_bdecddef0ae5a50ae90cab8b9e35c13b/node_modules/@wirecat/cli-core/dist/store/drivers/bun-sqlite.js
|
|
16
|
+
var customised = false;
|
|
17
|
+
var ownLibrary = /* @__PURE__ */ __name(async () => {
|
|
18
|
+
try {
|
|
19
|
+
const { libraryFor } = await importFrom(new URL("store/drivers/bun-sqlite.js", import.meta.resolve("@wirecat/cli-core")).href, "@wirecat/cli-core-sqlite");
|
|
20
|
+
return libraryFor();
|
|
21
|
+
} catch {
|
|
22
|
+
return void 0;
|
|
23
|
+
}
|
|
24
|
+
}, "ownLibrary");
|
|
25
|
+
var bunDatabase = /* @__PURE__ */ __name(async () => {
|
|
26
|
+
const specifier = "bun:sqlite";
|
|
27
|
+
const { Database } = await importFrom(new URL("store/drivers/bun-sqlite.js", import.meta.resolve("@wirecat/cli-core")).href, specifier);
|
|
28
|
+
if (process.platform === "darwin" && !customised) {
|
|
29
|
+
customised = true;
|
|
30
|
+
const library = await ownLibrary();
|
|
31
|
+
if (library)
|
|
32
|
+
Database.setCustomSQLite(library);
|
|
33
|
+
}
|
|
34
|
+
return Database;
|
|
35
|
+
}, "bunDatabase");
|
|
36
|
+
var openWithBunSqlite = /* @__PURE__ */ __name(async (path) => cacheOverBunSqlite(await bunClient(path)), "openWithBunSqlite");
|
|
37
|
+
var bunClient = /* @__PURE__ */ __name(async (path, options) => {
|
|
38
|
+
const Database = await bunDatabase();
|
|
39
|
+
const extension = await vectorExtension();
|
|
40
|
+
const client = options ? new Database(path, options) : new Database(path);
|
|
41
|
+
try {
|
|
42
|
+
loadVectorExtension(client, extension);
|
|
43
|
+
return client;
|
|
44
|
+
} catch (error) {
|
|
45
|
+
client.close();
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}, "bunClient");
|
|
49
|
+
var cacheOverBunSqlite = /* @__PURE__ */ __name((database) => {
|
|
50
|
+
return {
|
|
51
|
+
exec: /* @__PURE__ */ __name((sql) => database.exec(sql), "exec"),
|
|
52
|
+
prepare: /* @__PURE__ */ __name((sql) => {
|
|
53
|
+
const statement = database.query(sql);
|
|
54
|
+
return {
|
|
55
|
+
run: /* @__PURE__ */ __name((...parameters) => ({ changes: Number(statement.run(...parameters).changes) }), "run"),
|
|
56
|
+
// Bun answers null for no row; the seam promises undefined, and `!== undefined` checks rely on it.
|
|
57
|
+
get: /* @__PURE__ */ __name((...parameters) => statement.get(...parameters) ?? void 0, "get"),
|
|
58
|
+
all: /* @__PURE__ */ __name((...parameters) => statement.all(...parameters), "all")
|
|
59
|
+
};
|
|
60
|
+
}, "prepare"),
|
|
61
|
+
close: /* @__PURE__ */ __name(() => database.close(), "close")
|
|
62
|
+
};
|
|
63
|
+
}, "cacheOverBunSqlite");
|
|
64
|
+
export {
|
|
65
|
+
bunClient,
|
|
66
|
+
bunDatabase,
|
|
67
|
+
cacheOverBunSqlite,
|
|
68
|
+
openWithBunSqlite
|
|
69
|
+
};
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { createRequire as __bundleRequire } from "node:module";
|
|
2
|
+
const require = __bundleRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
installerOf,
|
|
5
|
+
updateCommand
|
|
6
|
+
} from "./chunk-EVYSBZ3I.js";
|
|
7
|
+
import {
|
|
8
|
+
QUESTIONS,
|
|
9
|
+
readSetupAnswers,
|
|
10
|
+
unanswered,
|
|
11
|
+
writeSetupAnswers
|
|
12
|
+
} from "./chunk-CNNEA2M4.js";
|
|
13
|
+
import {
|
|
14
|
+
DEFAULT_STEMMERS,
|
|
15
|
+
LANGUAGES
|
|
16
|
+
} from "./chunk-VEWWAGTD.js";
|
|
17
|
+
import {
|
|
18
|
+
sharedConfigPath
|
|
19
|
+
} from "./chunk-TE3FR6MI.js";
|
|
20
|
+
import {
|
|
21
|
+
storePath
|
|
22
|
+
} from "./chunk-DTXERR44.js";
|
|
23
|
+
import {
|
|
24
|
+
__name
|
|
25
|
+
} from "./chunk-ZVVMGPBJ.js";
|
|
26
|
+
|
|
27
|
+
// node_modules/.pnpm/@wirecat+cli-core@0.586.0_@wirecat+cli-base@0.79.0_commander@15.0.0_esbuild@0.28.2_type_bdecddef0ae5a50ae90cab8b9e35c13b/node_modules/@wirecat/cli-core/dist/cli/first-run.js
|
|
28
|
+
import { spawnSync } from "node:child_process";
|
|
29
|
+
import { accessSync, constants, realpathSync } from "node:fs";
|
|
30
|
+
import { delimiter, join } from "node:path";
|
|
31
|
+
var SKIPPED = /* @__PURE__ */ new Set(["help", "guide", "completion", "mcp", "serve", "server", "update", "store"]);
|
|
32
|
+
var asksAtStart = /* @__PURE__ */ __name((start) => !start.headless && start.terminal && !start.env.AI_AGENT && !start.env.CLAUDECODE && start.readOnlyLock === void 0 && !SKIPPED.has(start.path[0] ?? ""), "asksAtStart");
|
|
33
|
+
var systemLanguage = /* @__PURE__ */ __name((env) => {
|
|
34
|
+
const named = [env.LC_ALL, env.LC_MESSAGES, env.LANG, ...(env.LANGUAGE ?? "").split(":")].map((value) => value?.trim()).find((value) => value && value !== "C" && value !== "POSIX" && !value.startsWith("C."));
|
|
35
|
+
return (named ?? Intl.DateTimeFormat().resolvedOptions().locale).slice(0, 2).toLowerCase();
|
|
36
|
+
}, "systemLanguage");
|
|
37
|
+
var stemmersOf = /* @__PURE__ */ __name((languages) => {
|
|
38
|
+
const latin = LANGUAGES.filter(({ name, script }) => script === "latin" && languages.includes(name));
|
|
39
|
+
return {
|
|
40
|
+
cyrillic: languages.includes("russian") ? "russian" : "none",
|
|
41
|
+
latin: latin.length ? latin.map(({ name }) => name).join(",") : "none"
|
|
42
|
+
};
|
|
43
|
+
}, "stemmersOf");
|
|
44
|
+
var languagesOf = /* @__PURE__ */ __name((stemmers) => LANGUAGES.filter(({ name }) => stemmers.cyrillic === name || stemmers.latin.split(",").includes(name)).map(({ name }) => name), "languagesOf");
|
|
45
|
+
var choose = /* @__PURE__ */ __name(async (io, prompt, count, chosen) => {
|
|
46
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
47
|
+
const answer = (await io.ask(prompt)).trim();
|
|
48
|
+
if (!answer)
|
|
49
|
+
return chosen;
|
|
50
|
+
if (/^(none|-)$/i.test(answer))
|
|
51
|
+
return [];
|
|
52
|
+
const numbers = answer.split(/[\s,]+/).filter(Boolean).map(Number);
|
|
53
|
+
if (numbers.every((number) => Number.isInteger(number) && number >= 1 && number <= count))
|
|
54
|
+
return [...new Set(numbers)].sort((a, b) => a - b);
|
|
55
|
+
io.say(`Choose numbers from 1 to ${count}, separated by commas.`);
|
|
56
|
+
}
|
|
57
|
+
return chosen;
|
|
58
|
+
}, "choose");
|
|
59
|
+
var yes = /* @__PURE__ */ __name(async (io, prompt) => /^y(es)?$/i.test((await io.ask(prompt)).trim()), "yes");
|
|
60
|
+
var onPath = /* @__PURE__ */ __name((command, env) => {
|
|
61
|
+
const names = process.platform === "win32" ? [".cmd", ".exe", ""].map((ending) => command + ending) : [command];
|
|
62
|
+
return (env.PATH ?? env.Path ?? "").split(delimiter).some((folder) => names.some((name) => {
|
|
63
|
+
try {
|
|
64
|
+
accessSync(join(folder, name), process.platform === "win32" ? constants.F_OK : constants.X_OK);
|
|
65
|
+
return true;
|
|
66
|
+
} catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
}, "onPath");
|
|
71
|
+
var installWith = /* @__PURE__ */ __name((argv) => spawnSync(argv[0], argv.slice(1), { stdio: ["inherit", 2, 2] }).status === 0, "installWith");
|
|
72
|
+
var installerHere = /* @__PURE__ */ __name(() => {
|
|
73
|
+
try {
|
|
74
|
+
return installerOf(realpathSync(process.argv[1] ?? ""));
|
|
75
|
+
} catch {
|
|
76
|
+
return "unknown";
|
|
77
|
+
}
|
|
78
|
+
}, "installerHere");
|
|
79
|
+
var suggested = /* @__PURE__ */ __name((env, contentLanguages) => {
|
|
80
|
+
const own = LANGUAGES.filter(({ code }) => contentLanguages?.includes(code));
|
|
81
|
+
const system = systemLanguage(env);
|
|
82
|
+
return (own.length ? own : LANGUAGES.filter(({ code }) => code === "en" || code === system)).map(({ name }) => name);
|
|
83
|
+
}, "suggested");
|
|
84
|
+
var askLanguages = /* @__PURE__ */ __name(async ({ command, env, io, contentLanguages }) => {
|
|
85
|
+
const { openStore } = await import("./store-7O4JQD2Z.js");
|
|
86
|
+
const store = await openStore({ env });
|
|
87
|
+
let rebuild = false;
|
|
88
|
+
try {
|
|
89
|
+
const saved = await store.searchIndex.stemmers() ?? void 0;
|
|
90
|
+
const inUse = saved !== void 0 || (await store.accounts.accounts()).length > 0;
|
|
91
|
+
const ticked = inUse ? languagesOf(saved ?? DEFAULT_STEMMERS) : suggested(env, contentLanguages);
|
|
92
|
+
const numbers = ticked.map((name) => LANGUAGES.findIndex((one) => one.name === name) + 1);
|
|
93
|
+
io.say("Languages you write and speak \u2014 search finds every form of their words, and spellings speech mangles:");
|
|
94
|
+
LANGUAGES.forEach(({ name, label }, at) => {
|
|
95
|
+
io.say(` ${at + 1}. ${label}${ticked.includes(name) ? " \u2713" : ""}`);
|
|
96
|
+
});
|
|
97
|
+
const chosen = await choose(io, `Numbers (${numbers.join(",")}): `, LANGUAGES.length, numbers);
|
|
98
|
+
const next = stemmersOf(chosen.map((number) => LANGUAGES[number - 1].name));
|
|
99
|
+
const before = saved ?? DEFAULT_STEMMERS;
|
|
100
|
+
if (inUse && before.cyrillic === next.cyrillic && before.latin === next.latin)
|
|
101
|
+
return;
|
|
102
|
+
if (inUse && !await yes(io, "Rebuild the word forms of every stored message now? Word search waits for it; a large store takes minutes. [y/N] ")) {
|
|
103
|
+
io.say(`Languages kept as they were; \`${command} setup\` asks again.`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
await store.searchIndex.saveStemmers(next);
|
|
107
|
+
rebuild = inUse;
|
|
108
|
+
} finally {
|
|
109
|
+
await store.close();
|
|
110
|
+
}
|
|
111
|
+
if (!rebuild)
|
|
112
|
+
return;
|
|
113
|
+
const [{ openCache }, { buildStems }] = await Promise.all([
|
|
114
|
+
import("./open-E47QYKFC.js"),
|
|
115
|
+
import("./store-maintenance-command-UDVGEY2D.js")
|
|
116
|
+
]);
|
|
117
|
+
const database = await openCache(storePath(env));
|
|
118
|
+
try {
|
|
119
|
+
buildStems(database, (note) => io.say(` ${note}`), { force: true });
|
|
120
|
+
} finally {
|
|
121
|
+
database.close();
|
|
122
|
+
}
|
|
123
|
+
}, "askLanguages");
|
|
124
|
+
var askTools = /* @__PURE__ */ __name(async (run) => {
|
|
125
|
+
const { command, env, io } = run;
|
|
126
|
+
const installed = run.installed ?? ((name) => onPath(name, env));
|
|
127
|
+
const { WIRECAT_TOOLS } = await import("./first-screen-VQM4MTS7.js");
|
|
128
|
+
const others = WIRECAT_TOOLS.filter((tool) => tool.command !== command);
|
|
129
|
+
const missing = others.filter((tool) => !installed(tool.command));
|
|
130
|
+
io.say("Other WireCat tools \u2014 they share this store, so one search finds everything:");
|
|
131
|
+
for (const tool of others) {
|
|
132
|
+
const at = missing.indexOf(tool);
|
|
133
|
+
io.say(` ${at < 0 ? "\u2713 " : `${at + 1}.`} ${tool.command} \u2014 ${tool.does}`);
|
|
134
|
+
}
|
|
135
|
+
if (!missing.length)
|
|
136
|
+
return;
|
|
137
|
+
const chosen = await choose(io, "Numbers to install (none): ", missing.length, []);
|
|
138
|
+
const installer = run.installer ?? installerHere();
|
|
139
|
+
for (const number of chosen) {
|
|
140
|
+
const tool = missing[number - 1];
|
|
141
|
+
const argv = updateCommand(installer, tool.package);
|
|
142
|
+
if (!argv) {
|
|
143
|
+
io.say(`Install ${tool.command} with \`npm install -g ${tool.package}\`.`);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
io.say(`Installing ${tool.command}: ${argv.join(" ")}`);
|
|
147
|
+
if (!(run.install ?? installWith)(argv))
|
|
148
|
+
io.say(`${tool.command} was not installed; run \`${argv.join(" ")}\`.`);
|
|
149
|
+
}
|
|
150
|
+
}, "askTools");
|
|
151
|
+
var PERMISSION_CHOICES = [
|
|
152
|
+
{ answer: "readonly", text: "read only \u2014 search and read; nothing sends or changes" },
|
|
153
|
+
{ answer: "allow", text: "read and write \u2014 as each profile's permissions allow" }
|
|
154
|
+
];
|
|
155
|
+
var askPermissions = /* @__PURE__ */ __name(async ({ io }, answers) => {
|
|
156
|
+
const now = answers.permissions ?? "allow";
|
|
157
|
+
const current = Math.max(1, PERMISSION_CHOICES.findIndex(({ answer }) => answer === now) + 1);
|
|
158
|
+
io.say("Read only, or read and write? The same for you, scripts and agents over MCP, in every WireCat tool:");
|
|
159
|
+
PERMISSION_CHOICES.forEach(({ text }, at) => {
|
|
160
|
+
io.say(` ${at + 1}. ${text}`);
|
|
161
|
+
});
|
|
162
|
+
const [chosen = current] = await choose(io, `Number (${current}): `, PERMISSION_CHOICES.length, [current]);
|
|
163
|
+
return PERMISSION_CHOICES[chosen - 1].answer;
|
|
164
|
+
}, "askPermissions");
|
|
165
|
+
var answersAt = /* @__PURE__ */ __name((path) => {
|
|
166
|
+
try {
|
|
167
|
+
return readSetupAnswers(path);
|
|
168
|
+
} catch {
|
|
169
|
+
return {};
|
|
170
|
+
}
|
|
171
|
+
}, "answersAt");
|
|
172
|
+
var askSetupQuestions = /* @__PURE__ */ __name(async (run) => {
|
|
173
|
+
const path = sharedConfigPath(storePath(run.env), run.env);
|
|
174
|
+
const answers = answersAt(path);
|
|
175
|
+
const asking = run.all ? [...QUESTIONS] : unanswered(answers);
|
|
176
|
+
for (const question of asking) {
|
|
177
|
+
run.io.say("");
|
|
178
|
+
if (question === "languages") {
|
|
179
|
+
await askLanguages(run);
|
|
180
|
+
writeSetupAnswers(path, { languages: true });
|
|
181
|
+
} else if (question === "tools") {
|
|
182
|
+
await askTools(run);
|
|
183
|
+
writeSetupAnswers(path, { tools: true });
|
|
184
|
+
} else
|
|
185
|
+
writeSetupAnswers(path, { permissions: await askPermissions(run, answers) });
|
|
186
|
+
}
|
|
187
|
+
return asking;
|
|
188
|
+
}, "askSetupQuestions");
|
|
189
|
+
var setupAtStart = /* @__PURE__ */ __name(async (start) => {
|
|
190
|
+
const input = start.input ?? process.stdin;
|
|
191
|
+
const terminal = start.terminal ?? (input.isTTY === true && process.stderr.isTTY === true);
|
|
192
|
+
if (!asksAtStart({ ...start, terminal, readOnlyLock: start.readOnlyLock }))
|
|
193
|
+
return;
|
|
194
|
+
await askSetupQuestions({
|
|
195
|
+
command: start.command,
|
|
196
|
+
env: start.env,
|
|
197
|
+
contentLanguages: start.contentLanguages,
|
|
198
|
+
all: start.path[0] === "setup",
|
|
199
|
+
io: {
|
|
200
|
+
ask: /* @__PURE__ */ __name(async (prompt) => (await import("./prompt-CAQ7QR3U.js")).readSecret(prompt, { input, echo: true }), "ask"),
|
|
201
|
+
say: /* @__PURE__ */ __name((text) => process.stderr.write(`${text}
|
|
202
|
+
`), "say")
|
|
203
|
+
}
|
|
204
|
+
}).catch((error) => {
|
|
205
|
+
process.stderr.write(`setup questions skipped: ${error instanceof Error ? error.message : String(error)} \u2014 \`${start.command} setup\` asks them again
|
|
206
|
+
`);
|
|
207
|
+
});
|
|
208
|
+
}, "setupAtStart");
|
|
209
|
+
|
|
210
|
+
export {
|
|
211
|
+
asksAtStart,
|
|
212
|
+
systemLanguage,
|
|
213
|
+
askSetupQuestions,
|
|
214
|
+
setupAtStart
|
|
215
|
+
};
|