agent-enderun 1.11.0 → 1.11.2

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 (64) hide show
  1. package/README.md +14 -6
  2. package/bin/validate-agent-army.js +146 -0
  3. package/dist/src/cli/adapters/paths.js +2 -1
  4. package/dist/src/cli/adapters/paths.js.map +1 -1
  5. package/dist/src/cli/adapters/scaffold.js +5 -1
  6. package/dist/src/cli/adapters/scaffold.js.map +1 -1
  7. package/dist/src/cli/adapters/utils.js +2 -3
  8. package/dist/src/cli/adapters/utils.js.map +1 -1
  9. package/dist/src/cli/commands/init/scaffold-core.js +8 -2
  10. package/dist/src/cli/commands/init/scaffold-core.js.map +1 -1
  11. package/dist/src/cli/commands/init/scaffold-standards.js +3 -0
  12. package/dist/src/cli/commands/init/scaffold-standards.js.map +1 -1
  13. package/dist/src/cli/commands/orchestrate.d.ts +3 -1
  14. package/dist/src/cli/commands/orchestrate.js +40 -4
  15. package/dist/src/cli/commands/orchestrate.js.map +1 -1
  16. package/dist/src/cli/commands/plan.js +2 -1
  17. package/dist/src/cli/commands/plan.js.map +1 -1
  18. package/dist/src/modules/adapters/definitions.js +1 -1
  19. package/dist/src/modules/adapters/definitions.js.map +1 -1
  20. package/dist/src/modules/adapters/shared.js +29 -10
  21. package/dist/src/modules/adapters/shared.js.map +1 -1
  22. package/dist/src/modules/agents/definitions.d.ts +1 -1
  23. package/dist/src/modules/agents/definitions.js +153 -72
  24. package/dist/src/modules/agents/definitions.js.map +1 -1
  25. package/dist/src/modules/agents/registry/analyst.js +4 -0
  26. package/dist/src/modules/agents/registry/analyst.js.map +1 -1
  27. package/dist/src/modules/agents/registry/devops.js +2 -0
  28. package/dist/src/modules/agents/registry/devops.js.map +1 -1
  29. package/dist/src/modules/agents/registry/explorer.js +1 -0
  30. package/dist/src/modules/agents/registry/explorer.js.map +1 -1
  31. package/dist/src/modules/agents/registry/git.js +2 -0
  32. package/dist/src/modules/agents/registry/git.js.map +1 -1
  33. package/dist/src/modules/agents/registry/manager.js +5 -0
  34. package/dist/src/modules/agents/registry/manager.js.map +1 -1
  35. package/dist/src/modules/agents/registry/native.js +4 -0
  36. package/dist/src/modules/agents/registry/native.js.map +1 -1
  37. package/dist/src/shared/constants.d.ts +1 -1
  38. package/dist/src/shared/constants.js +10 -9
  39. package/dist/src/shared/constants.js.map +1 -1
  40. package/dist/tests/adapters/paths.test.js +3 -3
  41. package/dist/tests/adapters/paths.test.js.map +1 -1
  42. package/dist/tests/integration/agent_flow.test.js +2 -2
  43. package/dist/tests/integration/agent_flow.test.js.map +1 -1
  44. package/dist/tests/orchestrate.test.js +2 -7
  45. package/dist/tests/orchestrate.test.js.map +1 -1
  46. package/package.json +2 -2
  47. package/src/cli/adapters/paths.ts +2 -1
  48. package/src/cli/adapters/scaffold.ts +5 -1
  49. package/src/cli/adapters/utils.ts +2 -2
  50. package/src/cli/commands/init/scaffold-core.ts +8 -2
  51. package/src/cli/commands/init/scaffold-standards.ts +3 -0
  52. package/src/cli/commands/orchestrate.ts +41 -4
  53. package/src/cli/commands/plan.ts +2 -1
  54. package/src/modules/adapters/definitions.ts +1 -1
  55. package/src/modules/adapters/shared.ts +33 -10
  56. package/src/modules/agents/definitions.ts +164 -75
  57. package/src/modules/agents/registry/analyst.ts +4 -0
  58. package/src/modules/agents/registry/devops.ts +2 -0
  59. package/src/modules/agents/registry/explorer.ts +1 -0
  60. package/src/modules/agents/registry/git.ts +2 -0
  61. package/src/modules/agents/registry/manager.ts +5 -0
  62. package/src/modules/agents/registry/native.ts +4 -0
  63. package/src/shared/constants.ts +14 -13
  64. package/templates/standards/governance-standards.md +121 -0
