alpic 0.0.0-dev.f59195e → 0.0.0-dev.f5c14d5

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 (163) hide show
  1. package/dist/__tests__/audit.e2e.test.d.ts +1 -0
  2. package/dist/__tests__/audit.e2e.test.js +242 -0
  3. package/dist/__tests__/audit.e2e.test.js.map +1 -0
  4. package/dist/__tests__/auth.e2e.test.js +24 -11
  5. package/dist/__tests__/auth.e2e.test.js.map +1 -1
  6. package/dist/__tests__/deploy-flags.e2e.test.js +109 -8
  7. package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -1
  8. package/dist/__tests__/deploy.e2e.test.js +24 -12
  9. package/dist/__tests__/deploy.e2e.test.js.map +1 -1
  10. package/dist/__tests__/deployment-inspect.e2e.test.d.ts +1 -0
  11. package/dist/__tests__/deployment-inspect.e2e.test.js +114 -0
  12. package/dist/__tests__/deployment-inspect.e2e.test.js.map +1 -0
  13. package/dist/__tests__/deployment-list.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/deployment-list.e2e.test.js +116 -0
  15. package/dist/__tests__/deployment-list.e2e.test.js.map +1 -0
  16. package/dist/__tests__/deployment-logs.e2e.test.d.ts +1 -0
  17. package/dist/__tests__/deployment-logs.e2e.test.js +255 -0
  18. package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -0
  19. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
  20. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +259 -0
  21. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
  22. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
  23. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +139 -0
  24. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
  25. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
  26. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +150 -0
  27. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
  28. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
  29. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +342 -0
  30. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
  31. package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
  32. package/dist/__tests__/environment-variable/environment-variable-validation.test.js +20 -0
  33. package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
  34. package/dist/__tests__/fixtures/demo-project/index.js +1 -1
  35. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -1
  36. package/dist/__tests__/git-flags.e2e.test.js +10 -8
  37. package/dist/__tests__/git-flags.e2e.test.js.map +1 -1
  38. package/dist/__tests__/git.e2e.test.js +4 -4
  39. package/dist/__tests__/git.e2e.test.js.map +1 -1
  40. package/dist/__tests__/link.e2e.test.d.ts +1 -0
  41. package/dist/__tests__/link.e2e.test.js +279 -0
  42. package/dist/__tests__/link.e2e.test.js.map +1 -0
  43. package/dist/__tests__/logs.e2e.test.d.ts +1 -0
  44. package/dist/__tests__/logs.e2e.test.js +227 -0
  45. package/dist/__tests__/logs.e2e.test.js.map +1 -0
  46. package/dist/__tests__/mock-server.d.ts +20 -0
  47. package/dist/__tests__/mock-server.js +301 -20
  48. package/dist/__tests__/mock-server.js.map +1 -1
  49. package/dist/__tests__/publish.e2e.test.d.ts +1 -0
  50. package/dist/__tests__/publish.e2e.test.js +505 -0
  51. package/dist/__tests__/publish.e2e.test.js.map +1 -0
  52. package/dist/__tests__/tunnel.e2e.test.d.ts +1 -0
  53. package/dist/__tests__/tunnel.e2e.test.js +64 -0
  54. package/dist/__tests__/tunnel.e2e.test.js.map +1 -0
  55. package/dist/__tests__/utils.d.ts +9 -3
  56. package/dist/__tests__/utils.js +57 -22
  57. package/dist/__tests__/utils.js.map +1 -1
  58. package/dist/api.d.ts +1 -1
  59. package/dist/api.js +1 -1
  60. package/dist/api.js.map +1 -1
  61. package/dist/commands/audit.d.ts +19 -0
  62. package/dist/commands/audit.js +235 -0
  63. package/dist/commands/audit.js.map +1 -0
  64. package/dist/commands/deploy.d.ts +4 -4
  65. package/dist/commands/deploy.js +44 -33
  66. package/dist/commands/deploy.js.map +1 -1
  67. package/dist/commands/deployment/inspect.d.ts +11 -0
  68. package/dist/commands/deployment/inspect.js +91 -0
  69. package/dist/commands/deployment/inspect.js.map +1 -0
  70. package/dist/commands/deployment/list.d.ts +11 -0
  71. package/dist/commands/deployment/list.js +97 -0
  72. package/dist/commands/deployment/list.js.map +1 -0
  73. package/dist/commands/deployment/logs.d.ts +12 -0
  74. package/dist/commands/deployment/logs.js +50 -0
  75. package/dist/commands/deployment/logs.js.map +1 -0
  76. package/dist/commands/environment-variable/add.d.ts +14 -0
  77. package/dist/commands/environment-variable/add.js +47 -0
  78. package/dist/commands/environment-variable/add.js.map +1 -0
  79. package/dist/commands/environment-variable/list.d.ts +9 -0
  80. package/dist/commands/environment-variable/list.js +45 -0
  81. package/dist/commands/environment-variable/list.js.map +1 -0
  82. package/dist/commands/environment-variable/remove.d.ts +11 -0
  83. package/dist/commands/environment-variable/remove.js +33 -0
  84. package/dist/commands/environment-variable/remove.js.map +1 -0
  85. package/dist/commands/environment-variable/update.d.ts +13 -0
  86. package/dist/commands/environment-variable/update.js +41 -0
  87. package/dist/commands/environment-variable/update.js.map +1 -0
  88. package/dist/commands/git/connect.d.ts +1 -4
  89. package/dist/commands/git/connect.js +16 -26
  90. package/dist/commands/git/connect.js.map +1 -1
  91. package/dist/commands/git/disconnect.d.ts +1 -4
  92. package/dist/commands/git/disconnect.js +14 -26
  93. package/dist/commands/git/disconnect.js.map +1 -1
  94. package/dist/commands/git.js +2 -2
  95. package/dist/commands/git.js.map +1 -1
  96. package/dist/commands/link.d.ts +17 -0
  97. package/dist/commands/link.js +101 -0
  98. package/dist/commands/link.js.map +1 -0
  99. package/dist/commands/login.js +5 -10
  100. package/dist/commands/login.js.map +1 -1
  101. package/dist/commands/logs.d.ts +16 -0
  102. package/dist/commands/logs.js +96 -0
  103. package/dist/commands/logs.js.map +1 -0
  104. package/dist/commands/publish.d.ts +15 -0
  105. package/dist/commands/publish.js +51 -0
  106. package/dist/commands/publish.js.map +1 -0
  107. package/dist/commands/tunnel.d.ts +9 -0
  108. package/dist/commands/tunnel.js +53 -0
  109. package/dist/commands/tunnel.js.map +1 -0
  110. package/dist/commands/whoami.js +2 -14
  111. package/dist/commands/whoami.js.map +1 -1
  112. package/dist/lib/archive.d.ts +3 -3
  113. package/dist/lib/archive.js +11 -15
  114. package/dist/lib/archive.js.map +1 -1
  115. package/dist/lib/auth/oauth/server/index.js +5 -2
  116. package/dist/lib/auth/oauth/server/index.js.map +1 -1
  117. package/dist/lib/auth/whoami.d.ts +1 -28
  118. package/dist/lib/auth/whoami.js +24 -18
  119. package/dist/lib/auth/whoami.js.map +1 -1
  120. package/dist/lib/base-workflow.d.ts +1 -1
  121. package/dist/lib/base-workflow.js +1 -1
  122. package/dist/lib/base-workflow.js.map +1 -1
  123. package/dist/lib/config.d.ts +3 -2
  124. package/dist/lib/config.js +8 -7
  125. package/dist/lib/config.js.map +1 -1
  126. package/dist/lib/deployment.d.ts +68 -1
  127. package/dist/lib/deployment.js +111 -15
  128. package/dist/lib/deployment.js.map +1 -1
  129. package/dist/lib/environment-variable.d.ts +37 -0
  130. package/dist/lib/environment-variable.js +299 -0
  131. package/dist/lib/environment-variable.js.map +1 -0
  132. package/dist/lib/git.d.ts +5 -5
  133. package/dist/lib/git.js +10 -13
  134. package/dist/lib/git.js.map +1 -1
  135. package/dist/lib/global-store.d.ts +1 -1
  136. package/dist/lib/global-store.js +4 -3
  137. package/dist/lib/global-store.js.map +1 -1
  138. package/dist/lib/{project.d.ts → link.d.ts} +29 -12
  139. package/dist/lib/{project.js → link.js} +183 -98
  140. package/dist/lib/link.js.map +1 -0
  141. package/dist/lib/logs.d.ts +20 -0
  142. package/dist/lib/logs.js +86 -0
  143. package/dist/lib/logs.js.map +1 -0
  144. package/dist/lib/publish.d.ts +22 -0
  145. package/dist/lib/publish.js +185 -0
  146. package/dist/lib/publish.js.map +1 -0
  147. package/dist/lib/resolve.d.ts +6 -0
  148. package/dist/lib/resolve.js +26 -0
  149. package/dist/lib/resolve.js.map +1 -0
  150. package/dist/lib/table.d.ts +8 -0
  151. package/dist/lib/table.js +27 -0
  152. package/dist/lib/table.js.map +1 -0
  153. package/dist/lib/telemetry.js +1 -1
  154. package/dist/lib/telemetry.js.map +1 -1
  155. package/dist/lib/utils.d.ts +4 -0
  156. package/dist/lib/utils.js +45 -0
  157. package/dist/lib/utils.js.map +1 -0
  158. package/dist/lib/utils.test.d.ts +1 -0
  159. package/dist/lib/utils.test.js +27 -0
  160. package/dist/lib/utils.test.js.map +1 -0
  161. package/dist/types.d.ts +1 -0
  162. package/package.json +25 -19
  163. package/dist/lib/project.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface Config {
12
12
  }
