@cr8rcho/alkahest 0.1.84 → 0.1.85
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.ko.md +6 -2
- package/README.md +7 -2
- package/dist/cli.js +17 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/history.js +1 -27
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/login.d.ts +5 -1
- package/dist/commands/login.js +28 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +18 -0
- package/dist/commands/logout.js +29 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/status.d.ts +24 -0
- package/dist/commands/status.js +109 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/core/credentials.d.ts +9 -0
- package/dist/core/credentials.js +5 -3
- package/dist/core/credentials.js.map +1 -1
- package/dist/core/status.d.ts +65 -0
- package/dist/core/status.js +50 -0
- package/dist/core/status.js.map +1 -0
- package/dist/core/time.d.ts +8 -0
- package/dist/core/time.js +33 -0
- package/dist/core/time.js.map +1 -0
- package/package.json +1 -1
package/README.ko.md
CHANGED
|
@@ -95,7 +95,9 @@ alkahest scan # 분석 → .alkahest/map.json (기본: 증분)
|
|
|
95
95
|
alkahest scan --full # 기준선 무시하고 전체 재스캔
|
|
96
96
|
alkahest hook install # 커밋·머지 시 scan 자동 실행 (diff 자동 갱신)
|
|
97
97
|
alkahest mcp # MCP 서버 실행 (에이전트가 제품 지도를 질의, 키 불필요)
|
|
98
|
-
alkahest login # publish 토큰 저장 (alkahest.app → Account → Create token)
|
|
98
|
+
alkahest login # publish 토큰 저장 (alkahest.app → Account → Create token); 인자 없이 실행하면 현재 상태 표시
|
|
99
|
+
alkahest status # 로그인 상태 + 이 체크아웃이 어느 프로젝트/맵으로 publish 되는지
|
|
100
|
+
alkahest logout # 저장된 토큰 삭제 (로컬 한정 — 서버에서 끊으려면 웹에서 revoke)
|
|
99
101
|
alkahest publish # 지도를 hosted 뷰어에 업로드 → 공유 링크
|
|
100
102
|
alkahest projects # 계정의 워크스페이스·프로젝트 목록 (이동 후 slug 복구 등)
|
|
101
103
|
alkahest history # 코드맵 발행 타임라인 — 언제 발행됐고 뭐가 바뀌었나
|
|
@@ -198,7 +200,9 @@ claude mcp add alkahest -s project \
|
|
|
198
200
|
|
|
199
201
|
토큰만 있으면 됩니다 — CLI가 호스팅 서비스(alkahest.app)를 기본값으로 씁니다. 이미 `alkahest login` 을 했다면 토큰 env조차 생략 가능합니다(저장된 자격증명 사용). 그다음 에이전트에게 *"이거 publish 해줘"* 라고만 하면 링크를 돌려줍니다.
|
|
200
202
|
|
|
201
|
-
>
|
|
203
|
+
> `ALKAHEST_API_URL`(또는 `alkahest login --api <url>`)은 CLI를 다른 백엔드 배포로 향하게 합니다.
|
|
204
|
+
> 백엔드는 **이 저장소에 없습니다** — MIT 범위는 스캐너·어댑터·MCP 서버입니다. 자기 Supabase
|
|
205
|
+
> 인스턴스를 상대로 개발하는 게 아니라면 비워두세요. 그러면 CLI가 alkahest.app 과 통신합니다.
|
|
202
206
|
|
|
203
207
|
**체크아웃 없이 쓰기 — 노트·이슈·맵.** 폴더에서 나오는 건 코드맵뿐입니다. 노트·이슈·맵은 **프로젝트 slug**로 주소를 잡으므로, 지금 폴더가 전혀 모르는 프로젝트에도 쓸 수 있고 **그 프로젝트가 발행된 적이 없어도 됩니다**:
|
|
204
208
|
|
package/README.md
CHANGED
|
@@ -95,7 +95,9 @@ alkahest scan # analyze → .alkahest/map.json (incremental by default)
|
|
|
95
95
|
alkahest scan --full # ignore the baseline and rescan everything
|
|
96
96
|
alkahest hook install # run scan automatically on commit/merge (diff-driven refresh)
|
|
97
97
|
alkahest mcp # run the MCP server (agents query the product map; no key)
|
|
98
|
-
alkahest login # save your API token (Account → API tokens on alkahest.app)
|
|
98
|
+
alkahest login # save your API token (Account → API tokens on alkahest.app); bare = show current state
|
|
99
|
+
alkahest status # are you signed in, and where does this checkout publish?
|
|
100
|
+
alkahest logout # forget the saved token (local only — revoke it on the web to cut it off)
|
|
99
101
|
alkahest publish # upload the map to the hosted viewer → shareable link
|
|
100
102
|
alkahest projects # list your account's workspaces & projects (recover a slug after a move, etc.)
|
|
101
103
|
alkahest history # a code map's publish timeline — when each publish happened & what changed
|
|
@@ -221,7 +223,10 @@ claude mcp add alkahest -s project \
|
|
|
221
223
|
|
|
222
224
|
The token is all you need — the CLI defaults to the hosted service (alkahest.app). If you've already run `alkahest login`, even the token env is optional (saved credentials are used). Then just ask the agent to *"publish this"* and it returns the link.
|
|
223
225
|
|
|
224
|
-
>
|
|
226
|
+
> `ALKAHEST_API_URL` (or `alkahest login --api <url>`) points the CLI at a different backend
|
|
227
|
+
> deployment. The backend is **not** part of this repo — the MIT scope is the scanner, the
|
|
228
|
+
> adapters and the MCP server — so unless you are developing against your own Supabase
|
|
229
|
+
> instance, leave it unset and the CLI talks to alkahest.app.
|
|
225
230
|
|
|
226
231
|
**Working without a checkout — notes, issues, maps.** Only the code map comes from a folder. Notes, issues and maps are addressed by **project slug**, so the agent can write to a project the current folder knows nothing about — and the project never has to have been published:
|
|
227
232
|
|
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,8 @@ import { mcp } from "./commands/mcp.js";
|
|
|
6
6
|
import { hook } from "./commands/hook.js";
|
|
7
7
|
import { publish } from "./commands/publish.js";
|
|
8
8
|
import { login } from "./commands/login.js";
|
|
9
|
+
import { status } from "./commands/status.js";
|
|
10
|
+
import { logout } from "./commands/logout.js";
|
|
9
11
|
import { commentsPull, commentsAdd, commentsReply, commentsResolve, commentsIssue } from "./commands/comments.js";
|
|
10
12
|
import { issuesPull, issuesAdd, issuesStatus, issuesDone, issuesLink, issuesMap, issuesRm, issuesPriority, issuesDue, issuesAssign, issuesComments, issuesComment, issuesReply, issuesResolveComment } from "./commands/issues.js";
|
|
11
13
|
import { notesAdd, notesDelete, notesImport, notesLink, notesList, notesMap, notesProps, notesRestore, notesShow, notesUpdate } from "./commands/notes.js";
|
|
@@ -31,12 +33,25 @@ program
|
|
|
31
33
|
await scan(path, opts);
|
|
32
34
|
await maybeNotifyUpdate();
|
|
33
35
|
});
|
|
36
|
+
program
|
|
37
|
+
.command("status")
|
|
38
|
+
.description("are you signed in, and where does this checkout publish?")
|
|
39
|
+
.argument("[path]", "project path", ".")
|
|
40
|
+
.option("--json", "print the raw payload", false)
|
|
41
|
+
.option("--api <url>", "API base URL (or env ALKAHEST_API_URL)")
|
|
42
|
+
.action(async (path, opts) => {
|
|
43
|
+
await status({ path, ...opts });
|
|
44
|
+
});
|
|
34
45
|
program
|
|
35
46
|
.command("login")
|
|
36
|
-
.description("save your personal API token (from the web app)
|
|
47
|
+
.description("save your personal API token (from the web app); run bare to see the current state")
|
|
37
48
|
.option("--token <token>", "alk_… token from the web app (Account → Create token)")
|
|
38
49
|
.option("--api <url>", "API base URL (or env ALKAHEST_API_URL)")
|
|
39
|
-
.action((opts) => login(opts));
|
|
50
|
+
.action(async (opts) => { await login(opts); });
|
|
51
|
+
program
|
|
52
|
+
.command("logout")
|
|
53
|
+
.description("forget the saved API token (local only — revoke it on the web to cut it off)")
|
|
54
|
+
.action(async () => { await logout(); });
|
|
40
55
|
program
|
|
41
56
|
.command("publish")
|
|
42
57
|
.description("upload .alkahest/map.json to the hosted viewer → shareable link (no login to view)")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/history.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { listHistory } from "../core/history.js";
|
|
2
|
+
import { relTime, stamp } from "../core/time.js";
|
|
2
3
|
/**
|
|
3
4
|
* CLI surface of a code map's publish history (alkahest ADR-023). `alkahest history` prints the
|
|
4
5
|
* timeline of publishes — when each happened, the count deltas, and which screens/resources were
|
|
@@ -18,33 +19,6 @@ const failMessage = (code, message) => {
|
|
|
18
19
|
};
|
|
19
20
|
return known[code ?? ""] ?? `history failed: ${message}`;
|
|
20
21
|
};
|
|
21
|
-
function relTime(iso) {
|
|
22
|
-
const then = Date.parse(iso);
|
|
23
|
-
if (Number.isNaN(then))
|
|
24
|
-
return "";
|
|
25
|
-
const s = Math.max(0, Math.floor((Date.now() - then) / 1000));
|
|
26
|
-
if (s < 60)
|
|
27
|
-
return "just now";
|
|
28
|
-
const m = Math.floor(s / 60);
|
|
29
|
-
if (m < 60)
|
|
30
|
-
return `${m}m ago`;
|
|
31
|
-
const h = Math.floor(m / 60);
|
|
32
|
-
if (h < 24)
|
|
33
|
-
return `${h}h ago`;
|
|
34
|
-
const d = Math.floor(h / 24);
|
|
35
|
-
if (d < 30)
|
|
36
|
-
return `${d}d ago`;
|
|
37
|
-
const mo = Math.floor(d / 30);
|
|
38
|
-
return mo < 12 ? `${mo}mo ago` : `${Math.floor(mo / 12)}y ago`;
|
|
39
|
-
}
|
|
40
|
-
function stamp(iso) {
|
|
41
|
-
// YYYY-MM-DD HH:MM in local time, no seconds.
|
|
42
|
-
const d = new Date(iso);
|
|
43
|
-
if (Number.isNaN(d.getTime()))
|
|
44
|
-
return iso;
|
|
45
|
-
const p = (n) => String(n).padStart(2, "0");
|
|
46
|
-
return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`;
|
|
47
|
-
}
|
|
48
22
|
/** "14 screens, 28 transitions" — omit zero counts (resources/calls are often 0). */
|
|
49
23
|
function statsLine(s) {
|
|
50
24
|
if (!s)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Save a personal API token so the CLI/MCP can authenticate as you (publish, tasks, notes, issues, skills).
|
|
3
3
|
* Get the token from the web app (Account → Create token) after signing in with GitHub.
|
|
4
|
+
*
|
|
5
|
+
* Run BARE, this reports the current state instead of assuming you have none — a bare auth command
|
|
6
|
+
* is where people look first for "am I signed in?", and answering with a canned "paste a token"
|
|
7
|
+
* (as this used to) is a lie to anyone who already is. Same block as `alkahest status`.
|
|
4
8
|
*/
|
|
5
9
|
export interface LoginOptions {
|
|
6
|
-
/** The alk_… token from the web app. If omitted, we
|
|
10
|
+
/** The alk_… token from the web app. If omitted, we report the current state. */
|
|
7
11
|
token?: string;
|
|
8
12
|
/** API base URL (or env ALKAHEST_API_URL). */
|
|
9
13
|
api?: string;
|
package/dist/commands/login.js
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import { loadCredentials, saveCredentials } from "../core/credentials.js";
|
|
2
|
+
import { authStatus, checkoutStatus } from "../core/status.js";
|
|
3
|
+
import { printStatus } from "./status.js";
|
|
4
|
+
const HOW_TO = [
|
|
5
|
+
"To sign in:",
|
|
6
|
+
" 1. Open alkahest.app and sign in",
|
|
7
|
+
" 2. Account → Create token, copy the alk_… value",
|
|
8
|
+
" 3. Run: alkahest login --token alk_xxxxx",
|
|
9
|
+
];
|
|
2
10
|
export async function login(options) {
|
|
3
11
|
const creds = loadCredentials();
|
|
4
12
|
if (!options.token) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
console.log(
|
|
8
|
-
|
|
9
|
-
|
|
13
|
+
const auth = await authStatus({ api: options.api });
|
|
14
|
+
const ok = printStatus(auth, checkoutStatus(".", auth), { hint: false });
|
|
15
|
+
console.log(ok
|
|
16
|
+
? "\n Already signed in — pass --token alk_… to switch to a different token."
|
|
17
|
+
: `\n ${HOW_TO.join("\n ")}`);
|
|
18
|
+
if (!ok)
|
|
19
|
+
process.exitCode = 1;
|
|
10
20
|
return;
|
|
11
21
|
}
|
|
12
22
|
if (!options.token.startsWith("alk_")) {
|
|
@@ -22,5 +32,18 @@ export async function login(options) {
|
|
|
22
32
|
creds.apiUrl = explicitApi.replace(/\/+$/, "");
|
|
23
33
|
saveCredentials(creds);
|
|
24
34
|
console.log("[alkahest] logged in. Token saved to ~/.alkahest/credentials.json");
|
|
35
|
+
// Verify rather than assume: a typo'd or already-revoked token would otherwise only surface
|
|
36
|
+
// at the next publish, far from the command that accepted it.
|
|
37
|
+
const auth = await authStatus({ api: options.api });
|
|
38
|
+
if (!auth.ok) {
|
|
39
|
+
console.log("");
|
|
40
|
+
printStatus(auth, checkoutStatus(".", auth));
|
|
41
|
+
process.exitCode = 1;
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const ws = (auth.workspaces ?? []).map((w) => w.name || w.slug);
|
|
45
|
+
console.log(ws.length
|
|
46
|
+
? `[alkahest] verified — ${auth.projects?.length ?? 0} project(s) across ${ws.join(", ")}.`
|
|
47
|
+
: "[alkahest] verified — no projects yet; 'alkahest publish' creates your first.");
|
|
25
48
|
}
|
|
26
49
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAiB1C,MAAM,MAAM,GAAG;IACb,aAAa;IACb,oCAAoC;IACpC,mDAAmD;IACnD,4CAA4C;CAC7C,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAqB;IAC/C,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,EAAE;YACZ,CAAC,CAAC,4EAA4E;YAC9E,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,kFAAkF;IAClF,uFAAuF;IACvF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAChE,IAAI,WAAW;QAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;IAEjF,4FAA4F;IAC5F,8DAA8D;IAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM;QACnB,CAAC,CAAC,yBAAyB,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC3F,CAAC,CAAC,+EAA+E,CAAC,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `alkahest logout` — forget the saved token.
|
|
3
|
+
*
|
|
4
|
+
* Deliberately narrow: it clears `credentials.token` and NOTHING else. The other two keys are not
|
|
5
|
+
* credentials — `apiUrl` is a destination setting (a self-hoster logging out and back in expects
|
|
6
|
+
* their server to survive) and `projects` is a path→slug cache that `.alkahest/project.json`
|
|
7
|
+
* already outranks in `resolveProject`. Bundling them behind a `--all` would mix "sign me out"
|
|
8
|
+
* with "forget my config"; `gh auth logout` / `npm logout` / `docker logout` all clear the
|
|
9
|
+
* credential alone, and so does this.
|
|
10
|
+
*
|
|
11
|
+
* This is LOCAL only — there is no revoke endpoint, so the token keeps working for anyone else who
|
|
12
|
+
* holds it. Say so rather than let "signed out" imply more safety than it bought.
|
|
13
|
+
*/
|
|
14
|
+
export interface LogoutOptions {
|
|
15
|
+
/** Reserved for symmetry with the other commands; logout never talks to the API. */
|
|
16
|
+
api?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function logout(_options?: LogoutOptions): Promise<void>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DEFAULT_API_URL, loadCredentials, saveCredentials } from "../core/credentials.js";
|
|
2
|
+
export async function logout(_options = {}) {
|
|
3
|
+
const creds = loadCredentials();
|
|
4
|
+
const hadToken = Boolean(creds.token);
|
|
5
|
+
const envToken = Boolean(process.env.ALKAHEST_TOKEN);
|
|
6
|
+
if (!hadToken) {
|
|
7
|
+
console.log("[alkahest] no saved token — nothing to sign out of.");
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
delete creds.token;
|
|
11
|
+
saveCredentials(creds);
|
|
12
|
+
console.log("[alkahest] signed out. Token removed from ~/.alkahest/credentials.json");
|
|
13
|
+
}
|
|
14
|
+
const notes = [];
|
|
15
|
+
if (hadToken) {
|
|
16
|
+
notes.push("The token still works on the server — revoke it at alkahest.app → Account to cut it off for good.");
|
|
17
|
+
}
|
|
18
|
+
// A live ALKAHEST_TOKEN would silently re-authenticate the very next command, which looks like
|
|
19
|
+
// the logout failed. Name it instead of leaving the user to discover it.
|
|
20
|
+
if (envToken) {
|
|
21
|
+
notes.push("ALKAHEST_TOKEN is set in this environment and still authenticates — unset it too.");
|
|
22
|
+
}
|
|
23
|
+
if (creds.apiUrl && creds.apiUrl !== DEFAULT_API_URL) {
|
|
24
|
+
notes.push(`Still pointed at ${creds.apiUrl} — 'alkahest login --api <url>' changes it.`);
|
|
25
|
+
}
|
|
26
|
+
if (notes.length)
|
|
27
|
+
console.log(`\n ${notes.join("\n ")}`);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoB3F,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,WAA0B,EAAE;IACvD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,KAAK,CAAC;QACnB,eAAe,CAAC,KAAK,CAAC,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,mGAAmG,CAAC,CAAC;IAClH,CAAC;IACD,+FAA+F;IAC/F,yEAAyE;IACzE,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,MAAM,6CAA6C,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type AuthStatus, type CheckoutStatus } from "../core/status.js";
|
|
2
|
+
/**
|
|
3
|
+
* `alkahest status` — sign-in state + what this checkout is bound to.
|
|
4
|
+
*
|
|
5
|
+
* Deliberately NOT `whoami`: an alk_ token carries no username (it resolves to a user_id and a
|
|
6
|
+
* set of workspaces), and the question people actually ask here is multi-axis — is the token
|
|
7
|
+
* live, which API, which scope, and which project/map does this folder publish to. `gh auth
|
|
8
|
+
* status` / `gcloud auth list` answer the same shape; `npm whoami` prints a name because npm
|
|
9
|
+
* HAS one. Reads through src/core/status.ts; nothing is stored or changed.
|
|
10
|
+
*/
|
|
11
|
+
export interface StatusOptions {
|
|
12
|
+
path?: string;
|
|
13
|
+
api?: string;
|
|
14
|
+
json?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Print the shared status block. Returns false when the state is a failure (for exit codes).
|
|
18
|
+
* `hint: false` drops the trailing "run login" note for callers that follow with their own
|
|
19
|
+
* instructions — bare `alkahest login` would otherwise say it twice.
|
|
20
|
+
*/
|
|
21
|
+
export declare function printStatus(auth: AuthStatus, checkout: CheckoutStatus, opts?: {
|
|
22
|
+
hint?: boolean;
|
|
23
|
+
}): boolean;
|
|
24
|
+
export declare function status(options?: StatusOptions): Promise<void>;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { authStatus, checkoutStatus } from "../core/status.js";
|
|
2
|
+
import { relTime } from "../core/time.js";
|
|
3
|
+
const HINT_LOGIN = "Run 'alkahest login --token alk_…' — create one at alkahest.app → Account.";
|
|
4
|
+
/** The headline + the lines that explain a non-authenticated state. */
|
|
5
|
+
function authLines(auth) {
|
|
6
|
+
switch (auth.state) {
|
|
7
|
+
case "authenticated":
|
|
8
|
+
return { head: "✓ signed in", notes: [] };
|
|
9
|
+
case "scoped":
|
|
10
|
+
return {
|
|
11
|
+
head: "✓ token live, but scoped",
|
|
12
|
+
notes: [
|
|
13
|
+
"This is a limited token (a widget/capture scope), not a personal one — it can reach",
|
|
14
|
+
"only the verbs its scope names, and cannot list your workspaces.",
|
|
15
|
+
],
|
|
16
|
+
};
|
|
17
|
+
case "anonymous":
|
|
18
|
+
return { head: "✗ not signed in", notes: [HINT_LOGIN] };
|
|
19
|
+
case "invalid":
|
|
20
|
+
return { head: "✗ token invalid or revoked", notes: [HINT_LOGIN] };
|
|
21
|
+
case "expired":
|
|
22
|
+
return { head: "✗ token expired", notes: [HINT_LOGIN] };
|
|
23
|
+
case "unreachable":
|
|
24
|
+
return {
|
|
25
|
+
head: "? could not reach the API",
|
|
26
|
+
notes: [auth.message ?? "network error", "The token itself was not checked."],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Print the shared status block. Returns false when the state is a failure (for exit codes).
|
|
32
|
+
* `hint: false` drops the trailing "run login" note for callers that follow with their own
|
|
33
|
+
* instructions — bare `alkahest login` would otherwise say it twice.
|
|
34
|
+
*/
|
|
35
|
+
export function printStatus(auth, checkout, opts = {}) {
|
|
36
|
+
const { head, notes } = authLines(auth);
|
|
37
|
+
const tail = opts.hint === false ? notes.filter((n) => n !== HINT_LOGIN) : notes;
|
|
38
|
+
console.log(`[alkahest] ${head}`);
|
|
39
|
+
if (auth.token)
|
|
40
|
+
console.log(` token ${auth.token.masked} (from ${auth.token.source === "env" ? "ALKAHEST_TOKEN" : "~/.alkahest/credentials.json"})`);
|
|
41
|
+
console.log(` api ${auth.apiUrl}${auth.hosted ? " (hosted)" : " (self-hosted)"}`);
|
|
42
|
+
if (auth.workspaces?.length) {
|
|
43
|
+
const names = auth.workspaces.map((w) => w.name || w.slug);
|
|
44
|
+
const n = auth.projects?.length ?? 0;
|
|
45
|
+
console.log(` workspaces ${names.join(", ")}`);
|
|
46
|
+
console.log(` projects ${n} reachable${n ? " — 'alkahest projects' lists them" : ""}`);
|
|
47
|
+
}
|
|
48
|
+
else if (auth.state === "authenticated") {
|
|
49
|
+
console.log(" workspaces none yet — 'alkahest publish' creates your first project");
|
|
50
|
+
}
|
|
51
|
+
console.log(`\n this checkout ${checkout.root}`);
|
|
52
|
+
if (!checkout.slug) {
|
|
53
|
+
console.log(" not linked to a project yet — 'alkahest publish' links it.");
|
|
54
|
+
}
|
|
55
|
+
else if (checkout.project) {
|
|
56
|
+
const p = checkout.project;
|
|
57
|
+
const named = p.name && p.name !== p.slug ? ` — ${p.name}` : "";
|
|
58
|
+
const ws = p.workspace ? ` (${p.workspace.name || p.workspace.slug})` : "";
|
|
59
|
+
console.log(` project ${p.slug}${named}${ws}`);
|
|
60
|
+
const m = checkout.map;
|
|
61
|
+
if (m) {
|
|
62
|
+
const when = m.lastPublishedAt ? `last publish ${relTime(m.lastPublishedAt)}` : "never published";
|
|
63
|
+
console.log(` map ${m.mapSlug} · ${when}`);
|
|
64
|
+
}
|
|
65
|
+
else if (checkout.mapSlug) {
|
|
66
|
+
console.log(` map ${checkout.mapSlug} · no longer on the project (renamed or deleted?)`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (checkout.unreachable) {
|
|
70
|
+
console.log(` project ${checkout.slug} · not visible to this account (moved, deleted, or a different account)`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// Linked, but we have no server list to check it against (not signed in / unreachable).
|
|
74
|
+
console.log(` project ${checkout.slug}${checkout.mapSlug ? ` / ${checkout.mapSlug}` : ""} · unverified`);
|
|
75
|
+
}
|
|
76
|
+
if (tail.length)
|
|
77
|
+
console.log(`\n ${tail.join("\n ")}`);
|
|
78
|
+
return auth.ok;
|
|
79
|
+
}
|
|
80
|
+
export async function status(options = {}) {
|
|
81
|
+
const auth = await authStatus({ api: options.api });
|
|
82
|
+
const checkout = checkoutStatus(options.path ?? ".", auth);
|
|
83
|
+
if (options.json) {
|
|
84
|
+
console.log(JSON.stringify({
|
|
85
|
+
auth: {
|
|
86
|
+
state: auth.state, ok: auth.ok, apiUrl: auth.apiUrl, hosted: auth.hosted,
|
|
87
|
+
token: auth.token ?? null,
|
|
88
|
+
workspaces: auth.workspaces ?? null,
|
|
89
|
+
projectCount: auth.projects?.length ?? null,
|
|
90
|
+
message: auth.message ?? null,
|
|
91
|
+
},
|
|
92
|
+
checkout: {
|
|
93
|
+
root: checkout.root,
|
|
94
|
+
slug: checkout.slug ?? null,
|
|
95
|
+
mapSlug: checkout.map?.mapSlug ?? checkout.mapSlug ?? null,
|
|
96
|
+
projectName: checkout.project?.name ?? null,
|
|
97
|
+
workspace: checkout.project?.workspace?.slug ?? null,
|
|
98
|
+
lastPublishedAt: checkout.map?.lastPublishedAt ?? null,
|
|
99
|
+
unreachable: checkout.unreachable,
|
|
100
|
+
},
|
|
101
|
+
}, null, 2));
|
|
102
|
+
if (!auth.ok)
|
|
103
|
+
process.exitCode = 1;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (!printStatus(auth, checkout))
|
|
107
|
+
process.exitCode = 1;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwC,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAkB1C,MAAM,UAAU,GAAG,4EAA4E,CAAC;AAEhG,uEAAuE;AACvE,SAAS,SAAS,CAAC,IAAgB;IACjC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,eAAe;YAClB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC5C,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,0BAA0B;gBAChC,KAAK,EAAE;oBACL,qFAAqF;oBACrF,kEAAkE;iBACnE;aACF,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACrE,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,mCAAmC,CAAC;aAC9E,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgB,EAAE,QAAwB,EAAE,OAA2B,EAAE;IACnG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAElC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,WAAW,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,8BAA8B,GAAG,CAAC,CAAC;IAC7J,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE7F,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,sBAAsB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAChF,CAAC;SAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,OAAO,QAAQ,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,OAAO,qDAAqD,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,IAAI,2EAA2E,CAAC,CAAC;IACxH,CAAC;SAAM,CAAC;QACN,wFAAwF;QACxF,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACjH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACxE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBACnC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;gBAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;aAC9B;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;gBAC3B,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI;gBAC1D,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,IAAI,IAAI;gBAC3C,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,IAAI;gBACpD,eAAe,EAAE,QAAQ,CAAC,GAAG,EAAE,eAAe,IAAI,IAAI;gBACtD,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -14,6 +14,15 @@ export interface Credentials {
|
|
|
14
14
|
mapSlug?: string;
|
|
15
15
|
}>;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* The hosted service (alkahest.app). Used as the final fallback so that pointing
|
|
19
|
+
* the CLI / MCP at the public instance needs no config — the URL is not a secret
|
|
20
|
+
* (it ships in every served page). --api / `alkahest login --api <url>` / ALKAHEST_API_URL
|
|
21
|
+
* override it to reach ANOTHER DEPLOYMENT of the backend (a local Supabase, a branch DB) —
|
|
22
|
+
* that is a development escape hatch, not a self-hosting story: the backend lives in the
|
|
23
|
+
* private web repo, so nobody outside it has one to point at.
|
|
24
|
+
*/
|
|
25
|
+
export declare const DEFAULT_API_URL = "https://ytcmzkrvtomtcrcyqqcb.supabase.co/functions/v1";
|
|
17
26
|
export declare function loadCredentials(): Credentials;
|
|
18
27
|
export declare function saveCredentials(creds: Credentials): void;
|
|
19
28
|
/** API base URL resolved from flag → saved creds → env → hosted default. */
|
package/dist/core/credentials.js
CHANGED
|
@@ -6,10 +6,12 @@ const CRED_FILE = join(CRED_DIR, "credentials.json");
|
|
|
6
6
|
/**
|
|
7
7
|
* The hosted service (alkahest.app). Used as the final fallback so that pointing
|
|
8
8
|
* the CLI / MCP at the public instance needs no config — the URL is not a secret
|
|
9
|
-
* (it ships in every served page).
|
|
10
|
-
*
|
|
9
|
+
* (it ships in every served page). --api / `alkahest login --api <url>` / ALKAHEST_API_URL
|
|
10
|
+
* override it to reach ANOTHER DEPLOYMENT of the backend (a local Supabase, a branch DB) —
|
|
11
|
+
* that is a development escape hatch, not a self-hosting story: the backend lives in the
|
|
12
|
+
* private web repo, so nobody outside it has one to point at.
|
|
11
13
|
*/
|
|
12
|
-
const DEFAULT_API_URL = "https://ytcmzkrvtomtcrcyqqcb.supabase.co/functions/v1";
|
|
14
|
+
export const DEFAULT_API_URL = "https://ytcmzkrvtomtcrcyqqcb.supabase.co/functions/v1";
|
|
13
15
|
export function loadCredentials() {
|
|
14
16
|
try {
|
|
15
17
|
return JSON.parse(readFileSync(CRED_FILE, "utf8"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/core/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAgBlC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/core/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAgBlC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,uDAAuD,CAAC;AAEvF,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAgB,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAAC,IAAwB,EAAE,KAAkB;IACxE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAuB,EAAE,KAAkB;IACtE,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type CodeMapFingerprint, type ProjectInfo, type WorkspaceInfo } from "./listProjects.js";
|
|
2
|
+
/**
|
|
3
|
+
* "Where am I signed in, and where does this folder publish?" — the state behind
|
|
4
|
+
* `alkahest status` and behind a bare `alkahest login`.
|
|
5
|
+
*
|
|
6
|
+
* There is no /whoami endpoint and nothing to be a "who": a token resolves to a user_id and a
|
|
7
|
+
* set of workspaces, never a username (see supabase `_shared/auth.ts` / `list-projects`). So the
|
|
8
|
+
* question this answers is the STATE one — is the token live, what can it reach, and which
|
|
9
|
+
* project/map this checkout is bound to. `list-projects` doubles as the validity probe: it is the
|
|
10
|
+
* cheapest authenticated GET, and its rejection codes distinguish revoked from expired from scoped.
|
|
11
|
+
*
|
|
12
|
+
* Like the other core clients this returns a structured result and never writes to stdout/stderr —
|
|
13
|
+
* the MCP server reserves stdout for JSON-RPC.
|
|
14
|
+
*/
|
|
15
|
+
export type AuthState =
|
|
16
|
+
/** No token anywhere (credentials file, ALKAHEST_TOKEN). */
|
|
17
|
+
"anonymous"
|
|
18
|
+
/** Token accepted — full access. */
|
|
19
|
+
| "authenticated"
|
|
20
|
+
/** Token is live but SCOPED (widget/capture); it cannot reach the account-wide verbs. */
|
|
21
|
+
| "scoped"
|
|
22
|
+
/** Token unknown or revoked. */
|
|
23
|
+
| "invalid"
|
|
24
|
+
/** Token past its expires_at. */
|
|
25
|
+
| "expired"
|
|
26
|
+
/** The API could not be reached — says nothing about the token. */
|
|
27
|
+
| "unreachable";
|
|
28
|
+
export interface AuthStatus {
|
|
29
|
+
state: AuthState;
|
|
30
|
+
/** True for every state where the token is known-good (authenticated | scoped). */
|
|
31
|
+
ok: boolean;
|
|
32
|
+
apiUrl: string;
|
|
33
|
+
/** The API is the hosted alkahest.app backend (not a self-hosted override). */
|
|
34
|
+
hosted: boolean;
|
|
35
|
+
/** Present whenever a token was found locally, valid or not. */
|
|
36
|
+
token?: {
|
|
37
|
+
masked: string;
|
|
38
|
+
source: "credentials" | "env";
|
|
39
|
+
};
|
|
40
|
+
/** Only on `authenticated` — a scoped token never gets to enumerate. */
|
|
41
|
+
workspaces?: WorkspaceInfo[];
|
|
42
|
+
projects?: ProjectInfo[];
|
|
43
|
+
/** Server or transport message, for the failure states. */
|
|
44
|
+
message?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Resolve the local token, then probe it against the API. One round trip, no writes. */
|
|
47
|
+
export declare function authStatus(params?: {
|
|
48
|
+
api?: string;
|
|
49
|
+
token?: string;
|
|
50
|
+
}): Promise<AuthStatus>;
|
|
51
|
+
export interface CheckoutStatus {
|
|
52
|
+
/** Nearest ancestor holding a `.alkahest/` — the folder this status describes. */
|
|
53
|
+
root: string;
|
|
54
|
+
/** The project this checkout publishes to, if it has ever been linked. */
|
|
55
|
+
slug?: string;
|
|
56
|
+
mapSlug?: string;
|
|
57
|
+
/** Server-side detail for `slug`, when the account can see it. */
|
|
58
|
+
project?: ProjectInfo;
|
|
59
|
+
/** The `mapSlug` entry of `project.codeMaps` (or the sole code map when unset). */
|
|
60
|
+
map?: CodeMapFingerprint;
|
|
61
|
+
/** Linked locally, but the account cannot see that project — moved, deleted, or another account's. */
|
|
62
|
+
unreachable: boolean;
|
|
63
|
+
}
|
|
64
|
+
/** Join the local link (`.alkahest/project.json`) to what the account can actually see. */
|
|
65
|
+
export declare function checkoutStatus(path: string, auth: AuthStatus): CheckoutStatus;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { DEFAULT_API_URL, loadCredentials, resolveApiUrl, resolveToken } from "./credentials.js";
|
|
2
|
+
import { listProjects } from "./listProjects.js";
|
|
3
|
+
import { resolveProject } from "./project.js";
|
|
4
|
+
/** alk_1234…cdef — enough to tell two tokens apart, not enough to use. */
|
|
5
|
+
function mask(token) {
|
|
6
|
+
return token.length <= 12 ? "alk_…" : `${token.slice(0, 8)}…${token.slice(-4)}`;
|
|
7
|
+
}
|
|
8
|
+
const STATE_BY_CODE = {
|
|
9
|
+
no_token: "anonymous",
|
|
10
|
+
"missing token": "anonymous",
|
|
11
|
+
invalid_token: "invalid",
|
|
12
|
+
token_expired: "expired",
|
|
13
|
+
insufficient_scope: "scoped",
|
|
14
|
+
network: "unreachable",
|
|
15
|
+
no_api: "unreachable",
|
|
16
|
+
};
|
|
17
|
+
/** Resolve the local token, then probe it against the API. One round trip, no writes. */
|
|
18
|
+
export async function authStatus(params = {}) {
|
|
19
|
+
const creds = loadCredentials();
|
|
20
|
+
const apiUrl = resolveApiUrl(params.api, creds);
|
|
21
|
+
const hosted = apiUrl === DEFAULT_API_URL;
|
|
22
|
+
const token = resolveToken(params.token, creds);
|
|
23
|
+
if (!token)
|
|
24
|
+
return { state: "anonymous", ok: false, apiUrl, hosted };
|
|
25
|
+
const source = params.token || creds.token ? "credentials" : "env";
|
|
26
|
+
const found = { masked: mask(token), source };
|
|
27
|
+
const res = await listProjects({ api: params.api, token });
|
|
28
|
+
if (res.ok) {
|
|
29
|
+
return {
|
|
30
|
+
state: "authenticated", ok: true, apiUrl, hosted, token: found,
|
|
31
|
+
workspaces: res.workspaces ?? [], projects: res.projects ?? [],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const state = STATE_BY_CODE[res.code ?? ""] ?? "invalid";
|
|
35
|
+
return { state, ok: state === "scoped", apiUrl, hosted, token: found, message: res.message };
|
|
36
|
+
}
|
|
37
|
+
/** Join the local link (`.alkahest/project.json`) to what the account can actually see. */
|
|
38
|
+
export function checkoutStatus(path, auth) {
|
|
39
|
+
const { root, slug, mapSlug } = resolveProject(path);
|
|
40
|
+
if (!slug)
|
|
41
|
+
return { root, unreachable: false };
|
|
42
|
+
const project = auth.projects?.find((p) => p.slug === slug);
|
|
43
|
+
const map = project
|
|
44
|
+
? project.codeMaps.find((m) => m.mapSlug === mapSlug) ??
|
|
45
|
+
(mapSlug ? undefined : project.codeMaps[0])
|
|
46
|
+
: undefined;
|
|
47
|
+
// Only call it unreachable when we actually had a list to miss in.
|
|
48
|
+
return { root, slug, mapSlug, project, map, unreachable: Boolean(auth.projects && !project) };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/core/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-facing time formatting shared by the commands that print timelines
|
|
3
|
+
* (`history`, `status`). Kept in core so the two agree on what "2h ago" means.
|
|
4
|
+
*/
|
|
5
|
+
/** "just now" / "5m ago" / "3d ago" — empty string for an unparsable stamp. */
|
|
6
|
+
export declare function relTime(iso: string): string;
|
|
7
|
+
/** YYYY-MM-DD HH:MM in local time, no seconds. */
|
|
8
|
+
export declare function stamp(iso: string): string;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Human-facing time formatting shared by the commands that print timelines
|
|
3
|
+
* (`history`, `status`). Kept in core so the two agree on what "2h ago" means.
|
|
4
|
+
*/
|
|
5
|
+
/** "just now" / "5m ago" / "3d ago" — empty string for an unparsable stamp. */
|
|
6
|
+
export function relTime(iso) {
|
|
7
|
+
const then = Date.parse(iso);
|
|
8
|
+
if (Number.isNaN(then))
|
|
9
|
+
return "";
|
|
10
|
+
const s = Math.max(0, Math.floor((Date.now() - then) / 1000));
|
|
11
|
+
if (s < 60)
|
|
12
|
+
return "just now";
|
|
13
|
+
const m = Math.floor(s / 60);
|
|
14
|
+
if (m < 60)
|
|
15
|
+
return `${m}m ago`;
|
|
16
|
+
const h = Math.floor(m / 60);
|
|
17
|
+
if (h < 24)
|
|
18
|
+
return `${h}h ago`;
|
|
19
|
+
const d = Math.floor(h / 24);
|
|
20
|
+
if (d < 30)
|
|
21
|
+
return `${d}d ago`;
|
|
22
|
+
const mo = Math.floor(d / 30);
|
|
23
|
+
return mo < 12 ? `${mo}mo ago` : `${Math.floor(mo / 12)}y ago`;
|
|
24
|
+
}
|
|
25
|
+
/** YYYY-MM-DD HH:MM in local time, no seconds. */
|
|
26
|
+
export function stamp(iso) {
|
|
27
|
+
const d = new Date(iso);
|
|
28
|
+
if (Number.isNaN(d.getTime()))
|
|
29
|
+
return iso;
|
|
30
|
+
const p = (n) => String(n).padStart(2, "0");
|
|
31
|
+
return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/core/time.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAAC,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;AAChG,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,KAAK,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC"}
|