@@ -11,6 +11,7 @@ export const git = {
11
11
  stateMachine: STATE_MACHINE,
12
12
  tools: [
13
13
  "run_shell_command",
14
+ "read_file",
14
15
  "list_dir",
15
16
  "grep_search",
16
17
  "read_project_memory",
@@ -30,6 +31,7 @@ export const git = {
30
31
  "NO FORCE PUSH: Force-pushing to any shared branch is unconditionally forbidden.",
31
32
  "GIT FLOW: Strictly follow git-flow branching conventions — feature, hotfix, release naming enforced.",
32
33
  ],
34
+ knowledgeFiles: ["logging-and-secrets.md"],
33
35
  },
34
36
  };
35
37
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/git.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,GAAG,GAAoB;IAChC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACb,iDAAiD;QACjD,iCAAiC;IAC/B,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,mBAAmB;QACnB,UAAU;QACV,aAAa;QACb,qBAAqB;QACrB,oBAAoB;KACvB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,6DAA6D;QACvE,OAAO,EACX,kEAAkE;YAClE,yCAAyC;QACrC,cAAc,EAAE,0EAA0E;YAC1E,2FAA2F;YAC3F,0EAA0E;YAC1E,kGAAkG;QAClH,KAAK,EAAE;YACH,uGAAuG;YACvG,2GAA2G;YAC3G,iFAAiF;YACjF,sGAAsG;SACzG;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/git.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,GAAG,GAAoB;IAChC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,iBAAiB;IACvB,WAAW,EACb,iDAAiD;QACjD,iCAAiC;IAC/B,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,mBAAmB;QACnB,WAAW;QACX,UAAU;QACV,aAAa;QACb,qBAAqB;QACrB,oBAAoB;KACvB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,6DAA6D;QACvE,OAAO,EACX,kEAAkE;YAClE,yCAAyC;QACrC,cAAc,EAAE,0EAA0E;YAC1E,2FAA2F;YAC3F,0EAA0E;YAC1E,kGAAkG;QAClH,KAAK,EAAE;YACH,uGAAuG;YACvG,2GAA2G;YAC3G,iFAAiF;YACjF,sGAAsG;SACzG;QACD,cAAc,EAAE,CAAC,wBAAwB,CAAC;KAC7C;CACJ,CAAC"}
@@ -15,6 +15,9 @@ export const manager = {
15
15
  "read_project_memory",
16
16
  "get_memory_insights",
17
17
  "update_project_memory",
18
+ "acquire_lock",
19
+ "release_lock",
20
+ "log_agent_action",
18
21
  "get_project_gaps",
19
22
  "get_project_map",
20
23
  "audit_dependencies",
@@ -44,7 +47,9 @@ export const manager = {
44
47
  "GAP ANALYSIS: Run 'get_project_gaps' after each phase — unfinished logic is a breach of discipline.",
45
48
  "SYSTEM OBSERVABILITY: Periodically invoke 'get_system_health' and 'check_active_ports' to verify environment stability.",
46
49
  "MEMORY INTEGRITY: Synchronize 'PROJECT_MEMORY.md' after every single turn. Memory drift is treason.",
50
+ "LOCKING PROTOCOL: Always acquire a lock via 'acquire_lock' on 'memory' resource before writing to PROJECT_MEMORY.md. Release immediately after write.",
47
51
  ],
52
+ knowledgeFiles: ["governance-standards.md"],
48
53
  },
49
54
  };
