@detergent-software/atk 7.10.0 → 7.11.0-dev.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/README.md +44 -12
- package/build/commands/_app.d.ts.map +1 -1
- package/build/commands/_app.js +6 -1
- package/build/commands/_app.js.map +1 -1
- package/build/commands/login.d.ts +15 -0
- package/build/commands/login.d.ts.map +1 -0
- package/build/commands/login.js +148 -0
- package/build/commands/login.js.map +1 -0
- package/build/commands/logout.d.ts +11 -0
- package/build/commands/logout.d.ts.map +1 -0
- package/build/commands/logout.js +49 -0
- package/build/commands/logout.js.map +1 -0
- package/build/commands/schema.d.ts +1 -1
- package/build/commands/whoami.d.ts +11 -0
- package/build/commands/whoami.d.ts.map +1 -0
- package/build/commands/whoami.js +70 -0
- package/build/commands/whoami.js.map +1 -0
- package/build/components/NoticeBanner.d.ts +12 -0
- package/build/components/NoticeBanner.d.ts.map +1 -0
- package/build/components/NoticeBanner.js +21 -0
- package/build/components/NoticeBanner.js.map +1 -0
- package/build/components/index.d.ts +1 -0
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +1 -0
- package/build/components/index.js.map +1 -1
- package/build/hooks/usePublishState.js +3 -3
- package/build/hooks/usePublishState.js.map +1 -1
- package/build/lib/api/client.gen.d.ts.map +1 -1
- package/build/lib/api/client.gen.js +1 -1
- package/build/lib/api/client.gen.js.map +1 -1
- package/build/lib/api/sdk.gen.d.ts +3 -3
- package/build/lib/api/sdk.gen.js +3 -3
- package/build/lib/api/types.gen.d.ts +101 -29
- package/build/lib/api/types.gen.d.ts.map +1 -1
- package/build/lib/api-client.d.ts +5 -4
- package/build/lib/api-client.d.ts.map +1 -1
- package/build/lib/api-client.js +40 -12
- package/build/lib/api-client.js.map +1 -1
- package/build/lib/auth.d.ts +43 -11
- package/build/lib/auth.d.ts.map +1 -1
- package/build/lib/auth.js +106 -39
- package/build/lib/auth.js.map +1 -1
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +75 -31
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/entra.d.ts +86 -0
- package/build/lib/entra.d.ts.map +1 -0
- package/build/lib/entra.js +209 -0
- package/build/lib/entra.js.map +1 -0
- package/build/lib/notices.d.ts +33 -0
- package/build/lib/notices.d.ts.map +1 -0
- package/build/lib/notices.js +43 -0
- package/build/lib/notices.js.map +1 -0
- package/build/lib/publisher.d.ts +1 -4
- package/build/lib/publisher.d.ts.map +1 -1
- package/build/lib/publisher.js +1 -4
- package/build/lib/publisher.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ AI coding assistants become far more capable with the right configuration — cu
|
|
|
18
18
|
|
|
19
19
|
- **Node.js** >= 24.0.0
|
|
20
20
|
- **pnpm** 10.5.2+
|
|
21
|
-
-
|
|
21
|
+
- An **Emergent Software account** (sign in with `atk login`) **or** a GitHub account that is an active member of the `EmergentSoftware` organization. ATK talks to the ATK API, which accepts either an Emergent (Microsoft Entra) sign-in or a GitHub token and checks membership. See [Authentication](#authentication). Publishing needs neither `git` nor `gh`; `gh` is only required for `atk unpublish` and `atk promote`.
|
|
22
22
|
|
|
23
23
|
### Installation
|
|
24
24
|
|
|
@@ -76,6 +76,8 @@ atk update
|
|
|
76
76
|
| `atk init` | Scaffold a new asset or bundle |
|
|
77
77
|
| `atk install <asset>` | Install an asset with dependency resolution |
|
|
78
78
|
| `atk list` | List all installed assets |
|
|
79
|
+
| `atk login` | Sign in with your Emergent (Microsoft Entra) account |
|
|
80
|
+
| `atk logout` | Sign out of your Emergent account (GitHub tokens are untouched) |
|
|
79
81
|
| `atk outdated` | Show assets with available updates |
|
|
80
82
|
| `atk pin <asset>` | Pin an asset to its current version |
|
|
81
83
|
| `atk prune` | Remove orphaned dependencies |
|
|
@@ -86,8 +88,30 @@ atk update
|
|
|
86
88
|
| `atk uninstall <asset>` | Remove an asset and clean up placed files |
|
|
87
89
|
| `atk unpin <asset>` | Remove a version pin |
|
|
88
90
|
| `atk update [asset]` | Update installed assets to latest versions |
|
|
91
|
+
| `atk whoami` | Show who you are signed in as and where the credential came from |
|
|
89
92
|
| `atk why <asset>` | Explain why an asset is installed (direct, dependency, or orphan) |
|
|
90
93
|
|
|
94
|
+
## Authentication
|
|
95
|
+
|
|
96
|
+
Every registry read, `atk checkout` and `atk publish` goes through the ATK API with a bearer token. The API accepts two kinds and picks the scheme itself:
|
|
97
|
+
|
|
98
|
+
- **Emergent account (recommended).** Run `atk login`: it prints a URL and a one-time code, you sign in with your Emergent Software (Microsoft Entra) account in a browser, and the CLI keeps a session in `~/.atk/auth/msal-cache.json`. The file holds a refresh token, so it is created readable by you only and is not touched by `atk cache clear`. The session renews itself silently; when it can no longer be renewed, run `atk login` again. `atk logout` removes the session and the file. Guest accounts in the tenant are refused.
|
|
99
|
+
- **GitHub token.** A token for an account that is an active member of the `EmergentSoftware` organization, from `githubToken` in config, the `GITHUB_TOKEN` environment variable, or `gh auth token`.
|
|
100
|
+
|
|
101
|
+
ATK resolves the credential in this order and uses the first hit for the whole run:
|
|
102
|
+
|
|
103
|
+
1. `ATK_TOKEN` environment variable — a raw bearer of either kind, for CI and agents.
|
|
104
|
+
2. The `atk login` session.
|
|
105
|
+
3. `githubToken` in `~/.atkrc.json`.
|
|
106
|
+
4. `GITHUB_TOKEN`.
|
|
107
|
+
5. `gh auth token`.
|
|
108
|
+
|
|
109
|
+
`atk whoami` shows who you are signed in as, which scheme the API applied, and which source supplied the credential; `atk doctor` reports the same in its **Authentication** check. If an expired Emergent session falls through to a GitHub token, ATK says so once per run.
|
|
110
|
+
|
|
111
|
+
`atk unpublish` and `atk promote` still push to the registry repository with `git` and open their PR with `gh`, so they need an authenticated `gh` regardless of how you sign in to ATK.
|
|
112
|
+
|
|
113
|
+
GitHub sign-in to ATK will be retired on a date announced by the API. Until then every run with a GitHub token shows a one-line reminder; afterwards GitHub tokens are refused with a message naming the date and `atk login`.
|
|
114
|
+
|
|
91
115
|
## Asset Types
|
|
92
116
|
|
|
93
117
|
| Type | Description | Example |
|
|
@@ -101,7 +125,7 @@ atk update
|
|
|
101
125
|
|
|
102
126
|
## How It Works
|
|
103
127
|
|
|
104
|
-
1. **Registry** — Assets live in the `assets/` directory of the registry repository, each with a `manifest.json` declaring metadata, dependencies, trust level, and security review info. CI validates asset and bundle changes on pull requests, rebuilds `registry.json` and `schemas/` on pushes to `develop` and `main`, and promotes asset-only changes to `main` through a dedicated promotion branch. The CLI never reads the repository directly: it talks to the **ATK API** (`https://func-atk-prod.azurewebsites.net` by default), which serves `registry.json` with ETag caching, asset manifests and files, `atk checkout` working copies, and opens publish pull requests on your behalf
|
|
128
|
+
1. **Registry** — Assets live in the `assets/` directory of the registry repository, each with a `manifest.json` declaring metadata, dependencies, trust level, and security review info. CI validates asset and bundle changes on pull requests, rebuilds `registry.json` and `schemas/` on pushes to `develop` and `main`, and promotes asset-only changes to `main` through a dedicated promotion branch. The CLI never reads the repository directly: it talks to the **ATK API** (`https://func-atk-prod.azurewebsites.net` by default), which serves `registry.json` with ETag caching, asset manifests and files, `atk checkout` working copies, and opens publish pull requests on your behalf: with your own GitHub token when you sign in with GitHub, or with the API's publish identity (the commit authored as you, and the PR body naming you) when you sign in with your Emergent account.
|
|
105
129
|
|
|
106
130
|
2. **Tool Adapters** — JSON adapter files define how assets are placed for each AI tool. The Claude Code adapter knows to put skills in `.claude/commands/`, agents in `.claude/agents/`, etc. New tools can be supported by adding adapter files — no CLI code changes needed.
|
|
107
131
|
|
|
@@ -253,15 +277,23 @@ atk config org --reset
|
|
|
253
277
|
|
|
254
278
|
### Available Keys
|
|
255
279
|
|
|
256
|
-
| Key | Default | Description
|
|
257
|
-
| ----------------- | ----------------------------------------- |
|
|
258
|
-
| `apiUrl` | `https://func-atk-prod.azurewebsites.net` | ATK API base URL. The `ATK_API_URL` environment variable overrides it (e.g. to point at dev).
|
|
259
|
-
| `registryUrl` | _(not set)_ | Serve `registry.json` from a plain URL instead of the ATK API (unauthenticated; no ETag caching)
|
|
260
|
-
| `cacheDir` | `~/.atk/cache/` | Override cache directory
|
|
261
|
-
| `cacheTtlMinutes` | `5` | Cache TTL in minutes for registry data
|
|
262
|
-
| `checkUpdates` | `true` | Show a banner when a newer ATK version is available
|
|
263
|
-
| `githubToken` | _(not set)_ | GitHub token override (defaults to `GITHUB_TOKEN`, then `gh auth token`)
|
|
264
|
-
| `org` | _(not set)_ | Default organization scope for asset resolution
|
|
280
|
+
| Key | Default | Description |
|
|
281
|
+
| ----------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
282
|
+
| `apiUrl` | `https://func-atk-prod.azurewebsites.net` | ATK API base URL. The `ATK_API_URL` environment variable overrides it (e.g. to point at dev). |
|
|
283
|
+
| `registryUrl` | _(not set)_ | Serve `registry.json` from a plain URL instead of the ATK API (unauthenticated; no ETag caching) |
|
|
284
|
+
| `cacheDir` | `~/.atk/cache/` | Override cache directory |
|
|
285
|
+
| `cacheTtlMinutes` | `5` | Cache TTL in minutes for registry data |
|
|
286
|
+
| `checkUpdates` | `true` | Show a banner when a newer ATK version is available |
|
|
287
|
+
| `githubToken` | _(not set)_ | GitHub token override (defaults to `GITHUB_TOKEN`, then `gh auth token`); an `atk login` session wins over all three |
|
|
288
|
+
| `org` | _(not set)_ | Default organization scope for asset resolution |
|
|
289
|
+
|
|
290
|
+
### Environment Variables
|
|
291
|
+
|
|
292
|
+
| Variable | Description |
|
|
293
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------ |
|
|
294
|
+
| `ATK_API_URL` | Overrides `apiUrl` (e.g. `https://func-atk-dev.azurewebsites.net` to target the dev API). |
|
|
295
|
+
| `ATK_TOKEN` | A raw bearer token of either kind (Emergent access token or GitHub token). Wins over every other credential. |
|
|
296
|
+
| `GITHUB_TOKEN` | GitHub token, used after the `atk login` session and `githubToken` config, before `gh auth token`. |
|
|
265
297
|
|
|
266
298
|
## Development
|
|
267
299
|
|
|
@@ -361,7 +393,7 @@ Pull requests targeting `main` or `develop` run linting, type checking, tests, a
|
|
|
361
393
|
**Runtime:** Node.js >= 24, TypeScript 5.7+, ES2024
|
|
362
394
|
**CLI:** Pastel (file-based routing) + Ink (React for terminals) + React 19
|
|
363
395
|
**Validation:** Zod 4 (runtime schemas + JSON Schema export)
|
|
364
|
-
**Auth:** GitHub token (`githubToken` config / `GITHUB_TOKEN` / `gh auth token`) sent as a bearer to the ATK API, which verifies
|
|
396
|
+
**Auth:** Microsoft Entra device-code sign-in via `@azure/msal-node` (`atk login`, session in `~/.atk/auth/`) or a GitHub token (`githubToken` config / `GITHUB_TOKEN` / `gh auth token`), sent as a bearer to the ATK API, which picks the scheme and verifies tenant or org membership
|
|
365
397
|
**Registry access:** ATK API (`@hey-api/openapi-ts` generated client, vendored contract in `openapi/`)
|
|
366
398
|
**Distribution:** npm (`@detergent-software` scope)
|
|
367
399
|
**CI/CD:** GitHub Actions + semantic-release
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAiFvC,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,2CAyDhE"}
|
package/build/commands/_app.js
CHANGED
|
@@ -6,7 +6,9 @@ import { fileURLToPath } from 'node:url';
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import ErrorView from '../components/ErrorView.js';
|
|
8
8
|
import Header from '../components/Header.js';
|
|
9
|
+
import NoticeBanner from '../components/NoticeBanner.js';
|
|
9
10
|
import UpdateBanner from '../components/UpdateBanner.js';
|
|
11
|
+
import { getNotices, subscribeNotices } from '../lib/notices.js';
|
|
10
12
|
import { getUpdateInfo } from '../lib/update-check.js';
|
|
11
13
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
12
14
|
const pkg = JSON.parse(readFileSync(join(__dirname, '..', '..', 'package.json'), 'utf8'));
|
|
@@ -53,6 +55,9 @@ export default function App({ commandProps, Component }) {
|
|
|
53
55
|
const jsonFromOptions = Boolean(commandProps.options?.json);
|
|
54
56
|
const { isRawModeSupported } = useStdin();
|
|
55
57
|
const effectiveJson = jsonFromOptions || !isRawModeSupported;
|
|
58
|
+
// Once-per-run notices (GitHub sign-in sunset, expired Emergent session)
|
|
59
|
+
// arrive while the command runs; subscribing re-renders the shell in place.
|
|
60
|
+
const notices = React.useSyncExternalStore(subscribeNotices, getNotices, getNotices);
|
|
56
61
|
const [updateInfo, setUpdateInfo] = React.useState(null);
|
|
57
62
|
React.useEffect(() => {
|
|
58
63
|
if (effectiveJson)
|
|
@@ -73,6 +78,6 @@ export default function App({ commandProps, Component }) {
|
|
|
73
78
|
if (effectiveJson) {
|
|
74
79
|
return (_jsx(CommandErrorBoundary, { json: true, children: _jsx(Component, { ...commandProps }) }));
|
|
75
80
|
}
|
|
76
|
-
return (_jsxs(Box, { flexDirection: 'column', marginBottom: 1, marginTop: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Header, { version: pkg.version }) }), updateInfo && (_jsx(Box, { marginBottom: 1, children: _jsx(UpdateBanner, { info: updateInfo }) })), _jsx(CommandErrorBoundary, { json: false, children: _jsx(Component, { ...commandProps }) })] }));
|
|
81
|
+
return (_jsxs(Box, { flexDirection: 'column', marginBottom: 1, marginTop: 1, children: [_jsx(Box, { marginBottom: 1, children: _jsx(Header, { version: pkg.version }) }), updateInfo && (_jsx(Box, { marginBottom: 1, children: _jsx(UpdateBanner, { info: updateInfo }) })), notices.length > 0 && (_jsx(Box, { marginBottom: 1, children: _jsx(NoticeBanner, { notices: notices }) })), _jsx(CommandErrorBoundary, { json: false, children: _jsx(Component, { ...commandProps }) })] }));
|
|
77
82
|
}
|
|
78
83
|
//# sourceMappingURL=_app.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,SAAS,MAAM,4BAA4B,CAAC;AACnD,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AAExE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAEvF,CAAC;AAYF,MAAM,oBAAqB,SAAQ,KAAK,CAAC,SAAiD;IACxF,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,SAA0B;QACxD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACrB,kCAAkC;YAClC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAsD,CAAC;YAC9E,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1E,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG;oBACd,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;oBACjC,OAAO,EAAE,OAAO;oBAChB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;iBAC9B,CAAC;gBACF,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,IAAI,YACd,KAAC,IAAI,cAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAQ,GAC3C,CACP,CAAC;YACJ,CAAC;YAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAChC,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAI,EAC9E,KAAC,IAAI,IAAC,QAAQ,8DAA+C,IACzD,CACP,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAY;IAC/D,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,gEAAgE;IAChE,MAAM,eAAe,GAAG,OAAO,CAAE,YAAiD,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClG,MAAM,EAAE,kBAAkB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,eAAe,IAAI,CAAC,kBAAkB,CAAC;IAE7D,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAErF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,IAAI,CAAC,CAAC;IAC5E,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,aAAa;YAAE,OAAO;QAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,aAAa,EAAE;aACZ,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,CAAC,SAAS;gBAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,qDAAqD;QACvD,CAAC,CAAC,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CACL,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,YAC9B,KAAC,SAAS,OAAK,YAAY,GAAI,GACV,CACxB,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,aACvD,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAI,GAC5B,EACL,UAAU,IAAI,CACb,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,YAAY,IAAC,IAAI,EAAE,UAAU,GAAI,GAC9B,CACP,EACA,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,GAC9B,CACP,EACD,KAAC,oBAAoB,IAAC,IAAI,EAAE,KAAK,YAC/B,KAAC,SAAS,OAAK,YAAY,GAAI,GACV,IACnB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { Principal } from '../lib/api/types.gen.js';
|
|
3
|
+
export declare const description = "Sign in with your Emergent (Microsoft Entra) account";
|
|
4
|
+
export declare const options: z.ZodObject<{
|
|
5
|
+
force: z.ZodDefault<z.ZodBoolean>;
|
|
6
|
+
json: z.ZodDefault<z.ZodBoolean>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
type Props = {
|
|
9
|
+
options: z.infer<typeof options>;
|
|
10
|
+
};
|
|
11
|
+
/** "Jason Paff (jasonp@emergentsoftware.net) via Entra", degrading gracefully. */
|
|
12
|
+
export declare function describePrincipal(principal: Principal): string;
|
|
13
|
+
export default function Login({ options: { force, json } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAkBzD,eAAO,MAAM,WAAW,yDAAyD,CAAC;AAElF,eAAO,MAAM,OAAO;;;iBAmBlB,CAAC;AAiBH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAI9D;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA0HhE"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Static, Text } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { ErrorView, Link, Spinner } from '../components/index.js';
|
|
7
|
+
import { createApiClientForToken, resolveApiUrl, unwrap } from '../lib/api-client.js';
|
|
8
|
+
import { me } from '../lib/api/sdk.gen.js';
|
|
9
|
+
import { clearTokenCache } from '../lib/auth.js';
|
|
10
|
+
import { loadConfig } from '../lib/config.js';
|
|
11
|
+
import { getEntraCachePath, getEntraSession, loginWithDeviceCode, logoutEntra, removeEntraAccount, } from '../lib/entra.js';
|
|
12
|
+
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
13
|
+
export const description = 'Sign in with your Emergent (Microsoft Entra) account';
|
|
14
|
+
export const options = z.object({
|
|
15
|
+
force: z
|
|
16
|
+
.boolean()
|
|
17
|
+
.default(false)
|
|
18
|
+
.describe(option({
|
|
19
|
+
alias: 'f',
|
|
20
|
+
description: 'Discard the current session and sign in again',
|
|
21
|
+
})),
|
|
22
|
+
json: z
|
|
23
|
+
.boolean()
|
|
24
|
+
.default(false)
|
|
25
|
+
.describe(option({
|
|
26
|
+
alias: 'j',
|
|
27
|
+
description: 'Output raw JSON (for scripting and CI)',
|
|
28
|
+
})),
|
|
29
|
+
});
|
|
30
|
+
/** "Jason Paff (jasonp@emergentsoftware.net) via Entra", degrading gracefully. */
|
|
31
|
+
export function describePrincipal(principal) {
|
|
32
|
+
const who = principal.name ? `${principal.name} (${principal.email ?? principal.login})` : principal.login;
|
|
33
|
+
const via = principal.scheme === 'entra' ? 'Entra' : principal.scheme === 'github' ? 'GitHub' : principal.scheme;
|
|
34
|
+
return `${who} via ${via}`;
|
|
35
|
+
}
|
|
36
|
+
export default function Login({ options: { force, json } }) {
|
|
37
|
+
const { json: effectiveJson } = useNonInteractive(json);
|
|
38
|
+
const [state, setState] = useState({ phase: 'checking' });
|
|
39
|
+
const [pending, setPending] = useState([]);
|
|
40
|
+
const hasRun = useRef(false);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (hasRun.current)
|
|
43
|
+
return;
|
|
44
|
+
hasRun.current = true;
|
|
45
|
+
const onCode = (prompt) => {
|
|
46
|
+
setPending([
|
|
47
|
+
{
|
|
48
|
+
message: prompt.message,
|
|
49
|
+
outcome: 'pending',
|
|
50
|
+
userCode: prompt.userCode,
|
|
51
|
+
verificationUri: prompt.verificationUri,
|
|
52
|
+
},
|
|
53
|
+
]);
|
|
54
|
+
setState({ phase: 'code', prompt });
|
|
55
|
+
};
|
|
56
|
+
runLogin(force, onCode, () => setState({ phase: 'verifying' }))
|
|
57
|
+
.then((result) => setState({ phase: 'done', ...result }))
|
|
58
|
+
.catch((err) => {
|
|
59
|
+
const errObj = err;
|
|
60
|
+
setState({
|
|
61
|
+
command: typeof errObj?.command === 'string' ? errObj.command : undefined,
|
|
62
|
+
hint: typeof errObj?.hint === 'string' ? errObj.hint : undefined,
|
|
63
|
+
message: err instanceof Error ? err.message : String(err),
|
|
64
|
+
phase: 'error',
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}, [force]);
|
|
68
|
+
// The pending record is written once and stays put while the live frame
|
|
69
|
+
// below it changes, so agents driving `atk login --json` can read the code.
|
|
70
|
+
const pendingLine = effectiveJson ? (_jsx(Static, { items: pending, children: (item) => (_jsx(Box, { width: 9999, children: _jsx(Text, { children: JSON.stringify(item) }) }, item.userCode)) })) : null;
|
|
71
|
+
if (state.phase === 'error') {
|
|
72
|
+
process.exitCode = 1;
|
|
73
|
+
if (effectiveJson) {
|
|
74
|
+
return (_jsxs(_Fragment, { children: [pendingLine, renderJson({
|
|
75
|
+
...(state.command ? { command: state.command } : {}),
|
|
76
|
+
...(state.hint ? { hint: state.hint } : {}),
|
|
77
|
+
message: state.message,
|
|
78
|
+
outcome: 'error',
|
|
79
|
+
})] }));
|
|
80
|
+
}
|
|
81
|
+
return _jsx(ErrorView, { command: state.command, hint: state.hint, message: state.message });
|
|
82
|
+
}
|
|
83
|
+
if (state.phase === 'done') {
|
|
84
|
+
const { principal, renewed } = state;
|
|
85
|
+
if (effectiveJson) {
|
|
86
|
+
return (_jsxs(_Fragment, { children: [pendingLine, renderJson({
|
|
87
|
+
...(principal.email ? { email: principal.email } : {}),
|
|
88
|
+
login: principal.login,
|
|
89
|
+
...(principal.name ? { name: principal.name } : {}),
|
|
90
|
+
outcome: 'ok',
|
|
91
|
+
renewed,
|
|
92
|
+
scheme: principal.scheme,
|
|
93
|
+
})] }));
|
|
94
|
+
}
|
|
95
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: [renewed ? '✓ Signed in as ' : 'Already signed in as ', describePrincipal(principal)] }), _jsx(Text, { dimColor: true, children: renewed
|
|
96
|
+
? `Session saved to ${getEntraCachePath()}. Run \`atk logout\` to remove it.`
|
|
97
|
+
: 'Run `atk login --force` to sign in as someone else.' })] }));
|
|
98
|
+
}
|
|
99
|
+
if (effectiveJson) {
|
|
100
|
+
// Only the pending record is meaningful to a JSON consumer until the flow ends.
|
|
101
|
+
return _jsx(_Fragment, { children: pendingLine });
|
|
102
|
+
}
|
|
103
|
+
if (state.phase === 'code') {
|
|
104
|
+
const { prompt } = state;
|
|
105
|
+
return (_jsxs(Box, { flexDirection: 'column', gap: 1, children: [_jsxs(Text, { children: ["To sign in, open ", _jsx(Link, { url: prompt.verificationUri, children: prompt.verificationUri }), " and enter the code", ' ', _jsx(Text, { bold: true, color: 'cyan', children: prompt.userCode })] }), _jsx(Spinner, { message: `Waiting for you to finish signing in (code expires in ${formatMinutes(prompt.expiresIn)})` })] }));
|
|
106
|
+
}
|
|
107
|
+
return (_jsx(Spinner, { message: state.phase === 'verifying' ? 'Verifying with the ATK API...' : 'Checking for a session...' }));
|
|
108
|
+
}
|
|
109
|
+
function formatMinutes(seconds) {
|
|
110
|
+
const minutes = Math.max(1, Math.round(seconds / 60));
|
|
111
|
+
return `${minutes} minute${minutes === 1 ? '' : 's'}`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Sign in: reuse a valid cached session unless `force`, otherwise run the
|
|
115
|
+
* device-code flow, then confirm the token with `GET /me`. A token the API
|
|
116
|
+
* refuses (e.g. a guest account) is removed from the cache so a bad session
|
|
117
|
+
* is not left behind.
|
|
118
|
+
*/
|
|
119
|
+
async function runLogin(force, onCode, onVerifying) {
|
|
120
|
+
if (force) {
|
|
121
|
+
await logoutEntra();
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
const existing = await getEntraSession();
|
|
125
|
+
if (existing.ok) {
|
|
126
|
+
onVerifying();
|
|
127
|
+
const principal = await verifyWithApi(existing.token, existing.account);
|
|
128
|
+
return { principal, renewed: false };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const fresh = await loginWithDeviceCode(onCode);
|
|
132
|
+
onVerifying();
|
|
133
|
+
const principal = await verifyWithApi(fresh.token, fresh.account);
|
|
134
|
+
clearTokenCache();
|
|
135
|
+
return { principal, renewed: true };
|
|
136
|
+
}
|
|
137
|
+
async function verifyWithApi(token, account) {
|
|
138
|
+
const config = await loadConfig().catch(() => undefined);
|
|
139
|
+
const client = createApiClientForToken(token, resolveApiUrl(config));
|
|
140
|
+
try {
|
|
141
|
+
return unwrap(await me({ client }), 'your identity');
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
await removeEntraAccount(account).catch(() => undefined);
|
|
145
|
+
throw err;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const description = "Sign out of your Emergent account (GitHub tokens are untouched)";
|
|
3
|
+
export declare const options: z.ZodObject<{
|
|
4
|
+
json: z.ZodDefault<z.ZodBoolean>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
type Props = {
|
|
7
|
+
options: z.infer<typeof options>;
|
|
8
|
+
};
|
|
9
|
+
export default function Logout({ options: { json } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=logout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,WAAW,oEAAoE,CAAC;AAE7F,eAAO,MAAM,OAAO;;iBAUlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA8C1D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { ErrorView, Spinner } from '../components/index.js';
|
|
6
|
+
import { useCommand } from '../hooks/useCommand.js';
|
|
7
|
+
import { clearTokenCache } from '../lib/auth.js';
|
|
8
|
+
import { getEntraCachePath, logoutEntra } from '../lib/entra.js';
|
|
9
|
+
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
10
|
+
export const description = 'Sign out of your Emergent account (GitHub tokens are untouched)';
|
|
11
|
+
export const options = z.object({
|
|
12
|
+
json: z
|
|
13
|
+
.boolean()
|
|
14
|
+
.default(false)
|
|
15
|
+
.describe(option({
|
|
16
|
+
alias: 'j',
|
|
17
|
+
description: 'Output raw JSON (for scripting and CI)',
|
|
18
|
+
})),
|
|
19
|
+
});
|
|
20
|
+
const GITHUB_NOTE = 'GitHub tokens (gh, GITHUB_TOKEN, githubToken in config) are untouched.';
|
|
21
|
+
export default function Logout({ options: { json } }) {
|
|
22
|
+
const { json: effectiveJson } = useNonInteractive(json);
|
|
23
|
+
const state = useCommand(async () => {
|
|
24
|
+
const cleared = await logoutEntra();
|
|
25
|
+
clearTokenCache();
|
|
26
|
+
return { cleared };
|
|
27
|
+
}, [], 'Signing out...');
|
|
28
|
+
if (state.status === 'loading') {
|
|
29
|
+
return _jsx(Spinner, { message: state.message });
|
|
30
|
+
}
|
|
31
|
+
if (state.status === 'error') {
|
|
32
|
+
process.exitCode = 1;
|
|
33
|
+
if (effectiveJson) {
|
|
34
|
+
return renderJson({
|
|
35
|
+
...(state.command ? { command: state.command } : {}),
|
|
36
|
+
...(state.hint ? { hint: state.hint } : {}),
|
|
37
|
+
message: state.message,
|
|
38
|
+
outcome: 'error',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return _jsx(ErrorView, { command: state.command, hint: state.hint, message: state.message });
|
|
42
|
+
}
|
|
43
|
+
const { cleared } = state.data;
|
|
44
|
+
if (effectiveJson) {
|
|
45
|
+
return renderJson({ cleared, outcome: 'ok' });
|
|
46
|
+
}
|
|
47
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [cleared ? (_jsxs(Text, { color: 'green', children: ["\u2713 Signed out of your Emergent account. Removed ", getEntraCachePath(), "."] })) : (_jsx(Text, { dimColor: true, children: "No Emergent session to clear." })), _jsx(Text, { dimColor: true, children: GITHUB_NOTE })] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,9 @@ export declare const args: z.ZodTuple<[z.ZodEnum<{
|
|
|
11
11
|
"memory-template": "memory-template";
|
|
12
12
|
"mcp-config": "mcp-config";
|
|
13
13
|
bundle: "bundle";
|
|
14
|
+
config: "config";
|
|
14
15
|
lockfile: "lockfile";
|
|
15
16
|
adapter: "adapter";
|
|
16
|
-
config: "config";
|
|
17
17
|
registry: "registry";
|
|
18
18
|
}>], null>;
|
|
19
19
|
type Props = {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const description = "Show who you are signed in as and where the credential came from";
|
|
3
|
+
export declare const options: z.ZodObject<{
|
|
4
|
+
json: z.ZodDefault<z.ZodBoolean>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
type Props = {
|
|
7
|
+
options: z.infer<typeof options>;
|
|
8
|
+
};
|
|
9
|
+
export default function Whoami({ options: { json } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=whoami.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,WAAW,qEAAqE,CAAC;AAE9F,eAAO,MAAM,OAAO;;iBAUlB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAeF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CAuE1D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import { option } from 'pastel';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { ErrorView, Field, Spinner } from '../components/index.js';
|
|
6
|
+
import { useCommand } from '../hooks/useCommand.js';
|
|
7
|
+
import { getApiClient, unwrap } from '../lib/api-client.js';
|
|
8
|
+
import { me } from '../lib/api/sdk.gen.js';
|
|
9
|
+
import { getCredential } from '../lib/auth.js';
|
|
10
|
+
import { renderJson, useNonInteractive } from '../lib/output.js';
|
|
11
|
+
import { describePrincipal } from './login.js';
|
|
12
|
+
export const description = 'Show who you are signed in as and where the credential came from';
|
|
13
|
+
export const options = z.object({
|
|
14
|
+
json: z
|
|
15
|
+
.boolean()
|
|
16
|
+
.default(false)
|
|
17
|
+
.describe(option({
|
|
18
|
+
alias: 'j',
|
|
19
|
+
description: 'Output raw JSON (for scripting and CI)',
|
|
20
|
+
})),
|
|
21
|
+
});
|
|
22
|
+
const SOURCE_LABELS = {
|
|
23
|
+
ATK_TOKEN: 'ATK_TOKEN environment variable',
|
|
24
|
+
config: 'githubToken in ~/.atkrc.json',
|
|
25
|
+
entra: 'atk login session',
|
|
26
|
+
gh: 'gh auth token',
|
|
27
|
+
GITHUB_TOKEN: 'GITHUB_TOKEN environment variable',
|
|
28
|
+
};
|
|
29
|
+
export default function Whoami({ options: { json } }) {
|
|
30
|
+
const { json: effectiveJson } = useNonInteractive(json);
|
|
31
|
+
const state = useCommand(async (progress) => {
|
|
32
|
+
progress('Resolving credential...');
|
|
33
|
+
const credential = await getCredential();
|
|
34
|
+
progress('Asking the ATK API...');
|
|
35
|
+
const client = await getApiClient();
|
|
36
|
+
const principal = unwrap(await me({ client }), 'your identity');
|
|
37
|
+
return { principal, source: credential.source };
|
|
38
|
+
}, [], 'Resolving credential...');
|
|
39
|
+
if (state.status === 'loading') {
|
|
40
|
+
return _jsx(Spinner, { message: state.message });
|
|
41
|
+
}
|
|
42
|
+
if (state.status === 'error') {
|
|
43
|
+
process.exitCode = 1;
|
|
44
|
+
if (effectiveJson) {
|
|
45
|
+
return renderJson({
|
|
46
|
+
...(state.command ? { command: state.command } : {}),
|
|
47
|
+
...(state.hint ? { hint: state.hint } : {}),
|
|
48
|
+
message: state.message,
|
|
49
|
+
outcome: 'error',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return _jsx(ErrorView, { command: state.command, hint: state.hint, message: state.message });
|
|
53
|
+
}
|
|
54
|
+
const { principal, source } = state.data;
|
|
55
|
+
if (effectiveJson) {
|
|
56
|
+
return renderJson({
|
|
57
|
+
...(principal.avatarUrl ? { avatarUrl: principal.avatarUrl } : {}),
|
|
58
|
+
...(principal.email ? { email: principal.email } : {}),
|
|
59
|
+
...(principal.githubAuthSunset ? { githubAuthSunset: principal.githubAuthSunset } : {}),
|
|
60
|
+
id: principal.id,
|
|
61
|
+
login: principal.login,
|
|
62
|
+
...(principal.name ? { name: principal.name } : {}),
|
|
63
|
+
outcome: 'ok',
|
|
64
|
+
scheme: principal.scheme,
|
|
65
|
+
source,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: ["Signed in as ", _jsx(Text, { bold: true, children: describePrincipal(principal) })] }), _jsx(Text, { children: " " }), _jsx(Field, { label: 'Scheme', value: principal.scheme }), _jsx(Field, { label: 'Login', value: principal.login }), principal.name ? _jsx(Field, { label: 'Name', value: principal.name }) : null, principal.email ? _jsx(Field, { label: 'Email', value: principal.email }) : null, _jsx(Field, { label: 'Source', value: SOURCE_LABELS[source] }), principal.githubAuthSunset ? (_jsxs(_Fragment, { children: [_jsx(Text, { children: " " }), _jsxs(Text, { color: 'yellow', children: ["GitHub sign-in to ATK ends on ", principal.githubAuthSunset.slice(0, 10), ". Run `atk login` to switch to your Emergent account."] })] })) : null] }));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Notice } from '../lib/notices.js';
|
|
2
|
+
interface NoticeBannerProps {
|
|
3
|
+
notices: readonly Notice[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* One dim line per once-per-run notice, rendered by the App shell under the
|
|
7
|
+
* header (and the update banner) in non-JSON mode.
|
|
8
|
+
*/
|
|
9
|
+
export default function NoticeBanner({ notices }: NoticeBannerProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export declare function noticeText(notice: Notice): string;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=NoticeBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoticeBanner.d.ts","sourceRoot":"","sources":["../../src/components/NoticeBanner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,UAAU,iBAAiB;IACzB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,iBAAiB,kDAclE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOjD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
/**
|
|
4
|
+
* One dim line per once-per-run notice, rendered by the App shell under the
|
|
5
|
+
* header (and the update banner) in non-JSON mode.
|
|
6
|
+
*/
|
|
7
|
+
export default function NoticeBanner({ notices }) {
|
|
8
|
+
if (notices.length === 0) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(Box, { flexDirection: 'column', children: notices.map((notice) => (_jsx(Text, { dimColor: true, children: noticeText(notice) }, notice.kind))) }));
|
|
12
|
+
}
|
|
13
|
+
export function noticeText(notice) {
|
|
14
|
+
switch (notice.kind) {
|
|
15
|
+
case 'entra-expired':
|
|
16
|
+
return 'Your Emergent sign-in has expired; using your GitHub token. Run `atk login` to renew.';
|
|
17
|
+
case 'github-sunset':
|
|
18
|
+
return `GitHub sign-in to ATK ends on ${notice.date}. Run \`atk login\` to switch to your Emergent account.`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=NoticeBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoticeBanner.js","sourceRoot":"","sources":["../../src/components/NoticeBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACxB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,KAAC,IAAI,IAAC,QAAQ,kBACX,UAAU,CAAC,MAAM,CAAC,IADD,MAAM,CAAC,IAAI,CAExB,CACR,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,eAAe;YAClB,OAAO,uFAAuF,CAAC;QACjG,KAAK,eAAe;YAClB,OAAO,iCAAiC,MAAM,CAAC,IAAI,yDAAyD,CAAC;IACjH,CAAC;AACH,CAAC"}
|
|
@@ -24,6 +24,7 @@ export { default as ListBrowseList } from './ListBrowseList.js';
|
|
|
24
24
|
export { computeExpandedLines, LIST_EXPANDED_BASE_LINES, default as ListExpandedRow } from './ListExpandedRow.js';
|
|
25
25
|
export { default as ListHelpBar } from './ListHelpBar.js';
|
|
26
26
|
export { type MultiSelectItem, default as MultiSelectList, type MultiSelectListProps } from './MultiSelectList.js';
|
|
27
|
+
export { default as NoticeBanner, noticeText } from './NoticeBanner.js';
|
|
27
28
|
export { default as OrphanListItem } from './OrphanListItem.js';
|
|
28
29
|
export { default as PromptField } from './PromptField.js';
|
|
29
30
|
export { default as ReadmeSection } from './ReadmeSection.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export { default as ListBrowseList } from './ListBrowseList.js';
|
|
|
24
24
|
export { computeExpandedLines, LIST_EXPANDED_BASE_LINES, default as ListExpandedRow } from './ListExpandedRow.js';
|
|
25
25
|
export { default as ListHelpBar } from './ListHelpBar.js';
|
|
26
26
|
export { default as MultiSelectList } from './MultiSelectList.js';
|
|
27
|
+
export { default as NoticeBanner, noticeText } from './NoticeBanner.js';
|
|
27
28
|
export { default as OrphanListItem } from './OrphanListItem.js';
|
|
28
29
|
export { default as PromptField } from './PromptField.js';
|
|
29
30
|
export { default as ReadmeSection } from './ReadmeSection.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|