@aligndottech/cli 0.48.0 → 0.49.0

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 (151) hide show
  1. package/README.md +6 -5
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +9 -18
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +3 -1
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/ai.d.ts +11 -0
  9. package/dist/commands/ai.d.ts.map +1 -0
  10. package/dist/commands/ai.js +121 -0
  11. package/dist/commands/ai.js.map +1 -0
  12. package/dist/commands/default-action.js +2 -2
  13. package/dist/commands/default-action.js.map +1 -1
  14. package/dist/commands/registry.d.ts.map +1 -1
  15. package/dist/commands/registry.js +4 -0
  16. package/dist/commands/registry.js.map +1 -1
  17. package/dist/commands/setup.d.ts.map +1 -1
  18. package/dist/commands/setup.js +53 -191
  19. package/dist/commands/setup.js.map +1 -1
  20. package/dist/commands/why.d.ts.map +1 -1
  21. package/dist/commands/why.js +21 -0
  22. package/dist/commands/why.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/ask-key-offer.d.ts +38 -0
  28. package/dist/lib/ask-key-offer.d.ts.map +1 -0
  29. package/dist/lib/ask-key-offer.js +130 -0
  30. package/dist/lib/ask-key-offer.js.map +1 -0
  31. package/dist/lib/config.d.ts +25 -24
  32. package/dist/lib/config.d.ts.map +1 -1
  33. package/dist/lib/config.js +37 -45
  34. package/dist/lib/config.js.map +1 -1
  35. package/dist/lib/launch/adapters/amp.d.ts +18 -0
  36. package/dist/lib/launch/adapters/amp.d.ts.map +1 -0
  37. package/dist/lib/launch/adapters/amp.js +29 -0
  38. package/dist/lib/launch/adapters/amp.js.map +1 -0
  39. package/dist/lib/launch/adapters/droid.d.ts +19 -0
  40. package/dist/lib/launch/adapters/droid.d.ts.map +1 -0
  41. package/dist/lib/launch/adapters/droid.js +38 -0
  42. package/dist/lib/launch/adapters/droid.js.map +1 -0
  43. package/dist/lib/launch/adapters/grok-build.d.ts +16 -0
  44. package/dist/lib/launch/adapters/grok-build.d.ts.map +1 -0
  45. package/dist/lib/launch/adapters/grok-build.js +25 -0
  46. package/dist/lib/launch/adapters/grok-build.js.map +1 -0
  47. package/dist/lib/launch/adapters/kiro.d.ts +17 -0
  48. package/dist/lib/launch/adapters/kiro.d.ts.map +1 -0
  49. package/dist/lib/launch/adapters/kiro.js +25 -0
  50. package/dist/lib/launch/adapters/kiro.js.map +1 -0
  51. package/dist/lib/launch/adapters/qwen.d.ts +25 -0
  52. package/dist/lib/launch/adapters/qwen.d.ts.map +1 -0
  53. package/dist/lib/launch/adapters/qwen.js +67 -0
  54. package/dist/lib/launch/adapters/qwen.js.map +1 -0
  55. package/dist/lib/launch/agents.d.ts +4 -1
  56. package/dist/lib/launch/agents.d.ts.map +1 -1
  57. package/dist/lib/launch/agents.js +10 -4
  58. package/dist/lib/launch/agents.js.map +1 -1
  59. package/dist/lib/launch/amp-state.d.ts +21 -0
  60. package/dist/lib/launch/amp-state.d.ts.map +1 -0
  61. package/dist/lib/launch/amp-state.js +61 -0
  62. package/dist/lib/launch/amp-state.js.map +1 -0
  63. package/dist/lib/launch/config-writes.d.ts +7 -1
  64. package/dist/lib/launch/config-writes.d.ts.map +1 -1
  65. package/dist/lib/launch/config-writes.js +60 -7
  66. package/dist/lib/launch/config-writes.js.map +1 -1
  67. package/dist/lib/launch/detect.d.ts.map +1 -1
  68. package/dist/lib/launch/detect.js +2 -1
  69. package/dist/lib/launch/detect.js.map +1 -1
  70. package/dist/lib/launch/droid-state.d.ts +24 -0
  71. package/dist/lib/launch/droid-state.d.ts.map +1 -0
  72. package/dist/lib/launch/droid-state.js +74 -0
  73. package/dist/lib/launch/droid-state.js.map +1 -0
  74. package/dist/lib/launch/grok-state.d.ts +42 -0
  75. package/dist/lib/launch/grok-state.d.ts.map +1 -0
  76. package/dist/lib/launch/grok-state.js +128 -0
  77. package/dist/lib/launch/grok-state.js.map +1 -0
  78. package/dist/lib/launch/kiro-state.d.ts +22 -0
  79. package/dist/lib/launch/kiro-state.d.ts.map +1 -0
  80. package/dist/lib/launch/kiro-state.js +59 -0
  81. package/dist/lib/launch/kiro-state.js.map +1 -0
  82. package/dist/lib/launch/launch.d.ts +34 -0
  83. package/dist/lib/launch/launch.d.ts.map +1 -1
  84. package/dist/lib/launch/launch.js +34 -3
  85. package/dist/lib/launch/launch.js.map +1 -1
  86. package/dist/lib/launch/layer-files.d.ts +12 -0
  87. package/dist/lib/launch/layer-files.d.ts.map +1 -0
  88. package/dist/lib/launch/layer-files.js +43 -0
  89. package/dist/lib/launch/layer-files.js.map +1 -0
  90. package/dist/lib/launch/pick-agent.d.ts.map +1 -1
  91. package/dist/lib/launch/pick-agent.js +7 -6
  92. package/dist/lib/launch/pick-agent.js.map +1 -1
  93. package/dist/lib/launch/qwen-state.d.ts +30 -0
  94. package/dist/lib/launch/qwen-state.d.ts.map +1 -0
  95. package/dist/lib/launch/qwen-state.js +57 -0
  96. package/dist/lib/launch/qwen-state.js.map +1 -0
  97. package/dist/lib/launch/qwen-trust.d.ts +24 -0
  98. package/dist/lib/launch/qwen-trust.d.ts.map +1 -0
  99. package/dist/lib/launch/qwen-trust.js +100 -0
  100. package/dist/lib/launch/qwen-trust.js.map +1 -0
  101. package/dist/lib/launch/registry/agents/amp.d.ts +3 -0
  102. package/dist/lib/launch/registry/agents/amp.d.ts.map +1 -0
  103. package/dist/lib/launch/registry/agents/amp.js +14 -0
  104. package/dist/lib/launch/registry/agents/amp.js.map +1 -0
  105. package/dist/lib/launch/registry/agents/droid.d.ts +3 -0
  106. package/dist/lib/launch/registry/agents/droid.d.ts.map +1 -0
  107. package/dist/lib/launch/registry/agents/droid.js +13 -0
  108. package/dist/lib/launch/registry/agents/droid.js.map +1 -0
  109. package/dist/lib/launch/registry/agents/grok-build.d.ts +3 -0
  110. package/dist/lib/launch/registry/agents/grok-build.d.ts.map +1 -0
  111. package/dist/lib/launch/registry/agents/grok-build.js +14 -0
  112. package/dist/lib/launch/registry/agents/grok-build.js.map +1 -0
  113. package/dist/lib/launch/registry/agents/kiro.d.ts +3 -0
  114. package/dist/lib/launch/registry/agents/kiro.d.ts.map +1 -0
  115. package/dist/lib/launch/registry/agents/kiro.js +11 -0
  116. package/dist/lib/launch/registry/agents/kiro.js.map +1 -0
  117. package/dist/lib/launch/registry/agents/qwen.d.ts +3 -0
  118. package/dist/lib/launch/registry/agents/qwen.d.ts.map +1 -0
  119. package/dist/lib/launch/registry/agents/qwen.js +11 -0
  120. package/dist/lib/launch/registry/agents/qwen.js.map +1 -0
  121. package/dist/lib/launch/registry/index.d.ts +4 -1
  122. package/dist/lib/launch/registry/index.d.ts.map +1 -1
  123. package/dist/lib/launch/registry/index.js +10 -2
  124. package/dist/lib/launch/registry/index.js.map +1 -1
  125. package/dist/lib/launch/registry/types.d.ts +6 -1
  126. package/dist/lib/launch/registry/types.d.ts.map +1 -1
  127. package/dist/lib/launch/run-agent.d.ts +11 -0
  128. package/dist/lib/launch/run-agent.d.ts.map +1 -1
  129. package/dist/lib/launch/run-agent.js +22 -1
  130. package/dist/lib/launch/run-agent.js.map +1 -1
  131. package/dist/lib/launch/strict-entry.d.ts +1 -1
  132. package/dist/lib/launch/strict-entry.d.ts.map +1 -1
  133. package/dist/lib/launch/strict-entry.js +3 -1
  134. package/dist/lib/launch/strict-entry.js.map +1 -1
  135. package/dist/lib/llm-providers.d.ts +66 -0
  136. package/dist/lib/llm-providers.d.ts.map +1 -0
  137. package/dist/lib/llm-providers.js +150 -0
  138. package/dist/lib/llm-providers.js.map +1 -0
  139. package/dist/lib/local-llm.d.ts +63 -12
  140. package/dist/lib/local-llm.d.ts.map +1 -1
  141. package/dist/lib/local-llm.js +229 -104
  142. package/dist/lib/local-llm.js.map +1 -1
  143. package/dist/lib/safe-config-write.d.ts +12 -1
  144. package/dist/lib/safe-config-write.d.ts.map +1 -1
  145. package/dist/lib/safe-config-write.js +123 -7
  146. package/dist/lib/safe-config-write.js.map +1 -1
  147. package/dist/lib/startup-env.d.ts +8 -0
  148. package/dist/lib/startup-env.d.ts.map +1 -0
  149. package/dist/lib/startup-env.js +8 -0
  150. package/dist/lib/startup-env.js.map +1 -0
  151. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ import { type AlignLocalState } from './strict-entry.js';