50
55
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/manager.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAoB;IACpC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wBAAwB;IACrC,IAAI,EAAE,yCAAyC;IAC/C,WAAW,EACb,kEAAkE;QAClE,uEAAuE;IACrE,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC;IAC7C,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,kBAAkB;QAClB,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,UAAU;QACV,aAAa;QACb,sBAAsB;QACtB,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;KACpB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,yDAAyD;QACnE,OAAO,EACX,kEAAkE;YAClE,4CAA4C;QACxC,cAAc,EAAE,yFAAyF;YACzF,mFAAmF;YACnF,0EAA0E;YAC1E,+FAA+F;QAC/G,KAAK,EAAE;YACH,4EAA4E;gBAClF,2GAA2G;YACrG,sHAAsH;YACtH,iHAAiH;YACjH,oHAAoH;YACpH,2GAA2G;YAC3G,gGAAgG;YAChG,qGAAqG;YACrG,yHAAyH;YACzH,qGAAqG;SACxG;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/manager.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAoB;IACpC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wBAAwB;IACrC,IAAI,EAAE,yCAAyC;IAC/C,WAAW,EACb,kEAAkE;QAClE,uEAAuE;IACrE,UAAU,EAAE,EAAE;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC;IAC7C,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,kBAAkB;QAClB,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,uBAAuB;QACvB,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,UAAU;QACV,aAAa;QACb,sBAAsB;QACtB,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;KACpB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,yDAAyD;QACnE,OAAO,EACX,kEAAkE;YAClE,4CAA4C;QACxC,cAAc,EAAE,yFAAyF;YACzF,mFAAmF;YACnF,0EAA0E;YAC1E,+FAA+F;QAC/G,KAAK,EAAE;YACH,4EAA4E;gBAClF,2GAA2G;YACrG,sHAAsH;YACtH,iHAAiH;YACjH,oHAAoH;YACpH,2GAA2G;YAC3G,gGAAgG;YAChG,qGAAqG;YACrG,yHAAyH;YACzH,qGAAqG;YACrG,uJAAuJ;SAC1J;QACD,cAAc,EAAE,CAAC,yBAAyB,CAAC;KAC9C;CACJ,CAAC"}
@@ -17,6 +17,8 @@ export const native = {
17
17
  "grep_search",
18
18
  "read_project_memory",
19
19
  "run_shell_command",
20
+ "send_agent_message",
21
+ "log_agent_action",
20
22
  ],
21
23
  instructions: {
22
24
  identity: "Native Integration Engineer and OS-Layer Security Enforcer",
@@ -30,7 +32,9 @@ export const native = {
30
32
  "SECURITY PARAMOUNT: Handle all OS-layer operations with rigorous input validation.",
31
33
  "PLATFORM ISOLATION: Strictly separate platform-specific code from shared business logic.",
32
34
  "SYSTEM CALL AUDITING: Validate all native module inputs and log elevated-privilege operations.",
35
+ "ESCALATION PROTOCOL: Any destructive or elevated-privilege operation requires prior @manager approval via send_agent_message.",
33
36
  ],
37
+ knowledgeFiles: ["security-standards.md", "logging-and-secrets.md"],
34
38
  },
35
39
  };
36
40
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/native.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,MAAM,GAAoB;IACnC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACb,kDAAkD;QAClD,iDAAiD;IAC/C,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxB,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,WAAW;QACX,YAAY;QACZ,cAAc;QACd,UAAU;QACV,aAAa;QACb,qBAAqB;QACrB,mBAAmB;KACtB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,4DAA4D;QACtE,OAAO,EACX,kEAAkE;YAClE,4CAA4C;QACxC,cAAc,EAAE,0EAA0E;YAC1E,2FAA2F;YAC3F,0EAA0E;YAC1E,kGAAkG;QAClH,KAAK,EAAE;YACH,oFAAoF;YACpF,0FAA0F;YAC1F,gGAAgG;SACnG;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../../../src/modules/agents/registry/native.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,uCAAgD,CAAC;AAEvE,MAAM,CAAC,MAAM,MAAM,GAAoB;IACnC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACb,kDAAkD;QAClD,iDAAiD;IAC/C,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;IACxB,YAAY,EAAE,aAAa;IAC3B,KAAK,EAAE;QACH,WAAW;QACX,YAAY;QACZ,cAAc;QACd,UAAU;QACV,aAAa;QACb,qBAAqB;QACrB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;KACrB;IACD,YAAY,EAAE;QACV,QAAQ,EAAE,4DAA4D;QACtE,OAAO,EACX,kEAAkE;YAClE,4CAA4C;QACxC,cAAc,EAAE,0EAA0E;YAC1E,2FAA2F;YAC3F,0EAA0E;YAC1E,kGAAkG;QAClH,KAAK,EAAE;YACH,oFAAoF;YACpF,0FAA0F;YAC1F,gGAAgG;YAChG,+HAA+H;SAClI;QACD,cAAc,EAAE,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;KACtE;CACJ,CAAC"}
@@ -76,7 +76,7 @@ export declare const DEFAULT_MONOREPO_PATHS: {
76
76
  readonly docs: "docs";
77
77
  readonly tests: "tests";
78
78
  };
79
- /** Cursor rule globs per agent role (monorepo layout). */
79
+ /** Cursor rule globs per agent role (enterprise monorepo layout). */
80
80
  export declare const CURSOR_AGENT_GLOBS: Record<string, string>;
