@heyditto/cli 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -7
- package/dist/agents/launch.d.ts +5 -0
- package/dist/agents/launch.js +124 -22
- package/dist/agents/launch.js.map +1 -1
- package/dist/api.d.ts +69 -1
- package/dist/api.js +53 -9
- package/dist/api.js.map +1 -1
- package/dist/browser.d.ts +2 -0
- package/dist/browser.js +17 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.js +42 -33
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +48 -1
- package/dist/commands.js +353 -8
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.js +14 -1
- package/dist/config.js.map +1 -1
- package/dist/device-login.d.ts +21 -5
- package/dist/device-login.js +17 -8
- package/dist/device-login.js.map +1 -1
- package/dist/endpoint-format.d.ts +9 -0
- package/dist/endpoint-format.js +21 -0
- package/dist/endpoint-format.js.map +1 -0
- package/dist/store.d.ts +16 -0
- package/dist/store.js +47 -0
- package/dist/store.js.map +1 -1
- package/package.json +1 -1
package/dist/device-login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-login.js","sourceRoot":"","sources":["../src/device-login.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"device-login.js","sourceRoot":"","sources":["../src/device-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAExG,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAmBtF,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,IAAyF;IACxH,IAAI,IAAI,CAAC,yBAAyB;QAAE,OAAO,IAAI,CAAC,yBAAyB,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,OAAO,GAAG,IAAI,CAAC,gBAAgB,GAAG,GAAG,QAAQ,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;IAC1E,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,GAAG,QAAQ,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,IAAI;gBACP,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;YAClG,KAAK,SAAS;gBACZ,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBACpB,MAAM;YACR,KAAK,WAAW;gBACd,QAAQ,IAAI,IAAI,CAAC;gBACjB,IAAI,GAAG,QAAQ,CAAC;gBAChB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InferenceEndpoint } from "./api.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders the backend's activation notice for an endpoint that cannot serve
|
|
4
|
+
* requests yet. The copy comes from the server; the CLI only fills in the
|
|
5
|
+
* agent's claim token when it has one.
|
|
6
|
+
*/
|
|
7
|
+
export declare function formatActivation(endpoint: InferenceEndpoint, storedClaimURL: string | undefined): string;
|
|
8
|
+
/** Resolved activation link (with the claim token merged in), if the endpoint has one. */
|
|
9
|
+
export declare function activationLink(endpoint: InferenceEndpoint, storedClaimURL: string | undefined): string | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { mergeActivationURL } from "./store.js";
|
|
2
|
+
/**
|
|
3
|
+
* Renders the backend's activation notice for an endpoint that cannot serve
|
|
4
|
+
* requests yet. The copy comes from the server; the CLI only fills in the
|
|
5
|
+
* agent's claim token when it has one.
|
|
6
|
+
*/
|
|
7
|
+
export function formatActivation(endpoint, storedClaimURL) {
|
|
8
|
+
const a = endpoint.activation;
|
|
9
|
+
if (!a)
|
|
10
|
+
return `Endpoint ${endpoint.slug} is inactive (${endpoint.status ?? "unknown"}).`;
|
|
11
|
+
const lines = [a.message.trim()];
|
|
12
|
+
if (a.url)
|
|
13
|
+
lines.push("", `Activation link: ${mergeActivationURL(a.url, storedClaimURL)}`);
|
|
14
|
+
return lines.join("\n");
|
|
15
|
+
}
|
|
16
|
+
/** Resolved activation link (with the claim token merged in), if the endpoint has one. */
|
|
17
|
+
export function activationLink(endpoint, storedClaimURL) {
|
|
18
|
+
const url = endpoint.activation?.url;
|
|
19
|
+
return url ? mergeActivationURL(url, storedClaimURL) : undefined;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=endpoint-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-format.js","sourceRoot":"","sources":["../src/endpoint-format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA2B,EAAE,cAAkC;IAC9F,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,YAAY,QAAQ,CAAC,IAAI,iBAAiB,QAAQ,CAAC,MAAM,IAAI,SAAS,IAAI,CAAC;IAC1F,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,GAAG;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,oBAAoB,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC3F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,cAAc,CAAC,QAA2B,EAAE,cAAkC;IAC5F,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACrC,OAAO,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC"}
|
package/dist/store.d.ts
CHANGED
|
@@ -21,4 +21,20 @@ export declare function writeStoredAuth(auth: StoredAuth): Promise<void>;
|
|
|
21
21
|
/** Merge fields into the stored auth file without dropping the saved key or agent fields. */
|
|
22
22
|
export declare function updateStoredAuth(partial: Partial<StoredAuth>): Promise<StoredAuth>;
|
|
23
23
|
export declare function writeStoredKey(key: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Saves a human login. Merges into the existing file so the default endpoint
|
|
26
|
+
* and the explicit MCP session survive a re-login, while any agent-account
|
|
27
|
+
* fields from a previous `heyditto init` are cleared (the key now belongs to a
|
|
28
|
+
* person, not a claimable agent).
|
|
29
|
+
*/
|
|
30
|
+
export declare function saveLogin(key: string, extra?: {
|
|
31
|
+
defaultEndpoint?: string;
|
|
32
|
+
}): Promise<StoredAuth>;
|
|
33
|
+
/**
|
|
34
|
+
* The backend only stores a hash of an agent's claim token, so activation links
|
|
35
|
+
* it returns for agent-created endpoints carry no `t=`. The CLI holds the
|
|
36
|
+
* plaintext claim URL from `heyditto init`; copy its token onto the backend URL
|
|
37
|
+
* so the agent hands its user one working link.
|
|
38
|
+
*/
|
|
39
|
+
export declare function mergeActivationURL(activationURL: string, storedClaimURL: string | undefined): string;
|
|
24
40
|
export declare function clearStoredKey(): Promise<boolean>;
|
package/dist/store.js
CHANGED
|
@@ -47,6 +47,53 @@ export async function writeStoredKey(key) {
|
|
|
47
47
|
throw new Error("refusing to store empty api key");
|
|
48
48
|
await writeStoredAuth({ apiKey: cleaned });
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Saves a human login. Merges into the existing file so the default endpoint
|
|
52
|
+
* and the explicit MCP session survive a re-login, while any agent-account
|
|
53
|
+
* fields from a previous `heyditto init` are cleared (the key now belongs to a
|
|
54
|
+
* person, not a claimable agent).
|
|
55
|
+
*/
|
|
56
|
+
export async function saveLogin(key, extra = {}) {
|
|
57
|
+
const cleaned = key.trim();
|
|
58
|
+
if (!cleaned)
|
|
59
|
+
throw new Error("refusing to store empty api key");
|
|
60
|
+
const partial = {
|
|
61
|
+
apiKey: cleaned,
|
|
62
|
+
agentMode: undefined,
|
|
63
|
+
agentAccountID: undefined,
|
|
64
|
+
agentUserID: undefined,
|
|
65
|
+
agentCaller: undefined,
|
|
66
|
+
claimURL: undefined,
|
|
67
|
+
createdAt: new Date().toISOString(),
|
|
68
|
+
};
|
|
69
|
+
if (extra.defaultEndpoint)
|
|
70
|
+
partial.defaultEndpoint = extra.defaultEndpoint;
|
|
71
|
+
return updateStoredAuth(partial);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The backend only stores a hash of an agent's claim token, so activation links
|
|
75
|
+
* it returns for agent-created endpoints carry no `t=`. The CLI holds the
|
|
76
|
+
* plaintext claim URL from `heyditto init`; copy its token onto the backend URL
|
|
77
|
+
* so the agent hands its user one working link.
|
|
78
|
+
*/
|
|
79
|
+
export function mergeActivationURL(activationURL, storedClaimURL) {
|
|
80
|
+
if (!storedClaimURL)
|
|
81
|
+
return activationURL;
|
|
82
|
+
let target;
|
|
83
|
+
let claim;
|
|
84
|
+
try {
|
|
85
|
+
target = new URL(activationURL);
|
|
86
|
+
claim = new URL(storedClaimURL);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return activationURL;
|
|
90
|
+
}
|
|
91
|
+
const token = claim.searchParams.get("t");
|
|
92
|
+
if (!token || target.searchParams.has("t"))
|
|
93
|
+
return activationURL;
|
|
94
|
+
target.searchParams.set("t", token);
|
|
95
|
+
return target.toString();
|
|
96
|
+
}
|
|
50
97
|
export async function clearStoredKey() {
|
|
51
98
|
try {
|
|
52
99
|
await rm(authFilePath());
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|