@microwiseai/snapshot 0.4.0 → 0.5.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 (77) hide show
  1. package/dist/commands/clone-all.d.ts +21 -0
  2. package/dist/commands/clone-all.d.ts.map +1 -0
  3. package/dist/commands/clone-all.js +57 -0
  4. package/dist/commands/clone-all.js.map +1 -0
  5. package/dist/commands/install.d.ts.map +1 -1
  6. package/dist/commands/install.js +11 -34
  7. package/dist/commands/install.js.map +1 -1
  8. package/dist/index.js +14 -18
  9. package/dist/index.js.map +1 -1
  10. package/dist/lib/config.js +1 -1
  11. package/dist/lib/config.js.map +1 -1
  12. package/dist/lib/gitlab.d.ts.map +1 -1
  13. package/dist/lib/gitlab.js +6 -8
  14. package/dist/lib/gitlab.js.map +1 -1
  15. package/node_modules/@gitdot/clone-lib/README.md +117 -0
  16. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.d.ts +9 -0
  17. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.d.ts.map +1 -0
  18. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.js +154 -0
  19. package/node_modules/@gitdot/clone-lib/dist/bin/gitdot-resolve.js.map +1 -0
  20. package/node_modules/@gitdot/clone-lib/dist/clone.d.ts +21 -0
  21. package/node_modules/@gitdot/clone-lib/dist/clone.d.ts.map +1 -0
  22. package/node_modules/@gitdot/clone-lib/dist/clone.js +228 -0
  23. package/node_modules/@gitdot/clone-lib/dist/clone.js.map +1 -0
  24. package/node_modules/@gitdot/clone-lib/dist/dotpath.d.ts +10 -0
  25. package/node_modules/@gitdot/clone-lib/dist/dotpath.d.ts.map +1 -0
  26. package/node_modules/@gitdot/clone-lib/dist/dotpath.js +27 -0
  27. package/node_modules/@gitdot/clone-lib/dist/dotpath.js.map +1 -0
  28. package/node_modules/@gitdot/clone-lib/dist/git.d.ts +23 -0
  29. package/node_modules/@gitdot/clone-lib/dist/git.d.ts.map +1 -0
  30. package/node_modules/@gitdot/clone-lib/dist/git.js +134 -0
  31. package/node_modules/@gitdot/clone-lib/dist/git.js.map +1 -0
  32. package/node_modules/@gitdot/clone-lib/dist/index.d.ts +17 -0
  33. package/node_modules/@gitdot/clone-lib/dist/index.d.ts.map +1 -0
  34. package/node_modules/@gitdot/clone-lib/dist/index.js +35 -0
  35. package/node_modules/@gitdot/clone-lib/dist/index.js.map +1 -0
  36. package/node_modules/@gitdot/clone-lib/dist/lock.d.ts +24 -0
  37. package/node_modules/@gitdot/clone-lib/dist/lock.d.ts.map +1 -0
  38. package/node_modules/@gitdot/clone-lib/dist/lock.js +97 -0
  39. package/node_modules/@gitdot/clone-lib/dist/lock.js.map +1 -0
  40. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.d.ts +15 -0
  41. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.d.ts.map +1 -0
  42. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.js +124 -0
  43. package/node_modules/@gitdot/clone-lib/dist/resolve/gitlab.js.map +1 -0
  44. package/node_modules/@gitdot/clone-lib/dist/resolve/index.d.ts +12 -0
  45. package/node_modules/@gitdot/clone-lib/dist/resolve/index.d.ts.map +1 -0
  46. package/node_modules/@gitdot/clone-lib/dist/resolve/index.js +31 -0
  47. package/node_modules/@gitdot/clone-lib/dist/resolve/index.js.map +1 -0
  48. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.d.ts +32 -0
  49. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.d.ts.map +1 -0
  50. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.js +159 -0
  51. package/node_modules/@gitdot/clone-lib/dist/resolve/manifest.js.map +1 -0
  52. package/node_modules/@gitdot/clone-lib/dist/resolve/member.d.ts +44 -0
  53. package/node_modules/@gitdot/clone-lib/dist/resolve/member.d.ts.map +1 -0
  54. package/node_modules/@gitdot/clone-lib/dist/resolve/member.js +163 -0
  55. package/node_modules/@gitdot/clone-lib/dist/resolve/member.js.map +1 -0
  56. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.d.ts +18 -0
  57. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.d.ts.map +1 -0
  58. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.js +155 -0
  59. package/node_modules/@gitdot/clone-lib/dist/resolve/resolve.js.map +1 -0
  60. package/node_modules/@gitdot/clone-lib/dist/types.d.ts +225 -0
  61. package/node_modules/@gitdot/clone-lib/dist/types.d.ts.map +1 -0
  62. package/node_modules/@gitdot/clone-lib/dist/types.js +9 -0
  63. package/node_modules/@gitdot/clone-lib/dist/types.js.map +1 -0
  64. package/node_modules/@gitdot/clone-lib/package.json +53 -0
  65. package/package.json +14 -3
  66. package/dist/commands/doctor.d.ts +0 -2
  67. package/dist/commands/doctor.d.ts.map +0 -1
  68. package/dist/commands/doctor.js +0 -37
  69. package/dist/commands/doctor.js.map +0 -1
  70. package/dist/commands/setup.d.ts +0 -5
  71. package/dist/commands/setup.d.ts.map +0 -1
  72. package/dist/commands/setup.js +0 -52
  73. package/dist/commands/setup.js.map +0 -1
  74. package/dist/lib/prerequisites.d.ts +0 -33
  75. package/dist/lib/prerequisites.d.ts.map +0 -1
  76. package/dist/lib/prerequisites.js +0 -123
  77. package/dist/lib/prerequisites.js.map +0 -1
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Public type surface for @gitdot/clone-lib (RESOLVED-LOCK-SPEC S2/S3/S4).
3
+ *
4
+ * Consumers (snapshot / skit / glpkg) import these to type their adapters:
5
+ * import type { ResolvedLock, Member, CloneReport, Manifest } from '@gitdot/clone-lib';
6
+ */
7
+ /** Clone strategy: pin an exact commit, or track the default-branch HEAD. */
8
+ export type CloneMode = 'pinned' | 'head';
9
+ /** Resolved repo visibility (drives the S3 credential pre-flight). */
10
+ export type Visibility = 'public' | 'private' | 'unknown';
11
+ /** How a coordinate was resolved (makes GAP-1 guesswork explicit + checkable). */
12
+ export type Provenance = 'manifest-repository' | 'gitlab-api' | 'package-lock-projectid' | 'convention-guess' | null;
13
+ /** Member kind (reused enum from SUBSET-MANIFEST). */
14
+ export type MemberType = 'npm-lib' | 'app/worker' | 'static-asset' | 'meta';
15
+ /** Structured git failure kind emitted by the GitRunner. */
16
+ export type GitErrorKind = 'not-found' | 'no-access' | 'failed';
17
+ /** A real, git-clonable coordinate. `cloneUrl` is REQUIRED for a finished lock. */
18
+ export interface RepoCoordinate {
19
+ cloneUrl?: string;
20
+ projectPath?: string;
21
+ projectId?: number;
22
+ }
23
+ /** Full resolved ref; `sha` === Member.commitSha. */
24
+ export interface Ref {
25
+ branch: string | null;
26
+ tag: string | null;
27
+ sha: string | null;
28
+ dirty: boolean;
29
+ }
30
+ /** One fully-resolved node of the install closure. */
31
+ export interface Member {
32
+ /** declared gitdot dot-identity, separate from npmName (F2). */
33
+ id: string;
34
+ npmName: string;
35
+ /** resolved GitLab group — pinned PER MEMBER (multi-tenant rule S2). */
36
+ gitlabGroup: string | null;
37
+ repoCoordinate: RepoCoordinate;
38
+ visibility: Visibility;
39
+ version: string | null;
40
+ /** exact commit the version was published from (tag → sha pin). */
41
+ commitSha: string | null;
42
+ ref: Ref;
43
+ memberType: MemberType;
44
+ /** install channel that declared it (glpkg | npm-proxy | skit | …). */
45
+ installer: string;
46
+ provenance: Provenance;
47
+ }
48
+ /** `source` block — the only part that differs between skit/snapshot/glpkg locks. */
49
+ export interface LockSource {
50
+ manifest: string | null;
51
+ manifestVersion: string | null;
52
+ registry: Record<string, unknown>;
53
+ derivedFrom: 'package-lock.json' | 'manifest' | string;
54
+ }
55
+ /** The one resolved-lock schema; skit/snapshot/glpkg.lock.json are instances of it. */
56
+ export interface ResolvedLock {
57
+ lockVersion: 1;
58
+ kind: 'resolved-lock';
59
+ subset?: string;
60
+ source: LockSource;
61
+ resolvedAt: string;
62
+ members: Member[];
63
+ edges: Array<[string, string]>;
64
+ }
65
+ export interface ClonedEntry {
66
+ id: string;
67
+ sha: string;
68
+ path: string;
69
+ coordinate: string;
70
+ visibility: Visibility;
71
+ provenance: Provenance;
72
+ }
73
+ export interface SkippedEntry {
74
+ id: string;
75
+ reason: string;
76
+ }
77
+ export interface NoAccessEntry {
78
+ id: string;
79
+ visibility: Visibility;
80
+ reason: string;
81
+ }
82
+ export interface BucketEntry {
83
+ id: string;
84
+ reason: string;
85
+ }
86
+ /** Structured, --json-serializable clone outcome. Every member lands in one bucket. */
87
+ export interface CloneReport {
88
+ mode: CloneMode;
89
+ credentialsNeeded: number;
90
+ cloned: ClonedEntry[];
91
+ skipped: SkippedEntry[];
92
+ 'skipped-no-access': NoAccessEntry[];
93
+ 'not-found': BucketEntry[];
94
+ failed: BucketEntry[];
95
+ closureSize: number;
96
+ }
97
+ /** The git surface cloneFromLock depends on; inject a fake for deterministic tests. */
98
+ export interface GitRunner {
99
+ exists(absPath: string): boolean;
100
+ isRepo(absPath: string): boolean;
101
+ clone(cloneUrl: string, absPath: string): void;
102
+ checkout(absPath: string, sha: string): void;
103
+ headSha(absPath: string): string;
104
+ }
105
+ export interface GitLabProject {
106
+ id: number | string;
107
+ path_with_namespace?: string;
108
+ http_url_to_repo?: string;
109
+ visibility?: Visibility;
110
+ default_branch?: string;
111
+ [k: string]: unknown;
112
+ }
113
+ export interface GitLabTag {
114
+ name: string;
115
+ commit?: {
116
+ id?: string;
117
+ sha?: string;
118
+ };
119
+ }
120
+ export interface PackumentVersion {
121
+ dist?: {
122
+ tarball?: string;
123
+ };
124
+ dependencies?: Record<string, string>;
125
+ [k: string]: unknown;
126
+ }
127
+ export interface Packument {
128
+ name?: string;
129
+ 'dist-tags'?: {
130
+ latest?: string;
131
+ };
132
+ versions?: Record<string, PackumentVersion>;
133
+ [k: string]: unknown;
134
+ }
135
+ /** Read-only GitLab client; inject a fake in tests. */
136
+ export interface GitLabApi {
137
+ getProject(id: number | string): Promise<GitLabProject>;
138
+ getTags(id: number | string): Promise<GitLabTag[]>;
139
+ getPackument(name: string, opts?: {
140
+ group?: string;
141
+ }): Promise<Packument>;
142
+ }
143
+ /** scope → group (+ optional url) default table. */
144
+ export type RegistryMap = Record<string, {
145
+ group: string;
146
+ url?: string;
147
+ }>;
148
+ /** Install block: channelled ({channel:{name:ver}}) OR a flat {name:ver} map. */
149
+ export type InstallBlock = Record<string, Record<string, string>> | Record<string, string>;
150
+ /** snapshot.json-like input consumed by resolveFromManifest (B2). */
151
+ export interface Manifest {
152
+ name?: string;
153
+ version?: string;
154
+ subset?: string;
155
+ registry?: RegistryMap;
156
+ install?: InstallBlock;
157
+ [k: string]: unknown;
158
+ }
159
+ /** Object form of a skit `dependencies.npm` value (source-pinned). */
160
+ export interface NpmDependencySpec {
161
+ version: string;
162
+ source?: 'npm' | 'proxy';
163
+ }
164
+ /**
165
+ * skit.json (SkitManifest) shape — documented for consumers that map it into a
166
+ * {@link Manifest} before calling resolveFromManifest (a thin per-distribution shim).
167
+ */
168
+ export interface SkitManifest {
169
+ name: string;
170
+ version: string;
171
+ registry?: RegistryMap;
172
+ dependencies?: {
173
+ npm?: Record<string, string | NpmDependencySpec>;
174
+ skit?: Record<string, string>;
175
+ };
176
+ glpkg?: {
177
+ groups?: Record<string, string[]>;
178
+ policy?: string;
179
+ };
180
+ [k: string]: unknown;
181
+ }
182
+ export interface CloneFromLockOptions {
183
+ mode?: CloneMode;
184
+ dest: string;
185
+ only?: string[];
186
+ installer?: string[];
187
+ git?: GitRunner;
188
+ workspaceDir?: string;
189
+ }
190
+ /** Reader that returns an installed package.json (path-1 manifest-repository). */
191
+ export type ReadInstalledManifest = (name: string) => {
192
+ repository?: unknown;
193
+ [k: string]: unknown;
194
+ } | null;
195
+ export interface ResolveLockOptions {
196
+ packageLockPath: string;
197
+ nodeModulesDir?: string;
198
+ subset: string;
199
+ scopes?: string[];
200
+ source?: Partial<Pick<LockSource, 'manifest' | 'manifestVersion'>> & {
201
+ registry?: Record<string, unknown>;
202
+ };
203
+ api: GitLabApi;
204
+ installer?: string;
205
+ readInstalledManifest?: ReadInstalledManifest;
206
+ now?: () => string;
207
+ warn?: (msg: string) => void;
208
+ }
209
+ export interface ResolveFromManifestOptions {
210
+ api: GitLabApi;
211
+ scopes?: string[];
212
+ subset?: string;
213
+ source?: {
214
+ manifest?: string | null;
215
+ manifestVersion?: string | null;
216
+ };
217
+ readInstalledManifest?: ReadInstalledManifest;
218
+ now?: () => string;
219
+ warn?: (msg: string) => void;
220
+ }
221
+ export interface ResolveResult {
222
+ lock: ResolvedLock;
223
+ warnings: string[];
224
+ }
225
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /**
3
+ * Public type surface for @gitdot/clone-lib (RESOLVED-LOCK-SPEC S2/S3/S4).
4
+ *
5
+ * Consumers (snapshot / skit / glpkg) import these to type their adapters:
6
+ * import type { ResolvedLock, Member, CloneReport, Manifest } from '@gitdot/clone-lib';
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@gitdot/clone-lib",
3
+ "version": "0.2.0",
4
+ "description": "Shared resolved-lock library (TypeScript): resolve a distribution's install closure (from a package-lock or a snapshot.json manifest) into a resolved-lock (RESOLVED-LOCK-SPEC S2), then clone that closure. Zero runtime dependencies.",
5
+ "type": "commonjs",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./resolve": {
14
+ "types": "./dist/resolve/index.d.ts",
15
+ "default": "./dist/resolve/index.js"
16
+ },
17
+ "./package.json": "./package.json"
18
+ },
19
+ "bin": {
20
+ "gitdot-resolve": "dist/bin/gitdot-resolve.js"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "README.md"
25
+ ],
26
+ "scripts": {
27
+ "clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
28
+ "build": "npm run clean && tsc -p tsconfig.json",
29
+ "typecheck": "tsc --noEmit",
30
+ "test": "npm run build && node --test",
31
+ "prepublishOnly": "npm run build"
32
+ },
33
+ "engines": {
34
+ "node": ">=18"
35
+ },
36
+ "keywords": [
37
+ "gitdot",
38
+ "resolved-lock",
39
+ "clone",
40
+ "gitlab",
41
+ "monorepo",
42
+ "typescript"
43
+ ],
44
+ "license": "UNLICENSED",
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://gitlab.com/microwiseai/gitdot.clone-lib.git"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^20.19.43",
51
+ "typescript": "^5.9.3"
52
+ }
53
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microwiseai/snapshot",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "CLI for installing IST Snapshot packages",
5
5
  "type": "module",
6
6
  "main": "./dist/lib.js",
@@ -31,7 +31,8 @@
31
31
  "files": [
32
32
  "dist",
33
33
  "node_modules/@microwiseai",
34
- "node_modules/@ist"
34
+ "node_modules/@ist",
35
+ "node_modules/@gitdot"
35
36
  ],
36
37
  "keywords": [
37
38
  "snapshot",
@@ -42,6 +43,7 @@
42
43
  "author": "IST Team",
43
44
  "license": "MIT",
44
45
  "dependencies": {
46
+ "@gitdot/clone-lib": "^0.2.0",
45
47
  "@microwiseai/import-telemetry": "^0.1.0",
46
48
  "@microwiseai/license": "^0.1.4",
47
49
  "@microwiseai/skit": "^0.1.19",
@@ -64,6 +66,7 @@
64
66
  "node": ">=18.0.0"
65
67
  },
66
68
  "bundleDependencies": [
69
+ "@gitdot/clone-lib",
67
70
  "@microwiseai/import-telemetry",
68
71
  "@microwiseai/license",
69
72
  "@microwiseai/skit",
@@ -71,6 +74,14 @@
71
74
  "@microwiseai/snapshot-parallel"
72
75
  ],
73
76
  "glpkg": {
74
- "group": "microwiseai"
77
+ "groups": {
78
+ "microwiseai": [
79
+ "@gitdot/clone-lib"
80
+ ]
81
+ }
82
+ },
83
+ "repository": {
84
+ "type": "git",
85
+ "url": "git+https://gitlab.com/microwiseai/snapshot.git"
75
86
  }
76
87
  }
@@ -1,2 +0,0 @@
1
- export declare function doctorCommand(): Promise<void>;
2
- //# sourceMappingURL=doctor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAoCnD"}
@@ -1,37 +0,0 @@
1
- import chalk from 'chalk';
2
- import { checkPrerequisites, MINIMAL_PREREQUISITES } from '../lib/prerequisites.js';
3
- export async function doctorCommand() {
4
- console.log(chalk.blue('Checking prerequisites...\n'));
5
- const results = checkPrerequisites(MINIMAL_PREREQUISITES);
6
- const missing = results.filter(r => !r.installed);
7
- // Print results
8
- for (const r of results) {
9
- const icon = r.installed ? chalk.green('✅') : chalk.red('❌');
10
- console.log(` ${icon} ${r.name}`);
11
- if (!r.installed) {
12
- console.log(chalk.gray(` Required by: ${r.requiredBy.join(', ')}`));
13
- if (r.installCommand) {
14
- console.log(chalk.gray(` Fix: ${r.installCommand}`));
15
- }
16
- if (r.guide) {
17
- console.log(chalk.gray(` ${r.guide}`));
18
- }
19
- }
20
- }
21
- console.log('');
22
- if (missing.length === 0) {
23
- console.log(chalk.green('All prerequisites satisfied! ✓'));
24
- }
25
- else {
26
- console.log(chalk.yellow(`${missing.length} issue(s) found.`));
27
- const fixable = missing.filter(r => r.installCommand);
28
- if (fixable.length > 0) {
29
- console.log(chalk.gray(`Run 'snapshot setup' to install ${fixable.length} missing prerequisite(s).`));
30
- }
31
- const manual = missing.filter(r => !r.installCommand);
32
- if (manual.length > 0) {
33
- console.log(chalk.gray(`${manual.length} require manual action (see above).`));
34
- }
35
- }
36
- }
37
- //# sourceMappingURL=doctor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAElD,gBAAgB;IAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,OAAO,CAAC,MAAM,2BAA2B,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,qCAAqC,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare function setupCommand(options: {
2
- auto?: boolean;
3
- dryRun?: boolean;
4
- }): Promise<void>;
5
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAGA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD/F"}
@@ -1,52 +0,0 @@
1
- import chalk from 'chalk';
2
- import { checkPrerequisites, installPrerequisite, MINIMAL_PREREQUISITES } from '../lib/prerequisites.js';
3
- export async function setupCommand(options) {
4
- console.log(chalk.blue('Setting up prerequisites...\n'));
5
- const results = checkPrerequisites(MINIMAL_PREREQUISITES);
6
- const missing = results.filter(r => !r.installed);
7
- if (missing.length === 0) {
8
- console.log(chalk.green('All prerequisites already satisfied! ✓'));
9
- return;
10
- }
11
- console.log(`Found ${missing.length} missing prerequisite(s):\n`);
12
- for (const item of missing) {
13
- if (!item.installCommand) {
14
- // Manual action required
15
- console.log(` ${chalk.yellow('⚠')} ${item.name}: requires manual action`);
16
- console.log(chalk.gray(` ${item.guide || 'No instructions available.'}`));
17
- console.log('');
18
- continue;
19
- }
20
- if (options.dryRun) {
21
- console.log(` ${chalk.cyan('→')} Would install: ${item.name}`);
22
- console.log(chalk.gray(` Command: ${item.installCommand}`));
23
- console.log('');
24
- continue;
25
- }
26
- console.log(` ${chalk.cyan('→')} Installing: ${item.name}...`);
27
- const result = installPrerequisite(item);
28
- if (result.success) {
29
- console.log(` ${chalk.green('✅')} ${item.name} installed`);
30
- }
31
- else {
32
- console.log(` ${chalk.red('❌')} ${item.name} failed: ${result.error}`);
33
- }
34
- console.log('');
35
- }
36
- // Re-check
37
- console.log(chalk.blue('Verifying...\n'));
38
- const recheck = checkPrerequisites(MINIMAL_PREREQUISITES);
39
- const stillMissing = recheck.filter(r => !r.installed);
40
- if (stillMissing.length === 0) {
41
- console.log(chalk.green('All prerequisites satisfied! ✓'));
42
- }
43
- else {
44
- console.log(chalk.yellow(`${stillMissing.length} still missing:`));
45
- for (const r of stillMissing) {
46
- console.log(` ${chalk.red('❌')} ${r.name}`);
47
- if (r.guide)
48
- console.log(chalk.gray(` ${r.guide}`));
49
- }
50
- }
51
- }
52
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export interface Prerequisite {
2
- name: string;
3
- description: string;
4
- requiredBy: string[];
5
- check: () => boolean;
6
- install?: Record<string, string>;
7
- guide?: string;
8
- autoInstall: boolean;
9
- }
10
- export interface CheckResult {
11
- name: string;
12
- description: string;
13
- requiredBy: string[];
14
- installed: boolean;
15
- guide?: string;
16
- installCommand?: string;
17
- }
18
- /**
19
- * Minimal snapshot prerequisites
20
- */
21
- export declare const MINIMAL_PREREQUISITES: Prerequisite[];
22
- /**
23
- * Check all prerequisites and return results
24
- */
25
- export declare function checkPrerequisites(prerequisites?: Prerequisite[]): CheckResult[];
26
- /**
27
- * Install a single prerequisite
28
- */
29
- export declare function installPrerequisite(result: CheckResult): {
30
- success: boolean;
31
- error?: string;
32
- };
33
- //# sourceMappingURL=prerequisites.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prerequisites.d.ts","sourceRoot":"","sources":["../../src/lib/prerequisites.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAqCD;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAgD/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,YAAY,EAA0B,GAAG,WAAW,EAAE,CAWvG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAU7F"}
@@ -1,123 +0,0 @@
1
- import { execSync } from 'child_process';
2
- import { platform } from 'os';
3
- import { isLoggedIn } from './config.js';
4
- /**
5
- * Get OS-specific platform key
6
- */
7
- function getPlatformKey() {
8
- const os = platform();
9
- if (os === 'darwin')
10
- return 'macos-brew';
11
- if (os === 'linux') {
12
- // Detect apt vs yum
13
- try {
14
- execSync('which apt-get', { stdio: 'ignore' });
15
- return 'linux-apt';
16
- }
17
- catch {
18
- try {
19
- execSync('which yum', { stdio: 'ignore' });
20
- return 'linux-yum';
21
- }
22
- catch {
23
- return 'linux-unknown';
24
- }
25
- }
26
- }
27
- return 'unknown';
28
- }
29
- /**
30
- * Check if a command exists
31
- */
32
- function hasCommand(cmd) {
33
- try {
34
- execSync(`which ${cmd} 2>/dev/null`, { stdio: 'ignore' });
35
- return true;
36
- }
37
- catch {
38
- return false;
39
- }
40
- }
41
- /**
42
- * Minimal snapshot prerequisites
43
- */
44
- export const MINIMAL_PREREQUISITES = [
45
- {
46
- name: 'tmux',
47
- description: 'Terminal multiplexer (session management)',
48
- requiredBy: ['@ist/sesh'],
49
- check: () => hasCommand('tmux'),
50
- install: {
51
- 'linux-apt': 'sudo apt-get update -qq && sudo apt-get install -y tmux',
52
- 'linux-yum': 'sudo yum install -y tmux',
53
- 'macos-brew': 'brew install tmux',
54
- },
55
- autoInstall: true,
56
- },
57
- {
58
- name: 'IST CLI Auth',
59
- description: 'Authentication CLI for IST services (ist auth login)',
60
- requiredBy: ['snapshot install (authenticated)'],
61
- check: () => hasCommand('ist'),
62
- install: {
63
- 'linux-apt': 'npm install -g @microwiseai/cli-auth',
64
- 'linux-yum': 'npm install -g @microwiseai/cli-auth',
65
- 'macos-brew': 'npm install -g @microwiseai/cli-auth',
66
- },
67
- autoInstall: true,
68
- },
69
- {
70
- name: 'Claude Code',
71
- description: 'AI CLI for session creation',
72
- requiredBy: ['@ist/sesh'],
73
- check: () => hasCommand('claude'),
74
- install: {
75
- 'linux-apt': 'npm install -g @anthropic-ai/claude-code',
76
- 'linux-yum': 'npm install -g @anthropic-ai/claude-code',
77
- 'macos-brew': 'npm install -g @anthropic-ai/claude-code',
78
- },
79
- autoInstall: true,
80
- },
81
- {
82
- name: 'IST Credentials',
83
- description: 'Authentication for session isolation',
84
- requiredBy: ['snapshot install (authenticated)'],
85
- // SSOT: ~/.ist/credentials.json `.token` (IST JWT) via cli-auth v2, with
86
- // local expiry pre-check. NOT the legacy extensionless ~/.ist/credentials
87
- // file (that path predates the credential-schema convergence).
88
- check: () => isLoggedIn(),
89
- autoInstall: false,
90
- guide: 'Run "ist auth login" to authenticate.',
91
- },
92
- ];
93
- /**
94
- * Check all prerequisites and return results
95
- */
96
- export function checkPrerequisites(prerequisites = MINIMAL_PREREQUISITES) {
97
- const platformKey = getPlatformKey();
98
- return prerequisites.map(prereq => ({
99
- name: prereq.name,
100
- description: prereq.description,
101
- requiredBy: prereq.requiredBy,
102
- installed: prereq.check(),
103
- guide: prereq.guide,
104
- installCommand: prereq.install?.[platformKey] || prereq.install?.['linux-apt'],
105
- }));
106
- }
107
- /**
108
- * Install a single prerequisite
109
- */
110
- export function installPrerequisite(result) {
111
- if (result.installed)
112
- return { success: true };
113
- if (!result.installCommand)
114
- return { success: false, error: 'No install command available. ' + (result.guide || '') };
115
- try {
116
- execSync(result.installCommand, { stdio: 'inherit' });
117
- return { success: true };
118
- }
119
- catch (err) {
120
- return { success: false, error: err.message };
121
- }
122
- }
123
- //# sourceMappingURL=prerequisites.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../src/lib/prerequisites.ts"],"names":[],"mappings":"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"}