81
81
  export declare const MCP: {
82
82
  readonly SERVER_NAME: "agent-enderun";
@@ -113,20 +113,21 @@ export const DEFAULT_MONOREPO_PATHS = {
113
113
  docs: "docs",
114
114
  tests: "tests",
115
115
  };
116
- /** Cursor rule globs per agent role (monorepo layout). */
116
+ /** Cursor rule globs per agent role (enterprise monorepo layout). */
117
117
  export const CURSOR_AGENT_GLOBS = {
118
+ manager: "**/*",
119
+ security: "**/*",
120
+ architect: "**/*",
118
121
  backend: `${DEFAULT_MONOREPO_PATHS.backend}/**/*`,
119
122
  frontend: `${DEFAULT_MONOREPO_PATHS.frontend}/**/*`,
120
- database: `${DEFAULT_MONOREPO_PATHS.backend}/src/database/**/*`,
121
123
  mobile: `${DEFAULT_MONOREPO_PATHS.mobile}/**/*`,
122
124
  native: "apps/native/**/*",
123
- quality: "*",
124
- security: "*",
125
- devops: "*",
126
- explorer: "*",
127
- git: "*",
128
- analyst: "*",
129
- manager: "*",
125
+ database: `${DEFAULT_MONOREPO_PATHS.backend}/src/database/**/*`,
126
+ devops: "{.github,docker,infra,scripts,*.yml,*.yaml,Dockerfile*}",
127
+ quality: "**/*",
128
+ analyst: "{docs,specs,contracts}/**/*",
129
+ explorer: "**/*",
130
+ git: "**/*",
130
131
  };
131
132
  // ─── MCP & environment ──────────────────────────────────────────────────────
132
133
  export const MCP = {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/shared/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/shared/constants.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ describe("Adapter Paths", () => {
21
21
  expect(resolveAgentsDir("gemini", true).agentsDir).toBe(".agents/gemini/agents");
22
22
  expect(resolveAgentsDir("cursor", true).agentsDir).toBe(".agents/cursor/rules");
23
23
  expect(resolveAgentsDir("codex", true).agentsDir).toBe(".agents/codex/instructions");
24
- expect(resolveAgentsDir("antigravity-cli", true).agentsDir).toBe(".agents/antigravity/agents");
24
+ expect(resolveAgentsDir("antigravity-cli", true).agentsDir).toBe(".agents/agents");
25
25
  });
26
26
  it("should expose a layout base for every adapter slug", () => {
27
27
  const bases = getUnifiedAgentLayoutBases();
@@ -37,10 +37,10 @@ describe("Adapter Paths", () => {
37
37
  expect(findAgentInstruction(tempDir, "manager")).toBe(".agents/gemini/agents/manager.md");
38
38
  });
39
39
  it("should find nested antigravity agent.json", () => {
40
- const agentDir = path.join(tempDir, ".agents/antigravity/agents/manager");
40
+ const agentDir = path.join(tempDir, ".agents/agents/manager");
41
41
  fs.mkdirSync(agentDir, { recursive: true });
42
42
  fs.writeFileSync(path.join(agentDir, "agent.json"), "{}");
43
- expect(findAgentInstruction(tempDir, "manager")).toBe(".agents/antigravity/agents/manager/agent.json");
43
+ expect(findAgentInstruction(tempDir, "manager")).toBe(".agents/agents/manager/agent.json");
44
44
  });
45
45
  });
46
46
  describe("mirrorUnifiedAgentsToNative", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../tests/adapters/paths.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../tests/adapters/paths.test.ts"],"names":[],"mappings":"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"}
@@ -42,8 +42,8 @@ describe("Agent Integration Flow", () => {
42
42
  content: JSON.stringify(taskPayload),
43
43
  traceId: traceId
44
44
  });
45
- // 2. Orchestrator processes the task
46
- await orchestrateCommand();
45
+ // 2. Orchestrator processes the task (single iteration for test determinism)
46
+ await orchestrateCommand({ maxIterations: 1 });
47
47
  // 3. Verify Backend status changed to EXECUTING
48
48
  const status = memoryUtils.readStatus();
49
49
  expect(status["@backend"].state).toBe("EXECUTING");
@@ -1 +1 @@
1
- {"version":3,"file":"agent_flow.test.js","sourceRoot":"","sources":["../../../tests/integration/agent_flow.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAExF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,WAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;QAC9E,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE7C,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEzE,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,uBAAuB;QACvB,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YACtC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YAC5C,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;SAC/C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,EAAE,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,OAAO,GAAG,eAAe,CAAC;QAEhC,4BAA4B;QAC5B,MAAM,WAAW,GAAG;YAChB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,UAAU;SACpB,CAAC;QACF,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACpC,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,kBAAkB,EAAE,CAAC;QAE3B,gDAAgD;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"agent_flow.test.js","sourceRoot":"","sources":["../../../tests/integration/agent_flow.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAExF,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,IAAI,OAAe,CAAC;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,WAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;QAC9E,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE7C,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEzE,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,uBAAuB;QACvB,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YACtC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YAC5C,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;SAC/C,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,EAAE,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,OAAO,GAAG,eAAe,CAAC;QAEhC,4BAA4B;QAC5B,MAAM,WAAW,GAAG;YAChB,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,UAAU;SACpB,CAAC;QACF,MAAM,WAAW,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,UAAU;YACd,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACpC,OAAO,EAAE,OAAO;SACnB,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,kBAAkB,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/C,gDAAgD;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -53,14 +53,9 @@ describe("Hermes Message Protocol & Orchestration", () => {
53
53
  memoryUtils.updateDocumentStore("status", {
54
54
  "@frontend": { state: "EXECUTING", task: "Building dashboard", lastUpdated: pastTime }
55
55
  });
56
- // Run orchestration loop
57
- // We need to bypass the STATUS.md logic in orchestrate.ts by mocking it or
58
- // updating the implementation to check status.json.
59
- // For now, let's fix the test logic to align with what the code *should* do.
60
- await orchestrateCommand();
56
+ // Run a single orchestration iteration (avoids infinite loop in tests)
57
+ await orchestrateCommand({ maxIterations: 1 });
61
58
  const statuses = memoryUtils.readStatus();
62
- // Since we didn't update orchestrate.ts to read status.json,
63
- // the code won't see it yet. I need to fix orchestrate.ts.
64
59
  expect(statuses["@frontend"].state).toBe("BLOCKED");
65
60
  });
66
61
  });
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrate.test.js","sourceRoot":"","sources":["../../tests/orchestrate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrate.test.js","sourceRoot":"","sources":["../../tests/orchestrate.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-enderun",
3
- "version": "1.11.0",
3
+ "version": "1.11.2",
4
4
  "description": "The Supreme AI Governance & Autonomous Orchestration Framework for Enterprise Development. Acts as a Corporate AI Management Assistant.",
5
5
  "author": "Yusuf BEKAR",
6
6
  "license": "MIT",
@@ -71,7 +71,7 @@
71
71
  "vitest": "^3.0.0"
72
72
  },
73
73
  "enderun": {
74
- "version": "1.11.0",
74
+ "version": "1.11.2",
75
75
  "initializedAt": "2026-06-04T18:51:28.970Z",
76
76
  "frameworkDir": ".enderun"
77
77
  },
@@ -50,7 +50,8 @@ export function resolveAgentsDir(
50
50
  case "codex":
51
51
  return { agentsDir: pathJoin(base, "instructions"), agentsExt: ".md", nestedAntigravity: false };
52
52
  case "antigravity-cli":
53
- return { agentsDir: pathJoin(base, "agents"), agentsExt: ".md", nestedAntigravity: true };
53
+ // Antigravity CLI expects workspace agents at .agents/agents/{agent_name}/agent.json
54
+ return { agentsDir: pathJoin(aiToolDir, "agents"), agentsExt: ".json", nestedAntigravity: true };
54
55
  default:
55
56
  return { agentsDir: pathJoin(base, "agents"), agentsExt: ".md", nestedAntigravity: false };
56
57
  }
@@ -48,6 +48,10 @@ export function scaffoldAgents(
48
48
  case "gemini":
49
49
  content = toGeminiCliMd(agent, baseKnowledgeDir);
50
50
  break;
51
+ case "grok":
52
+ // Grok uses same Gemini-compatible YAML format
53
+ content = toGeminiCliMd(agent, baseKnowledgeDir);
54
+ break;
51
55
  case "claude":
52
56
  content = toClaudeCodeMd(agent, baseKnowledgeDir);
53
57
  break;
@@ -62,7 +66,7 @@ export function scaffoldAgents(
62
66
  const agentDir = path.join(destAgentsDir, agent.name);
63
67
  if (!dryRun) fs.mkdirSync(agentDir, { recursive: true });
64
68
 
65
- content = toAntigravityJson(agent);
69
+ content = toAntigravityJson(agent, baseKnowledgeDir);
66
70
  fileName = path.join(agent.name, "agent.json");
67
71
 
68
72
  secondaryContent = `# 🎖️ Agent Enderun — @${agent.name}\n\n${agent.instructions.identity}\n\n${agent.instructions.mission}`;
@@ -46,9 +46,9 @@ export function remapFrameworkContent(
46
46
  if (adapterId === "antigravity-cli") {
47
47
  agentFolder = "agents";
48
48
  knowledgeFolder = "rules";
49
- } else if (adapterId === "grok") {
50
- agentFolder = "plugins";
51
49
  }
50
+ // Note: Grok uses the same directory structure as Gemini (".grok/agents").
51
+ // No override needed — default agentFolder = "agents" is correct.
52
52
  }
53
53
 
54
54
  const frameworkPattern = ".enderun/";
@@ -92,12 +92,18 @@ export function scaffoldShims(
92
92
  unified: boolean = false
93
93
  ) {
94
94
  for (const [name, content] of Object.entries(SHIM_TEMPLATES)) {
95
- const isSelectedAdapter = name.toLowerCase() === adapterId.split("-")[0] || name === adapterId;
95
+ // Normalize: "antigravity-cli" template key needs exact match or prefix match
96
+ const isSelectedAdapter = name === adapterId ||
97
+ name.toLowerCase() === adapterId.split("-")[0].toLowerCase();
96
98
 
97
99
  if (unified || isSelectedAdapter) {
98
100
  const shimContent = remapFrameworkContent(content, coreDir, adapterId);
101
+ // In unified mode, each adapter writes its OWN shimFile name.
102
+ // In single-adapter mode, use selected adapter's shimFile.
99
103
  const shimAdapter = ADAPTERS[name as AdapterId] || adapter;
100
- const shimFileName = (unified && !isSelectedAdapter) ? (shimAdapter.shimFile || `${name.toUpperCase()}.md`) : (adapter.shimFile || `${name.toUpperCase()}.md`);
104
+ const shimFileName = (unified && !isSelectedAdapter)
105
+ ? (shimAdapter.shimFile || `${name.toUpperCase()}.md`) // each adapter's own file
106
+ : (adapter.shimFile || `${name.toUpperCase()}.md`); // selected adapter's file
101
107
 
102
108
  if (!dryRun) writeTextFile(path.join(projectRoot, shimFileName), shimContent);
103
109
  if (isSelectedAdapter) {
@@ -34,6 +34,9 @@ This document outlines the strict ESLint coding standards for Agent Enderun proj
34
34
  writeTextFile(path.join(knowledgePath, "eslint-standards.md"), eslintStandardsContent);
35
35
 
36
36
  const standards = [
37
+ // ── Supreme Governance (required by @manager, @security, @architect) ──────
38
+ { file: "governance-standards.md", template: "templates/standards/governance-standards.md", default: "# 🎖️ Agent Enderun — Governance & Nizam Standards" },
39
+ // ── Core Engineering Standards ────────────────────────────────────────────
37
40
  { file: "crud-governance.md", template: "templates/standards/crud-governance.md", default: "# 🏛️ Corporate CRUD and Governance Standards" },
38
41
  { file: "architecture-standards.md", template: "templates/standards/architecture-standards.md", default: "# 📐 Corporate Architecture Standards" },
39
42
  { file: "frontend-standards.md", template: "templates/standards/frontend-standards.md", default: "# 🎨 Corporate Frontend Standards" },
@@ -28,11 +28,16 @@ export type HermesMessage = z.infer<typeof HermesMessageSchema>;
28
28
  let agentStatusCache: Record<string, { state: string; task: string; lastUpdated?: string }> = {};
29
29
  let isLooping = false;
30
30
 
31
- export async function orchestrateCommand() {
31
+ export async function orchestrateCommand(options?: { maxIterations?: number }) {
32
32
  UI.intent("Hermes Message Broker", "Starting the live agent orchestration loop...");
33
33
 
34
34
  const frameworkDir = getFrameworkDir();
35
35
  const messagesDir = path.join(frameworkDir, "messages");
36
+ const maxIterations = options?.maxIterations;
37
+ let iterationCount = 0;
38
+
39
+ // Reset in-memory cache so each invocation starts fresh (important for test isolation)
40
+ agentStatusCache = {};
36
41
 
37
42
  // Graceful Shutdown Handling
38
43
  const shutdown = async () => {
@@ -93,16 +98,36 @@ export async function orchestrateCommand() {
93
98
  const parsed = JSON.parse(line);
94
99
  const msg = HermesMessageSchema.parse(parsed);
95
100
 
96
- // Contract Validation
101
+ // Contract Validation for structured task messages
102
+ // ACTION & DELEGATION must be valid TaskRequest payloads
103
+ // SUBTASK must have a parentId and valid task payload
104
+ // ALERT must have a content string (free-form, no schema required)
97
105
  if (msg.category === "ACTION" || msg.category === "DELEGATION") {
98
106
  try {
99
107
  const payload = JSON.parse(msg.content);
100
108
  TaskRequestSchema.parse(payload);
101
109
  } catch (e) {
102
- UI.error(`Invalid task contract payload: ${(e as Error).message}`);
110
+ UI.error(`Invalid task contract payload in ${msg.category} from @${msg.from}: ${(e as Error).message}`);
103
111
  return; // Skip invalid message
104
112
  }
105
113
  }
114
+ if (msg.category === "SUBTASK") {
115
+ if (!msg.parentId) {
116
+ UI.error(`SUBTASK from @${msg.from} is missing required parentId — skipping.`);
117
+ return;
118
+ }
119
+ try {
120
+ const payload = JSON.parse(msg.content);
121
+ TaskRequestSchema.parse(payload);
122
+ } catch (e) {
123
+ UI.error(`Invalid SUBTASK payload from @${msg.from}: ${(e as Error).message}`);
124
+ return;
125
+ }
126
+ }
127
+ if (msg.category === "ALERT" && !msg.content.trim()) {
128
+ UI.error(`ALERT from @${msg.from} has empty content — skipping.`);
129
+ return;
130
+ }
106
131
 
107
132
  // A message is actionable if it's pending, or if it's been approved.
108
133
  if (msg.status === "PENDING" || msg.status === "APPROVED") {
@@ -227,6 +252,13 @@ export async function orchestrateCommand() {
227
252
  logger.debug("Hermes global loop failure", globalLoopErr);
228
253
  }
229
254
 
255
+ iterationCount++;
256
+ // If maxIterations is set (e.g. in tests), stop after N iterations without sleeping
257
+ if (maxIterations !== undefined && iterationCount >= maxIterations) {
258
+ isLooping = false;
259
+ break;
260
+ }
261
+
230
262
  // Prevent 100% CPU and provide breathing room for I/O
231
263
  await sleep(2000);
232
264
  }
@@ -295,7 +327,12 @@ export async function sendMessage(args: {
295
327
 
296
328
  try {
297
329
  const defaultPriority = (args.category === "ALERT" || args.category === "ACTION") ? "HIGH" : "NORMAL";
298
- const requiresApproval = args.requiresApproval !== undefined ? args.requiresApproval : (args.category === "ALERT" || args.category === "ACTION");
330
+ // Only ALERT requires manager approval by default.
331
+ // ACTION messages flow freely unless the caller explicitly sets requiresApproval=true.
332
+ // This prevents workflow blockage on normal agent-to-agent task delegation.
333
+ const requiresApproval = args.requiresApproval !== undefined
334
+ ? args.requiresApproval
335
+ : args.category === "ALERT";
299
336
 
300
337
  const message: HermesMessage = {
301
338
  timestamp: new Date().toISOString(),
@@ -2,6 +2,7 @@ import fs from "fs";
2
2
  import path from "path";
3
3
  import { generateULID } from "../utils/time.js";
4
4
  import { UI } from "../utils/ui.js";
5
+ import { writeJsonFile } from "../utils/fs.js";
5
6
 
6
7
  /**
7
8
  * Reads ALL markdown files from the docs/ directory and creates
@@ -92,7 +93,7 @@ export async function planCommand() {
92
93
  tasks: taskCount,
93
94
  preview: content.substring(0, 500),
94
95
  };
95
- fs.writeFileSync(taskFile, JSON.stringify(taskData, null, 2));
96
+ writeJsonFile(taskFile, taskData);
96
97
  }
97
98
 
98
99
  // Log available standards
@@ -38,7 +38,7 @@ export const ADAPTER_CONFIGS: Record<AdapterId, AdapterConfig> = {
38
38
  shimTemplate: "src/cli/shims/grok.md",
39
39
  role: "researcher",
40
40
  templateDir: ".enderun",
41
- nestedDirs: ["rules"],
41
+ nestedDirs: ["agents", "rules"],
42
42
  agentsDir: ".grok/agents",
43
43
  agentsExt: ".md"
44
44
  },
@@ -1,14 +1,18 @@
1
1
  import path from "path";
2
2
  import fs from "fs";
3
3
  import os from "os";
4
+ import { execSync } from "child_process";
4
5
  import { writeJsonFile, writeTextFile } from "../../shared/fs.js";
5
6
  import { ALL_AGENTS, toAntigravityJson } from "../agents/definitions.js";
6
7
  import { CORE_SKILLS } from "../skills/definitions.js";
8
+ import { getPackageRoot } from "../../cli/utils/pkg.js";
7
9
 
8
10
  export function registerGlobalAntigravityPlugins(mcpBlock: unknown): void {
9
- const targets = [
10
- path.join(os.homedir(), ".gemini/antigravity-cli")
11
- ];
11
+ // Allow overriding via env var for different OS/Gemini CLI versions
12
+ const defaultGlobalDir = path.join(os.homedir(), ".gemini/antigravity-cli");
13
+ const customDir = process.env["ANTIGRAVITY_GLOBAL_DIR"];
14
+ const targets = [customDir ?? defaultGlobalDir];
15
+ const baseKnowledgeDir = path.join(getPackageRoot(), "templates/standards");
12
16
 
13
17
  for (const globalDir of targets) {
14
18
  try {
@@ -36,16 +40,31 @@ export function registerGlobalAntigravityPlugins(mcpBlock: unknown): void {
36
40
  // Scaffold 13 agents
37
41
  const agentsBaseDir = path.join(globalPluginDir, "agents");
38
42
  fs.mkdirSync(agentsBaseDir, { recursive: true });
43
+
44
+ // Also write directly to ~/.gemini/antigravity-cli/agents/ so the CLI's
45
+ // workspace/global agent discovery finds them without the plugins/ prefix.
46
+ const globalAgentsDir = path.join(globalDir, "agents");
47
+ fs.mkdirSync(globalAgentsDir, { recursive: true });
48
+
39
49
  for (const ag of ALL_AGENTS) {
40
- const agentJson = toAntigravityJson(ag);
50
+ const agentJson = toAntigravityJson(ag, baseKnowledgeDir);
41
51
 
42
- // 1. Nested format (agents/{agent_name}/agent.json)
52
+ // 1. Nested format inside plugin: plugins/agent-enderun/agents/{name}/agent.json
43
53
  const nestedAgentDir = path.join(agentsBaseDir, ag.name);
44
54
  fs.mkdirSync(nestedAgentDir, { recursive: true });
45
55
  writeTextFile(path.join(nestedAgentDir, "agent.json"), agentJson);
46
56
 
47
- // 2. Direct flat format (agents/{agent_name}.json)
57
+ // 2. Flat format inside plugin: plugins/agent-enderun/agents/{name}.json
48
58
  writeTextFile(path.join(agentsBaseDir, `${ag.name}.json`), agentJson);
59
+
60
+ // 3. Direct global agents root — THIS is what Antigravity CLI reads:
61
+ // ~/.gemini/antigravity-cli/agents/{name}/agent.json
62
+ const globalNestedDir = path.join(globalAgentsDir, ag.name);
63
+ fs.mkdirSync(globalNestedDir, { recursive: true });
64
+ writeTextFile(path.join(globalNestedDir, "agent.json"), agentJson);
65
+
66
+ // 4. Flat global format as fallback
67
+ writeTextFile(path.join(globalAgentsDir, `${ag.name}.json`), agentJson);
49
68
  }
50
69
 
51
70
  // Scaffold skills
@@ -82,13 +101,17 @@ ${ag.instructions.rules.map(r => `- ${r}`).join("\n")}
82
101
  }
83
102
 
84
103
  // Scaffold optional empty hooks.json
85
- writeJsonFile(path.join(globalPluginDir, "hooks.json"), {
86
- preTool: [],
87
- postTool: []
88
- });
104
+ writeJsonFile(path.join(globalPluginDir, "hooks.json"), {});
89
105
 
90
106
  console.warn(`✅ Antigravity Plugin registered → ${globalPluginDir}/`);
91
107
 
108
+ try {
109
+ execSync(`agy plugin install "${globalPluginDir}"`, { stdio: "ignore" });
110
+ console.warn(`✅ Antigravity Plugin installed in CLI.`);
111
+ } catch {
112
+ // Ignore if agy is not in PATH or fails
113
+ }
114
+
92
115
  } catch (e) {
93
116
  console.warn(`⚠️ Failed to register plugin/MCP in ${globalDir}:`, e);
94
117
  }