@detergent-software/atk 8.1.2-dev.9 → 8.1.3-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.
Files changed (139) hide show
  1. package/CHANGELOG.md +341 -0
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +14 -9
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/browse.js +21 -29
  6. package/build/commands/browse.js.map +1 -1
  7. package/build/commands/info.js +2 -2
  8. package/build/commands/info.js.map +1 -1
  9. package/build/commands/install.d.ts.map +1 -1
  10. package/build/commands/install.js +35 -75
  11. package/build/commands/install.js.map +1 -1
  12. package/build/commands/list.js +2 -2
  13. package/build/commands/list.js.map +1 -1
  14. package/build/commands/prune.d.ts.map +1 -1
  15. package/build/commands/prune.js +10 -8
  16. package/build/commands/prune.js.map +1 -1
  17. package/build/commands/sync.d.ts.map +1 -1
  18. package/build/commands/sync.js +10 -9
  19. package/build/commands/sync.js.map +1 -1
  20. package/build/commands/uninstall.d.ts +9 -1
  21. package/build/commands/uninstall.d.ts.map +1 -1
  22. package/build/commands/uninstall.js +40 -35
  23. package/build/commands/uninstall.js.map +1 -1
  24. package/build/commands/update.d.ts +9 -1
  25. package/build/commands/update.d.ts.map +1 -1
  26. package/build/commands/update.js +46 -16
  27. package/build/commands/update.js.map +1 -1
  28. package/build/commands/why.d.ts.map +1 -1
  29. package/build/commands/why.js +13 -5
  30. package/build/commands/why.js.map +1 -1
  31. package/build/components/AssetDetail.js +3 -1
  32. package/build/components/AssetDetail.js.map +1 -1
  33. package/build/components/AssetTable.d.ts.map +1 -1
  34. package/build/components/AssetTable.js +7 -3
  35. package/build/components/AssetTable.js.map +1 -1
  36. package/build/components/DependencyTree.d.ts +1 -1
  37. package/build/components/DependencyTree.d.ts.map +1 -1
  38. package/build/components/DependencyTree.js +4 -2
  39. package/build/components/DependencyTree.js.map +1 -1
  40. package/build/components/InstallSummary.d.ts +1 -0
  41. package/build/components/InstallSummary.d.ts.map +1 -1
  42. package/build/components/InstallSummary.js +3 -1
  43. package/build/components/InstallSummary.js.map +1 -1
  44. package/build/components/ListBrowseList.d.ts.map +1 -1
  45. package/build/components/ListBrowseList.js +4 -2
  46. package/build/components/ListBrowseList.js.map +1 -1
  47. package/build/components/OrphanListItem.d.ts +3 -1
  48. package/build/components/OrphanListItem.d.ts.map +1 -1
  49. package/build/components/OrphanListItem.js +3 -2
  50. package/build/components/OrphanListItem.js.map +1 -1
  51. package/build/components/SkippedAssetSection.d.ts +2 -0
  52. package/build/components/SkippedAssetSection.d.ts.map +1 -1
  53. package/build/components/SkippedAssetSection.js +1 -1
  54. package/build/components/SkippedAssetSection.js.map +1 -1
  55. package/build/components/SyncDriftedList.d.ts +3 -2
  56. package/build/components/SyncDriftedList.d.ts.map +1 -1
  57. package/build/components/SyncDriftedList.js +13 -3
  58. package/build/components/SyncDriftedList.js.map +1 -1
  59. package/build/hooks/useListActions.d.ts.map +1 -1
  60. package/build/hooks/useListActions.js +33 -16
  61. package/build/hooks/useListActions.js.map +1 -1
  62. package/build/hooks/usePruneState.d.ts +13 -15
  63. package/build/hooks/usePruneState.d.ts.map +1 -1
  64. package/build/hooks/usePruneState.js +10 -6
  65. package/build/hooks/usePruneState.js.map +1 -1
  66. package/build/hooks/useUninstallState.d.ts +16 -29
  67. package/build/hooks/useUninstallState.d.ts.map +1 -1
  68. package/build/hooks/useUninstallState.js +146 -139
  69. package/build/hooks/useUninstallState.js.map +1 -1
  70. package/build/lib/adapter.js +1 -1
  71. package/build/lib/adapter.js.map +1 -1
  72. package/build/lib/asset-tools.d.ts +5 -0
  73. package/build/lib/asset-tools.d.ts.map +1 -1
  74. package/build/lib/asset-tools.js +7 -0
  75. package/build/lib/asset-tools.js.map +1 -1
  76. package/build/lib/atk-api/index.d.ts +1 -1
  77. package/build/lib/atk-api/index.d.ts.map +1 -1
  78. package/build/lib/atk-api/index.js +1 -1
  79. package/build/lib/atk-api/index.js.map +1 -1
  80. package/build/lib/atk-api/web-routes.d.ts +5 -1
  81. package/build/lib/atk-api/web-routes.d.ts.map +1 -1
  82. package/build/lib/atk-api/web-routes.js +7 -1
  83. package/build/lib/atk-api/web-routes.js.map +1 -1
  84. package/build/lib/diagnostics.d.ts.map +1 -1
  85. package/build/lib/diagnostics.js +6 -5
  86. package/build/lib/diagnostics.js.map +1 -1
  87. package/build/lib/diff-command.d.ts.map +1 -1
  88. package/build/lib/diff-command.js +10 -7
  89. package/build/lib/diff-command.js.map +1 -1
  90. package/build/lib/enabled-list.d.ts +15 -0
  91. package/build/lib/enabled-list.d.ts.map +1 -0
  92. package/build/lib/enabled-list.js +83 -0
  93. package/build/lib/enabled-list.js.map +1 -0
  94. package/build/lib/file-snapshot.d.ts +17 -0
  95. package/build/lib/file-snapshot.d.ts.map +1 -0
  96. package/build/lib/file-snapshot.js +41 -0
  97. package/build/lib/file-snapshot.js.map +1 -0
  98. package/build/lib/installed-for-tool.d.ts +8 -0
  99. package/build/lib/installed-for-tool.d.ts.map +1 -0
  100. package/build/lib/installed-for-tool.js +18 -0
  101. package/build/lib/installed-for-tool.js.map +1 -0
  102. package/build/lib/installer.d.ts +109 -4
  103. package/build/lib/installer.d.ts.map +1 -1
  104. package/build/lib/installer.js +546 -162
  105. package/build/lib/installer.js.map +1 -1
  106. package/build/lib/lockfile.d.ts +30 -4
  107. package/build/lib/lockfile.d.ts.map +1 -1
  108. package/build/lib/lockfile.js +35 -15
  109. package/build/lib/lockfile.js.map +1 -1
  110. package/build/lib/multi-tool-install.d.ts +23 -0
  111. package/build/lib/multi-tool-install.d.ts.map +1 -0
  112. package/build/lib/multi-tool-install.js +78 -0
  113. package/build/lib/multi-tool-install.js.map +1 -0
  114. package/build/lib/org.d.ts +16 -0
  115. package/build/lib/org.d.ts.map +1 -1
  116. package/build/lib/org.js +18 -0
  117. package/build/lib/org.js.map +1 -1
  118. package/build/lib/owned-paths.d.ts +68 -0
  119. package/build/lib/owned-paths.d.ts.map +1 -0
  120. package/build/lib/owned-paths.js +162 -0
  121. package/build/lib/owned-paths.js.map +1 -0
  122. package/build/lib/registry.js +6 -2
  123. package/build/lib/registry.js.map +1 -1
  124. package/build/lib/resolver.d.ts.map +1 -1
  125. package/build/lib/resolver.js +35 -13
  126. package/build/lib/resolver.js.map +1 -1
  127. package/build/lib/sync.d.ts +8 -1
  128. package/build/lib/sync.d.ts.map +1 -1
  129. package/build/lib/sync.js +81 -28
  130. package/build/lib/sync.js.map +1 -1
  131. package/build/lib/uninstaller.d.ts +28 -4
  132. package/build/lib/uninstaller.d.ts.map +1 -1
  133. package/build/lib/uninstaller.js +95 -97
  134. package/build/lib/uninstaller.js.map +1 -1
  135. package/build/lib/updater.d.ts +59 -3
  136. package/build/lib/updater.d.ts.map +1 -1
  137. package/build/lib/updater.js +353 -80
  138. package/build/lib/updater.js.map +1 -1
  139. package/package.json +2 -2
