alpic 0.0.0-dev.f1a6945 → 0.0.0-dev.f1f9e99

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 (179) hide show
  1. package/README.md +40 -0
  2. package/bin/run.js +5 -0
  3. package/dist/__tests__/audit.e2e.test.d.ts +1 -0
  4. package/dist/__tests__/audit.e2e.test.js +562 -0
  5. package/dist/__tests__/audit.e2e.test.js.map +1 -0
  6. package/dist/__tests__/auth.e2e.test.js +38 -18
  7. package/dist/__tests__/auth.e2e.test.js.map +1 -1
  8. package/dist/__tests__/deploy-flags.e2e.test.d.ts +1 -0
  9. package/dist/__tests__/deploy-flags.e2e.test.js +228 -0
  10. package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -0
  11. package/dist/__tests__/deploy.e2e.test.js +34 -66
  12. package/dist/__tests__/deploy.e2e.test.js.map +1 -1
  13. package/dist/__tests__/deployment-inspect.e2e.test.d.ts +1 -0
  14. package/dist/__tests__/deployment-inspect.e2e.test.js +119 -0
  15. package/dist/__tests__/deployment-inspect.e2e.test.js.map +1 -0
  16. package/dist/__tests__/deployment-list.e2e.test.d.ts +1 -0
  17. package/dist/__tests__/deployment-list.e2e.test.js +121 -0
  18. package/dist/__tests__/deployment-list.e2e.test.js.map +1 -0
  19. package/dist/__tests__/deployment-logs.e2e.test.d.ts +1 -0
  20. package/dist/__tests__/deployment-logs.e2e.test.js +260 -0
  21. package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -0
  22. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.d.ts +1 -0
  23. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +264 -0
  24. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -0
  25. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.d.ts +1 -0
  26. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +144 -0
  27. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -0
  28. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.d.ts +1 -0
  29. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +155 -0
  30. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -0
  31. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.d.ts +1 -0
  32. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +347 -0
  33. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -0
  34. package/dist/__tests__/environment-variable/environment-variable-validation.test.d.ts +1 -0
  35. package/dist/__tests__/environment-variable/environment-variable-validation.test.js +20 -0
  36. package/dist/__tests__/environment-variable/environment-variable-validation.test.js.map +1 -0
  37. package/dist/__tests__/fixtures/demo-project/index.js +1 -1
  38. package/dist/__tests__/fixtures/demo-project/index.js.map +1 -1
  39. package/dist/__tests__/git-flags.e2e.test.d.ts +1 -0
  40. package/dist/__tests__/git-flags.e2e.test.js +129 -0
  41. package/dist/__tests__/git-flags.e2e.test.js.map +1 -0
  42. package/dist/__tests__/git.e2e.test.js +25 -17
  43. package/dist/__tests__/git.e2e.test.js.map +1 -1
  44. package/dist/__tests__/link.e2e.test.d.ts +1 -0
  45. package/dist/__tests__/link.e2e.test.js +284 -0
  46. package/dist/__tests__/link.e2e.test.js.map +1 -0
  47. package/dist/__tests__/logs.e2e.test.d.ts +1 -0
  48. package/dist/__tests__/logs.e2e.test.js +231 -0
  49. package/dist/__tests__/logs.e2e.test.js.map +1 -0
  50. package/dist/__tests__/mock-server.d.ts +23 -0
  51. package/dist/__tests__/mock-server.js +330 -21
  52. package/dist/__tests__/mock-server.js.map +1 -1
  53. package/dist/__tests__/publish.e2e.test.d.ts +1 -0
  54. package/dist/__tests__/publish.e2e.test.js +510 -0
  55. package/dist/__tests__/publish.e2e.test.js.map +1 -0
  56. package/dist/__tests__/tunnel.e2e.test.d.ts +1 -0
  57. package/dist/__tests__/tunnel.e2e.test.js +66 -0
  58. package/dist/__tests__/tunnel.e2e.test.js.map +1 -0
  59. package/dist/__tests__/utils.d.ts +17 -5
  60. package/dist/__tests__/utils.js +118 -24
  61. package/dist/__tests__/utils.js.map +1 -1
  62. package/dist/api.d.ts +1 -1
  63. package/dist/api.js +10 -3
  64. package/dist/api.js.map +1 -1
  65. package/dist/commands/audit.d.ts +14 -0
  66. package/dist/commands/audit.js +49 -0
  67. package/dist/commands/audit.js.map +1 -0
  68. package/dist/commands/deploy.d.ts +8 -2
  69. package/dist/commands/deploy.js +64 -25
  70. package/dist/commands/deploy.js.map +1 -1
  71. package/dist/commands/deployment/inspect.d.ts +11 -0
  72. package/dist/commands/deployment/inspect.js +91 -0
  73. package/dist/commands/deployment/inspect.js.map +1 -0
  74. package/dist/commands/deployment/list.d.ts +11 -0
  75. package/dist/commands/deployment/list.js +97 -0
  76. package/dist/commands/deployment/list.js.map +1 -0
  77. package/dist/commands/deployment/logs.d.ts +12 -0
  78. package/dist/commands/deployment/logs.js +50 -0
  79. package/dist/commands/deployment/logs.js.map +1 -0
  80. package/dist/commands/environment-variable/add.d.ts +14 -0
  81. package/dist/commands/environment-variable/add.js +47 -0
  82. package/dist/commands/environment-variable/add.js.map +1 -0
  83. package/dist/commands/environment-variable/list.d.ts +9 -0
  84. package/dist/commands/environment-variable/list.js +45 -0
  85. package/dist/commands/environment-variable/list.js.map +1 -0
  86. package/dist/commands/environment-variable/remove.d.ts +11 -0
  87. package/dist/commands/environment-variable/remove.js +33 -0
  88. package/dist/commands/environment-variable/remove.js.map +1 -0
  89. package/dist/commands/environment-variable/update.d.ts +13 -0
  90. package/dist/commands/environment-variable/update.js +41 -0
  91. package/dist/commands/environment-variable/update.js.map +1 -0
  92. package/dist/commands/git/connect.d.ts +3 -2
  93. package/dist/commands/git/connect.js +29 -28
  94. package/dist/commands/git/connect.js.map +1 -1
  95. package/dist/commands/git/disconnect.d.ts +2 -2
  96. package/dist/commands/git/disconnect.js +20 -26
  97. package/dist/commands/git/disconnect.js.map +1 -1
  98. package/dist/commands/git.js +2 -2
  99. package/dist/commands/git.js.map +1 -1
  100. package/dist/commands/link.d.ts +17 -0
  101. package/dist/commands/link.js +101 -0
  102. package/dist/commands/link.js.map +1 -0
  103. package/dist/commands/login.js +4 -22
  104. package/dist/commands/login.js.map +1 -1
  105. package/dist/commands/logs.d.ts +16 -0
  106. package/dist/commands/logs.js +96 -0
  107. package/dist/commands/logs.js.map +1 -0
  108. package/dist/commands/publish.d.ts +15 -0
  109. package/dist/commands/publish.js +51 -0
  110. package/dist/commands/publish.js.map +1 -0
  111. package/dist/commands/tunnel.d.ts +10 -0
  112. package/dist/commands/tunnel.js +132 -0
  113. package/dist/commands/tunnel.js.map +1 -0
  114. package/dist/commands/whoami.js +2 -14
  115. package/dist/commands/whoami.js.map +1 -1
  116. package/dist/lib/alpic-command.d.ts +2 -0
  117. package/dist/lib/alpic-command.js +13 -5
  118. package/dist/lib/alpic-command.js.map +1 -1
  119. package/dist/lib/archive.d.ts +3 -3
  120. package/dist/lib/archive.js +21 -19
  121. package/dist/lib/archive.js.map +1 -1
  122. package/dist/lib/audit.d.ts +16 -0
  123. package/dist/lib/audit.js +245 -0
  124. package/dist/lib/audit.js.map +1 -0
  125. package/dist/lib/auth/auth.d.ts +3 -0
  126. package/dist/lib/auth/auth.js +23 -0
  127. package/dist/lib/auth/auth.js.map +1 -1
  128. package/dist/lib/auth/oauth/server/index.d.ts +2 -1
  129. package/dist/lib/auth/oauth/server/index.js +33 -7
  130. package/dist/lib/auth/oauth/server/index.js.map +1 -1
  131. package/dist/lib/auth/whoami.d.ts +1 -28
  132. package/dist/lib/auth/whoami.js +27 -17
  133. package/dist/lib/auth/whoami.js.map +1 -1
  134. package/dist/lib/base-workflow.d.ts +10 -0
  135. package/dist/lib/base-workflow.js +22 -0
  136. package/dist/lib/base-workflow.js.map +1 -0
  137. package/dist/lib/config.d.ts +3 -2
  138. package/dist/lib/config.js +8 -7
  139. package/dist/lib/config.js.map +1 -1
  140. package/dist/lib/deployment.d.ts +69 -1
  141. package/dist/lib/deployment.js +113 -5
  142. package/dist/lib/deployment.js.map +1 -1
  143. package/dist/lib/environment-variable.d.ts +37 -0
  144. package/dist/lib/environment-variable.js +299 -0
  145. package/dist/lib/environment-variable.js.map +1 -0
  146. package/dist/lib/git.d.ts +12 -4
  147. package/dist/lib/git.js +52 -26
  148. package/dist/lib/git.js.map +1 -1
  149. package/dist/lib/global-store.d.ts +1 -1
  150. package/dist/lib/global-store.js +4 -3
  151. package/dist/lib/global-store.js.map +1 -1
  152. package/dist/lib/link.d.ts +83 -0
  153. package/dist/lib/link.js +387 -0
  154. package/dist/lib/link.js.map +1 -0
  155. package/dist/lib/logs.d.ts +20 -0
  156. package/dist/lib/logs.js +87 -0
  157. package/dist/lib/logs.js.map +1 -0
  158. package/dist/lib/publish.d.ts +22 -0
  159. package/dist/lib/publish.js +185 -0
  160. package/dist/lib/publish.js.map +1 -0
  161. package/dist/lib/resolve.d.ts +6 -0
  162. package/dist/lib/resolve.js +26 -0
  163. package/dist/lib/resolve.js.map +1 -0
  164. package/dist/lib/table.d.ts +8 -0
  165. package/dist/lib/table.js +27 -0
  166. package/dist/lib/table.js.map +1 -0
  167. package/dist/lib/telemetry.js +1 -1
  168. package/dist/lib/telemetry.js.map +1 -1
  169. package/dist/lib/utils.d.ts +5 -0
  170. package/dist/lib/utils.js +53 -0
  171. package/dist/lib/utils.js.map +1 -0
  172. package/dist/lib/utils.test.d.ts +1 -0
  173. package/dist/lib/utils.test.js +27 -0
  174. package/dist/lib/utils.test.js.map +1 -0
  175. package/dist/types.d.ts +1 -0
  176. package/package.json +27 -20
  177. package/dist/lib/project.d.ts +0 -67
  178. package/dist/lib/project.js +0 -285
  179. package/dist/lib/project.js.map +0 -1
