@opentag/cli 0.2.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.
Files changed (61) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +77 -0
  3. package/dist/catalogs/executors.d.ts +23 -0
  4. package/dist/catalogs/executors.d.ts.map +1 -0
  5. package/dist/catalogs/languages.d.ts +8 -0
  6. package/dist/catalogs/languages.d.ts.map +1 -0
  7. package/dist/catalogs/platforms.d.ts +16 -0
  8. package/dist/catalogs/platforms.d.ts.map +1 -0
  9. package/dist/commands/executors.d.ts +5 -0
  10. package/dist/commands/executors.d.ts.map +1 -0
  11. package/dist/commands/platforms.d.ts +2 -0
  12. package/dist/commands/platforms.d.ts.map +1 -0
  13. package/dist/commands/setup.d.ts +10 -0
  14. package/dist/commands/setup.d.ts.map +1 -0
  15. package/dist/config.d.ts +638 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/doctor.d.ts +5 -0
  18. package/dist/doctor.d.ts.map +1 -0
  19. package/dist/health.d.ts +11 -0
  20. package/dist/health.d.ts.map +1 -0
  21. package/dist/index.d.ts +3 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +2320 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/lark-registration.d.ts +2 -0
  26. package/dist/lark-registration.d.ts.map +1 -0
  27. package/dist/platforms/github/display.d.ts +10 -0
  28. package/dist/platforms/github/display.d.ts.map +1 -0
  29. package/dist/platforms/lark/display.d.ts +13 -0
  30. package/dist/platforms/lark/display.d.ts.map +1 -0
  31. package/dist/platforms/lark/registration-ui.d.ts +10 -0
  32. package/dist/platforms/lark/registration-ui.d.ts.map +1 -0
  33. package/dist/platforms/lark/saved-config.d.ts +14 -0
  34. package/dist/platforms/lark/saved-config.d.ts.map +1 -0
  35. package/dist/platforms/ports.d.ts +4 -0
  36. package/dist/platforms/ports.d.ts.map +1 -0
  37. package/dist/setup/builders.d.ts +4 -0
  38. package/dist/setup/builders.d.ts.map +1 -0
  39. package/dist/setup/defaults.d.ts +5 -0
  40. package/dist/setup/defaults.d.ts.map +1 -0
  41. package/dist/setup/flow.d.ts +44 -0
  42. package/dist/setup/flow.d.ts.map +1 -0
  43. package/dist/setup/guides.d.ts +25 -0
  44. package/dist/setup/guides.d.ts.map +1 -0
  45. package/dist/setup/summary.d.ts +5 -0
  46. package/dist/setup/summary.d.ts.map +1 -0
  47. package/dist/setup/types.d.ts +68 -0
  48. package/dist/setup/types.d.ts.map +1 -0
  49. package/dist/setup.d.ts +7 -0
  50. package/dist/setup.d.ts.map +1 -0
  51. package/dist/start.d.ts +34 -0
  52. package/dist/start.d.ts.map +1 -0
  53. package/dist/status.d.ts +25 -0
  54. package/dist/status.d.ts.map +1 -0
  55. package/dist/ui/clack.d.ts +3 -0
  56. package/dist/ui/clack.d.ts.map +1 -0
  57. package/dist/ui/messages.d.ts +12 -0
  58. package/dist/ui/messages.d.ts.map +1 -0
  59. package/dist/ui/prompts.d.ts +30 -0
  60. package/dist/ui/prompts.d.ts.map +1 -0
  61. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/setup/flow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAc7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD,OAAO,KAAK,EAAoD,iBAAiB,EAAE,aAAa,EAAmC,MAAM,YAAY,CAAC;AAQtJ,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,qBAAqB,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC3F,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AA0lBF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAqE5B"}
