@datagusto/cli 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +186 -2
- package/bin/run.js +5 -0
- package/dist/adapters/claude-code.d.ts +47 -0
- package/dist/adapters/claude-code.js +533 -0
- package/dist/adapters/claude-code.js.map +1 -0
- package/dist/adapters/claude-settings.d.ts +29 -0
- package/dist/adapters/claude-settings.js +115 -0
- package/dist/adapters/claude-settings.js.map +1 -0
- package/dist/adapters/index.d.ts +10 -0
- package/dist/adapters/index.js +37 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/kiro-agent.d.ts +29 -0
- package/dist/adapters/kiro-agent.js +124 -0
- package/dist/adapters/kiro-agent.js.map +1 -0
- package/dist/adapters/kiro.d.ts +24 -0
- package/dist/adapters/kiro.js +740 -0
- package/dist/adapters/kiro.js.map +1 -0
- package/dist/adapters/types.d.ts +79 -0
- package/dist/adapters/types.js +14 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/api/client.d.ts +36 -0
- package/dist/api/client.js +85 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/errors.d.ts +4 -0
- package/dist/api/errors.js +25 -0
- package/dist/api/errors.js.map +1 -0
- package/dist/commands/remove.d.ts +13 -0
- package/dist/commands/remove.js +59 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/setup.d.ts +16 -0
- package/dist/commands/setup.js +114 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.js +53 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/display.d.ts +2 -0
- package/dist/display.js +8 -0
- package/dist/display.js.map +1 -0
- package/dist/fs/atomic.d.ts +17 -0
- package/dist/fs/atomic.js +41 -0
- package/dist/fs/atomic.js.map +1 -0
- package/dist/key-input.d.ts +24 -0
- package/dist/key-input.js +96 -0
- package/dist/key-input.js.map +1 -0
- package/dist/state/installs.d.ts +24 -0
- package/dist/state/installs.js +110 -0
- package/dist/state/installs.js.map +1 -0
- package/dist/vendor.d.ts +16 -0
- package/dist/vendor.js +60 -0
- package/dist/vendor.js.map +1 -0
- package/package.json +57 -4
- package/vendor/claude_code/.claude-plugin/plugin.json +55 -0
- package/vendor/claude_code/README.md +267 -0
- package/vendor/claude_code/dist/api-client.js +82 -0
- package/vendor/claude_code/dist/builtin-tools.generated.js +33 -0
- package/vendor/claude_code/dist/extractors.js +201 -0
- package/vendor/claude_code/dist/index.js +695 -0
- package/vendor/claude_code/dist/monitoring.js +66 -0
- package/vendor/claude_code/dist/state.js +71 -0
- package/vendor/claude_code/dist/types.js +5 -0
- package/vendor/claude_code/hooks/hooks.json +25 -0
- package/vendor/claude_code/package.json +26 -0
- package/vendor/kiro/.kiro/agents/kiro_default.json +20 -0
- package/vendor/kiro/.kiro/hooks/datagusto-post-tool-use.json +10 -0
- package/vendor/kiro/.kiro/hooks/datagusto-pre-tool-use.json +10 -0
- package/vendor/kiro/.kiro/hooks/datagusto-session-start.json +10 -0
- package/vendor/kiro/.kiro/hooks/datagusto-stop.json +10 -0
- package/vendor/kiro/.kiro/hooks/datagusto-user-prompt-submit.json +10 -0
- package/vendor/kiro/dist/api-client.js +82 -0
- package/vendor/kiro/dist/builtin-tools.generated.js +87 -0
- package/vendor/kiro/dist/engine.js +65 -0
- package/vendor/kiro/dist/extractors.js +201 -0
- package/vendor/kiro/dist/index.js +735 -0
- package/vendor/kiro/dist/monitoring.js +66 -0
- package/vendor/kiro/dist/state.js +71 -0
- package/vendor/kiro/dist/types.js +5 -0
- package/vendor/kiro/package.json +25 -0
- package/vendor/manifest.json +42 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kiro.js","sourceRoot":"","sources":["../../src/adapters/kiro.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { InstallRecord } from "../state/installs.js";
|
|
2
|
+
export declare const AGENT_NAMES: readonly ["claude-code", "kiro", "codex"];
|
|
3
|
+
export type AgentName = (typeof AGENT_NAMES)[number];
|
|
4
|
+
export interface AdapterContext {
|
|
5
|
+
homeDir: string;
|
|
6
|
+
/** Kiro only: the workspace whose .kiro/hooks get the plugin. */
|
|
7
|
+
workspace?: string;
|
|
8
|
+
cliVersion: string;
|
|
9
|
+
/** Where the bundled plugin builds live (cli/vendor/). */
|
|
10
|
+
vendorDir: string;
|
|
11
|
+
/** Used for PATH lookups; process.env outside tests. */
|
|
12
|
+
env: NodeJS.ProcessEnv;
|
|
13
|
+
}
|
|
14
|
+
/** What the plugin's existing config file needs (claude-code.json, kiro.json). */
|
|
15
|
+
export interface PluginConnection {
|
|
16
|
+
serverUrl: string;
|
|
17
|
+
apiKey: string;
|
|
18
|
+
/** Datagusto agent UUID from whoami, recorded in the installs ledger. */
|
|
19
|
+
agentId: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DetectResult {
|
|
22
|
+
/** The agent tool looks installed on this machine / in this workspace. */
|
|
23
|
+
found: boolean;
|
|
24
|
+
/** Plain-English reason, shown when `found` is false. */
|
|
25
|
+
detail?: string;
|
|
26
|
+
}
|
|
27
|
+
/** One change setup will make, shown to the user before it happens. */
|
|
28
|
+
export interface PlannedChange {
|
|
29
|
+
kind: "create-file" | "update-file" | "copy-dir" | "merge-json" | "remove";
|
|
30
|
+
path: string;
|
|
31
|
+
description: string;
|
|
32
|
+
}
|
|
33
|
+
export interface InstallPlan {
|
|
34
|
+
agent: AgentName;
|
|
35
|
+
changes: PlannedChange[];
|
|
36
|
+
}
|
|
37
|
+
export type CheckStatus = "ok" | "warn" | "fail";
|
|
38
|
+
export interface DoctorCheck {
|
|
39
|
+
name: string;
|
|
40
|
+
status: CheckStatus;
|
|
41
|
+
/** What is wrong and what to do next, for warn / fail. */
|
|
42
|
+
detail?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface DoctorReport {
|
|
45
|
+
agent: AgentName;
|
|
46
|
+
/** Datagusto agent name from whoami, when the key still works. */
|
|
47
|
+
agentName?: string;
|
|
48
|
+
checks: DoctorCheck[];
|
|
49
|
+
}
|
|
50
|
+
export interface ClearResult {
|
|
51
|
+
removed: string[];
|
|
52
|
+
/** Files that dg removed its own entries from (e.g. settings.json). */
|
|
53
|
+
edited: string[];
|
|
54
|
+
/** Recorded paths left alone because they no longer look like ours. */
|
|
55
|
+
skipped: string[];
|
|
56
|
+
}
|
|
57
|
+
/** A problem setup or remove can explain; the message says what to do. */
|
|
58
|
+
export declare class AdapterError extends Error {
|
|
59
|
+
name: string;
|
|
60
|
+
}
|
|
61
|
+
export interface AgentAdapter {
|
|
62
|
+
readonly name: AgentName;
|
|
63
|
+
readonly displayName: string;
|
|
64
|
+
/** True when every workspace gets its own install (Kiro). */
|
|
65
|
+
readonly perWorkspace?: boolean;
|
|
66
|
+
detect(ctx: AdapterContext): Promise<DetectResult>;
|
|
67
|
+
/** Refuse, before the user is asked for a key, what plan() would refuse anyway. */
|
|
68
|
+
preflight?(ctx: AdapterContext): Promise<void>;
|
|
69
|
+
plan(ctx: AdapterContext, conn: PluginConnection): Promise<InstallPlan>;
|
|
70
|
+
/** Carry out a plan. Must leave the machine unchanged if it throws. */
|
|
71
|
+
apply(ctx: AdapterContext, plan: InstallPlan, conn: PluginConnection): Promise<InstallRecord>;
|
|
72
|
+
/** Undo exactly what apply() recorded, and nothing else. */
|
|
73
|
+
clear(ctx: AdapterContext, record: InstallRecord): Promise<ClearResult>;
|
|
74
|
+
doctor(ctx: AdapterContext, record: InstallRecord): Promise<DoctorReport>;
|
|
75
|
+
/** The server URL in the installed plugin's config, so a re-run can reuse it. */
|
|
76
|
+
installedServerUrl(ctx: AdapterContext): Promise<string | undefined>;
|
|
77
|
+
/** What to do after a successful setup, shown instead of the generic lines. */
|
|
78
|
+
nextSteps?(ctx: AdapterContext): string[];
|
|
79
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// dg CLI - agent adapter contract
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
//
|
|
5
|
+
// One adapter per coding agent. `dg setup` runs detect → plan → apply,
|
|
6
|
+
// `dg remove` runs clear, and `dg status` runs doctor. plan() never touches
|
|
7
|
+
// disk, so setup can show and check everything before writing anything
|
|
8
|
+
// (ADR-0003 TR-3, TR-5).
|
|
9
|
+
export const AGENT_NAMES = ["claude-code", "kiro", "codex"];
|
|
10
|
+
/** A problem setup or remove can explain; the message says what to do. */
|
|
11
|
+
export class AdapterError extends Error {
|
|
12
|
+
name = "AdapterError";
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAC9E,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,uEAAuE;AACvE,yBAAyB;AAIzB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAiErE,0EAA0E;AAC1E,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,GAAG,cAAc,CAAC;CAChC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** GET /api/v1/public/safety/whoami (backend app/schemas/safety.py). */
|
|
2
|
+
export interface WhoamiResponse {
|
|
3
|
+
agent_id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
project_id: string;
|
|
6
|
+
organization_id: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Why a request failed, coarse enough for the CLI to turn into a
|
|
10
|
+
* plain-English next step (ADR-0003 NR-2).
|
|
11
|
+
*/
|
|
12
|
+
export type ApiErrorKind = "unauthorized" | "not_found" | "server" | "timeout" | "network";
|
|
13
|
+
export type ApiResult<T> = {
|
|
14
|
+
ok: true;
|
|
15
|
+
status: number;
|
|
16
|
+
data: T;
|
|
17
|
+
} | {
|
|
18
|
+
ok: false;
|
|
19
|
+
status: number;
|
|
20
|
+
kind: ApiErrorKind;
|
|
21
|
+
error: string;
|
|
22
|
+
};
|
|
23
|
+
export interface ApiClientOptions {
|
|
24
|
+
serverUrl: string;
|
|
25
|
+
apiKey: string;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare class DatagustoApiClient {
|
|
29
|
+
private readonly baseUrl;
|
|
30
|
+
private readonly apiKey;
|
|
31
|
+
private readonly timeoutMs;
|
|
32
|
+
constructor({ serverUrl, apiKey, timeoutMs }: ApiClientOptions);
|
|
33
|
+
/** Read-only preflight: which agent does this key belong to? */
|
|
34
|
+
whoami(): Promise<ApiResult<WhoamiResponse>>;
|
|
35
|
+
private _get;
|
|
36
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// dg CLI - Datagusto HTTP API client
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
//
|
|
5
|
+
// Authenticates with the agent API key only (`Authorization: Bearer <key>`),
|
|
6
|
+
// exactly like the plugins do. The CLI has no login or session token.
|
|
7
|
+
const WHOAMI_PATH = "/api/v1/public/safety/whoami";
|
|
8
|
+
export class DatagustoApiClient {
|
|
9
|
+
baseUrl;
|
|
10
|
+
apiKey;
|
|
11
|
+
timeoutMs;
|
|
12
|
+
constructor({ serverUrl, apiKey, timeoutMs = 10_000 }) {
|
|
13
|
+
this.baseUrl = serverUrl.replace(/\/+$/, "");
|
|
14
|
+
this.apiKey = apiKey;
|
|
15
|
+
this.timeoutMs = timeoutMs;
|
|
16
|
+
}
|
|
17
|
+
/** Read-only preflight: which agent does this key belong to? */
|
|
18
|
+
async whoami() {
|
|
19
|
+
const result = await this._get(WHOAMI_PATH);
|
|
20
|
+
if (result.ok && !isWhoami(result.data)) {
|
|
21
|
+
// A 2xx without an agent is some other endpoint, i.e. the wrong URL.
|
|
22
|
+
return { ok: false, status: result.status, kind: "not_found", error: "Response was not a whoami answer" };
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
// -- Internal helper ------------------------------------------------------
|
|
27
|
+
async _get(endpoint) {
|
|
28
|
+
const url = this.baseUrl + endpoint;
|
|
29
|
+
let response;
|
|
30
|
+
try {
|
|
31
|
+
response = await fetch(url, {
|
|
32
|
+
method: "GET",
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
35
|
+
Accept: "application/json",
|
|
36
|
+
},
|
|
37
|
+
signal: AbortSignal.timeout(this.timeoutMs),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
const timedOut = err instanceof Error && err.name === "TimeoutError";
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
status: 0,
|
|
45
|
+
kind: timedOut ? "timeout" : "network",
|
|
46
|
+
error: err instanceof Error ? err.message : String(err),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const text = await response.text();
|
|
50
|
+
if (!response.ok) {
|
|
51
|
+
return {
|
|
52
|
+
ok: false,
|
|
53
|
+
status: response.status,
|
|
54
|
+
kind: errorKind(response.status),
|
|
55
|
+
error: text.slice(0, 500),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
try {
|
|
59
|
+
return { ok: true, status: response.status, data: JSON.parse(text) };
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// A 2xx that isn't JSON is usually a web page, i.e. the wrong URL.
|
|
63
|
+
return {
|
|
64
|
+
ok: false,
|
|
65
|
+
status: response.status,
|
|
66
|
+
kind: "not_found",
|
|
67
|
+
error: "Response was not JSON",
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function isWhoami(v) {
|
|
73
|
+
if (typeof v !== "object" || v === null)
|
|
74
|
+
return false;
|
|
75
|
+
const w = v;
|
|
76
|
+
return typeof w.agent_id === "string" && w.agent_id !== "" && typeof w.name === "string";
|
|
77
|
+
}
|
|
78
|
+
function errorKind(status) {
|
|
79
|
+
if (status === 401 || status === 403)
|
|
80
|
+
return "unauthorized";
|
|
81
|
+
if (status === 404)
|
|
82
|
+
return "not_found";
|
|
83
|
+
return "server";
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// dg CLI - plain-English API errors
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
//
|
|
5
|
+
// Setup and status both call whoami; this turns a failed call into one
|
|
6
|
+
// sentence that says what went wrong and what to do next (ADR-0003 NR-2).
|
|
7
|
+
// Never includes the API key.
|
|
8
|
+
export function explainApiError(result, serverUrl) {
|
|
9
|
+
switch (result.kind) {
|
|
10
|
+
case "unauthorized":
|
|
11
|
+
return (`${serverUrl} didn't accept this API key. It may be mistyped, revoked, or issued by a different ` +
|
|
12
|
+
"Datagusto server. Copy the key again from your agent's page in the Datagusto dashboard.");
|
|
13
|
+
case "not_found":
|
|
14
|
+
return (`There's no Datagusto API at ${serverUrl}. Check the server URL: it should be the address of ` +
|
|
15
|
+
"your company's Datagusto server, and that server may need updating to a version that supports dg.");
|
|
16
|
+
case "timeout":
|
|
17
|
+
return `${serverUrl} didn't answer in time. Check your network or VPN, then try again.`;
|
|
18
|
+
case "network":
|
|
19
|
+
return `Couldn't reach ${serverUrl} (${result.error}). Check the address and your network connection.`;
|
|
20
|
+
case "server":
|
|
21
|
+
return (`The Datagusto server returned an error (HTTP ${result.status}). ` +
|
|
22
|
+
"Try again in a minute. If it keeps happening, contact whoever runs your Datagusto server.");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAC9E,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,8BAA8B;AAI9B,MAAM,UAAU,eAAe,CAAC,MAAkD,EAAE,SAAiB;IACnG,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,CACL,GAAG,SAAS,qFAAqF;gBACjG,yFAAyF,CAC1F,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,CACL,+BAA+B,SAAS,sDAAsD;gBAC9F,mGAAmG,CACpG,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,GAAG,SAAS,oEAAoE,CAAC;QAC1F,KAAK,SAAS;YACZ,OAAO,kBAAkB,SAAS,KAAK,MAAM,CAAC,KAAK,mDAAmD,CAAC;QACzG,KAAK,QAAQ;YACX,OAAO,CACL,gDAAgD,MAAM,CAAC,MAAM,KAAK;gBAClE,2FAA2F,CAC5F,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class Remove extends Command {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
agent: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Args, Command, Flags } from "@oclif/core";
|
|
2
|
+
import { adapterContext, getAdapter, notSupportedYet, resolveWorkspace } from "../adapters/index.js";
|
|
3
|
+
import { AGENT_NAMES } from "../adapters/types.js";
|
|
4
|
+
import { tildify } from "../display.js";
|
|
5
|
+
import { findInstall, forgetInstall, LedgerError } from "../state/installs.js";
|
|
6
|
+
export default class Remove extends Command {
|
|
7
|
+
static summary = "Disconnect an agent from Datagusto.";
|
|
8
|
+
static description = "Removes the plugin and the config that `dg setup` wrote. Nothing else is touched. Works offline.";
|
|
9
|
+
static examples = [
|
|
10
|
+
"<%= config.bin %> remove claude-code",
|
|
11
|
+
"<%= config.bin %> remove kiro --workspace ~/code/my-repo",
|
|
12
|
+
];
|
|
13
|
+
static args = {
|
|
14
|
+
agent: Args.string({ description: "Agent to disconnect", options: [...AGENT_NAMES], required: true }),
|
|
15
|
+
};
|
|
16
|
+
static flags = {
|
|
17
|
+
workspace: Flags.directory({ description: "Kiro only: workspace to remove from (default: current directory)" }),
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(Remove);
|
|
21
|
+
const agent = args.agent;
|
|
22
|
+
const adapter = getAdapter(agent);
|
|
23
|
+
if (!adapter)
|
|
24
|
+
this.error(notSupportedYet(agent), { exit: 1 });
|
|
25
|
+
const workspace = adapter.perWorkspace ? await resolveWorkspace(flags.workspace) : null;
|
|
26
|
+
const ctx = adapterContext(this.config.version, workspace ?? undefined);
|
|
27
|
+
try {
|
|
28
|
+
const record = await findInstall(agent, workspace);
|
|
29
|
+
if (!record) {
|
|
30
|
+
const where = workspace ? `in ${tildify(workspace, ctx.homeDir)}` : "on this machine";
|
|
31
|
+
this.log(`dg hasn't connected ${adapter.displayName} ${where}, so there's nothing to remove.`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const { removed, edited, skipped } = await adapter.clear(ctx, record);
|
|
35
|
+
await forgetInstall(agent, workspace);
|
|
36
|
+
for (const path of edited)
|
|
37
|
+
this.log(`Removed the Datagusto hooks from ${tildify(path, ctx.homeDir)}`);
|
|
38
|
+
for (const path of removed)
|
|
39
|
+
this.log(`Removed ${tildify(path, ctx.homeDir)}`);
|
|
40
|
+
for (const path of skipped) {
|
|
41
|
+
this.warn(
|
|
42
|
+
// The two files dg merges its hooks into rather than owning outright.
|
|
43
|
+
path.endsWith("settings.json") || path.endsWith("kiro_default.json")
|
|
44
|
+
? `Couldn't remove the Datagusto hooks from ${tildify(path, ctx.homeDir)} because it isn't valid JSON. Remove them by hand.`
|
|
45
|
+
: `Left ${tildify(path, ctx.homeDir)} in place: it no longer looks like something dg installed.`);
|
|
46
|
+
}
|
|
47
|
+
this.log(`\n✔ ${adapter.displayName} is disconnected from Datagusto.`);
|
|
48
|
+
this.log(` Restart any ${adapter.displayName} sessions that are still open to be sure they've dropped the hooks.`);
|
|
49
|
+
this.log(" The API key still works until you revoke it: open your agent's page in the Datagusto dashboard " +
|
|
50
|
+
"and revoke the key there.");
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
if (err instanceof LedgerError)
|
|
54
|
+
this.error(err.message, { exit: 1 });
|
|
55
|
+
throw err;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class Setup extends Command {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static examples: string[];
|
|
6
|
+
static args: {
|
|
7
|
+
agent: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
"server-url": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
workspace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
/** `https://host/` → `https://host`; undefined if it isn't an http(s) URL. */
|
|
16
|
+
export declare function normalizeServerUrl(raw: string): string | undefined;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Args, Command, Flags } from "@oclif/core";
|
|
2
|
+
import { adapterContext, getAdapter, notSupportedYet, resolveWorkspace } from "../adapters/index.js";
|
|
3
|
+
import { AdapterError, AGENT_NAMES } from "../adapters/types.js";
|
|
4
|
+
import { DatagustoApiClient } from "../api/client.js";
|
|
5
|
+
import { explainApiError } from "../api/errors.js";
|
|
6
|
+
import { tildify } from "../display.js";
|
|
7
|
+
import { API_KEY_ENV, KeyInputError, resolveApiKey } from "../key-input.js";
|
|
8
|
+
import { LedgerError, listInstalls, recordInstall } from "../state/installs.js";
|
|
9
|
+
import { VendorError } from "../vendor.js";
|
|
10
|
+
/** Shown in help and errors only; never contacted. */
|
|
11
|
+
const EXAMPLE_SERVER_URL = "https://datagusto.your-company.example";
|
|
12
|
+
export default class Setup extends Command {
|
|
13
|
+
static summary = "Connect a coding agent to Datagusto.";
|
|
14
|
+
static description = "Checks the API key with the platform, installs the bundled plugin and writes its config. " +
|
|
15
|
+
"Running it again is safe and updates the key or server URL in place.\n\n" +
|
|
16
|
+
"There is no shared Datagusto server: --server-url is the address of the one your company runs. " +
|
|
17
|
+
"It's needed the first time; a re-run keeps the URL already installed unless you pass a new one.\n\n" +
|
|
18
|
+
`The API key is read from ${API_KEY_ENV}, from stdin, or from a hidden prompt, never from a flag, ` +
|
|
19
|
+
"so it doesn't end up in your shell history.";
|
|
20
|
+
static examples = [
|
|
21
|
+
"<%= config.bin %> setup claude-code --server-url https://datagusto.your-company.example",
|
|
22
|
+
`${API_KEY_ENV}=agt_live_… <%= config.bin %> setup claude-code`,
|
|
23
|
+
"pbpaste | <%= config.bin %> setup kiro --workspace ~/code/my-repo",
|
|
24
|
+
];
|
|
25
|
+
static args = {
|
|
26
|
+
agent: Args.string({ description: "Agent to connect", options: [...AGENT_NAMES], required: true }),
|
|
27
|
+
};
|
|
28
|
+
static flags = {
|
|
29
|
+
"server-url": Flags.string({
|
|
30
|
+
description: "Your company's Datagusto server URL (default: the one already installed)",
|
|
31
|
+
}),
|
|
32
|
+
workspace: Flags.directory({ description: "Kiro only: workspace to install into (default: current directory)" }),
|
|
33
|
+
};
|
|
34
|
+
async run() {
|
|
35
|
+
const { args, flags } = await this.parse(Setup);
|
|
36
|
+
const agent = args.agent;
|
|
37
|
+
const adapter = getAdapter(agent);
|
|
38
|
+
if (!adapter)
|
|
39
|
+
this.error(notSupportedYet(agent), { exit: 1 });
|
|
40
|
+
const ctx = adapterContext(this.config.version, adapter.perWorkspace ? await resolveWorkspace(flags.workspace) : undefined);
|
|
41
|
+
try {
|
|
42
|
+
// Fail on an unreadable ledger now, not after the plugin is installed.
|
|
43
|
+
await listInstalls();
|
|
44
|
+
const found = await adapter.detect(ctx);
|
|
45
|
+
if (!found.found)
|
|
46
|
+
this.error(found.detail ?? `${adapter.displayName} doesn't look installed.`, { exit: 1 });
|
|
47
|
+
await adapter.preflight?.(ctx);
|
|
48
|
+
// No built-in default: every company runs its own Datagusto server.
|
|
49
|
+
const rawUrl = flags["server-url"] ?? (await adapter.installedServerUrl(ctx));
|
|
50
|
+
if (rawUrl === undefined) {
|
|
51
|
+
this.error("Which Datagusto server? Pass --server-url with the address of the one your company runs, " +
|
|
52
|
+
`for example \`dg setup ${agent} --server-url ${EXAMPLE_SERVER_URL}\`.`, { exit: 1 });
|
|
53
|
+
}
|
|
54
|
+
const serverUrl = normalizeServerUrl(rawUrl);
|
|
55
|
+
if (!serverUrl) {
|
|
56
|
+
this.error(`"${rawUrl}" isn't a valid server URL. It should look like ${EXAMPLE_SERVER_URL}.`, { exit: 1 });
|
|
57
|
+
}
|
|
58
|
+
if (serverUrl.startsWith("http://") && !isLoopback(serverUrl)) {
|
|
59
|
+
this.warn(`${serverUrl} isn't HTTPS, so the API key will be sent unencrypted.`);
|
|
60
|
+
}
|
|
61
|
+
const { key } = await resolveApiKey();
|
|
62
|
+
this.logToStderr(`Checking the API key with ${serverUrl} …`);
|
|
63
|
+
const who = await new DatagustoApiClient({ serverUrl, apiKey: key }).whoami();
|
|
64
|
+
if (!who.ok)
|
|
65
|
+
this.error(explainApiError(who, serverUrl), { exit: 1 });
|
|
66
|
+
const conn = { serverUrl, apiKey: key, agentId: who.data.agent_id };
|
|
67
|
+
const plan = await adapter.plan(ctx, conn);
|
|
68
|
+
for (const change of plan.changes) {
|
|
69
|
+
this.logToStderr(` • ${change.description}: ${tildify(change.path, ctx.homeDir)}`);
|
|
70
|
+
}
|
|
71
|
+
const record = await adapter.apply(ctx, plan, conn);
|
|
72
|
+
await recordInstall(record);
|
|
73
|
+
this.log(`\n✔ ${adapter.displayName} is connected to Datagusto as agent "${who.data.name}".`);
|
|
74
|
+
if (adapter.nextSteps) {
|
|
75
|
+
for (const line of adapter.nextSteps(ctx))
|
|
76
|
+
this.log(` ${line}`);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.log(` Start a new ${adapter.displayName} session to begin sending safety events. ` +
|
|
80
|
+
"Sessions that are already open usually pick the hooks up on their own.");
|
|
81
|
+
}
|
|
82
|
+
this.log(" Check it any time with `dg status`.");
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
if (err instanceof KeyInputError ||
|
|
86
|
+
err instanceof AdapterError ||
|
|
87
|
+
err instanceof LedgerError ||
|
|
88
|
+
err instanceof VendorError) {
|
|
89
|
+
this.error(err.message, { exit: 1 });
|
|
90
|
+
}
|
|
91
|
+
throw err;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/** `https://host/` → `https://host`; undefined if it isn't an http(s) URL. */
|
|
96
|
+
export function normalizeServerUrl(raw) {
|
|
97
|
+
let url;
|
|
98
|
+
try {
|
|
99
|
+
url = new URL(raw.trim());
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
if (url.protocol !== "https:" && url.protocol !== "http:")
|
|
105
|
+
return undefined;
|
|
106
|
+
if (url.username || url.password || url.search || url.hash)
|
|
107
|
+
return undefined;
|
|
108
|
+
return url.toString().replace(/\/+$/, "");
|
|
109
|
+
}
|
|
110
|
+
function isLoopback(serverUrl) {
|
|
111
|
+
const host = new URL(serverUrl).hostname;
|
|
112
|
+
return host === "localhost" || host === "127.0.0.1" || host === "[::1]";
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
import { adapterContext, getAdapter } from "../adapters/index.js";
|
|
3
|
+
import { tildify } from "../display.js";
|
|
4
|
+
import { LedgerError, listInstalls } from "../state/installs.js";
|
|
5
|
+
const MARK = { ok: "✔", warn: "!", fail: "✖" };
|
|
6
|
+
export default class Status extends Command {
|
|
7
|
+
static summary = "Show which agents are connected and whether their keys still work.";
|
|
8
|
+
static description = "Exits with status 1 if any check fails.";
|
|
9
|
+
static examples = ["<%= config.bin %> status"];
|
|
10
|
+
async run() {
|
|
11
|
+
await this.parse(Status);
|
|
12
|
+
let installs;
|
|
13
|
+
try {
|
|
14
|
+
installs = await listInstalls();
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
if (err instanceof LedgerError)
|
|
18
|
+
this.error(err.message, { exit: 1 });
|
|
19
|
+
throw err;
|
|
20
|
+
}
|
|
21
|
+
if (installs.length === 0) {
|
|
22
|
+
this.log("No agents are connected. Run `dg setup claude-code` or `dg setup kiro` to connect one.");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
let failed = false;
|
|
26
|
+
for (const record of installs) {
|
|
27
|
+
const adapter = getAdapter(record.agent);
|
|
28
|
+
const title = record.workspace ? `${record.agent} (${record.workspace})` : record.agent;
|
|
29
|
+
if (!adapter) {
|
|
30
|
+
this.log(`${title}\n ! This version of dg can't check ${record.agent}. Update the CLI.\n`);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const ctx = adapterContext(this.config.version, record.workspace ?? undefined);
|
|
34
|
+
const report = await adapter.doctor(ctx, record);
|
|
35
|
+
const worst = report.checks.some((c) => c.status === "fail")
|
|
36
|
+
? "fail"
|
|
37
|
+
: report.checks.some((c) => c.status === "warn")
|
|
38
|
+
? "warn"
|
|
39
|
+
: "ok";
|
|
40
|
+
failed ||= worst === "fail";
|
|
41
|
+
const who = report.agentName ? `, agent "${report.agentName}"` : "";
|
|
42
|
+
const where = record.workspace ? ` (${tildify(record.workspace, ctx.homeDir)})` : "";
|
|
43
|
+
this.log(`${MARK[worst]} ${adapter.displayName}${where}${who}`);
|
|
44
|
+
for (const check of report.checks) {
|
|
45
|
+
this.log(` ${MARK[check.status]} ${check.name}${check.detail ? `: ${check.detail}` : ""}`);
|
|
46
|
+
}
|
|
47
|
+
this.log("");
|
|
48
|
+
}
|
|
49
|
+
if (failed)
|
|
50
|
+
this.exit(1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,IAAI,GAAgC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAE5E,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAU,OAAO,GAAG,oEAAoE,CAAC;IAE/F,MAAM,CAAU,WAAW,GAAG,yCAAyC,CAAC;IAExE,MAAM,CAAU,QAAQ,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExD,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACrE,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;YACnG,OAAO;QACT,CAAC;QAED,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACxF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,wCAAwC,MAAM,CAAC,KAAK,qBAAqB,CAAC,CAAC;gBAC5F,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;gBAC1D,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;oBAC9C,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,KAAK,KAAK,KAAK,MAAM,CAAC;YAE5B,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,WAAW,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC;YAChE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;QAED,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC"}
|