@@ -1,7 +1,10 @@
1
1
  import type { RouterOutput } from "@alpic-ai/api";
2
- import type { ApiCall } from "./mock-server";
2
+ import type { ApiCall, MockApiServer } from "./mock-server.js";
3
3
  type Expectable = string | RegExp;
4
4
  type ProjectGetV1 = RouterOutput["projects"]["get"]["v1"];
5
+ type DeploymentGetV1 = RouterOutput["deployments"]["get"]["v1"];
6
+ type ProductionEnvironment = NonNullable<ProjectGetV1["productionEnvironment"]>;
7
+ type ProductionEnvironmentDomains = ProductionEnvironment["domains"];
5
8
  export type CliSessionOptions = {
6
9
  cwd?: string;
7
10
  env?: Record<string, string | undefined>;
@@ -25,7 +28,7 @@ export type CliController = {
25
28
  /** End session (SIGTERM) */
26
29
  stop: () => void;
27
30
  };
28
- export declare function cliSession(cmd: string, args: string[], options: CliSessionOptions, fn: (cli: CliController) => Promise<void>): Promise<{
31
+ export declare function cliSession(cmd: string, args: string[], options: CliSessionOptions, fn?: (cli: CliController) => Promise<void> | void): Promise<{
29
32
  exitCode: number | null;
30
33
  output: string;
31
34
  }>;
@@ -37,11 +40,11 @@ export type BuildMockProjectParams = {
37
40
  environmentName: string;
38
41
  sourceRepository?: string | null;
39
42
  sourceBranch?: string | null;
43
+ domains?: ProductionEnvironmentDomains;
40
44
  };
41
45
  export declare function buildMockProject(params: BuildMockProjectParams): ProjectGetV1;
46
+ export declare function buildMockDeployment(overrides?: Partial<DeploymentGetV1>): DeploymentGetV1;
42
47
  export type SetupTestDirectoryOptions = {
43
- /** Temp directory prefix (default: "alpic-cli-e2e") */
44
- prefix?: string;
45
48
  /** If true, run git init and add origin/upstream remotes */
46
49
  initGit?: boolean;
47
50
  };
@@ -49,7 +52,7 @@ export declare function setupTestDirectory(options?: SetupTestDirectoryOptions):
49
52
  cwd: string;
50
53
  binPath: string;
51
54
  }>;
52
- export declare function createConfigFile(cwd: string, projectId: string, teamId: string, projectName: string, environmentId: string, environmentName: string): void;
55
+ export declare function createConfigFile(cwd: string, projectId: string, teamId: string, projectName: string, environmentId: string, environmentName: string, teamName?: string): void;
53
56
  export declare function runGit(args: string[], cwd: string): void;
54
57
  export declare function expectSuccessfulApiCall(call: ApiCall | undefined, customAssertions?: (call: ApiCall) => void): asserts call is ApiCall;
55
58
  /**
@@ -58,4 +61,13 @@ export declare function expectSuccessfulApiCall(call: ApiCall | undefined, custo
58
61
  * Caller must pass serverUrl so userinfo can be pointed at the mock server.
59
62
  */
60
63
  export declare function createOAuthEnv(cwd: string, serverUrl: string): Record<string, string>;
64
+ export declare function verifyConfigFile(cwd: string, expected: {
65
+ projectName: string;
66
+ projectId?: string;
67
+ teamId?: string;
68
+ teamName?: string;
69
+ environmentId?: string;
70
+ environmentName?: string;
71
+ }): Promise<void>;
72
+ export declare function verifyDeploymentFlow(cli: CliController, mockServer: MockApiServer): Promise<void>;
61
73
  export {};
@@ -1,22 +1,27 @@
1
- import pty from "node-pty";
2
1
  import { execFileSync } from "node:child_process";
3
2
  import { randomUUID } from "node:crypto";
4
3
  import { mkdirSync, writeFileSync } from "node:fs";
5
- import { cp, mkdtemp } from "node:fs/promises";
4
+ import { cp, mkdtemp, readFile, rm } from "node:fs/promises";
6
5
  import { tmpdir } from "node:os";
7
6
  import { dirname, join } from "node:path";
8
7
  import { fileURLToPath } from "node:url";
8
+ import { stripVTControlCharacters } from "node:util";
9
+ import pty from "node-pty";
9
10
  import { expect } from "vitest";
11
+ const DEFAULT_CLI_SESSION_TIMEOUT_MS = 10_000;
10
12
  const __testDirname = dirname(fileURLToPath(import.meta.url));
11
- export async function cliSession(cmd, args, options, fn) {
12
- const { cwd, env, cols = 100, rows = 30, timeoutMs = 8000 } = options;
13
+ export async function cliSession(cmd, args, options, fn = async () => { }) {
14
+ const { cwd, env, cols = 100, rows = 30, timeoutMs = DEFAULT_CLI_SESSION_TIMEOUT_MS } = options;
15
+ const createdConfigDir = env?.ALPIC_GLOBAL_CONFIG_DIR === undefined;
16
+ const globalConfigDir = env?.ALPIC_GLOBAL_CONFIG_DIR ?? (await mkdtemp(join(tmpdir(), "alpic-cli-config-")));
13
17
  const mergedEnv = {
14
18
  ...process.env,
15
- NO_COLOR: "1",
19
+ ALPIC_GLOBAL_CONFIG_DIR: globalConfigDir,
20
+ // Speed up polling-based CLI logic in tests. Individual tests can override via env.
21
+ ALPIC_POLL_INTERVAL_MS: "100",
16
22
  // Resolve @alpic-ai/api to TypeScript source via the "development" export condition,
17
23
  // so e2e tests run without building the api package first.
18
24
  NODE_OPTIONS: [process.env.NODE_OPTIONS, "--conditions=development"].filter(Boolean).join(" "),
19
- NODE_TLS_REJECT_UNAUTHORIZED: "0",
20
25
  ...Object.fromEntries(Object.entries(env ?? {}).filter(([, v]) => v !== undefined)),
21
26
  };
22
27
  for (const [k, v] of Object.entries(mergedEnv)) {
@@ -33,8 +38,10 @@ export async function cliSession(cmd, args, options, fn) {
33
38
  rows,
34
39
  });
35
40
  let buf = "";
41
+ let lastDataAt = Date.now();
36
42
  const append = (data) => {
37
43
  buf += data;
44
+ lastDataAt = Date.now();
38
45
  };
39
46
  term.onData(append);
40
47
  let exitCode = null;
@@ -47,10 +54,18 @@ export async function cliSession(cmd, args, options, fn) {
47
54
  const controller = {
48
55
  expect: (pattern, opts) => waitFor(() => matches(buf, pattern), opts?.timeoutMs ?? timeoutMs, () => buf, pattern),
49
56
  send: async (line) => {
50
- term.write(line + "\r");
57
+ // Wait until PTY output has gone quiet for quietMs before writing.
58
+ // This ensures the CLI has yielded its event loop and entered the I/O
59
+ // polling phase where it can receive keypresses — without a fixed
60
+ // overly-conservative delay.
61
+ const quietMs = 10;
62
+ while (Date.now() - lastDataAt < quietMs) {
63
+ await sleep(5);
64
+ }
65
+ term.write(`${line}\r`);
51
66
  },
52
67
  write: (data) => term.write(data),
53
- output: () => buf,
68
+ output: () => stripVTControlCharacters(buf),
54
69
  clear: () => {
55
70
  buf = "";
56
71
  },
@@ -67,16 +82,23 @@ export async function cliSession(cmd, args, options, fn) {
67
82
  await fn(controller);
68
83
  }
69
84
  finally {
70
- await Promise.race([exitPromise, sleep(1500)]);
71
- controller.stop();
72
- await Promise.race([exitPromise, sleep(200)]);
85
+ const didExitGracefully = await waitForExit(exitPromise, timeoutMs);
86
+ if (!didExitGracefully) {
87
+ controller.stop();
88
+ await Promise.race([exitPromise, sleep(200)]);
89
+ }
90
+ if (createdConfigDir) {
91
+ await rm(globalConfigDir, { recursive: true, force: true });
92
+ }
73
93
  }
74
- return { exitCode, output: buf };
94
+ return { exitCode, output: stripVTControlCharacters(buf) };
75
95
  }
76
96
  function matches(text, pattern) {
77
- if (typeof pattern === "string")
78
- return text.includes(pattern);
79
- return pattern.test(text);
97
+ const normalizedText = stripVTControlCharacters(text);
98
+ if (typeof pattern === "string") {
99
+ return normalizedText.includes(pattern);
100
+ }
101
+ return pattern.test(normalizedText);
80
102
  }
81
103
  async function waitFor(predicate, timeoutMs, getOutput, pattern) {
82
104
  const start = Date.now();
@@ -97,8 +119,11 @@ function patternToString(p) {
97
119
  function sleep(ms) {
98
120
  return new Promise((r) => setTimeout(r, ms));
99
121
  }
122
+ async function waitForExit(exitPromise, timeoutMs) {
123
+ return Promise.race([exitPromise.then(() => true), sleep(timeoutMs).then(() => false)]);
124
+ }
100
125
  export function buildMockProject(params) {
101
- const { projectId, teamId, projectName, environmentId, environmentName, sourceRepository = null, sourceBranch = null, } = params;
126
+ const { projectId, teamId, projectName, environmentId, environmentName, sourceRepository = null, sourceBranch = null, domains = [], } = params;
102
127
  const mcpServerUrl = `https://mcp-${projectId}.alpic.ai`;
103
128
  return {
104
129
  id: projectId,
@@ -119,6 +144,7 @@ export function buildMockProject(params) {
119
144
  id: environmentId,
120
145
  name: environmentName,
121
146
  mcpServerUrl,
147
+ domains,
122
148
  latestDeployment: null,
123
149
  },
124
150
  sourceRepository,
@@ -132,10 +158,27 @@ export function buildMockProject(params) {
132
158
  createdAt: new Date(),
133
159
  };
134
160
  }
161
+ export function buildMockDeployment(overrides) {
162
+ const now = new Date();
163
+ const base = {
164
+ id: "dpl_base",
165
+ status: "deployed",
166
+ sourceRef: "main",
167
+ sourceCommitId: "abc1234",
168
+ sourceCommitMessage: "Deploy production",
169
+ authorUsername: "harijoe",
170
+ authorAvatarUrl: null,
171
+ startedAt: now,
172
+ completedAt: now,
173
+ isCurrent: true,
174
+ deploymentPageUrl: null,
175
+ };
176
+ return { ...base, ...overrides };
177
+ }
135
178
  export async function setupTestDirectory(options = {}) {
136
- const { prefix = "alpic-cli-e2e", initGit = false } = options;
179
+ const { initGit = false } = options;
137
180
  const uniqueId = randomUUID();
138
- const cwd = await mkdtemp(join(tmpdir(), `${prefix}-${uniqueId}-`));
181
+ const cwd = await mkdtemp(join(tmpdir(), `alpic-cli-e2e-${uniqueId}-`));
139
182
  const fixturePath = join(__testDirname, "fixtures", "demo-project");
140
183
  await cp(fixturePath, cwd, { recursive: true });
141
184
  if (initGit) {
@@ -146,17 +189,21 @@ export async function setupTestDirectory(options = {}) {
146
189
  const binPath = join(process.cwd(), "bin", "dev.js");
147
190
  return { cwd, binPath };
148
191
  }
149
- export function createConfigFile(cwd, projectId, teamId, projectName, environmentId, environmentName) {
192
+ export function createConfigFile(cwd, projectId, teamId, projectName, environmentId, environmentName, teamName) {
150
193
  const configDir = join(cwd, ".alpic");
151
194
  mkdirSync(configDir, { recursive: true });
152
195
  const configPath = join(configDir, "project.json");
153
- writeFileSync(configPath, JSON.stringify({
196
+ const configData = {
154
197
  projectId,
155
198
  teamId,
156
199
  projectName,
157
200
  environmentId,
158
201
  environmentName,
159
- }));
202
+ };
203
+ if (teamName) {
204
+ configData.teamName = teamName;
205
+ }
206
+ writeFileSync(configPath, JSON.stringify(configData));
160
207
  }
161
208
  export function runGit(args, cwd) {
162
209
  execFileSync("git", args, {
@@ -177,8 +224,7 @@ export function expectSuccessfulApiCall(call, customAssertions) {
177
224
  * Caller must pass serverUrl so userinfo can be pointed at the mock server.
178
225
  */
179
226
  export function createOAuthEnv(cwd, serverUrl) {
180
- const configHome = join(cwd, ".config");
181
- const alpicConfigDir = join(configHome, "alpic");
227
+ const alpicConfigDir = join(cwd, ".config", "alpic");
182
228
  mkdirSync(alpicConfigDir, { recursive: true });
183
229
  const credentialsPath = join(alpicConfigDir, "credentials.json");
184
230
  const expiresAt = Math.floor(Date.now() / 1000) + 3600; // seconds
@@ -189,9 +235,57 @@ export function createOAuthEnv(cwd, serverUrl) {
189
235
  sub: "test-sub",
190
236
  }), "utf-8");
191
237
  return {
192
- XDG_CONFIG_HOME: configHome,
238
+ ALPIC_GLOBAL_CONFIG_DIR: alpicConfigDir,
193
239
  ALPIC_COGNITO_URL: serverUrl,
194
240
  ALPIC_API_BASE_URL: serverUrl,
195
241
  };
196
242
  }
243
+ export async function verifyConfigFile(cwd, expected) {
244
+ const cfgPath = join(cwd, ".alpic", "project.json");
245
+ const cfg = await readFile(cfgPath, "utf8");
246
+ const config = JSON.parse(cfg);
247
+ expect(config.projectName).toBe(expected.projectName);
248
+ if (expected.projectId !== undefined) {
249
+ expect(config.projectId).toBe(expected.projectId);
250
+ }
251
+ else {
252
+ expect(config.projectId).toBeDefined();
253
+ }
254
+ if (expected.teamId !== undefined) {
255
+ expect(config.teamId).toBe(expected.teamId);
256
+ }
257
+ else {
258
+ expect(config.teamId).toBeDefined();
259
+ }
260
+ if (expected.teamName !== undefined) {
261
+ expect(config.teamName).toBe(expected.teamName);
262
+ }
263
+ if (expected.environmentId !== undefined) {
264
+ expect(config.environmentId).toBe(expected.environmentId);
265
+ }
266
+ else {
267
+ expect(config.environmentId).toBeDefined();
268
+ }
269
+ if (expected.environmentName !== undefined) {
270
+ expect(config.environmentName).toBe(expected.environmentName);
271
+ }
272
+ else {
273
+ expect(config.environmentName).toBeDefined();
274
+ }
275
+ }
276
+ export async function verifyDeploymentFlow(cli, mockServer) {
277
+ await cli.expect(/Collected \d+ file/);
278
+ await cli.expect("Upload complete");
279
+ const uploadCall = mockServer.getLastCall("POST", "/v1/deployments/upload");
280
+ expectSuccessfulApiCall(uploadCall);
281
+ await cli.expect("Deployment started");
282
+ const deployCall = mockServer.getLastCall("POST", /\/v1\/environments\/.*\/deploy/);
283
+ expectSuccessfulApiCall(deployCall);
284
+ await cli.expect("View deployment details:");
285
+ await cli.expect("Deployment summary:");
286
+ const deploymentStatusCalls = mockServer.getCalls("GET", /\/v1\/deployments\/.*/);
287
+ expect(deploymentStatusCalls.length).toBeGreaterThan(0);
288
+ const envCall = mockServer.getLastCall("GET", /\/v1\/environments\/.*/);
289
+ expectSuccessfulApiCall(envCall);
290
+ }
197
291
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/__tests__/utils.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { ContractRouterClient } from "@orpc/contract";
2
1
  import { contract } from "@alpic-ai/api";
2
+ import type { ContractRouterClient } from "@orpc/contract";
3
3
  export declare const api: ContractRouterClient<typeof contract>;
package/dist/api.js CHANGED
@@ -1,13 +1,20 @@
1
+ import { contract } from "@alpic-ai/api";
1
2
  import { createORPCClient } from "@orpc/client";
2
3
  import { ResponseValidationPlugin } from "@orpc/contract/plugins";
3
4
  import { OpenAPILink } from "@orpc/openapi-client/fetch";
4
- import { contract } from "@alpic-ai/api";
5
5
  import { env } from "./env.js";
6
6
  import { getApiToken } from "./lib/auth/auth.js";
7
7
  const link = new OpenAPILink(contract, {
8
8
  url: env.ALPIC_API_BASE_URL,
9
- headers: async () => {
10
- return getApiToken().then((token) => (token ? { Authorization: `Bearer ${token}` } : {}));
9
+ headers: async ({ context }) => {
10
+ const headers = context.request?.headers || {};
11
+ if (!headers.Authorization) {
12
+ const token = await getApiToken();
13
+ if (token) {
14
+ headers.Authorization = `Bearer ${token}`;
15
+ }
16
+ }
17
+ return headers;
11
18
  },
12
19
  plugins: [new ResponseValidationPlugin(contract)],
13
20
  });
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;IACrC,GAAG,EAAE,GAAG,CAAC,kBAAkB;IAC3B,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,OAAO,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAA0C,gBAAgB,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE;IACrC,GAAG,EAAE,GAAG,CAAC,kBAAkB;IAC3B,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,GAAG,GAA0C,gBAAgB,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { AlpicCommand } from "../lib/alpic-command.js";
2
+ export declare class Audit extends AlpicCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ url: import("@oclif/core/interfaces").OptionFlag<import("node:url").URL | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ "team-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ "project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
@@ -0,0 +1,49 @@
1
+ import * as p from "@clack/prompts";
2
+ import { Flags } from "@oclif/core";
3
+ import { AlpicCommand } from "../lib/alpic-command.js";
4
+ import { AuditWorkflow } from "../lib/audit.js";
5
+ export class Audit extends AlpicCommand {
6
+ static description = "Run a beacon audit on an MCP server";
7
+ static examples = [
8
+ "<%= config.bin %> audit",
9
+ "<%= config.bin %> audit --url https://my-server.example.com/mcp",
10
+ "<%= config.bin %> audit --json",
11
+ ];
12
+ static flags = {
13
+ url: Flags.url({
14
+ description: "The HTTPS URL of the MCP server to audit (standalone mode, no project association)",
15
+ required: false,
16
+ }),
17
+ json: Flags.boolean({
18
+ description: "Output the full report as JSON",
19
+ default: false,
20
+ }),
21
+ "team-id": Flags.string({
22
+ description: "Team ID (only with --url for standalone audits)",
23
+ required: false,
24
+ }),
25
+ "project-id": Flags.string({
26
+ description: "Project ID to audit",
27
+ required: false,
28
+ }),
29
+ "environment-id": Flags.string({
30
+ description: "Environment ID to audit (defaults to production)",
31
+ required: false,
32
+ }),
33
+ "non-interactive": Flags.boolean({
34
+ description: "Skip all confirmation prompts",
35
+ default: false,
36
+ }),
37
+ };
38
+ async run() {
39
+ const { flags } = await this.parse(Audit);
40
+ p.intro("Alpic Beacon");
41
+ await this.ensureAuthenticated();
42
+ const workflow = new AuditWorkflow(flags);
43
+ const exitCode = await workflow.runAudit();
44
+ if (exitCode !== 0) {
45
+ this.exit(exitCode);
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,OAAO,KAAM,SAAQ,YAAY;IACrC,MAAM,CAAU,WAAW,GAAG,qCAAqC,CAAC;IAEpE,MAAM,CAAU,QAAQ,GAAG;QACzB,yBAAyB;QACzB,iEAAiE;QACjE,gCAAgC;KACjC,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;YACb,WAAW,EAAE,oFAAoF;YACjG,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,KAAK;SACf,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,iDAAiD;YAC9D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,kDAAkD;YAC/D,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1C,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACxB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;IACH,CAAC"}
@@ -2,8 +2,14 @@ import { AlpicCommand } from "../lib/alpic-command.js";
2
2
  export declare class Deploy extends AlpicCommand {
3
3
  static description: string;
4
4
  static examples: string[];
5
- static args: {
6
- directory: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
5
+ static flags: {
6
+ "non-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ runtime: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ "root-dir": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ "project-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ "team-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ "project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
13
  };
8
14
  run(): Promise<void>;
9
15
  }
@@ -1,53 +1,88 @@
1
+ import { readFileSync, rmSync } from "node:fs";
1
2
  import * as p from "@clack/prompts";
2
- import { Args } from "@oclif/core";
3
+ import { Flags } from "@oclif/core";
3
4
  import chalk from "chalk";
4
- import { readFileSync, rmSync } from "node:fs";
5
5
  import { api } from "../api.js";
6
6
  import { AlpicCommand } from "../lib/alpic-command.js";
7
7
  import { createTarArchive, getFilesToPack } from "../lib/archive.js";
8
- import { isAuthenticated } from "../lib/auth/auth.js";
9
8
  import { deployAndWait, formatElapsed } from "../lib/deployment.js";
10
- import { resolveDeployDir, resolveProjectForDeploy } from "../lib/project.js";
9
+ import { LinkWorkflow, RUNTIMES } from "../lib/link.js";
11
10
  import { uploadToPresignedUrl } from "../lib/upload.js";
12
11
  export class Deploy extends AlpicCommand {
13
12
  static description = "Deploy a project to Alpic";
14
- static examples = ["<%= config.bin %> deploy", "<%= config.bin %> deploy ./my-app"];
15
- static args = {
16
- directory: Args.string({
17
- description: "Directory to deploy (default: current directory)",
13
+ static examples = [
14
+ "<%= config.bin %> deploy",
15
+ "<%= config.bin %> deploy --non-interactive --project-name my-app --runtime node24",
16
+ ];
17
+ static flags = {
18
+ "non-interactive": Flags.boolean({
19
+ description: "Skip all confirmation prompts",
20
+ required: false,
21
+ }),
22
+ runtime: Flags.string({
23
+ description: "New project runtime (node24, node22, python3.14, python3.13)",
24
+ required: false,
25
+ options: RUNTIMES,
26
+ }),
27
+ "root-dir": Flags.string({
28
+ description: "Path to the app root for builds and deployments",
29
+ required: false,
30
+ }),
31
+ "project-name": Flags.string({
32
+ description: "New project name",
33
+ required: false,
34
+ }),
35
+ "team-id": Flags.string({
36
+ description: "Team ID",
37
+ required: false,
38
+ }),
39
+ "project-id": Flags.string({
40
+ description: "Project ID to deploy to directly",
41
+ required: false,
42
+ }),
43
+ "environment-id": Flags.string({
44
+ description: "Environment ID to deploy to directly",
18
45
  required: false,
19
46
  }),
20
47
  };
21
48
  async run() {
22
- const { args } = await this.parse(Deploy);
49
+ const { flags } = await this.parse(Deploy);
50
+ const linkWorkflowFlags = {
51
+ "non-interactive": flags["non-interactive"],
52
+ projectName: flags["project-name"],
53
+ runtime: flags.runtime,
54
+ rootDir: flags["root-dir"],
55
+ teamId: flags["team-id"],
56
+ projectId: flags["project-id"],
57
+ environmentId: flags["environment-id"],
58
+ };
23
59
  p.intro("Deploying to Alpic");
24
- if (!(await isAuthenticated())) {
25
- p.cancel("Not authenticated. Run `alpic login` or set ALPIC_API_KEY. Get an API key from Team settings in the Alpic dashboard.");
26
- return;
27
- }
28
- const deployDir = resolveDeployDir(args.directory);
29
- const config = await resolveProjectForDeploy(deployDir);
30
- if (!config) {
31
- p.cancel("Deploy cancelled");
32
- return;
60
+ await this.ensureAuthenticated();
61
+ const linkWorkflow = new LinkWorkflow(linkWorkflowFlags);
62
+ const projectConfig = await linkWorkflow.runLinkFlow();
63
+ if (!projectConfig) {
64
+ throw new Error("Deploy cancelled");
33
65
  }
34
66
  const spinner = p.spinner();
35
67
  let tmpDir;
36
68
  try {
37
69
  spinner.start("Collecting source files...");
38
- const files = getFilesToPack(deployDir);
70
+ const files = getFilesToPack();
39
71
  spinner.stop(`Collected ${files.length} file${files.length === 1 ? "" : "s"}`);
40
- const result = await createTarArchive(files, deployDir);
72
+ const result = await createTarArchive(files);
41
73
  tmpDir = result.tmpDir;
42
74
  const archivePath = result.archivePath;
43
- const { uploadUrl, token } = await api.deployments.uploadArtifact.v1();
75
+ const { uploadUrl, token } = await api.deployments.uploadArtifact.v1({ teamId: projectConfig.teamId });
44
76
  spinner.start("Uploading source...");
45
77
  const buffer = readFileSync(archivePath);
46
78
  await uploadToPresignedUrl(uploadUrl, buffer);
47
79
  spinner.stop("Upload complete");
48
80
  spinner.start("Triggering deployment...");
49
81
  const deployStartedAt = Date.now();
50
- const initialDeployment = await api.environments.deploy.v1({ environmentId: config.environmentId, token });
82
+ const initialDeployment = await api.environments.deploy.v1({
83
+ environmentId: projectConfig.environmentId,
84
+ token,
85
+ });
51
86
  spinner.stop("Deployment started");
52
87
  const { deployment, elapsedMs } = await deployAndWait({
53
88
  initial: initialDeployment,
@@ -57,20 +92,24 @@ export class Deploy extends AlpicCommand {
57
92
  if (deployment.status !== "deployed") {
58
93
  throw new Error("Deployment failed");
59
94
  }
60
- const environment = await api.environments.get.v1({ environmentId: config.environmentId });
95
+ const environment = await api.environments.get.v1({ environmentId: projectConfig.environmentId });
61
96
  const urls = environment.mcpServerUrl ? [environment.mcpServerUrl] : environment.domains;
62
- p.box([...urls.map((url) => chalk.bold(`🔗 ${url}`)), "", `Completed in ${elapsedStr}`].join("\n"), "Deployment summary:", {
97
+ const teamLine = projectConfig.teamName ? chalk.dim(`Team: ${projectConfig.teamName}`) : null;
98
+ p.box([teamLine, ...urls.map((url) => chalk.bold(`🔗 ${url}`)), "", `Completed in ${elapsedStr}`]
99
+ .filter(Boolean)
100
+ .join("\n"), "Deployment summary:", {
63
101
  contentAlign: "center",
64
102
  titleAlign: "center",
65
103
  width: "auto",
66
104
  rounded: true,
67
105
  contentPadding: 3,
68
106
  });
107
+ p.log.info(`View build logs: ${chalk.cyan(`alpic deployment logs --deployment-id ${deployment.id}`)}`);
69
108
  }
70
109
  catch (error) {
71
110
  spinner.stop();
72
111
  const message = error instanceof Error ? error.message : String(error);
73
- p.cancel(`Error: ${message}`);
112
+ throw new Error(`Error: ${message}`);
74
113
  }
75
114
  finally {
76
115
  if (tmpDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { AlpicCommand } from "../../lib/alpic-command.js";
2
+ export declare class DeploymentInspect extends AlpicCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "deployment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ "environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ wait: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ };
10
+ run(): Promise<void>;
11
+ }