@detergent-software/atk 8.9.0-dev.16 → 8.9.0-dev.18
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/CHANGELOG.md +17 -0
- package/README.md +11 -1
- package/build/cli.js +11 -3
- package/build/cli.js.map +1 -1
- package/build/command-manifest.json +1507 -0
- package/build/commands/browse.js +2 -2
- package/build/commands/browse.js.map +1 -1
- package/build/commands/cache.d.ts +1 -1
- package/build/commands/cache.d.ts.map +1 -1
- package/build/commands/cache.js +1 -16
- package/build/commands/cache.js.map +1 -1
- package/build/commands/info.js +1 -1
- package/build/commands/info.js.map +1 -1
- package/build/commands/init.d.ts.map +1 -1
- package/build/commands/init.js +4 -2
- package/build/commands/init.js.map +1 -1
- package/build/commands/list.js +2 -2
- package/build/commands/list.js.map +1 -1
- package/build/commands/outdated.js +1 -1
- package/build/commands/outdated.js.map +1 -1
- package/build/commands/publish.d.ts +1 -1
- package/build/commands/schema.d.ts +3 -3
- package/build/commands/search.js +1 -1
- package/build/commands/search.js.map +1 -1
- package/build/components/Header.d.ts +2 -3
- package/build/components/Header.d.ts.map +1 -1
- package/build/components/Header.js +2 -9
- package/build/components/Header.js.map +1 -1
- package/build/components/header-art.d.ts +7 -0
- package/build/components/header-art.d.ts.map +1 -0
- package/build/components/header-art.js +14 -0
- package/build/components/header-art.js.map +1 -0
- package/build/lib/api-client.d.ts +2 -1
- package/build/lib/api-client.d.ts.map +1 -1
- package/build/lib/api-client.js +10 -1
- package/build/lib/api-client.js.map +1 -1
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +5 -2
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/diff-command.js +1 -1
- package/build/lib/diff-command.js.map +1 -1
- package/build/lib/format-age.d.ts +3 -0
- package/build/lib/format-age.d.ts.map +1 -0
- package/build/lib/format-age.js +18 -0
- package/build/lib/format-age.js.map +1 -0
- package/build/lib/offline.d.ts +19 -0
- package/build/lib/offline.d.ts.map +1 -0
- package/build/lib/offline.js +26 -0
- package/build/lib/offline.js.map +1 -0
- package/build/lib/pastel/commander-specs.d.ts +7 -0
- package/build/lib/pastel/commander-specs.d.ts.map +1 -0
- package/build/lib/pastel/commander-specs.js +50 -0
- package/build/lib/pastel/commander-specs.js.map +1 -0
- package/build/lib/pastel/generate-arguments.d.ts +3 -3
- package/build/lib/pastel/generate-arguments.d.ts.map +1 -1
- package/build/lib/pastel/generate-arguments.js +25 -22
- package/build/lib/pastel/generate-arguments.js.map +1 -1
- package/build/lib/pastel/generate-command.d.ts +7 -5
- package/build/lib/pastel/generate-command.d.ts.map +1 -1
- package/build/lib/pastel/generate-command.js +32 -62
- package/build/lib/pastel/generate-command.js.map +1 -1
- package/build/lib/pastel/generate-commands.d.ts +3 -5
- package/build/lib/pastel/generate-commands.d.ts.map +1 -1
- package/build/lib/pastel/generate-commands.js +6 -10
- package/build/lib/pastel/generate-commands.js.map +1 -1
- package/build/lib/pastel/generate-options.d.ts +3 -3
- package/build/lib/pastel/generate-options.d.ts.map +1 -1
- package/build/lib/pastel/generate-options.js +16 -13
- package/build/lib/pastel/generate-options.js.map +1 -1
- package/build/lib/pastel/index.d.ts +20 -4
- package/build/lib/pastel/index.d.ts.map +1 -1
- package/build/lib/pastel/index.js +35 -21
- package/build/lib/pastel/index.js.map +1 -1
- package/build/lib/pastel/internal-types.d.ts +39 -8
- package/build/lib/pastel/internal-types.d.ts.map +1 -1
- package/build/lib/pastel/manifest.d.ts +8 -0
- package/build/lib/pastel/manifest.d.ts.map +1 -0
- package/build/lib/pastel/manifest.js +7 -0
- package/build/lib/pastel/manifest.js.map +1 -0
- package/build/lib/pastel/read-commands.d.ts +7 -2
- package/build/lib/pastel/read-commands.d.ts.map +1 -1
- package/build/lib/pastel/read-commands.js +51 -30
- package/build/lib/pastel/read-commands.js.map +1 -1
- package/build/lib/pastel/render-command.d.ts +13 -0
- package/build/lib/pastel/render-command.d.ts.map +1 -0
- package/build/lib/pastel/render-command.js +56 -0
- package/build/lib/pastel/render-command.js.map +1 -0
- package/build/lib/registry.d.ts +11 -0
- package/build/lib/registry.d.ts.map +1 -1
- package/build/lib/registry.js +104 -22
- package/build/lib/registry.js.map +1 -1
- package/build/lib/update-check.d.ts.map +1 -1
- package/build/lib/update-check.js +5 -1
- package/build/lib/update-check.js.map +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
## [8.9.0-dev.18](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.17&targetVersion=GTv8.9.0-dev.18) (2026-10-18)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **cli:** keep the command manifest honest (ATK-605) ([b5b08df](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/b5b08dfd02a67b647e8aad76d6d5e85cc166c222))
|
|
6
|
+
|
|
7
|
+
### Performance
|
|
8
|
+
|
|
9
|
+
* **cli:** start without loading Ink or every command (ATK-605) ([47c5c4c](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/47c5c4cd79684872503f0f8de9f14dca09fd197c))
|
|
10
|
+
|
|
11
|
+
## [8.9.0-dev.17](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.16&targetVersion=GTv8.9.0-dev.17) (2026-10-18)
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **cli:** keep --offline out of writes, init's flag and doctor's sign-in (ATK-603) ([a234ca5](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/a234ca505bb1f7d8cb4373c44d998c93bbc35eec))
|
|
16
|
+
* **cli:** read commands use the stale registry cache when the API fails (ATK-603) ([5b17d93](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/commit/5b17d93324f68b29db5d6a26defd886c26716650))
|
|
17
|
+
|
|
1
18
|
## [8.9.0-dev.16](https://emergentcode.visualstudio.com/Emergent%20Software/_git/Emergent.AgenticToolkit/branchCompare?baseVersion=GTv8.9.0-dev.15&targetVersion=GTv8.9.0-dev.16) (2026-10-18)
|
|
2
19
|
|
|
3
20
|
### Bug Fixes
|
package/README.md
CHANGED
|
@@ -96,6 +96,16 @@ atk update
|
|
|
96
96
|
| `atk whoami` | Show who you are signed in as and where the credential came from |
|
|
97
97
|
| `atk why <asset>` | Explain why an asset is installed (direct, dependency, or orphan) |
|
|
98
98
|
|
|
99
|
+
### Offline and a stale cache
|
|
100
|
+
|
|
101
|
+
The CLI keeps the last registry it read in `~/.atk/cache/registry.json` and re-reads it from the ATK API once it is older than `cacheTtlMinutes`. When the API can't be read (no network, a 5xx, a rate limit, or a failed sign-in), the read commands (`search`, `info`, `list`, `outdated`, `diff`, `browse`) use the cached copy, whatever its age, and say how old it is (in `--json` output, a `stale-registry` entry in `notices`). Commands that install, update or publish never use an old copy.
|
|
102
|
+
|
|
103
|
+
`--offline`, before or after any command, never calls the API. The read commands take the registry from the cache of any age; anything else the API serves (a README, asset files) and every command that needs the current registry (`install`, `update`, `publish`, …) fails at once instead of retrying. `atk diff` needs the API for the latest files, so it doesn't work offline.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
atk search commit --offline
|
|
107
|
+
```
|
|
108
|
+
|
|
99
109
|
## Authentication
|
|
100
110
|
|
|
101
111
|
Every registry read, `atk checkout`, `atk publish`, `atk unpublish`, `atk promote`, `atk deprecate` and `atk release-notes` go through the ATK API with a bearer token for your Emergent Software (Microsoft Entra) account.
|
|
@@ -154,7 +164,7 @@ atk init skill --from plan-feature --name my-planner
|
|
|
154
164
|
atk init rule --offline
|
|
155
165
|
```
|
|
156
166
|
|
|
157
|
-
|
|
167
|
+
For `init`, the global `--offline` skips the registry name-availability check and the dependency prompt during scaffolding.
|
|
158
168
|
|
|
159
169
|
Supported types: `skill`, `agent`, `rule`, `hook`, `memory-template`, `mcp-config`, `bundle`.
|
|
160
170
|
|
package/build/cli.js
CHANGED
|
@@ -3,9 +3,10 @@ import chalk from 'chalk';
|
|
|
3
3
|
import { readFileSync } from 'node:fs';
|
|
4
4
|
import { dirname, join } from 'node:path';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import
|
|
6
|
+
import commandManifest from './command-manifest.json' with { type: 'json' };
|
|
7
|
+
import { ASCII_ART, GRADIENT } from './components/header-art.js';
|
|
8
|
+
import { GLOBAL_OPTIONS, isOfflineRun, setOffline } from './lib/offline.js';
|
|
7
9
|
import Pastel from './lib/pastel/index.js';
|
|
8
|
-
import { noteCachedUpdate } from './lib/update-check.js';
|
|
9
10
|
import { isJsonRun, reportUsageError } from './lib/usage-error.js';
|
|
10
11
|
import { holdCookedTtyReads } from './lib/windows-tty-stdin.js';
|
|
11
12
|
holdCookedTtyReads(process.stdin);
|
|
@@ -27,7 +28,13 @@ function buildHelpHeader(version) {
|
|
|
27
28
|
}
|
|
28
29
|
// JSON mode (`--json`, or no TTY, as in _app.tsx), decided before any command parses.
|
|
29
30
|
const json = isJsonRun(process.argv);
|
|
31
|
+
// Offline mode, decided as early, so the JSON update check below skips npm too.
|
|
32
|
+
setOffline(isOfflineRun(process.argv));
|
|
30
33
|
const app = new Pastel({
|
|
34
|
+
// `pnpm manifest` writes it from src/commands, and command-manifest.test.ts holds it to them, so a run imports
|
|
35
|
+
// only the command it runs (ATK-605). JSON's types are wider than the spec's literal unions.
|
|
36
|
+
commands: commandManifest,
|
|
37
|
+
globalOptions: GLOBAL_OPTIONS,
|
|
31
38
|
helpHeader: buildHelpHeader(pkg.version),
|
|
32
39
|
importMeta: import.meta,
|
|
33
40
|
name: 'atk',
|
|
@@ -36,8 +43,9 @@ const app = new Pastel({
|
|
|
36
43
|
});
|
|
37
44
|
// JSON mode shows no update banner, so a newer cached npm version becomes a notice in
|
|
38
45
|
// the payload instead. It is read before the command runs so the notice is there when
|
|
39
|
-
// the command prints.
|
|
46
|
+
// the command prints. Imported here, not at the top: it loads the config and Zod (ATK-605).
|
|
40
47
|
if (json) {
|
|
48
|
+
const { noteCachedUpdate } = await import('./lib/update-check.js');
|
|
41
49
|
await noteCachedUpdate();
|
|
42
50
|
}
|
|
43
51
|
await app.run();
|
package/build/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,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;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
|