claude-launchpad 1.14.0 → 1.15.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/{chunk-D6RAMWH6.js → chunk-7KB5YGQZ.js} +2 -2
- package/dist/{chunk-UN43OVRW.js → chunk-DLDVXHI3.js} +2 -2
- package/dist/{chunk-M6GVFN67.js → chunk-IPGNXDJF.js} +2 -2
- package/dist/{chunk-VF7U63AI.js → chunk-LCKV24Q3.js} +3 -3
- package/dist/{chunk-OPORVSAF.js → chunk-MX3T2VEX.js} +3 -3
- package/dist/{chunk-QEPE3WVF.js → chunk-U2TFIUGE.js} +57 -5
- package/dist/chunk-U2TFIUGE.js.map +1 -0
- package/dist/cli.js +135 -61
- package/dist/cli.js.map +1 -1
- package/dist/commands/memory/server.js +4 -4
- package/dist/{context-YIPO4LBS.js → context-3GHG7KW6.js} +6 -6
- package/dist/{doctor-DCHFJ3XV.js → doctor-EKGJ2YAO.js} +4 -4
- package/dist/{install-D32PV7SF.js → install-543ZKMXX.js} +6 -6
- package/dist/{pull-YUQTDRUP.js → pull-ULSZEVCR.js} +8 -8
- package/dist/{push-U4IVTFOU.js → push-JXCWX4NY.js} +8 -8
- package/dist/{require-deps-WDMHDGBN.js → require-deps-AEDO5YRM.js} +3 -3
- package/dist/{stats-77BYLKYP.js → stats-63L7C24W.js} +7 -7
- package/dist/{sync-DTCWK2CY.js → sync-QTJ6BXQ4.js} +5 -5
- package/dist/{sync-clean-ACZCB3NZ.js → sync-clean-OJEK4XH4.js} +3 -3
- package/dist/{sync-status-2V2RCYZO.js → sync-status-EAX527SC.js} +8 -8
- package/dist/{tui-HVJNLRY2.js → tui-3KITZCNS.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-QEPE3WVF.js.map +0 -1
- /package/dist/{chunk-D6RAMWH6.js.map → chunk-7KB5YGQZ.js.map} +0 -0
- /package/dist/{chunk-UN43OVRW.js.map → chunk-DLDVXHI3.js.map} +0 -0
- /package/dist/{chunk-M6GVFN67.js.map → chunk-IPGNXDJF.js.map} +0 -0
- /package/dist/{chunk-VF7U63AI.js.map → chunk-LCKV24Q3.js.map} +0 -0
- /package/dist/{chunk-OPORVSAF.js.map → chunk-MX3T2VEX.js.map} +0 -0
- /package/dist/{context-YIPO4LBS.js.map → context-3GHG7KW6.js.map} +0 -0
- /package/dist/{doctor-DCHFJ3XV.js.map → doctor-EKGJ2YAO.js.map} +0 -0
- /package/dist/{install-D32PV7SF.js.map → install-543ZKMXX.js.map} +0 -0
- /package/dist/{pull-YUQTDRUP.js.map → pull-ULSZEVCR.js.map} +0 -0
- /package/dist/{push-U4IVTFOU.js.map → push-JXCWX4NY.js.map} +0 -0
- /package/dist/{require-deps-WDMHDGBN.js.map → require-deps-AEDO5YRM.js.map} +0 -0
- /package/dist/{stats-77BYLKYP.js.map → stats-63L7C24W.js.map} +0 -0
- /package/dist/{sync-DTCWK2CY.js.map → sync-QTJ6BXQ4.js.map} +0 -0
- /package/dist/{sync-clean-ACZCB3NZ.js.map → sync-clean-OJEK4XH4.js.map} +0 -0
- /package/dist/{sync-status-2V2RCYZO.js.map → sync-status-EAX527SC.js.map} +0 -0
- /package/dist/{tui-HVJNLRY2.js.map → tui-3KITZCNS.js.map} +0 -0
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from "../../chunk-HSGSTSVN.js";
|
|
21
21
|
import {
|
|
22
22
|
migrate
|
|
23
|
-
} from "../../chunk-
|
|
23
|
+
} from "../../chunk-MX3T2VEX.js";
|
|
24
24
|
import {
|
|
25
25
|
MemoryRepo
|
|
26
26
|
} from "../../chunk-IDH3M4EI.js";
|
|
@@ -30,9 +30,9 @@ import {
|
|
|
30
30
|
createDatabase,
|
|
31
31
|
loadConfig,
|
|
32
32
|
resolveDataDir
|
|
33
|
-
} from "../../chunk-
|
|
34
|
-
import "../../chunk-
|
|
35
|
-
import "../../chunk-
|
|
33
|
+
} from "../../chunk-DLDVXHI3.js";
|
|
34
|
+
import "../../chunk-7KB5YGQZ.js";
|
|
35
|
+
import "../../chunk-U2TFIUGE.js";
|
|
36
36
|
|
|
37
37
|
// src/commands/memory/server.ts
|
|
38
38
|
import { createRequire } from "module";
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
} from "./chunk-NAW47BYA.js";
|
|
11
11
|
import {
|
|
12
12
|
initStorage
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LCKV24Q3.js";
|
|
14
14
|
import "./chunk-HSGSTSVN.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-MX3T2VEX.js";
|
|
16
16
|
import "./chunk-IDH3M4EI.js";
|
|
17
17
|
import {
|
|
18
18
|
DEFAULT_DECAY_PARAMS,
|
|
@@ -30,9 +30,9 @@ import {
|
|
|
30
30
|
RECENCY_HALF_LIFE,
|
|
31
31
|
TYPE_INJECTION_BONUS,
|
|
32
32
|
estimateTokens
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-DLDVXHI3.js";
|
|
34
|
+
import "./chunk-7KB5YGQZ.js";
|
|
35
|
+
import "./chunk-U2TFIUGE.js";
|
|
36
36
|
|
|
37
37
|
// src/commands/memory/subcommands/context.ts
|
|
38
38
|
import { readFileSync, writeFileSync } from "fs";
|
|
@@ -506,4 +506,4 @@ async function runContext(opts) {
|
|
|
506
506
|
export {
|
|
507
507
|
runContext
|
|
508
508
|
};
|
|
509
|
-
//# sourceMappingURL=context-
|
|
509
|
+
//# sourceMappingURL=context-3GHG7KW6.js.map
|
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
createDatabase,
|
|
8
8
|
loadConfig,
|
|
9
9
|
resolveDataDir
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-DLDVXHI3.js";
|
|
11
|
+
import "./chunk-7KB5YGQZ.js";
|
|
12
12
|
import {
|
|
13
13
|
log
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-U2TFIUGE.js";
|
|
15
15
|
|
|
16
16
|
// src/commands/memory/subcommands/doctor.ts
|
|
17
17
|
import { existsSync, readFileSync, statSync } from "fs";
|
|
@@ -105,4 +105,4 @@ async function runMemoryDoctor(opts) {
|
|
|
105
105
|
export {
|
|
106
106
|
runMemoryDoctor
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=doctor-
|
|
108
|
+
//# sourceMappingURL=doctor-EKGJ2YAO.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
migrate
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MX3T2VEX.js";
|
|
5
5
|
import {
|
|
6
6
|
closeDatabase,
|
|
7
7
|
createDatabase,
|
|
8
8
|
loadConfig,
|
|
9
9
|
resolveDataDir
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-DLDVXHI3.js";
|
|
11
|
+
import "./chunk-7KB5YGQZ.js";
|
|
12
12
|
import {
|
|
13
13
|
addOrUpdateHook,
|
|
14
14
|
getMemoryPlacement,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
readSettingsLocalJson,
|
|
18
18
|
writeSettingsJson,
|
|
19
19
|
writeSettingsLocalJson
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-U2TFIUGE.js";
|
|
21
21
|
|
|
22
22
|
// src/commands/memory/subcommands/install.ts
|
|
23
23
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
@@ -209,7 +209,7 @@ function addToolPermissions(settings) {
|
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
211
|
async function ensureNativeDeps() {
|
|
212
|
-
const { cwdRequire } = await import("./require-deps-
|
|
212
|
+
const { cwdRequire } = await import("./require-deps-AEDO5YRM.js");
|
|
213
213
|
try {
|
|
214
214
|
cwdRequire("better-sqlite3");
|
|
215
215
|
return;
|
|
@@ -355,4 +355,4 @@ export {
|
|
|
355
355
|
injectClaudeMdGuidance,
|
|
356
356
|
runInstall
|
|
357
357
|
};
|
|
358
|
-
//# sourceMappingURL=install-
|
|
358
|
+
//# sourceMappingURL=install-543ZKMXX.js.map
|
|
@@ -10,22 +10,22 @@ import {
|
|
|
10
10
|
loadSyncConfig,
|
|
11
11
|
projectToFilename,
|
|
12
12
|
readGistFile
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IPGNXDJF.js";
|
|
14
14
|
import "./chunk-IIWOSSL4.js";
|
|
15
15
|
import {
|
|
16
16
|
detectProject
|
|
17
17
|
} from "./chunk-NAW47BYA.js";
|
|
18
18
|
import {
|
|
19
19
|
initStorage
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-LCKV24Q3.js";
|
|
21
21
|
import "./chunk-HSGSTSVN.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-MX3T2VEX.js";
|
|
23
23
|
import "./chunk-IDH3M4EI.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-DLDVXHI3.js";
|
|
25
|
+
import "./chunk-7KB5YGQZ.js";
|
|
26
26
|
import {
|
|
27
27
|
log
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-U2TFIUGE.js";
|
|
29
29
|
|
|
30
30
|
// src/commands/memory/subcommands/pull.ts
|
|
31
31
|
async function runPull(opts) {
|
|
@@ -34,7 +34,7 @@ async function runPull(opts) {
|
|
|
34
34
|
if (!syncConfig) {
|
|
35
35
|
throw new Error("No sync gist found. Run `memory push` first.");
|
|
36
36
|
}
|
|
37
|
-
const { requireMemoryDeps } = await import("./require-deps-
|
|
37
|
+
const { requireMemoryDeps } = await import("./require-deps-AEDO5YRM.js");
|
|
38
38
|
await requireMemoryDeps();
|
|
39
39
|
const ctx = initStorage();
|
|
40
40
|
try {
|
|
@@ -139,4 +139,4 @@ function printResult(result, project) {
|
|
|
139
139
|
export {
|
|
140
140
|
runPull
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=pull-
|
|
142
|
+
//# sourceMappingURL=pull-ULSZEVCR.js.map
|
|
@@ -12,22 +12,22 @@ import {
|
|
|
12
12
|
projectToFilename,
|
|
13
13
|
readGistFile,
|
|
14
14
|
updateGistFiles
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-IPGNXDJF.js";
|
|
16
16
|
import "./chunk-IIWOSSL4.js";
|
|
17
17
|
import {
|
|
18
18
|
detectProject
|
|
19
19
|
} from "./chunk-NAW47BYA.js";
|
|
20
20
|
import {
|
|
21
21
|
initStorage
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-LCKV24Q3.js";
|
|
23
23
|
import "./chunk-HSGSTSVN.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-MX3T2VEX.js";
|
|
25
25
|
import "./chunk-IDH3M4EI.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-DLDVXHI3.js";
|
|
27
|
+
import "./chunk-7KB5YGQZ.js";
|
|
28
28
|
import {
|
|
29
29
|
log
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-U2TFIUGE.js";
|
|
31
31
|
|
|
32
32
|
// src/commands/memory/subcommands/push.ts
|
|
33
33
|
import { hostname } from "os";
|
|
@@ -52,7 +52,7 @@ function filterRelations(allRelations, memoryIds) {
|
|
|
52
52
|
}
|
|
53
53
|
async function runPush(opts) {
|
|
54
54
|
assertGhAvailable();
|
|
55
|
-
const { requireMemoryDeps } = await import("./require-deps-
|
|
55
|
+
const { requireMemoryDeps } = await import("./require-deps-AEDO5YRM.js");
|
|
56
56
|
await requireMemoryDeps();
|
|
57
57
|
const ctx = initStorage();
|
|
58
58
|
try {
|
|
@@ -172,4 +172,4 @@ async function confirmCreate() {
|
|
|
172
172
|
export {
|
|
173
173
|
runPush
|
|
174
174
|
};
|
|
175
|
-
//# sourceMappingURL=push-
|
|
175
|
+
//# sourceMappingURL=push-JXCWX4NY.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import {
|
|
3
3
|
cwdRequire,
|
|
4
4
|
requireMemoryDeps
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-7KB5YGQZ.js";
|
|
6
|
+
import "./chunk-U2TFIUGE.js";
|
|
7
7
|
export {
|
|
8
8
|
cwdRequire,
|
|
9
9
|
requireMemoryDeps
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=require-deps-
|
|
11
|
+
//# sourceMappingURL=require-deps-AEDO5YRM.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
initStorage
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LCKV24Q3.js";
|
|
5
5
|
import "./chunk-HSGSTSVN.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-MX3T2VEX.js";
|
|
7
7
|
import "./chunk-IDH3M4EI.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-DLDVXHI3.js";
|
|
9
|
+
import "./chunk-7KB5YGQZ.js";
|
|
10
10
|
import {
|
|
11
11
|
log
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-U2TFIUGE.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/memory/subcommands/stats.ts
|
|
15
15
|
import { existsSync, statSync } from "fs";
|
|
@@ -20,7 +20,7 @@ function formatBytes(bytes) {
|
|
|
20
20
|
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
21
21
|
}
|
|
22
22
|
async function runStats(opts) {
|
|
23
|
-
const { requireMemoryDeps } = await import("./require-deps-
|
|
23
|
+
const { requireMemoryDeps } = await import("./require-deps-AEDO5YRM.js");
|
|
24
24
|
await requireMemoryDeps();
|
|
25
25
|
const ctx = initStorage(opts.dbPath);
|
|
26
26
|
try {
|
|
@@ -74,4 +74,4 @@ async function runStats(opts) {
|
|
|
74
74
|
export {
|
|
75
75
|
runStats
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=stats-
|
|
77
|
+
//# sourceMappingURL=stats-63L7C24W.js.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
loadSyncConfig
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IPGNXDJF.js";
|
|
5
5
|
import {
|
|
6
6
|
log
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-U2TFIUGE.js";
|
|
8
8
|
|
|
9
9
|
// src/commands/memory/subcommands/sync.ts
|
|
10
10
|
async function runSync(opts) {
|
|
11
11
|
if (loadSyncConfig()) {
|
|
12
|
-
const { runPull } = await import("./pull-
|
|
12
|
+
const { runPull } = await import("./pull-ULSZEVCR.js");
|
|
13
13
|
await runPull({ all: opts.all, quietMissing: true });
|
|
14
14
|
} else {
|
|
15
15
|
log.info("No sync gist yet \u2014 skipping pull; push will create it.");
|
|
16
16
|
}
|
|
17
|
-
const { runPush } = await import("./push-
|
|
17
|
+
const { runPush } = await import("./push-JXCWX4NY.js");
|
|
18
18
|
await runPush(opts);
|
|
19
19
|
}
|
|
20
20
|
export {
|
|
21
21
|
runSync
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=sync-
|
|
23
|
+
//# sourceMappingURL=sync-QTJ6BXQ4.js.map
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
listGistFiles,
|
|
7
7
|
loadSyncConfig,
|
|
8
8
|
projectToFilename
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-IPGNXDJF.js";
|
|
10
10
|
import {
|
|
11
11
|
log
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-U2TFIUGE.js";
|
|
13
13
|
|
|
14
14
|
// src/commands/memory/subcommands/sync-clean.ts
|
|
15
15
|
import { confirm } from "@inquirer/prompts";
|
|
@@ -49,4 +49,4 @@ async function runSyncClean(project, opts) {
|
|
|
49
49
|
export {
|
|
50
50
|
runSyncClean
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=sync-clean-
|
|
52
|
+
//# sourceMappingURL=sync-clean-OJEK4XH4.js.map
|
|
@@ -8,19 +8,19 @@ import {
|
|
|
8
8
|
listGistFiles,
|
|
9
9
|
loadSyncConfig,
|
|
10
10
|
readGistFile
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IPGNXDJF.js";
|
|
12
12
|
import "./chunk-IIWOSSL4.js";
|
|
13
13
|
import {
|
|
14
14
|
initStorage
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-LCKV24Q3.js";
|
|
16
16
|
import "./chunk-HSGSTSVN.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-MX3T2VEX.js";
|
|
18
18
|
import "./chunk-IDH3M4EI.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-DLDVXHI3.js";
|
|
20
|
+
import "./chunk-7KB5YGQZ.js";
|
|
21
21
|
import {
|
|
22
22
|
log
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-U2TFIUGE.js";
|
|
24
24
|
|
|
25
25
|
// src/commands/memory/subcommands/sync-status.ts
|
|
26
26
|
async function runSyncStatus() {
|
|
@@ -29,7 +29,7 @@ async function runSyncStatus() {
|
|
|
29
29
|
if (!syncConfig) {
|
|
30
30
|
throw new Error("No sync gist found. Run `memory push` first.");
|
|
31
31
|
}
|
|
32
|
-
const { requireMemoryDeps } = await import("./require-deps-
|
|
32
|
+
const { requireMemoryDeps } = await import("./require-deps-AEDO5YRM.js");
|
|
33
33
|
await requireMemoryDeps();
|
|
34
34
|
const ctx = initStorage();
|
|
35
35
|
try {
|
|
@@ -73,4 +73,4 @@ async function runSyncStatus() {
|
|
|
73
73
|
export {
|
|
74
74
|
runSyncStatus
|
|
75
75
|
};
|
|
76
|
-
//# sourceMappingURL=sync-status-
|
|
76
|
+
//# sourceMappingURL=sync-status-EAX527SC.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-HSGSTSVN.js";
|
|
6
6
|
import {
|
|
7
7
|
migrate
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MX3T2VEX.js";
|
|
9
9
|
import {
|
|
10
10
|
MemoryRepo
|
|
11
11
|
} from "./chunk-IDH3M4EI.js";
|
|
@@ -15,9 +15,9 @@ import {
|
|
|
15
15
|
createDatabase,
|
|
16
16
|
loadConfig,
|
|
17
17
|
resolveDataDir
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-DLDVXHI3.js";
|
|
19
|
+
import "./chunk-7KB5YGQZ.js";
|
|
20
|
+
import "./chunk-U2TFIUGE.js";
|
|
21
21
|
|
|
22
22
|
// src/commands/memory/dashboard/tui.tsx
|
|
23
23
|
import { render } from "ink";
|
|
@@ -1310,4 +1310,4 @@ async function startTui(options) {
|
|
|
1310
1310
|
export {
|
|
1311
1311
|
startTui
|
|
1312
1312
|
};
|
|
1313
|
-
//# sourceMappingURL=tui-
|
|
1313
|
+
//# sourceMappingURL=tui-3KITZCNS.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-launchpad",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Score your Claude Code config, fix the gaps with hooks and permissions, prove Claude follows your rules with eval. Includes persistent memory for Claude Code with free cross-machine sync (GitHub Gist), ranked context injection, and benchmarks that measure whether memory actually helps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|