@@ -1,6 +1,9 @@
1
- import type { InstallPlan } from './resolver.js';
1
+ import type { InstallPlan, InstallPlanEntry } from './resolver.js';
2
2
  import type { Adapter } from './schemas/adapter.js';
3
+ import type { RegistryAsset } from './schemas/index.js';
4
+ import type { Lockfile } from './schemas/lockfile.js';
3
5
  import { ApiCodeError } from './errors.js';
6
+ import { type AssetIdentity } from './lockfile.js';
4
7
  export interface InstallOptions {
5
8
  /** Adapter for the target tool. */
6
9
  adapter: Adapter;
@@ -10,8 +13,22 @@ export interface InstallOptions {
10
13
  org?: string;
11
14
  version: string;
12
15
  };
16
+ /** Files already downloaded with {@link fetchPlanFiles}, for every entry this tool can place. */
17
+ files?: PlanFiles;
13
18
  /** Skip file conflict detection, allowing overwrite of non-ATK files. */
14
19
  force?: boolean;
20
+ /**
21
+ * The lockfile from before the command, for deciding which assets this tool already had in
22
+ * place, which a failed plan keeps. A multi-tool install passes it, since an earlier tool's pass
23
+ * has rewritten the shared lockfile by then. Defaults to `managedFrom`, then the lockfile on disk.
24
+ */
25
+ installedBefore?: Lockfile;
26
+ /**
27
+ * The lockfile as this tool has it, for deciding which files are ATK-managed. In a multi-tool
28
+ * update the shared lockfile can already list the files of a version an earlier tool installed,
29
+ * which a later tool does not have yet. Defaults to the lockfile on disk.
30
+ */
31
+ managedFrom?: Lockfile;
15
32
  /** Callback for progress updates. */
16
33
  onProgress?: (message: string) => void;
17
34
  /** Pin the asset at the installed version. */
@@ -27,6 +44,15 @@ export interface InstallOptions {
27
44
  skipUnsupported?: boolean;
28
45
  }
29
46
  export interface InstallResult {
47
+ /**
48
+ * The memory-template block the install wrote into `file` (relative, like `configFilesCreated`),
49
+ * the block of that name it `replaced`, and whether it `created` the file; a rollback undoes it.
50
+ */
51
+ blockWritten?: {
52
+ created: boolean;
53
+ file: string;
54
+ replaced?: string;
55
+ };
30
56
  bundleOrigin?: {
31
57
  name: string;
32
58
  org?: string;
@@ -38,18 +64,65 @@ export interface InstallResult {
38
64
  file: string;
39
65
  key: string;
40
66
  }>;
67
+ /** The config files the install created, relative like `configEntriesCreated[].file`; a rollback deletes them once empty. */
68
+ configFilesCreated?: string[];
69
+ /** The names the install added to its placement's enabled list (e.g. `enabledMcpjsonServers`). */
70
+ enabledListAdded?: string[];
41
71
  filesPlaced: Array<{
42
72
  destination: string;
43
73
  source: string;
44
74
  }>;
45
75
  installReason: 'dependency' | 'direct';
46
76
  name: string;
77
+ org?: string;
47
78
  type: string;
48
79
  version: string;
49
80
  }
81
+ /** The downloaded files of a plan's entries, keyed by {@link planEntryKey}. */
82
+ export type PlanFiles = Map<string, AssetFiles>;
83
+ interface AssetFile {
84
+ /** Raw file bytes — asset files may be binary (images, spreadsheets), never assume text. */
85
+ content: Buffer;
86
+ relativePath: string;
87
+ }
88
+ interface AssetFiles {
89
+ entrypoint?: string;
90
+ files: AssetFile[];
91
+ }
50
92
  export declare class InstallerError extends ApiCodeError {
51
93
  name: string;
52
94
  }
95
+ /**
96
+ * A file the install would place at `path` exists and is not ATK-managed, or belongs to `owner`,
97
+ * another installed asset; nothing was written there. With `entry`, the conflict is that part of
98
+ * the file (a memory-template's block, a config entry), which `owner` wrote.
99
+ */
100
+ export declare class FileConflictError extends InstallerError {
101
+ name: string;
102
+ readonly owner?: AssetIdentity;
103
+ readonly path: string;
104
+ /** What conflicts, quoted for a message: `"<path>"`, or `the <entry> in "<path>"`. */
105
+ readonly where: string;
106
+ constructor(path: string, owner?: AssetIdentity, entry?: string);
107
+ }
108
+ /**
109
+ * An install plan that failed at `asset` with `cause`, after rolling back the
110
+ * `rolledBack` assets it had already installed. Keeps the cause's API code and
111
+ * guidance, so callers that name the asset themselves can quote just the cause.
112
+ */
113
+ export declare class InstallPlanError extends InstallerError {
114
+ readonly asset: Pick<RegistryAsset, 'name' | 'org' | 'type'>;
115
+ readonly cause: unknown;
116
+ /** The plan kept what it installed before `asset`, because it moved an installed asset to another version. */
117
+ readonly keptInstall: boolean;
118
+ name: string;
119
+ constructor(asset: Pick<RegistryAsset, 'name' | 'org' | 'type'>, cause: unknown, rolledBack: number, keptInstall?: boolean);
120
+ }
121
+ /** A plan whose files for `asset` could not be downloaded; nothing was written. */
122
+ export declare class PlanDownloadError extends InstallPlanError {
123
+ name: string;
124
+ constructor(asset: Pick<RegistryAsset, 'name' | 'org' | 'type'>, cause: unknown);
125
+ }
53
126
  /**
54
127
  * Guard for multi-tool installs run with `skipUnsupported`. Each tool skips the asset
55
128
  * types it cannot place, which is fine as long as some tool placed something. If every
@@ -62,9 +135,41 @@ export declare function assertInstalledByAnyTool(plan: InstallPlan, toolResults:
62
135
  }>): void;
63
136
  /**
64
137
  * Execute a full install plan — install all assets in order.
65
- * On partial failure, rolls back previously installed assets (deletes placed files,
66
- * reverts config entries, removes lockfile entries) so the system is not left in
67
- * an inconsistent state.
138
+ * On partial failure, deletes the files the failing asset wrote where no file was before placing
139
+ * its files failed, and rolls back the assets the plan added before it (deletes placed files,
140
+ * reverts config entries and memory-template blocks, removes lockfile entries) so the system is not
141
+ * left in an inconsistent state. An asset the tool already had in place keeps what the plan placed,
142
+ * since rolling it back would delete its working copy, and gets its lockfile entry back. When the
143
+ * plan moved such an asset to another version, which may need the assets the plan added, nothing is
144
+ * rolled back ({@link InstallPlanError.keptInstall}).
68
145
  */
69
146
  export declare function executeInstallPlan(plan: InstallPlan, options: InstallOptions): Promise<InstallResult[]>;
147
+ /**
148
+ * Download the files of every plan entry this tool can place, without writing anything. A
149
+ * caller that replaces an installed asset downloads first, so a refused download leaves the
150
+ * installed version in place, then passes the result to {@link executeInstallPlan} as `files`.
151
+ */
152
+ export declare function fetchPlanFiles(plan: InstallPlan, adapter: Adapter): Promise<PlanFiles>;
153
+ /**
154
+ * The message of an install failure for `asset`, for a caller whose own message already names
155
+ * it: a plan that failed at that asset gives just its cause; one that failed at another asset
156
+ * keeps the installer's message, which names that asset.
157
+ */
158
+ export declare function installFailureMessage(error: unknown, asset: Pick<RegistryAsset, 'name' | 'org' | 'type'>): string;
159
+ /** The entries of `plan` the adapter's tool has a placement for, in plan order. */
160
+ export declare function placeableEntries(plan: InstallPlan, adapter: Adapter): InstallPlanEntry[];
161
+ /**
162
+ * Undo the installs of `installed` for the adapter's tool, in reverse order (best-effort): delete
163
+ * their placed files, revert their config entries (deleting a config file they created once it is
164
+ * empty), put back the memory-template block they replaced or take out the one they added (deleting
165
+ * a file they created once it is empty), take the names they added out of an enabled list, and give
166
+ * each asset its lockfile entry from `before`, or remove it. A file or config entry an asset of
167
+ * `before` also owns is kept.
168
+ * Returns `lockfile` with the entries reverted, as written.
169
+ */
170
+ export declare function rollBackInstalledAssets(installed: Array<{
171
+ asset: Pick<RegistryAsset, 'name' | 'org' | 'type'>;
172
+ result: InstallResult;
173
+ }>, before: Lockfile, lockfile: Lockfile, options: Pick<InstallOptions, 'adapter' | 'onProgress' | 'projectDir'>): Promise<Lockfile>;
174
+ export {};
70
175
  //# sourceMappingURL=installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAiBpD,OAAO,EAAE,YAAY,EAA+B,MAAM,aAAa,CAAC;AASxE,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,oBAAoB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,WAAW,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,aAAa,EAAE,YAAY,GAAG,QAAQ,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD,qBAAa,cAAe,SAAQ,YAAY;IACrC,IAAI,SAAoB;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7D,IAAI,CAUN;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAiH7G"}
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/lib/installer.ts"],"names":[],"mappings":"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"}