2
+ export interface DroidProjectState extends AlignLocalState {
3
+ /** The user runs Droid with their own runtime settings (`--settings` or FACTORY_RUNTIME_SETTINGS_PATH). */
4
+ ownSettings?: string;
5
+ /** A guideline file Droid reads already carries align's managed instructions block. */
6
+ projectHasBlock: boolean;
7
+ }
8
+ /**
9
+ * What Factory Droid (droid 0.237.0) would already load for align. The project is `--cwd` when
10
+ * the user passes one (relative to the cwd), else the cwd; "home" is FACTORY_HOME_OVERRIDE when
11
+ * set (Droid's own home resolution).
12
+ * - MCP: $home/.factory/mcp.json, and a `.factory/mcp.json` from the project up to the git root
13
+ * (to the filesystem root with no git root). The per-process runtime settings win a same-named
14
+ * server (verified with `droid --settings f mcp list`), so a non-canonical align-local is
15
+ * overridden. Only the user's own canonical `align` stands in for us.
16
+ * - Instructions: Droid's own guideline discovery (agentsMdGuidelines): the project up to the
17
+ * git root, or only the project with none, each dir plus its .factory/.agents/.agent, plus
18
+ * $home/.factory, .agents and .agent; CLAUDE.md, AGENTS.md and case variants; a linked file or
19
+ * directory is ignored, as Droid's lstat checks ignore it.
20
+ */
21
+ export declare function readDroidState(cwd: string, home: string, opts: {
22
+ localIsDefault: boolean;
23
+ }, env: Record<string, string | undefined>, platform: string, passthrough: string[]): DroidProjectState;
24
+ //# sourceMappingURL=droid-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droid-state.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/droid-state.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAA6D,MAAM,mBAAmB,CAAC;AAEpH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAsCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,EACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EAAE,GACpB,iBAAiB,CAoBnB"}
@@ -0,0 +1,74 @@
1
+ import { existsSync, lstatSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { ALIGN_NUDGE_START } from '../agent-rules.js';
4
+ import { ancestors, optionValue, readText } from './layer-files.js';
5
+ import { foldLayers, isCanonicalLocalEntry, parseJsonc } from './strict-entry.js';
6
+ /** Droid's guideline file names and the dirs it looks in beside each directory (droid 0.237.0). */
7
+ const GUIDELINES = ['CLAUDE.md', 'Claude.md', 'AGENTS.md', 'Agents.md', 'agents.md'];
8
+ const CONTEXT_DIRS = ['.factory', '.agents', '.agent'];
9
+ /** The nearest directory at or above `start` holding `.git` (a dir, or a worktree's file). */
10
+ function gitRoot(start) {
11
+ return ancestors(start).find((d) => existsSync(path.join(d, '.git')));
12
+ }
13
+ /** Droid's walk: `start` up to the git root, or `start` alone when there is none. */
14
+ function projectDirs(start) {
15
+ const root = gitRoot(start);
16
+ if (!root)
17
+ return [start];
18
+ const all = ancestors(start);
19
+ return all.slice(0, all.indexOf(root) + 1);
20
+ }
21
+ /** A regular file, not a link (Droid's lstat check ignores links), holding the block. */
22
+ function guidelineHasBlock(dir, name) {
23
+ const file = path.join(dir, name);
24
+ try {
25
+ if (!lstatSync(file).isFile())
26
+ return false;
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ return readText(file)?.includes(ALIGN_NUDGE_START) ?? false;
32
+ }
33
+ function isRealDir(dir) {
34
+ try {
35
+ return lstatSync(dir).isDirectory();
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * What Factory Droid (droid 0.237.0) would already load for align. The project is `--cwd` when
43
+ * the user passes one (relative to the cwd), else the cwd; "home" is FACTORY_HOME_OVERRIDE when
44
+ * set (Droid's own home resolution).
45
+ * - MCP: $home/.factory/mcp.json, and a `.factory/mcp.json` from the project up to the git root
46
+ * (to the filesystem root with no git root). The per-process runtime settings win a same-named
47
+ * server (verified with `droid --settings f mcp list`), so a non-canonical align-local is
48
+ * overridden. Only the user's own canonical `align` stands in for us.
49
+ * - Instructions: Droid's own guideline discovery (agentsMdGuidelines): the project up to the
50
+ * git root, or only the project with none, each dir plus its .factory/.agents/.agent, plus
51
+ * $home/.factory, .agents and .agent; CLAUDE.md, AGENTS.md and case variants; a linked file or
52
+ * directory is ignored, as Droid's lstat checks ignore it.
53
+ */
54
+ export function readDroidState(cwd, home, opts, env, platform, passthrough) {
55
+ const userCwd = optionValue(passthrough, '--cwd');
56
+ const start = path.resolve(cwd, userCwd ?? '.');
57
+ const droidHome = env['FACTORY_HOME_OVERRIDE'] ? path.resolve(env['FACTORY_HOME_OVERRIDE']) : home;
58
+ const userFile = path.join(droidHome, '.factory', 'mcp.json');
59
+ const layer = (file) => ({ file, servers: parseJsonc(readText(file))?.['mcpServers'] });
60
+ const user = layer(userFile);
61
+ const root = gitRoot(start);
62
+ const mcpDirs = root ? projectDirs(start) : ancestors(start);
63
+ const layers = [user, ...mcpDirs.map((d) => layer(path.join(d, '.factory', 'mcp.json'))).filter((l) => l.file !== userFile)];
64
+ const o = { ...opts, platform, host: 'droid' };
65
+ const { overridden } = foldLayers(layers, o, () => true);
66
+ const present = isCanonicalLocalEntry(user.servers?.['align'], o);
67
+ const own = optionValue(passthrough, '--settings') ?? (env['FACTORY_RUNTIME_SETTINGS_PATH'] ? env['FACTORY_RUNTIME_SETTINGS_PATH'] : undefined);
68
+ const personal = CONTEXT_DIRS.map((d) => path.join(droidHome, d));
69
+ const dirs = projectDirs(start).filter((d) => d !== droidHome).flatMap((d) => [d, ...CONTEXT_DIRS.map((c) => path.join(d, c))]).filter((d) => !personal.includes(d));
70
+ // Droid looks only in a real directory (not a link) at a regular file (not a link): lstat both.
71
+ const projectHasBlock = [...dirs, ...personal].some((dir) => isRealDir(dir) && GUIDELINES.some((name) => guidelineHasBlock(dir, name)));
72
+ return { present, overridden, ...(own !== undefined ? { ownSettings: own } : {}), projectHasBlock };
73
+ }
74
+ //# sourceMappingURL=droid-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"droid-state.js","sourceRoot":"","sources":["../../../src/lib/launch/droid-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type AlignLocalState } from './strict-entry.js';
2
+ export interface GrokProjectState extends AlignLocalState {
3
+ /** $GROK_HOME/config.toml (else ~/.grok/config.toml): the file align adds to. */
4
+ configFile: string;
5
+ }
6
+ /**
7
+ * $GROK_HOME verbatim when non-empty, else `<home>/.grok` with the home's symlinks resolved, as
8
+ * Grok Build's own installer and `grok_home()` do (xai-org/grok-build xai-dirs, npm postinstall.js).
9
+ */
10
+ export declare function grokHome(env: Record<string, string | undefined>, platform: string, home?: string): string;
11
+ export interface BinFs {
12
+ realpath(p: string): string;
13
+ exists(p: string): boolean;
14
+ }
15
+ /**
16
+ * `grok` is a generic name, so a `grok` on PATH is Grok Build only when its realpath sits where
17
+ * Grok Build's own installers put it:
18
+ * - the install script (x.ai/cli/install.sh): `$GROK_HOME/downloads/grok-<platform>`, linked from
19
+ * `$GROK_HOME/bin/grok` (and from `$GROK_BIN_DIR` or ~/.local/bin, which resolve to the same);
20
+ * - its Windows script: a copy at `%USERPROFILE%\.grok\bin\grok.exe`;
21
+ * - the npm package `@xai-official/grok`: its postinstall installs into `$GROK_HOME/bin`, and the
22
+ * npm entry itself lives in `node_modules/@xai-official/grok[-<platform>]/`. On Windows npm's
23
+ * `grok.cmd` shim sits beside `node_modules`, so it counts when that package is next to it.
24
+ * Anything else (another tool's `grok`) is not Grok Build, and counts as not installed.
25
+ */
26
+ export declare function isGrokBuildBin(found: string, env: Record<string, string | undefined>, platform: string, fsx?: BinFs): boolean;
27
+ /**
28
+ * What Grok Build (grok 1.0.50) would already load for align, measured with `grok mcp list` and
29
+ * `grok inspect` in a sandbox:
30
+ * - `$GROK_HOME/config.toml` `[mcp_servers.*]`: the user file align writes to;
31
+ * - a project `.grok/config.toml` (repo root down to the cwd; every ancestor is read here):
32
+ * "A project file entirely replaces a same-named server from the user config", so a
33
+ * non-canonical align-local there would replace ours: a conflict, nothing is written;
34
+ * - ~/.claude.json and ~/.cursor/mcp.json (Grok imports them): a same-named server there LOSES
35
+ * to config.toml (verified), so it is no conflict; a canonical local `align` there is present.
36
+ * A project `.mcp.json` is repo input and never counts as present. The project is `--cwd` when
37
+ * the user passes one.
38
+ */
39
+ export declare function readGrokState(cwd: string, home: string, opts: {
40
+ localIsDefault: boolean;
41
+ }, env: Record<string, string | undefined>, platform: string, passthrough?: string[]): GrokProjectState;
42
+ //# sourceMappingURL=grok-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok-state.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/grok-state.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,mBAAmB,CAAC;AAE5F,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;CACpB;AAqBD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAwB,GAAG,MAAM,CAGxH;AASD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,KAAc,GAAG,OAAO,CAkBrI;AAaD;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,EACjC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAM,EAAO,GACzB,gBAAgB,CA0BlB"}
@@ -0,0 +1,128 @@
1
+ import { existsSync, realpathSync } from 'node:fs';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { parse } from 'smol-toml';
5
+ import { ancestors, optionValue, readText } from './layer-files.js';
6
+ import { isCanonicalLocalEntry, parseJsonc } from './strict-entry.js';
7
+ const isObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
8
+ const pathFor = (platform) => (platform === 'win32' ? path.win32 : path.posix);
9
+ function real(p) {
10
+ try {
11
+ return realpathSync(p);
12
+ }
13
+ catch {
14
+ return p;
15
+ }
16
+ }
17
+ /** The user's home as Grok Build resolves it: $HOME (USERPROFILE on Windows), else the OS's. */
18
+ function homeOf(env, platform) {
19
+ const h = platform === 'win32' ? env['USERPROFILE'] || env['HOME'] : env['HOME'];
20
+ return h ? h : os.homedir();
21
+ }
22
+ /**
23
+ * $GROK_HOME verbatim when non-empty, else `<home>/.grok` with the home's symlinks resolved, as
24
+ * Grok Build's own installer and `grok_home()` do (xai-org/grok-build xai-dirs, npm postinstall.js).
25
+ */
26
+ export function grokHome(env, platform, home = homeOf(env, platform)) {
27
+ if (env['GROK_HOME'])
28
+ return pathFor(platform).resolve(env['GROK_HOME']);
29
+ return pathFor(platform).join(platform === 'win32' ? home : real(home), '.grok');
30
+ }
31
+ const inside = (child, parent, platform) => {
32
+ const p = pathFor(platform);
33
+ const norm = (x) => (platform === 'win32' ? p.resolve(x).toLowerCase() : p.resolve(x));
34
+ const rel = p.relative(norm(parent), norm(child));
35
+ return rel !== '' && !rel.startsWith(`..${p.sep}`) && rel !== '..' && !p.isAbsolute(rel);
36
+ };
37
+ const realFs = { realpath: (p) => realpathSync(p), exists: (p) => existsSync(p) };
38
+ /**
39
+ * `grok` is a generic name, so a `grok` on PATH is Grok Build only when its realpath sits where
40
+ * Grok Build's own installers put it:
41
+ * - the install script (x.ai/cli/install.sh): `$GROK_HOME/downloads/grok-<platform>`, linked from
42
+ * `$GROK_HOME/bin/grok` (and from `$GROK_BIN_DIR` or ~/.local/bin, which resolve to the same);
43
+ * - its Windows script: a copy at `%USERPROFILE%\.grok\bin\grok.exe`;
44
+ * - the npm package `@xai-official/grok`: its postinstall installs into `$GROK_HOME/bin`, and the
45
+ * npm entry itself lives in `node_modules/@xai-official/grok[-<platform>]/`. On Windows npm's
46
+ * `grok.cmd` shim sits beside `node_modules`, so it counts when that package is next to it.
47
+ * Anything else (another tool's `grok`) is not Grok Build, and counts as not installed.
48
+ */
49
+ export function isGrokBuildBin(found, env, platform, fsx = realFs) {
50
+ let resolved;
51
+ try {
52
+ resolved = fsx.realpath(found);
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ const g = grokHome(env, platform);
58
+ const p = pathFor(platform);
59
+ if (inside(resolved, p.join(g, 'bin'), platform) || inside(resolved, p.join(g, 'downloads'), platform))
60
+ return true;
61
+ const parts = resolved.split(/[\\/]/);
62
+ for (let i = 0; i + 2 < parts.length; i++) {
63
+ if (parts[i] === 'node_modules' && parts[i + 1] === '@xai-official' && /^grok(-[a-z0-9]+-[a-z0-9]+)?$/.test(parts[i + 2]))
64
+ return true;
65
+ }
66
+ if (platform === 'win32' && /^grok\.cmd$/i.test(p.basename(resolved))) {
67
+ return fsx.exists(p.join(p.dirname(resolved), 'node_modules', '@xai-official', 'grok', 'package.json'));
68
+ }
69
+ return false;
70
+ }
71
+ function readToml(file) {
72
+ const text = readText(file);
73
+ if (text === null)
74
+ return null;
75
+ try {
76
+ const parsed = parse(text);
77
+ return isObject(parsed) ? parsed : null;
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ }
83
+ /**
84
+ * What Grok Build (grok 1.0.50) would already load for align, measured with `grok mcp list` and
85
+ * `grok inspect` in a sandbox:
86
+ * - `$GROK_HOME/config.toml` `[mcp_servers.*]`: the user file align writes to;
87
+ * - a project `.grok/config.toml` (repo root down to the cwd; every ancestor is read here):
88
+ * "A project file entirely replaces a same-named server from the user config", so a
89
+ * non-canonical align-local there would replace ours: a conflict, nothing is written;
90
+ * - ~/.claude.json and ~/.cursor/mcp.json (Grok imports them): a same-named server there LOSES
91
+ * to config.toml (verified), so it is no conflict; a canonical local `align` there is present.
92
+ * A project `.mcp.json` is repo input and never counts as present. The project is `--cwd` when
93
+ * the user passes one.
94
+ */
95
+ export function readGrokState(cwd, home, opts, env, platform, passthrough = []) {
96
+ // `grok --cwd <dir>` moves the project Grok loads; relative to the cwd, as a shell gives it.
97
+ const project = path.resolve(cwd, optionValue(passthrough, '--cwd') ?? '.');
98
+ const o = { ...opts, platform, host: 'mcpServers' };
99
+ // A path on this machine's own filesystem: built with the host's path rules (in production the
100
+ // platform is the host's anyway). grokHome uses `platform`'s rules for the binary gate.
101
+ const configFile = path.join(env['GROK_HOME'] ? path.resolve(env['GROK_HOME']) : path.join(home, '.grok'), 'config.toml');
102
+ const userServers = readToml(configFile)?.['mcp_servers'];
103
+ const state = { present: false, overridden: [], configFile };
104
+ const canonical = (s) => isObject(s) && (isCanonicalLocalEntry(s['align'], o) || isCanonicalLocalEntry(s['align-local'], o));
105
+ if (canonical(userServers))
106
+ state.present = true;
107
+ else if (isObject(userServers) && 'align-local' in userServers)
108
+ state.conflict = configFile;
109
+ for (const dir of ancestors(project)) {
110
+ const file = path.join(dir, '.grok', 'config.toml');
111
+ if (file === configFile)
112
+ continue;
113
+ const servers = readToml(file)?.['mcp_servers'];
114
+ if (isObject(servers) && 'align-local' in servers && !isCanonicalLocalEntry(servers['align-local'], o))
115
+ state.conflict ??= file;
116
+ }
117
+ // `[compat.claude] mcps = false` / `[compat.cursor] mcps = false` turn those imports off.
118
+ const compat = (readToml(configFile)?.['compat'] ?? {});
119
+ const imported = (tool) => !(isObject(compat[tool]) && compat[tool]['mcps'] === false);
120
+ const claude = parseJsonc(readText(path.join(home, '.claude.json')))?.['mcpServers'];
121
+ const cursor = parseJsonc(readText(path.join(home, '.cursor', 'mcp.json')))?.['mcpServers'];
122
+ if (imported('claude') && isObject(claude) && isCanonicalLocalEntry(claude['align'], o))
123
+ state.present = true;
124
+ if (imported('cursor') && isObject(cursor) && isCanonicalLocalEntry(cursor['align'], o))
125
+ state.present = true;
126
+ return state;
127
+ }
128
+ //# sourceMappingURL=grok-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok-state.js","sourceRoot":"","sources":["../../../src/lib/launch/grok-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type AlignLocalState } from './strict-entry.js';
2
+ export interface KiroProjectState extends AlignLocalState {
3
+ /** $KIRO_HOME/settings/mcp.json, else ~/.kiro/settings/mcp.json: the file align adds to. */
4
+ mcpFile: string;
5
+ }
6
+ /** KIRO_HOME "Override default ~/.kiro directory" (kiro.dev CLI reference). */
7
+ export declare function kiroDir(home: string, env: Record<string, string | undefined>): string;
8
+ /**
9
+ * What Kiro CLI would already load for align, FROM ITS DOCS ONLY (agent configs included, below) (no binary was run; kiro.dev
10
+ * docs/mcp/configuration): the global `~/.kiro/settings/mcp.json` and a workspace
11
+ * `.kiro/settings/mcp.json`, merged "with workspace settings taking precedence", a higher
12
+ * priority config "completely overrides lower ones for that specific server". So:
13
+ * - a canonical `align` or align-local in either file: present, nothing to add;
14
+ * - a non-canonical align-local in a workspace file (any directory from the cwd up, a superset
15
+ * of where Kiro looks) would replace ours: a conflict, nothing is written;
16
+ * - a non-canonical align-local in the global file: the writer never edits an existing entry,
17
+ * so that is a conflict too.
18
+ */
19
+ export declare function readKiroState(cwd: string, home: string, opts: {
20
+ localIsDefault: boolean;
21
+ }, env: Record<string, string | undefined>, platform: string): KiroProjectState;
22
+ //# sourceMappingURL=kiro-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro-state.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/kiro-state.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,mBAAmB,CAAC;AAE5F,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD,+EAA+E;AAC/E,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAErF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAwBvK"}
@@ -0,0 +1,59 @@
1
+ import { readdirSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { ancestors, readText } from './layer-files.js';
4
+ import { isCanonicalLocalEntry, parseJsonc } from './strict-entry.js';
5
+ const isObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
6
+ /** The `.json` files in a directory, sorted; none when it is missing or unreadable. */
7
+ function jsonFiles(dir) {
8
+ try {
9
+ return readdirSync(dir).filter((n) => n.endsWith('.json')).sort().map((n) => path.join(dir, n));
10
+ }
11
+ catch {
12
+ return [];
13
+ }
14
+ }
15
+ /** KIRO_HOME "Override default ~/.kiro directory" (kiro.dev CLI reference). */
16
+ export function kiroDir(home, env) {
17
+ return env['KIRO_HOME'] ? path.resolve(env['KIRO_HOME']) : path.join(home, '.kiro');
18
+ }
19
+ /**
20
+ * What Kiro CLI would already load for align, FROM ITS DOCS ONLY (agent configs included, below) (no binary was run; kiro.dev
21
+ * docs/mcp/configuration): the global `~/.kiro/settings/mcp.json` and a workspace
22
+ * `.kiro/settings/mcp.json`, merged "with workspace settings taking precedence", a higher
23
+ * priority config "completely overrides lower ones for that specific server". So:
24
+ * - a canonical `align` or align-local in either file: present, nothing to add;
25
+ * - a non-canonical align-local in a workspace file (any directory from the cwd up, a superset
26
+ * of where Kiro looks) would replace ours: a conflict, nothing is written;
27
+ * - a non-canonical align-local in the global file: the writer never edits an existing entry,
28
+ * so that is a conflict too.
29
+ */
30
+ export function readKiroState(cwd, home, opts, env, platform) {
31
+ const o = { ...opts, platform, host: 'mcpServers' };
32
+ const mcpFile = path.join(kiroDir(home, env), 'settings', 'mcp.json');
33
+ const files = [mcpFile, ...ancestors(cwd).map((d) => path.join(d, '.kiro', 'settings', 'mcp.json')).filter((f) => f !== mcpFile)];
34
+ const state = { present: false, overridden: [], mcpFile };
35
+ for (const file of files) {
36
+ const servers = parseJsonc(readText(file))?.['mcpServers'];
37
+ if (!isObject(servers))
38
+ continue;
39
+ if (isCanonicalLocalEntry(servers['align'], o) || isCanonicalLocalEntry(servers['align-local'], o))
40
+ state.present = true;
41
+ else if ('align-local' in servers)
42
+ state.conflict ??= file;
43
+ }
44
+ // Agent configs outrank both mcp.json files ("Agent Config - mcpServers field in agent JSON",
45
+ // a same-named server is "completely" overridden). Every agent file in a workspace
46
+ // .kiro/agents/ (cwd up) and the global agents dir is read, so whichever agent the user
47
+ // selects (`--agent <name>`, or a default set with `kiro-cli agent set-default`) is covered.
48
+ // A canonical entry there is no conflict, but it serves only that agent, so it is not "present".
49
+ const agentDirs = [...ancestors(cwd).map((d) => path.join(d, '.kiro', 'agents')), path.join(kiroDir(home, env), 'agents')];
50
+ for (const dir of agentDirs) {
51
+ for (const file of jsonFiles(dir)) {
52
+ const servers = parseJsonc(readText(file))?.['mcpServers'];
53
+ if (isObject(servers) && 'align-local' in servers && !isCanonicalLocalEntry(servers['align-local'], o))
54
+ state.conflict ??= file;
55
+ }
56
+ }
57
+ return state;
58
+ }
59
+ //# sourceMappingURL=kiro-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro-state.js","sourceRoot":"","sources":["../../../src/lib/launch/kiro-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAwB,qBAAqB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQ5F,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAa,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAErG,uFAAuF;AACvF,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAClG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,GAAuC;IAC3E,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,IAAY,EAAE,IAAiC,EAAE,GAAuC,EAAE,QAAgB;IACnJ,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAqB,EAAE,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;IAClI,MAAM,KAAK,GAAqB,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IAC5E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACjC,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;aACpH,IAAI,aAAa,IAAI,OAAO;YAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC7D,CAAC;IACD,8FAA8F;IAC9F,mFAAmF;IACnF,wFAAwF;IACxF,6FAA6F;IAC7F,iGAAiG;IACjG,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3H,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,aAAa,IAAI,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;QAClI,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -6,6 +6,11 @@ import { type CursorProjectState } from './cursor-state.js';
6
6
  import { type InstallOfferDeps } from './install.js';
7
7
  import { type PickerOption } from './picker-options.js';
8
8
  import { type GeminiProjectState } from './gemini-state.js';
9
+ import { type AmpProjectState } from './amp-state.js';
10
+ import { type DroidProjectState } from './droid-state.js';
11
+ import { type GrokProjectState } from './grok-state.js';
12
+ import { type KiroProjectState } from './kiro-state.js';
13
+ import { type QwenProjectState } from './qwen-state.js';
9
14
  import { type OpenCodeProjectState } from './opencode-state.js';
10
15
  import { type PiProjectState } from './pi-state.js';
11
16
  import { type ProjectState } from './project-state.js';
@@ -36,6 +41,16 @@ export interface LaunchDeps {
36
41
  readGeminiState(cwd: string, home: string, env: Record<string, string | undefined>, platform: string): GeminiProjectState;
37
42
  /** What Copilot CLI would already load ($COPILOT_HOME or ~/.copilot, and the workspace). */
38
43
  readCopilotState(cwd: string, home: string, env: Record<string, string | undefined>, platform: string): CopilotProjectState;
44
+ /** What Qwen Code would already load, the system settings file it reads, and folder trust. */
45
+ readQwenState?(cwd: string, home: string, env: Record<string, string | undefined>, platform: string): QwenProjectState;
46
+ /** What Factory Droid would already load, and whether the user brings their own runtime settings. */
47
+ readDroidState?(cwd: string, home: string, env: Record<string, string | undefined>, platform: string, passthrough: string[]): DroidProjectState;
48
+ /** What Amp would already load (its settings file, workspace files), and the user's own --mcp-config. */
49
+ readAmpState?(cwd: string, home: string, env: Record<string, string | undefined>, platform: string, passthrough: string[]): AmpProjectState;
50
+ /** What Kiro CLI would already load, and the global mcp.json align adds to. */
51
+ readKiroState?(cwd: string, home: string, env: Record<string, string | undefined>, platform: string): KiroProjectState;
52
+ /** What Grok Build would already load, and the config.toml align adds to. */
53
+ readGrokState?(cwd: string, home: string, env: Record<string, string | undefined>, platform: string, passthrough: string[]): GrokProjectState;
39
54
  /** Add to a file in the user's own agent config, once (C4). Lines go to `note`. */
40
55
  applyConfigWrite(w: ConfigWrite, note: (line: string) => void): void;
41
56
  cacheDir(env: Record<string, string | undefined>): string;
@@ -66,6 +81,25 @@ export type LaunchResult = {
66
81
  handled: true;
67
82
  code: number;
68
83
  };
84
+ /**
85
+ * ALIGN_WRAPPED (we are already inside a launched agent) or ALIGN_NO_LAUNCH turns launching
86
+ * off. One writer, read by launchIfChosen and by the wizard's outro, which must not say an
87
+ * agent is opening when this says it will not.
88
+ */
89
+ export declare function launchSuppressed(env?: Record<string, string | undefined>): boolean;
90
+ /**
91
+ * Whether bare `align` opens the agent once the first-run wizard ends. default-action.ts gates
92
+ * its post-wizard launch on this, and setup.ts's outro reads it to choose between "Opening
93
+ * <Agent>. Ask it: ..." and the run-align instruction - one predicate, so the outro says
94
+ * "Opening" exactly when the launch happens. The terminal and suppression checks mirror the
95
+ * ones launchIfChosen applies itself.
96
+ */
97
+ export declare function launchesAfterWizard(o: {
98
+ localGraph: boolean;
99
+ agent: string | null | undefined;
100
+ env?: Record<string, string | undefined>;
101
+ isTTY: boolean;
102
+ }): boolean;
69
103
  /**
70
104
  * Whether an align command with no --env reads the local graph: the CLI's own resolver, so
71
105
  * ALIGN_ENV, the signed-in rule and the demo-mode rule all apply exactly as they do for `align ask`.
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../../src/lib/launch/launch.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,11 @@ import { offerInstall } from './install.js';
13
13
  import { chooseAgent } from './picker-options.js';
14
14
  import { confirmDefaultNo, selectAgent } from './prompts.js';
15
15
  import { readGeminiState } from './gemini-state.js';
16
+ import { readAmpState } from './amp-state.js';
17
+ import { readDroidState } from './droid-state.js';
18
+ import { readGrokState } from './grok-state.js';
19
+ import { readKiroState } from './kiro-state.js';
20
+ import { readQwenState } from './qwen-state.js';
16
21
  import { launchCacheDir, pruneLaunchFiles, writeIfChanged } from './launch-files.js';
17
22
  import { readOpenCodeState } from './opencode-state.js';
18
23
  import { readPiState } from './pi-state.js';
@@ -20,6 +25,24 @@ import { readProjectState } from './project-state.js';
20
25
  import { specByName } from './registry/index.js';
21
26
  import { runAgent } from './run-agent.js';
22
27
  const set = (v) => v !== undefined && v !== '';
28
+ /**
29
+ * ALIGN_WRAPPED (we are already inside a launched agent) or ALIGN_NO_LAUNCH turns launching
30
+ * off. One writer, read by launchIfChosen and by the wizard's outro, which must not say an
31
+ * agent is opening when this says it will not.
32
+ */
33
+ export function launchSuppressed(env = process.env) {
34
+ return set(env['ALIGN_WRAPPED']) || set(env['ALIGN_NO_LAUNCH']);
35
+ }
36
+ /**
37
+ * Whether bare `align` opens the agent once the first-run wizard ends. default-action.ts gates
38
+ * its post-wizard launch on this, and setup.ts's outro reads it to choose between "Opening
39
+ * <Agent>. Ask it: ..." and the run-align instruction - one predicate, so the outro says
40
+ * "Opening" exactly when the launch happens. The terminal and suppression checks mirror the
41
+ * ones launchIfChosen applies itself.
42
+ */
43
+ export function launchesAfterWizard(o) {
44
+ return o.localGraph && Boolean(o.agent) && !launchSuppressed(o.env ?? process.env) && o.isTTY;
45
+ }
23
46
  /**
24
47
  * Whether an align command with no --env reads the local graph: the CLI's own resolver, so
25
48
  * ALIGN_ENV, the signed-in rule and the demo-mode rule all apply exactly as they do for `align ask`.
@@ -45,6 +68,11 @@ function defaultDeps() {
45
68
  readCodexState: (cwd, home, env, platform, passthrough) => readCodexState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform, passthrough),
46
69
  readGeminiState: (cwd, home, env, platform) => readGeminiState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform),
47
70
  readCopilotState: (cwd, home, env, platform) => readCopilotState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform),
71
+ readQwenState: (cwd, home, env, platform) => readQwenState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform),
72
+ readDroidState: (cwd, home, env, platform, passthrough) => readDroidState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform, passthrough),
73
+ readAmpState: (cwd, home, env, platform, passthrough) => readAmpState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform, passthrough),
74
+ readKiroState: (cwd, home, env, platform) => readKiroState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform),
75
+ readGrokState: (cwd, home, env, platform, passthrough) => readGrokState(cwd, home, { localIsDefault: isLocalDefault() }, env, platform, passthrough),
48
76
  applyConfigWrite: (w, note) => applyConfigWrite(w, note, { has: (f) => config.wasWriteRefused(f), add: (f) => config.markWriteRefused(f), remove: (f) => config.unmarkWriteRefused(f) }),
49
77
  cacheDir: launchCacheDir,
50
78
  writeIfChanged,
@@ -78,7 +106,7 @@ function splitArgv(argv) {
78
106
  */
79
107
  export async function launchIfChosen(overrides = {}) {
80
108
  const d = { ...defaultDeps(), ...overrides };
81
- if (set(d.env['ALIGN_WRAPPED']) || set(d.env['ALIGN_NO_LAUNCH']))
109
+ if (launchSuppressed(d.env))
82
110
  return { handled: false };
83
111
  const { operands, passthrough } = splitArgv(d.argv);
84
112
  if (operands.length > 0) {
@@ -184,10 +212,13 @@ export async function launchIfChosen(overrides = {}) {
184
212
  d.err(`Could not write launch files (${e.message}). Showing your graph instead.`);
185
213
  return { handled: false };
186
214
  }
187
- // On win32 the resolved path is what tells runAgent it holds a .cmd shim.
188
215
  for (const n of spec.notes ?? [])
189
216
  d.err(n);
190
- const toRun = d.platform === 'win32' ? { ...spec, bin: found } : spec;
217
+ // Spawn the path the PATH scan found, never the bare name, on every platform. findOnPath skips
218
+ // an empty PATH element, but a bare-name spawn reads one as the cwd: a `grok` in the repo would
219
+ // run in place of the binary that `acceptsBin` checked. On win32 the path is also what tells
220
+ // runAgent it holds a .cmd shim.
221
+ const toRun = { ...spec, bin: found };
191
222
  if (set(d.env['ALIGN_LAUNCH_TRACE']))
192
223
  d.err(`align-overhead-ms=${Math.round(d.now())}`);
193
224
  // A dry run measures; it must not change the machine, so nothing is persisted before this.
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/lib/launch/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/lib/launch/launch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /** A file's text, or null when it is missing or unreadable (a directory, no permission). */
2
+ export declare function readText(file: string): string | null;
3
+ /** cwd and every directory above it, to the filesystem root, nearest first. */
4
+ export declare function ancestors(cwd: string): string[];
5
+ /** The file carries the managed align block (`align setup`'s instructions). */
6
+ export declare function fileHasBlock(file: string): boolean;
7
+ /**
8
+ * The value of a root option in the user's own args, before any `--` (`--opt v` or `--opt=v`).
9
+ * The last one wins, as a CLI parser reads it. undefined when absent.
10
+ */
11
+ export declare function optionValue(passthrough: string[], name: string): string | undefined;
12
+ //# sourceMappingURL=layer-files.d.ts.map