alpic 0.0.0-dev.ge3cead0 → 0.0.0-dev.ge3de960
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/bin/run.js +15 -1
- package/dist/__tests__/alpic-command.test.js +8 -4
- package/dist/__tests__/alpic-command.test.js.map +1 -1
- package/dist/__tests__/audit.e2e.test.js +16 -29
- package/dist/__tests__/audit.e2e.test.js.map +1 -1
- package/dist/__tests__/auth.e2e.test.js +9 -23
- package/dist/__tests__/auth.e2e.test.js.map +1 -1
- package/dist/__tests__/deploy-flags.e2e.test.js +6 -21
- package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -1
- package/dist/__tests__/deploy.e2e.test.js +5 -21
- package/dist/__tests__/deploy.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-inspect.e2e.test.js +18 -31
- package/dist/__tests__/deployment-inspect.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-list.e2e.test.js +18 -31
- package/dist/__tests__/deployment-list.e2e.test.js.map +1 -1
- package/dist/__tests__/deployment-logs.e2e.test.js +15 -29
- package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-list.e2e.test.js +6 -22
- package/dist/__tests__/environment-list.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +19 -31
- package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +19 -31
- package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +18 -31
- package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -1
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +18 -31
- package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -1
- package/dist/__tests__/git-flags.e2e.test.js +6 -22
- package/dist/__tests__/git-flags.e2e.test.js.map +1 -1
- package/dist/__tests__/git.e2e.test.js +7 -22
- package/dist/__tests__/git.e2e.test.js.map +1 -1
- package/dist/__tests__/insights-category.e2e.test.d.ts +1 -0
- package/dist/__tests__/insights-category.e2e.test.js +248 -0
- package/dist/__tests__/insights-category.e2e.test.js.map +1 -0
- package/dist/__tests__/insights.e2e.test.d.ts +1 -0
- package/dist/__tests__/insights.e2e.test.js +193 -0
- package/dist/__tests__/insights.e2e.test.js.map +1 -0
- package/dist/__tests__/logs.e2e.test.js +21 -35
- package/dist/__tests__/logs.e2e.test.js.map +1 -1
- package/dist/__tests__/mock-api.d.ts +23 -1
- package/dist/__tests__/mock-api.js +232 -41
- package/dist/__tests__/mock-api.js.map +1 -1
- package/dist/__tests__/playground/playground-configure.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-configure.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-enable-disable.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.js +24 -30
- package/dist/__tests__/playground/playground-example-prompt.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-headers.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-headers.e2e.test.js.map +1 -1
- package/dist/__tests__/playground/playground-status.e2e.test.js +18 -26
- package/dist/__tests__/playground/playground-status.e2e.test.js.map +1 -1
- package/dist/__tests__/project-list.e2e.test.js +5 -21
- package/dist/__tests__/project-list.e2e.test.js.map +1 -1
- package/dist/__tests__/publish.e2e.test.js +6 -24
- package/dist/__tests__/publish.e2e.test.js.map +1 -1
- package/dist/__tests__/team-inspect.e2e.test.js +26 -1
- package/dist/__tests__/team-inspect.e2e.test.js.map +1 -1
- package/dist/__tests__/team-list.e2e.test.js +5 -21
- package/dist/__tests__/team-list.e2e.test.js.map +1 -1
- package/dist/__tests__/tunnel.e2e.test.js +61 -23
- package/dist/__tests__/tunnel.e2e.test.js.map +1 -1
- package/dist/__tests__/utils.d.ts +17 -6
- package/dist/__tests__/utils.js +49 -20
- package/dist/__tests__/utils.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.js +2 -21
- package/dist/api.js.map +1 -1
- package/dist/commands/deploy.js +69 -52
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/git/connect.js +2 -2
- package/dist/commands/git/connect.js.map +1 -1
- package/dist/commands/git/disconnect.js +2 -2
- package/dist/commands/git/disconnect.js.map +1 -1
- package/dist/commands/insights/category/create.d.ts +17 -0
- package/dist/commands/insights/category/create.js +63 -0
- package/dist/commands/insights/category/create.js.map +1 -0
- package/dist/commands/insights/category/delete.d.ts +13 -0
- package/dist/commands/insights/category/delete.js +40 -0
- package/dist/commands/insights/category/delete.js.map +1 -0
- package/dist/commands/insights/category/link.d.ts +14 -0
- package/dist/commands/insights/category/link.js +36 -0
- package/dist/commands/insights/category/link.js.map +1 -0
- package/dist/commands/insights/category/list.d.ts +13 -0
- package/dist/commands/insights/category/list.js +45 -0
- package/dist/commands/insights/category/list.js.map +1 -0
- package/dist/commands/insights/category/unlink.d.ts +14 -0
- package/dist/commands/insights/category/unlink.js +36 -0
- package/dist/commands/insights/category/unlink.js.map +1 -0
- package/dist/commands/insights/category/update.d.ts +16 -0
- package/dist/commands/insights/category/update.js +44 -0
- package/dist/commands/insights/category/update.js.map +1 -0
- package/dist/commands/insights/feedback/list.d.ts +19 -0
- package/dist/commands/insights/feedback/list.js +72 -0
- package/dist/commands/insights/feedback/list.js.map +1 -0
- package/dist/commands/insights/intent/list.d.ts +22 -0
- package/dist/commands/insights/intent/list.js +88 -0
- package/dist/commands/insights/intent/list.js.map +1 -0
- package/dist/commands/link.js +1 -0
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/login.js +7 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/logs.js +1 -9
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/playground/example-prompt/add.js +1 -1
- package/dist/commands/team/inspect.js +17 -2
- package/dist/commands/team/inspect.js.map +1 -1
- package/dist/commands/tunnel.js +25 -61
- package/dist/commands/tunnel.js.map +1 -1
- package/dist/commands/whoami.js +1 -1
- package/dist/commands/whoami.js.map +1 -1
- package/dist/lib/alpic-command.js +17 -5
- package/dist/lib/alpic-command.js.map +1 -1
- package/dist/lib/alpic-sdk.d.ts +2 -0
- package/dist/lib/alpic-sdk.js +8 -0
- package/dist/lib/alpic-sdk.js.map +1 -0
- package/dist/lib/audit.js +6 -3
- package/dist/lib/audit.js.map +1 -1
- package/dist/lib/deployment.d.ts +0 -21
- package/dist/lib/deployment.js +9 -58
- package/dist/lib/deployment.js.map +1 -1
- package/dist/lib/environment-variable.js +1 -0
- package/dist/lib/environment-variable.js.map +1 -1
- package/dist/lib/insights.d.ts +17 -0
- package/dist/lib/insights.js +54 -0
- package/dist/lib/insights.js.map +1 -0
- package/dist/lib/link.d.ts +1 -2
- package/dist/lib/link.js +16 -71
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/logs.js +4 -5
- package/dist/lib/logs.js.map +1 -1
- package/dist/lib/playground.js +2 -2
- package/dist/lib/project-settings.d.ts +7 -0
- package/dist/lib/project-settings.js +140 -0
- package/dist/lib/project-settings.js.map +1 -0
- package/dist/lib/project-settings.test.d.ts +1 -0
- package/dist/lib/project-settings.test.js +56 -0
- package/dist/lib/project-settings.test.js.map +1 -0
- package/dist/lib/resolve.js +4 -5
- package/dist/lib/resolve.js.map +1 -1
- package/dist/lib/telemetry.js +24 -17
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/utils.d.ts +9 -1
- package/dist/lib/utils.js +28 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/utils.test.js +43 -5
- package/dist/lib/utils.test.js.map +1 -1
- package/dist/lib/whoami.js +17 -0
- package/dist/lib/whoami.js.map +1 -0
- package/dist/sentry.js +3 -6
- package/dist/sentry.js.map +1 -1
- package/package.json +28 -32
- package/dist/lib/archive.d.ts +0 -7
- package/dist/lib/archive.js +0 -57
- package/dist/lib/archive.js.map +0 -1
- package/dist/lib/auth/auth.d.ts +0 -5
- package/dist/lib/auth/auth.js +0 -50
- package/dist/lib/auth/auth.js.map +0 -1
- package/dist/lib/auth/oauth/client.d.ts +0 -28
- package/dist/lib/auth/oauth/client.js +0 -116
- package/dist/lib/auth/oauth/client.js.map +0 -1
- package/dist/lib/auth/oauth/constants.d.ts +0 -2
- package/dist/lib/auth/oauth/constants.js +0 -3
- package/dist/lib/auth/oauth/constants.js.map +0 -1
- package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
- package/dist/lib/auth/oauth/server/assets/authorize.html +0 -234
- package/dist/lib/auth/oauth/server/assets/callback.html +0 -88
- package/dist/lib/auth/oauth/server/index.d.ts +0 -9
- package/dist/lib/auth/oauth/server/index.js +0 -128
- package/dist/lib/auth/oauth/server/index.js.map +0 -1
- package/dist/lib/auth/whoami.js +0 -47
- package/dist/lib/auth/whoami.js.map +0 -1
- package/dist/lib/config.d.ts +0 -12
- package/dist/lib/config.js +0 -32
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/global-store.d.ts +0 -28
- package/dist/lib/global-store.js +0 -76
- package/dist/lib/global-store.js.map +0 -1
- package/dist/lib/upload.d.ts +0 -1
- package/dist/lib/upload.js +0 -13
- package/dist/lib/upload.js.map +0 -1
- package/dist/lib/vendor/pipenet.d.ts +0 -1
- package/dist/lib/vendor/pipenet.js +0 -15626
- package/dist/lib/vendor/pipenet.js.LEGAL.txt +0 -17
- package/dist/lib/vendor/pipenet.js.map +0 -7
- package/dist/types.d.ts +0 -8
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- /package/dist/lib/{auth/whoami.d.ts → whoami.d.ts} +0 -0
package/dist/commands/deploy.js
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { readFileSync, rmSync } from "node:fs";
|
|
2
1
|
import * as p from "@clack/prompts";
|
|
3
2
|
import { Flags } from "@oclif/core";
|
|
4
3
|
import chalk from "chalk";
|
|
5
|
-
import { api } from "../api.js";
|
|
6
4
|
import { AlpicCommand } from "../lib/alpic-command.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
5
|
+
import { alpic } from "../lib/alpic-sdk.js";
|
|
6
|
+
import { formatElapsed } from "../lib/deployment.js";
|
|
9
7
|
import { LinkWorkflow, RUNTIMES } from "../lib/link.js";
|
|
10
|
-
import {
|
|
8
|
+
import { detectProjectSettings } from "../lib/project-settings.js";
|
|
11
9
|
export class Deploy extends AlpicCommand {
|
|
12
10
|
static description = "Deploy a project to Alpic";
|
|
13
11
|
static examples = [
|
|
@@ -50,6 +48,7 @@ export class Deploy extends AlpicCommand {
|
|
|
50
48
|
const linkWorkflowFlags = {
|
|
51
49
|
"non-interactive": flags["non-interactive"],
|
|
52
50
|
projectName: flags["project-name"],
|
|
51
|
+
// biome-ignore lint/plugin/no-type-assertion: Oclif validates runtime flag values against the configured options.
|
|
53
52
|
runtime: flags.runtime,
|
|
54
53
|
rootDir: flags["root-dir"],
|
|
55
54
|
teamId: flags["team-id"],
|
|
@@ -65,54 +64,49 @@ export class Deploy extends AlpicCommand {
|
|
|
65
64
|
throw new Error("Deploy cancelled");
|
|
66
65
|
}
|
|
67
66
|
const spinner = this.spinner();
|
|
68
|
-
let
|
|
67
|
+
let elapsedInterval;
|
|
68
|
+
let deployingStarted = false;
|
|
69
|
+
let result;
|
|
69
70
|
try {
|
|
70
|
-
|
|
71
|
-
const files = getFilesToPack();
|
|
72
|
-
spinner.stop(`Collected ${files.length} file${files.length === 1 ? "" : "s"}`);
|
|
73
|
-
const result = await createTarArchive(files);
|
|
74
|
-
tmpDir = result.tmpDir;
|
|
75
|
-
const archivePath = result.archivePath;
|
|
76
|
-
const { uploadUrl, token } = await api.deployments.uploadArtifact.v1({ teamId: projectConfig.teamId });
|
|
77
|
-
spinner.start("Uploading source...");
|
|
78
|
-
const buffer = readFileSync(archivePath);
|
|
79
|
-
await uploadToPresignedUrl(uploadUrl, buffer);
|
|
80
|
-
spinner.stop("Upload complete");
|
|
81
|
-
spinner.start("Triggering deployment...");
|
|
82
|
-
const deployStartedAt = Date.now();
|
|
83
|
-
const initialDeployment = await api.environments.deploy.v1({
|
|
71
|
+
result = await alpic.deployments.deploy({
|
|
84
72
|
environmentId: projectConfig.environmentId,
|
|
85
|
-
|
|
73
|
+
teamId: projectConfig.teamId,
|
|
74
|
+
detectSettings: (files) => detectProjectSettings(process.cwd(), files),
|
|
75
|
+
onProgress: (event) => {
|
|
76
|
+
switch (event.type) {
|
|
77
|
+
case "collecting":
|
|
78
|
+
spinner.start("Collecting source files...");
|
|
79
|
+
break;
|
|
80
|
+
case "collected":
|
|
81
|
+
spinner.stop(`Collected ${event.fileCount} file${event.fileCount === 1 ? "" : "s"}`);
|
|
82
|
+
break;
|
|
83
|
+
case "uploading":
|
|
84
|
+
spinner.start("Uploading source...");
|
|
85
|
+
break;
|
|
86
|
+
case "triggering":
|
|
87
|
+
spinner.stop("Upload complete");
|
|
88
|
+
spinner.start("Triggering deployment...");
|
|
89
|
+
break;
|
|
90
|
+
case "deploying":
|
|
91
|
+
if (deployingStarted) {
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
deployingStarted = true;
|
|
95
|
+
spinner.stop("Deployment started");
|
|
96
|
+
if (event.deploymentPageUrl) {
|
|
97
|
+
p.note(`🔗 ${event.deploymentPageUrl}`, "View deployment details:", { format: (line) => line });
|
|
98
|
+
}
|
|
99
|
+
spinner.start("Deployment in progress");
|
|
100
|
+
{
|
|
101
|
+
const startedAt = Date.now() - event.elapsedMs;
|
|
102
|
+
elapsedInterval = setInterval(() => {
|
|
103
|
+
spinner.message(`Deployment in progress — ${formatElapsed(Date.now() - startedAt)}`);
|
|
104
|
+
}, 1000);
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
86
109
|
});
|
|
87
|
-
spinner.stop("Deployment started");
|
|
88
|
-
const { deployment, elapsedMs } = await deployAndWait({
|
|
89
|
-
initial: initialDeployment,
|
|
90
|
-
startedAt: deployStartedAt,
|
|
91
|
-
});
|
|
92
|
-
const elapsedStr = formatElapsed(elapsedMs);
|
|
93
|
-
if (deployment.status !== "deployed") {
|
|
94
|
-
throw new Error("Deployment failed");
|
|
95
|
-
}
|
|
96
|
-
const environment = await api.environments.get.v1({ environmentId: projectConfig.environmentId });
|
|
97
|
-
const urls = environment.mcpServerUrl ? [environment.mcpServerUrl] : environment.domains;
|
|
98
|
-
const playgroundUrl = environment.mcpServerUrl ? `${environment.mcpServerUrl.replace(/\/$/, "")}/try` : null;
|
|
99
|
-
const teamLine = projectConfig.teamName ? chalk.dim(`Team: ${projectConfig.teamName}`) : null;
|
|
100
|
-
p.box([
|
|
101
|
-
teamLine,
|
|
102
|
-
...urls.map((url) => chalk.bold(`🔗 ${url}`)),
|
|
103
|
-
playgroundUrl ? `\n${chalk.dim("Playground:")} ${chalk.cyan(playgroundUrl)}` : null,
|
|
104
|
-
"",
|
|
105
|
-
`Completed in ${elapsedStr}`,
|
|
106
|
-
]
|
|
107
|
-
.filter(Boolean)
|
|
108
|
-
.join("\n"), "Deployment summary:", {
|
|
109
|
-
contentAlign: "center",
|
|
110
|
-
titleAlign: "center",
|
|
111
|
-
width: "auto",
|
|
112
|
-
rounded: true,
|
|
113
|
-
contentPadding: 3,
|
|
114
|
-
});
|
|
115
|
-
p.log.info(`View build logs: ${chalk.cyan(`alpic deployment logs --deployment-id ${deployment.id}`)}`);
|
|
116
110
|
}
|
|
117
111
|
catch (error) {
|
|
118
112
|
spinner.stop();
|
|
@@ -120,10 +114,33 @@ export class Deploy extends AlpicCommand {
|
|
|
120
114
|
throw new Error(`Error: ${message}`);
|
|
121
115
|
}
|
|
122
116
|
finally {
|
|
123
|
-
if (
|
|
124
|
-
|
|
117
|
+
if (elapsedInterval) {
|
|
118
|
+
clearInterval(elapsedInterval);
|
|
125
119
|
}
|
|
126
120
|
}
|
|
121
|
+
spinner.stop(result.status === "deployed" ? chalk.green("Deployment completed") : chalk.red("Deployment failed"));
|
|
122
|
+
if (result.status !== "deployed") {
|
|
123
|
+
throw new Error("Deployment failed");
|
|
124
|
+
}
|
|
125
|
+
const urls = result.mcpServerUrl ? [result.mcpServerUrl] : result.domains;
|
|
126
|
+
const playgroundUrl = result.mcpServerUrl ? `${result.mcpServerUrl.replace(/\/$/, "")}/try` : null;
|
|
127
|
+
const teamLine = projectConfig.teamName ? chalk.dim(`Team: ${projectConfig.teamName}`) : null;
|
|
128
|
+
p.box([
|
|
129
|
+
teamLine,
|
|
130
|
+
...urls.map((url) => chalk.bold(`🔗 ${url}`)),
|
|
131
|
+
playgroundUrl ? `\n${chalk.dim("Playground:")} ${chalk.cyan(playgroundUrl)}` : null,
|
|
132
|
+
"",
|
|
133
|
+
`Completed in ${formatElapsed(result.elapsedMs)}`,
|
|
134
|
+
]
|
|
135
|
+
.filter(Boolean)
|
|
136
|
+
.join("\n"), "Deployment summary:", {
|
|
137
|
+
contentAlign: "center",
|
|
138
|
+
titleAlign: "center",
|
|
139
|
+
width: "auto",
|
|
140
|
+
rounded: true,
|
|
141
|
+
contentPadding: 3,
|
|
142
|
+
});
|
|
143
|
+
p.log.info(`View build logs: ${chalk.cyan(`alpic deployment logs --deployment-id ${result.deploymentId}`)}`);
|
|
127
144
|
}
|
|
128
145
|
}
|
|
129
146
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Flags } from "@oclif/core";
|
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import { api } from "../../api.js";
|
|
5
5
|
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
6
|
-
import {
|
|
6
|
+
import { alpic } from "../../lib/alpic-sdk.js";
|
|
7
7
|
import { confirmLinkAnotherIfAlreadyConnected, GitWorkflow, isGitRepository, listGithubRemotes, promptGithubAppInstallation, showGitSetupInstructions, } from "../../lib/git.js";
|
|
8
8
|
export default class GitConnect extends AlpicCommand {
|
|
9
9
|
static description = "Connect a linked Alpic project to a git remote source";
|
|
@@ -21,7 +21,7 @@ export default class GitConnect extends AlpicCommand {
|
|
|
21
21
|
const { flags } = await this.parse(GitConnect);
|
|
22
22
|
p.intro("Connecting git repository to Alpic");
|
|
23
23
|
await this.ensureAuthenticated(flags);
|
|
24
|
-
const linkedConfig =
|
|
24
|
+
const linkedConfig = alpic.projects.loadConfig();
|
|
25
25
|
if (!linkedConfig) {
|
|
26
26
|
throw new Error("This directory is not linked to an Alpic project. Link it first using `alpic link`.");
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/git/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/git/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EACL,oCAAoC,EACpC,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAY;IAClD,MAAM,CAAU,WAAW,GAAG,uDAAuD,CAAC;IAEtF,MAAM,CAAU,QAAQ,GAAG;QACzB,+BAA+B;QAC/B,iDAAiD;QACjD,oDAAoD;KACrD,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,+BAA+B;SAC7C,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACzG,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACvB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;YACzD,wBAAwB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC;YAChE,wBAAwB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,MAAM,oCAAoC,CAAC,OAAO,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC;YAC/B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;YAC3C,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;SACjC,CAAC,CAAC;QACH,MAAM,wBAAwB,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAEtF,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,wBAAwB;SAC3C,CAAC,CAAC;QAEH,MAAM,2BAA2B,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAAC;QAErE,CAAC,CAAC,KAAK,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzG,CAAC"}
|
|
@@ -2,7 +2,7 @@ import * as p from "@clack/prompts";
|
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { api } from "../../api.js";
|
|
4
4
|
import { AlpicCommand } from "../../lib/alpic-command.js";
|
|
5
|
-
import {
|
|
5
|
+
import { alpic } from "../../lib/alpic-sdk.js";
|
|
6
6
|
import { GitWorkflow } from "../../lib/git.js";
|
|
7
7
|
export default class GitDisconnect extends AlpicCommand {
|
|
8
8
|
static description = "Disconnect a linked Alpic project from its git remote source";
|
|
@@ -11,7 +11,7 @@ export default class GitDisconnect extends AlpicCommand {
|
|
|
11
11
|
const { flags } = await this.parse(GitDisconnect);
|
|
12
12
|
p.intro("Disconnecting git repository from Alpic");
|
|
13
13
|
await this.ensureAuthenticated(flags);
|
|
14
|
-
const linkedConfig =
|
|
14
|
+
const linkedConfig = alpic.projects.loadConfig();
|
|
15
15
|
if (!linkedConfig) {
|
|
16
16
|
throw new Error("This directory is not linked to an Alpic project. Link it first using `alpic link`.");
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../src/commands/git/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"disconnect.js","sourceRoot":"","sources":["../../../src/commands/git/disconnect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,YAAY;IACrD,MAAM,CAAU,WAAW,GAAG,8DAA8D,CAAC;IAE7F,MAAM,CAAU,QAAQ,GAAG,CAAC,kCAAkC,EAAE,oDAAoD,CAAC,CAAC;IAEtH,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;QACzG,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,YAAY,CAAC,SAAS;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,uCAAuC,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,CAAC,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9G,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export declare class InsightsCategoryCreate extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
color: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
"intent-id": import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"project-name": 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>;
|
|
13
|
+
"environment-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
private resolveName;
|
|
17
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { INTENT_CATEGORY_COLORS } from "@alpic-ai/api";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
import { Flags } from "@oclif/core";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { api } from "../../../api.js";
|
|
6
|
+
import { isAgentMode } from "../../../lib/agent-mode.js";
|
|
7
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
8
|
+
import { parseIntentCategoryColor } from "../../../lib/insights.js";
|
|
9
|
+
import { environmentFlags, projectFlags, resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
10
|
+
export class InsightsCategoryCreate extends AlpicCommand {
|
|
11
|
+
static description = "Create an intent category";
|
|
12
|
+
static examples = [
|
|
13
|
+
"<%= config.bin %> insights category create",
|
|
14
|
+
"<%= config.bin %> insights category create --name Scheduling --color blue",
|
|
15
|
+
"<%= config.bin %> insights category create --name Scheduling --intent-id <intentId>",
|
|
16
|
+
];
|
|
17
|
+
static flags = {
|
|
18
|
+
...environmentFlags,
|
|
19
|
+
...projectFlags,
|
|
20
|
+
name: Flags.string({ description: "The category name" }),
|
|
21
|
+
color: Flags.string({
|
|
22
|
+
description: "The category color; derived from the name when omitted",
|
|
23
|
+
options: [...INTENT_CATEGORY_COLORS],
|
|
24
|
+
}),
|
|
25
|
+
"intent-id": Flags.string({ description: "Link the new category to this intent ID", multiple: true }),
|
|
26
|
+
json: Flags.boolean({ description: "Print the unmodified API response as JSON", default: false }),
|
|
27
|
+
};
|
|
28
|
+
async run() {
|
|
29
|
+
const { flags } = await this.parse(InsightsCategoryCreate);
|
|
30
|
+
await this.ensureAuthenticated(flags);
|
|
31
|
+
const environmentId = await resolveEnvironmentId(flags);
|
|
32
|
+
const name = await this.resolveName(flags);
|
|
33
|
+
const spinner = this.spinner();
|
|
34
|
+
spinner.start("Creating category...");
|
|
35
|
+
const category = await api.intentCategories.create.v1({
|
|
36
|
+
environmentId,
|
|
37
|
+
name,
|
|
38
|
+
color: parseIntentCategoryColor(flags.color),
|
|
39
|
+
intentIds: flags["intent-id"],
|
|
40
|
+
});
|
|
41
|
+
spinner.stop(`Created ${chalk.cyan(category.name)} (${category.color}). ✅`);
|
|
42
|
+
if (flags.json) {
|
|
43
|
+
this.log(JSON.stringify(category));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async resolveName(flags) {
|
|
47
|
+
if (flags.name !== undefined) {
|
|
48
|
+
return flags.name;
|
|
49
|
+
}
|
|
50
|
+
if (flags["non-interactive"] || isAgentMode()) {
|
|
51
|
+
throw new Error("--name is required in non-interactive mode.");
|
|
52
|
+
}
|
|
53
|
+
const name = await p.text({
|
|
54
|
+
message: "Category name",
|
|
55
|
+
validate: (value) => (value === undefined || value.trim().length === 0 ? "Name cannot be empty." : undefined),
|
|
56
|
+
});
|
|
57
|
+
if (p.isCancel(name)) {
|
|
58
|
+
throw new Error("Cancelled.");
|
|
59
|
+
}
|
|
60
|
+
return name;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/insights/category/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export declare class InsightsCategoryDelete extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"category-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
"project-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
"environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
"environment-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { api } from "../../../api.js";
|
|
4
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
5
|
+
import { categoryFlags, resolveIntentCategory } from "../../../lib/insights.js";
|
|
6
|
+
import { environmentFlags, projectFlags, resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
7
|
+
import { plural } from "../../../lib/utils.js";
|
|
8
|
+
export class InsightsCategoryDelete extends AlpicCommand {
|
|
9
|
+
static description = "Delete an intent category; its intents are unlinked but not deleted";
|
|
10
|
+
static examples = [
|
|
11
|
+
"<%= config.bin %> insights category delete",
|
|
12
|
+
"<%= config.bin %> insights category delete --category-id <categoryId>",
|
|
13
|
+
"<%= config.bin %> insights category delete --category-id <categoryId> --non-interactive",
|
|
14
|
+
];
|
|
15
|
+
static flags = {
|
|
16
|
+
...environmentFlags,
|
|
17
|
+
...projectFlags,
|
|
18
|
+
...categoryFlags,
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { flags } = await this.parse(InsightsCategoryDelete);
|
|
22
|
+
await this.ensureAuthenticated(flags);
|
|
23
|
+
const environmentId = await resolveEnvironmentId(flags);
|
|
24
|
+
const category = await resolveIntentCategory(environmentId, flags, "delete");
|
|
25
|
+
if (!flags["non-interactive"]) {
|
|
26
|
+
const confirmed = await p.confirm({
|
|
27
|
+
message: `Delete ${chalk.cyan(category.name)}? It will be unlinked from ${plural(category.intentCount, "intent")}.`,
|
|
28
|
+
initialValue: false,
|
|
29
|
+
});
|
|
30
|
+
if (p.isCancel(confirmed) || !confirmed) {
|
|
31
|
+
throw new Error("Cancelled.");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const spinner = this.spinner();
|
|
35
|
+
spinner.start("Deleting category...");
|
|
36
|
+
await api.intentCategories.delete.v1({ environmentId, categoryId: category.id });
|
|
37
|
+
spinner.stop(`Deleted ${chalk.cyan(category.name)}. ✅`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/commands/insights/category/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,MAAM,CAAU,WAAW,GAAG,qEAAqE,CAAC;IAEpG,MAAM,CAAU,QAAQ,GAAG;QACzB,4CAA4C;QAC5C,uEAAuE;QACvE,yFAAyF;KAC1F,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,gBAAgB;QACnB,GAAG,YAAY;QACf,GAAG,aAAa;KACjB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3D,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE7E,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;gBAChC,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG;gBACnH,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtC,MAAM,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjF,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export declare class InsightsCategoryLink extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"intent-id": import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
"category-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
"project-id": 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
|
+
"environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"environment-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { api } from "../../../api.js";
|
|
4
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
5
|
+
import { categoryFlags, resolveIntentCategory } from "../../../lib/insights.js";
|
|
6
|
+
import { environmentFlags, projectFlags, resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
7
|
+
import { plural } from "../../../lib/utils.js";
|
|
8
|
+
export class InsightsCategoryLink extends AlpicCommand {
|
|
9
|
+
static description = "Link an intent category to intents";
|
|
10
|
+
static examples = [
|
|
11
|
+
"<%= config.bin %> insights category link --intent-id <intentId>",
|
|
12
|
+
"<%= config.bin %> insights category link --category-id <categoryId> --intent-id <intentId> --intent-id <intentId>",
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
...environmentFlags,
|
|
16
|
+
...projectFlags,
|
|
17
|
+
...categoryFlags,
|
|
18
|
+
"intent-id": Flags.string({ description: "The ID of an intent to link", multiple: true, required: true }),
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { flags } = await this.parse(InsightsCategoryLink);
|
|
22
|
+
await this.ensureAuthenticated(flags);
|
|
23
|
+
const environmentId = await resolveEnvironmentId(flags);
|
|
24
|
+
const category = await resolveIntentCategory(environmentId, flags, "link");
|
|
25
|
+
const intentIds = [...new Set(flags["intent-id"])];
|
|
26
|
+
const spinner = this.spinner();
|
|
27
|
+
spinner.start("Linking intents...");
|
|
28
|
+
await api.intentCategories.link.v1({
|
|
29
|
+
environmentId,
|
|
30
|
+
categoryId: category.id,
|
|
31
|
+
intentIds,
|
|
32
|
+
});
|
|
33
|
+
spinner.stop(`Linked ${plural(intentIds.length, "intent")} to ${chalk.cyan(category.name)}. ✅`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../src/commands/insights/category/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,MAAM,CAAU,WAAW,GAAG,oCAAoC,CAAC;IAEnE,MAAM,CAAU,QAAQ,GAAG;QACzB,iEAAiE;QACjE,mHAAmH;KACpH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,gBAAgB;QACnB,GAAG,YAAY;QACf,GAAG,aAAa;QAChB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC1G,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEpC,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,aAAa;YACb,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,SAAS;SACV,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClG,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export declare class InsightsCategoryList extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
"project-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
"environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
"environment-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import { Flags } from "@oclif/core";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import { api } from "../../../api.js";
|
|
5
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
6
|
+
import { pluralCategories } from "../../../lib/insights.js";
|
|
7
|
+
import { environmentFlags, projectFlags, resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
8
|
+
import { formatTable } from "../../../lib/table.js";
|
|
9
|
+
export class InsightsCategoryList extends AlpicCommand {
|
|
10
|
+
static description = "List intent categories for an environment";
|
|
11
|
+
static examples = [
|
|
12
|
+
"<%= config.bin %> insights category list",
|
|
13
|
+
"<%= config.bin %> insights category list --environment-id <environmentId>",
|
|
14
|
+
"<%= config.bin %> insights category list --json --non-interactive",
|
|
15
|
+
];
|
|
16
|
+
static flags = {
|
|
17
|
+
...environmentFlags,
|
|
18
|
+
...projectFlags,
|
|
19
|
+
json: Flags.boolean({ description: "Print the unmodified API response as JSON", default: false }),
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { flags } = await this.parse(InsightsCategoryList);
|
|
23
|
+
await this.ensureAuthenticated(flags);
|
|
24
|
+
const environmentId = await resolveEnvironmentId(flags);
|
|
25
|
+
const spinner = this.spinner();
|
|
26
|
+
spinner.start("Fetching categories...");
|
|
27
|
+
const categories = await api.intentCategories.list.v1({ environmentId });
|
|
28
|
+
spinner.stop(`Found ${pluralCategories(categories.length)}`);
|
|
29
|
+
if (flags.json) {
|
|
30
|
+
this.log(JSON.stringify(categories));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (categories.length === 0) {
|
|
34
|
+
p.log.info("No intent categories found in this environment.");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log(formatTable(categories, [
|
|
38
|
+
{ key: "name", header: "name", format: (value) => chalk.bold(value) },
|
|
39
|
+
{ key: "color", header: "color", format: (value) => chalk.gray(value) },
|
|
40
|
+
{ key: "intentCount", header: "intents", format: (value) => chalk.gray(value) },
|
|
41
|
+
{ key: "id", header: "id", format: (value) => chalk.gray(value) },
|
|
42
|
+
]));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/insights/category/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,MAAM,CAAU,WAAW,GAAG,2CAA2C,CAAC;IAE1E,MAAM,CAAU,QAAQ,GAAG;QACzB,0CAA0C;QAC1C,2EAA2E;QAC3E,mEAAmE;KACpE,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,gBAAgB;QACnB,GAAG,YAAY;QACf,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,2CAA2C,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KAClG,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QAEzE,OAAO,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE7D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CACT,WAAW,CAAC,UAAU,EAAE;YACtB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACvE,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC/E,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;SAClE,CAAC,CACH,CAAC;IACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export declare class InsightsCategoryUnlink extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
"intent-id": import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
"category-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
"project-id": 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
|
+
"environment-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"environment-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { api } from "../../../api.js";
|
|
4
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
5
|
+
import { categoryFlags, resolveIntentCategory } from "../../../lib/insights.js";
|
|
6
|
+
import { environmentFlags, projectFlags, resolveEnvironmentId } from "../../../lib/resolve.js";
|
|
7
|
+
import { plural } from "../../../lib/utils.js";
|
|
8
|
+
export class InsightsCategoryUnlink extends AlpicCommand {
|
|
9
|
+
static description = "Unlink an intent category from intents";
|
|
10
|
+
static examples = [
|
|
11
|
+
"<%= config.bin %> insights category unlink --intent-id <intentId>",
|
|
12
|
+
"<%= config.bin %> insights category unlink --category-id <categoryId> --intent-id <intentId> --intent-id <intentId>",
|
|
13
|
+
];
|
|
14
|
+
static flags = {
|
|
15
|
+
...environmentFlags,
|
|
16
|
+
...projectFlags,
|
|
17
|
+
...categoryFlags,
|
|
18
|
+
"intent-id": Flags.string({ description: "The ID of an intent to unlink", multiple: true, required: true }),
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { flags } = await this.parse(InsightsCategoryUnlink);
|
|
22
|
+
await this.ensureAuthenticated(flags);
|
|
23
|
+
const environmentId = await resolveEnvironmentId(flags);
|
|
24
|
+
const category = await resolveIntentCategory(environmentId, flags, "unlink");
|
|
25
|
+
const intentIds = [...new Set(flags["intent-id"])];
|
|
26
|
+
const spinner = this.spinner();
|
|
27
|
+
spinner.start("Unlinking intents...");
|
|
28
|
+
await api.intentCategories.unlink.v1({
|
|
29
|
+
environmentId,
|
|
30
|
+
categoryId: category.id,
|
|
31
|
+
intentIds,
|
|
32
|
+
});
|
|
33
|
+
spinner.stop(`Unlinked ${plural(intentIds.length, "intent")} from ${chalk.cyan(category.name)}. ✅`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=unlink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlink.js","sourceRoot":"","sources":["../../../../src/commands/insights/category/unlink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,OAAO,sBAAuB,SAAQ,YAAY;IACtD,MAAM,CAAU,WAAW,GAAG,wCAAwC,CAAC;IAEvE,MAAM,CAAU,QAAQ,GAAG;QACzB,mEAAmE;QACnE,qHAAqH;KACtH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,gBAAgB;QACnB,GAAG,YAAY;QACf,GAAG,aAAa;QAChB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC5G,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAE3D,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEtC,MAAM,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,aAAa;YACb,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,SAAS;SACV,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtG,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AlpicCommand } from "../../../lib/alpic-command.js";
|
|
2
|
+
export declare class InsightsCategoryUpdate extends AlpicCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
color: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
"category-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
"project-id": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"project-name": 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>;
|
|
13
|
+
"environment-name": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|