@@ -0,0 +1,25 @@
1
+ import type { LarkDomain } from "@opentag/lark";
2
+ import type { CliLanguage } from "../catalogs/languages.js";
3
+ import { type PlatformId } from "../catalogs/platforms.js";
4
+ import type { SlackSetupMode } from "./types.js";
5
+ export declare const OFFICIAL_SETUP_LINKS: {
6
+ readonly githubTokenPage: "https://github.com/settings/personal-access-tokens/new";
7
+ readonly githubTokenDocs: "https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens";
8
+ readonly githubWebhookDocs: "https://docs.github.com/en/webhooks/using-webhooks/creating-webhooks";
9
+ readonly slackApps: "https://api.slack.com/apps";
10
+ readonly slackSocketModeDocs: "https://docs.slack.dev/apis/events-api/using-socket-mode/";
11
+ readonly slackQuickstartDocs: "https://docs.slack.dev/quickstart/";
12
+ readonly slackSigningSecretDocs: "https://docs.slack.dev/authentication/verifying-requests-from-slack/";
13
+ readonly larkConsole: "https://open.larksuite.com/app";
14
+ readonly feishuConsole: "https://open.feishu.cn/app";
15
+ readonly larkAppIdDocs: "https://open.larksuite.com/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-app-id";
16
+ readonly larkWebSocketDocs: "https://open.larksuite.com/document/ukTMukTMukTM/uYDNxYjL2QTM24iN0EjN/event-subscription-configure-/use-websocket";
17
+ readonly feishuWebSocketDocs: "https://open.feishu.cn/document/server-docs/event-subscription-guide/event-subscription-configure-/use-websocket?lang=zh-CN";
18
+ };
19
+ export declare function formatPlatformSetupGuide(platform: PlatformId, language: CliLanguage): string | undefined;
20
+ export declare function formatLarkManualCredentialHelp(language: CliLanguage, domain: LarkDomain): string;
21
+ export declare function formatSlackCredentialHelp(language: CliLanguage, mode: SlackSetupMode): string;
22
+ export declare function formatGitHubTokenHelp(language: CliLanguage, input: {
23
+ autoCreatePullRequest: boolean;
24
+ }): string;
25
+ //# sourceMappingURL=guides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guides.d.ts","sourceRoot":"","sources":["../../src/setup/guides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;CAavB,CAAC;AAwEX,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CA8BxG;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAwBhG;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAgD7F;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE;IAAE,qBAAqB,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAgC9G"}
@@ -0,0 +1,5 @@
1
+ import type { OpenTagCliConfig } from "../config.js";
2
+ import type { OpenTagSetupInput } from "./types.js";
3
+ export declare function formatSetupReview(input: OpenTagSetupInput, configPath: string): string;
4
+ export declare function formatSetupComplete(config: OpenTagCliConfig, configPath: string): string;
5
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/setup/summary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,KAAK,EAAmB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAerE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA6FtF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAsDxF"}
@@ -0,0 +1,68 @@
1
+ import type { LarkDomain } from "@opentag/lark";
2
+ import type { CliLanguage } from "../catalogs/languages.js";
3
+ import type { ExecutorId } from "../catalogs/executors.js";
4
+ import type { PlatformId } from "../catalogs/platforms.js";
5
+ import type { SavedLarkCredentials } from "../platforms/lark/saved-config.js";
6
+ export type LarkSetupMethod = "saved" | "scan" | "manual";
7
+ export type SlackSetupMode = "socket_mode" | "events_api";
8
+ export type BindingMethod = "default_project" | "bind_later";
9
+ export type LarkSetupInput = {
10
+ appId: string;
11
+ appSecret: string;
12
+ domain: LarkDomain;
13
+ botOpenId?: string;
14
+ setupMethod: LarkSetupMethod;
15
+ bindingMethod: BindingMethod;
16
+ savedCredentialsSource?: SavedLarkCredentials["source"];
17
+ };
18
+ export type SlackSetupInput = {
19
+ mode: SlackSetupMode;
20
+ appToken?: string;
21
+ signingSecret?: string;
22
+ botToken: string;
23
+ teamId: string;
24
+ channelId: string;
25
+ appId?: string;
26
+ bindingMethod: BindingMethod;
27
+ port?: number;
28
+ };
29
+ export type GitHubSetupInput = {
30
+ token: string;
31
+ webhookSecret: string;
32
+ owner: string;
33
+ repo: string;
34
+ webhookPath: string;
35
+ autoCreatePullRequest: boolean;
36
+ port: number;
37
+ };
38
+ export type OpenTagSetupInput = {
39
+ language: CliLanguage;
40
+ platform: PlatformId;
41
+ projectPath: string;
42
+ executor: ExecutorId;
43
+ stateDirectory?: string;
44
+ lark?: LarkSetupInput;
45
+ slack?: SlackSetupInput;
46
+ github?: GitHubSetupInput;
47
+ };
48
+ export type SetupDefaults = Partial<{
49
+ language: CliLanguage;
50
+ platform: PlatformId;
51
+ projectPath: string;
52
+ executor: ExecutorId;
53
+ larkSetupMethod: LarkSetupMethod;
54
+ larkDomain: LarkDomain;
55
+ slackMode: SlackSetupMode;
56
+ bindingMethod: BindingMethod;
57
+ slackTeamId: string;
58
+ slackChannelId: string;
59
+ slackPort?: number;
60
+ githubOwner: string;
61
+ githubRepo: string;
62
+ githubPort: number;
63
+ githubWebhookSecret: string;
64
+ githubWebhookPath: string;
65
+ githubAutoCreatePullRequest: boolean;
66
+ savedLarkCredentials: SavedLarkCredentials;
67
+ }>;
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/setup/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,sBAAsB,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2BAA2B,EAAE,OAAO,CAAC;IACrC,oBAAoB,EAAE,oBAAoB,CAAC;CAC5C,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from "./setup/builders.js";
2
+ export * from "./setup/defaults.js";
3
+ export * from "./setup/flow.js";
4
+ export * from "./setup/summary.js";
5
+ export * from "./setup/types.js";
6
+ export * from "./commands/setup.js";
7
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type ChannelBindingInput, type RepositoryBindingConfig } from "@opentag/client";
2
+ import { type GitHubIngressConfig } from "@opentag/github";
3
+ import { type LarkIngressConfig } from "@opentag/lark";
4
+ import { type LocalDispatcherRuntimeInput } from "@opentag/local-runtime";
5
+ import { type SlackEventsApiIngressConfig, type SlackSocketModeIngressConfig } from "@opentag/slack";
6
+ import { type OpenTagCliConfig } from "./config.js";
7
+ export type StartCommandOptions = {
8
+ config?: string;
9
+ };
10
+ export type BootstrapClient = {
11
+ registerRunner(name?: string): Promise<void>;
12
+ bindRepository(binding: RepositoryBindingConfig): Promise<void>;
13
+ bindChannel(binding: ChannelBindingInput): Promise<void>;
14
+ };
15
+ export declare function assertStartPortsAvailable(config: OpenTagCliConfig): Promise<void>;
16
+ export declare function dispatcherRuntimeInputFromCliConfig(config: OpenTagCliConfig): LocalDispatcherRuntimeInput;
17
+ export declare function larkIngressConfigFromCliConfig(config: OpenTagCliConfig): LarkIngressConfig;
18
+ export declare function slackIngressConfigFromCliConfig(config: OpenTagCliConfig): SlackEventsApiIngressConfig;
19
+ export declare function slackSocketModeIngressConfigFromCliConfig(config: OpenTagCliConfig): SlackSocketModeIngressConfig;
20
+ export declare function githubIngressConfigFromCliConfig(config: OpenTagCliConfig): GitHubIngressConfig;
21
+ export declare function bootstrapLocalDispatcher(config: OpenTagCliConfig, client?: BootstrapClient): Promise<void>;
22
+ export declare function waitForDispatcher(input: {
23
+ dispatcherUrl: string;
24
+ fetchImpl?: typeof fetch;
25
+ attempts?: number;
26
+ delayMs?: number;
27
+ timeoutMs?: number;
28
+ }): Promise<void>;
29
+ export declare function shouldRethrowAbortReason(input: {
30
+ shutdownRequested: boolean;
31
+ reason: unknown;
32
+ }): boolean;
33
+ export declare function runStartCommand(options: StartCommandOptions): Promise<void>;
34
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACtH,OAAO,EAAsB,KAAK,mBAAmB,EAA4B,MAAM,iBAAiB,CAAC;AACzG,OAAO,EAAsC,KAAK,iBAAiB,EAA0B,MAAM,eAAe,CAAC;AACnH,OAAO,EAKL,KAAK,2BAA2B,EACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,2BAA2B,EAEhC,KAAK,4BAA4B,EAElC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA4D,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK9G,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,cAAc,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAwHF,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvF;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,gBAAgB,GAAG,2BAA2B,CA+BzG;AAcD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAa1F;AAOD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,gBAAgB,GAAG,2BAA2B,CAYrG;AAED,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,gBAAgB,GAAG,4BAA4B,CAWhH;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,CAS9F;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChH;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB;AASD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAAE,iBAAiB,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAExG;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGjF"}
@@ -0,0 +1,25 @@
1
+ import { type OpenTagCliConfig } from "./config.js";
2
+ export type StatusCommandOptions = {
3
+ config?: string;
4
+ };
5
+ export type StatusSummary = {
6
+ configPath: string;
7
+ dispatcher: "online" | "offline";
8
+ dispatcherUrl: string;
9
+ runnerId: string;
10
+ repositories: string[];
11
+ platforms: string[];
12
+ };
13
+ export declare function getStatusSummary(input?: {
14
+ configPath?: string;
15
+ fetchImpl?: typeof fetch;
16
+ }): Promise<StatusSummary>;
17
+ export declare function statusFromConfig(input: {
18
+ config: OpenTagCliConfig;
19
+ configPath: string;
20
+ fetchImpl?: typeof fetch;
21
+ healthTimeoutMs?: number;
22
+ }): Promise<StatusSummary>;
23
+ export declare function formatStatus(summary: StatusSummary): string;
24
+ export declare function runStatusCommand(options: StatusCommandOptions): Promise<void>;
25
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGtF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,KAAK,GAAE;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CACrB,GAAG,OAAO,CAAC,aAAa,CAAC,CAI9B;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBzB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAS3D;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF"}
@@ -0,0 +1,3 @@
1
+ import type { PromptAdapter } from "./prompts.js";
2
+ export declare function createClackPromptAdapter(): PromptAdapter;
3
+ //# sourceMappingURL=clack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clack.d.ts","sourceRoot":"","sources":["../../src/ui/clack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,cAAc,CAAC;AA8BhE,wBAAgB,wBAAwB,IAAI,aAAa,CAmCxD"}
@@ -0,0 +1,12 @@
1
+ import type { CliLanguage } from "../catalogs/languages.js";
2
+ import type { BindingMethod, LarkSetupMethod, SlackSetupMode } from "../setup/types.js";
3
+ type MessageKey = "intro" | "language" | "platform" | "executor" | "projectPath" | "larkSetup" | "larkDomain" | "larkAppId" | "larkAppSecret" | "larkBotOpenId" | "slackMode" | "slackAppToken" | "slackSigningSecret" | "slackBotToken" | "slackAppId" | "slackTeamId" | "slackChannelId" | "slackPort" | "githubRepository" | "githubToken" | "githubWebhookSecret" | "githubPort" | "githubAutoCreatePr" | "bindingMethod" | "confirmSetup" | "cancelled" | "complete";
4
+ export declare function t(language: CliLanguage, key: MessageKey): string;
5
+ export declare function larkSetupLabel(language: CliLanguage, method: LarkSetupMethod): string;
6
+ export declare function larkSetupHint(language: CliLanguage, method: LarkSetupMethod): string;
7
+ export declare function slackModeLabel(language: CliLanguage, mode: SlackSetupMode): string;
8
+ export declare function slackModeHint(language: CliLanguage, mode: SlackSetupMode): string;
9
+ export declare function bindingMethodLabel(language: CliLanguage, method: BindingMethod, platform?: "lark" | "slack"): string;
10
+ export declare function bindingMethodHint(language: CliLanguage, method: BindingMethod, platform?: "lark" | "slack"): string;
11
+ export {};
12
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/ui/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExF,KAAK,UAAU,GACX,OAAO,GACP,UAAU,GACV,UAAU,GACV,UAAU,GACV,aAAa,GACb,WAAW,GACX,YAAY,GACZ,WAAW,GACX,eAAe,GACf,eAAe,GACf,WAAW,GACX,eAAe,GACf,oBAAoB,GACpB,eAAe,GACf,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,WAAW,GACX,kBAAkB,GAClB,aAAa,GACb,qBAAqB,GACrB,YAAY,GACZ,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,WAAW,GACX,UAAU,CAAC;AA+Df,wBAAgB,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAEhE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAOrF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAOpF;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAKlF;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAKjF;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAM,GAAG,OAAgB,GAAG,MAAM,CAO5H;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAM,GAAG,OAAgB,GAAG,MAAM,CAO3H"}
@@ -0,0 +1,30 @@
1
+ export type PromptOption<Value extends string> = {
2
+ value: Value;
3
+ label: string;
4
+ hint?: string;
5
+ };
6
+ export type PromptAdapter = {
7
+ intro(message: string): void;
8
+ outro(message: string): void;
9
+ note(message: string): void;
10
+ select<Value extends string>(input: {
11
+ message: string;
12
+ options: Array<PromptOption<Value>>;
13
+ initialValue?: Value;
14
+ }): Promise<Value>;
15
+ text(input: {
16
+ message: string;
17
+ placeholder?: string;
18
+ initialValue?: string;
19
+ validate?(value: string): string | undefined;
20
+ }): Promise<string>;
21
+ password(input: {
22
+ message: string;
23
+ validate?(value: string): string | undefined;
24
+ }): Promise<string>;
25
+ confirm(input: {
26
+ message: string;
27
+ initialValue?: boolean;
28
+ }): Promise<boolean>;
29
+ };
30
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,IAAI;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,KAAK,SAAS,MAAM,EAAE,KAAK,EAAE;QAClC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,YAAY,CAAC,EAAE,KAAK,CAAC;KACtB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KAC9C,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KAC9C,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,KAAK,EAAE;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@opentag/cli",
3
+ "version": "0.2.0",
4
+ "description": "OpenTag command line interface.",
5
+ "type": "module",
6
+ "engines": {
7
+ "node": ">=20"
8
+ },
9
+ "bin": {
10
+ "opentag": "./dist/index.js"
11
+ },
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "development": "./src/index.ts",
17
+ "types": "./dist/index.d.ts",
18
+ "import": "./dist/index.js"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md"
24
+ ],
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "keywords": [
29
+ "opentag",
30
+ "cli",
31
+ "agents",
32
+ "lark"
33
+ ],
34
+ "license": "MIT",
35
+ "dependencies": {
36
+ "@clack/prompts": "^0.11.0",
37
+ "commander": "^12.1.0",
38
+ "qrcode-terminal": "^0.12.0",
39
+ "zod": "^3.24.1",
40
+ "@opentag/client": "0.2.0",
41
+ "@opentag/core": "0.2.0",
42
+ "@opentag/local-runtime": "0.2.0",
43
+ "@opentag/github": "0.2.0",
44
+ "@opentag/lark": "0.2.0",
45
+ "@opentag/slack": "0.2.0"
46
+ },
47
+ "devDependencies": {
48
+ "tsup": "^8.3.5",
49
+ "typescript": "^5.7.2",
50
+ "@opentag/runner": "0.2.0",
51
+ "@opentag/dispatcher": "0.2.0"
52
+ },
53
+ "scripts": {
54
+ "build": "tsup && tsc -b tsconfig.json --emitDeclarationOnly --force",
55
+ "lint": "tsc --noEmit"
56
+ }
57
+ }