@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.
Files changed (95) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +11 -1
  3. package/build/cli.js +11 -3
  4. package/build/cli.js.map +1 -1
  5. package/build/command-manifest.json +1507 -0
  6. package/build/commands/browse.js +2 -2
  7. package/build/commands/browse.js.map +1 -1
  8. package/build/commands/cache.d.ts +1 -1
  9. package/build/commands/cache.d.ts.map +1 -1
  10. package/build/commands/cache.js +1 -16
  11. package/build/commands/cache.js.map +1 -1
  12. package/build/commands/info.js +1 -1
  13. package/build/commands/info.js.map +1 -1
  14. package/build/commands/init.d.ts.map +1 -1
  15. package/build/commands/init.js +4 -2
  16. package/build/commands/init.js.map +1 -1
  17. package/build/commands/list.js +2 -2
  18. package/build/commands/list.js.map +1 -1
  19. package/build/commands/outdated.js +1 -1
  20. package/build/commands/outdated.js.map +1 -1
  21. package/build/commands/publish.d.ts +1 -1
  22. package/build/commands/schema.d.ts +3 -3
  23. package/build/commands/search.js +1 -1
  24. package/build/commands/search.js.map +1 -1
  25. package/build/components/Header.d.ts +2 -3
  26. package/build/components/Header.d.ts.map +1 -1
  27. package/build/components/Header.js +2 -9
  28. package/build/components/Header.js.map +1 -1
  29. package/build/components/header-art.d.ts +7 -0
  30. package/build/components/header-art.d.ts.map +1 -0
  31. package/build/components/header-art.js +14 -0
  32. package/build/components/header-art.js.map +1 -0
  33. package/build/lib/api-client.d.ts +2 -1
  34. package/build/lib/api-client.d.ts.map +1 -1
  35. package/build/lib/api-client.js +10 -1
  36. package/build/lib/api-client.js.map +1 -1
  37. package/build/lib/diagnostics.d.ts.map +1 -1
  38. package/build/lib/diagnostics.js +5 -2
  39. package/build/lib/diagnostics.js.map +1 -1
  40. package/build/lib/diff-command.js +1 -1
  41. package/build/lib/diff-command.js.map +1 -1
  42. package/build/lib/format-age.d.ts +3 -0
  43. package/build/lib/format-age.d.ts.map +1 -0
  44. package/build/lib/format-age.js +18 -0
  45. package/build/lib/format-age.js.map +1 -0
  46. package/build/lib/offline.d.ts +19 -0
  47. package/build/lib/offline.d.ts.map +1 -0
  48. package/build/lib/offline.js +26 -0
  49. package/build/lib/offline.js.map +1 -0
  50. package/build/lib/pastel/commander-specs.d.ts +7 -0
  51. package/build/lib/pastel/commander-specs.d.ts.map +1 -0
  52. package/build/lib/pastel/commander-specs.js +50 -0
  53. package/build/lib/pastel/commander-specs.js.map +1 -0
  54. package/build/lib/pastel/generate-arguments.d.ts +3 -3
  55. package/build/lib/pastel/generate-arguments.d.ts.map +1 -1
  56. package/build/lib/pastel/generate-arguments.js +25 -22
  57. package/build/lib/pastel/generate-arguments.js.map +1 -1
  58. package/build/lib/pastel/generate-command.d.ts +7 -5
  59. package/build/lib/pastel/generate-command.d.ts.map +1 -1
  60. package/build/lib/pastel/generate-command.js +32 -62
  61. package/build/lib/pastel/generate-command.js.map +1 -1
  62. package/build/lib/pastel/generate-commands.d.ts +3 -5
  63. package/build/lib/pastel/generate-commands.d.ts.map +1 -1
  64. package/build/lib/pastel/generate-commands.js +6 -10
  65. package/build/lib/pastel/generate-commands.js.map +1 -1
  66. package/build/lib/pastel/generate-options.d.ts +3 -3
  67. package/build/lib/pastel/generate-options.d.ts.map +1 -1
  68. package/build/lib/pastel/generate-options.js +16 -13
  69. package/build/lib/pastel/generate-options.js.map +1 -1
  70. package/build/lib/pastel/index.d.ts +20 -4
  71. package/build/lib/pastel/index.d.ts.map +1 -1
  72. package/build/lib/pastel/index.js +35 -21
  73. package/build/lib/pastel/index.js.map +1 -1
  74. package/build/lib/pastel/internal-types.d.ts +39 -8
  75. package/build/lib/pastel/internal-types.d.ts.map +1 -1
  76. package/build/lib/pastel/manifest.d.ts +8 -0
  77. package/build/lib/pastel/manifest.d.ts.map +1 -0
  78. package/build/lib/pastel/manifest.js +7 -0
  79. package/build/lib/pastel/manifest.js.map +1 -0
  80. package/build/lib/pastel/read-commands.d.ts +7 -2
  81. package/build/lib/pastel/read-commands.d.ts.map +1 -1
  82. package/build/lib/pastel/read-commands.js +51 -30
  83. package/build/lib/pastel/read-commands.js.map +1 -1
  84. package/build/lib/pastel/render-command.d.ts +13 -0
  85. package/build/lib/pastel/render-command.d.ts.map +1 -0
  86. package/build/lib/pastel/render-command.js +56 -0
  87. package/build/lib/pastel/render-command.js.map +1 -0
  88. package/build/lib/registry.d.ts +11 -0
  89. package/build/lib/registry.d.ts.map +1 -1
  90. package/build/lib/registry.js +104 -22
  91. package/build/lib/registry.js.map +1 -1
  92. package/build/lib/update-check.d.ts.map +1 -1
  93. package/build/lib/update-check.js +5 -1
  94. package/build/lib/update-check.js.map +1 -1
  95. 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
- The `--offline` flag is `init`-only — it skips the registry name-availability check during scaffolding and has no effect on other commands.
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 { ASCII_ART, GRADIENT } from './components/Header.js';
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;AAEzC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAElC,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,cAAc,CAAC,EAAE,MAAM,CAAC,CAEjF,CAAC;AAEF,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7G,MAAM,OAAO,GAAG,KAAK,CAAC;IAEtB,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,CAAC;AAED,sFAAsF;AACtF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAErC,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC;IACrB,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC,IAAI;IACvB,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;IAC1D,OAAO,EAAE,GAAG,CAAC,OAAO;CACrB,CAAC,CAAC;AAEH,sFAAsF;AACtF,sFAAsF;AACtF,sBAAsB;AACtB,IAAI,IAAI,EAAE,CAAC;IACT,MAAM,gBAAgB,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}