@defai.digital/cli 13.4.10 → 13.5.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 (39) hide show
  1. package/dist/commands/doctor.d.ts.map +1 -1
  2. package/dist/commands/doctor.js +45 -2
  3. package/dist/commands/doctor.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +48 -1
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/integrations/claude-code/claude-code-integration.d.ts +51 -0
  8. package/dist/integrations/claude-code/claude-code-integration.d.ts.map +1 -0
  9. package/dist/integrations/claude-code/claude-code-integration.js +120 -0
  10. package/dist/integrations/claude-code/claude-code-integration.js.map +1 -0
  11. package/dist/integrations/claude-code/hooks-generator.d.ts +33 -0
  12. package/dist/integrations/claude-code/hooks-generator.d.ts.map +1 -0
  13. package/dist/integrations/claude-code/hooks-generator.js +214 -0
  14. package/dist/integrations/claude-code/hooks-generator.js.map +1 -0
  15. package/dist/integrations/claude-code/index.d.ts +16 -0
  16. package/dist/integrations/claude-code/index.d.ts.map +1 -0
  17. package/dist/integrations/claude-code/index.js +12 -0
  18. package/dist/integrations/claude-code/index.js.map +1 -0
  19. package/dist/integrations/claude-code/mcp-project-config.d.ts +16 -0
  20. package/dist/integrations/claude-code/mcp-project-config.d.ts.map +1 -0
  21. package/dist/integrations/claude-code/mcp-project-config.js +55 -0
  22. package/dist/integrations/claude-code/mcp-project-config.js.map +1 -0
  23. package/dist/integrations/claude-code/settings-manager.d.ts +22 -0
  24. package/dist/integrations/claude-code/settings-manager.d.ts.map +1 -0
  25. package/dist/integrations/claude-code/settings-manager.js +75 -0
  26. package/dist/integrations/claude-code/settings-manager.js.map +1 -0
  27. package/dist/integrations/claude-code/subagent-generator.d.ts +47 -0
  28. package/dist/integrations/claude-code/subagent-generator.d.ts.map +1 -0
  29. package/dist/integrations/claude-code/subagent-generator.js +204 -0
  30. package/dist/integrations/claude-code/subagent-generator.js.map +1 -0
  31. package/dist/integrations/claude-code/types.d.ts +95 -0
  32. package/dist/integrations/claude-code/types.d.ts.map +1 -0
  33. package/dist/integrations/claude-code/types.js +8 -0
  34. package/dist/integrations/claude-code/types.js.map +1 -0
  35. package/dist/integrations/claude-code/utils/file-utils.d.ts +7 -0
  36. package/dist/integrations/claude-code/utils/file-utils.d.ts.map +1 -0
  37. package/dist/integrations/claude-code/utils/file-utils.js +22 -0
  38. package/dist/integrations/claude-code/utils/file-utils.js.map +1 -0
  39. package/package.json +21 -21
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Claude Code Subagent File Generator
3
+ *
4
+ * Generates .claude/agents/<name>.md files with Claude Code 2026 YAML
5
+ * frontmatter for each agent, plus the automatosx-coordinator.md.
6
+ *
7
+ * These files enable Claude Code to invoke AutomatosX agents as
8
+ * native subagents with appropriate permissions and MCP access.
9
+ */
10
+ import { mkdir, writeFile } from 'node:fs/promises';
11
+ import { join } from 'node:path';
12
+ import { fileExists } from './utils/file-utils.js';
13
+ const COORDINATOR_NAME = 'automatosx-coordinator';
14
+ export class SubagentGenerator {
15
+ projectDir;
16
+ force;
17
+ constructor(options) {
18
+ this.projectDir = options.projectDir;
19
+ this.force = options.force ?? false;
20
+ }
21
+ /**
22
+ * Generate per-agent subagent files plus the coordinator.
23
+ * Can be called independently (e.g. via `ax init --claude-agents-only`).
24
+ */
25
+ async generate(agents) {
26
+ const agentsDir = join(this.projectDir, '.claude', 'agents');
27
+ await mkdir(agentsDir, { recursive: true });
28
+ const filesWritten = [];
29
+ const filesSkipped = [];
30
+ // Write coordinator first
31
+ const coordinatorPath = join(agentsDir, `${COORDINATOR_NAME}.md`);
32
+ if ((await fileExists(coordinatorPath)) && !this.force) {
33
+ filesSkipped.push(`${COORDINATOR_NAME}.md`);
34
+ }
35
+ else {
36
+ await writeFile(coordinatorPath, this.buildCoordinatorFile(agents));
37
+ filesWritten.push(`${COORDINATOR_NAME}.md`);
38
+ }
39
+ // Write per-agent files
40
+ for (const agent of agents) {
41
+ if (agent.name === COORDINATOR_NAME)
42
+ continue;
43
+ const filename = `${agent.name}.md`;
44
+ const filePath = join(agentsDir, filename);
45
+ if ((await fileExists(filePath)) && !this.force) {
46
+ filesSkipped.push(filename);
47
+ continue;
48
+ }
49
+ await writeFile(filePath, this.buildAgentFile(agent));
50
+ filesWritten.push(filename);
51
+ }
52
+ return { agentsDir, filesWritten, filesSkipped };
53
+ }
54
+ /** Returns true if coordinator file exists */
55
+ async areSubagentFilesGenerated() {
56
+ const coordinatorPath = join(this.projectDir, '.claude', 'agents', `${COORDINATOR_NAME}.md`);
57
+ return fileExists(coordinatorPath);
58
+ }
59
+ // ─── Private builders ────────────────────────────────────────────────────────
60
+ buildFrontmatter(agent) {
61
+ const cc = agent.claude_code ?? {};
62
+ return {
63
+ name: agent.name,
64
+ description: this.getDescription(agent),
65
+ tools: cc.tools?.allow ?? ['Read', 'Edit', 'Write', 'Bash', 'Glob', 'Grep'],
66
+ disallowedTools: cc.tools?.deny ?? ['WebSearch'],
67
+ model: cc.model ?? 'sonnet',
68
+ permissionMode: cc.permissionMode ?? 'acceptEdits',
69
+ maxTurns: cc.maxTurns ?? 50,
70
+ memory: cc.memory ?? 'project',
71
+ background: cc.background ?? false,
72
+ mcpServers: cc.mcpServers ?? ['automatosx'],
73
+ skills: cc.skills ?? [],
74
+ ...(cc.isolation !== undefined && { isolation: cc.isolation }),
75
+ ...(cc.effort !== undefined && { effort: cc.effort }),
76
+ };
77
+ }
78
+ renderFrontmatter(fm) {
79
+ const lines = ['---'];
80
+ lines.push(`name: ${fm.name}`);
81
+ lines.push(`description: ${JSON.stringify(fm.description)}`);
82
+ if (fm.tools?.length)
83
+ lines.push(`tools: ${fm.tools.join(', ')}`);
84
+ if (fm.disallowedTools?.length)
85
+ lines.push(`disallowedTools: ${fm.disallowedTools.join(', ')}`);
86
+ if (fm.model)
87
+ lines.push(`model: ${fm.model}`);
88
+ if (fm.permissionMode)
89
+ lines.push(`permissionMode: ${fm.permissionMode}`);
90
+ if (fm.maxTurns !== undefined)
91
+ lines.push(`maxTurns: ${fm.maxTurns}`);
92
+ if (fm.memory)
93
+ lines.push(`memory: ${fm.memory}`);
94
+ if (fm.background !== undefined)
95
+ lines.push(`background: ${fm.background}`);
96
+ if (fm.isolation !== undefined)
97
+ lines.push(`isolation: ${fm.isolation}`);
98
+ if (fm.effort)
99
+ lines.push(`effort: ${fm.effort}`);
100
+ if (fm.mcpServers?.length) {
101
+ lines.push('mcpServers:');
102
+ for (const s of fm.mcpServers)
103
+ lines.push(` - ${s}`);
104
+ }
105
+ if (fm.skills?.length) {
106
+ lines.push('skills:');
107
+ for (const s of fm.skills)
108
+ lines.push(` - ${s}`);
109
+ }
110
+ lines.push(`generated: ${new Date().toISOString()}`);
111
+ lines.push('---');
112
+ return lines.join('\n');
113
+ }
114
+ buildAgentFile(agent) {
115
+ const fm = this.buildFrontmatter(agent);
116
+ const displayName = agent.displayName ?? agent.name;
117
+ const frontmatter = this.renderFrontmatter(fm);
118
+ const body = agent.systemPrompt?.trim()
119
+ ?? `You are ${displayName}, a specialized AI agent. ${this.getDescription(agent)}`;
120
+ const ts = new Date().toISOString();
121
+ return `${frontmatter}
122
+
123
+ # ${displayName}
124
+
125
+ ${body}
126
+
127
+ ## AutomatosX Integration
128
+
129
+ You have access to AutomatosX memory and agent orchestration via MCP:
130
+
131
+ - \`mcp__automatosx__search_memory\` — Search past decisions and context
132
+ - \`mcp__automatosx__run_agent\` — Delegate to another specialist agent
133
+ - \`mcp__automatosx__session_create\` — Start a multi-agent session
134
+
135
+ Always search memory before starting a task to leverage past decisions.
136
+
137
+ ---
138
+
139
+ **Generated:** ${ts}
140
+ **Generator:** AutomatosX SubagentGenerator
141
+ `;
142
+ }
143
+ buildCoordinatorFile(agents) {
144
+ const agentList = agents
145
+ .filter(a => a.name !== COORDINATOR_NAME)
146
+ .map(a => `- **${a.displayName ?? a.name}** (\`${a.name}\`): ${this.getDescription(a)}`)
147
+ .join('\n');
148
+ const ts = new Date().toISOString();
149
+ return `---
150
+ name: ${COORDINATOR_NAME}
151
+ description: "Orchestrates AutomatosX multi-agent workflows. Automatically invoked for complex tasks requiring multiple specialists."
152
+ tools: Bash, mcp__automatosx__run_agent, mcp__automatosx__search_memory, mcp__automatosx__session_create
153
+ model: sonnet
154
+ permissionMode: acceptEdits
155
+ maxTurns: 100
156
+ memory: project
157
+ mcpServers:
158
+ - automatosx
159
+ generated: ${ts}
160
+ ---
161
+
162
+ # AutomatosX Coordinator
163
+
164
+ You orchestrate multi-agent workflows using AutomatosX.
165
+
166
+ ## Available Agents
167
+
168
+ ${agentList}
169
+
170
+ ## Core Rules
171
+
172
+ 1. Always search memory first: \`mcp__automatosx__search_memory\`
173
+ 2. Decompose complex tasks into agent-specific subtasks
174
+ 3. Run agents in dependency order
175
+ 4. Save decisions to memory for future leverage
176
+
177
+ ## MCP Tools
178
+
179
+ - \`mcp__automatosx__run_agent({ agent, task })\` — Execute an agent
180
+ - \`mcp__automatosx__search_memory({ query, limit? })\` — Search past decisions
181
+ - \`mcp__automatosx__session_create({ name, agent })\` — Start multi-agent session
182
+ - \`mcp__automatosx__list_agents()\` — List available agents
183
+
184
+ ---
185
+
186
+ **Generated:** ${ts}
187
+ **Generator:** AutomatosX SubagentGenerator
188
+ **Agent Count:** ${agents.length}
189
+ `;
190
+ }
191
+ getDescription(agent) {
192
+ if (agent.description?.trim())
193
+ return agent.description.trim();
194
+ if (agent.role?.trim())
195
+ return agent.role.trim();
196
+ if (agent.systemPrompt) {
197
+ const first = agent.systemPrompt.split('\n')[0]?.trim();
198
+ if (first && first.length < 200)
199
+ return first;
200
+ }
201
+ return `Specialized agent for ${agent.name}`;
202
+ }
203
+ }
204
+ //# sourceMappingURL=subagent-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-generator.js","sourceRoot":"","sources":["../../../src/integrations/claude-code/subagent-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Claude Code Integration - Type Definitions
3
+ *
4
+ * Types for Claude Code 2026 integration:
5
+ * settings.json management, hooks, subagent frontmatter, .mcp.json.
6
+ */
7
+ export type McpTransport = 'stdio' | 'http' | 'sse';
8
+ export interface ClaudeMCPServer {
9
+ type?: McpTransport;
10
+ /** Required for stdio transport */
11
+ command?: string;
12
+ args?: string[];
13
+ env?: Record<string, string>;
14
+ /** Required for http/sse transport */
15
+ url?: string;
16
+ headers?: Record<string, string>;
17
+ description?: string;
18
+ }
19
+ export interface MCPManifest {
20
+ version?: string;
21
+ name?: string;
22
+ description?: string;
23
+ mcpServers?: Record<string, ClaudeMCPServer>;
24
+ [key: string]: unknown;
25
+ }
26
+ export interface ValidationResult {
27
+ valid: boolean;
28
+ errors: string[];
29
+ warnings: string[];
30
+ }
31
+ export interface ClaudeCodeSettings {
32
+ permissions?: {
33
+ allow?: string[];
34
+ deny?: string[];
35
+ };
36
+ hooks?: Record<string, unknown>;
37
+ [key: string]: unknown;
38
+ }
39
+ export type HookType = 'command' | 'prompt' | 'http';
40
+ export type HookEvent = 'PreToolUse' | 'PostToolUse' | 'PostToolUseFailure' | 'SessionStart' | 'SessionEnd' | 'SubagentStart' | 'SubagentStop';
41
+ export interface HookEntry {
42
+ type: HookType;
43
+ command?: string;
44
+ timeout?: number;
45
+ url?: string;
46
+ }
47
+ export interface HookMatcher {
48
+ matcher?: string;
49
+ hooks: HookEntry[];
50
+ }
51
+ export interface HooksConfig {
52
+ [event: string]: HookMatcher[];
53
+ }
54
+ export type SubagentPermissionMode = 'default' | 'acceptEdits' | 'dontAsk' | 'bypassPermissions' | 'plan';
55
+ export type SubagentMemoryScope = 'user' | 'project' | 'local';
56
+ export type SubagentEffort = 'low' | 'medium' | 'high' | 'max';
57
+ export interface SubagentFrontmatter {
58
+ name: string;
59
+ description: string;
60
+ tools?: string[];
61
+ disallowedTools?: string[];
62
+ model?: string;
63
+ permissionMode?: SubagentPermissionMode;
64
+ maxTurns?: number;
65
+ memory?: SubagentMemoryScope;
66
+ background?: boolean;
67
+ isolation?: boolean;
68
+ effort?: SubagentEffort;
69
+ mcpServers?: string[];
70
+ skills?: string[];
71
+ }
72
+ export interface AgentClaudeCodeConfig {
73
+ model?: string;
74
+ permissionMode?: SubagentPermissionMode;
75
+ maxTurns?: number;
76
+ memory?: SubagentMemoryScope;
77
+ background?: boolean;
78
+ isolation?: boolean;
79
+ effort?: SubagentEffort;
80
+ mcpServers?: string[];
81
+ skills?: string[];
82
+ tools?: {
83
+ allow?: string[];
84
+ deny?: string[];
85
+ };
86
+ }
87
+ export interface ClaudeCodeDiagnostics {
88
+ settingsConfigured: boolean;
89
+ mcpProjectConfigGenerated: boolean;
90
+ hooksGenerated: boolean;
91
+ subagentFilesGenerated: boolean;
92
+ errors: string[];
93
+ warnings: string[];
94
+ }
95
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/claude-code/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Claude Code Integration - Type Definitions
3
+ *
4
+ * Types for Claude Code 2026 integration:
5
+ * settings.json management, hooks, subagent frontmatter, .mcp.json.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/claude-code/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * File utilities for Claude Code integration
3
+ */
4
+ export declare function fileExists(path: string): Promise<boolean>;
5
+ export declare function readJsonFile<T>(path: string): Promise<T>;
6
+ export declare function writeJsonFile(path: string, data: unknown): Promise<void>;
7
+ //# sourceMappingURL=file-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../../../src/integrations/claude-code/utils/file-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAG9D;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * File utilities for Claude Code integration
3
+ */
4
+ import { readFile, writeFile, access } from 'node:fs/promises';
5
+ import { constants } from 'node:fs';
6
+ export async function fileExists(path) {
7
+ try {
8
+ await access(path, constants.F_OK);
9
+ return true;
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ }
15
+ export async function readJsonFile(path) {
16
+ const content = await readFile(path, 'utf-8');
17
+ return JSON.parse(content);
18
+ }
19
+ export async function writeJsonFile(path, data) {
20
+ await writeFile(path, JSON.stringify(data, null, 2) + '\n', 'utf-8');
21
+ }
22
+ //# sourceMappingURL=file-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../../../src/integrations/claude-code/utils/file-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,IAAY;IAChD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAM,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,IAAa;IAC7D,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defai.digital/cli",
3
- "version": "13.4.10",
3
+ "version": "13.5.2",
4
4
  "type": "module",
5
5
  "description": "Command-line interface for AutomatosX - Contract-first AI orchestration platform with multi-provider routing",
6
6
  "license": "BUSL-1.1",
@@ -50,26 +50,26 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@defai.digital/ability-domain": "13.4.10",
54
- "@defai.digital/agent-domain": "13.4.10",
55
- "@defai.digital/analysis-domain": "13.4.10",
56
- "@defai.digital/agent-execution": "13.4.10",
57
- "@defai.digital/config-domain": "13.4.10",
58
- "@defai.digital/context-domain": "13.4.10",
59
- "@defai.digital/contracts": "13.4.10",
60
- "@defai.digital/cross-cutting": "13.4.10",
61
- "@defai.digital/discussion-domain": "13.4.10",
62
- "@defai.digital/guard": "13.4.10",
63
- "@defai.digital/iterate-domain": "13.4.10",
64
- "@defai.digital/memory-domain": "13.4.10",
65
- "@defai.digital/mcp-server": "13.4.10",
66
- "@defai.digital/provider-adapters": "13.4.10",
67
- "@defai.digital/review-domain": "13.4.10",
68
- "@defai.digital/routing-engine": "13.4.10",
69
- "@defai.digital/session-domain": "13.4.10",
70
- "@defai.digital/sqlite-adapter": "13.4.10",
71
- "@defai.digital/trace-domain": "13.4.10",
72
- "@defai.digital/workflow-engine": "13.4.10"
53
+ "@defai.digital/ability-domain": "13.5.2",
54
+ "@defai.digital/agent-execution": "13.5.2",
55
+ "@defai.digital/analysis-domain": "13.5.2",
56
+ "@defai.digital/config-domain": "13.5.2",
57
+ "@defai.digital/agent-domain": "13.5.2",
58
+ "@defai.digital/contracts": "13.5.2",
59
+ "@defai.digital/context-domain": "13.5.2",
60
+ "@defai.digital/cross-cutting": "13.5.2",
61
+ "@defai.digital/iterate-domain": "13.5.2",
62
+ "@defai.digital/guard": "13.5.2",
63
+ "@defai.digital/discussion-domain": "13.5.2",
64
+ "@defai.digital/mcp-server": "13.5.2",
65
+ "@defai.digital/memory-domain": "13.5.2",
66
+ "@defai.digital/provider-adapters": "13.5.2",
67
+ "@defai.digital/routing-engine": "13.5.2",
68
+ "@defai.digital/review-domain": "13.5.2",
69
+ "@defai.digital/session-domain": "13.5.2",
70
+ "@defai.digital/trace-domain": "13.5.2",
71
+ "@defai.digital/workflow-engine": "13.5.2",
72
+ "@defai.digital/sqlite-adapter": "13.5.2"
73
73
  },
74
74
  "scripts": {
75
75
  "build": "tsc --build",