agim-cli 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1234 -0
- package/LICENSE +21 -0
- package/README.md +422 -0
- package/README.zh-CN.md +414 -0
- package/dist/cli-ui/cmd-handlers.d.ts +11 -0
- package/dist/cli-ui/cmd-handlers.d.ts.map +1 -0
- package/dist/cli-ui/cmd-handlers.js +240 -0
- package/dist/cli-ui/cmd-handlers.js.map +1 -0
- package/dist/cli-ui/config-wizard.d.ts +3 -0
- package/dist/cli-ui/config-wizard.d.ts.map +1 -0
- package/dist/cli-ui/config-wizard.js +851 -0
- package/dist/cli-ui/config-wizard.js.map +1 -0
- package/dist/cli-ui/entry-menu.d.ts +28 -0
- package/dist/cli-ui/entry-menu.d.ts.map +1 -0
- package/dist/cli-ui/entry-menu.js +50 -0
- package/dist/cli-ui/entry-menu.js.map +1 -0
- package/dist/cli-ui/env-file.d.ts +35 -0
- package/dist/cli-ui/env-file.d.ts.map +1 -0
- package/dist/cli-ui/env-file.js +163 -0
- package/dist/cli-ui/env-file.js.map +1 -0
- package/dist/cli-ui/i18n.d.ts +204 -0
- package/dist/cli-ui/i18n.d.ts.map +1 -0
- package/dist/cli-ui/i18n.js +455 -0
- package/dist/cli-ui/i18n.js.map +1 -0
- package/dist/cli-ui/lang-picker.d.ts +10 -0
- package/dist/cli-ui/lang-picker.d.ts.map +1 -0
- package/dist/cli-ui/lang-picker.js +33 -0
- package/dist/cli-ui/lang-picker.js.map +1 -0
- package/dist/cli-ui/paths.d.ts +4 -0
- package/dist/cli-ui/paths.d.ts.map +1 -0
- package/dist/cli-ui/paths.js +11 -0
- package/dist/cli-ui/paths.js.map +1 -0
- package/dist/cli-ui/prompts.d.ts +65 -0
- package/dist/cli-ui/prompts.d.ts.map +1 -0
- package/dist/cli-ui/prompts.js +125 -0
- package/dist/cli-ui/prompts.js.map +1 -0
- package/dist/cli-ui/service.d.ts +41 -0
- package/dist/cli-ui/service.d.ts.map +1 -0
- package/dist/cli-ui/service.js +241 -0
- package/dist/cli-ui/service.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1143 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/acp-server.d.ts +8 -0
- package/dist/core/acp-server.d.ts.map +1 -0
- package/dist/core/acp-server.js +266 -0
- package/dist/core/acp-server.js.map +1 -0
- package/dist/core/agent-base.d.ts +94 -0
- package/dist/core/agent-base.d.ts.map +1 -0
- package/dist/core/agent-base.js +373 -0
- package/dist/core/agent-base.js.map +1 -0
- package/dist/core/agent-cwd.d.ts +48 -0
- package/dist/core/agent-cwd.d.ts.map +1 -0
- package/dist/core/agent-cwd.js +181 -0
- package/dist/core/agent-cwd.js.map +1 -0
- package/dist/core/agent-helper.d.ts +65 -0
- package/dist/core/agent-helper.d.ts.map +1 -0
- package/dist/core/agent-helper.js +150 -0
- package/dist/core/agent-helper.js.map +1 -0
- package/dist/core/agim-paths.d.ts +10 -0
- package/dist/core/agim-paths.d.ts.map +1 -0
- package/dist/core/agim-paths.js +64 -0
- package/dist/core/agim-paths.js.map +1 -0
- package/dist/core/approval-bus.d.ts +300 -0
- package/dist/core/approval-bus.d.ts.map +1 -0
- package/dist/core/approval-bus.js +990 -0
- package/dist/core/approval-bus.js.map +1 -0
- package/dist/core/approval-router.d.ts +101 -0
- package/dist/core/approval-router.d.ts.map +1 -0
- package/dist/core/approval-router.js +540 -0
- package/dist/core/approval-router.js.map +1 -0
- package/dist/core/audit-log.d.ts +55 -0
- package/dist/core/audit-log.d.ts.map +1 -0
- package/dist/core/audit-log.js +203 -0
- package/dist/core/audit-log.js.map +1 -0
- package/dist/core/bgjob-reader.d.ts +65 -0
- package/dist/core/bgjob-reader.d.ts.map +1 -0
- package/dist/core/bgjob-reader.js +212 -0
- package/dist/core/bgjob-reader.js.map +1 -0
- package/dist/core/circuit-breaker.d.ts +37 -0
- package/dist/core/circuit-breaker.d.ts.map +1 -0
- package/dist/core/circuit-breaker.js +115 -0
- package/dist/core/circuit-breaker.js.map +1 -0
- package/dist/core/commands/agent.d.ts +4 -0
- package/dist/core/commands/agent.d.ts.map +1 -0
- package/dist/core/commands/agent.js +40 -0
- package/dist/core/commands/agent.js.map +1 -0
- package/dist/core/commands/approval.d.ts +3 -0
- package/dist/core/commands/approval.d.ts.map +1 -0
- package/dist/core/commands/approval.js +85 -0
- package/dist/core/commands/approval.js.map +1 -0
- package/dist/core/commands/audit.d.ts +3 -0
- package/dist/core/commands/audit.d.ts.map +1 -0
- package/dist/core/commands/audit.js +84 -0
- package/dist/core/commands/audit.js.map +1 -0
- package/dist/core/commands/builtin.d.ts +3 -0
- package/dist/core/commands/builtin.d.ts.map +1 -0
- package/dist/core/commands/builtin.js +304 -0
- package/dist/core/commands/builtin.js.map +1 -0
- package/dist/core/commands/cron.d.ts +3 -0
- package/dist/core/commands/cron.d.ts.map +1 -0
- package/dist/core/commands/cron.js +128 -0
- package/dist/core/commands/cron.js.map +1 -0
- package/dist/core/commands/job.d.ts +3 -0
- package/dist/core/commands/job.d.ts.map +1 -0
- package/dist/core/commands/job.js +195 -0
- package/dist/core/commands/job.js.map +1 -0
- package/dist/core/commands/memo.d.ts +3 -0
- package/dist/core/commands/memo.d.ts.map +1 -0
- package/dist/core/commands/memo.js +151 -0
- package/dist/core/commands/memo.js.map +1 -0
- package/dist/core/commands/model.d.ts +9 -0
- package/dist/core/commands/model.d.ts.map +1 -0
- package/dist/core/commands/model.js +183 -0
- package/dist/core/commands/model.js.map +1 -0
- package/dist/core/commands/plan.d.ts +3 -0
- package/dist/core/commands/plan.d.ts.map +1 -0
- package/dist/core/commands/plan.js +75 -0
- package/dist/core/commands/plan.js.map +1 -0
- package/dist/core/commands/remind.d.ts +3 -0
- package/dist/core/commands/remind.d.ts.map +1 -0
- package/dist/core/commands/remind.js +271 -0
- package/dist/core/commands/remind.js.map +1 -0
- package/dist/core/commands/router.d.ts +3 -0
- package/dist/core/commands/router.d.ts.map +1 -0
- package/dist/core/commands/router.js +71 -0
- package/dist/core/commands/router.js.map +1 -0
- package/dist/core/commands/sessions.d.ts +3 -0
- package/dist/core/commands/sessions.d.ts.map +1 -0
- package/dist/core/commands/sessions.js +88 -0
- package/dist/core/commands/sessions.js.map +1 -0
- package/dist/core/commands/stats.d.ts +3 -0
- package/dist/core/commands/stats.d.ts.map +1 -0
- package/dist/core/commands/stats.js +73 -0
- package/dist/core/commands/stats.js.map +1 -0
- package/dist/core/commands/think.d.ts +3 -0
- package/dist/core/commands/think.d.ts.map +1 -0
- package/dist/core/commands/think.js +28 -0
- package/dist/core/commands/think.js.map +1 -0
- package/dist/core/commands/workspaces.d.ts +3 -0
- package/dist/core/commands/workspaces.d.ts.map +1 -0
- package/dist/core/commands/workspaces.js +47 -0
- package/dist/core/commands/workspaces.js.map +1 -0
- package/dist/core/config-schema.d.ts +60 -0
- package/dist/core/config-schema.d.ts.map +1 -0
- package/dist/core/config-schema.js +75 -0
- package/dist/core/config-schema.js.map +1 -0
- package/dist/core/coord-systems.d.ts +65 -0
- package/dist/core/coord-systems.d.ts.map +1 -0
- package/dist/core/coord-systems.js +229 -0
- package/dist/core/coord-systems.js.map +1 -0
- package/dist/core/cron.d.ts +29 -0
- package/dist/core/cron.d.ts.map +1 -0
- package/dist/core/cron.js +184 -0
- package/dist/core/cron.js.map +1 -0
- package/dist/core/event-bus.d.ts +80 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +62 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/intent-llm.d.ts +27 -0
- package/dist/core/intent-llm.d.ts.map +1 -0
- package/dist/core/intent-llm.js +170 -0
- package/dist/core/intent-llm.js.map +1 -0
- package/dist/core/intent.d.ts +12 -0
- package/dist/core/intent.d.ts.map +1 -0
- package/dist/core/intent.js +187 -0
- package/dist/core/intent.js.map +1 -0
- package/dist/core/job-board.d.ts +82 -0
- package/dist/core/job-board.d.ts.map +1 -0
- package/dist/core/job-board.js +379 -0
- package/dist/core/job-board.js.map +1 -0
- package/dist/core/location-context.d.ts +32 -0
- package/dist/core/location-context.d.ts.map +1 -0
- package/dist/core/location-context.js +69 -0
- package/dist/core/location-context.js.map +1 -0
- package/dist/core/location-token.d.ts +57 -0
- package/dist/core/location-token.d.ts.map +1 -0
- package/dist/core/location-token.js +128 -0
- package/dist/core/location-token.js.map +1 -0
- package/dist/core/logger.d.ts +6 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +54 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/memo-rpc.d.ts +13 -0
- package/dist/core/memo-rpc.d.ts.map +1 -0
- package/dist/core/memo-rpc.js +288 -0
- package/dist/core/memo-rpc.js.map +1 -0
- package/dist/core/memos.d.ts +163 -0
- package/dist/core/memos.d.ts.map +1 -0
- package/dist/core/memos.js +502 -0
- package/dist/core/memos.js.map +1 -0
- package/dist/core/metrics.d.ts +55 -0
- package/dist/core/metrics.d.ts.map +1 -0
- package/dist/core/metrics.js +291 -0
- package/dist/core/metrics.js.map +1 -0
- package/dist/core/onboarding.d.ts +99 -0
- package/dist/core/onboarding.d.ts.map +1 -0
- package/dist/core/onboarding.js +426 -0
- package/dist/core/onboarding.js.map +1 -0
- package/dist/core/pending-reminder.d.ts +25 -0
- package/dist/core/pending-reminder.d.ts.map +1 -0
- package/dist/core/pending-reminder.js +53 -0
- package/dist/core/pending-reminder.js.map +1 -0
- package/dist/core/rate-limiter.d.ts +44 -0
- package/dist/core/rate-limiter.d.ts.map +1 -0
- package/dist/core/rate-limiter.js +115 -0
- package/dist/core/rate-limiter.js.map +1 -0
- package/dist/core/registry.d.ts +32 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +126 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/remind-intent.d.ts +25 -0
- package/dist/core/remind-intent.d.ts.map +1 -0
- package/dist/core/remind-intent.js +196 -0
- package/dist/core/remind-intent.js.map +1 -0
- package/dist/core/reminder-rpc.d.ts +17 -0
- package/dist/core/reminder-rpc.d.ts.map +1 -0
- package/dist/core/reminder-rpc.js +169 -0
- package/dist/core/reminder-rpc.js.map +1 -0
- package/dist/core/reminders.d.ts +159 -0
- package/dist/core/reminders.d.ts.map +1 -0
- package/dist/core/reminders.js +977 -0
- package/dist/core/reminders.js.map +1 -0
- package/dist/core/router.d.ts +55 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +497 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/schedule.d.ts +65 -0
- package/dist/core/schedule.d.ts.map +1 -0
- package/dist/core/schedule.js +323 -0
- package/dist/core/schedule.js.map +1 -0
- package/dist/core/session.d.ts +182 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +807 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/sqlite-helper.d.ts +37 -0
- package/dist/core/sqlite-helper.d.ts.map +1 -0
- package/dist/core/sqlite-helper.js +79 -0
- package/dist/core/sqlite-helper.js.map +1 -0
- package/dist/core/transcribe.d.ts +25 -0
- package/dist/core/transcribe.d.ts.map +1 -0
- package/dist/core/transcribe.js +217 -0
- package/dist/core/transcribe.js.map +1 -0
- package/dist/core/types.d.ts +360 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/workspace.d.ts +67 -0
- package/dist/core/workspace.d.ts.map +1 -0
- package/dist/core/workspace.js +113 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/agents/acp/acp-adapter.d.ts +16 -0
- package/dist/plugins/agents/acp/acp-adapter.d.ts.map +1 -0
- package/dist/plugins/agents/acp/acp-adapter.js +49 -0
- package/dist/plugins/agents/acp/acp-adapter.js.map +1 -0
- package/dist/plugins/agents/acp/acp-client.d.ts +32 -0
- package/dist/plugins/agents/acp/acp-client.d.ts.map +1 -0
- package/dist/plugins/agents/acp/acp-client.js +177 -0
- package/dist/plugins/agents/acp/acp-client.js.map +1 -0
- package/dist/plugins/agents/acp/discovery.d.ts +19 -0
- package/dist/plugins/agents/acp/discovery.d.ts.map +1 -0
- package/dist/plugins/agents/acp/discovery.js +111 -0
- package/dist/plugins/agents/acp/discovery.js.map +1 -0
- package/dist/plugins/agents/acp/index.d.ts +4 -0
- package/dist/plugins/agents/acp/index.d.ts.map +1 -0
- package/dist/plugins/agents/acp/index.js +4 -0
- package/dist/plugins/agents/acp/index.js.map +1 -0
- package/dist/plugins/agents/acp/types.d.ts +62 -0
- package/dist/plugins/agents/acp/types.d.ts.map +1 -0
- package/dist/plugins/agents/acp/types.js +5 -0
- package/dist/plugins/agents/acp/types.js.map +1 -0
- package/dist/plugins/agents/claude-code/index.d.ts +25 -0
- package/dist/plugins/agents/claude-code/index.d.ts.map +1 -0
- package/dist/plugins/agents/claude-code/index.js +184 -0
- package/dist/plugins/agents/claude-code/index.js.map +1 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts +59 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts.map +1 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.js +645 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.js.map +1 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.d.ts +28 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.d.ts.map +1 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.js +74 -0
- package/dist/plugins/agents/codex/build-mcp-cli-args.js.map +1 -0
- package/dist/plugins/agents/codex/index.d.ts +53 -0
- package/dist/plugins/agents/codex/index.d.ts.map +1 -0
- package/dist/plugins/agents/codex/index.js +341 -0
- package/dist/plugins/agents/codex/index.js.map +1 -0
- package/dist/plugins/agents/copilot/index.d.ts +35 -0
- package/dist/plugins/agents/copilot/index.d.ts.map +1 -0
- package/dist/plugins/agents/copilot/index.js +182 -0
- package/dist/plugins/agents/copilot/index.js.map +1 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.d.ts +11 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.js +100 -0
- package/dist/plugins/agents/opencode/ensure-mcp-config.js.map +1 -0
- package/dist/plugins/agents/opencode/index.d.ts +5 -0
- package/dist/plugins/agents/opencode/index.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/index.js +30 -0
- package/dist/plugins/agents/opencode/index.js.map +1 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts +166 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.js +682 -0
- package/dist/plugins/agents/opencode/opencode-http-adapter.js.map +1 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts +32 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.js +137 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.js.map +1 -0
- package/dist/plugins/agents/opencode/serve-manager.d.ts +27 -0
- package/dist/plugins/agents/opencode/serve-manager.d.ts.map +1 -0
- package/dist/plugins/agents/opencode/serve-manager.js +194 -0
- package/dist/plugins/agents/opencode/serve-manager.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.d.ts +57 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.js +409 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-adapter.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.d.ts +48 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.js +236 -0
- package/dist/plugins/messengers/dingtalk/dingtalk-client.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/index.d.ts +3 -0
- package/dist/plugins/messengers/dingtalk/index.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/index.js +3 -0
- package/dist/plugins/messengers/dingtalk/index.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/link-coords.d.ts +23 -0
- package/dist/plugins/messengers/dingtalk/link-coords.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/link-coords.js +89 -0
- package/dist/plugins/messengers/dingtalk/link-coords.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/media-store.d.ts +16 -0
- package/dist/plugins/messengers/dingtalk/media-store.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/media-store.js +77 -0
- package/dist/plugins/messengers/dingtalk/media-store.js.map +1 -0
- package/dist/plugins/messengers/dingtalk/types.d.ts +82 -0
- package/dist/plugins/messengers/dingtalk/types.d.ts.map +1 -0
- package/dist/plugins/messengers/dingtalk/types.js +14 -0
- package/dist/plugins/messengers/dingtalk/types.js.map +1 -0
- package/dist/plugins/messengers/discord/discord-adapter.d.ts +21 -0
- package/dist/plugins/messengers/discord/discord-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/discord-adapter.js +238 -0
- package/dist/plugins/messengers/discord/discord-adapter.js.map +1 -0
- package/dist/plugins/messengers/discord/index.d.ts +4 -0
- package/dist/plugins/messengers/discord/index.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/index.js +4 -0
- package/dist/plugins/messengers/discord/index.js.map +1 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.d.ts +11 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.js +59 -0
- package/dist/plugins/messengers/discord/markdown-to-discord.js.map +1 -0
- package/dist/plugins/messengers/discord/types.d.ts +9 -0
- package/dist/plugins/messengers/discord/types.d.ts.map +1 -0
- package/dist/plugins/messengers/discord/types.js +3 -0
- package/dist/plugins/messengers/discord/types.js.map +1 -0
- package/dist/plugins/messengers/email/email-adapter.d.ts +33 -0
- package/dist/plugins/messengers/email/email-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/email/email-adapter.js +137 -0
- package/dist/plugins/messengers/email/email-adapter.js.map +1 -0
- package/dist/plugins/messengers/feishu/card-builder.d.ts +23 -0
- package/dist/plugins/messengers/feishu/card-builder.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/card-builder.js +89 -0
- package/dist/plugins/messengers/feishu/card-builder.js.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.d.ts +23 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.js +250 -0
- package/dist/plugins/messengers/feishu/feishu-adapter.js.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-client.d.ts +43 -0
- package/dist/plugins/messengers/feishu/feishu-client.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/feishu-client.js +118 -0
- package/dist/plugins/messengers/feishu/feishu-client.js.map +1 -0
- package/dist/plugins/messengers/feishu/index.d.ts +4 -0
- package/dist/plugins/messengers/feishu/index.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/index.js +4 -0
- package/dist/plugins/messengers/feishu/index.js.map +1 -0
- package/dist/plugins/messengers/feishu/types.d.ts +113 -0
- package/dist/plugins/messengers/feishu/types.d.ts.map +1 -0
- package/dist/plugins/messengers/feishu/types.js +4 -0
- package/dist/plugins/messengers/feishu/types.js.map +1 -0
- package/dist/plugins/messengers/telegram/index.d.ts +4 -0
- package/dist/plugins/messengers/telegram/index.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/index.js +4 -0
- package/dist/plugins/messengers/telegram/index.js.map +1 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.d.ts +5 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.js +186 -0
- package/dist/plugins/messengers/telegram/markdown-to-html.js.map +1 -0
- package/dist/plugins/messengers/telegram/media-download.d.ts +59 -0
- package/dist/plugins/messengers/telegram/media-download.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/media-download.js +228 -0
- package/dist/plugins/messengers/telegram/media-download.js.map +1 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.d.ts +77 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.js +880 -0
- package/dist/plugins/messengers/telegram/telegram-adapter.js.map +1 -0
- package/dist/plugins/messengers/telegram/types.d.ts +47 -0
- package/dist/plugins/messengers/telegram/types.d.ts.map +1 -0
- package/dist/plugins/messengers/telegram/types.js +3 -0
- package/dist/plugins/messengers/telegram/types.js.map +1 -0
- package/dist/plugins/messengers/wechat/context-store.d.ts +18 -0
- package/dist/plugins/messengers/wechat/context-store.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/context-store.js +105 -0
- package/dist/plugins/messengers/wechat/context-store.js.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.d.ts +71 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.js +664 -0
- package/dist/plugins/messengers/wechat/ilink-adapter.js.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-client.d.ts +75 -0
- package/dist/plugins/messengers/wechat/ilink-client.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-client.js +331 -0
- package/dist/plugins/messengers/wechat/ilink-client.js.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-types.d.ts +181 -0
- package/dist/plugins/messengers/wechat/ilink-types.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/ilink-types.js +22 -0
- package/dist/plugins/messengers/wechat/ilink-types.js.map +1 -0
- package/dist/plugins/messengers/wechat/media-download.d.ts +32 -0
- package/dist/plugins/messengers/wechat/media-download.d.ts.map +1 -0
- package/dist/plugins/messengers/wechat/media-download.js +78 -0
- package/dist/plugins/messengers/wechat/media-download.js.map +1 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.d.ts +3 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.d.ts.map +1 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.js +52 -0
- package/dist/scripts/migrate-gcj02-to-wgs84.js.map +1 -0
- package/dist/utils/backoff.d.ts +35 -0
- package/dist/utils/backoff.d.ts.map +1 -0
- package/dist/utils/backoff.js +59 -0
- package/dist/utils/backoff.js.map +1 -0
- package/dist/utils/cross-platform.d.ts +26 -0
- package/dist/utils/cross-platform.d.ts.map +1 -0
- package/dist/utils/cross-platform.js +58 -0
- package/dist/utils/cross-platform.js.map +1 -0
- package/dist/utils/message-split.d.ts +14 -0
- package/dist/utils/message-split.d.ts.map +1 -0
- package/dist/utils/message-split.js +65 -0
- package/dist/utils/message-split.js.map +1 -0
- package/dist/utils/safe-equal.d.ts +2 -0
- package/dist/utils/safe-equal.d.ts.map +1 -0
- package/dist/utils/safe-equal.js +11 -0
- package/dist/utils/safe-equal.js.map +1 -0
- package/dist/web/public/_app.js +196 -0
- package/dist/web/public/index.html +936 -0
- package/dist/web/public/loc.html +305 -0
- package/dist/web/public/login.html +106 -0
- package/dist/web/public/memos.html +271 -0
- package/dist/web/public/reminders.html +234 -0
- package/dist/web/public/settings.html +1355 -0
- package/dist/web/public/tasks.html +1835 -0
- package/dist/web/server.d.ts +12 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +2399 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli-ui/prompts.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAK,KAAK,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,WAAW,CAAA;AAElD,eAAO,MAAM,IAAI,eAAiB,CAAA;AAClC,MAAM,MAAM,YAAY,GAAG,OAAO,IAAI,CAAA;AAEtC,qBAAa,cAAe,SAAQ,KAAK;;CAKxC;AASD,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,iDAAiD;IACjD,KAAK,EAAE,CAAC,CAAA;IACR,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,OAAO,CAAC,EAAE,CAAC,CAAA;CACZ,GAAG,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,CA0B5B;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE;IACxD,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CASf;AAED,yDAAyD;AACzD,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAA;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,0CAA0C;AAC1C,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,CAAA;CACxC,GAAG,OAAO,CAAC,MAAM,CAAC,CAYlB;AAED,wCAAwC;AACxC,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAI1F"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// cli-ui/prompts.ts — thin wrappers around @inquirer/prompts with two
|
|
2
|
+
// conveniences the underlying library doesn't bake in:
|
|
3
|
+
//
|
|
4
|
+
// 1. A standardized "← Back" choice that callers can detect by the
|
|
5
|
+
// sentinel return value `BACK`. This lets loops at any level handle
|
|
6
|
+
// navigation without each call site reaching into the prompt API.
|
|
7
|
+
// 2. Graceful exit on Ctrl-C — inquirer throws `ExitPromptError`; we
|
|
8
|
+
// catch + re-throw as our own `UserAbortError` so callers can decide
|
|
9
|
+
// whether to exit (top-level) or treat as Back (nested).
|
|
10
|
+
import { select, checkbox, input, password, confirm, Separator, } from '@inquirer/prompts';
|
|
11
|
+
import { t } from './i18n.js';
|
|
12
|
+
export const BACK = Symbol('back');
|
|
13
|
+
export class UserAbortError extends Error {
|
|
14
|
+
constructor() {
|
|
15
|
+
super('User pressed Ctrl-C');
|
|
16
|
+
this.name = 'UserAbortError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function rethrowAbort(err) {
|
|
20
|
+
if (err && typeof err === 'object' && 'name' in err && err.name === 'ExitPromptError') {
|
|
21
|
+
throw new UserAbortError();
|
|
22
|
+
}
|
|
23
|
+
throw err;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Single-choice menu with arrow keys + Enter. If `back` is provided
|
|
27
|
+
* (a key from i18n.ts pointing at a `← Back`-style string), an extra
|
|
28
|
+
* back entry is appended; picking it returns the BACK sentinel.
|
|
29
|
+
*/
|
|
30
|
+
export async function menu(opts) {
|
|
31
|
+
const choices = [];
|
|
32
|
+
for (const c of opts.choices) {
|
|
33
|
+
if (c.separatorBefore) {
|
|
34
|
+
// Statically imported above. require() doesn't exist in ESM modules,
|
|
35
|
+
// so an earlier lazy-import attempt crashed at runtime.
|
|
36
|
+
choices.push(new Separator());
|
|
37
|
+
}
|
|
38
|
+
choices.push({
|
|
39
|
+
value: c.value,
|
|
40
|
+
name: c.name,
|
|
41
|
+
description: c.description,
|
|
42
|
+
disabled: c.disabled,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (opts.back) {
|
|
46
|
+
choices.push({ value: BACK, name: t(opts.lang, opts.back) });
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
return await select({
|
|
50
|
+
message: opts.message,
|
|
51
|
+
choices: choices,
|
|
52
|
+
default: opts.default,
|
|
53
|
+
loop: false,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
rethrowAbort(err);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Multi-select with Space to toggle. Always returns an array (possibly
|
|
62
|
+
* empty). No back option — typical usage is "pick which IMs to enable";
|
|
63
|
+
* cancel is via Ctrl-C → UserAbortError.
|
|
64
|
+
*/
|
|
65
|
+
export async function multiSelect(opts) {
|
|
66
|
+
try {
|
|
67
|
+
return await checkbox({
|
|
68
|
+
message: opts.message,
|
|
69
|
+
choices: opts.choices,
|
|
70
|
+
required: opts.required ?? false,
|
|
71
|
+
loop: false,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
rethrowAbort(err);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/** Free-text input with optional default + validator. */
|
|
79
|
+
export async function inputText(opts) {
|
|
80
|
+
try {
|
|
81
|
+
return await input({
|
|
82
|
+
message: opts.message,
|
|
83
|
+
default: opts.default,
|
|
84
|
+
validate: (v) => {
|
|
85
|
+
if (opts.required && !v.trim())
|
|
86
|
+
return 'Required';
|
|
87
|
+
if (opts.validate)
|
|
88
|
+
return opts.validate(v);
|
|
89
|
+
return true;
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
rethrowAbort(err);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Hidden input for secrets (no echo). */
|
|
98
|
+
export async function inputSecret(opts) {
|
|
99
|
+
try {
|
|
100
|
+
return await password({
|
|
101
|
+
message: opts.message,
|
|
102
|
+
mask: '*',
|
|
103
|
+
validate: (v) => {
|
|
104
|
+
if (opts.required && !v)
|
|
105
|
+
return 'Required';
|
|
106
|
+
if (opts.validate)
|
|
107
|
+
return opts.validate(v);
|
|
108
|
+
return true;
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
rethrowAbort(err);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Yes/no with arrow-key navigation. */
|
|
117
|
+
export async function yesNo(opts) {
|
|
118
|
+
try {
|
|
119
|
+
return await confirm({ message: opts.message, default: opts.default ?? false });
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
rethrowAbort(err);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli-ui/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export declare const PID_FILE: string;
|
|
2
|
+
export declare const LOG_FILE: string;
|
|
3
|
+
export type ServiceMode = 'systemd' | 'background' | 'foreground' | 'none';
|
|
4
|
+
export interface ServiceState {
|
|
5
|
+
mode: ServiceMode;
|
|
6
|
+
pid: number | null;
|
|
7
|
+
/** Approximate uptime in seconds — from systemd timestamp or proc start time. */
|
|
8
|
+
uptimeSec?: number;
|
|
9
|
+
}
|
|
10
|
+
/** Format seconds as e.g. "2h 15m" / "3d 4h" / "45s". */
|
|
11
|
+
export declare function formatUptime(sec: number): string;
|
|
12
|
+
/** Look up the running mode + pid. Order matters: systemd wins, then bg
|
|
13
|
+
* pid-file, then a foreground pgrep match. Returns `{mode:'none', pid:null}`
|
|
14
|
+
* when nothing is running. */
|
|
15
|
+
export declare function detectService(): ServiceState;
|
|
16
|
+
/**
|
|
17
|
+
* Spawn Agim detached with stdio redirected to ~/.im-hub/im-hub.log.
|
|
18
|
+
* Writes the pid to PID_FILE so subsequent `status` / `stop` find it.
|
|
19
|
+
*
|
|
20
|
+
* Cross-platform: setsid → new session, no controlling tty, parent can exit.
|
|
21
|
+
* On macOS where setsid isn't always reliable, fall through to a plain
|
|
22
|
+
* detached spawn (child still gets stdio: 'ignore' / 'pipe' redirected to
|
|
23
|
+
* the log file, which is enough to survive the parent).
|
|
24
|
+
*/
|
|
25
|
+
export declare function spawnBackground(executable: string, args?: string[]): {
|
|
26
|
+
pid: number;
|
|
27
|
+
};
|
|
28
|
+
/** Stop whichever instance is running. Returns the mode that was stopped
|
|
29
|
+
* (or 'none' when there was nothing to do). */
|
|
30
|
+
export declare function stopService(): Promise<{
|
|
31
|
+
mode: ServiceMode;
|
|
32
|
+
pid: number | null;
|
|
33
|
+
}>;
|
|
34
|
+
/** Get the configured web bind+port from `<AGIM_HOME>/config.json` —
|
|
35
|
+
* used by `status` to print the URL. Returns null when config is
|
|
36
|
+
* absent / unparseable. */
|
|
37
|
+
export declare function readWebEndpoint(): {
|
|
38
|
+
bind: string;
|
|
39
|
+
port: number;
|
|
40
|
+
} | null;
|
|
41
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cli-ui/service.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,QAAQ,QAAgC,CAAA;AACrD,eAAO,MAAM,QAAQ,QAAgC,CAAA;AAqBrD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAAA;AAE1E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAA;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA2BD,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQhD;AAED;;+BAE+B;AAC/B,wBAAgB,aAAa,IAAI,YAAY,CAmD5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAmB/F;AAED;gDACgD;AAChD,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAiCtF;AAED;;4BAE4B;AAC5B,wBAAgB,eAAe,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQvE"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// cli-ui/service.ts — cross-platform service detection + lifecycle for
|
|
2
|
+
// Agim (formerly im-hub-pro). Knows about three run modes:
|
|
3
|
+
//
|
|
4
|
+
// 1. systemd-managed — Linux + root, either /etc/systemd/system/agim.service
|
|
5
|
+
// (the v1.0+ unit) OR the legacy im-hub.service exists
|
|
6
|
+
// and `systemctl is-active <unit>` returns "active".
|
|
7
|
+
// New installs write agim.service; pre-v1.0 systems
|
|
8
|
+
// continue to be detected via the legacy name.
|
|
9
|
+
// 2. background daemon — `agim start --bg` writes ~/.im-hub/im-hub.pid
|
|
10
|
+
// and ~/.im-hub/im-hub.log (paths kept under the
|
|
11
|
+
// legacy ~/.im-hub/ for upgrade compatibility).
|
|
12
|
+
// nohup + setsid; survives shell exit. Works on
|
|
13
|
+
// Linux, macOS, WSL2.
|
|
14
|
+
// 3. foreground — a TTY-attached `agim start` (or the legacy
|
|
15
|
+
// `im-hub-pro start`) somewhere. We detect it via
|
|
16
|
+
// `pgrep -af` matching, but can't stop or restart
|
|
17
|
+
// it from outside the owning TTY.
|
|
18
|
+
//
|
|
19
|
+
// The detection helpers are all best-effort: a missing systemctl, a stale
|
|
20
|
+
// pid file, or a pgrep mismatch produces "not running" rather than an
|
|
21
|
+
// error, so the caller can decide what to ack.
|
|
22
|
+
import { execSync, spawn } from 'node:child_process';
|
|
23
|
+
import { readFileSync, existsSync, writeFileSync, unlinkSync, mkdirSync, openSync, closeSync } from 'node:fs';
|
|
24
|
+
import { join, dirname } from 'node:path';
|
|
25
|
+
import { AGIM_HOME } from '../core/agim-paths.js';
|
|
26
|
+
// Pid + log files live inside whatever AGIM_HOME resolved to. Filenames
|
|
27
|
+
// themselves stay `im-hub.*` for backwards compat with any external
|
|
28
|
+
// monitoring / log-collection that's tailing them.
|
|
29
|
+
export const PID_FILE = join(AGIM_HOME, 'im-hub.pid');
|
|
30
|
+
export const LOG_FILE = join(AGIM_HOME, 'im-hub.log');
|
|
31
|
+
/** Systemd unit candidates, checked in order. v1.0+ installers should
|
|
32
|
+
* write `agim.service`; older installs use `im-hub.service`. We accept
|
|
33
|
+
* either so users who upgraded across the rename don't lose detection.
|
|
34
|
+
* `getSystemdUnit()` resolves which one exists. */
|
|
35
|
+
const SYSTEMD_UNIT_CANDIDATES = [
|
|
36
|
+
'/etc/systemd/system/agim.service',
|
|
37
|
+
'/etc/systemd/system/im-hub.service',
|
|
38
|
+
];
|
|
39
|
+
function getSystemdUnit() {
|
|
40
|
+
for (const path of SYSTEMD_UNIT_CANDIDATES) {
|
|
41
|
+
if (existsSync(path)) {
|
|
42
|
+
// e.g. "/etc/systemd/system/agim.service" → "agim.service"
|
|
43
|
+
return { path, name: path.split('/').pop() ?? '' };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
/** Check if a unix pid is alive. */
|
|
49
|
+
function pidAlive(pid) {
|
|
50
|
+
try {
|
|
51
|
+
process.kill(pid, 0);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Approximate uptime by reading /proc/<pid>/stat — Linux/WSL only.
|
|
59
|
+
* On macOS we'd need `ps -o etime`; not bothering for status display. */
|
|
60
|
+
function uptimeOfPid(pid) {
|
|
61
|
+
try {
|
|
62
|
+
const stat = readFileSync(`/proc/${pid}/stat`, 'utf-8');
|
|
63
|
+
// Field 22 (0-indexed 21) is start time in clock ticks since boot.
|
|
64
|
+
const fields = stat.slice(stat.lastIndexOf(')') + 2).split(' ');
|
|
65
|
+
const starttimeTicks = parseInt(fields[19], 10);
|
|
66
|
+
if (!Number.isFinite(starttimeTicks))
|
|
67
|
+
return undefined;
|
|
68
|
+
const ticksPerSec = parseInt(execSync('getconf CLK_TCK').toString().trim(), 10) || 100;
|
|
69
|
+
const bootTime = parseInt(execSync(`awk '/btime/ {print $2}' /proc/stat`).toString().trim(), 10);
|
|
70
|
+
if (!Number.isFinite(bootTime))
|
|
71
|
+
return undefined;
|
|
72
|
+
const startUnix = bootTime + starttimeTicks / ticksPerSec;
|
|
73
|
+
return Math.max(0, Math.floor(Date.now() / 1000 - startUnix));
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/** Format seconds as e.g. "2h 15m" / "3d 4h" / "45s". */
|
|
80
|
+
export function formatUptime(sec) {
|
|
81
|
+
if (sec < 60)
|
|
82
|
+
return `${sec}s`;
|
|
83
|
+
const m = Math.floor(sec / 60);
|
|
84
|
+
if (m < 60)
|
|
85
|
+
return `${m}m`;
|
|
86
|
+
const h = Math.floor(m / 60);
|
|
87
|
+
if (h < 24)
|
|
88
|
+
return `${h}h ${m % 60}m`;
|
|
89
|
+
const d = Math.floor(h / 24);
|
|
90
|
+
return `${d}d ${h % 24}h`;
|
|
91
|
+
}
|
|
92
|
+
/** Look up the running mode + pid. Order matters: systemd wins, then bg
|
|
93
|
+
* pid-file, then a foreground pgrep match. Returns `{mode:'none', pid:null}`
|
|
94
|
+
* when nothing is running. */
|
|
95
|
+
export function detectService() {
|
|
96
|
+
// 1. systemd — check whichever unit name exists (agim.service first,
|
|
97
|
+
// im-hub.service fallback for pre-1.0 installs).
|
|
98
|
+
const unit = getSystemdUnit();
|
|
99
|
+
if (unit) {
|
|
100
|
+
try {
|
|
101
|
+
const active = execSync(`systemctl is-active ${unit.name} 2>&1`, { encoding: 'utf-8' }).trim();
|
|
102
|
+
if (active === 'active') {
|
|
103
|
+
let pid = null;
|
|
104
|
+
try {
|
|
105
|
+
const out = execSync(`systemctl show -p MainPID --value ${unit.name}`, { encoding: 'utf-8' }).trim();
|
|
106
|
+
const n = parseInt(out, 10);
|
|
107
|
+
if (Number.isFinite(n) && n > 0)
|
|
108
|
+
pid = n;
|
|
109
|
+
}
|
|
110
|
+
catch { /* keep null */ }
|
|
111
|
+
return {
|
|
112
|
+
mode: 'systemd',
|
|
113
|
+
pid,
|
|
114
|
+
uptimeSec: pid ? uptimeOfPid(pid) : undefined,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch { /* systemctl not on PATH, e.g. macOS — fall through */ }
|
|
119
|
+
}
|
|
120
|
+
// 2. background pid file
|
|
121
|
+
if (existsSync(PID_FILE)) {
|
|
122
|
+
try {
|
|
123
|
+
const pid = parseInt(readFileSync(PID_FILE, 'utf-8').trim(), 10);
|
|
124
|
+
if (Number.isFinite(pid) && pidAlive(pid)) {
|
|
125
|
+
return { mode: 'background', pid, uptimeSec: uptimeOfPid(pid) };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch { /* fall through */ }
|
|
129
|
+
}
|
|
130
|
+
// 3. foreground — pgrep for our CLI. Match `agim start`, the legacy
|
|
131
|
+
// `im-hub-pro start` (kept for users with old bin aliases), or
|
|
132
|
+
// `dist/cli.js start`. Excludes the current process (the CLI that's
|
|
133
|
+
// running this check).
|
|
134
|
+
try {
|
|
135
|
+
const out = execSync('pgrep -af "agim start|im-hub-pro start|dist/cli.js start"', {
|
|
136
|
+
encoding: 'utf-8',
|
|
137
|
+
}).trim();
|
|
138
|
+
const lines = out.split('\n').filter(Boolean);
|
|
139
|
+
for (const line of lines) {
|
|
140
|
+
const pid = parseInt(line.split(' ')[0], 10);
|
|
141
|
+
if (Number.isFinite(pid) && pid !== process.pid && pidAlive(pid)) {
|
|
142
|
+
return { mode: 'foreground', pid, uptimeSec: uptimeOfPid(pid) };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch { /* pgrep found nothing — exit 1 */ }
|
|
147
|
+
return { mode: 'none', pid: null };
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Spawn Agim detached with stdio redirected to ~/.im-hub/im-hub.log.
|
|
151
|
+
* Writes the pid to PID_FILE so subsequent `status` / `stop` find it.
|
|
152
|
+
*
|
|
153
|
+
* Cross-platform: setsid → new session, no controlling tty, parent can exit.
|
|
154
|
+
* On macOS where setsid isn't always reliable, fall through to a plain
|
|
155
|
+
* detached spawn (child still gets stdio: 'ignore' / 'pipe' redirected to
|
|
156
|
+
* the log file, which is enough to survive the parent).
|
|
157
|
+
*/
|
|
158
|
+
export function spawnBackground(executable, args = ['start']) {
|
|
159
|
+
mkdirSync(dirname(LOG_FILE), { recursive: true });
|
|
160
|
+
// Open the log file (append) and use its fd for child stdout/stderr.
|
|
161
|
+
// openSync + closeSync are statically imported at the top — require() doesn't
|
|
162
|
+
// exist in ESM modules (package.json has "type": "module").
|
|
163
|
+
const fd = openSync(LOG_FILE, 'a');
|
|
164
|
+
try {
|
|
165
|
+
const child = spawn(executable, args, {
|
|
166
|
+
detached: true,
|
|
167
|
+
stdio: ['ignore', fd, fd],
|
|
168
|
+
env: process.env,
|
|
169
|
+
});
|
|
170
|
+
child.unref();
|
|
171
|
+
if (!child.pid)
|
|
172
|
+
throw new Error('spawn returned no pid');
|
|
173
|
+
writeFileSync(PID_FILE, `${child.pid}\n`);
|
|
174
|
+
return { pid: child.pid };
|
|
175
|
+
}
|
|
176
|
+
finally {
|
|
177
|
+
closeSync(fd);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/** Stop whichever instance is running. Returns the mode that was stopped
|
|
181
|
+
* (or 'none' when there was nothing to do). */
|
|
182
|
+
export async function stopService() {
|
|
183
|
+
const st = detectService();
|
|
184
|
+
if (st.mode === 'none')
|
|
185
|
+
return { mode: 'none', pid: null };
|
|
186
|
+
if (st.mode === 'systemd') {
|
|
187
|
+
const unit = getSystemdUnit();
|
|
188
|
+
if (unit) {
|
|
189
|
+
execSync(`systemctl stop ${unit.name}`, { stdio: 'inherit' });
|
|
190
|
+
}
|
|
191
|
+
return { mode: 'systemd', pid: st.pid };
|
|
192
|
+
}
|
|
193
|
+
if (st.mode === 'background' && st.pid) {
|
|
194
|
+
try {
|
|
195
|
+
process.kill(st.pid, 'SIGTERM');
|
|
196
|
+
}
|
|
197
|
+
catch { /* already gone */ }
|
|
198
|
+
// Wait up to 5s for clean exit, then SIGKILL.
|
|
199
|
+
for (let i = 0; i < 50; i++) {
|
|
200
|
+
if (!pidAlive(st.pid))
|
|
201
|
+
break;
|
|
202
|
+
await new Promise(r => setTimeout(r, 100));
|
|
203
|
+
}
|
|
204
|
+
if (pidAlive(st.pid)) {
|
|
205
|
+
try {
|
|
206
|
+
process.kill(st.pid, 'SIGKILL');
|
|
207
|
+
}
|
|
208
|
+
catch { /* ignore */ }
|
|
209
|
+
}
|
|
210
|
+
try {
|
|
211
|
+
unlinkSync(PID_FILE);
|
|
212
|
+
}
|
|
213
|
+
catch { /* ok if already gone */ }
|
|
214
|
+
return { mode: 'background', pid: st.pid };
|
|
215
|
+
}
|
|
216
|
+
if (st.mode === 'foreground' && st.pid) {
|
|
217
|
+
// Best-effort: try SIGTERM. The owning TTY may also see Ctrl-C.
|
|
218
|
+
try {
|
|
219
|
+
process.kill(st.pid, 'SIGTERM');
|
|
220
|
+
}
|
|
221
|
+
catch { /* ignore */ }
|
|
222
|
+
return { mode: 'foreground', pid: st.pid };
|
|
223
|
+
}
|
|
224
|
+
return { mode: 'none', pid: null };
|
|
225
|
+
}
|
|
226
|
+
/** Get the configured web bind+port from `<AGIM_HOME>/config.json` —
|
|
227
|
+
* used by `status` to print the URL. Returns null when config is
|
|
228
|
+
* absent / unparseable. */
|
|
229
|
+
export function readWebEndpoint() {
|
|
230
|
+
try {
|
|
231
|
+
const raw = readFileSync(join(AGIM_HOME, 'config.json'), 'utf-8');
|
|
232
|
+
const cfg = JSON.parse(raw);
|
|
233
|
+
const bind = typeof cfg.web?.bind === 'string' ? cfg.web.bind : '127.0.0.1';
|
|
234
|
+
const port = typeof cfg.web?.port === 'number' ? cfg.web.port : 3000;
|
|
235
|
+
return { bind, port };
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
return null;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli-ui/service.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,iFAAiF;AACjF,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,yEAAyE;AACzE,+CAA+C;AAC/C,sEAAsE;AACtE,2EAA2E;AAC3E,2EAA2E;AAC3E,2DAA2D;AAC3D,EAAE;AACF,0EAA0E;AAC1E,sEAAsE;AACtE,+CAA+C;AAE/C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC7G,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,wEAAwE;AACxE,oEAAoE;AACpE,mDAAmD;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;AAErD;;;oDAGoD;AACpD,MAAM,uBAAuB,GAAG;IAC9B,kCAAkC;IAClC,oCAAoC;CAC5B,CAAA;AAEV,SAAS,cAAc;IACrB,KAAK,MAAM,IAAI,IAAI,uBAAuB,EAAE,CAAC;QAC3C,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,2DAA2D;YAC3D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAA;QACpD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAWD,oCAAoC;AACpC,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;AAC1B,CAAC;AAED;0EAC0E;AAC1E,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,GAAG,OAAO,EAAE,OAAO,CAAC,CAAA;QACvD,mEAAmE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/D,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,SAAS,CAAA;QACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAA;QACtF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;QAChG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAA;QAChD,MAAM,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,CAAA;QACzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAA;IAC/D,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,SAAS,CAAA;IAAC,CAAC;AAC9B,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,GAAG,GAAG,EAAE;QAAE,OAAO,GAAG,GAAG,GAAG,CAAA;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;IAC9B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAA;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAA;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAA;AAC3B,CAAC;AAED;;+BAE+B;AAC/B,MAAM,UAAU,aAAa;IAC3B,qEAAqE;IACrE,oDAAoD;IACpD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAC7B,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,uBAAuB,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC9F,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,IAAI,GAAG,GAAkB,IAAI,CAAA;gBAC7B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,QAAQ,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;oBACpG,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;oBAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;wBAAE,GAAG,GAAG,CAAC,CAAA;gBAC1C,CAAC;gBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC3B,OAAO;oBACL,IAAI,EAAE,SAAS;oBACf,GAAG;oBACH,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC9C,CAAA;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,sDAAsD,CAAC,CAAC;IACpE,CAAC;IAED,yBAAyB;IACzB,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;YAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAA;YACjE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,uEAAuE;IACvE,0BAA0B;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,2DAA2D,EAAE;YAChF,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAA;QACT,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACpC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB,EAAE,OAAiB,CAAC,OAAO,CAAC;IAC5E,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,qEAAqE;IACrE,8EAA8E;IAC9E,4DAA4D;IAC5D,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAClC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;YACpC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;YACzB,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC,CAAA;QACF,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,IAAI,CAAC,KAAK,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACxD,aAAa,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QACzC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAA;IAC3B,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,EAAE,CAAC,CAAA;IACf,CAAC;AACH,CAAC;AAED;gDACgD;AAChD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAC1B,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;IAE1D,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACpE,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;gBAAE,MAAK;YAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC;YAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,wBAAwB,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;IAC5C,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC;QACvC,gEAAgE;QAChE,IAAI,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAA;IAC5C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AACpC,CAAC;AAED;;4BAE4B;AAC5B,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAA;QACjE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+C,CAAA;QACzE,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAA;QAC3E,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QACpE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACvB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAA;IAAC,CAAC;AACzB,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|