va-claw 0.1.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/CONTRIBUTING.md +36 -0
- package/LICENSE +21 -0
- package/README.md +337 -0
- package/bin/va-claw +3 -0
- package/bin/va-claw.mjs +3 -0
- package/docs/README.md +6 -0
- package/index.html +728 -0
- package/package.json +43 -0
- package/packages/channels/discord/dist/.tsbuildinfo +1 -0
- package/packages/channels/discord/dist/cli-runner.d.ts +18 -0
- package/packages/channels/discord/dist/cli-runner.d.ts.map +1 -0
- package/packages/channels/discord/dist/cli-runner.js +58 -0
- package/packages/channels/discord/dist/cli-runner.js.map +1 -0
- package/packages/channels/discord/dist/cli-runner.test.d.ts +2 -0
- package/packages/channels/discord/dist/cli-runner.test.d.ts.map +1 -0
- package/packages/channels/discord/dist/cli-runner.test.js +173 -0
- package/packages/channels/discord/dist/cli-runner.test.js.map +1 -0
- package/packages/channels/discord/dist/discord-client.d.ts +3 -0
- package/packages/channels/discord/dist/discord-client.d.ts.map +1 -0
- package/packages/channels/discord/dist/discord-client.js +49 -0
- package/packages/channels/discord/dist/discord-client.js.map +1 -0
- package/packages/channels/discord/dist/format.d.ts +6 -0
- package/packages/channels/discord/dist/format.d.ts.map +1 -0
- package/packages/channels/discord/dist/format.js +19 -0
- package/packages/channels/discord/dist/format.js.map +1 -0
- package/packages/channels/discord/dist/format.test.d.ts +2 -0
- package/packages/channels/discord/dist/format.test.d.ts.map +1 -0
- package/packages/channels/discord/dist/format.test.js +63 -0
- package/packages/channels/discord/dist/format.test.js.map +1 -0
- package/packages/channels/discord/dist/index.d.ts +3 -0
- package/packages/channels/discord/dist/index.d.ts.map +1 -0
- package/packages/channels/discord/dist/index.js +2 -0
- package/packages/channels/discord/dist/index.js.map +1 -0
- package/packages/channels/discord/dist/prompt.d.ts +4 -0
- package/packages/channels/discord/dist/prompt.d.ts.map +1 -0
- package/packages/channels/discord/dist/prompt.js +28 -0
- package/packages/channels/discord/dist/prompt.js.map +1 -0
- package/packages/channels/discord/dist/prompt.test.d.ts +2 -0
- package/packages/channels/discord/dist/prompt.test.d.ts.map +1 -0
- package/packages/channels/discord/dist/prompt.test.js +130 -0
- package/packages/channels/discord/dist/prompt.test.js.map +1 -0
- package/packages/channels/discord/dist/runtime.d.ts +11 -0
- package/packages/channels/discord/dist/runtime.d.ts.map +1 -0
- package/packages/channels/discord/dist/runtime.js +66 -0
- package/packages/channels/discord/dist/runtime.js.map +1 -0
- package/packages/channels/discord/dist/runtime.test.d.ts +2 -0
- package/packages/channels/discord/dist/runtime.test.d.ts.map +1 -0
- package/packages/channels/discord/dist/runtime.test.js +107 -0
- package/packages/channels/discord/dist/runtime.test.js.map +1 -0
- package/packages/channels/discord/dist/types.d.ts +30 -0
- package/packages/channels/discord/dist/types.d.ts.map +1 -0
- package/packages/channels/discord/dist/types.js +2 -0
- package/packages/channels/discord/dist/types.js.map +1 -0
- package/packages/channels/discord/package.json +21 -0
- package/packages/channels/dist/.tsbuildinfo +1 -0
- package/packages/channels/dist/index.d.ts +14 -0
- package/packages/channels/dist/index.d.ts.map +1 -0
- package/packages/channels/dist/index.js +25 -0
- package/packages/channels/dist/index.js.map +1 -0
- package/packages/channels/package.json +23 -0
- package/packages/channels/slack/dist/.tsbuildinfo +1 -0
- package/packages/channels/slack/dist/cli.d.ts +7 -0
- package/packages/channels/slack/dist/cli.d.ts.map +1 -0
- package/packages/channels/slack/dist/cli.js +53 -0
- package/packages/channels/slack/dist/cli.js.map +1 -0
- package/packages/channels/slack/dist/cli.test.d.ts +2 -0
- package/packages/channels/slack/dist/cli.test.d.ts.map +1 -0
- package/packages/channels/slack/dist/cli.test.js +43 -0
- package/packages/channels/slack/dist/cli.test.js.map +1 -0
- package/packages/channels/slack/dist/index.d.ts +7 -0
- package/packages/channels/slack/dist/index.d.ts.map +1 -0
- package/packages/channels/slack/dist/index.js +28 -0
- package/packages/channels/slack/dist/index.js.map +1 -0
- package/packages/channels/slack/dist/message.d.ts +15 -0
- package/packages/channels/slack/dist/message.d.ts.map +1 -0
- package/packages/channels/slack/dist/message.js +38 -0
- package/packages/channels/slack/dist/message.js.map +1 -0
- package/packages/channels/slack/dist/slack.test.d.ts +2 -0
- package/packages/channels/slack/dist/slack.test.d.ts.map +1 -0
- package/packages/channels/slack/dist/slack.test.js +23 -0
- package/packages/channels/slack/dist/slack.test.js.map +1 -0
- package/packages/channels/slack/dist/types.d.ts +22 -0
- package/packages/channels/slack/dist/types.d.ts.map +1 -0
- package/packages/channels/slack/dist/types.js +2 -0
- package/packages/channels/slack/dist/types.js.map +1 -0
- package/packages/channels/slack/package.json +21 -0
- package/packages/channels/telegram/dist/.tsbuildinfo +1 -0
- package/packages/channels/telegram/dist/cli.d.ts +13 -0
- package/packages/channels/telegram/dist/cli.d.ts.map +1 -0
- package/packages/channels/telegram/dist/cli.js +53 -0
- package/packages/channels/telegram/dist/cli.js.map +1 -0
- package/packages/channels/telegram/dist/cli.test.d.ts +2 -0
- package/packages/channels/telegram/dist/cli.test.d.ts.map +1 -0
- package/packages/channels/telegram/dist/cli.test.js +167 -0
- package/packages/channels/telegram/dist/cli.test.js.map +1 -0
- package/packages/channels/telegram/dist/index.d.ts +7 -0
- package/packages/channels/telegram/dist/index.d.ts.map +1 -0
- package/packages/channels/telegram/dist/index.js +21 -0
- package/packages/channels/telegram/dist/index.js.map +1 -0
- package/packages/channels/telegram/dist/message.d.ts +6 -0
- package/packages/channels/telegram/dist/message.d.ts.map +1 -0
- package/packages/channels/telegram/dist/message.js +33 -0
- package/packages/channels/telegram/dist/message.js.map +1 -0
- package/packages/channels/telegram/dist/telegram.test.d.ts +2 -0
- package/packages/channels/telegram/dist/telegram.test.d.ts.map +1 -0
- package/packages/channels/telegram/dist/telegram.test.js +25 -0
- package/packages/channels/telegram/dist/telegram.test.js.map +1 -0
- package/packages/channels/telegram/dist/types.d.ts +20 -0
- package/packages/channels/telegram/dist/types.d.ts.map +1 -0
- package/packages/channels/telegram/dist/types.js +2 -0
- package/packages/channels/telegram/dist/types.js.map +1 -0
- package/packages/channels/telegram/package.json +21 -0
- package/packages/cli/dist/.tsbuildinfo +1 -0
- package/packages/cli/dist/bin/va-claw.d.mts +3 -0
- package/packages/cli/dist/bin/va-claw.d.mts.map +1 -0
- package/packages/cli/dist/bin/va-claw.mjs +4 -0
- package/packages/cli/dist/bin/va-claw.mjs.map +1 -0
- package/packages/cli/dist/channel-handlers.d.ts +8 -0
- package/packages/cli/dist/channel-handlers.d.ts.map +1 -0
- package/packages/cli/dist/channel-handlers.js +80 -0
- package/packages/cli/dist/channel-handlers.js.map +1 -0
- package/packages/cli/dist/deps-exports.d.ts +3 -0
- package/packages/cli/dist/deps-exports.d.ts.map +1 -0
- package/packages/cli/dist/deps-exports.js +3 -0
- package/packages/cli/dist/deps-exports.js.map +1 -0
- package/packages/cli/dist/deps.d.ts +3 -0
- package/packages/cli/dist/deps.d.ts.map +1 -0
- package/packages/cli/dist/deps.js +81 -0
- package/packages/cli/dist/deps.js.map +1 -0
- package/packages/cli/dist/handlers.d.ts +33 -0
- package/packages/cli/dist/handlers.d.ts.map +1 -0
- package/packages/cli/dist/handlers.js +207 -0
- package/packages/cli/dist/handlers.js.map +1 -0
- package/packages/cli/dist/index.d.ts +10 -0
- package/packages/cli/dist/index.d.ts.map +1 -0
- package/packages/cli/dist/index.js +9 -0
- package/packages/cli/dist/index.js.map +1 -0
- package/packages/cli/dist/install-files.d.ts +11 -0
- package/packages/cli/dist/install-files.d.ts.map +1 -0
- package/packages/cli/dist/install-files.js +72 -0
- package/packages/cli/dist/install-files.js.map +1 -0
- package/packages/cli/dist/memory-status.d.ts +3 -0
- package/packages/cli/dist/memory-status.d.ts.map +1 -0
- package/packages/cli/dist/memory-status.js +45 -0
- package/packages/cli/dist/memory-status.js.map +1 -0
- package/packages/cli/dist/output.d.ts +8 -0
- package/packages/cli/dist/output.d.ts.map +1 -0
- package/packages/cli/dist/output.js +45 -0
- package/packages/cli/dist/output.js.map +1 -0
- package/packages/cli/dist/platform.d.ts +6 -0
- package/packages/cli/dist/platform.d.ts.map +1 -0
- package/packages/cli/dist/platform.js +31 -0
- package/packages/cli/dist/platform.js.map +1 -0
- package/packages/cli/dist/program.d.ts +5 -0
- package/packages/cli/dist/program.d.ts.map +1 -0
- package/packages/cli/dist/program.js +116 -0
- package/packages/cli/dist/program.js.map +1 -0
- package/packages/cli/dist/test-helpers.d.ts +7 -0
- package/packages/cli/dist/test-helpers.d.ts.map +1 -0
- package/packages/cli/dist/test-helpers.js +91 -0
- package/packages/cli/dist/test-helpers.js.map +1 -0
- package/packages/cli/dist/types.d.ts +82 -0
- package/packages/cli/dist/types.d.ts.map +1 -0
- package/packages/cli/dist/types.js +2 -0
- package/packages/cli/dist/types.js.map +1 -0
- package/packages/cli/dist/wait.d.ts +2 -0
- package/packages/cli/dist/wait.d.ts.map +1 -0
- package/packages/cli/dist/wait.js +25 -0
- package/packages/cli/dist/wait.js.map +1 -0
- package/packages/cli/package.json +29 -0
- package/packages/daemon/dist/.tsbuildinfo +1 -0
- package/packages/daemon/dist/cli-adapter.d.ts +14 -0
- package/packages/daemon/dist/cli-adapter.d.ts.map +1 -0
- package/packages/daemon/dist/cli-adapter.js +30 -0
- package/packages/daemon/dist/cli-adapter.js.map +1 -0
- package/packages/daemon/dist/index.d.ts +5 -0
- package/packages/daemon/dist/index.d.ts.map +1 -0
- package/packages/daemon/dist/index.js +4 -0
- package/packages/daemon/dist/index.js.map +1 -0
- package/packages/daemon/dist/runner.d.ts +2 -0
- package/packages/daemon/dist/runner.d.ts.map +1 -0
- package/packages/daemon/dist/runner.js +18 -0
- package/packages/daemon/dist/runner.js.map +1 -0
- package/packages/daemon/dist/runtime.d.ts +24 -0
- package/packages/daemon/dist/runtime.d.ts.map +1 -0
- package/packages/daemon/dist/runtime.js +83 -0
- package/packages/daemon/dist/runtime.js.map +1 -0
- package/packages/daemon/dist/service-files.d.ts +13 -0
- package/packages/daemon/dist/service-files.d.ts.map +1 -0
- package/packages/daemon/dist/service-files.js +84 -0
- package/packages/daemon/dist/service-files.js.map +1 -0
- package/packages/daemon/dist/service.d.ts +4 -0
- package/packages/daemon/dist/service.d.ts.map +1 -0
- package/packages/daemon/dist/service.js +31 -0
- package/packages/daemon/dist/service.js.map +1 -0
- package/packages/daemon/dist/types.d.ts +11 -0
- package/packages/daemon/dist/types.d.ts.map +1 -0
- package/packages/daemon/dist/types.js +2 -0
- package/packages/daemon/dist/types.js.map +1 -0
- package/packages/daemon/dist/wake-cycle.d.ts +17 -0
- package/packages/daemon/dist/wake-cycle.d.ts.map +1 -0
- package/packages/daemon/dist/wake-cycle.js +58 -0
- package/packages/daemon/dist/wake-cycle.js.map +1 -0
- package/packages/daemon/package.json +22 -0
- package/packages/identity/dist/.tsbuildinfo +1 -0
- package/packages/identity/dist/defaults.d.ts +5 -0
- package/packages/identity/dist/defaults.d.ts.map +1 -0
- package/packages/identity/dist/defaults.js +70 -0
- package/packages/identity/dist/defaults.js.map +1 -0
- package/packages/identity/dist/index.d.ts +6 -0
- package/packages/identity/dist/index.d.ts.map +1 -0
- package/packages/identity/dist/index.js +5 -0
- package/packages/identity/dist/index.js.map +1 -0
- package/packages/identity/dist/path.d.ts +3 -0
- package/packages/identity/dist/path.d.ts.map +1 -0
- package/packages/identity/dist/path.js +16 -0
- package/packages/identity/dist/path.js.map +1 -0
- package/packages/identity/dist/render.d.ts +4 -0
- package/packages/identity/dist/render.d.ts.map +1 -0
- package/packages/identity/dist/render.js +34 -0
- package/packages/identity/dist/render.js.map +1 -0
- package/packages/identity/dist/storage.d.ts +4 -0
- package/packages/identity/dist/storage.d.ts.map +1 -0
- package/packages/identity/dist/storage.js +27 -0
- package/packages/identity/dist/storage.js.map +1 -0
- package/packages/identity/dist/types.d.ts +29 -0
- package/packages/identity/dist/types.d.ts.map +1 -0
- package/packages/identity/dist/types.js +2 -0
- package/packages/identity/dist/types.js.map +1 -0
- package/packages/identity/dist/wizard.d.ts +3 -0
- package/packages/identity/dist/wizard.d.ts.map +1 -0
- package/packages/identity/dist/wizard.js +37 -0
- package/packages/identity/dist/wizard.js.map +1 -0
- package/packages/identity/package.json +21 -0
- package/packages/identity/test/identity.test.mjs +71 -0
- package/packages/identity/test/storage.test.mjs +91 -0
- package/packages/identity/vendor/clack-prompts/index.d.ts +10 -0
- package/packages/identity/vendor/clack-prompts/index.js +55 -0
- package/packages/identity/vendor/clack-prompts/package.json +11 -0
- package/packages/memory/dist/.tsbuildinfo +1 -0
- package/packages/memory/dist/default-store.d.ts +21 -0
- package/packages/memory/dist/default-store.d.ts.map +1 -0
- package/packages/memory/dist/default-store.js +52 -0
- package/packages/memory/dist/default-store.js.map +1 -0
- package/packages/memory/dist/embedding.d.ts +6 -0
- package/packages/memory/dist/embedding.d.ts.map +1 -0
- package/packages/memory/dist/embedding.js +56 -0
- package/packages/memory/dist/embedding.js.map +1 -0
- package/packages/memory/dist/forgetting-curve.d.ts +3 -0
- package/packages/memory/dist/forgetting-curve.d.ts.map +1 -0
- package/packages/memory/dist/forgetting-curve.js +21 -0
- package/packages/memory/dist/forgetting-curve.js.map +1 -0
- package/packages/memory/dist/index.d.ts +5 -0
- package/packages/memory/dist/index.d.ts.map +1 -0
- package/packages/memory/dist/index.js +4 -0
- package/packages/memory/dist/index.js.map +1 -0
- package/packages/memory/dist/memory-store.d.ts +39 -0
- package/packages/memory/dist/memory-store.d.ts.map +1 -0
- package/packages/memory/dist/memory-store.js +417 -0
- package/packages/memory/dist/memory-store.js.map +1 -0
- package/packages/memory/dist/sqlite.d.ts +19 -0
- package/packages/memory/dist/sqlite.d.ts.map +1 -0
- package/packages/memory/dist/sqlite.js +195 -0
- package/packages/memory/dist/sqlite.js.map +1 -0
- package/packages/memory/dist/types.d.ts +43 -0
- package/packages/memory/dist/types.d.ts.map +1 -0
- package/packages/memory/dist/types.js +2 -0
- package/packages/memory/dist/types.js.map +1 -0
- package/packages/memory/package.json +18 -0
- package/packages/skills/dist/.tsbuildinfo +1 -0
- package/packages/skills/dist/frontmatter.d.ts +3 -0
- package/packages/skills/dist/frontmatter.d.ts.map +1 -0
- package/packages/skills/dist/frontmatter.js +85 -0
- package/packages/skills/dist/frontmatter.js.map +1 -0
- package/packages/skills/dist/index.d.ts +6 -0
- package/packages/skills/dist/index.d.ts.map +1 -0
- package/packages/skills/dist/index.js +5 -0
- package/packages/skills/dist/index.js.map +1 -0
- package/packages/skills/dist/paths.d.ts +13 -0
- package/packages/skills/dist/paths.d.ts.map +1 -0
- package/packages/skills/dist/paths.js +43 -0
- package/packages/skills/dist/paths.js.map +1 -0
- package/packages/skills/dist/search.d.ts +3 -0
- package/packages/skills/dist/search.d.ts.map +1 -0
- package/packages/skills/dist/search.js +20 -0
- package/packages/skills/dist/search.js.map +1 -0
- package/packages/skills/dist/store.d.ts +8 -0
- package/packages/skills/dist/store.d.ts.map +1 -0
- package/packages/skills/dist/store.js +75 -0
- package/packages/skills/dist/store.js.map +1 -0
- package/packages/skills/dist/types.d.ts +9 -0
- package/packages/skills/dist/types.d.ts.map +1 -0
- package/packages/skills/dist/types.js +2 -0
- package/packages/skills/dist/types.js.map +1 -0
- package/packages/skills/package.json +18 -0
- package/skills/install-va-claw.md +180 -0
- package/vendor/commander/index.d.ts +16 -0
- package/vendor/commander/index.js +110 -0
- package/vendor/commander/package.json +11 -0
- package/vendor/croner/LICENSE +22 -0
- package/vendor/croner/README.md +339 -0
- package/vendor/croner/dist/croner.cjs +1 -0
- package/vendor/croner/dist/croner.d.cts +693 -0
- package/vendor/croner/dist/croner.d.ts +693 -0
- package/vendor/croner/dist/croner.js +1 -0
- package/vendor/croner/dist/croner.umd.js +1 -0
- package/vendor/croner/package.json +73 -0
- package/vendor/discord.js/index.d.ts +22 -0
- package/vendor/discord.js/index.js +37 -0
- package/vendor/discord.js/package.json +7 -0
- package/vendor/grammy/index.d.ts +43 -0
- package/vendor/grammy/index.js +89 -0
- package/vendor/grammy/package.json +7 -0
- package/vendor/slack-bolt/index.d.ts +29 -0
- package/vendor/slack-bolt/index.js +72 -0
- package/vendor/slack-bolt/package.json +7 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Cron } from "croner";
|
|
2
|
+
import { runWakeCycle } from "./wake-cycle.js";
|
|
3
|
+
const runtimeState = {
|
|
4
|
+
discord: null,
|
|
5
|
+
job: null,
|
|
6
|
+
wakeCount: 0,
|
|
7
|
+
};
|
|
8
|
+
let runtimeDeps = {
|
|
9
|
+
createScheduler(pattern, onTick) {
|
|
10
|
+
const job = new Cron(pattern, { catch: false }, () => {
|
|
11
|
+
void onTick().catch((error) => {
|
|
12
|
+
console.warn(`[va-claw/daemon] wake tick failed: ${String(error)}`);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
return { stop: () => job.stop() };
|
|
16
|
+
},
|
|
17
|
+
async startDiscord(config) {
|
|
18
|
+
const moduleUrl = new URL("../../channels/discord/dist/index.js", import.meta.url);
|
|
19
|
+
const channelModule = await import(moduleUrl.href);
|
|
20
|
+
return channelModule.startDiscordChannel(config);
|
|
21
|
+
},
|
|
22
|
+
wake: runWakeCycle,
|
|
23
|
+
};
|
|
24
|
+
export async function startDaemon(config) {
|
|
25
|
+
await stopDaemon();
|
|
26
|
+
runtimeState.wakeCount = 0;
|
|
27
|
+
runtimeState.lastWakeAt = undefined;
|
|
28
|
+
runtimeState.discord = null;
|
|
29
|
+
if (config.channels.discord.autoStart) {
|
|
30
|
+
runtimeState.discord = await runtimeDeps.startDiscord({
|
|
31
|
+
token: config.channels.discord.token,
|
|
32
|
+
clientId: config.channels.discord.clientId,
|
|
33
|
+
cliCommand: config.channels.discord.cliCommand,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
runtimeState.job = runtimeDeps.createScheduler(config.loopInterval, async () => {
|
|
37
|
+
const wokeAt = await runtimeDeps.wake(config);
|
|
38
|
+
if (!wokeAt) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
runtimeState.lastWakeAt = wokeAt;
|
|
42
|
+
runtimeState.wakeCount += 1;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export async function stopDaemon() {
|
|
46
|
+
await runtimeState.discord?.stop();
|
|
47
|
+
runtimeState.discord = null;
|
|
48
|
+
runtimeState.job?.stop();
|
|
49
|
+
runtimeState.job = null;
|
|
50
|
+
}
|
|
51
|
+
export async function getDaemonStatus() {
|
|
52
|
+
return {
|
|
53
|
+
discord: runtimeState.discord?.status() ?? "disconnected",
|
|
54
|
+
running: runtimeState.job !== null,
|
|
55
|
+
lastWakeAt: runtimeState.lastWakeAt ? new Date(runtimeState.lastWakeAt) : undefined,
|
|
56
|
+
wakeCount: runtimeState.wakeCount,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function setRuntimeDepsForTests(deps) {
|
|
60
|
+
runtimeDeps = { ...runtimeDeps, ...deps };
|
|
61
|
+
}
|
|
62
|
+
export function resetRuntimeDepsForTests() {
|
|
63
|
+
runtimeDeps = {
|
|
64
|
+
createScheduler(pattern, onTick) {
|
|
65
|
+
const job = new Cron(pattern, { catch: false }, () => {
|
|
66
|
+
void onTick().catch((error) => {
|
|
67
|
+
console.warn(`[va-claw/daemon] wake tick failed: ${String(error)}`);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
return { stop: () => job.stop() };
|
|
71
|
+
},
|
|
72
|
+
async startDiscord() {
|
|
73
|
+
return {
|
|
74
|
+
status() {
|
|
75
|
+
return "connected";
|
|
76
|
+
},
|
|
77
|
+
async stop() { },
|
|
78
|
+
};
|
|
79
|
+
},
|
|
80
|
+
wake: runWakeCycle,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ServiceType } from "./types.js";
|
|
2
|
+
export type ServiceDefinition = {
|
|
3
|
+
path: string;
|
|
4
|
+
content: string;
|
|
5
|
+
command: string;
|
|
6
|
+
args: string[];
|
|
7
|
+
};
|
|
8
|
+
export declare function createServiceDefinition(type: ServiceType): ServiceDefinition;
|
|
9
|
+
export declare function createUninstallCommand(type: ServiceType): {
|
|
10
|
+
command: string;
|
|
11
|
+
args: string[];
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=service-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-files.d.ts","sourceRoot":"","sources":["../src/service-files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,iBAAiB,CAqB5E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAW7F"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
export function createServiceDefinition(type) {
|
|
5
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
6
|
+
const repoRoot = resolve(packageRoot, "../..");
|
|
7
|
+
const runnerPath = join(packageRoot, "dist", "runner.js");
|
|
8
|
+
const nodePath = process.execPath;
|
|
9
|
+
if (type === "launchd") {
|
|
10
|
+
return {
|
|
11
|
+
path: join(homedir(), "Library", "LaunchAgents", "com.va-claw.daemon.plist"),
|
|
12
|
+
content: renderLaunchdPlist(repoRoot, [nodePath, runnerPath]),
|
|
13
|
+
command: "launchctl",
|
|
14
|
+
args: ["load", join(homedir(), "Library", "LaunchAgents", "com.va-claw.daemon.plist")],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
path: join(homedir(), ".config", "systemd", "user", "va-claw.service"),
|
|
19
|
+
content: renderSystemdUnit(repoRoot, [nodePath, runnerPath]),
|
|
20
|
+
command: "systemctl",
|
|
21
|
+
args: ["--user", "enable", "--now", "va-claw.service"],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function createUninstallCommand(type) {
|
|
25
|
+
if (type === "launchd") {
|
|
26
|
+
return {
|
|
27
|
+
command: "launchctl",
|
|
28
|
+
args: ["unload", join(homedir(), "Library", "LaunchAgents", "com.va-claw.daemon.plist")],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
command: "systemctl",
|
|
33
|
+
args: ["--user", "disable", "--now", "va-claw.service"],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function renderLaunchdPlist(workingDirectory, programArguments) {
|
|
37
|
+
const argsXml = programArguments.map((arg) => ` <string>${escapeXml(arg)}</string>`).join("\n");
|
|
38
|
+
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
39
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
40
|
+
<plist version="1.0">
|
|
41
|
+
<dict>
|
|
42
|
+
<key>Label</key>
|
|
43
|
+
<string>com.va-claw.daemon</string>
|
|
44
|
+
<key>ProgramArguments</key>
|
|
45
|
+
<array>
|
|
46
|
+
${argsXml}
|
|
47
|
+
</array>
|
|
48
|
+
<key>WorkingDirectory</key>
|
|
49
|
+
<string>${escapeXml(workingDirectory)}</string>
|
|
50
|
+
<key>RunAtLoad</key>
|
|
51
|
+
<true/>
|
|
52
|
+
<key>KeepAlive</key>
|
|
53
|
+
<true/>
|
|
54
|
+
</dict>
|
|
55
|
+
</plist>
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
function renderSystemdUnit(workingDirectory, programArguments) {
|
|
59
|
+
return `[Unit]
|
|
60
|
+
Description=va-claw daemon
|
|
61
|
+
|
|
62
|
+
[Service]
|
|
63
|
+
Type=simple
|
|
64
|
+
WorkingDirectory=${workingDirectory}
|
|
65
|
+
ExecStart=${programArguments.map(quoteSystemdArg).join(" ")}
|
|
66
|
+
Restart=always
|
|
67
|
+
RestartSec=5
|
|
68
|
+
|
|
69
|
+
[Install]
|
|
70
|
+
WantedBy=default.target
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
function escapeXml(value) {
|
|
74
|
+
return value
|
|
75
|
+
.replaceAll("&", "&")
|
|
76
|
+
.replaceAll("<", "<")
|
|
77
|
+
.replaceAll(">", ">")
|
|
78
|
+
.replaceAll("\"", """)
|
|
79
|
+
.replaceAll("'", "'");
|
|
80
|
+
}
|
|
81
|
+
function quoteSystemdArg(value) {
|
|
82
|
+
return `'${value.replaceAll("'", `'\\''`)}'`;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=service-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-files.js","sourceRoot":"","sources":["../src/service-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3E;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7E"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { mkdir, rm, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import { createServiceDefinition, createUninstallCommand } from "./service-files.js";
|
|
5
|
+
export async function installDaemonService(type) {
|
|
6
|
+
const definition = createServiceDefinition(type);
|
|
7
|
+
await mkdir(dirname(definition.path), { recursive: true });
|
|
8
|
+
await writeFile(definition.path, definition.content, "utf8");
|
|
9
|
+
if (type === "systemd") {
|
|
10
|
+
runCommand("systemctl", ["--user", "daemon-reload"]);
|
|
11
|
+
}
|
|
12
|
+
runCommand(definition.command, definition.args);
|
|
13
|
+
}
|
|
14
|
+
export async function uninstallDaemonService(type) {
|
|
15
|
+
const definition = createServiceDefinition(type);
|
|
16
|
+
const uninstall = createUninstallCommand(type);
|
|
17
|
+
runCommand(uninstall.command, uninstall.args, true);
|
|
18
|
+
await rm(definition.path, { force: true });
|
|
19
|
+
if (type === "systemd") {
|
|
20
|
+
runCommand("systemctl", ["--user", "daemon-reload"], true);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function runCommand(command, args, allowFailure = false) {
|
|
24
|
+
const result = spawnSync(command, args, { encoding: "utf8" });
|
|
25
|
+
if (allowFailure || result.status === 0) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const stderr = result.stderr?.trim() || result.stdout?.trim() || "unknown error";
|
|
29
|
+
throw new Error(`[va-claw/daemon] command failed: ${command} ${args.join(" ")}: ${stderr}`);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGrF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAiB;IAC1D,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAiB;IAC5D,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/C,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,IAAc,EAAE,YAAY,GAAG,KAAK;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC;IACjF,MAAM,IAAI,KAAK,CAAC,oCAAoC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { VaClawConfig } from "../../identity/dist/index.js";
|
|
2
|
+
export type { VaClawConfig };
|
|
3
|
+
export type DiscordRuntimeStatus = "connected" | "disconnected";
|
|
4
|
+
export type DaemonStatus = {
|
|
5
|
+
running: boolean;
|
|
6
|
+
lastWakeAt?: Date;
|
|
7
|
+
wakeCount: number;
|
|
8
|
+
discord: DiscordRuntimeStatus;
|
|
9
|
+
};
|
|
10
|
+
export type ServiceType = "launchd" | "systemd";
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,cAAc,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { store } from "../../memory/dist/index.js";
|
|
3
|
+
import { injectSkillIntoPrompt, listSkills } from "../../skills/dist/index.js";
|
|
4
|
+
import type { VaClawConfig } from "./types.js";
|
|
5
|
+
import { detectCliAdapter } from "./cli-adapter.js";
|
|
6
|
+
type WakeDeps = {
|
|
7
|
+
detect?: typeof detectCliAdapter;
|
|
8
|
+
injectSkill?: typeof injectSkillIntoPrompt;
|
|
9
|
+
listSkills?: typeof listSkills;
|
|
10
|
+
spawn?: typeof spawnSync;
|
|
11
|
+
storeMemory?: typeof store;
|
|
12
|
+
warn?: (message: string) => void;
|
|
13
|
+
now?: () => Date;
|
|
14
|
+
};
|
|
15
|
+
export declare function runWakeCycle(config: VaClawConfig, deps?: WakeDeps): Promise<Date | null>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=wake-cycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-cycle.d.ts","sourceRoot":"","sources":["../src/wake-cycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAqB,MAAM,4BAA4B,CAAC;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,KAAK,QAAQ,GAAG;IACd,MAAM,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,qBAAqB,CAAC;IAC3C,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAIF,wBAAsB,YAAY,CAChC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAmCtB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { store } from "../../memory/dist/index.js";
|
|
3
|
+
import { injectSkillIntoPrompt, listSkills, matchesSkillQuery } from "../../skills/dist/index.js";
|
|
4
|
+
import { detectCliAdapter } from "./cli-adapter.js";
|
|
5
|
+
const DEFAULT_WARN = (message) => console.warn(message);
|
|
6
|
+
export async function runWakeCycle(config, deps = {}) {
|
|
7
|
+
const adapter = await (deps.detect ?? detectCliAdapter)({ warn: deps.warn });
|
|
8
|
+
if (!adapter) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
const prompt = await resolveWakePrompt(config, deps);
|
|
12
|
+
const spawnOptions = {
|
|
13
|
+
cwd: process.cwd(),
|
|
14
|
+
encoding: "utf8",
|
|
15
|
+
env: {
|
|
16
|
+
...readProcessEnv(),
|
|
17
|
+
CLAUDECODE: undefined,
|
|
18
|
+
CLAUDE_CODE_SESSION: undefined,
|
|
19
|
+
},
|
|
20
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
21
|
+
};
|
|
22
|
+
const result = (deps.spawn ?? spawnSync)(adapter.command, [...adapter.args, prompt], spawnOptions);
|
|
23
|
+
if (result.status !== 0) {
|
|
24
|
+
(deps.warn ?? DEFAULT_WARN)(`[va-claw/daemon] ${adapter.name} wake failed: ${readStderr(result.stderr)}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const wokeAt = (deps.now ?? (() => new Date()))();
|
|
28
|
+
await (deps.storeMemory ?? store)(result.stdout ?? "", {
|
|
29
|
+
source: "va-claw-daemon",
|
|
30
|
+
kind: "wake",
|
|
31
|
+
cli: adapter.name,
|
|
32
|
+
identity: config.name,
|
|
33
|
+
wokeAt: wokeAt.toISOString(),
|
|
34
|
+
});
|
|
35
|
+
return wokeAt;
|
|
36
|
+
}
|
|
37
|
+
function readStderr(stderr) {
|
|
38
|
+
if (typeof stderr === "string" && stderr.trim() !== "") {
|
|
39
|
+
return stderr.trim();
|
|
40
|
+
}
|
|
41
|
+
return "unknown error";
|
|
42
|
+
}
|
|
43
|
+
function readProcessEnv() {
|
|
44
|
+
return (process.env ?? {});
|
|
45
|
+
}
|
|
46
|
+
async function resolveWakePrompt(config, deps) {
|
|
47
|
+
try {
|
|
48
|
+
const skills = await (deps.listSkills ?? listSkills)();
|
|
49
|
+
return skills
|
|
50
|
+
.filter((skill) => matchesSkillQuery(skill, config.wakePrompt))
|
|
51
|
+
.reduce((prompt, skill) => (deps.injectSkill ?? injectSkillIntoPrompt)(skill, prompt), config.wakePrompt);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
(deps.warn ?? DEFAULT_WARN)(`[va-claw/daemon] skill injection skipped: ${String(error)}`);
|
|
55
|
+
return config.wakePrompt;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=wake-cycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wake-cycle.js","sourceRoot":"","sources":["../src/wake-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@va-claw/daemon",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "pnpm --filter @va-claw/memory build && pnpm --filter @va-claw/identity build && pnpm --filter @va-claw/skills build && tsc -b",
|
|
10
|
+
"test": "pnpm run build && node --test dist/*.test.js"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@va-claw/skills": "workspace:*",
|
|
14
|
+
"croner": "file:../../vendor/croner"
|
|
15
|
+
},
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/typescript@file+vendor+typescript/node_modules/typescript/lib/lib.es2022.full.d.ts","../src/types.ts","../src/defaults.ts","../src/path.ts","../src/storage.ts","../src/render.ts","../../../node_modules/.pnpm/@clack+prompts@file+packages+identity+vendor+clack-prompts/node_modules/@clack/prompts/index.d.ts","../src/wizard.ts","../src/index.ts","../src/node-shims.d.ts"],"fileIdsList":[[64],[64,66,67,68,70],[72],[64,65],[64,65,66,72],[64,65,66,67,69]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3cbad9a1ba4453443026ed38e4b8be018abb26565fa7c944376463ad9df07c41","impliedFormat":1},{"version":"52a3d3b056fc6672c71d157a432fd0682b116b00772a6087207d29d58b85dc2c","signature":"c482a05324bdb183855141754506b813194543afd068d934f4797c4a0299c67a","impliedFormat":99},{"version":"947b88b8d8a67f53cd15d07c3855d9448453ffc05c5e532df9c6a930efffa62a","signature":"e75d131033c262462c9d95cb452927bedec45d178ce7b4ae2344bb1277882b12","impliedFormat":99},{"version":"89f4981143c17db5aa1abacc85ba1d9607fb206114ea41dd4eb1452f4f053957","signature":"0c97e331361352bccfa2d24e2e46625953a190534cf16e8e566b9a84e07b12ff","impliedFormat":99},{"version":"ba2b17b0ed3742fdce7d63772ea3dfe14f419aa432fe8e784a377df7f08d9e04","signature":"7fbec62b38299205ec520f27fc18ab5315733001fb166a2523f32bd856fafea8","impliedFormat":99},{"version":"fcf1d5f15aef71294ca90c5321f68e94897757485a914d91465846032e6ced9d","signature":"7c5ed18df40661edfa1151e3002efde32b1cdf16818ba650fc1b55427274b020","impliedFormat":99},{"version":"84108a5e5393943ab7dfef25ce18098a69f91de0bb3e3453fc13adecf5fb6dbe","impliedFormat":99},{"version":"a37e9b076f8c51fea781dc3f2ce85bb01f7adb34c68f29d097ad6b563a533c40","signature":"184e07268b0c62bc9585ef90c2fb3971dd033e9a9d6b857768ecd5417a92d8ab","impliedFormat":99},{"version":"5f147b64f55d06de0028de65d93d1e63fc7e94b2376ceb44650e52c320e6dc74","signature":"fe19936f3b0e52495d441d5de9b5b00acb8816cd8d9db7523dd388dc9978ff3b","impliedFormat":99},{"version":"9ca565e3d4f92b82583b916dcd08c16b8b0a81b6ce0faa3dce644bacbf3a2ae8","impliedFormat":99}],"root":[[64,68],[70,72]],"options":{"composite":true,"declaration":true,"declarationMap":true,"module":199,"noEmitOnError":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[65,1],[71,2],[66,3],[68,4],[67,5],[70,6]],"latestChangedDtsFile":"./types.d.ts","version":"5.9.3"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { VaClawConfig } from "./types.js";
|
|
2
|
+
export declare const DEFAULT_LOOP_INTERVAL = "0 * * * *";
|
|
3
|
+
export declare function getDefaultIdentity(): VaClawConfig;
|
|
4
|
+
export declare function normalizeConfig(input: unknown): VaClawConfig;
|
|
5
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,qBAAqB,cAAc,CAAC;AAqCjD,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAsC5D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export const DEFAULT_LOOP_INTERVAL = "0 * * * *";
|
|
2
|
+
const DEFAULT_CONFIG = {
|
|
3
|
+
name: "va-claw",
|
|
4
|
+
persona: "A pragmatic CLI identity that values clarity, rigor, and continuity.",
|
|
5
|
+
systemPrompt: "You are va-claw. Be direct, honest about uncertainty, and keep actions aligned with the saved identity.",
|
|
6
|
+
wakePrompt: "Wake up, load the saved identity, and continue from the most recent remembered state.",
|
|
7
|
+
loopInterval: DEFAULT_LOOP_INTERVAL,
|
|
8
|
+
channels: {
|
|
9
|
+
discord: {
|
|
10
|
+
token: "",
|
|
11
|
+
clientId: "",
|
|
12
|
+
cliCommand: "",
|
|
13
|
+
autoStart: false,
|
|
14
|
+
},
|
|
15
|
+
telegram: {
|
|
16
|
+
token: "",
|
|
17
|
+
cliCommand: "",
|
|
18
|
+
},
|
|
19
|
+
slack: {
|
|
20
|
+
botToken: "",
|
|
21
|
+
appToken: "",
|
|
22
|
+
cliCommand: "",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
function pickString(value, fallback) {
|
|
27
|
+
return typeof value === "string" ? value : fallback;
|
|
28
|
+
}
|
|
29
|
+
function pickBoolean(value, fallback) {
|
|
30
|
+
return typeof value === "boolean" ? value : fallback;
|
|
31
|
+
}
|
|
32
|
+
export function getDefaultIdentity() {
|
|
33
|
+
return { ...DEFAULT_CONFIG };
|
|
34
|
+
}
|
|
35
|
+
export function normalizeConfig(input) {
|
|
36
|
+
const base = getDefaultIdentity();
|
|
37
|
+
const data = input && typeof input === "object" ? input : {};
|
|
38
|
+
const channels = readObject(Reflect.get(data, "channels"));
|
|
39
|
+
const discord = readObject(Reflect.get(channels, "discord"));
|
|
40
|
+
const telegram = readObject(Reflect.get(channels, "telegram"));
|
|
41
|
+
const slack = readObject(Reflect.get(channels, "slack"));
|
|
42
|
+
return {
|
|
43
|
+
name: pickString(Reflect.get(data, "name"), base.name),
|
|
44
|
+
persona: pickString(Reflect.get(data, "persona"), base.persona),
|
|
45
|
+
systemPrompt: pickString(Reflect.get(data, "systemPrompt"), base.systemPrompt),
|
|
46
|
+
wakePrompt: pickString(Reflect.get(data, "wakePrompt"), base.wakePrompt),
|
|
47
|
+
loopInterval: pickString(Reflect.get(data, "loopInterval"), base.loopInterval),
|
|
48
|
+
channels: {
|
|
49
|
+
discord: {
|
|
50
|
+
token: pickString(Reflect.get(discord, "token"), base.channels.discord.token),
|
|
51
|
+
clientId: pickString(Reflect.get(discord, "clientId"), base.channels.discord.clientId),
|
|
52
|
+
cliCommand: pickString(Reflect.get(discord, "cliCommand"), base.channels.discord.cliCommand),
|
|
53
|
+
autoStart: pickBoolean(Reflect.get(discord, "autoStart"), base.channels.discord.autoStart),
|
|
54
|
+
},
|
|
55
|
+
telegram: {
|
|
56
|
+
token: pickString(Reflect.get(telegram, "token"), base.channels.telegram.token),
|
|
57
|
+
cliCommand: pickString(Reflect.get(telegram, "cliCommand"), base.channels.telegram.cliCommand),
|
|
58
|
+
},
|
|
59
|
+
slack: {
|
|
60
|
+
botToken: pickString(Reflect.get(slack, "botToken"), base.channels.slack.botToken),
|
|
61
|
+
appToken: pickString(Reflect.get(slack, "appToken"), base.channels.slack.appToken),
|
|
62
|
+
cliCommand: pickString(Reflect.get(slack, "cliCommand"), base.channels.slack.cliCommand),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function readObject(value) {
|
|
68
|
+
return value && typeof value === "object" ? value : {};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { VaClawConfig } from "./types.js";
|
|
2
|
+
export { DEFAULT_CONFIG_PATH, resolveConfigPath } from "./path.js";
|
|
3
|
+
export { loadIdentity, saveIdentity } from "./storage.js";
|
|
4
|
+
export { toClaudeMdSnippet, toCodexSystemPrompt } from "./render.js";
|
|
5
|
+
export { runInstallWizard } from "./wizard.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { DEFAULT_CONFIG_PATH, resolveConfigPath } from "./path.js";
|
|
2
|
+
export { loadIdentity, saveIdentity } from "./storage.js";
|
|
3
|
+
export { toClaudeMdSnippet, toCodexSystemPrompt } from "./render.js";
|
|
4
|
+
export { runInstallWizard } from "./wizard.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,QAAgD,CAAC;AAEjF,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAW7D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
export const DEFAULT_CONFIG_PATH = resolve(homedir(), ".va-claw", "config.json");
|
|
4
|
+
export function resolveConfigPath(configPath) {
|
|
5
|
+
if (!configPath || configPath.trim() === "") {
|
|
6
|
+
return DEFAULT_CONFIG_PATH;
|
|
7
|
+
}
|
|
8
|
+
if (configPath === "~") {
|
|
9
|
+
return homedir();
|
|
10
|
+
}
|
|
11
|
+
if (configPath.startsWith("~/")) {
|
|
12
|
+
return resolve(homedir(), configPath.slice(2));
|
|
13
|
+
}
|
|
14
|
+
return resolve(configPath);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../src/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAEjF,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACnD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM/C,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAc9D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAehE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { normalizeConfig } from "./defaults.js";
|
|
2
|
+
function textBlock(label, value) {
|
|
3
|
+
return [label, "~~~text", value || "(empty)", "~~~"].join("\n");
|
|
4
|
+
}
|
|
5
|
+
export function toClaudeMdSnippet(config) {
|
|
6
|
+
const normalized = normalizeConfig(config);
|
|
7
|
+
return [
|
|
8
|
+
"<!-- va-claw:identity:start -->",
|
|
9
|
+
"## VaClaw Identity",
|
|
10
|
+
`- Name: ${normalized.name}`,
|
|
11
|
+
"",
|
|
12
|
+
"Persona:",
|
|
13
|
+
normalized.persona,
|
|
14
|
+
"",
|
|
15
|
+
textBlock("System Prompt:", normalized.systemPrompt),
|
|
16
|
+
"<!-- va-claw:identity:end -->",
|
|
17
|
+
].join("\n");
|
|
18
|
+
}
|
|
19
|
+
export function toCodexSystemPrompt(config) {
|
|
20
|
+
const normalized = normalizeConfig(config);
|
|
21
|
+
return [
|
|
22
|
+
`Identity name: ${normalized.name}`,
|
|
23
|
+
`Persona: ${normalized.persona}`,
|
|
24
|
+
"",
|
|
25
|
+
"System prompt:",
|
|
26
|
+
normalized.systemPrompt,
|
|
27
|
+
"",
|
|
28
|
+
"Wake prompt:",
|
|
29
|
+
normalized.wakePrompt,
|
|
30
|
+
"",
|
|
31
|
+
`Loop interval: ${normalized.loopInterval}`,
|
|
32
|
+
].join("\n");
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=render.js.map
|