@defai.digital/cli 13.4.11 → 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.
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +45 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +48 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/integrations/claude-code/claude-code-integration.d.ts +51 -0
- package/dist/integrations/claude-code/claude-code-integration.d.ts.map +1 -0
- package/dist/integrations/claude-code/claude-code-integration.js +120 -0
- package/dist/integrations/claude-code/claude-code-integration.js.map +1 -0
- package/dist/integrations/claude-code/hooks-generator.d.ts +33 -0
- package/dist/integrations/claude-code/hooks-generator.d.ts.map +1 -0
- package/dist/integrations/claude-code/hooks-generator.js +214 -0
- package/dist/integrations/claude-code/hooks-generator.js.map +1 -0
- package/dist/integrations/claude-code/index.d.ts +16 -0
- package/dist/integrations/claude-code/index.d.ts.map +1 -0
- package/dist/integrations/claude-code/index.js +12 -0
- package/dist/integrations/claude-code/index.js.map +1 -0
- package/dist/integrations/claude-code/mcp-project-config.d.ts +16 -0
- package/dist/integrations/claude-code/mcp-project-config.d.ts.map +1 -0
- package/dist/integrations/claude-code/mcp-project-config.js +55 -0
- package/dist/integrations/claude-code/mcp-project-config.js.map +1 -0
- package/dist/integrations/claude-code/settings-manager.d.ts +22 -0
- package/dist/integrations/claude-code/settings-manager.d.ts.map +1 -0
- package/dist/integrations/claude-code/settings-manager.js +75 -0
- package/dist/integrations/claude-code/settings-manager.js.map +1 -0
- package/dist/integrations/claude-code/subagent-generator.d.ts +47 -0
- package/dist/integrations/claude-code/subagent-generator.d.ts.map +1 -0
- package/dist/integrations/claude-code/subagent-generator.js +204 -0
- package/dist/integrations/claude-code/subagent-generator.js.map +1 -0
- package/dist/integrations/claude-code/types.d.ts +95 -0
- package/dist/integrations/claude-code/types.d.ts.map +1 -0
- package/dist/integrations/claude-code/types.js +8 -0
- package/dist/integrations/claude-code/types.js.map +1 -0
- package/dist/integrations/claude-code/utils/file-utils.d.ts +7 -0
- package/dist/integrations/claude-code/utils/file-utils.d.ts.map +1 -0
- package/dist/integrations/claude-code/utils/file-utils.js +22 -0
- package/dist/integrations/claude-code/utils/file-utils.js.map +1 -0
- 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 @@
|
|
|
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.
|
|
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/
|
|
54
|
-
"@defai.digital/
|
|
55
|
-
"@defai.digital/
|
|
56
|
-
"@defai.digital/config-domain": "13.
|
|
57
|
-
"@defai.digital/
|
|
58
|
-
"@defai.digital/
|
|
59
|
-
"@defai.digital/
|
|
60
|
-
"@defai.digital/
|
|
61
|
-
"@defai.digital/
|
|
62
|
-
"@defai.digital/
|
|
63
|
-
"@defai.digital/
|
|
64
|
-
"@defai.digital/
|
|
65
|
-
"@defai.digital/
|
|
66
|
-
"@defai.digital/provider-adapters": "13.
|
|
67
|
-
"@defai.digital/
|
|
68
|
-
"@defai.digital/
|
|
69
|
-
"@defai.digital/session-domain": "13.
|
|
70
|
-
"@defai.digital/trace-domain": "13.
|
|
71
|
-
"@defai.digital/workflow-engine": "13.
|
|
72
|
-
"@defai.digital/sqlite-adapter": "13.
|
|
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",
|