@agentteams/cli 0.1.71 → 0.1.72

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.
@@ -18,7 +18,10 @@ function isWorktreeInitResult(result) {
18
18
  typeof r.worktreePath === 'string' &&
19
19
  typeof r.sourcePath === 'string' &&
20
20
  typeof r.targetPath === 'string' &&
21
- (r.materialization === 'symlink' || r.materialization === 'copy' || r.materialization === 'existing'));
21
+ (r.materialization === 'symlink' ||
22
+ r.materialization === 'copy' ||
23
+ r.materialization === 'existing' ||
24
+ r.materialization === 'blocked'));
22
25
  }
23
26
  export function printInitResult(result, format) {
24
27
  if (format === 'json') {
@@ -30,7 +33,10 @@ export function printInitResult(result, format) {
30
33
  if (result.warning) {
31
34
  console.warn(`⚠ ${result.warning}`);
32
35
  }
33
- if (result.materialization === 'existing') {
36
+ if (result.materialization === 'blocked') {
37
+ console.warn(`⚠ .agentteams was not created because local exclude is blocked: ${result.targetPath}`);
38
+ }
39
+ else if (result.materialization === 'existing') {
34
40
  console.log(`✓ .agentteams already exists: ${result.targetPath}`);
35
41
  }
36
42
  else if (result.materialization === 'copy') {
@@ -40,6 +46,27 @@ export function printInitResult(result, format) {
40
46
  console.log(`✓ Linked .agentteams into the worktree: ${result.targetPath}`);
41
47
  }
42
48
  console.log(` Source: ${result.sourcePath}`);
49
+ if (Array.isArray(result.entryPoints)) {
50
+ for (const entryPoint of result.entryPoints) {
51
+ if (entryPoint.state === 'created') {
52
+ console.log(`✓ Agent entry point created: ${entryPoint.relativePath}`);
53
+ }
54
+ else if (entryPoint.state === 'tracked') {
55
+ console.log(`✓ Agent entry point already tracked: ${entryPoint.relativePath}`);
56
+ }
57
+ else if (entryPoint.state === 'existing') {
58
+ console.log(`✓ Agent entry point already exists: ${entryPoint.relativePath}`);
59
+ }
60
+ else {
61
+ console.warn(`⚠ Agent entry point skipped: ${entryPoint.relativePath}`);
62
+ }
63
+ }
64
+ }
65
+ if (Array.isArray(result.issues)) {
66
+ for (const issue of result.issues) {
67
+ console.warn(`⚠ ${issue.message}`);
68
+ }
69
+ }
43
70
  console.log(' OAuth and interactive prompts were skipped because the main checkout is already configured.');
44
71
  return;
45
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"initOutput.js","sourceRoot":"","sources":["../../src/utils/initOutput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initOutput.js","sourceRoot":"","sources":["../../src/utils/initOutput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { InitOutputFormat } from './initOutput.js';
2
+ export declare function normalizeInteractiveFormat(format: unknown): InitOutputFormat;
3
+ export declare function executeValidatedInteractiveCommand<T>(requestedFormat: unknown, execute: () => Promise<T>): Promise<{
4
+ result: T;
5
+ format: InitOutputFormat;
6
+ }>;
7
+ //# sourceMappingURL=interactiveCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactiveCommand.d.ts","sourceRoot":"","sources":["../../src/utils/interactiveCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAM5E;AAED,wBAAsB,kCAAkC,CAAC,CAAC,EACxD,eAAe,EAAE,OAAO,EACxB,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAIlD"}
@@ -0,0 +1,13 @@
1
+ export function normalizeInteractiveFormat(format) {
2
+ if (format === undefined || format === null || format === '')
3
+ return 'human';
4
+ if (format === 'json')
5
+ return 'json';
6
+ throw new Error(`Unsupported output format: ${String(format)}. Use json or omit --format for the human-readable view.`);
7
+ }
8
+ export async function executeValidatedInteractiveCommand(requestedFormat, execute) {
9
+ const format = normalizeInteractiveFormat(requestedFormat);
10
+ const result = await execute();
11
+ return { result, format };
12
+ }
13
+ //# sourceMappingURL=interactiveCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactiveCommand.js","sourceRoot":"","sources":["../../src/utils/interactiveCommand.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IAC7E,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,MAAM,CAAC,MAAM,CAAC,0DAA0D,CACvG,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,eAAwB,EACxB,OAAyB;IAEzB,MAAM,MAAM,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * A "non-git root project" is a directory that carries an AgentTeams config
3
+ * but is not itself inside a git work tree — e.g. a parent folder that groups
4
+ * several member repositories. Subdirectories of a git repository are never
5
+ * treated as non-git roots, so the repo-root config barrier stays intact.
6
+ */
7
+ export declare function isNonGitRootProject(rootDir: string): boolean;
8
+ /**
9
+ * Discover member git repositories directly under a non-git project root.
10
+ *
11
+ * Only physical directories at depth 1 are considered: hidden directories,
12
+ * `node_modules`, symlinked directories, and bare repositories are excluded.
13
+ * A candidate is a member only when its canonical path is itself the top
14
+ * level of a git work tree. Results are sorted by path so repeated runs are
15
+ * deterministic. The returned list never contains config contents or keys —
16
+ * only directory paths.
17
+ */
18
+ export declare function findMemberRepos(rootDir: string): string[];
19
+ //# sourceMappingURL=projectLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectLayout.d.ts","sourceRoot":"","sources":["../../src/utils/projectLayout.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAuCzD"}
@@ -0,0 +1,65 @@
1
+ import { existsSync, readdirSync, realpathSync } from 'node:fs';
2
+ import { join, resolve } from 'node:path';
3
+ import { resolveGitTopLevel } from './git.js';
4
+ const CONFIG_DIR = '.agentteams';
5
+ const CONFIG_FILE = 'config.json';
6
+ /**
7
+ * A "non-git root project" is a directory that carries an AgentTeams config
8
+ * but is not itself inside a git work tree — e.g. a parent folder that groups
9
+ * several member repositories. Subdirectories of a git repository are never
10
+ * treated as non-git roots, so the repo-root config barrier stays intact.
11
+ */
12
+ export function isNonGitRootProject(rootDir) {
13
+ const root = resolve(rootDir);
14
+ if (!existsSync(join(root, CONFIG_DIR, CONFIG_FILE)))
15
+ return false;
16
+ return resolveGitTopLevel(root) === null;
17
+ }
18
+ /**
19
+ * Discover member git repositories directly under a non-git project root.
20
+ *
21
+ * Only physical directories at depth 1 are considered: hidden directories,
22
+ * `node_modules`, symlinked directories, and bare repositories are excluded.
23
+ * A candidate is a member only when its canonical path is itself the top
24
+ * level of a git work tree. Results are sorted by path so repeated runs are
25
+ * deterministic. The returned list never contains config contents or keys —
26
+ * only directory paths.
27
+ */
28
+ export function findMemberRepos(rootDir) {
29
+ const root = resolve(rootDir);
30
+ let entries;
31
+ try {
32
+ entries = readdirSync(root, { withFileTypes: true });
33
+ }
34
+ catch {
35
+ return [];
36
+ }
37
+ const members = [];
38
+ for (const entry of entries) {
39
+ // Dirent.isDirectory() is false for symlinks, which keeps symlinked
40
+ // directories out without an extra lstat call.
41
+ if (!entry.isDirectory())
42
+ continue;
43
+ if (entry.name.startsWith('.') || entry.name === 'node_modules')
44
+ continue;
45
+ const candidate = join(root, entry.name);
46
+ // Bare repositories have no work tree, so --show-toplevel resolves null.
47
+ const topLevel = resolveGitTopLevel(candidate);
48
+ if (!topLevel)
49
+ continue;
50
+ let canonical;
51
+ try {
52
+ canonical = realpathSync(candidate);
53
+ }
54
+ catch {
55
+ continue;
56
+ }
57
+ // Requiring canonical equality keeps out candidates that merely live
58
+ // inside some other repository's work tree.
59
+ if (canonical !== topLevel)
60
+ continue;
61
+ members.push(candidate);
62
+ }
63
+ return members.sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
64
+ }
65
+ //# sourceMappingURL=projectLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectLayout.js","sourceRoot":"","sources":["../../src/utils/projectLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,UAAU,GAAG,aAAa,CAAC;AACjC,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC3C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,SAAS;QAE1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,yEAAyE;QACzE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,qEAAqE;QACrE,4CAA4C;QAC5C,IAAI,SAAS,KAAK,QAAQ;YAAE,SAAS;QAErC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentteams/cli",
3
- "version": "0.1.71",
3
+ "version": "0.1.72",
4
4
  "description": "CLI tool for AgentTeams API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,7 +15,7 @@
15
15
  "typecheck": "tsc --noEmit",
16
16
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
17
17
  "test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
18
- "lint": "eslint 'src/**/*.ts' 'test/**/*.ts'",
18
+ "lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\"",
19
19
  "format": "prettier --write .",
20
20
  "format:check": "prettier --check .",
21
21
  "prepublishOnly": "npm run build"