picocode 0.9.197 → 0.9.199
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/daemon.js +141 -0
- package/dist/pico-dictate +0 -0
- package/dist/pico.js +3485 -3339
- package/package.json +2 -2
package/dist/daemon.js
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
// src/daemon.js
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { serveDaemon, daemonPaths } from "picocode-core/daemon-transport.js";
|
|
4
|
+
|
|
5
|
+
// src/daemon-session.js
|
|
6
|
+
import { buildProjectBoot } from "picocode-core/boot.js";
|
|
7
|
+
import { createController } from "picocode-core/controller.js";
|
|
8
|
+
import { createShellManager } from "picocode-core/shells.js";
|
|
9
|
+
import { createWakeupManager } from "picocode-core/wakeups.js";
|
|
10
|
+
import { createGitService } from "picocode-core/git.js";
|
|
11
|
+
import { readConfig } from "picocode-core/config.js";
|
|
12
|
+
import { defaultModel as defaultModel2 } from "picocode-core/models.js";
|
|
13
|
+
|
|
14
|
+
// src/model-runtime.js
|
|
15
|
+
import { discoverKeys, applyKeys, keyHint } from "picocode-core/keys.js";
|
|
16
|
+
import { loadCatalog, extractModels, adhocModel } from "picocode-core/catalog.js";
|
|
17
|
+
import { loadCodexModels } from "picocode-core/codex-models.js";
|
|
18
|
+
import { loadOpenRouterModels } from "picocode-core/openrouter-models.js";
|
|
19
|
+
import { openaiConnected, openaiCredentials } from "picocode-core/openai-auth.js";
|
|
20
|
+
import { defaultModel } from "picocode-core/models.js";
|
|
21
|
+
import { fuzzyScore } from "picocode-core/fuzzy.js";
|
|
22
|
+
var CATALOG_PROVIDERS = ["google", "anthropic", "openai", "xai"];
|
|
23
|
+
function codexContext(catalogData, model) {
|
|
24
|
+
const entry = catalogData.openai?.models?.[model.name.split("/")[1]];
|
|
25
|
+
return model.context ?? entry?.limit?.input ?? entry?.limit?.context ?? null;
|
|
26
|
+
}
|
|
27
|
+
async function buildModels({ providers, force }) {
|
|
28
|
+
const has = (provider) => providers.includes(provider);
|
|
29
|
+
const codexCredentials = has("codex") ? await openaiCredentials().catch(() => null) : null;
|
|
30
|
+
const [catalogData, codex, openrouter] = await Promise.all([
|
|
31
|
+
loadCatalog({ force }),
|
|
32
|
+
loadCodexModels(codexCredentials, { force }),
|
|
33
|
+
has("openrouter") ? loadOpenRouterModels({ force }) : []
|
|
34
|
+
]);
|
|
35
|
+
return [
|
|
36
|
+
...extractModels(catalogData, CATALOG_PROVIDERS).map((model) => ({
|
|
37
|
+
...model,
|
|
38
|
+
available: has(model.provider),
|
|
39
|
+
keyHint: keyHint(model.provider)
|
|
40
|
+
})),
|
|
41
|
+
...codex.map((model) => ({
|
|
42
|
+
...model,
|
|
43
|
+
context: codexContext(catalogData, model),
|
|
44
|
+
available: has("codex"),
|
|
45
|
+
keyHint: "/connect"
|
|
46
|
+
})),
|
|
47
|
+
...openrouter.map((model) => ({ ...model, available: true, keyHint: keyHint("openrouter") }))
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
async function loadModelRuntime() {
|
|
51
|
+
const chatgpt = await openaiConnected();
|
|
52
|
+
const providers = [...applyKeys(discoverKeys()), ...chatgpt ? ["codex"] : []];
|
|
53
|
+
const codexCredentials = chatgpt ? await openaiCredentials().catch(() => null) : null;
|
|
54
|
+
const loadModels = ({ force = false } = {}) => buildModels({ providers, force });
|
|
55
|
+
return { providers, models: await loadModels(), codexCredentials, loadModels };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/daemon-session.js
|
|
59
|
+
async function createDaemonSession({ cwd = process.cwd(), version, theme, detectedTheme, themePref } = {}) {
|
|
60
|
+
const { models, providers, loadModels } = await loadModelRuntime();
|
|
61
|
+
if (!providers.length) throw new Error("no model credentials found");
|
|
62
|
+
const config = await readConfig();
|
|
63
|
+
const notify = {};
|
|
64
|
+
const shells = createShellManager({ onChange: () => notify.shells?.(), onExit: (shell) => notify.shellExit?.(shell) });
|
|
65
|
+
const wakeups = createWakeupManager({ onChange: () => notify.wakeups?.(), onFire: (wakeup) => notify.wakeupFire?.(wakeup) });
|
|
66
|
+
const git = createGitService({ onChange: () => notify.git?.() });
|
|
67
|
+
const rebuild = (cwd2) => buildProjectBoot(cwd2, { onMcpChange: () => notify.mcp?.() });
|
|
68
|
+
let boot;
|
|
69
|
+
try {
|
|
70
|
+
boot = {
|
|
71
|
+
...await rebuild(cwd),
|
|
72
|
+
version,
|
|
73
|
+
theme,
|
|
74
|
+
detectedTheme,
|
|
75
|
+
themePref,
|
|
76
|
+
models,
|
|
77
|
+
providers,
|
|
78
|
+
initialModel: models.find((m) => m.name === config.defaultModel && m.available !== false) || defaultModel2(models),
|
|
79
|
+
researchModel: config.models?.researchWorker || null,
|
|
80
|
+
shellModel: config.models?.shell || null,
|
|
81
|
+
participantAModel: config.models?.participantA || null,
|
|
82
|
+
participantBModel: config.models?.participantB || null,
|
|
83
|
+
deliberationModel: config.models?.deliberation || config.models?.researchWorker || null,
|
|
84
|
+
researchAgentLimit: Number.isInteger(config.research?.agentLimit) && config.research.agentLimit >= 1 && config.research.agentLimit <= 100 ? config.research.agentLimit : 10,
|
|
85
|
+
initialEffort: ["low", "medium", "high", "max"].includes(config.defaultEffort) ? config.defaultEffort : null,
|
|
86
|
+
speedDefaults: config.speedDefaults,
|
|
87
|
+
autoCompact: config.autoCompact !== false,
|
|
88
|
+
clouds: config.animation?.clouds === true,
|
|
89
|
+
compactToolHistory: config.display?.compactToolHistory === true,
|
|
90
|
+
gitFooter: config.display?.gitStatus !== false,
|
|
91
|
+
wideSidebar: config.display?.wideSidebar !== false,
|
|
92
|
+
refs: {},
|
|
93
|
+
shells,
|
|
94
|
+
wakeups,
|
|
95
|
+
git,
|
|
96
|
+
rebuild,
|
|
97
|
+
refreshModels: () => loadModels({ force: true }),
|
|
98
|
+
setMcpNotify: (fn) => {
|
|
99
|
+
notify.mcp = fn;
|
|
100
|
+
},
|
|
101
|
+
setGitNotify: (fn) => {
|
|
102
|
+
notify.git = fn;
|
|
103
|
+
},
|
|
104
|
+
setShellsNotify: (fn) => {
|
|
105
|
+
notify.shells = fn;
|
|
106
|
+
},
|
|
107
|
+
setShellsExit: (fn) => {
|
|
108
|
+
notify.shellExit = fn;
|
|
109
|
+
},
|
|
110
|
+
setWakeupsNotify: (fn) => {
|
|
111
|
+
notify.wakeups = fn;
|
|
112
|
+
},
|
|
113
|
+
setWakeupsFire: (fn) => {
|
|
114
|
+
notify.wakeupFire = fn;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
git.retarget(boot.root);
|
|
118
|
+
git.setEnabled(boot.gitFooter);
|
|
119
|
+
const controller = createController({ boot });
|
|
120
|
+
boot.mcp.connectAll();
|
|
121
|
+
return { controller, dispose: () => {
|
|
122
|
+
git.dispose();
|
|
123
|
+
wakeups.cancelAll();
|
|
124
|
+
shells.killAll();
|
|
125
|
+
} };
|
|
126
|
+
} catch (error) {
|
|
127
|
+
git.dispose();
|
|
128
|
+
shells.killAll();
|
|
129
|
+
boot?.mcp.terminateAll();
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// src/daemon.js
|
|
135
|
+
var socket = process.argv[process.argv.indexOf("--socket") + 1];
|
|
136
|
+
var paths = process.argv.includes("--socket") ? { socket, directory: dirname(socket) } : daemonPaths();
|
|
137
|
+
var daemon = await serveDaemon({ paths, createSession: createDaemonSession, onClose: () => process.exit(0) });
|
|
138
|
+
for (const signal of ["SIGTERM", "SIGINT", "SIGHUP"]) process.on(signal, () => daemon.close().catch(() => process.exit(1)));
|
|
139
|
+
process.on("uncaughtException", () => daemon.close().finally(() => process.exit(1)));
|
|
140
|
+
process.on("unhandledRejection", () => daemon.close().finally(() => process.exit(1)));
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2RhZW1vbi5qcyIsICIuLi9zcmMvZGFlbW9uLXNlc3Npb24uanMiLCAiLi4vc3JjL21vZGVsLXJ1bnRpbWUuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgnXG5pbXBvcnQgeyBzZXJ2ZURhZW1vbiwgZGFlbW9uUGF0aHMgfSBmcm9tICdwaWNvY29kZS1jb3JlL2RhZW1vbi10cmFuc3BvcnQuanMnXG5pbXBvcnQgeyBjcmVhdGVEYWVtb25TZXNzaW9uIH0gZnJvbSAnLi9kYWVtb24tc2Vzc2lvbi5qcydcblxuY29uc3Qgc29ja2V0ID0gcHJvY2Vzcy5hcmd2W3Byb2Nlc3MuYXJndi5pbmRleE9mKCctLXNvY2tldCcpICsgMV1cbmNvbnN0IHBhdGhzID0gcHJvY2Vzcy5hcmd2LmluY2x1ZGVzKCctLXNvY2tldCcpID8geyBzb2NrZXQsIGRpcmVjdG9yeTogZGlybmFtZShzb2NrZXQpIH0gOiBkYWVtb25QYXRocygpXG5jb25zdCBkYWVtb24gPSBhd2FpdCBzZXJ2ZURhZW1vbih7IHBhdGhzLCBjcmVhdGVTZXNzaW9uOiBjcmVhdGVEYWVtb25TZXNzaW9uLCBvbkNsb3NlOiAoKSA9PiBwcm9jZXNzLmV4aXQoMCkgfSlcbmZvciAoY29uc3Qgc2lnbmFsIG9mIFsnU0lHVEVSTScsICdTSUdJTlQnLCAnU0lHSFVQJ10pIHByb2Nlc3Mub24oc2lnbmFsLCAoKSA9PiBkYWVtb24uY2xvc2UoKS5jYXRjaCgoKSA9PiBwcm9jZXNzLmV4aXQoMSkpKVxucHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoKSA9PiBkYWVtb24uY2xvc2UoKS5maW5hbGx5KCgpID0+IHByb2Nlc3MuZXhpdCgxKSkpXG5wcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoKSA9PiBkYWVtb24uY2xvc2UoKS5maW5hbGx5KCgpID0+IHByb2Nlc3MuZXhpdCgxKSkpXG4iLCAiaW1wb3J0IHsgYnVpbGRQcm9qZWN0Qm9vdCB9IGZyb20gJ3BpY29jb2RlLWNvcmUvYm9vdC5qcydcbmltcG9ydCB7IGNyZWF0ZUNvbnRyb2xsZXIgfSBmcm9tICdwaWNvY29kZS1jb3JlL2NvbnRyb2xsZXIuanMnXG5pbXBvcnQgeyBjcmVhdGVTaGVsbE1hbmFnZXIgfSBmcm9tICdwaWNvY29kZS1jb3JlL3NoZWxscy5qcydcbmltcG9ydCB7IGNyZWF0ZVdha2V1cE1hbmFnZXIgfSBmcm9tICdwaWNvY29kZS1jb3JlL3dha2V1cHMuanMnXG5pbXBvcnQgeyBjcmVhdGVHaXRTZXJ2aWNlIH0gZnJvbSAncGljb2NvZGUtY29yZS9naXQuanMnXG5pbXBvcnQgeyByZWFkQ29uZmlnIH0gZnJvbSAncGljb2NvZGUtY29yZS9jb25maWcuanMnXG5pbXBvcnQgeyBkZWZhdWx0TW9kZWwgfSBmcm9tICdwaWNvY29kZS1jb3JlL21vZGVscy5qcydcbmltcG9ydCB7IGxvYWRNb2RlbFJ1bnRpbWUgfSBmcm9tICcuL21vZGVsLXJ1bnRpbWUuanMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVEYWVtb25TZXNzaW9uKHsgY3dkID0gcHJvY2Vzcy5jd2QoKSwgdmVyc2lvbiwgdGhlbWUsIGRldGVjdGVkVGhlbWUsIHRoZW1lUHJlZiB9ID0ge30pIHtcbiAgY29uc3QgeyBtb2RlbHMsIHByb3ZpZGVycywgbG9hZE1vZGVscyB9ID0gYXdhaXQgbG9hZE1vZGVsUnVudGltZSgpXG4gIGlmICghcHJvdmlkZXJzLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdubyBtb2RlbCBjcmVkZW50aWFscyBmb3VuZCcpXG4gIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHJlYWRDb25maWcoKVxuICBjb25zdCBub3RpZnkgPSB7fVxuICBjb25zdCBzaGVsbHMgPSBjcmVhdGVTaGVsbE1hbmFnZXIoeyBvbkNoYW5nZTogKCkgPT4gbm90aWZ5LnNoZWxscz8uKCksIG9uRXhpdDogc2hlbGwgPT4gbm90aWZ5LnNoZWxsRXhpdD8uKHNoZWxsKSB9KVxuICBjb25zdCB3YWtldXBzID0gY3JlYXRlV2FrZXVwTWFuYWdlcih7IG9uQ2hhbmdlOiAoKSA9PiBub3RpZnkud2FrZXVwcz8uKCksIG9uRmlyZTogd2FrZXVwID0+IG5vdGlmeS53YWtldXBGaXJlPy4od2FrZXVwKSB9KVxuICBjb25zdCBnaXQgPSBjcmVhdGVHaXRTZXJ2aWNlKHsgb25DaGFuZ2U6ICgpID0+IG5vdGlmeS5naXQ/LigpIH0pXG4gIGNvbnN0IHJlYnVpbGQgPSBjd2QgPT4gYnVpbGRQcm9qZWN0Qm9vdChjd2QsIHsgb25NY3BDaGFuZ2U6ICgpID0+IG5vdGlmeS5tY3A/LigpIH0pXG4gIGxldCBib290XG4gIHRyeSB7XG4gICAgYm9vdCA9IHtcbiAgICAgIC4uLmF3YWl0IHJlYnVpbGQoY3dkKSwgdmVyc2lvbiwgdGhlbWUsIGRldGVjdGVkVGhlbWUsIHRoZW1lUHJlZixcbiAgICAgIG1vZGVscywgcHJvdmlkZXJzLCBpbml0aWFsTW9kZWw6IG1vZGVscy5maW5kKG0gPT4gbS5uYW1lID09PSBjb25maWcuZGVmYXVsdE1vZGVsICYmIG0uYXZhaWxhYmxlICE9PSBmYWxzZSkgfHwgZGVmYXVsdE1vZGVsKG1vZGVscyksXG4gICAgICByZXNlYXJjaE1vZGVsOiBjb25maWcubW9kZWxzPy5yZXNlYXJjaFdvcmtlciB8fCBudWxsLCBzaGVsbE1vZGVsOiBjb25maWcubW9kZWxzPy5zaGVsbCB8fCBudWxsLFxuICAgICAgcGFydGljaXBhbnRBTW9kZWw6IGNvbmZpZy5tb2RlbHM/LnBhcnRpY2lwYW50QSB8fCBudWxsLCBwYXJ0aWNpcGFudEJNb2RlbDogY29uZmlnLm1vZGVscz8ucGFydGljaXBhbnRCIHx8IG51bGwsXG4gICAgICBkZWxpYmVyYXRpb25Nb2RlbDogY29uZmlnLm1vZGVscz8uZGVsaWJlcmF0aW9uIHx8IGNvbmZpZy5tb2RlbHM/LnJlc2VhcmNoV29ya2VyIHx8IG51bGwsXG4gICAgICByZXNlYXJjaEFnZW50TGltaXQ6IE51bWJlci5pc0ludGVnZXIoY29uZmlnLnJlc2VhcmNoPy5hZ2VudExpbWl0KSAmJiBjb25maWcucmVzZWFyY2guYWdlbnRMaW1pdCA+PSAxICYmIGNvbmZpZy5yZXNlYXJjaC5hZ2VudExpbWl0IDw9IDEwMCA/IGNvbmZpZy5yZXNlYXJjaC5hZ2VudExpbWl0IDogMTAsXG4gICAgICBpbml0aWFsRWZmb3J0OiBbJ2xvdycsICdtZWRpdW0nLCAnaGlnaCcsICdtYXgnXS5pbmNsdWRlcyhjb25maWcuZGVmYXVsdEVmZm9ydCkgPyBjb25maWcuZGVmYXVsdEVmZm9ydCA6IG51bGwsIHNwZWVkRGVmYXVsdHM6IGNvbmZpZy5zcGVlZERlZmF1bHRzLFxuICAgICAgYXV0b0NvbXBhY3Q6IGNvbmZpZy5hdXRvQ29tcGFjdCAhPT0gZmFsc2UsIGNsb3VkczogY29uZmlnLmFuaW1hdGlvbj8uY2xvdWRzID09PSB0cnVlLFxuICAgICAgY29tcGFjdFRvb2xIaXN0b3J5OiBjb25maWcuZGlzcGxheT8uY29tcGFjdFRvb2xIaXN0b3J5ID09PSB0cnVlLCBnaXRGb290ZXI6IGNvbmZpZy5kaXNwbGF5Py5naXRTdGF0dXMgIT09IGZhbHNlLFxuICAgICAgd2lkZVNpZGViYXI6IGNvbmZpZy5kaXNwbGF5Py53aWRlU2lkZWJhciAhPT0gZmFsc2UsIHJlZnM6IHt9LCBzaGVsbHMsIHdha2V1cHMsIGdpdCwgcmVidWlsZCxcbiAgICAgIHJlZnJlc2hNb2RlbHM6ICgpID0+IGxvYWRNb2RlbHMoeyBmb3JjZTogdHJ1ZSB9KSxcbiAgICAgIHNldE1jcE5vdGlmeTogZm4gPT4geyBub3RpZnkubWNwID0gZm4gfSwgc2V0R2l0Tm90aWZ5OiBmbiA9PiB7IG5vdGlmeS5naXQgPSBmbiB9LFxuICAgICAgc2V0U2hlbGxzTm90aWZ5OiBmbiA9PiB7IG5vdGlmeS5zaGVsbHMgPSBmbiB9LCBzZXRTaGVsbHNFeGl0OiBmbiA9PiB7IG5vdGlmeS5zaGVsbEV4aXQgPSBmbiB9LFxuICAgICAgc2V0V2FrZXVwc05vdGlmeTogZm4gPT4geyBub3RpZnkud2FrZXVwcyA9IGZuIH0sIHNldFdha2V1cHNGaXJlOiBmbiA9PiB7IG5vdGlmeS53YWtldXBGaXJlID0gZm4gfSxcbiAgICB9XG4gICAgZ2l0LnJldGFyZ2V0KGJvb3Qucm9vdClcbiAgICBnaXQuc2V0RW5hYmxlZChib290LmdpdEZvb3RlcilcbiAgICBjb25zdCBjb250cm9sbGVyID0gY3JlYXRlQ29udHJvbGxlcih7IGJvb3QgfSlcbiAgICBib290Lm1jcC5jb25uZWN0QWxsKClcbiAgICByZXR1cm4geyBjb250cm9sbGVyLCBkaXNwb3NlOiAoKSA9PiB7IGdpdC5kaXNwb3NlKCk7IHdha2V1cHMuY2FuY2VsQWxsKCk7IHNoZWxscy5raWxsQWxsKCkgfSB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7IGdpdC5kaXNwb3NlKCk7IHNoZWxscy5raWxsQWxsKCk7IGJvb3Q/Lm1jcC50ZXJtaW5hdGVBbGwoKTsgdGhyb3cgZXJyb3IgfVxufVxuIiwgImltcG9ydCB7IGRpc2NvdmVyS2V5cywgYXBwbHlLZXlzLCBrZXlIaW50IH0gZnJvbSAncGljb2NvZGUtY29yZS9rZXlzLmpzJ1xuaW1wb3J0IHsgbG9hZENhdGFsb2csIGV4dHJhY3RNb2RlbHMsIGFkaG9jTW9kZWwgfSBmcm9tICdwaWNvY29kZS1jb3JlL2NhdGFsb2cuanMnXG5pbXBvcnQgeyBsb2FkQ29kZXhNb2RlbHMgfSBmcm9tICdwaWNvY29kZS1jb3JlL2NvZGV4LW1vZGVscy5qcydcbmltcG9ydCB7IGxvYWRPcGVuUm91dGVyTW9kZWxzIH0gZnJvbSAncGljb2NvZGUtY29yZS9vcGVucm91dGVyLW1vZGVscy5qcydcbmltcG9ydCB7IG9wZW5haUNvbm5lY3RlZCwgb3BlbmFpQ3JlZGVudGlhbHMgfSBmcm9tICdwaWNvY29kZS1jb3JlL29wZW5haS1hdXRoLmpzJ1xuaW1wb3J0IHsgZGVmYXVsdE1vZGVsIH0gZnJvbSAncGljb2NvZGUtY29yZS9tb2RlbHMuanMnXG5pbXBvcnQgeyBmdXp6eVNjb3JlIH0gZnJvbSAncGljb2NvZGUtY29yZS9mdXp6eS5qcydcblxuY29uc3QgQ0FUQUxPR19QUk9WSURFUlMgPSBbJ2dvb2dsZScsICdhbnRocm9waWMnLCAnb3BlbmFpJywgJ3hhaSddXG5cbmZ1bmN0aW9uIGNvZGV4Q29udGV4dChjYXRhbG9nRGF0YSwgbW9kZWwpIHtcbiAgY29uc3QgZW50cnkgPSBjYXRhbG9nRGF0YS5vcGVuYWk/Lm1vZGVscz8uW21vZGVsLm5hbWUuc3BsaXQoJy8nKVsxXV1cbiAgcmV0dXJuIG1vZGVsLmNvbnRleHQgPz8gZW50cnk/LmxpbWl0Py5pbnB1dCA/PyBlbnRyeT8ubGltaXQ/LmNvbnRleHQgPz8gbnVsbFxufVxuXG5hc3luYyBmdW5jdGlvbiBidWlsZE1vZGVscyh7IHByb3ZpZGVycywgZm9yY2UgfSkge1xuICBjb25zdCBoYXMgPSAocHJvdmlkZXIpID0+IHByb3ZpZGVycy5pbmNsdWRlcyhwcm92aWRlcilcbiAgY29uc3QgY29kZXhDcmVkZW50aWFscyA9IGhhcygnY29kZXgnKSA/IGF3YWl0IG9wZW5haUNyZWRlbnRpYWxzKCkuY2F0Y2goKCkgPT4gbnVsbCkgOiBudWxsXG4gIGNvbnN0IFtjYXRhbG9nRGF0YSwgY29kZXgsIG9wZW5yb3V0ZXJdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIGxvYWRDYXRhbG9nKHsgZm9yY2UgfSksXG4gICAgbG9hZENvZGV4TW9kZWxzKGNvZGV4Q3JlZGVudGlhbHMsIHsgZm9yY2UgfSksXG4gICAgaGFzKCdvcGVucm91dGVyJykgPyBsb2FkT3BlblJvdXRlck1vZGVscyh7IGZvcmNlIH0pIDogW10sXG4gIF0pXG4gIHJldHVybiBbXG4gICAgLi4uZXh0cmFjdE1vZGVscyhjYXRhbG9nRGF0YSwgQ0FUQUxPR19QUk9WSURFUlMpLm1hcCgobW9kZWwpID0+ICh7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGF2YWlsYWJsZTogaGFzKG1vZGVsLnByb3ZpZGVyKSxcbiAgICAgIGtleUhpbnQ6IGtleUhpbnQobW9kZWwucHJvdmlkZXIpLFxuICAgIH0pKSxcbiAgICAuLi5jb2RleC5tYXAoKG1vZGVsKSA9PiAoe1xuICAgICAgLi4ubW9kZWwsXG4gICAgICBjb250ZXh0OiBjb2RleENvbnRleHQoY2F0YWxvZ0RhdGEsIG1vZGVsKSxcbiAgICAgIGF2YWlsYWJsZTogaGFzKCdjb2RleCcpLFxuICAgICAga2V5SGludDogJy9jb25uZWN0JyxcbiAgICB9KSksXG4gICAgLi4ub3BlbnJvdXRlci5tYXAoKG1vZGVsKSA9PiAoeyAuLi5tb2RlbCwgYXZhaWxhYmxlOiB0cnVlLCBrZXlIaW50OiBrZXlIaW50KCdvcGVucm91dGVyJykgfSkpLFxuICBdXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkTW9kZWxSdW50aW1lKCkge1xuICBjb25zdCBjaGF0Z3B0ID0gYXdhaXQgb3BlbmFpQ29ubmVjdGVkKClcbiAgY29uc3QgcHJvdmlkZXJzID0gWy4uLmFwcGx5S2V5cyhkaXNjb3ZlcktleXMoKSksIC4uLihjaGF0Z3B0ID8gWydjb2RleCddIDogW10pXVxuICBjb25zdCBjb2RleENyZWRlbnRpYWxzID0gY2hhdGdwdCA/IGF3YWl0IG9wZW5haUNyZWRlbnRpYWxzKCkuY2F0Y2goKCkgPT4gbnVsbCkgOiBudWxsXG4gIGNvbnN0IGxvYWRNb2RlbHMgPSAoeyBmb3JjZSA9IGZhbHNlIH0gPSB7fSkgPT4gYnVpbGRNb2RlbHMoeyBwcm92aWRlcnMsIGZvcmNlIH0pXG4gIHJldHVybiB7IHByb3ZpZGVycywgbW9kZWxzOiBhd2FpdCBsb2FkTW9kZWxzKCksIGNvZGV4Q3JlZGVudGlhbHMsIGxvYWRNb2RlbHMgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGVsKG1vZGVscywgcHJvdmlkZXJzLCBuYW1lKSB7XG4gIGlmICghbmFtZSkgcmV0dXJuIG51bGxcbiAgY29uc3QgZXhhY3QgPSBtb2RlbHMuZmluZCgobW9kZWwpID0+IG1vZGVsLm5hbWUgPT09IG5hbWUpXG4gIGlmIChleGFjdCkgcmV0dXJuIGV4YWN0XG4gIGlmIChuYW1lLmluY2x1ZGVzKCcvJykpIHJldHVybiBhZGhvY01vZGVsKG5hbWUsIHByb3ZpZGVycylcbiAgY29uc3QgYXZhaWxhYmxlID0gbW9kZWxzLmZpbHRlcigobW9kZWwpID0+IG1vZGVsLmF2YWlsYWJsZSAhPT0gZmFsc2UpXG4gIHJldHVybiBhdmFpbGFibGVcbiAgICAgIC5tYXAoKG1vZGVsKSA9PiBbZnV6enlTY29yZShuYW1lLCBtb2RlbC5uYW1lKSwgbW9kZWxdKVxuICAgICAgLmZpbHRlcigoW3Njb3JlXSkgPT4gc2NvcmUgPj0gMClcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBiWzBdIC0gYVswXSlbMF0/LlsxXVxuICAgIHx8IG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlbGVjdE1vZGVsKHsgbW9kZWxzLCBwcm92aWRlcnMsIHJlcXVlc3RlZCwgY29uZmlndXJlZCB9KSB7XG4gIHJldHVybiByZXNvbHZlTW9kZWwobW9kZWxzLCBwcm92aWRlcnMsIHJlcXVlc3RlZClcbiAgICB8fCAoY29uZmlndXJlZCAmJiBtb2RlbHMuZmluZCgobW9kZWwpID0+IG1vZGVsLm5hbWUgPT09IGNvbmZpZ3VyZWQgJiYgbW9kZWwuYXZhaWxhYmxlKSlcbiAgICB8fCBkZWZhdWx0TW9kZWwobW9kZWxzKVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBLFNBQVMsZUFBZTtBQUN4QixTQUFTLGFBQWEsbUJBQW1COzs7QUNEekMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUywwQkFBMEI7QUFDbkMsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxrQkFBa0I7QUFDM0IsU0FBUyxnQkFBQUEscUJBQW9COzs7QUNON0IsU0FBUyxjQUFjLFdBQVcsZUFBZTtBQUNqRCxTQUFTLGFBQWEsZUFBZSxrQkFBa0I7QUFDdkQsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxpQkFBaUIseUJBQXlCO0FBQ25ELFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsa0JBQWtCO0FBRTNCLElBQU0sb0JBQW9CLENBQUMsVUFBVSxh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
|
package/dist/pico-dictate
CHANGED
|
Binary file
|