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,116 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { createDefaultCliDeps } from "./deps.js";
|
|
3
|
+
import { runInstall, runDiscordSetup, runDiscordStart, runDiscordStatus, runMemoryClear, runMemoryConsolidate, runMemoryList, runMemoryReflect, runMemoryGet, runMemoryForget, runMemorySearch, runMemoryMemorize, runMemoryRecall, runMemoryUpdate, runSkillAdd, runSkillList, runSkillRemove, runSkillShow, runStart, runStatus, runStop, runUninstall, } from "./handlers.js";
|
|
4
|
+
import { runSlackChannelSetup as runSlackSetup, runSlackChannelStart as runSlackStart, runSlackChannelStatus as runSlackStatus, runTelegramChannelSetup as runTelegramSetup, runTelegramChannelStart as runTelegramStart, runTelegramChannelStatus as runTelegramStatus, } from "./channel-handlers.js";
|
|
5
|
+
export function createCliProgram(deps = createDefaultCliDeps()) {
|
|
6
|
+
const program = new Command("va-claw");
|
|
7
|
+
program.description("va-claw CLI");
|
|
8
|
+
program.showHelpAfterError();
|
|
9
|
+
program
|
|
10
|
+
.command("install")
|
|
11
|
+
.description("Install va-claw config, prompt injections, and daemon service.")
|
|
12
|
+
.option("--for <target>", "claude-code | codex | all", "all")
|
|
13
|
+
.action(async (options) => runInstall((options.for ?? "all"), deps));
|
|
14
|
+
program.command("start").description("Start the daemon in the foreground.").action(async () => runStart(deps));
|
|
15
|
+
program.command("stop").description("Stop the daemon.").action(async () => runStop(deps));
|
|
16
|
+
program.command("status").description("Show daemon and memory status.").action(async () => runStatus(deps));
|
|
17
|
+
program.command("uninstall").description("Remove daemon service and injected prompts.").action(async () => runUninstall(deps));
|
|
18
|
+
const memory = program.command("memory").description("Memory operations.");
|
|
19
|
+
memory
|
|
20
|
+
.command("search")
|
|
21
|
+
.description("Search memory.")
|
|
22
|
+
.argument("<query>")
|
|
23
|
+
.action(async (query) => runMemorySearch(query, deps));
|
|
24
|
+
memory
|
|
25
|
+
.command("memorize")
|
|
26
|
+
.description("Store or update a memory entry by key.")
|
|
27
|
+
.argument("<key>")
|
|
28
|
+
.argument("<essence>")
|
|
29
|
+
.option("--tags <tags>", "Comma-separated tags.")
|
|
30
|
+
.option("--details <details>", "Details text.")
|
|
31
|
+
.option("--importance <importance>", "Importance from 0 to 1.")
|
|
32
|
+
.action((key, essence, options) => runMemoryMemorize(key, essence, options, deps));
|
|
33
|
+
memory
|
|
34
|
+
.command("get")
|
|
35
|
+
.description("Get a memory entry by key.")
|
|
36
|
+
.argument("<key>")
|
|
37
|
+
.action(async (key) => runMemoryGet(key, deps));
|
|
38
|
+
memory
|
|
39
|
+
.command("update")
|
|
40
|
+
.description("Update a memory entry by key.")
|
|
41
|
+
.argument("<key>")
|
|
42
|
+
.option("--essence <essence>", "Replace essence text.")
|
|
43
|
+
.option("--tags <tags>", "Comma-separated tags.")
|
|
44
|
+
.option("--importance <importance>", "Importance from 0 to 1.")
|
|
45
|
+
.option("--details <details>", "Replace details text.")
|
|
46
|
+
.action((key, options) => runMemoryUpdate(key, options, deps));
|
|
47
|
+
memory.command("list").description("List recent memory entries.").action(async () => runMemoryList(deps));
|
|
48
|
+
memory
|
|
49
|
+
.command("forget")
|
|
50
|
+
.description("Forget a memory by key.")
|
|
51
|
+
.argument("<key>")
|
|
52
|
+
.action(async (key) => runMemoryForget(key, deps));
|
|
53
|
+
memory
|
|
54
|
+
.command("recall")
|
|
55
|
+
.description("Recall memories by query.")
|
|
56
|
+
.argument("<query>")
|
|
57
|
+
.option("--limit <limit>", "Max results.")
|
|
58
|
+
.action((query, options) => runMemoryRecall(query, options.limit ? Number(options.limit) : 5, deps));
|
|
59
|
+
memory.command("consolidate").description("Consolidate memory store.").action(async () => runMemoryConsolidate(deps));
|
|
60
|
+
memory.command("reflect").description("Reflect memory map grouped by tags.").action(async () => runMemoryReflect(deps));
|
|
61
|
+
memory.command("clear").description("Clear all memory entries.").action(async () => runMemoryClear(deps));
|
|
62
|
+
const skill = program.command("skill").description("Skill operations.");
|
|
63
|
+
skill.command("list").description("List installed and project skills.").action(async () => runSkillList(deps));
|
|
64
|
+
skill
|
|
65
|
+
.command("add")
|
|
66
|
+
.description("Install a skill from a local Markdown file.")
|
|
67
|
+
.argument("<path-or-url>")
|
|
68
|
+
.action(async (pathOrUrl) => runSkillAdd(pathOrUrl, deps));
|
|
69
|
+
skill
|
|
70
|
+
.command("remove")
|
|
71
|
+
.description("Remove an installed skill by name.")
|
|
72
|
+
.argument("<name>")
|
|
73
|
+
.action(async (name) => runSkillRemove(name, deps));
|
|
74
|
+
skill
|
|
75
|
+
.command("show")
|
|
76
|
+
.description("Show the raw Markdown content for a skill.")
|
|
77
|
+
.argument("<name>")
|
|
78
|
+
.action(async (name) => runSkillShow(name, deps));
|
|
79
|
+
const channel = program.command("channel").description("Channel operations.");
|
|
80
|
+
const discord = channel.command("discord").description("Discord channel operations.");
|
|
81
|
+
discord.command("setup").description("Configure Discord bot credentials.").action(async () => runDiscordSetup(deps));
|
|
82
|
+
discord.command("start").description("Start the Discord channel in the foreground.").action(async () => runDiscordStart(deps));
|
|
83
|
+
discord.command("status").description("Show Discord channel status.").action(async () => runDiscordStatus(deps));
|
|
84
|
+
const telegram = channel.command("telegram").description("Telegram channel operations.");
|
|
85
|
+
telegram
|
|
86
|
+
.command("setup")
|
|
87
|
+
.description("Configure Telegram bot credentials.")
|
|
88
|
+
.option("--token <token>", "Telegram bot token")
|
|
89
|
+
.option("--cli-command <command>", "CLI command to invoke for each message")
|
|
90
|
+
.action(async (options) => runTelegramSetup(options.token, options.cliCommand, deps));
|
|
91
|
+
telegram.command("start").description("Start the Telegram channel in the foreground.").action(async () => runTelegramStart(deps));
|
|
92
|
+
telegram.command("status").description("Show Telegram channel status.").action(async () => runTelegramStatus(deps));
|
|
93
|
+
const slack = channel.command("slack").description("Slack channel operations.");
|
|
94
|
+
slack
|
|
95
|
+
.command("setup")
|
|
96
|
+
.description("Configure Slack bot credentials.")
|
|
97
|
+
.option("--bot-token <token>", "Slack bot token")
|
|
98
|
+
.option("--app-token <token>", "Slack app token")
|
|
99
|
+
.option("--cli-command <command>", "CLI command to invoke for each message")
|
|
100
|
+
.action(async (options) => runSlackSetup(options.botToken, options.appToken, options.cliCommand, deps));
|
|
101
|
+
slack.command("start").description("Start the Slack channel in the foreground.").action(async () => runSlackStart(deps));
|
|
102
|
+
slack.command("status").description("Show Slack channel status.").action(async () => runSlackStatus(deps));
|
|
103
|
+
return program;
|
|
104
|
+
}
|
|
105
|
+
export async function runCli(argv = process.argv, deps) {
|
|
106
|
+
const program = createCliProgram(deps ?? createDefaultCliDeps());
|
|
107
|
+
try {
|
|
108
|
+
await program.parseAsync(argv);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
112
|
+
(deps ?? createDefaultCliDeps()).stderr.write(`${message}\n`);
|
|
113
|
+
process.exitCode = 1;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,IAAI,aAAa,EACrC,oBAAoB,IAAI,aAAa,EACrC,qBAAqB,IAAI,cAAc,EACvC,uBAAuB,IAAI,gBAAgB,EAC3C,uBAAuB,IAAI,gBAAgB,EAC3C,wBAAwB,IAAI,iBAAiB,GAC9C,MAAM,uBAAuB,CAAC;AAG/B,MAAM,UAAU,gBAAgB,CAAC,OAAgB,oBAAoB,EAAE;IACrE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACnC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAE7B,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gEAAgE,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,KAAK,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1G,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5G,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAE/H,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3E,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gBAAgB,CAAC;SAC7B,QAAQ,CAAC,SAAS,CAAC;SACnB,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM;SACH,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wCAAwC,CAAC;SACrD,QAAQ,CAAC,OAAO,CAAC;SACjB,QAAQ,CAAC,WAAW,CAAC;SACrB,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;SAC9C,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;SAC9D,MAAM,CAAC,CAAC,GAAW,EAAE,OAAe,EAAE,OAAiE,EAAE,EAAE,CAC1G,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAC/C,CAAC;IACJ,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,4BAA4B,CAAC;SACzC,QAAQ,CAAC,OAAO,CAAC;SACjB,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,OAAO,CAAC;SACjB,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;SAChD,MAAM,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SACtD,MAAM,CAAC,CAAC,GAAW,EAAE,OAAmF,EAAE,EAAE,CAC3G,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CACpC,CAAC;IACJ,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1G,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yBAAyB,CAAC;SACtC,QAAQ,CAAC,OAAO,CAAC;SACjB,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CAAC,SAAS,CAAC;SACnB,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC;SACzC,MAAM,CAAC,CAAC,KAAa,EAAE,OAA2B,EAAE,EAAE,CACrD,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CACxE,CAAC;IACJ,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtH,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,qCAAqC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACxH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1G,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACxE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,KAAK;SACF,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,6CAA6C,CAAC;SAC1D,QAAQ,CAAC,eAAe,CAAC;SACzB,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9D,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,QAAQ,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IACtF,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IACrH,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,8CAA8C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/H,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjH,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC;IACzF,QAAQ;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SAC/C,MAAM,CAAC,yBAAyB,EAAE,wCAAwC,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAAgD,EAAE,EAAE,CACjE,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAC1D,CAAC;IACJ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,+CAA+C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IAClI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpH,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;IAChF,KAAK;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;SAChD,MAAM,CAAC,yBAAyB,EAAE,wCAAwC,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,OAAsE,EAAE,EAAE,CACvF,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAC5E,CAAC;IACJ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACzH,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3G,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI,EAAE,IAAc;IACxE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,CAAC,IAAI,IAAI,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { VaClawConfig } from "@va-claw/daemon";
|
|
2
|
+
import type { CliDeps } from "./types.js";
|
|
3
|
+
export declare const TEST_CONFIG: VaClawConfig;
|
|
4
|
+
export declare function createTestDeps(overrides?: Partial<CliDeps>): CliDeps & {
|
|
5
|
+
output: () => string;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=test-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKlE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,YAuBzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,SAAS,GAAE,OAAO,CAAC,OAAO,CAAM,GAAG,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,CAkEnG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { createDefaultCliDeps } from "./deps.js";
|
|
3
|
+
export const TEST_CONFIG = {
|
|
4
|
+
name: "Nova",
|
|
5
|
+
persona: "Precise and calm.",
|
|
6
|
+
systemPrompt: "Act with continuity.",
|
|
7
|
+
wakePrompt: "Load memory first.",
|
|
8
|
+
loopInterval: "*/15 * * * *",
|
|
9
|
+
channels: {
|
|
10
|
+
discord: {
|
|
11
|
+
token: "",
|
|
12
|
+
clientId: "",
|
|
13
|
+
cliCommand: "",
|
|
14
|
+
autoStart: false,
|
|
15
|
+
},
|
|
16
|
+
telegram: {
|
|
17
|
+
token: "",
|
|
18
|
+
cliCommand: "",
|
|
19
|
+
},
|
|
20
|
+
slack: {
|
|
21
|
+
botToken: "",
|
|
22
|
+
appToken: "",
|
|
23
|
+
cliCommand: "",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
export function createTestDeps(overrides = {}) {
|
|
28
|
+
let output = "";
|
|
29
|
+
const stream = {
|
|
30
|
+
write(chunk) {
|
|
31
|
+
output += chunk;
|
|
32
|
+
return true;
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
const base = createDefaultCliDeps();
|
|
36
|
+
return {
|
|
37
|
+
...base,
|
|
38
|
+
claudePath: "/tmp/claude.md",
|
|
39
|
+
codexPath: "/tmp/instructions.md",
|
|
40
|
+
configPath: "/tmp/config.json",
|
|
41
|
+
memoryDbPath: "/tmp/memory.db",
|
|
42
|
+
platform: "linux",
|
|
43
|
+
spawnSync: overrides.spawnSync ?? ((command, args, options) => spawnSync(command, args, options)),
|
|
44
|
+
stdout: stream,
|
|
45
|
+
stderr: stream,
|
|
46
|
+
fileExists: overrides.fileExists ?? (async () => false),
|
|
47
|
+
loadIdentity: overrides.loadIdentity ?? (async () => TEST_CONFIG),
|
|
48
|
+
saveIdentity: overrides.saveIdentity ?? (async () => { }),
|
|
49
|
+
runInstallWizard: overrides.runInstallWizard ?? (async () => TEST_CONFIG),
|
|
50
|
+
installDaemonService: overrides.installDaemonService ?? (async () => { }),
|
|
51
|
+
uninstallDaemonService: overrides.uninstallDaemonService ?? (async () => { }),
|
|
52
|
+
startDaemon: overrides.startDaemon ?? (async () => { }),
|
|
53
|
+
stopDaemon: overrides.stopDaemon ?? (async () => { }),
|
|
54
|
+
getDaemonStatus: overrides.getDaemonStatus ??
|
|
55
|
+
(async () => ({ running: false, wakeCount: 0, discord: "disconnected" })),
|
|
56
|
+
memorySearch: overrides.memorySearch ?? (async () => []),
|
|
57
|
+
memoryMemorize: overrides.memoryMemorize ?? (async () => ({ id: "id", key: "key", text: "", essence: "", tags: [], triggerConditions: [], importance: 0.5, strength: 1, decayTau: 86400000, accessCount: 0, metadata: null, createdAt: "", updatedAt: "" })),
|
|
58
|
+
memoryGet: overrides.memoryGet ?? (async () => undefined),
|
|
59
|
+
memoryUpdate: overrides.memoryUpdate ?? (async () => undefined),
|
|
60
|
+
memoryForget: overrides.memoryForget ?? (async () => false),
|
|
61
|
+
memoryRecall: overrides.memoryRecall ?? (async () => []),
|
|
62
|
+
memoryConsolidate: overrides.memoryConsolidate ?? (async () => ({ forgotten: 0, strengthened: 0, total: 0, potentialDuplicates: [] })),
|
|
63
|
+
memoryReflect: overrides.memoryReflect ?? (async () => ""),
|
|
64
|
+
memoryCount: overrides.memoryCount ?? (async () => 0),
|
|
65
|
+
memoryList: overrides.memoryList ?? (async () => []),
|
|
66
|
+
memoryClear: overrides.memoryClear ?? (async () => { }),
|
|
67
|
+
startTelegramChannel: overrides.startTelegramChannel ??
|
|
68
|
+
(async () => ({ bot: {}, cliCommand: "va-claw", token: "" })),
|
|
69
|
+
stopTelegramChannel: overrides.stopTelegramChannel ?? (async () => { }),
|
|
70
|
+
startSlackChannel: overrides.startSlackChannel ??
|
|
71
|
+
(async () => ({ app: {}, appToken: "", botToken: "", cliCommand: "va-claw" })),
|
|
72
|
+
stopSlackChannel: overrides.stopSlackChannel ?? (async () => { }),
|
|
73
|
+
readTextFile: overrides.readTextFile ?? (async () => ""),
|
|
74
|
+
skillInstall: overrides.skillInstall ?? (async () => "/tmp/my-skill.md"),
|
|
75
|
+
skillList: overrides.skillList ?? (async () => []),
|
|
76
|
+
skillLoad: overrides.skillLoad ?? (async () => ({
|
|
77
|
+
name: "my-skill",
|
|
78
|
+
description: "Test skill",
|
|
79
|
+
version: "1.0.0",
|
|
80
|
+
triggers: ["test"],
|
|
81
|
+
content: "Test content",
|
|
82
|
+
path: "/tmp/my-skill.md",
|
|
83
|
+
})),
|
|
84
|
+
skillRemove: overrides.skillRemove ?? (async () => { }),
|
|
85
|
+
confirm: overrides.confirm ?? (async () => true),
|
|
86
|
+
prompt: overrides.prompt ?? (async (_message, initialValue = "") => initialValue),
|
|
87
|
+
...overrides,
|
|
88
|
+
output: () => output,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=test-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../src/test-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { SlackChannel, StartSlackChannelConfig, StartTelegramChannelConfig, TelegramChannel } from "../../channels/dist/index.js";
|
|
2
|
+
import type { DaemonStatus, ServiceType, VaClawConfig } from "@va-claw/daemon";
|
|
3
|
+
import type { MemoryEntry } from "@va-claw/memory";
|
|
4
|
+
import type { SkillDefinition } from "../../skills/dist/index.js";
|
|
5
|
+
export type InstallTarget = "claude-code" | "codex" | "all";
|
|
6
|
+
export type MarkerPair = {
|
|
7
|
+
start: string;
|
|
8
|
+
end: string;
|
|
9
|
+
};
|
|
10
|
+
export type OutputStream = {
|
|
11
|
+
write(chunk: string): boolean;
|
|
12
|
+
};
|
|
13
|
+
export type SpawnResult = {
|
|
14
|
+
status: number | null;
|
|
15
|
+
stdout: string;
|
|
16
|
+
stderr: string;
|
|
17
|
+
};
|
|
18
|
+
export type SpawnFn = (command: string, args: string[], options?: {
|
|
19
|
+
encoding: "utf8";
|
|
20
|
+
}) => SpawnResult;
|
|
21
|
+
export type CliDeps = {
|
|
22
|
+
claudePath: string;
|
|
23
|
+
codexPath: string;
|
|
24
|
+
configPath: string;
|
|
25
|
+
memoryDbPath: string;
|
|
26
|
+
platform: NodeJS.Platform;
|
|
27
|
+
spawnSync: SpawnFn;
|
|
28
|
+
stdout: OutputStream;
|
|
29
|
+
stderr: OutputStream;
|
|
30
|
+
fileExists: (path: string) => Promise<boolean>;
|
|
31
|
+
readTextFile: (path: string) => Promise<string>;
|
|
32
|
+
upsertManagedBlock: (path: string, block: string, markers: MarkerPair) => Promise<void>;
|
|
33
|
+
removeManagedBlock: (path: string, markers: MarkerPair) => Promise<void>;
|
|
34
|
+
wrapCodexPrompt: (prompt: string) => string;
|
|
35
|
+
loadIdentity: () => Promise<VaClawConfig>;
|
|
36
|
+
saveIdentity: (config: VaClawConfig) => Promise<void>;
|
|
37
|
+
runInstallWizard: () => Promise<VaClawConfig>;
|
|
38
|
+
toClaudeMdSnippet: (config: VaClawConfig) => string;
|
|
39
|
+
toCodexSystemPrompt: (config: VaClawConfig) => string;
|
|
40
|
+
installDaemonService: (type: ServiceType) => Promise<void>;
|
|
41
|
+
uninstallDaemonService: (type: ServiceType) => Promise<void>;
|
|
42
|
+
startDaemon: (config: VaClawConfig) => Promise<void>;
|
|
43
|
+
stopDaemon: () => Promise<void>;
|
|
44
|
+
getDaemonStatus: () => Promise<DaemonStatus>;
|
|
45
|
+
memorySearch: (query: string, limit: number) => Promise<MemoryEntry[]>;
|
|
46
|
+
memoryMemorize: (key: string, essence: string, options: {
|
|
47
|
+
tags?: string[];
|
|
48
|
+
details?: string;
|
|
49
|
+
importance?: number;
|
|
50
|
+
}) => Promise<MemoryEntry>;
|
|
51
|
+
memoryGet: (key: string) => Promise<MemoryEntry | undefined>;
|
|
52
|
+
memoryUpdate: (key: string, changes: {
|
|
53
|
+
essence?: string;
|
|
54
|
+
tags?: string[];
|
|
55
|
+
details?: string;
|
|
56
|
+
triggerConditions?: string[];
|
|
57
|
+
importance?: number;
|
|
58
|
+
}) => Promise<MemoryEntry | undefined>;
|
|
59
|
+
memoryForget: (key: string) => Promise<boolean>;
|
|
60
|
+
memoryRecall: (query: string, limit: number) => Promise<MemoryEntry[]>;
|
|
61
|
+
memoryConsolidate: () => Promise<{
|
|
62
|
+
forgotten: number;
|
|
63
|
+
strengthened: number;
|
|
64
|
+
total: number;
|
|
65
|
+
potentialDuplicates: [string, string][];
|
|
66
|
+
}>;
|
|
67
|
+
memoryReflect: () => Promise<string>;
|
|
68
|
+
memoryCount: () => Promise<number>;
|
|
69
|
+
memoryList: (limit: number) => Promise<MemoryEntry[]>;
|
|
70
|
+
memoryClear: () => Promise<void>;
|
|
71
|
+
startTelegramChannel: (config: StartTelegramChannelConfig) => Promise<TelegramChannel>;
|
|
72
|
+
stopTelegramChannel: (channel: TelegramChannel) => Promise<void>;
|
|
73
|
+
startSlackChannel: (config: StartSlackChannelConfig) => Promise<SlackChannel>;
|
|
74
|
+
stopSlackChannel: (channel: SlackChannel) => Promise<void>;
|
|
75
|
+
skillInstall: (content: string, name: string) => Promise<string>;
|
|
76
|
+
skillList: (dir?: string) => Promise<SkillDefinition[]>;
|
|
77
|
+
skillLoad: (nameOrPath: string) => Promise<SkillDefinition>;
|
|
78
|
+
skillRemove: (name: string) => Promise<void>;
|
|
79
|
+
confirm: (message: string) => Promise<boolean>;
|
|
80
|
+
prompt: (message: string, initialValue?: string) => Promise<string>;
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../src/wait.ts"],"names":[],"mappings":"AAAA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BhF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export async function waitForStopSignal(stop) {
|
|
2
|
+
await new Promise((resolve, reject) => {
|
|
3
|
+
let stopping = false;
|
|
4
|
+
const cleanup = () => {
|
|
5
|
+
process.off("SIGINT", onSignal);
|
|
6
|
+
process.off("SIGTERM", onSignal);
|
|
7
|
+
};
|
|
8
|
+
const onSignal = () => {
|
|
9
|
+
if (stopping) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
stopping = true;
|
|
13
|
+
void stop().then(() => {
|
|
14
|
+
cleanup();
|
|
15
|
+
resolve();
|
|
16
|
+
}, (error) => {
|
|
17
|
+
cleanup();
|
|
18
|
+
reject(error);
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
process.on("SIGINT", onSignal);
|
|
22
|
+
process.on("SIGTERM", onSignal);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=wait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../src/wait.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAyB;IAC/D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,IAAI,EAAE,CAAC,IAAI,CACd,GAAG,EAAE;gBACH,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;gBACjB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@va-claw/cli",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"va-claw": "./dist/bin/va-claw.mjs"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "pnpm --filter @va-claw/memory build && pnpm --filter @va-claw/identity build && pnpm --filter @va-claw/skills build && pnpm --filter @va-claw/daemon build && pnpm --filter @va-claw/channels build && tsc -b",
|
|
13
|
+
"test": "pnpm run build && node --test dist/*.test.js"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@va-claw/channels": "workspace:*",
|
|
17
|
+
"@va-claw/daemon": "workspace:*",
|
|
18
|
+
"@va-claw/identity": "workspace:*",
|
|
19
|
+
"@va-claw/memory": "workspace:*",
|
|
20
|
+
"@va-claw/skills": "workspace:*",
|
|
21
|
+
"commander": "file:../../vendor/commander"
|
|
22
|
+
},
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"default": "./dist/index.js"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -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/cli-adapter.ts","../src/cli-adapter.test.ts","../../../node_modules/.pnpm/croner@file+vendor+croner/node_modules/croner/dist/croner.d.ts","../../identity/dist/types.d.ts","../../identity/dist/path.d.ts","../../identity/dist/storage.d.ts","../../identity/dist/render.d.ts","../../identity/dist/wizard.d.ts","../../identity/dist/index.d.ts","../src/types.ts","../../memory/dist/types.d.ts","../../memory/dist/memory-store.d.ts","../../memory/dist/default-store.d.ts","../../memory/dist/index.d.ts","../../skills/dist/types.d.ts","../../skills/dist/frontmatter.d.ts","../../skills/dist/paths.d.ts","../../skills/dist/search.d.ts","../../skills/dist/store.d.ts","../../skills/dist/index.d.ts","../src/wake-cycle.ts","../src/runtime.ts","../src/service-files.ts","../src/service.ts","../src/index.ts","../src/node-shims.d.ts","../src/runner.ts","../src/runtime.test.ts","../src/service-files.test.ts","../src/wake-cycle.test.ts"],"fileIdsList":[[64,89],[89],[64,73,85,87],[72,85],[73,85,89],[66,73,84],[86,89],[73,89],[73,86,89],[72],[73,84,89],[64,73,77,83,89],[67,68,69,70,71],[67],[74,75],[74,75,76],[74],[78],[78,79,80,81,82]],"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":"a0f04e25273cbc06417494cbcc5bfc44ece46360e81614e436435f66fa1b092a","signature":"9a8fe5579089e53ca02b72e9eaf63dddc327a90f6ad386bf67d160aa4b40eb54","impliedFormat":99},{"version":"6d4453a90caae05ff37a6173aa5d165ecbd5799abfdce3e8189815a217cdd5fc","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"1136376b82d89db60df9b74d647f7f4047599339d555a609da9310c154323bf0","impliedFormat":99},{"version":"c482a05324bdb183855141754506b813194543afd068d934f4797c4a0299c67a","impliedFormat":99},{"version":"0c97e331361352bccfa2d24e2e46625953a190534cf16e8e566b9a84e07b12ff","impliedFormat":99},{"version":"7fbec62b38299205ec520f27fc18ab5315733001fb166a2523f32bd856fafea8","impliedFormat":99},{"version":"7c5ed18df40661edfa1151e3002efde32b1cdf16818ba650fc1b55427274b020","impliedFormat":99},{"version":"184e07268b0c62bc9585ef90c2fb3971dd033e9a9d6b857768ecd5417a92d8ab","impliedFormat":99},{"version":"fe19936f3b0e52495d441d5de9b5b00acb8816cd8d9db7523dd388dc9978ff3b","impliedFormat":99},{"version":"f03d17c06027ec22dd11a92fa616bc37f4022e24a074c72d88540bb9683c2b34","signature":"b7b187dabcced7b1b0ff443ce65ab334cec0cebe177f42fbb049852660e85d91","impliedFormat":99},{"version":"7a6109a4cbae505cc19feb1c6ed74a42d5d125217c9ff7a80374bc7ae6f7efde","impliedFormat":99},{"version":"82998ed0ea5883227c209eda2b76fdfb2c35992e091268acf7d3aee8cf28ca1d","impliedFormat":99},{"version":"e7f5a189cf8c67cbbcb5b7fc23ef8b173609a70764ae3472973bf530a7e08ee0","impliedFormat":99},{"version":"4f36595b4ab547ace01ea616f32796a872c7a65a4be23afca2edbc896fc805f2","impliedFormat":99},{"version":"a7e24482fe91c3f8ee714141e552ec46da00129f405dc05172a467560171c8ba","impliedFormat":99},{"version":"1be3b35db0b3cc52c6ddbb0856d8bfefafcab55da493bd3a9baa1c11ea0aeac0","impliedFormat":99},{"version":"caaebf12b13b193a309b7e8b7d4a89b98e7f9443c2d6d43c05deb638a0794d41","impliedFormat":99},{"version":"cf987a22822823e5c4e5302c2008278f43de9510a59d0f1db1ca4bd69536c163","impliedFormat":99},{"version":"e576d668e2144c66277fd699ba021651e295acee67536dd9221213635de3c8f7","impliedFormat":99},{"version":"fa8bbdfa2d8652b546fbce728339f5c0ab018fad464ad67ee139c4f696b221bd","impliedFormat":99},{"version":"02bde22d1461e321beb67b01067ead56ef6ecebae37557eb899b4cf28fed5658","signature":"3a72032350313b9046e7148d1278c24c542c98ba2e2530a284a77c18100df9b2","impliedFormat":99},{"version":"52aee861d144714ca2a9d8cae51a44400ef78da811a4583d48d82fae13804ccc","signature":"3f50eb2387269096a4bbf8d14acb44eeba45c0a1004a066b377f8a2f355d0602","impliedFormat":99},{"version":"a7e60c60c287845b244e2f58139c7404626a3e18acd311b2a08f00e54cc98057","signature":"aa04f2d0d476760443bd2b89e4000e1a4d1cb9e285f5d00ab687d2bd5b997f55","impliedFormat":99},{"version":"109d97fd0a169251a0a87278ffda37077c7cfad4a94c3bb28a76c00ca1e99773","signature":"e3d37c73f00588d90a161cc3f92883fd983a5d362662bdbc0806e2b7217a5460","impliedFormat":99},{"version":"d4b4acb0f93b68d2d3774ee6282b3fb3b8f2b862109d75323e6c027ffc0363ca","signature":"37c109122af17ca1520cae25912ca61aef54369a4792f736cff1f76ce575cc5f","impliedFormat":99},{"version":"54a50af3255e976fde125efcd882e636b3eba92f031f4bf3b3bd73b82f948dfb","affectsGlobalScope":true,"impliedFormat":99},{"version":"22d22d3a2b7653bf805f0cbf89197fbd795b47b03a866f4182fb541fcd32fcf2","signature":"a9f87c7af683ae4973d031e768f5b5ea39c3c4c543a550a513296b6997a32124","impliedFormat":99},{"version":"6c7b6e4e890e1ceee4545bf1cb79cabcb990025c612a85c9db8a2627d361136a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"e7940a45ebd5a4155a91648e9c88511ff0bb78fe0f6edf8492bcb9b6636ff00c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"bd7840112cbca58955a61a821062304411f5e93c91db1bddeba16fed60c449ca","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99}],"root":[64,65,73,[84,93]],"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],[64,2],[88,3],[90,4],[91,5],[85,6],[92,7],[86,8],[87,9],[73,10],[93,11],[84,12],[72,13],[70,14],[69,14],[71,14],[76,15],[77,16],[75,17],[79,18],[83,19],[81,18],[82,18]],"latestChangedDtsFile":"./service-files.test.d.ts","version":"5.9.3"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type CliAdapter = {
|
|
2
|
+
name: string;
|
|
3
|
+
command: string;
|
|
4
|
+
args: string[];
|
|
5
|
+
};
|
|
6
|
+
type CliDeps = {
|
|
7
|
+
env?: Record<string, string | undefined>;
|
|
8
|
+
runWhich?: (command: string) => string | null;
|
|
9
|
+
warn?: (message: string) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare function detectCliAdapter(deps?: CliDeps): Promise<CliAdapter | null>;
|
|
12
|
+
export declare function whichCommandExists(command: string): string | null;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=cli-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-adapter.d.ts","sourceRoot":"","sources":["../src/cli-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,CAAC;AAKF,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,OAAY,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgBrF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIjE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
const DEFAULT_WARN = (message) => console.warn(message);
|
|
3
|
+
const CLI_CANDIDATES = ["claude-copilot", "claude", "codex"];
|
|
4
|
+
export async function detectCliAdapter(deps = {}) {
|
|
5
|
+
const runWhich = deps.runWhich ?? whichCommandExists;
|
|
6
|
+
const configuredCommand = readEnv(deps.env).VA_CLAW_CLI?.trim();
|
|
7
|
+
if (configuredCommand) {
|
|
8
|
+
return toCliAdapter(configuredCommand, configuredCommand);
|
|
9
|
+
}
|
|
10
|
+
for (const name of CLI_CANDIDATES) {
|
|
11
|
+
const command = runWhich(name);
|
|
12
|
+
if (command) {
|
|
13
|
+
return toCliAdapter(name, command);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
(deps.warn ?? DEFAULT_WARN)("[va-claw/daemon] no supported CLI is available in PATH; skipping wake.");
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
export function whichCommandExists(command) {
|
|
20
|
+
const result = spawnSync("which", [command], { encoding: "utf8" });
|
|
21
|
+
const resolved = typeof result.stdout === "string" ? result.stdout.trim() : "";
|
|
22
|
+
return result.status === 0 && resolved !== "" ? resolved : null;
|
|
23
|
+
}
|
|
24
|
+
function toCliAdapter(name, command) {
|
|
25
|
+
return { name, command, args: name === "codex" ? ["exec", "--full-auto"] : ["-p"] };
|
|
26
|
+
}
|
|
27
|
+
function readEnv(env) {
|
|
28
|
+
return env ?? (process.env ?? {});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=cli-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-adapter.js","sourceRoot":"","sources":["../src/cli-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAc/C,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChE,MAAM,cAAc,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAEtE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgB,EAAE;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IACrD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAChE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CACzB,wEAAwE,CACzE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAAe;IACjD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,SAAS,OAAO,CAAC,GAAwC;IACvD,OAAO,GAAG,IAAI,CAAE,OAAyE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACvG,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { detectCliAdapter, whichCommandExists } from "./cli-adapter.js";
|
|
2
|
+
export { getDaemonStatus, resetRuntimeDepsForTests, setRuntimeDepsForTests, startDaemon, stopDaemon, } from "./runtime.js";
|
|
3
|
+
export { installDaemonService, uninstallDaemonService } from "./service.js";
|
|
4
|
+
export type { DaemonStatus, ServiceType, VaClawConfig } from "./types.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { detectCliAdapter, whichCommandExists } from "./cli-adapter.js";
|
|
2
|
+
export { getDaemonStatus, resetRuntimeDepsForTests, setRuntimeDepsForTests, startDaemon, stopDaemon, } from "./runtime.js";
|
|
3
|
+
export { installDaemonService, uninstallDaemonService } from "./service.js";
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAetD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { loadIdentity } from "../../identity/dist/index.js";
|
|
2
|
+
import { startDaemon, stopDaemon } from "./runtime.js";
|
|
3
|
+
export async function runDaemonProcess() {
|
|
4
|
+
const config = await loadIdentity();
|
|
5
|
+
await startDaemon(config);
|
|
6
|
+
const shutdown = async () => {
|
|
7
|
+
await stopDaemon();
|
|
8
|
+
process.exit(0);
|
|
9
|
+
};
|
|
10
|
+
process.on("SIGINT", () => {
|
|
11
|
+
void shutdown();
|
|
12
|
+
});
|
|
13
|
+
process.on("SIGTERM", () => {
|
|
14
|
+
void shutdown();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
await runDaemonProcess();
|
|
18
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,UAAU,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,KAAK,QAAQ,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DaemonStatus, DiscordRuntimeStatus, VaClawConfig } from "./types.js";
|
|
2
|
+
type SchedulerHandle = {
|
|
3
|
+
stop(): void;
|
|
4
|
+
};
|
|
5
|
+
type DiscordStarter = {
|
|
6
|
+
status(): DiscordRuntimeStatus;
|
|
7
|
+
stop(): Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
type RuntimeDeps = {
|
|
10
|
+
createScheduler: (pattern: string, onTick: () => Promise<void>) => SchedulerHandle;
|
|
11
|
+
startDiscord: (config: {
|
|
12
|
+
token: string;
|
|
13
|
+
clientId: string;
|
|
14
|
+
cliCommand?: string;
|
|
15
|
+
}) => Promise<DiscordStarter>;
|
|
16
|
+
wake: (config: VaClawConfig) => Promise<Date | null>;
|
|
17
|
+
};
|
|
18
|
+
export declare function startDaemon(config: VaClawConfig): Promise<void>;
|
|
19
|
+
export declare function stopDaemon(): Promise<void>;
|
|
20
|
+
export declare function getDaemonStatus(): Promise<DaemonStatus>;
|
|
21
|
+
export declare function setRuntimeDepsForTests(deps: Partial<RuntimeDeps>): void;
|
|
22
|
+
export declare function resetRuntimeDepsForTests(): void;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGnF,KAAK,eAAe,GAAG;IAAE,IAAI,IAAI,IAAI,CAAA;CAAE,CAAC;AACxC,KAAK,cAAc,GAAG;IACpB,MAAM,IAAI,oBAAoB,CAAC;IAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC;IACnF,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CACtD,CAAC;AAgCF,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAO7D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAEvE;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAoB/C"}
|