13
13
  export declare class GlobalStore {
14
14
  private readonly configDir;
15
- constructor(configDir?: string);
15
+ constructor();
16
16
  getCredentials(): Credentials | null;
17
17
  saveCredentials(credentials: Credentials): void;
18
18
  clearCredentials(): void;
@@ -1,11 +1,12 @@
1
1
  import crypto from "node:crypto";
2
2
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
- import XDGAppPaths from "xdg-app-paths";
4
+ import envPaths from "env-paths";
5
5
  export class GlobalStore {
6
6
  configDir;
7
- constructor(configDir) {
8
- this.configDir = configDir ?? XDGAppPaths({ name: "alpic" }).config();
7
+ constructor() {
8
+ const configDirOverride = process.env.ALPIC_GLOBAL_CONFIG_DIR;
9
+ this.configDir = configDirOverride ?? envPaths("alpic", { suffix: "" }).config;
9
10
  }
10
11
  getCredentials() {
11
12
  const token = this.parseJsonFile(this.getCredentialsFilePath());
@@ -1 +1 @@
1
- {"version":3,"file":"global-store.js","sourceRoot":"","sources":["../../src/lib/global-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-store.js","sourceRoot":"","sources":["../../src/lib/global-store.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,20 @@
1
1
  import type { RouterOutput, Runtime } from "@alpic-ai/api";
2
2
  import type { ProjectConfig } from "../types.js";
3
3
  import { BaseWorkflow } from "./base-workflow.js";
4
- export type ProjectFlags = {
5
- yes?: boolean;
4
+ export declare const RUNTIMES: ("python3.13" | "python3.14" | "node22" | "node24")[];
5
+ export type LinkFlags = {
6
+ "non-interactive"?: boolean;
7
+ teamId?: string;
8
+ projectId?: string;
9
+ environmentId?: string;
6
10
  projectName?: string;
7
11
  runtime?: Runtime;
8
12
  rootDir?: string;
9
13
  };
10
- export declare class ProjectWorkflow extends BaseWorkflow<ProjectFlags> {
11
- selectEnvironmentFromList(environments: RouterOutput["projects"]["get"]["v1"]["environments"]): Promise<(typeof environments)[number] | null>;
14
+ export declare class LinkWorkflow extends BaseWorkflow<LinkFlags> {
15
+ confirmWorkingDirectory(): Promise<boolean | null>;
16
+ confirmLinkExisting(): Promise<boolean | null>;
17
+ confirmLinkToAnotherProject(): Promise<boolean | null>;
12
18
  selectProjectFromList(projects: RouterOutput["projects"]["list"]["v1"]): Promise<{
13
19
  id: string;
14
20
  name: string;
@@ -26,6 +32,11 @@ export declare class ProjectWorkflow extends BaseWorkflow<ProjectFlags> {
26
32
  id: string;
27
33
  name: string;
28
34
  mcpServerUrl: string;
35
+ domains: {
36
+ domain: string;
37
+ status: "ongoing" | "deployed" | "failed";
38
+ createdAt: Date;
39
+ }[];
29
40
  latestDeployment: {
30
41
  id: string;
31
42
  status: "ongoing" | "deployed" | "failed" | "canceled";
@@ -50,17 +61,23 @@ export declare class ProjectWorkflow extends BaseWorkflow<ProjectFlags> {
50
61
  } | null;
51
62
  }[];
52
63
  } | null>;
53
- promptRootDirectory(deployDir: string): Promise<string | null>;
54
- private directoryExists;
55
- private detectRuntime;
64
+ selectEnvironmentFromList(environments: RouterOutput["projects"]["get"]["v1"]["environments"]): Promise<(typeof environments)[number] | null>;
65
+ resolveTeam(): Promise<{
66
+ id: string;
67
+ name: string;
68
+ } | null>;
69
+ promptRootDirectory(): Promise<string | null>;
56
70
  confirmDeployWithExistingConfig(existingConfig: ProjectConfig): Promise<boolean | null>;
57
- confirmDeployDirectory(deployDir: string): Promise<boolean>;
58
- confirmLinkExisting(): Promise<boolean>;
59
- confirmLinkToAnotherProject(): Promise<boolean>;
60
- resolveProjectForDeploy(deployDir: string): Promise<(ProjectConfig & {
71
+ runLinkFlow(): Promise<(ProjectConfig & {
61
72
  environmentId: string;
62
73
  }) | null>;
63
- private resolveEnvironmentForProject;
74
+ resolveEnvironmentForProject(projectId: string): Promise<{
75
+ environmentId: string;
76
+ environmentName: string;
77
+ } | null>;
78
+ private getConfigFromFlags;
79
+ private directoryExists;
80
+ private detectRuntime;
64
81
  private runCreateProjectFlow;
65
82
  private runLinkingFlow;
66
83
  }
@@ -1,11 +1,59 @@
1
- import * as p from "@clack/prompts";
2
- import chalk from "chalk";
3
1
  import { existsSync, readFileSync, statSync } from "node:fs";
4
2
  import { resolve } from "node:path";
3
+ import * as p from "@clack/prompts";
4
+ import chalk from "chalk";
5
+ import { runtimeSchema } from "@alpic-ai/api";
5
6
  import { api } from "../api.js";
6
7
  import { BaseWorkflow } from "./base-workflow.js";
7
8
  import { config } from "./config.js";
8
- export class ProjectWorkflow extends BaseWorkflow {
9
+ export const RUNTIMES = runtimeSchema.options;
10
+ const RUNTIME_LABELS = {
11
+ node24: "Node.js 24",
12
+ node22: "Node.js 22",
13
+ "python3.14": "Python 3.14",
14
+ "python3.13": "Python 3.13",
15
+ };
16
+ export class LinkWorkflow extends BaseWorkflow {
17
+ async confirmWorkingDirectory() {
18
+ const confirmed = await this.confirm({
19
+ message: chalk.bold(`Use the current directory? `) + chalk.cyan(process.cwd()),
20
+ initialValue: true,
21
+ });
22
+ if (p.isCancel(confirmed))
23
+ return null;
24
+ return confirmed === true;
25
+ }
26
+ async confirmLinkExisting() {
27
+ const link = await this.confirm({
28
+ message: chalk.bold("Link to existing project?"),
29
+ initialValue: true,
30
+ }, false);
31
+ if (p.isCancel(link))
32
+ return null;
33
+ return link === true;
34
+ }
35
+ async confirmLinkToAnotherProject() {
36
+ const link = await this.confirm({
37
+ message: chalk.bold("Link to another project?"),
38
+ initialValue: true,
39
+ }, false);
40
+ if (p.isCancel(link))
41
+ return null;
42
+ return link === true;
43
+ }
44
+ async selectProjectFromList(projects) {
45
+ if (projects.length === 0) {
46
+ return null;
47
+ }
48
+ const choice = await p.select({
49
+ message: chalk.bold("Choose a project"),
50
+ options: projects.map((proj) => ({ value: proj.id, label: proj.name })),
51
+ });
52
+ if (p.isCancel(choice))
53
+ return null;
54
+ const project = projects.find((proj) => proj.id === choice);
55
+ return project ?? null;
56
+ }
9
57
  async selectEnvironmentFromList(environments) {
10
58
  if (environments.length === 0) {
11
59
  return null;
@@ -22,28 +70,43 @@ export class ProjectWorkflow extends BaseWorkflow {
22
70
  const environment = environments.find((e) => e.id === choice);
23
71
  return environment ?? null;
24
72
  }
25
- async selectProjectFromList(projects) {
26
- if (projects.length === 0) {
27
- return null;
73
+ async resolveTeam() {
74
+ const teams = await api.teams.list.v1();
75
+ if (teams.length === 0) {
76
+ throw new Error("No teams found. Create a team in the Alpic dashboard first.");
77
+ }
78
+ if (this.flags.teamId) {
79
+ const match = teams.find((t) => t.id === this.flags.teamId);
80
+ if (!match) {
81
+ throw new Error(`Team "${this.flags.teamId}" not found.`);
82
+ }
83
+ return match;
84
+ }
85
+ if (this.isNonInteractive()) {
86
+ if (teams.length === 1) {
87
+ const singleTeam = teams[0];
88
+ p.log.info(`Using team ${chalk.bold(singleTeam.name)}`);
89
+ return singleTeam;
90
+ }
91
+ throw new Error("Multiple teams found. Use --team-id to select one.");
28
92
  }
29
93
  const choice = await p.select({
30
- message: chalk.bold("Choose a project"),
31
- options: projects.map((proj) => ({ value: proj.id, label: proj.name })),
94
+ message: chalk.bold("Choose a team"),
95
+ options: teams.map((t) => ({ value: t.id, label: t.name })),
32
96
  });
33
97
  if (p.isCancel(choice))
34
98
  return null;
35
- const project = projects.find((proj) => proj.id === choice);
36
- return project ?? null;
99
+ const selected = teams.find((t) => t.id === choice);
100
+ return selected ?? null;
37
101
  }
38
- async promptRootDirectory(deployDir) {
102
+ async promptRootDirectory() {
39
103
  if (this.isNonInteractive()) {
40
104
  if (this.flags.rootDir) {
41
105
  const trimmed = this.flags.rootDir.trim();
42
106
  if (trimmed === "" || trimmed === ".")
43
107
  return null;
44
- const resolved = resolve(deployDir, trimmed);
45
- if (!this.directoryExists(resolved)) {
46
- throw new Error(`Directory does not exist: ${resolved}`);
108
+ if (!this.directoryExists(trimmed)) {
109
+ throw new Error(`Directory does not exist: ${resolve(trimmed)}`);
47
110
  }
48
111
  return trimmed;
49
112
  }
@@ -65,81 +128,32 @@ export class ProjectWorkflow extends BaseWorkflow {
65
128
  const trimmed = rootDir.trim();
66
129
  if (trimmed === "" || trimmed === ".")
67
130
  return null;
68
- const resolved = resolve(deployDir, trimmed);
69
- if (!this.directoryExists(resolved)) {
70
- p.log.error(`Directory does not exist: ${resolved}`);
131
+ if (!this.directoryExists(trimmed)) {
132
+ p.log.error(`Directory does not exist: ${trimmed}`);
71
133
  continue;
72
134
  }
73
135
  return trimmed;
74
136
  }
75
137
  }
76
- directoryExists(dir) {
77
- return existsSync(dir) && statSync(dir).isDirectory();
78
- }
79
- detectRuntime(dir) {
80
- const has = (file) => existsSync(resolve(dir, file));
81
- const read = (file) => {
82
- try {
83
- return readFileSync(resolve(dir, file), "utf8");
84
- }
85
- catch {
86
- return "";
87
- }
88
- };
89
- if (has("pyproject.toml") || has("requirements.txt") || has("setup.py") || has(".python-version")) {
90
- return "python3.13";
91
- }
92
- if (has("package.json")) {
93
- const nvmrc = has(".nvmrc") ? (read(".nvmrc").trim().split(/\s/)[0] ?? "") : "";
94
- const major = nvmrc.replace(/^v/i, "").match(/^(\d+)/)?.[1];
95
- if (major === "22")
96
- return "node22";
97
- return "node24";
98
- }
99
- return null;
100
- }
101
138
  async confirmDeployWithExistingConfig(existingConfig) {
102
139
  const envLabel = existingConfig.environmentName ? ` to environment "${existingConfig.environmentName}"` : "";
140
+ const teamLabel = existingConfig.teamName ? chalk.dim(` [team: ${existingConfig.teamName}]`) : "";
103
141
  const confirmed = await this.confirm({
104
- message: chalk.bold(`Deploy project "${existingConfig.projectName}"${envLabel}?`),
142
+ message: chalk.bold(`Use project "${existingConfig.projectName}"${envLabel}?`) + teamLabel,
105
143
  initialValue: true,
106
144
  });
107
145
  if (p.isCancel(confirmed))
108
146
  return null;
109
147
  return confirmed === true;
110
148
  }
111
- async confirmDeployDirectory(deployDir) {
112
- const confirmed = await this.confirm({
113
- message: chalk.bold(`Deploy the directory? `) + chalk.cyan(deployDir),
114
- initialValue: true,
115
- });
116
- if (p.isCancel(confirmed))
117
- return false;
118
- return confirmed === true;
119
- }
120
- async confirmLinkExisting() {
121
- const link = await this.confirm({
122
- message: chalk.bold("Link to existing project?"),
123
- initialValue: true,
124
- }, false);
125
- if (p.isCancel(link))
126
- return false;
127
- return link === true;
128
- }
129
- async confirmLinkToAnotherProject() {
130
- const link = await this.confirm({
131
- message: chalk.bold("Link to another project?"),
132
- initialValue: true,
133
- }, false);
134
- if (p.isCancel(link))
135
- return false;
136
- return link === true;
137
- }
138
- async resolveProjectForDeploy(deployDir) {
139
- const ok = await this.confirmDeployDirectory(deployDir);
140
- if (!ok)
149
+ async runLinkFlow() {
150
+ const fromFlags = await this.getConfigFromFlags();
151
+ if (fromFlags)
152
+ return fromFlags;
153
+ const ok = await this.confirmWorkingDirectory();
154
+ if (ok === null || ok === false)
141
155
  return null;
142
- const existingConfig = config.load(deployDir);
156
+ const existingConfig = config.load();
143
157
  if (existingConfig) {
144
158
  let confirmed;
145
159
  while (true) {
@@ -149,20 +163,23 @@ export class ProjectWorkflow extends BaseWorkflow {
149
163
  if (confirmed)
150
164
  break;
151
165
  const linkAnother = await this.confirmLinkToAnotherProject();
152
- if (p.isCancel(linkAnother))
166
+ if (linkAnother === null)
153
167
  return null;
154
168
  if (linkAnother) {
155
169
  const linkExisting = await this.confirmLinkExisting();
170
+ if (linkExisting === null)
171
+ return null;
156
172
  if (!linkExisting) {
157
- return this.runCreateProjectFlow(deployDir);
173
+ return this.runCreateProjectFlow();
158
174
  }
159
- return this.runLinkingFlow(deployDir);
175
+ return this.runLinkingFlow();
160
176
  }
161
177
  }
162
178
  if (existingConfig.environmentId) {
163
179
  return {
164
180
  projectId: existingConfig.projectId,
165
181
  teamId: existingConfig.teamId,
182
+ teamName: existingConfig.teamName,
166
183
  projectName: existingConfig.projectName,
167
184
  environmentId: existingConfig.environmentId,
168
185
  environmentName: existingConfig.environmentName,
@@ -176,17 +193,22 @@ export class ProjectWorkflow extends BaseWorkflow {
176
193
  environmentId: env.environmentId,
177
194
  environmentName: env.environmentName,
178
195
  };
179
- config.save(updatedConfig, deployDir);
196
+ config.save(updatedConfig);
180
197
  p.note(`Environment "${env.environmentName}" will be used for future deploys.`, undefined, {
181
198
  format: (line) => line,
182
199
  });
183
200
  return updatedConfig;
184
201
  }
202
+ const team = await this.resolveTeam();
203
+ if (!team)
204
+ return null;
185
205
  const linkExisting = await this.confirmLinkExisting();
186
- if (!linkExisting) {
187
- return this.runCreateProjectFlow(deployDir);
206
+ if (linkExisting === null)
207
+ return null;
208
+ if (linkExisting) {
209
+ return this.runLinkingFlow(team);
188
210
  }
189
- return this.runLinkingFlow(deployDir);
211
+ return this.runCreateProjectFlow(team);
190
212
  }
191
213
  async resolveEnvironmentForProject(projectId) {
192
214
  const project = await api.projects.get.v1({ projectId });
@@ -199,9 +221,68 @@ export class ProjectWorkflow extends BaseWorkflow {
199
221
  return null;
200
222
  return { environmentId: environment.id, environmentName: environment.name };
201
223
  }
202
- async runCreateProjectFlow(deployDir) {
224
+ async getConfigFromFlags() {
225
+ const { projectId, environmentId } = this.flags;
226
+ if (projectId && !environmentId) {
227
+ throw new Error("--environment-id is required when using --project-id.");
228
+ }
229
+ if (!projectId && environmentId) {
230
+ throw new Error("--project-id is required when using --environment-id.");
231
+ }
232
+ if (projectId && environmentId) {
233
+ const project = await api.projects.get.v1({ projectId });
234
+ const environment = project.environments?.find((env) => env.id === environmentId);
235
+ if (!environment) {
236
+ throw new Error(`Environment "${environmentId}" not found in project "${project.name}".`);
237
+ }
238
+ const teams = await api.teams.list.v1();
239
+ const team = teams.find((t) => t.id === project.teamId);
240
+ const resolvedConfig = {
241
+ projectId,
242
+ teamId: project.teamId,
243
+ teamName: team?.name,
244
+ projectName: project.name,
245
+ environmentId,
246
+ environmentName: environment.name,
247
+ };
248
+ config.save(resolvedConfig);
249
+ return resolvedConfig;
250
+ }
251
+ return null;
252
+ }
253
+ directoryExists(dir) {
254
+ return existsSync(dir) && statSync(dir).isDirectory();
255
+ }
256
+ detectRuntime() {
257
+ const has = (file) => existsSync(file);
258
+ const read = (file) => {
259
+ try {
260
+ return readFileSync(file, "utf8");
261
+ }
262
+ catch {
263
+ return "";
264
+ }
265
+ };
266
+ if (has("pyproject.toml") || has("requirements.txt") || has("setup.py") || has(".python-version")) {
267
+ return "python3.13";
268
+ }
269
+ if (has("package.json")) {
270
+ const nvmrc = has(".nvmrc") ? (read(".nvmrc").trim().split(/\s/)[0] ?? "") : "";
271
+ const major = nvmrc.replace(/^v/i, "").match(/^(\d+)/)?.[1];
272
+ if (major === "22")
273
+ return "node22";
274
+ return "node24";
275
+ }
276
+ return null;
277
+ }
278
+ async runCreateProjectFlow(team) {
279
+ if (!team) {
280
+ team = (await this.resolveTeam()) ?? undefined;
281
+ if (!team)
282
+ return null;
283
+ }
203
284
  if (this.isNonInteractive() && !this.flags.projectName) {
204
- throw new Error("--project-name is required when using --yes");
285
+ throw new Error("--project-name is required when using --non-interactive");
205
286
  }
206
287
  const name = this.flags.projectName ??
207
288
  (await p.text({
@@ -216,34 +297,31 @@ export class ProjectWorkflow extends BaseWorkflow {
216
297
  },
217
298
  }));
218
299
  if (p.isCancel(name)) {
219
- p.cancel("Project name is required.");
220
300
  return null;
221
301
  }
222
- const detectedRuntime = this.detectRuntime(deployDir);
302
+ const detectedRuntime = this.detectRuntime();
223
303
  const defaultRuntime = detectedRuntime ?? "node24";
224
304
  const runtime = this.isNonInteractive()
225
305
  ? (this.flags.runtime ?? defaultRuntime)
226
306
  : await p.select({
227
307
  message: chalk.bold("Runtime"),
228
- options: [
229
- { value: "node24", label: "Node.js 24" },
230
- { value: "node22", label: "Node.js 22" },
231
- { value: "python3.14", label: "Python 3.14" },
232
- { value: "python3.13", label: "Python 3.13" },
233
- ],
308
+ options: RUNTIMES.map((value) => ({
309
+ value,
310
+ label: value === detectedRuntime ? `${RUNTIME_LABELS[value]} (detected)` : RUNTIME_LABELS[value],
311
+ })),
234
312
  initialValue: defaultRuntime,
235
313
  });
236
314
  if (p.isCancel(runtime)) {
237
- p.cancel("Runtime is required.");
238
315
  return null;
239
316
  }
240
- const rootDirectory = await this.promptRootDirectory(deployDir);
317
+ const rootDirectory = await this.promptRootDirectory();
241
318
  const spin = p.spinner();
242
319
  spin.start("Creating project...");
243
320
  try {
244
321
  const projectInput = {
245
322
  name,
246
323
  runtime,
324
+ teamId: team.id,
247
325
  };
248
326
  projectInput.rootDirectory = rootDirectory ?? undefined;
249
327
  const created = await api.projects.create.v1(projectInput);
@@ -255,11 +333,12 @@ export class ProjectWorkflow extends BaseWorkflow {
255
333
  const newConfig = {
256
334
  projectId: created.id,
257
335
  teamId: created.teamId,
336
+ teamName: team.name,
258
337
  projectName: created.name,
259
338
  environmentId: productionEnv.id,
260
339
  environmentName: productionEnv.name,
261
340
  };
262
- config.save(newConfig, deployDir);
341
+ config.save(newConfig);
263
342
  return newConfig;
264
343
  }
265
344
  catch (error) {
@@ -267,8 +346,13 @@ export class ProjectWorkflow extends BaseWorkflow {
267
346
  throw error;
268
347
  }
269
348
  }
270
- async runLinkingFlow(deployDir) {
271
- const projects = await api.projects.list.v1();
349
+ async runLinkingFlow(team) {
350
+ if (!team) {
351
+ team = (await this.resolveTeam()) ?? undefined;
352
+ if (!team)
353
+ return null;
354
+ }
355
+ const projects = await api.projects.list.v1({ teamId: team.id });
272
356
  if (projects.length === 0) {
273
357
  throw new Error("No projects found. Create a project in the Alpic dashboard first.");
274
358
  }
@@ -285,15 +369,16 @@ export class ProjectWorkflow extends BaseWorkflow {
285
369
  const newConfig = {
286
370
  projectId: project.id,
287
371
  teamId: project.teamId,
372
+ teamName: team.name,
288
373
  projectName: project.name,
289
374
  environmentId: environment.id,
290
375
  environmentName: environment.name,
291
376
  };
292
- config.save(newConfig, deployDir);
377
+ config.save(newConfig);
293
378
  p.note(`Linked to project "${project.name}", environment "${environment.name}".`, undefined, {
294
379
  format: (line) => line,
295
380
  });
296
381
  return newConfig;
297
382
  }
298
383
  }
299
- //# sourceMappingURL=project.js.map
384
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/lib/link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { RouterOutput } from "@alpic-ai/api";
2
+ export type RuntimeLogEntry = RouterOutput["environments"]["getLogs"]["v1"]["logs"][number];
3
+ type LogLevel = "INFO" | "ERROR" | "WARNING" | "DEBUG";
4
+ type FollowEnvironmentLogsParams = {
5
+ environmentId: string;
6
+ limit?: number;
7
+ level?: LogLevel[];
8
+ search?: string;
9
+ nextToken?: string | null;
10
+ initialLogs?: RuntimeLogEntry[];
11
+ pollIntervalMs?: number;
12
+ onLog: (log: RuntimeLogEntry) => void;
13
+ };
14
+ export declare function formatLogTimestamp(timestamp: Date | undefined, noColor: boolean): string;
15
+ export declare function printLog(log: RuntimeLogEntry, { noColor }?: {
16
+ noColor?: boolean;
17
+ }): void;
18
+ export declare function followEnvironmentLogs({ environmentId, limit, level, search, nextToken, initialLogs, pollIntervalMs, onLog, }: FollowEnvironmentLogsParams): Promise<never>;
19
+ export declare function parseLevel(values: string[]): LogLevel[];
20
+ export {};