@debian777/kairos-mcp 3.2.0-pre.0 → 3.2.0-pre.1
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/dist/.tsbuildinfo +1 -1
- package/dist/cli/api-client.d.ts +18 -18
- package/dist/cli/api-client.d.ts.map +1 -1
- package/dist/cli/api-client.js +64 -20
- package/dist/cli/api-client.js.map +1 -1
- package/dist/cli/auth-error.d.ts +17 -0
- package/dist/cli/auth-error.d.ts.map +1 -0
- package/dist/cli/auth-error.js +51 -0
- package/dist/cli/auth-error.js.map +1 -0
- package/dist/cli/commands/attest.d.ts.map +1 -1
- package/dist/cli/commands/attest.js +3 -11
- package/dist/cli/commands/attest.js.map +1 -1
- package/dist/cli/commands/begin.d.ts.map +1 -1
- package/dist/cli/commands/begin.js +4 -13
- package/dist/cli/commands/begin.js.map +1 -1
- package/dist/cli/commands/delete.d.ts.map +1 -1
- package/dist/cli/commands/delete.js +4 -13
- package/dist/cli/commands/delete.js.map +1 -1
- package/dist/cli/commands/login.d.ts +16 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +203 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +6 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +17 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/mint.d.ts.map +1 -1
- package/dist/cli/commands/mint.js +4 -14
- package/dist/cli/commands/mint.js.map +1 -1
- package/dist/cli/commands/next.d.ts.map +1 -1
- package/dist/cli/commands/next.js +5 -18
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +4 -13
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/token.d.ts +6 -0
- package/dist/cli/commands/token.d.ts.map +1 -0
- package/dist/cli/commands/token.js +45 -0
- package/dist/cli/commands/token.js.map +1 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +4 -14
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/config-file.d.ts +47 -0
- package/dist/cli/config-file.d.ts.map +1 -0
- package/dist/cli/config-file.js +257 -0
- package/dist/cli/config-file.js.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/keyring.d.ts +22 -0
- package/dist/cli/keyring.d.ts.map +1 -0
- package/dist/cli/keyring.js +76 -0
- package/dist/cli/keyring.js.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -6
- package/dist/config.js.map +1 -1
- package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002001.md +1 -1
- package/dist/embed-docs/mem/00000000-0000-0000-0000-000000002002.md +1 -1
- package/dist/http/http-api-attest.d.ts +2 -1
- package/dist/http/http-api-attest.d.ts.map +1 -1
- package/dist/http/http-api-attest.js +18 -87
- package/dist/http/http-api-attest.js.map +1 -1
- package/dist/http/http-api-begin-step.d.ts +2 -1
- package/dist/http/http-api-begin-step.d.ts.map +1 -1
- package/dist/http/http-api-begin-step.js +17 -91
- package/dist/http/http-api-begin-step.js.map +1 -1
- package/dist/http/http-api-begin.d.ts +2 -1
- package/dist/http/http-api-begin.d.ts.map +1 -1
- package/dist/http/http-api-begin.js +18 -157
- package/dist/http/http-api-begin.js.map +1 -1
- package/dist/http/http-api-delete.d.ts +1 -3
- package/dist/http/http-api-delete.d.ts.map +1 -1
- package/dist/http/http-api-delete.js +12 -47
- package/dist/http/http-api-delete.js.map +1 -1
- package/dist/http/http-api-dump.d.ts.map +1 -1
- package/dist/http/http-api-dump.js +1 -3
- package/dist/http/http-api-dump.js.map +1 -1
- package/dist/http/http-api-mint.d.ts +2 -3
- package/dist/http/http-api-mint.d.ts.map +1 -1
- package/dist/http/http-api-mint.js +42 -54
- package/dist/http/http-api-mint.js.map +1 -1
- package/dist/http/http-api-next.d.ts +2 -2
- package/dist/http/http-api-next.d.ts.map +1 -1
- package/dist/http/http-api-next.js +26 -216
- package/dist/http/http-api-next.js.map +1 -1
- package/dist/http/http-api-spaces.d.ts +1 -0
- package/dist/http/http-api-spaces.d.ts.map +1 -1
- package/dist/http/http-api-spaces.js +5 -4
- package/dist/http/http-api-spaces.js.map +1 -1
- package/dist/http/http-api-update.d.ts +1 -3
- package/dist/http/http-api-update.d.ts.map +1 -1
- package/dist/http/http-api-update.js +12 -85
- package/dist/http/http-api-update.js.map +1 -1
- package/dist/http/http-auth-callback.d.ts.map +1 -1
- package/dist/http/http-auth-callback.js +5 -3
- package/dist/http/http-auth-callback.js.map +1 -1
- package/dist/http/http-auth-middleware.d.ts.map +1 -1
- package/dist/http/http-auth-middleware.js +4 -2
- package/dist/http/http-auth-middleware.js.map +1 -1
- package/dist/http/http-well-known.d.ts.map +1 -1
- package/dist/http/http-well-known.js +10 -1
- package/dist/http/http-well-known.js.map +1 -1
- package/dist/tools/kairos_attest.d.ts +4 -1
- package/dist/tools/kairos_attest.d.ts.map +1 -1
- package/dist/tools/kairos_attest.js +90 -152
- package/dist/tools/kairos_attest.js.map +1 -1
- package/dist/tools/kairos_attest_schema.d.ts +25 -0
- package/dist/tools/kairos_attest_schema.d.ts.map +1 -0
- package/dist/tools/kairos_attest_schema.js +23 -0
- package/dist/tools/kairos_attest_schema.js.map +1 -0
- package/dist/tools/kairos_begin.d.ts +45 -0
- package/dist/tools/kairos_begin.d.ts.map +1 -1
- package/dist/tools/kairos_begin.js +43 -67
- package/dist/tools/kairos_begin.js.map +1 -1
- package/dist/tools/kairos_delete.d.ts +4 -0
- package/dist/tools/kairos_delete.d.ts.map +1 -1
- package/dist/tools/kairos_delete.js +51 -91
- package/dist/tools/kairos_delete.js.map +1 -1
- package/dist/tools/kairos_delete_schema.d.ts +19 -0
- package/dist/tools/kairos_delete_schema.d.ts.map +1 -0
- package/dist/tools/kairos_delete_schema.js +20 -0
- package/dist/tools/kairos_delete_schema.js.map +1 -0
- package/dist/tools/kairos_dump.d.ts.map +1 -1
- package/dist/tools/kairos_dump.js +3 -6
- package/dist/tools/kairos_dump.js.map +1 -1
- package/dist/tools/kairos_dump_schema.d.ts +22 -0
- package/dist/tools/kairos_dump_schema.d.ts.map +1 -0
- package/dist/tools/kairos_dump_schema.js +21 -0
- package/dist/tools/kairos_dump_schema.js.map +1 -0
- package/dist/tools/kairos_mint.d.ts +13 -0
- package/dist/tools/kairos_mint.d.ts.map +1 -1
- package/dist/tools/kairos_mint.js +91 -170
- package/dist/tools/kairos_mint.js.map +1 -1
- package/dist/tools/kairos_mint_schema.d.ts +20 -0
- package/dist/tools/kairos_mint_schema.d.ts.map +1 -0
- package/dist/tools/kairos_mint_schema.js +21 -0
- package/dist/tools/kairos_mint_schema.js.map +1 -0
- package/dist/tools/kairos_next.d.ts +19 -0
- package/dist/tools/kairos_next.d.ts.map +1 -1
- package/dist/tools/kairos_next.js +137 -164
- package/dist/tools/kairos_next.js.map +1 -1
- package/dist/tools/kairos_next_schema.d.ts +30 -0
- package/dist/tools/kairos_next_schema.d.ts.map +1 -1
- package/dist/tools/kairos_next_schema.js +1 -1
- package/dist/tools/kairos_next_schema.js.map +1 -1
- package/dist/tools/kairos_search.d.ts +8 -0
- package/dist/tools/kairos_search.d.ts.map +1 -1
- package/dist/tools/kairos_search.js +62 -102
- package/dist/tools/kairos_search.js.map +1 -1
- package/dist/tools/kairos_search_schema.d.ts +29 -0
- package/dist/tools/kairos_search_schema.d.ts.map +1 -0
- package/dist/tools/kairos_search_schema.js +34 -0
- package/dist/tools/kairos_search_schema.js.map +1 -0
- package/dist/tools/kairos_spaces.d.ts.map +1 -1
- package/dist/tools/kairos_spaces.js +3 -17
- package/dist/tools/kairos_spaces.js.map +1 -1
- package/dist/tools/kairos_spaces_schema.d.ts +18 -0
- package/dist/tools/kairos_spaces_schema.d.ts.map +1 -0
- package/dist/tools/kairos_spaces_schema.js +18 -0
- package/dist/tools/kairos_spaces_schema.js.map +1 -0
- package/dist/tools/kairos_update.d.ts +4 -0
- package/dist/tools/kairos_update.d.ts.map +1 -1
- package/dist/tools/kairos_update.js +86 -136
- package/dist/tools/kairos_update.js.map +1 -1
- package/dist/tools/kairos_update_schema.d.ts +21 -0
- package/dist/tools/kairos_update_schema.d.ts.map +1 -0
- package/dist/tools/kairos_update_schema.js +19 -0
- package/dist/tools/kairos_update_schema.js.map +1 -0
- package/dist/ui/assets/{AccountPage-ABQtEvrl.js → AccountPage-BL6axdSM.js} +1 -1
- package/dist/ui/assets/{ErrorAlert-mWXE_ybA.js → ErrorAlert-BZ9fcFra.js} +1 -1
- package/dist/ui/assets/HomePage-DW0pRc7p.js +1 -0
- package/dist/ui/assets/KairosPage-DmLqoGH6.js +1 -0
- package/dist/ui/assets/{NotFoundPage-CFLCpS7F.js → NotFoundPage-D_pmwlaP.js} +1 -1
- package/dist/ui/assets/{ProtocolDetailPage-PM8MMjGn.js → ProtocolDetailPage-CJNogAl5.js} +1 -1
- package/dist/ui/assets/ProtocolEditPage-Bkzigacr.js +1 -0
- package/dist/ui/assets/RenderedMarkdown-aCE5th2O.js +1 -0
- package/dist/ui/assets/RunGuidedPage-D4bM9Ydy.js +1 -0
- package/dist/ui/assets/{RunsPage-B05ZgMbz.js → RunsPage-DkKysBby.js} +1 -1
- package/dist/ui/assets/{SkillBundlePage-BGil3a6Z.js → SkillBundlePage-BuqWxuKQ.js} +1 -1
- package/dist/ui/assets/{index-BIjAxCcH.css → index-BKt9Ajxh.css} +1 -1
- package/dist/ui/assets/index-CEw29yv9.js +8 -0
- package/dist/ui/assets/tiptap-TmXkXpg-.js +208 -0
- package/dist/ui/assets/{useProtocol-BeICXNOH.js → useProtocol-DRmomlxF.js} +1 -1
- package/dist/ui/assets/useSpaces-s_4tANjH.js +1 -0
- package/dist/ui/assets/{vendor-BsznKrmc.js → vendor-B9cF_9Dh.js} +23 -8
- package/dist/ui/index.html +3 -3
- package/package.json +8 -1
- package/dist/ui/assets/HomePage-CzSCu1zr.js +0 -1
- package/dist/ui/assets/KairosPage-CQPPSXnp.js +0 -1
- package/dist/ui/assets/ProtocolEditPage-DZ3Y4CuH.js +0 -1
- package/dist/ui/assets/RenderedMarkdown-BW0nFg56.js +0 -1
- package/dist/ui/assets/RunGuidedPage-id4Rq3wv.js +0 -1
- package/dist/ui/assets/index-CLE0f6T2.js +0 -8
- package/dist/ui/assets/tiptap-B72-Jr8c.js +0 -204
- /package/dist/ui/assets/{useRunSession-Bo27WurC.js → useRunSession-CciNdgs6.js} +0 -0
package/dist/cli/api-client.d.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* API Client for KAIROS REST API
|
|
2
|
+
* API Client for KAIROS REST API.
|
|
3
|
+
* Returns canonical response shapes (no metadata wrapper).
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
}
|
|
5
|
+
import type { SearchOutput } from '../tools/kairos_search_schema.js';
|
|
6
|
+
import type { BeginOutput } from '../tools/kairos_begin.js';
|
|
7
|
+
import type { NextOutput } from '../tools/kairos_next.js';
|
|
8
|
+
import type { AttestOutput } from '../tools/kairos_attest_schema.js';
|
|
9
|
+
import type { MintOutput } from '../tools/kairos_mint_schema.js';
|
|
10
|
+
import type { UpdateOutput } from '../tools/kairos_update_schema.js';
|
|
11
|
+
import type { DeleteOutput } from '../tools/kairos_delete_schema.js';
|
|
13
12
|
export declare class ApiClient {
|
|
14
13
|
private baseUrl;
|
|
15
|
-
|
|
14
|
+
private openInBrowser;
|
|
15
|
+
constructor(baseUrl?: string, openInBrowser?: boolean);
|
|
16
16
|
private request;
|
|
17
|
-
search(query: string): Promise<
|
|
18
|
-
begin(uri: string): Promise<
|
|
19
|
-
next(uri: string, solution?:
|
|
17
|
+
search(query: string): Promise<SearchOutput>;
|
|
18
|
+
begin(uri: string): Promise<BeginOutput>;
|
|
19
|
+
next(uri: string, solution?: unknown): Promise<NextOutput>;
|
|
20
20
|
mint(markdown: string, options?: {
|
|
21
21
|
llmModelId?: string;
|
|
22
22
|
force?: boolean;
|
|
23
|
-
}): Promise<
|
|
24
|
-
update(uris: string[], markdownDoc?: string[], updates?: Record<string,
|
|
25
|
-
delete(uris: string[]): Promise<
|
|
23
|
+
}, isRetryAfterLogin?: boolean): Promise<MintOutput>;
|
|
24
|
+
update(uris: string[], markdownDoc?: string[], updates?: Record<string, unknown>): Promise<UpdateOutput>;
|
|
25
|
+
delete(uris: string[]): Promise<DeleteOutput>;
|
|
26
26
|
attest(uri: string, outcome: 'success' | 'failure', message: string, options?: {
|
|
27
27
|
qualityBonus?: number;
|
|
28
28
|
llmModelId?: string;
|
|
29
|
-
}): Promise<
|
|
29
|
+
}): Promise<AttestOutput>;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/cli/api-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/cli/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE,qBAAa,SAAS;IAClB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAU;gBAEnB,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO;YASvC,OAAO;IA8Df,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAO5C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAOxC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAO1D,IAAI,CACN,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAClD,iBAAiB,UAAQ,GAC1B,OAAO,CAAC,UAAU,CAAC;IA8ChB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAOxG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAO7C,MAAM,CACR,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,OAAO,CAAC,YAAY,CAAC;CAY3B"}
|
package/dist/cli/api-client.js
CHANGED
|
@@ -1,37 +1,73 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* API Client for KAIROS REST API
|
|
2
|
+
* API Client for KAIROS REST API.
|
|
3
|
+
* Returns canonical response shapes (no metadata wrapper).
|
|
3
4
|
*/
|
|
5
|
+
import { AuthRequiredError } from './auth-error.js';
|
|
4
6
|
import { getApiUrl } from './config.js';
|
|
7
|
+
import { getDefaultApiUrlFromFile, readConfig } from './config-file.js';
|
|
8
|
+
import { loginWithBrowser } from './commands/login.js';
|
|
5
9
|
export class ApiClient {
|
|
6
10
|
baseUrl;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
openInBrowser;
|
|
12
|
+
constructor(baseUrl, openInBrowser) {
|
|
13
|
+
// Precedence: env, then parameter, then config file (sync URL only), then default. openInBrowser true = auto-login on 401 or no token
|
|
14
|
+
const configUrl = getDefaultApiUrlFromFile();
|
|
15
|
+
this.baseUrl = process.env['KAIROS_API_URL'] || baseUrl || configUrl || getApiUrl();
|
|
11
16
|
this.baseUrl = this.baseUrl.replace(/\/$/, '');
|
|
17
|
+
const noAutoLogin = process.env['KAIROS_CLI_NO_AUTO_LOGIN'] === '1' || process.env['KAIROS_CLI_NO_AUTO_LOGIN'] === 'true';
|
|
18
|
+
this.openInBrowser = !noAutoLogin && (openInBrowser !== false);
|
|
12
19
|
}
|
|
13
|
-
async request(endpoint, options = {}) {
|
|
20
|
+
async request(endpoint, options = {}, isRetryAfterLogin = false) {
|
|
14
21
|
const url = `${this.baseUrl}${endpoint}`;
|
|
15
22
|
const defaultHeaders = {
|
|
16
23
|
'Content-Type': 'application/json',
|
|
17
24
|
};
|
|
18
|
-
|
|
25
|
+
let bearer = (await readConfig(this.baseUrl)).bearerToken;
|
|
26
|
+
if (!bearer && this.openInBrowser && !isRetryAfterLogin) {
|
|
27
|
+
const ok = await loginWithBrowser(this.baseUrl);
|
|
28
|
+
if (ok)
|
|
29
|
+
return this.request(endpoint, options, true);
|
|
30
|
+
}
|
|
19
31
|
if (bearer) {
|
|
20
32
|
defaultHeaders['Authorization'] = `Bearer ${bearer}`;
|
|
21
33
|
}
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
const requestTimeoutMs = 15_000;
|
|
35
|
+
const ac = new AbortController();
|
|
36
|
+
const timeoutId = setTimeout(() => ac.abort(), requestTimeoutMs);
|
|
37
|
+
let response;
|
|
38
|
+
try {
|
|
39
|
+
response = await fetch(url, {
|
|
40
|
+
...options,
|
|
41
|
+
signal: ac.signal,
|
|
42
|
+
headers: {
|
|
43
|
+
...defaultHeaders,
|
|
44
|
+
...(options.headers || {}),
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
clearTimeout(timeoutId);
|
|
50
|
+
if (err instanceof Error && err.name === 'AbortError') {
|
|
51
|
+
throw new Error(`Request to ${url} timed out after ${requestTimeoutMs / 1000}s`);
|
|
52
|
+
}
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
clearTimeout(timeoutId);
|
|
29
56
|
const data = await response.json().catch(() => {
|
|
30
57
|
throw new Error(`Failed to parse response from ${url}`);
|
|
31
58
|
});
|
|
32
59
|
if (!response.ok) {
|
|
33
60
|
const errorData = data;
|
|
34
|
-
|
|
61
|
+
const msg = errorData.message || errorData.error || `HTTP ${response.status}: ${response.statusText}`;
|
|
62
|
+
if (response.status === 401 && errorData.login_url) {
|
|
63
|
+
if (this.openInBrowser && !isRetryAfterLogin) {
|
|
64
|
+
const ok = await loginWithBrowser(this.baseUrl);
|
|
65
|
+
if (ok)
|
|
66
|
+
return this.request(endpoint, options, true);
|
|
67
|
+
}
|
|
68
|
+
throw new AuthRequiredError(`${msg}\n\nLog in at:\n${errorData.login_url}`, errorData.login_url);
|
|
69
|
+
}
|
|
70
|
+
throw new Error(msg);
|
|
35
71
|
}
|
|
36
72
|
return data;
|
|
37
73
|
}
|
|
@@ -53,12 +89,12 @@ export class ApiClient {
|
|
|
53
89
|
body: JSON.stringify({ uri, solution }),
|
|
54
90
|
});
|
|
55
91
|
}
|
|
56
|
-
async mint(markdown, options) {
|
|
92
|
+
async mint(markdown, options, isRetryAfterLogin = false) {
|
|
57
93
|
const url = `${this.baseUrl}/api/kairos_mint/raw`;
|
|
58
94
|
const headers = {
|
|
59
95
|
'Content-Type': 'text/markdown',
|
|
60
96
|
};
|
|
61
|
-
const bearer =
|
|
97
|
+
const bearer = (await readConfig(this.baseUrl)).bearerToken;
|
|
62
98
|
if (bearer) {
|
|
63
99
|
headers['Authorization'] = `Bearer ${bearer}`;
|
|
64
100
|
}
|
|
@@ -77,8 +113,16 @@ export class ApiClient {
|
|
|
77
113
|
throw new Error(`Failed to parse response from ${url}`);
|
|
78
114
|
});
|
|
79
115
|
if (!response.ok) {
|
|
80
|
-
const
|
|
81
|
-
|
|
116
|
+
const msg = data.message || data.error || `HTTP ${response.status}: ${response.statusText}`;
|
|
117
|
+
if (response.status === 401 && data.login_url) {
|
|
118
|
+
if (this.openInBrowser && !isRetryAfterLogin) {
|
|
119
|
+
const ok = await loginWithBrowser(this.baseUrl);
|
|
120
|
+
if (ok)
|
|
121
|
+
return this.mint(markdown, options, true);
|
|
122
|
+
}
|
|
123
|
+
throw new AuthRequiredError(`${msg}\n\nLog in at:\n${data.login_url}`, data.login_url);
|
|
124
|
+
}
|
|
125
|
+
throw new Error(msg);
|
|
82
126
|
}
|
|
83
127
|
return data;
|
|
84
128
|
}
|
|
@@ -101,7 +145,7 @@ export class ApiClient {
|
|
|
101
145
|
uri,
|
|
102
146
|
outcome,
|
|
103
147
|
message,
|
|
104
|
-
quality_bonus: options?.qualityBonus
|
|
148
|
+
quality_bonus: options?.qualityBonus ?? 0,
|
|
105
149
|
llm_model_id: options?.llmModelId,
|
|
106
150
|
}),
|
|
107
151
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/cli/api-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/cli/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth-related errors and handling (401 with login_url).
|
|
3
|
+
* Auth message is written without "Error: " prefix; --open can open the URL.
|
|
4
|
+
*/
|
|
5
|
+
export declare class AuthRequiredError extends Error {
|
|
6
|
+
readonly loginUrl: string;
|
|
7
|
+
constructor(message: string, loginUrl: string);
|
|
8
|
+
}
|
|
9
|
+
/** When set, used instead of system default (open/xdg-open/start). URL is passed as first argument. */
|
|
10
|
+
export declare function openBrowser(url: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Handle API errors: AuthRequiredError is printed without "Error: " prefix;
|
|
13
|
+
* if openInBrowser is true, opens the login URL. Other errors use writeError.
|
|
14
|
+
* Never returns (calls process.exit(1)).
|
|
15
|
+
*/
|
|
16
|
+
export declare function handleApiError(error: unknown, openInBrowser?: boolean): never;
|
|
17
|
+
//# sourceMappingURL=auth-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-error.d.ts","sourceRoot":"","sources":["../../src/cli/auth-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,qBAAa,iBAAkB,SAAQ,KAAK;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAKhD;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAiB7C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,KAAK,CAQ7E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth-related errors and handling (401 with login_url).
|
|
3
|
+
* Auth message is written without "Error: " prefix; --open can open the URL.
|
|
4
|
+
*/
|
|
5
|
+
import { exec } from 'child_process';
|
|
6
|
+
import { platform } from 'os';
|
|
7
|
+
import { writeError, writeStderr } from './output.js';
|
|
8
|
+
export class AuthRequiredError extends Error {
|
|
9
|
+
loginUrl;
|
|
10
|
+
constructor(message, loginUrl) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'AuthRequiredError';
|
|
13
|
+
this.loginUrl = loginUrl;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** When set, used instead of system default (open/xdg-open/start). URL is passed as first argument. */
|
|
17
|
+
export function openBrowser(url) {
|
|
18
|
+
const browserEnv = process.env['BROWSER'];
|
|
19
|
+
if (browserEnv) {
|
|
20
|
+
exec(`${browserEnv} "${url}"`, (err) => {
|
|
21
|
+
if (err)
|
|
22
|
+
writeStderr(`Could not run BROWSER: ${err.message}. Open this URL manually:\n${url}`);
|
|
23
|
+
});
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const cmd = platform() === 'win32'
|
|
27
|
+
? `start "${url}"`
|
|
28
|
+
: platform() === 'darwin'
|
|
29
|
+
? `open "${url}"`
|
|
30
|
+
: `xdg-open "${url}"`;
|
|
31
|
+
exec(cmd, (err) => {
|
|
32
|
+
if (err)
|
|
33
|
+
writeStderr(`Could not open browser: ${err.message}. Open this URL manually:\n${url}`);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Handle API errors: AuthRequiredError is printed without "Error: " prefix;
|
|
38
|
+
* if openInBrowser is true, opens the login URL. Other errors use writeError.
|
|
39
|
+
* Never returns (calls process.exit(1)).
|
|
40
|
+
*/
|
|
41
|
+
export function handleApiError(error, openInBrowser) {
|
|
42
|
+
if (error instanceof AuthRequiredError) {
|
|
43
|
+
writeStderr(error.message);
|
|
44
|
+
if (openInBrowser)
|
|
45
|
+
openBrowser(error.loginUrl);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
writeError(error instanceof Error ? error.message : String(error));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=auth-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-error.js","sourceRoot":"","sources":["../../src/cli/auth-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC/B,QAAQ,CAAS;IAE1B,YAAY,OAAe,EAAE,QAAgB;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAED,uGAAuG;AACvG,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,UAAU,KAAK,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,GAAG;gBAAE,WAAW,CAAC,0BAA0B,GAAG,CAAC,OAAO,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,OAAO;IACX,CAAC;IACD,MAAM,GAAG,GACL,QAAQ,EAAE,KAAK,OAAO;QAClB,CAAC,CAAC,UAAU,GAAG,GAAG;QAClB,CAAC,CAAC,QAAQ,EAAE,KAAK,QAAQ;YACvB,CAAC,CAAC,SAAS,GAAG,GAAG;YACjB,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;QACd,IAAI,GAAG;YAAE,WAAW,CAAC,2BAA2B,GAAG,CAAC,OAAO,8BAA8B,GAAG,EAAE,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,aAAuB;IAClE,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACrC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,aAAa;YAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,UAAU,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attest.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/attest.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"attest.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/attest.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgDpD"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* kairos attest command (V2: no final_solution required)
|
|
3
3
|
*/
|
|
4
4
|
import { ApiClient } from '../api-client.js';
|
|
5
|
+
import { handleApiError } from '../auth-error.js';
|
|
5
6
|
import { writeError, writeJson } from '../output.js';
|
|
6
7
|
export function attestCommand(program) {
|
|
7
8
|
program
|
|
@@ -25,7 +26,7 @@ export function attestCommand(program) {
|
|
|
25
26
|
process.exit(1);
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
28
|
-
const client = new ApiClient();
|
|
29
|
+
const client = new ApiClient(undefined, !program.opts()['noBrowser']);
|
|
29
30
|
const attestOptions = {
|
|
30
31
|
qualityBonus,
|
|
31
32
|
};
|
|
@@ -33,19 +34,10 @@ export function attestCommand(program) {
|
|
|
33
34
|
attestOptions.llmModelId = options.model;
|
|
34
35
|
}
|
|
35
36
|
const response = await client.attest(uri, outcome, message, attestOptions);
|
|
36
|
-
if (response.error) {
|
|
37
|
-
writeError(response.error);
|
|
38
|
-
if (response.message) {
|
|
39
|
-
writeError(response.message);
|
|
40
|
-
}
|
|
41
|
-
process.exit(1);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
37
|
writeJson(response);
|
|
45
38
|
}
|
|
46
39
|
catch (error) {
|
|
47
|
-
|
|
48
|
-
process.exit(1);
|
|
40
|
+
handleApiError(error, !program.opts()['noBrowser']);
|
|
49
41
|
}
|
|
50
42
|
});
|
|
51
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attest.js","sourceRoot":"","sources":["../../../src/cli/commands/attest.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,QAAQ,CAAC,OAAO,EAAE,sCAAsC,CAAC;SACzD,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC;SACpD,QAAQ,CAAC,WAAW,EAAE,0DAA0D,CAAC;SACjF,MAAM,CAAC,0BAA0B,EAAE,gDAAgD,EAAE,GAAG,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,KAAK,EACT,GAAW,EACX,OAAe,EACf,OAAe,EACf,OAAkD,EACpD,EAAE;QACA,IAAI,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjD,UAAU,CAAC,wCAAwC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACX,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtB,UAAU,CAAC,kCAAkC,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"attest.js","sourceRoot":"","sources":["../../../src/cli/commands/attest.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,QAAQ,CAAC,OAAO,EAAE,sCAAsC,CAAC;SACzD,QAAQ,CAAC,WAAW,EAAE,6BAA6B,CAAC;SACpD,QAAQ,CAAC,WAAW,EAAE,0DAA0D,CAAC;SACjF,MAAM,CAAC,0BAA0B,EAAE,gDAAgD,EAAE,GAAG,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,KAAK,EACT,GAAW,EACX,OAAe,EACf,OAAe,EACf,OAAkD,EACpD,EAAE;QACA,IAAI,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjD,UAAU,CAAC,wCAAwC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACX,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtB,UAAU,CAAC,kCAAkC,CAAC,CAAC;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAEtE,MAAM,aAAa,GAAmD;gBAClE,YAAY;aACf,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;YAC7C,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAChC,GAAG,EACH,OAAgC,EAChC,OAAO,EACP,aAAa,CAChB,CAAC;YACF,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"begin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/begin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"begin.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/begin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcnD"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* kairos begin command - Read step 1 (no proof-of-work required)
|
|
3
3
|
*/
|
|
4
4
|
import { ApiClient } from '../api-client.js';
|
|
5
|
-
import {
|
|
5
|
+
import { handleApiError } from '../auth-error.js';
|
|
6
|
+
import { writeJson } from '../output.js';
|
|
6
7
|
export function beginCommand(program) {
|
|
7
8
|
program
|
|
8
9
|
.command('begin')
|
|
@@ -10,22 +11,12 @@ export function beginCommand(program) {
|
|
|
10
11
|
.argument('<uri>', 'KAIROS memory URI (kairos://mem/...)')
|
|
11
12
|
.action(async (uri) => {
|
|
12
13
|
try {
|
|
13
|
-
const client = new ApiClient();
|
|
14
|
+
const client = new ApiClient(undefined, !program.opts()['noBrowser']);
|
|
14
15
|
const response = await client.begin(uri);
|
|
15
|
-
if (response.error) {
|
|
16
|
-
writeError(response.error);
|
|
17
|
-
if (response.message) {
|
|
18
|
-
writeError(response.message);
|
|
19
|
-
}
|
|
20
|
-
process.exit(1);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
// Pretty print the response
|
|
24
16
|
writeJson(response);
|
|
25
17
|
}
|
|
26
18
|
catch (error) {
|
|
27
|
-
|
|
28
|
-
process.exit(1);
|
|
19
|
+
handleApiError(error, !program.opts()['noBrowser']);
|
|
29
20
|
}
|
|
30
21
|
});
|
|
31
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"begin.js","sourceRoot":"","sources":["../../../src/cli/commands/begin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"begin.js","sourceRoot":"","sources":["../../../src/cli/commands/begin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,YAAY,CAAC,OAAgB;IACzC,OAAO;SACF,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4EAA4E,CAAC;SACzF,QAAQ,CAAC,OAAO,EAAE,sCAAsC,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC1B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAcpD"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* kairos delete command
|
|
3
3
|
*/
|
|
4
4
|
import { ApiClient } from '../api-client.js';
|
|
5
|
-
import {
|
|
5
|
+
import { handleApiError } from '../auth-error.js';
|
|
6
|
+
import { writeJson } from '../output.js';
|
|
6
7
|
export function deleteCommand(program) {
|
|
7
8
|
program
|
|
8
9
|
.command('delete')
|
|
@@ -10,22 +11,12 @@ export function deleteCommand(program) {
|
|
|
10
11
|
.argument('<uris...>', 'KAIROS memory URIs (kairos://mem/...)')
|
|
11
12
|
.action(async (uris) => {
|
|
12
13
|
try {
|
|
13
|
-
const client = new ApiClient();
|
|
14
|
+
const client = new ApiClient(undefined, !program.opts()['noBrowser']);
|
|
14
15
|
const response = await client.delete(uris);
|
|
15
|
-
if (response.error) {
|
|
16
|
-
writeError(response.error);
|
|
17
|
-
if (response.message) {
|
|
18
|
-
writeError(response.message);
|
|
19
|
-
}
|
|
20
|
-
process.exit(1);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
// Pretty print the response
|
|
24
16
|
writeJson(response);
|
|
25
17
|
}
|
|
26
18
|
catch (error) {
|
|
27
|
-
|
|
28
|
-
process.exit(1);
|
|
19
|
+
handleApiError(error, !program.opts()['noBrowser']);
|
|
29
20
|
}
|
|
30
21
|
});
|
|
31
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC1C,OAAO;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,EAAE;QAC7B,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,cAAc,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* kairos login — obtain and store a Bearer token (--token or browser + PKCE).
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
/** Resolve current API base URL (env, then config default, then getApiUrl()). Exported for logout. */
|
|
6
|
+
export declare function getBaseUrl(): string;
|
|
7
|
+
/** Check if token is valid (GET /api/me). Used by login to skip relogin and by ApiClient. */
|
|
8
|
+
export declare function isTokenValid(baseUrl: string, token: string): Promise<boolean>;
|
|
9
|
+
export interface LoginWithBrowserOptions {
|
|
10
|
+
/** If true, only print auth URL to stdout; do not open browser. */
|
|
11
|
+
noBrowser?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** Run browser PKCE login and store token. Exported for 401+--open retry from ApiClient. */
|
|
14
|
+
export declare function loginWithBrowser(baseUrl: string, options?: LoginWithBrowserOptions): Promise<boolean>;
|
|
15
|
+
export declare function loginCommand(program: Command): void;
|
|
16
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,sGAAsG;AACtG,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,6FAA6F;AAC7F,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKnF;AAuBD,MAAM,WAAW,uBAAuB;IACpC,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,4FAA4F;AAC5F,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuI3G;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BnD"}
|