@dlnk/cli 0.1.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.
- package/README.md +88 -0
- package/dist/agents.d.ts +10 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +86 -0
- package/dist/agents.js.map +1 -0
- package/dist/api.d.ts +7 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +53 -0
- package/dist/api.js.map +1 -0
- package/dist/branding.d.ts +3 -0
- package/dist/branding.d.ts.map +1 -0
- package/dist/branding.js +10 -0
- package/dist/branding.js.map +1 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +40 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +264 -0
- package/dist/index.js.map +1 -0
- package/dist/index.obf.js +2 -0
- package/dist/license.d.ts +38 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +165 -0
- package/dist/license.js.map +1 -0
- package/dist/orchestrator.d.ts +22 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +152 -0
- package/dist/orchestrator.js.map +1 -0
- package/package.json +50 -0
- package/tsconfig.json +20 -0
package/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# dLNk CLI
|
|
2
|
+
|
|
3
|
+
> AI Agent CLI — Powered by dLNk
|
|
4
|
+
|
|
5
|
+
An intelligent CLI tool that runs a 12-agent AI swarm on your machine. Bring your own Telegram/Discord bot token and connect to any LLM backend.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g @dlnk/cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or download the binary: [GitHub Releases](https://github.com/dlnk/cli/releases)
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Ask a question
|
|
19
|
+
dlnk run "explain how to build a REST API in Node.js"
|
|
20
|
+
|
|
21
|
+
# Use a specific agent
|
|
22
|
+
dlnk run --agent security "review this code for vulnerabilities"
|
|
23
|
+
dlnk run --agent backend "design a database schema for an e-commerce app"
|
|
24
|
+
|
|
25
|
+
# Activate Pro license
|
|
26
|
+
dlnk license --activate DLNK-PRO-XXXX-XXXX-XXXX-XXXX
|
|
27
|
+
|
|
28
|
+
# Full swarm mode (12 agents working together)
|
|
29
|
+
dlnk run --swarm "build a complete todo app with React and Express"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Commands
|
|
33
|
+
|
|
34
|
+
| Command | Description |
|
|
35
|
+
|---|---|
|
|
36
|
+
| `dlnk run <task>` | Run a task (auto mode) |
|
|
37
|
+
| `dlnk run --agent <id> <task>` | Use specific agent role |
|
|
38
|
+
| `dlnk run --swarm <task>` | Full 12-agent swarm |
|
|
39
|
+
| `dlnk chat` | Interactive AI chat |
|
|
40
|
+
| `dlnk agents` | List all agent roles |
|
|
41
|
+
| `dlnk config --list` | Show configuration |
|
|
42
|
+
| `dlnk config --set key=value` | Set config value |
|
|
43
|
+
| `dlnk license --status` | Check license |
|
|
44
|
+
| `dlnk license --activate <key>` | Activate license key |
|
|
45
|
+
| `dlnk status` | System info |
|
|
46
|
+
|
|
47
|
+
## Agent Roles
|
|
48
|
+
|
|
49
|
+
| Role | Description |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `coordinator` | Project Coordinator |
|
|
52
|
+
| `planner` | AI Planner |
|
|
53
|
+
| `orchestrator` | Task Orchestrator |
|
|
54
|
+
| `backend` | Backend Architect |
|
|
55
|
+
| `frontend` | Frontend Developer |
|
|
56
|
+
| `ai_integrator` | AI Integrator |
|
|
57
|
+
| `security` | Security Auditor |
|
|
58
|
+
| `qa` | QA Engineer |
|
|
59
|
+
| `cloud` | Cloud Engineer |
|
|
60
|
+
| `data` | Data Analyst |
|
|
61
|
+
| `memory` | Memory Engineer |
|
|
62
|
+
| `writer` | Content Writer |
|
|
63
|
+
|
|
64
|
+
## License Tiers
|
|
65
|
+
|
|
66
|
+
| Tier | Price | Requests/day | Max Agents |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| Free | Free | 50 | 3 |
|
|
69
|
+
| Pro | 499 THB/month | Unlimited | 12 |
|
|
70
|
+
| Enterprise | Contact | Unlimited | 12 |
|
|
71
|
+
|
|
72
|
+
Purchase at: https://dlnk.online/pro
|
|
73
|
+
|
|
74
|
+
## Configuration
|
|
75
|
+
|
|
76
|
+
Config is stored at `~/.dlnk/config.json`
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"model": "auto",
|
|
81
|
+
"api_endpoint": "http://localhost:3333",
|
|
82
|
+
"license_key": "trial"
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
Made with ❤️ by dLNk | https://dlnk.online
|
package/dist/agents.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface AgentRole {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
emoji: string;
|
|
5
|
+
systemPrompt: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const AGENT_ROLES: Record<string, AgentRole>;
|
|
8
|
+
export declare function getAgent(id: string): AgentRole | undefined;
|
|
9
|
+
export declare function listAgents(): AgentRole[];
|
|
10
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAyEjD,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE1D;AAED,wBAAgB,UAAU,IAAI,SAAS,EAAE,CAExC"}
|
package/dist/agents.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AGENT_ROLES = void 0;
|
|
4
|
+
exports.getAgent = getAgent;
|
|
5
|
+
exports.listAgents = listAgents;
|
|
6
|
+
exports.AGENT_ROLES = {
|
|
7
|
+
coordinator: {
|
|
8
|
+
id: 'coordinator',
|
|
9
|
+
name: 'Project Coordinator',
|
|
10
|
+
emoji: '📋',
|
|
11
|
+
systemPrompt: `You are a Project Coordinator. Your job is to understand the user's request and translate it into a clear, actionable project brief. Identify goals, scope, and key deliverables. Be concise. Output a structured brief only.`,
|
|
12
|
+
},
|
|
13
|
+
planner: {
|
|
14
|
+
id: 'planner',
|
|
15
|
+
name: 'AI Planner',
|
|
16
|
+
emoji: '🗺️',
|
|
17
|
+
systemPrompt: `You are an AI Planner. Break down the project brief into a step-by-step technical plan. Define task breakdown, dependencies, execution order, and risk points. Output a numbered plan only.`,
|
|
18
|
+
},
|
|
19
|
+
orchestrator: {
|
|
20
|
+
id: 'orchestrator',
|
|
21
|
+
name: 'Orchestrator',
|
|
22
|
+
emoji: '🎯',
|
|
23
|
+
systemPrompt: `You are an Orchestrator. Given a plan, decide which agents to activate and in what order. Assign tasks clearly. Be direct and structured.`,
|
|
24
|
+
},
|
|
25
|
+
backend: {
|
|
26
|
+
id: 'backend',
|
|
27
|
+
name: 'Backend Architect',
|
|
28
|
+
emoji: '⚙️',
|
|
29
|
+
systemPrompt: `You are a Backend Architect. Design and implement APIs, database schemas, and core business logic. Write production-quality code. Include error handling and security considerations.`,
|
|
30
|
+
},
|
|
31
|
+
frontend: {
|
|
32
|
+
id: 'frontend',
|
|
33
|
+
name: 'Frontend Developer',
|
|
34
|
+
emoji: '🎨',
|
|
35
|
+
systemPrompt: `You are a Frontend Developer. Build UI/UX components, pages, and user interactions. Focus on clean, accessible, responsive design. Write modern, component-based code.`,
|
|
36
|
+
},
|
|
37
|
+
ai_integrator: {
|
|
38
|
+
id: 'ai_integrator',
|
|
39
|
+
name: 'AI Integrator',
|
|
40
|
+
emoji: '🤖',
|
|
41
|
+
systemPrompt: `You are an AI Integrator. Connect LLMs, build prompts, and integrate AI capabilities into applications. Optimize for performance, cost, and reliability.`,
|
|
42
|
+
},
|
|
43
|
+
security: {
|
|
44
|
+
id: 'security',
|
|
45
|
+
name: 'Security Auditor',
|
|
46
|
+
emoji: '🔒',
|
|
47
|
+
systemPrompt: `You are a Security Auditor. Review code and systems for vulnerabilities. Identify risks by severity (Critical/High/Medium/Low). Provide specific fix suggestions for each finding.`,
|
|
48
|
+
},
|
|
49
|
+
qa: {
|
|
50
|
+
id: 'qa',
|
|
51
|
+
name: 'QA Engineer',
|
|
52
|
+
emoji: '🧪',
|
|
53
|
+
systemPrompt: `You are a QA Engineer. Write tests, identify edge cases, and verify correctness. Check for logic errors, hallucinations in AI outputs, and boundary conditions. Output test cases and results.`,
|
|
54
|
+
},
|
|
55
|
+
cloud: {
|
|
56
|
+
id: 'cloud',
|
|
57
|
+
name: 'Cloud Engineer',
|
|
58
|
+
emoji: '☁️',
|
|
59
|
+
systemPrompt: `You are a Cloud Engineer. Handle CI/CD pipelines, deployment configs, and infrastructure as code. Design for scalability, reliability, and cost efficiency.`,
|
|
60
|
+
},
|
|
61
|
+
data: {
|
|
62
|
+
id: 'data',
|
|
63
|
+
name: 'Data Analyst',
|
|
64
|
+
emoji: '📊',
|
|
65
|
+
systemPrompt: `You are a Data Analyst. Analyze data flows, generate insights, and identify patterns. Provide actionable recommendations based on data evidence.`,
|
|
66
|
+
},
|
|
67
|
+
memory: {
|
|
68
|
+
id: 'memory',
|
|
69
|
+
name: 'Memory Engineer',
|
|
70
|
+
emoji: '🧠',
|
|
71
|
+
systemPrompt: `You are a Memory Engineer. Manage RAG contexts, knowledge bases, and system memory. Optimize retrieval, summarization, and context injection for AI systems.`,
|
|
72
|
+
},
|
|
73
|
+
writer: {
|
|
74
|
+
id: 'writer',
|
|
75
|
+
name: 'Content Writer',
|
|
76
|
+
emoji: '📝',
|
|
77
|
+
systemPrompt: `You are a Content Writer. Create clear documentation, user guides, API references, and marketing content. Write for the target audience with appropriate tone and depth.`,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
function getAgent(id) {
|
|
81
|
+
return exports.AGENT_ROLES[id];
|
|
82
|
+
}
|
|
83
|
+
function listAgents() {
|
|
84
|
+
return Object.values(exports.AGENT_ROLES);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":";;;AAkFA,4BAEC;AAED,gCAEC;AAjFY,QAAA,WAAW,GAA8B;IACpD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,+NAA+N;KAC9O;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK;QACZ,YAAY,EAAE,6LAA6L;KAC5M;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,2IAA2I;KAC1J;IACD,OAAO,EAAE;QACP,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,uLAAuL;KACtM;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,wKAAwK;KACvL;IACD,aAAa,EAAE;QACb,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,0JAA0J;KACzK;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,oLAAoL;KACnM;IACD,EAAE,EAAE;QACF,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,gMAAgM;KAC/M;IACD,KAAK,EAAE;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,6JAA6J;KAC5K;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,kJAAkJ;KACjK;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,8JAA8J;KAC7K;IACD,MAAM,EAAE;QACN,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,0KAA0K;KACzL;CACF,CAAC;AAEF,SAAgB,QAAQ,CAAC,EAAU;IACjC,OAAO,mBAAW,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC;AACpC,CAAC"}
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAIA,UAAU,OAAO;IAAG,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAAE;AAE7E,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,MAAM,YAAS,EACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
|
package/dist/api.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.streamChat = streamChat;
|
|
7
|
+
const https_1 = __importDefault(require("https"));
|
|
8
|
+
const http_1 = __importDefault(require("http"));
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
async function streamChat(messages, model = 'auto', onChunk) {
|
|
11
|
+
const config = (0, config_1.loadConfig)();
|
|
12
|
+
const endpoint = config.api_endpoint;
|
|
13
|
+
const url = new URL('/v1/chat/completions', endpoint);
|
|
14
|
+
const body = JSON.stringify({ model: `bcproxy/${model}`, messages, stream: true });
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
const lib = url.protocol === 'https:' ? https_1.default : http_1.default;
|
|
17
|
+
const req = lib.request({
|
|
18
|
+
hostname: url.hostname,
|
|
19
|
+
port: url.port,
|
|
20
|
+
path: url.pathname,
|
|
21
|
+
method: 'POST',
|
|
22
|
+
headers: {
|
|
23
|
+
'Content-Type': 'application/json',
|
|
24
|
+
'Authorization': 'Bearer dlnk-local',
|
|
25
|
+
'Content-Length': Buffer.byteLength(body),
|
|
26
|
+
},
|
|
27
|
+
}, (res) => {
|
|
28
|
+
res.on('data', (chunk) => {
|
|
29
|
+
const lines = chunk.toString().split('\n');
|
|
30
|
+
for (const line of lines) {
|
|
31
|
+
if (!line.startsWith('data: '))
|
|
32
|
+
continue;
|
|
33
|
+
const data = line.slice(6).trim();
|
|
34
|
+
if (data === '[DONE]')
|
|
35
|
+
return;
|
|
36
|
+
try {
|
|
37
|
+
const json = JSON.parse(data);
|
|
38
|
+
const text = json.choices?.[0]?.delta?.content;
|
|
39
|
+
if (text)
|
|
40
|
+
onChunk(text);
|
|
41
|
+
}
|
|
42
|
+
catch { }
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
res.on('end', resolve);
|
|
46
|
+
res.on('error', reject);
|
|
47
|
+
});
|
|
48
|
+
req.on('error', reject);
|
|
49
|
+
req.write(body);
|
|
50
|
+
req.end();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;AAMA,gCA2CC;AAjDD,kDAA0B;AAC1B,gDAAwB;AACxB,qCAAsC;AAI/B,KAAK,UAAU,UAAU,CAC9B,QAAmB,EACnB,QAAgB,MAAM,EACtB,OAA+B;IAE/B,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAK,CAAC,CAAC,CAAC,cAAI,CAAC;QACrD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ;YAClB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,mBAAmB;gBACpC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;aAC1C;SACF,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClC,IAAI,IAAI,KAAK,QAAQ;wBAAE,OAAO;oBAC9B,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;wBAC/C,IAAI,IAAI;4BAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC1B,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../src/branding.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,wBAAgB,UAAU,SAGzB"}
|
package/dist/branding.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VERSION = void 0;
|
|
4
|
+
exports.showBanner = showBanner;
|
|
5
|
+
exports.VERSION = '0.1.0';
|
|
6
|
+
function showBanner() {
|
|
7
|
+
console.log('AI Agent CLI — Powered by dLNk');
|
|
8
|
+
console.log('');
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=branding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branding.js","sourceRoot":"","sources":["../src/branding.ts"],"names":[],"mappings":";;;AAEA,gCAGC;AALY,QAAA,OAAO,GAAG,OAAO,CAAC;AAE/B,SAAgB,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface DlnkConfig {
|
|
2
|
+
model: string;
|
|
3
|
+
api_endpoint: string;
|
|
4
|
+
license_key: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function loadConfig(): DlnkConfig;
|
|
7
|
+
export declare function saveConfig(updates: Partial<DlnkConfig>): void;
|
|
8
|
+
export declare function getConfigPath(): string;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAQD,wBAAgB,UAAU,IAAI,UAAU,CASvC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAI7D;AAED,wBAAgB,aAAa,IAAI,MAAM,CAAwB"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadConfig = loadConfig;
|
|
7
|
+
exports.saveConfig = saveConfig;
|
|
8
|
+
exports.getConfigPath = getConfigPath;
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const os_1 = __importDefault(require("os"));
|
|
12
|
+
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.dlnk');
|
|
13
|
+
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.json');
|
|
14
|
+
const DEFAULTS = {
|
|
15
|
+
model: 'auto',
|
|
16
|
+
api_endpoint: 'http://localhost:3333',
|
|
17
|
+
license_key: 'trial',
|
|
18
|
+
};
|
|
19
|
+
function loadConfig() {
|
|
20
|
+
try {
|
|
21
|
+
if (!fs_1.default.existsSync(CONFIG_DIR))
|
|
22
|
+
fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
23
|
+
if (!fs_1.default.existsSync(CONFIG_FILE)) {
|
|
24
|
+
fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify(DEFAULTS, null, 2));
|
|
25
|
+
return DEFAULTS;
|
|
26
|
+
}
|
|
27
|
+
return { ...DEFAULTS, ...JSON.parse(fs_1.default.readFileSync(CONFIG_FILE, 'utf-8')) };
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return DEFAULTS;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function saveConfig(updates) {
|
|
34
|
+
const current = loadConfig();
|
|
35
|
+
if (!fs_1.default.existsSync(CONFIG_DIR))
|
|
36
|
+
fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
37
|
+
fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify({ ...current, ...updates }, null, 2));
|
|
38
|
+
}
|
|
39
|
+
function getConfigPath() { return CONFIG_FILE; }
|
|
40
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;AAmBA,gCASC;AAED,gCAIC;AAED,sCAA+D;AApC/D,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAQzD,MAAM,QAAQ,GAAe;IAC3B,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,OAAO;CACrB,CAAC;AAEF,SAAgB,UAAU;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,QAAQ,CAAC;IAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,UAAU,CAAC,OAA4B;IACrD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,SAAgB,aAAa,KAAa,OAAO,WAAW,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const readline_1 = __importDefault(require("readline"));
|
|
10
|
+
const branding_1 = require("./branding");
|
|
11
|
+
const config_1 = require("./config");
|
|
12
|
+
const api_1 = require("./api");
|
|
13
|
+
const agents_1 = require("./agents");
|
|
14
|
+
const orchestrator_1 = require("./orchestrator");
|
|
15
|
+
const license_1 = require("./license");
|
|
16
|
+
const os_1 = __importDefault(require("os"));
|
|
17
|
+
const program = new commander_1.Command();
|
|
18
|
+
program
|
|
19
|
+
.name('dlnk')
|
|
20
|
+
.description('AI Agent CLI — Powered by dLNk')
|
|
21
|
+
.version(branding_1.VERSION, '-v, --version', 'Show version number');
|
|
22
|
+
// ─── chat ────────────────────────────────────────────────────────────────────
|
|
23
|
+
program
|
|
24
|
+
.command('chat')
|
|
25
|
+
.description('Interactive AI chat with your agent')
|
|
26
|
+
.option('-m, --model <model>', 'Model (auto/fast/pro)', 'auto')
|
|
27
|
+
.option('-a, --agent <id>', 'Use specific agent role', 'backend')
|
|
28
|
+
.action(async (options) => {
|
|
29
|
+
(0, branding_1.showBanner)();
|
|
30
|
+
const config = (0, config_1.loadConfig)();
|
|
31
|
+
const model = options.model || config.model;
|
|
32
|
+
const role = agents_1.AGENT_ROLES[options.agent];
|
|
33
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ chat') + chalk_1.default.gray(` [model: ${model}${role ? ` | agent: ${role.emoji} ${role.name}` : ''}]`));
|
|
34
|
+
console.log(chalk_1.default.gray(' Type your message. "exit" to quit.\n'));
|
|
35
|
+
const rl = readline_1.default.createInterface({ input: process.stdin, output: process.stdout });
|
|
36
|
+
const history = [];
|
|
37
|
+
if (role)
|
|
38
|
+
history.push({ role: 'system', content: role.systemPrompt });
|
|
39
|
+
const ask = () => {
|
|
40
|
+
rl.question(chalk_1.default.hex('#00D4FF')(' you > '), async (input) => {
|
|
41
|
+
const msg = input.trim();
|
|
42
|
+
if (!msg || msg === 'exit') {
|
|
43
|
+
console.log(chalk_1.default.gray('\n Bye! 👋\n'));
|
|
44
|
+
rl.close();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
history.push({ role: 'user', content: msg });
|
|
48
|
+
process.stdout.write(chalk_1.default.hex('#6C63FF')('\n dlnk > '));
|
|
49
|
+
let reply = '';
|
|
50
|
+
try {
|
|
51
|
+
await (0, api_1.streamChat)(history, model, (chunk) => {
|
|
52
|
+
process.stdout.write(chalk_1.default.white(chunk));
|
|
53
|
+
reply += chunk;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
process.stdout.write(chalk_1.default.red(`\n Error: ${e.message}`));
|
|
58
|
+
}
|
|
59
|
+
history.push({ role: 'assistant', content: reply });
|
|
60
|
+
process.stdout.write('\n\n');
|
|
61
|
+
ask();
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
ask();
|
|
65
|
+
});
|
|
66
|
+
// ─── run ─────────────────────────────────────────────────────────────────────
|
|
67
|
+
program
|
|
68
|
+
.command('run <task>')
|
|
69
|
+
.description('Run agentic task with AI swarm')
|
|
70
|
+
.option('-m, --model <model>', 'Model (auto/fast/pro)', 'auto')
|
|
71
|
+
.option('-a, --agents <n>', 'Max agents to spawn', '4')
|
|
72
|
+
.option('--agent <id>', 'Use single specific agent')
|
|
73
|
+
.option('--swarm', 'Use full 12-agent swarm mode', false)
|
|
74
|
+
.action(async (task, options) => {
|
|
75
|
+
(0, branding_1.showBanner)();
|
|
76
|
+
// License check
|
|
77
|
+
const maxAgents = parseInt(options.agents) || 4;
|
|
78
|
+
const check = (0, license_1.trackUsage)(options.swarm ? maxAgents : 1);
|
|
79
|
+
if (!check.allowed) {
|
|
80
|
+
console.log(chalk_1.default.red(` ✗ ${check.reason}`));
|
|
81
|
+
console.log('');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (options.agent) {
|
|
85
|
+
// Single agent mode
|
|
86
|
+
const role = agents_1.AGENT_ROLES[options.agent];
|
|
87
|
+
if (!role) {
|
|
88
|
+
console.log(chalk_1.default.red(` Unknown agent: ${options.agent}`));
|
|
89
|
+
console.log(chalk_1.default.gray(` Available: ${Object.keys(agents_1.AGENT_ROLES).join(', ')}`));
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
console.log(chalk_1.default.hex('#6C63FF')(` ◆ ${role.emoji} ${role.name}`));
|
|
93
|
+
console.log(chalk_1.default.white(` ${task}\n`));
|
|
94
|
+
process.stdout.write(chalk_1.default.hex('#6C63FF')(' > '));
|
|
95
|
+
try {
|
|
96
|
+
await (0, orchestrator_1.runAgent)(role, task, '', (chunk) => process.stdout.write(chalk_1.default.white(chunk)));
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
process.stdout.write(chalk_1.default.red(`\n Error: ${e.message}`));
|
|
100
|
+
}
|
|
101
|
+
process.stdout.write('\n\n');
|
|
102
|
+
}
|
|
103
|
+
else if (options.swarm) {
|
|
104
|
+
// Full swarm mode
|
|
105
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ swarm mode') + chalk_1.default.gray(` [max ${maxAgents} agents]`));
|
|
106
|
+
console.log(chalk_1.default.white(` ${task}\n`));
|
|
107
|
+
let step = 0;
|
|
108
|
+
const steps = ['briefing', 'planning', 'executing'];
|
|
109
|
+
try {
|
|
110
|
+
const { results } = await (0, orchestrator_1.runSwarm)(task, maxAgents, (stepName, agent) => {
|
|
111
|
+
if (stepName === 'briefing')
|
|
112
|
+
console.log(chalk_1.default.gray(' 📋 Coordinator analyzing task...'));
|
|
113
|
+
else if (stepName === 'planning')
|
|
114
|
+
console.log(chalk_1.default.gray(' 🗺️ Planner creating execution plan...'));
|
|
115
|
+
else if (stepName === 'executing' && agent) {
|
|
116
|
+
console.log(chalk_1.default.gray(` ${agent.emoji} ${agent.name} working...`));
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
console.log('\n' + chalk_1.default.hex('#6C63FF')(' ◆ results\n'));
|
|
120
|
+
console.log((0, orchestrator_1.formatResults)(results));
|
|
121
|
+
console.log('');
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
console.log(chalk_1.default.red(` Error: ${e.message}`));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// Default: stream single response
|
|
129
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ run') + chalk_1.default.gray(` [auto mode]`));
|
|
130
|
+
console.log(chalk_1.default.white(` ${task}\n`));
|
|
131
|
+
process.stdout.write(chalk_1.default.hex('#6C63FF')(' dlnk > '));
|
|
132
|
+
try {
|
|
133
|
+
await (0, api_1.streamChat)([{ role: 'user', content: task }], options.model || (0, config_1.loadConfig)().model, (chunk) => process.stdout.write(chalk_1.default.white(chunk)));
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
process.stdout.write(chalk_1.default.red(`\n Error: ${e.message}`));
|
|
137
|
+
}
|
|
138
|
+
process.stdout.write('\n\n');
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// ─── agents ──────────────────────────────────────────────────────────────────
|
|
142
|
+
program
|
|
143
|
+
.command('agents')
|
|
144
|
+
.description('List all available agent roles')
|
|
145
|
+
.action(() => {
|
|
146
|
+
(0, branding_1.showBanner)();
|
|
147
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ available agents\n'));
|
|
148
|
+
(0, agents_1.listAgents)().forEach((agent) => {
|
|
149
|
+
console.log(` ${agent.emoji} ${chalk_1.default.white(agent.id.padEnd(16))} ${chalk_1.default.gray(agent.name)}`);
|
|
150
|
+
});
|
|
151
|
+
console.log('');
|
|
152
|
+
console.log(chalk_1.default.gray(' Usage: dlnk run --agent <id> "your task"'));
|
|
153
|
+
console.log(chalk_1.default.gray(' dlnk run --swarm "your task"'));
|
|
154
|
+
console.log('');
|
|
155
|
+
});
|
|
156
|
+
// ─── config ──────────────────────────────────────────────────────────────────
|
|
157
|
+
program
|
|
158
|
+
.command('config')
|
|
159
|
+
.description('Manage dLNk CLI configuration')
|
|
160
|
+
.option('--list', 'List all config values')
|
|
161
|
+
.option('--set <keyval>', 'Set config (key=value)')
|
|
162
|
+
.option('--get <key>', 'Get config value')
|
|
163
|
+
.action((options) => {
|
|
164
|
+
(0, branding_1.showBanner)();
|
|
165
|
+
const config = (0, config_1.loadConfig)();
|
|
166
|
+
if (options.list || (!options.set && !options.get)) {
|
|
167
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ configuration'));
|
|
168
|
+
console.log(chalk_1.default.gray(` Path: ${(0, config_1.getConfigPath)()}\n`));
|
|
169
|
+
Object.entries(config).forEach(([k, v]) => {
|
|
170
|
+
console.log(` ${chalk_1.default.white(k.padEnd(16))} ${chalk_1.default.gray(String(v))}`);
|
|
171
|
+
});
|
|
172
|
+
console.log('');
|
|
173
|
+
}
|
|
174
|
+
else if (options.set) {
|
|
175
|
+
const [key, ...rest] = options.set.split('=');
|
|
176
|
+
const value = rest.join('=');
|
|
177
|
+
(0, config_1.saveConfig)({ [key.trim()]: value.trim() });
|
|
178
|
+
console.log(chalk_1.default.green(` ✓ Set ${key} = ${value}\n`));
|
|
179
|
+
}
|
|
180
|
+
else if (options.get) {
|
|
181
|
+
console.log(config[options.get] ?? chalk_1.default.red('(not set)'));
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
// ─── status ──────────────────────────────────────────────────────────────────
|
|
185
|
+
program
|
|
186
|
+
.command('status')
|
|
187
|
+
.description('Show system status and license info')
|
|
188
|
+
.action(() => {
|
|
189
|
+
(0, branding_1.showBanner)();
|
|
190
|
+
const config = (0, config_1.loadConfig)();
|
|
191
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ system status\n'));
|
|
192
|
+
console.log(chalk_1.default.white(' Runtime'));
|
|
193
|
+
console.log(chalk_1.default.gray(` Node.js : ${process.version}`));
|
|
194
|
+
console.log(chalk_1.default.gray(` Platform: ${os_1.default.platform()} ${os_1.default.arch()}`));
|
|
195
|
+
console.log('');
|
|
196
|
+
console.log(chalk_1.default.white(' Config'));
|
|
197
|
+
console.log(chalk_1.default.gray(` Endpoint: ${config.api_endpoint}`));
|
|
198
|
+
console.log(chalk_1.default.gray(` Model : ${config.model}`));
|
|
199
|
+
console.log('');
|
|
200
|
+
console.log(chalk_1.default.white(' License'));
|
|
201
|
+
console.log(chalk_1.default.yellow(' Status : Trial'));
|
|
202
|
+
console.log(chalk_1.default.gray(' Plan : Free (50 req/day, 3 agents)'));
|
|
203
|
+
console.log(chalk_1.default.gray(' Upgrade : https://dlnk.online/pro'));
|
|
204
|
+
console.log('');
|
|
205
|
+
console.log(chalk_1.default.white(' Agents'));
|
|
206
|
+
console.log(chalk_1.default.gray(` Available: ${(0, agents_1.listAgents)().length} specialized roles`));
|
|
207
|
+
console.log('');
|
|
208
|
+
});
|
|
209
|
+
// ─── license ─────────────────────────────────────────────────────────────────
|
|
210
|
+
program
|
|
211
|
+
.command('license')
|
|
212
|
+
.description('Manage your dLNk license')
|
|
213
|
+
.option('--status', 'Show license status')
|
|
214
|
+
.option('--activate <key>', 'Activate a license key')
|
|
215
|
+
.option('--usage', 'Show usage statistics')
|
|
216
|
+
.action(async (options) => {
|
|
217
|
+
(0, branding_1.showBanner)();
|
|
218
|
+
if (options.activate) {
|
|
219
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ activating license...'));
|
|
220
|
+
const result = await (0, license_1.activateLicense)(options.activate);
|
|
221
|
+
if (result.ok && result.info) {
|
|
222
|
+
console.log(chalk_1.default.green(` ✓ License activated!`));
|
|
223
|
+
console.log(chalk_1.default.gray(` Tier : ${result.info.tier.toUpperCase()}`));
|
|
224
|
+
console.log(chalk_1.default.gray(` Agents : ${result.info.maxAgents}`));
|
|
225
|
+
console.log(chalk_1.default.gray(` Req/day: ${result.info.maxReqPerDay === 99999 ? 'Unlimited' : result.info.maxReqPerDay}`));
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
console.log(chalk_1.default.red(` ✗ Activation failed: ${result.error}`));
|
|
229
|
+
}
|
|
230
|
+
console.log('');
|
|
231
|
+
}
|
|
232
|
+
else if (options.usage) {
|
|
233
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ usage'));
|
|
234
|
+
console.log(chalk_1.default.gray(` Today : ${(0, license_1.getUsageSummary)()}`));
|
|
235
|
+
console.log('');
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
// Default: show status
|
|
239
|
+
const { valid, reason, info } = (0, license_1.validateLicense)();
|
|
240
|
+
const tierColor = info.tier === 'pro' || info.tier === 'enterprise' ? chalk_1.default.green : chalk_1.default.yellow;
|
|
241
|
+
console.log(chalk_1.default.hex('#6C63FF')(' ◆ license status\n'));
|
|
242
|
+
console.log(` ${chalk_1.default.white('Key :')} ${chalk_1.default.gray(info.key === 'trial' ? 'Trial (no key)' : info.key.slice(0, 16) + '...')}`);
|
|
243
|
+
console.log(` ${chalk_1.default.white('Tier :')} ${tierColor(info.tier.toUpperCase())}`);
|
|
244
|
+
console.log(` ${chalk_1.default.white('Status :')} ${valid ? chalk_1.default.green('✓ Valid') : chalk_1.default.red('✗ ' + reason)}`);
|
|
245
|
+
console.log(` ${chalk_1.default.white('Agents :')} ${chalk_1.default.gray(String(info.maxAgents))}`);
|
|
246
|
+
console.log(` ${chalk_1.default.white('Req/day:')} ${chalk_1.default.gray(info.maxReqPerDay === 99999 ? 'Unlimited' : String(info.maxReqPerDay))}`);
|
|
247
|
+
console.log(` ${chalk_1.default.white('Usage :')} ${chalk_1.default.gray((0, license_1.getUsageSummary)())}`);
|
|
248
|
+
if (info.tier === 'trial' || info.tier === 'free') {
|
|
249
|
+
console.log('');
|
|
250
|
+
console.log(chalk_1.default.gray(' Upgrade to Pro: https://dlnk.online/pro'));
|
|
251
|
+
console.log(chalk_1.default.gray(' Use: dlnk license --activate <key>'));
|
|
252
|
+
}
|
|
253
|
+
console.log('');
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
// Default
|
|
257
|
+
if (process.argv.length <= 2) {
|
|
258
|
+
(0, branding_1.showBanner)();
|
|
259
|
+
program.help();
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
program.parse(process.argv);
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';const a0_0x517ab6=a0_0x1a6f;(function(_0x76778d,_0x52738b){const _0xfef0=a0_0x1a6f,_0x3a22ba=_0x76778d();while(!![]){try{const _0x4306c5=parseInt(_0xfef0(0x118))/0x1*(-parseInt(_0xfef0(0xb7))/0x2)+parseInt(_0xfef0(0x144))/0x3*(-parseInt(_0xfef0(0x11e))/0x4)+parseInt(_0xfef0(0xbf))/0x5+parseInt(_0xfef0(0xc7))/0x6*(parseInt(_0xfef0(0x8a))/0x7)+-parseInt(_0xfef0(0xa0))/0x8*(-parseInt(_0xfef0(0xd3))/0x9)+parseInt(_0xfef0(0xca))/0xa+-parseInt(_0xfef0(0xfc))/0xb*(parseInt(_0xfef0(0x137))/0xc);if(_0x4306c5===_0x52738b)break;else _0x3a22ba['push'](_0x3a22ba['shift']());}catch(_0x10b0dd){_0x3a22ba['push'](_0x3a22ba['shift']());}}}(a0_0x5ec1,0xe8d79));function a0_0x1a6f(_0x321d91,_0x18efec){_0x321d91=_0x321d91-0x89;const _0x5ec1b7=a0_0x5ec1();let _0x1a6f93=_0x5ec1b7[_0x321d91];if(a0_0x1a6f['qeCaPh']===undefined){var _0x16543d=function(_0x147038){const _0x67fbb0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x51549d='',_0x9b1346='';for(let _0x80647b=0x0,_0x5576ef,_0x2d79c8,_0x992081=0x0;_0x2d79c8=_0x147038['charAt'](_0x992081++);~_0x2d79c8&&(_0x5576ef=_0x80647b%0x4?_0x5576ef*0x40+_0x2d79c8:_0x2d79c8,_0x80647b++%0x4)?_0x51549d+=String['fromCharCode'](0xff&_0x5576ef>>(-0x2*_0x80647b&0x6)):0x0){_0x2d79c8=_0x67fbb0['indexOf'](_0x2d79c8);}for(let _0x32628e=0x0,_0x363e23=_0x51549d['length'];_0x32628e<_0x363e23;_0x32628e++){_0x9b1346+='%'+('00'+_0x51549d['charCodeAt'](_0x32628e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9b1346);};a0_0x1a6f['eomnvC']=_0x16543d,a0_0x1a6f['OxNbok']={},a0_0x1a6f['qeCaPh']=!![];}const _0x1d9959=_0x5ec1b7[0x0],_0x257f81=_0x321d91+_0x1d9959,_0x301f73=a0_0x1a6f['OxNbok'][_0x257f81];return!_0x301f73?(_0x1a6f93=a0_0x1a6f['eomnvC'](_0x1a6f93),a0_0x1a6f['OxNbok'][_0x257f81]=_0x1a6f93):_0x1a6f93=_0x301f73,_0x1a6f93;}var __importDefault=this&&this[a0_0x517ab6(0x102)]||function(_0x51549d){const _0x1f77ae=a0_0x517ab6;return _0x51549d&&_0x51549d[_0x1f77ae(0xff)]?_0x51549d:{'default':_0x51549d};};Object[a0_0x517ab6(0xee)](exports,a0_0x517ab6(0xff),{'value':!![]});const commander_1=require(a0_0x517ab6(0xc0)),chalk_1=__importDefault(require(a0_0x517ab6(0xad))),readline_1=__importDefault(require(a0_0x517ab6(0xc1))),branding_1=require(a0_0x517ab6(0x10c)),config_1=require('./config'),api_1=require(a0_0x517ab6(0x13f)),agents_1=require(a0_0x517ab6(0xbc)),orchestrator_1=require(a0_0x517ab6(0xb8)),license_1=require('./license'),os_1=__importDefault(require('os')),program=new commander_1[(a0_0x517ab6(0xd2))]();program['name'](a0_0x517ab6(0x9f))[a0_0x517ab6(0x114)](a0_0x517ab6(0x10e))[a0_0x517ab6(0x115)](branding_1['VERSION'],'-v,\x20--version',a0_0x517ab6(0xf2)),program[a0_0x517ab6(0xb1)](a0_0x517ab6(0x96))['description'](a0_0x517ab6(0x143))['option'](a0_0x517ab6(0x110),a0_0x517ab6(0xb3),a0_0x517ab6(0xe9))['option'](a0_0x517ab6(0xf6),'Use\x20specific\x20agent\x20role',a0_0x517ab6(0x127))[a0_0x517ab6(0x91)](async _0x9b1346=>{const _0x45a6ac=a0_0x517ab6;(0x0,branding_1[_0x45a6ac(0x90)])();const _0x80647b=(0x0,config_1[_0x45a6ac(0x13b)])(),_0x5576ef=_0x9b1346[_0x45a6ac(0x8d)]||_0x80647b['model'],_0x2d79c8=agents_1[_0x45a6ac(0x113)][_0x9b1346[_0x45a6ac(0xc3)]];console[_0x45a6ac(0xa8)](chalk_1[_0x45a6ac(0xd7)][_0x45a6ac(0xc8)]('#6C63FF')(_0x45a6ac(0xed))+chalk_1[_0x45a6ac(0xd7)][_0x45a6ac(0xbe)](_0x45a6ac(0xe6)+_0x5576ef+(_0x2d79c8?_0x45a6ac(0x111)+_0x2d79c8[_0x45a6ac(0x10f)]+'\x20'+_0x2d79c8[_0x45a6ac(0x8b)]:'')+']')),console['log'](chalk_1[_0x45a6ac(0xd7)][_0x45a6ac(0xbe)](_0x45a6ac(0x134)));const _0x992081=readline_1[_0x45a6ac(0xd7)]['createInterface']({'input':process[_0x45a6ac(0xe4)],'output':process[_0x45a6ac(0x12c)]}),_0x32628e=[];if(_0x2d79c8)_0x32628e[_0x45a6ac(0xe2)]({'role':_0x45a6ac(0x92),'content':_0x2d79c8[_0x45a6ac(0x93)]});const _0x363e23=()=>{const _0x43ce2e=_0x45a6ac;_0x992081[_0x43ce2e(0x124)](chalk_1[_0x43ce2e(0xd7)]['hex'](_0x43ce2e(0xf8))(_0x43ce2e(0x116)),async _0x88a389=>{const _0x21fc25=_0x43ce2e,_0x3fad23=_0x88a389[_0x21fc25(0x145)]();if(!_0x3fad23||_0x3fad23===_0x21fc25(0x13d)){console[_0x21fc25(0xa8)](chalk_1[_0x21fc25(0xd7)][_0x21fc25(0xbe)](_0x21fc25(0x13c))),_0x992081['close']();return;}_0x32628e[_0x21fc25(0xe2)]({'role':_0x21fc25(0xeb),'content':_0x3fad23}),process[_0x21fc25(0x12c)][_0x21fc25(0xdf)](chalk_1['default'][_0x21fc25(0xc8)]('#6C63FF')(_0x21fc25(0x99)));let _0x94f7fe='';try{await(0x0,api_1[_0x21fc25(0x11a)])(_0x32628e,_0x5576ef,_0x247eb3=>{const _0x25f381=_0x21fc25;process[_0x25f381(0x12c)]['write'](chalk_1[_0x25f381(0xd7)][_0x25f381(0x131)](_0x247eb3)),_0x94f7fe+=_0x247eb3;});}catch(_0x54b00f){process[_0x21fc25(0x12c)][_0x21fc25(0xdf)](chalk_1[_0x21fc25(0xd7)][_0x21fc25(0x147)](_0x21fc25(0x97)+_0x54b00f[_0x21fc25(0x105)]));}_0x32628e[_0x21fc25(0xe2)]({'role':_0x21fc25(0xcd),'content':_0x94f7fe}),process[_0x21fc25(0x12c)][_0x21fc25(0xdf)]('\x0a\x0a'),_0x363e23();});};_0x363e23();}),program[a0_0x517ab6(0xb1)](a0_0x517ab6(0xea))[a0_0x517ab6(0x114)](a0_0x517ab6(0xac))['option'](a0_0x517ab6(0x110),a0_0x517ab6(0xb3),a0_0x517ab6(0xe9))['option'](a0_0x517ab6(0x94),a0_0x517ab6(0xce),'4')[a0_0x517ab6(0xc9)](a0_0x517ab6(0x130),a0_0x517ab6(0xa2))['option'](a0_0x517ab6(0x89),a0_0x517ab6(0x117),![])[a0_0x517ab6(0x91)](async(_0x1bbb59,_0x58f569)=>{const _0x3a2769=a0_0x517ab6;(0x0,branding_1['showBanner'])();const _0x580aeb=parseInt(_0x58f569['agents'])||0x4,_0xa276f8=(0x0,license_1[_0x3a2769(0x11b)])(_0x58f569[_0x3a2769(0x132)]?_0x580aeb:0x1);if(!_0xa276f8[_0x3a2769(0x12b)]){console['log'](chalk_1[_0x3a2769(0xd7)]['red'](_0x3a2769(0x8f)+_0xa276f8['reason'])),console[_0x3a2769(0xa8)]('');return;}if(_0x58f569[_0x3a2769(0xc3)]){const _0x1f3bcd=agents_1[_0x3a2769(0x113)][_0x58f569[_0x3a2769(0xc3)]];if(!_0x1f3bcd){console[_0x3a2769(0xa8)](chalk_1[_0x3a2769(0xd7)]['red'](_0x3a2769(0xb9)+_0x58f569[_0x3a2769(0xc3)])),console[_0x3a2769(0xa8)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xbe)](_0x3a2769(0x9c)+Object[_0x3a2769(0xc2)](agents_1[_0x3a2769(0x113)])['join'](',\x20')));return;}console[_0x3a2769(0xa8)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xc8)](_0x3a2769(0x10a))(_0x3a2769(0x12e)+_0x1f3bcd[_0x3a2769(0x10f)]+'\x20'+_0x1f3bcd[_0x3a2769(0x8b)])),console[_0x3a2769(0xa8)](chalk_1['default'][_0x3a2769(0x131)]('\x20\x20'+_0x1bbb59+'\x0a')),process['stdout'][_0x3a2769(0xdf)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xc8)](_0x3a2769(0x10a))(_0x3a2769(0x135)));try{await(0x0,orchestrator_1[_0x3a2769(0x106)])(_0x1f3bcd,_0x1bbb59,'',_0x26fdd3=>process[_0x3a2769(0x12c)][_0x3a2769(0xdf)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0x131)](_0x26fdd3)));}catch(_0x2f4f9){process[_0x3a2769(0x12c)]['write'](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0x147)]('\x0a\x20\x20Error:\x20'+_0x2f4f9[_0x3a2769(0x105)]));}process['stdout'][_0x3a2769(0xdf)]('\x0a\x0a');}else{if(_0x58f569[_0x3a2769(0x132)]){console[_0x3a2769(0xa8)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xc8)]('#6C63FF')(_0x3a2769(0x12a))+chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xbe)](_0x3a2769(0xaa)+_0x580aeb+_0x3a2769(0xde))),console['log'](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0x131)]('\x20\x20'+_0x1bbb59+'\x0a'));let _0x230ffc=0x0;const _0x1b332f=[_0x3a2769(0x12d),'planning',_0x3a2769(0xe5)];try{const {results:_0x1e3eee}=await(0x0,orchestrator_1[_0x3a2769(0x128)])(_0x1bbb59,_0x580aeb,(_0x56e7af,_0x28119d)=>{const _0x50c26c=_0x3a2769;if(_0x56e7af===_0x50c26c(0x12d))console[_0x50c26c(0xa8)](chalk_1[_0x50c26c(0xd7)][_0x50c26c(0xbe)]('\x20\x20📋\x20Coordinator\x20analyzing\x20task...'));else{if(_0x56e7af===_0x50c26c(0xf7))console[_0x50c26c(0xa8)](chalk_1[_0x50c26c(0xd7)][_0x50c26c(0xbe)](_0x50c26c(0xa4)));else _0x56e7af===_0x50c26c(0xe5)&&_0x28119d&&console[_0x50c26c(0xa8)](chalk_1['default'][_0x50c26c(0xbe)]('\x20\x20'+_0x28119d[_0x50c26c(0x10f)]+'\x20\x20'+_0x28119d[_0x50c26c(0x8b)]+_0x50c26c(0x12f)));}});console[_0x3a2769(0xa8)]('\x0a'+chalk_1['default'][_0x3a2769(0xc8)](_0x3a2769(0x10a))(_0x3a2769(0xdd))),console[_0x3a2769(0xa8)]((0x0,orchestrator_1['formatResults'])(_0x1e3eee)),console[_0x3a2769(0xa8)]('');}catch(_0x1f8880){console[_0x3a2769(0xa8)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0x147)](_0x3a2769(0xa3)+_0x1f8880['message']));}}else{console[_0x3a2769(0xa8)](chalk_1['default'][_0x3a2769(0xc8)](_0x3a2769(0x10a))(_0x3a2769(0xd4))+chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xbe)]('\x20[auto\x20mode]')),console[_0x3a2769(0xa8)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0x131)]('\x20\x20'+_0x1bbb59+'\x0a')),process[_0x3a2769(0x12c)][_0x3a2769(0xdf)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0xc8)]('#6C63FF')(_0x3a2769(0xe8)));try{await(0x0,api_1[_0x3a2769(0x11a)])([{'role':_0x3a2769(0xeb),'content':_0x1bbb59}],_0x58f569[_0x3a2769(0x8d)]||(0x0,config_1[_0x3a2769(0x13b)])()[_0x3a2769(0x8d)],_0x3b478a=>process['stdout'][_0x3a2769(0xdf)](chalk_1['default'][_0x3a2769(0x131)](_0x3b478a)));}catch(_0x127355){process[_0x3a2769(0x12c)][_0x3a2769(0xdf)](chalk_1[_0x3a2769(0xd7)][_0x3a2769(0x147)](_0x3a2769(0x97)+_0x127355[_0x3a2769(0x105)]));}process[_0x3a2769(0x12c)][_0x3a2769(0xdf)]('\x0a\x0a');}}}),program[a0_0x517ab6(0xb1)]('agents')['description'](a0_0x517ab6(0xfb))[a0_0x517ab6(0x91)](()=>{const _0x1c64ce=a0_0x517ab6;(0x0,branding_1[_0x1c64ce(0x90)])(),console[_0x1c64ce(0xa8)](chalk_1[_0x1c64ce(0xd7)]['hex']('#6C63FF')(_0x1c64ce(0x10b))),(0x0,agents_1[_0x1c64ce(0x9a)])()[_0x1c64ce(0x136)](_0x186003=>{const _0x307efa=_0x1c64ce;console['log']('\x20\x20'+_0x186003['emoji']+'\x20\x20'+chalk_1[_0x307efa(0xd7)][_0x307efa(0x131)](_0x186003['id'][_0x307efa(0x129)](0x10))+'\x20'+chalk_1[_0x307efa(0xd7)][_0x307efa(0xbe)](_0x186003[_0x307efa(0x8b)]));}),console[_0x1c64ce(0xa8)](''),console[_0x1c64ce(0xa8)](chalk_1[_0x1c64ce(0xd7)][_0x1c64ce(0xbe)]('\x20\x20Usage:\x20dlnk\x20run\x20--agent\x20<id>\x20\x22your\x20task\x22')),console['log'](chalk_1[_0x1c64ce(0xd7)][_0x1c64ce(0xbe)](_0x1c64ce(0x10d))),console[_0x1c64ce(0xa8)]('');}),program[a0_0x517ab6(0xb1)](a0_0x517ab6(0xe1))['description'](a0_0x517ab6(0xd9))[a0_0x517ab6(0xc9)](a0_0x517ab6(0xfa),a0_0x517ab6(0xda))['option'](a0_0x517ab6(0xe3),a0_0x517ab6(0x11f))[a0_0x517ab6(0xc9)](a0_0x517ab6(0xf1),a0_0x517ab6(0x142))[a0_0x517ab6(0x91)](_0x431153=>{const _0x4a1bdc=a0_0x517ab6;(0x0,branding_1[_0x4a1bdc(0x90)])();const _0xa4d302=(0x0,config_1['loadConfig'])();if(_0x431153[_0x4a1bdc(0xd5)]||!_0x431153['set']&&!_0x431153[_0x4a1bdc(0xcb)])console[_0x4a1bdc(0xa8)](chalk_1[_0x4a1bdc(0xd7)]['hex']('#6C63FF')('\x20\x20◆\x20configuration')),console[_0x4a1bdc(0xa8)](chalk_1['default']['gray'](_0x4a1bdc(0xb5)+(0x0,config_1['getConfigPath'])()+'\x0a')),Object[_0x4a1bdc(0x138)](_0xa4d302)[_0x4a1bdc(0x136)](([_0x46843c,_0x547b51])=>{const _0x23644b=_0x4a1bdc;console[_0x23644b(0xa8)]('\x20\x20'+chalk_1[_0x23644b(0xd7)][_0x23644b(0x131)](_0x46843c[_0x23644b(0x129)](0x10))+'\x20'+chalk_1[_0x23644b(0xd7)][_0x23644b(0xbe)](String(_0x547b51)));}),console[_0x4a1bdc(0xa8)]('');else{if(_0x431153[_0x4a1bdc(0xab)]){const [_0xe32d32,..._0x1a5a18]=_0x431153[_0x4a1bdc(0xab)][_0x4a1bdc(0xd6)]('='),_0x222343=_0x1a5a18[_0x4a1bdc(0x11c)]('=');(0x0,config_1[_0x4a1bdc(0xaf)])({[_0xe32d32[_0x4a1bdc(0x145)]()]:_0x222343[_0x4a1bdc(0x145)]()}),console['log'](chalk_1[_0x4a1bdc(0xd7)][_0x4a1bdc(0xfd)](_0x4a1bdc(0x119)+_0xe32d32+_0x4a1bdc(0xdb)+_0x222343+'\x0a'));}else _0x431153['get']&&console[_0x4a1bdc(0xa8)](_0xa4d302[_0x431153[_0x4a1bdc(0xcb)]]??chalk_1[_0x4a1bdc(0xd7)]['red'](_0x4a1bdc(0xa1)));}}),program[a0_0x517ab6(0xb1)](a0_0x517ab6(0xa9))['description'](a0_0x517ab6(0x13e))[a0_0x517ab6(0x91)](()=>{const _0x12f69b=a0_0x517ab6;(0x0,branding_1[_0x12f69b(0x90)])();const _0x255e9a=(0x0,config_1[_0x12f69b(0x13b)])();console['log'](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0xc8)](_0x12f69b(0x10a))(_0x12f69b(0xb0))),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0x131)](_0x12f69b(0x141))),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0xbe)](_0x12f69b(0x95)+process[_0x12f69b(0x115)])),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0xbe)](_0x12f69b(0xec)+os_1[_0x12f69b(0xd7)][_0x12f69b(0x8e)]()+'\x20'+os_1[_0x12f69b(0xd7)][_0x12f69b(0x122)]())),console[_0x12f69b(0xa8)](''),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0x131)](_0x12f69b(0xcc))),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0xbe)]('\x20\x20Endpoint:\x20'+_0x255e9a[_0x12f69b(0xcf)])),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0xbe)](_0x12f69b(0xf9)+_0x255e9a['model'])),console['log'](''),console['log'](chalk_1['default']['white'](_0x12f69b(0xf5))),console['log'](chalk_1['default'][_0x12f69b(0xef)](_0x12f69b(0xb6))),console['log'](chalk_1[_0x12f69b(0xd7)]['gray'](_0x12f69b(0xa7))),console[_0x12f69b(0xa8)](chalk_1[_0x12f69b(0xd7)][_0x12f69b(0xbe)]('\x20\x20Upgrade\x20:\x20https://dlnk.online/pro')),console[_0x12f69b(0xa8)](''),console[_0x12f69b(0xa8)](chalk_1['default'][_0x12f69b(0x131)](_0x12f69b(0x123))),console[_0x12f69b(0xa8)](chalk_1['default']['gray']('\x20\x20Available:\x20'+(0x0,agents_1[_0x12f69b(0x9a)])()[_0x12f69b(0xbb)]+'\x20specialized\x20roles')),console[_0x12f69b(0xa8)]('');}),program[a0_0x517ab6(0xb1)](a0_0x517ab6(0x9d))[a0_0x517ab6(0x114)](a0_0x517ab6(0xc4))[a0_0x517ab6(0xc9)](a0_0x517ab6(0x11d),'Show\x20license\x20status')['option'](a0_0x517ab6(0x120),a0_0x517ab6(0x121))[a0_0x517ab6(0xc9)](a0_0x517ab6(0x9e),'Show\x20usage\x20statistics')[a0_0x517ab6(0x91)](async _0x4a2ba0=>{const _0x5df2a9=a0_0x517ab6;(0x0,branding_1['showBanner'])();if(_0x4a2ba0[_0x5df2a9(0x109)]){console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xc8)]('#6C63FF')(_0x5df2a9(0xd8)));const _0x546118=await(0x0,license_1[_0x5df2a9(0xb4)])(_0x4a2ba0[_0x5df2a9(0x109)]);_0x546118['ok']&&_0x546118[_0x5df2a9(0xbd)]?(console[_0x5df2a9(0xa8)](chalk_1['default']['green'](_0x5df2a9(0xfe))),console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xbe)]('\x20\x20Tier\x20\x20\x20:\x20'+_0x546118['info'][_0x5df2a9(0x103)][_0x5df2a9(0x13a)]())),console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)]['gray'](_0x5df2a9(0x100)+_0x546118[_0x5df2a9(0xbd)][_0x5df2a9(0xa5)])),console[_0x5df2a9(0xa8)](chalk_1['default'][_0x5df2a9(0xbe)](_0x5df2a9(0xd1)+(_0x546118[_0x5df2a9(0xbd)][_0x5df2a9(0xc5)]===0x1869f?_0x5df2a9(0x125):_0x546118[_0x5df2a9(0xbd)][_0x5df2a9(0xc5)])))):console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0x147)](_0x5df2a9(0x101)+_0x546118[_0x5df2a9(0x9b)])),console[_0x5df2a9(0xa8)]('');}else{if(_0x4a2ba0[_0x5df2a9(0xf3)])console[_0x5df2a9(0xa8)](chalk_1['default'][_0x5df2a9(0xc8)](_0x5df2a9(0x10a))('\x20\x20◆\x20usage')),console[_0x5df2a9(0xa8)](chalk_1['default']['gray'](_0x5df2a9(0x98)+(0x0,license_1[_0x5df2a9(0x146)])())),console[_0x5df2a9(0xa8)]('');else{const {valid:_0x3256ca,reason:_0x3aa125,info:_0x1474ec}=(0x0,license_1[_0x5df2a9(0xb2)])(),_0x317e7f=_0x1474ec['tier']===_0x5df2a9(0x107)||_0x1474ec[_0x5df2a9(0x103)]===_0x5df2a9(0x104)?chalk_1[_0x5df2a9(0xd7)]['green']:chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xef)];console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xc8)](_0x5df2a9(0x10a))('\x20\x20◆\x20license\x20status\x0a')),console['log']('\x20\x20'+chalk_1[_0x5df2a9(0xd7)]['white'](_0x5df2a9(0x8c))+'\x20'+chalk_1['default'][_0x5df2a9(0xbe)](_0x1474ec['key']===_0x5df2a9(0x126)?_0x5df2a9(0x140):_0x1474ec[_0x5df2a9(0xae)][_0x5df2a9(0x139)](0x0,0x10)+'...')),console[_0x5df2a9(0xa8)]('\x20\x20'+chalk_1[_0x5df2a9(0xd7)]['white'](_0x5df2a9(0xf0))+'\x20'+_0x317e7f(_0x1474ec[_0x5df2a9(0x103)][_0x5df2a9(0x13a)]())),console[_0x5df2a9(0xa8)]('\x20\x20'+chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0x131)](_0x5df2a9(0x133))+'\x20'+(_0x3256ca?chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xfd)](_0x5df2a9(0x108)):chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0x147)]('✗\x20'+_0x3aa125))),console[_0x5df2a9(0xa8)]('\x20\x20'+chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0x131)](_0x5df2a9(0xe7))+'\x20'+chalk_1['default'][_0x5df2a9(0xbe)](String(_0x1474ec[_0x5df2a9(0xa5)]))),console[_0x5df2a9(0xa8)]('\x20\x20'+chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0x131)](_0x5df2a9(0xc6))+'\x20'+chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xbe)](_0x1474ec['maxReqPerDay']===0x1869f?_0x5df2a9(0x125):String(_0x1474ec['maxReqPerDay']))),console['log']('\x20\x20'+chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0x131)](_0x5df2a9(0xa6))+'\x20'+chalk_1['default'][_0x5df2a9(0xbe)]((0x0,license_1[_0x5df2a9(0x146)])())),(_0x1474ec[_0x5df2a9(0x103)]===_0x5df2a9(0x126)||_0x1474ec['tier']===_0x5df2a9(0xdc))&&(console[_0x5df2a9(0xa8)](''),console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)]['gray'](_0x5df2a9(0xe0))),console[_0x5df2a9(0xa8)](chalk_1[_0x5df2a9(0xd7)][_0x5df2a9(0xbe)](_0x5df2a9(0xd0)))),console[_0x5df2a9(0xa8)]('');}}});process[a0_0x517ab6(0xba)]['length']<=0x2?((0x0,branding_1[a0_0x517ab6(0x90)])(),program[a0_0x517ab6(0xf4)]()):program[a0_0x517ab6(0x112)](process[a0_0x517ab6(0xba)]);function a0_0x5ec1(){const _0x36a8d9=['Bw9KzwW','CgXHDgzVCM0','icdINjCG','C2HVD0jHBM5LCG','ywn0Aw9U','C3LZDgvT','C3LZDgvTuhjVBxb0','lweSic0TywDLBNrZidXUpG','icboB2rLlMPZidOG','y2HHDa','cIaGrxjYB3i6ia','icbuB2rHEsaGoIa','cIaGzgXUAYa+ia','BgLZDefNzw50CW','zxjYB3i','icbbDMfPBgfIBgu6ia','BgLJzw5Zzq','ls11C2fNzq','zgXUAW','nJqZmJG1nKTezwn1wG','kg5VDcbZzxqP','vxnLihnPBMDSzsbZCgvJAwzPyYbHz2vUDa','icbfCNjVCJOG','icdWN5E677IpicbqBgfUBMvYignYzwf0Aw5Nigv4zwn1DgLVBIbWBgfUlI4U','Bwf4qwDLBNrZ','vxnHz2uGidO','icbqBgfUicaGidOGrNjLzsaOntaGCMvXl2rHEsWGmYbHz2vUDhmP','Bg9N','C3rHDhvZ','ifTTyxGG','C2v0','uNvUigfNzw50AwmGDgfZAYb3AxrOiefjihn3yxjT','y2HHBgS','A2v5','C2f2zunVBMzPzW','icdIL4yGC3LZDgvTihn0yxr1CWO','y29TBwfUza','DMfSAwrHDgvmAwnLBNnL','tw9KzwWGkgf1Dg8VzMfZDc9WCM8P','ywn0AxzHDgvmAwnLBNnL','icbqyxrOoIa','icbtDgf0DxmGidOGvhjPywW','mtuYmda2D1zws3f0','lI9VCMnOzxn0CMf0B3i','icbvBMTUB3DUigfNzw50oIa','yxjNDG','BgvUz3rO','lI9Hz2vUDhm','Aw5MBW','z3jHEq','ntC2mtG1nunhzLrADW','y29TBwfUzgvY','CMvHzgXPBMu','A2v5CW','ywDLBNq','twfUywDLihLVDxiGzeXoAYbSAwnLBNnL','Bwf4uMvXugvYrgf5','uMvXl2rHEtO','mJiYnZuWnLHjDufcsG','Agv4','B3b0Aw9U','ntm3ndCXmgjHzgXYra','z2v0','icbdB25MAwC','yxnZAxn0yw50','twf4igfNzw50CYb0BYbZCgf3BG','yxbPx2vUzhbVAw50','icbvC2u6igrSBMSGBgLJzw5ZzsaTlwfJDgL2yxrLidXRzxK+','icbszxeVzgf5oIa','q29TBwfUza','oxrcv0r6za','icdIL4yGCNvU','BgLZDa','C3bSAxq','zgvMyxvSDa','icdIL4yGywn0AxzHDgLUzYbSAwnLBNnLlI4U','twfUywDLigrmtMSGq0XjignVBMzPz3vYyxrPB24','tgLZDcbHBgWGy29UzMLNihzHBhvLCW','id0G','zNjLzq','icdIL4yGCMvZDwX0CWO','igfNzw50C10','D3jPDgu','icbvCgDYywrLihrVifbYBZOGAhr0Chm6lY9KBg5RlM9UBgLUzs9WCM8','y29UzMLN','ChvZAa','ls1ZzxqGpgTLExzHBd4','C3rKAw4','zxHLy3v0Aw5N','ifTTB2rLBdOG','qwDLBNrZidO','icbKBg5Rid4G','yxv0BW','CNvUidX0yxnRpG','DxnLCG','icbqBgf0zM9YBtOG','icdIL4yGy2HHDa','zgvMAw5LuhjVCgvYDhK','EwvSBg93','vgLLCIaGidO','ls1NzxqGpgTLEt4','u2HVDYb2zxjZAw9Uig51BwjLCG','DxnHz2u','AgvSCa','icbmAwnLBNnL','lweSic0TywDLBNqGpgLKpG','CgXHBM5PBMC','iZaWrdrgrG','icbnB2rLBcaGidOG','ls1SAxn0','tgLZDcbHBgWGyxzHAwXHyMXLigfNzw50ihjVBgvZ','ntm1mdCWogn4qvH5zG','z3jLzw4','icdINjmGtgLJzw5ZzsbHy3rPDMf0zwqH','x19LC01VzhvSzq','icbbz2vUDhmGoIa','icdINjCGqwn0AxzHDgLVBIbMywLSzwq6ia','x19PBxbVCNrezwzHDwX0','DgLLCG','zw50zxjWCMLZzq','BwvZC2fNzq','CNvUqwDLBNq','ChjV','4PYtifzHBgLK','ywn0AxzHDgu','iZzdnJngrG','icdIL4yGyxzHAwXHyMXLigfNzw50CWO','lI9ICMfUzgLUzW','icaGicaGicaGzgXUAYbYDw4Gls1ZD2fYBsaIEw91CIb0yxnRiG','quKGqwDLBNqGq0XjiokaLcbqB3DLCMvKigj5igrmtMS','zw1VAMK','lw0Sic0TBw9KzwWGpg1VzgvSpG','ihWGywDLBNq6ia','CgfYC2u','quDftLrFuK9mrvm','zgvZy3jPChrPB24','DMvYC2LVBG','icb5B3uGpIa','vxnLigz1BgWGmtiTywDLBNqGC3DHCM0GBw9Kzq','nvjovwTMDW','icdINjmGu2v0ia','C3rYzwfTq2HHDa','DhjHy2TvC2fNzq','AM9PBG','ls1ZDgf0Dxm','mtiZotGXmNfUr25qDq','u2v0ignVBMzPzYaOA2v5pxzHBhvLkq','ls1Hy3rPDMf0zsa8A2v5pG','qwn0AxzHDguGysbSAwnLBNnLigTLEq','yxjJAa','icbbz2vUDhm','CxvLC3rPB24','vw5SAw1PDgvK','DhjPywW','yMfJA2vUza','CNvUu3DHCM0','CgfKrw5K','icdIL4yGC3DHCM0GBw9Kzq','ywXSB3DLza','C3rKB3v0','yNjPzwzPBMC','icdIL4yG','ihDVCMTPBMCUlI4','ls1Hz2vUDca8Awq+','D2HPDgu','C3DHCM0','u3rHDhvZidO','icbuExbLihLVDxiGBwvZC2fNzs4GiMv4AxqIihrVihf1AxqUcG','ica+ia','zM9YrwfJAa','mJrXrfzpBg0','zw50CMLLCW','C2XPy2u','Dg9vChbLCKnHC2u','Bg9HzenVBMzPzW','cIaGqNLLisdWN5glcG','zxHPDa','u2HVDYbZExn0zw0GC3rHDhvZigfUzcbSAwnLBNnLigLUzM8','lI9HCgK','vhjPywWGkg5VigTLEsK','icbsDw50Aw1L','r2v0ignVBMzPzYb2ywX1zq','sw50zxjHy3rPDMuGquKGy2HHDcb3AxrOihLVDxiGywDLBNq','oxDyweTXBq','DhjPBq','z2v0vxnHz2vtDw1Tyxj5','CMvK','ls1ZD2fYBq','mtrXs0PKru0','BMfTzq','s2v5icaGidO'];a0_0x5ec1=function(){return _0x36a8d9;};return a0_0x5ec1();}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type LicenseTier = 'trial' | 'free' | 'pro' | 'enterprise';
|
|
2
|
+
export interface LicenseInfo {
|
|
3
|
+
key: string;
|
|
4
|
+
tier: LicenseTier;
|
|
5
|
+
email?: string;
|
|
6
|
+
expiresAt?: number;
|
|
7
|
+
maxAgents: number;
|
|
8
|
+
maxReqPerDay: number;
|
|
9
|
+
activatedAt: number;
|
|
10
|
+
lastValidated?: number;
|
|
11
|
+
offline: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface UsageInfo {
|
|
14
|
+
date: string;
|
|
15
|
+
requests: number;
|
|
16
|
+
agentsUsed: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function generateLicenseKey(tier: LicenseTier, email: string): string;
|
|
19
|
+
export declare function isValidKeyFormat(key: string): boolean;
|
|
20
|
+
export declare function loadLicense(): LicenseInfo;
|
|
21
|
+
export declare function saveLicense(info: LicenseInfo): void;
|
|
22
|
+
export declare function activateLicense(key: string): Promise<{
|
|
23
|
+
ok: boolean;
|
|
24
|
+
info?: LicenseInfo;
|
|
25
|
+
error?: string;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function validateLicense(): {
|
|
28
|
+
valid: boolean;
|
|
29
|
+
reason?: string;
|
|
30
|
+
info: LicenseInfo;
|
|
31
|
+
};
|
|
32
|
+
export declare function loadUsage(): UsageInfo;
|
|
33
|
+
export declare function trackUsage(agentsSpawned?: number): {
|
|
34
|
+
allowed: boolean;
|
|
35
|
+
reason?: string;
|
|
36
|
+
};
|
|
37
|
+
export declare function getUsageSummary(): string;
|
|
38
|
+
//# sourceMappingURL=license.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAWD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAW3E;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAYD,wBAAgB,WAAW,IAAI,WAAW,CAOzC;AAcD,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAGnD;AAGD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB/G;AAGD,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAexF;AAQD,wBAAgB,SAAS,IAAI,SAAS,CAQrC;AAED,wBAAgB,UAAU,CAAC,aAAa,GAAE,MAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CA4B3F;AAED,wBAAgB,eAAe,IAAI,MAAM,CAKxC"}
|
package/dist/license.js
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateLicenseKey = generateLicenseKey;
|
|
7
|
+
exports.isValidKeyFormat = isValidKeyFormat;
|
|
8
|
+
exports.loadLicense = loadLicense;
|
|
9
|
+
exports.saveLicense = saveLicense;
|
|
10
|
+
exports.activateLicense = activateLicense;
|
|
11
|
+
exports.validateLicense = validateLicense;
|
|
12
|
+
exports.loadUsage = loadUsage;
|
|
13
|
+
exports.trackUsage = trackUsage;
|
|
14
|
+
exports.getUsageSummary = getUsageSummary;
|
|
15
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const os_1 = __importDefault(require("os"));
|
|
19
|
+
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.dlnk');
|
|
20
|
+
const LICENSE_FILE = path_1.default.join(CONFIG_DIR, 'license.json');
|
|
21
|
+
const USAGE_FILE = path_1.default.join(CONFIG_DIR, 'usage.json');
|
|
22
|
+
// Tier limits
|
|
23
|
+
const TIER_LIMITS = {
|
|
24
|
+
trial: { maxAgents: 3, maxReqPerDay: 50 },
|
|
25
|
+
free: { maxAgents: 3, maxReqPerDay: 50 },
|
|
26
|
+
pro: { maxAgents: 12, maxReqPerDay: 99999 },
|
|
27
|
+
enterprise: { maxAgents: 12, maxReqPerDay: 99999 },
|
|
28
|
+
};
|
|
29
|
+
// Generate a license key (for server-side use)
|
|
30
|
+
function generateLicenseKey(tier, email) {
|
|
31
|
+
const prefix = tier === 'pro' ? 'PRO' : tier === 'enterprise' ? 'ENT' : 'FREE';
|
|
32
|
+
const hash = crypto_1.default
|
|
33
|
+
.createHmac('sha256', 'dlnk-secret-2026')
|
|
34
|
+
.update(`${email}:${tier}:${Date.now()}`)
|
|
35
|
+
.digest('hex')
|
|
36
|
+
.toUpperCase()
|
|
37
|
+
.slice(0, 20);
|
|
38
|
+
// Format: DLNK-PRO-XXXX-XXXX-XXXX
|
|
39
|
+
const parts = hash.match(/.{4}/g).slice(0, 4);
|
|
40
|
+
return `DLNK-${prefix}-${parts.join('-')}`;
|
|
41
|
+
}
|
|
42
|
+
// Validate key format
|
|
43
|
+
function isValidKeyFormat(key) {
|
|
44
|
+
return /^DLNK-(PRO|ENT|FREE|TRIAL)-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}-[A-F0-9]{4}$/.test(key);
|
|
45
|
+
}
|
|
46
|
+
// Detect tier from key prefix
|
|
47
|
+
function tierFromKey(key) {
|
|
48
|
+
if (key.startsWith('DLNK-PRO-'))
|
|
49
|
+
return 'pro';
|
|
50
|
+
if (key.startsWith('DLNK-ENT-'))
|
|
51
|
+
return 'enterprise';
|
|
52
|
+
if (key.startsWith('DLNK-FREE-'))
|
|
53
|
+
return 'free';
|
|
54
|
+
if (key === 'trial')
|
|
55
|
+
return 'trial';
|
|
56
|
+
return 'free';
|
|
57
|
+
}
|
|
58
|
+
// Load license from disk
|
|
59
|
+
function loadLicense() {
|
|
60
|
+
try {
|
|
61
|
+
if (fs_1.default.existsSync(LICENSE_FILE)) {
|
|
62
|
+
return JSON.parse(fs_1.default.readFileSync(LICENSE_FILE, 'utf-8'));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch { }
|
|
66
|
+
return getTrialLicense();
|
|
67
|
+
}
|
|
68
|
+
function getTrialLicense() {
|
|
69
|
+
return {
|
|
70
|
+
key: 'trial',
|
|
71
|
+
tier: 'trial',
|
|
72
|
+
maxAgents: TIER_LIMITS.trial.maxAgents,
|
|
73
|
+
maxReqPerDay: TIER_LIMITS.trial.maxReqPerDay,
|
|
74
|
+
activatedAt: Date.now(),
|
|
75
|
+
offline: false,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
// Save license to disk
|
|
79
|
+
function saveLicense(info) {
|
|
80
|
+
if (!fs_1.default.existsSync(CONFIG_DIR))
|
|
81
|
+
fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
82
|
+
fs_1.default.writeFileSync(LICENSE_FILE, JSON.stringify(info, null, 2));
|
|
83
|
+
}
|
|
84
|
+
// Activate a license key
|
|
85
|
+
async function activateLicense(key) {
|
|
86
|
+
if (key === 'trial') {
|
|
87
|
+
const info = getTrialLicense();
|
|
88
|
+
saveLicense(info);
|
|
89
|
+
return { ok: true, info };
|
|
90
|
+
}
|
|
91
|
+
const tier = tierFromKey(key);
|
|
92
|
+
const limits = TIER_LIMITS[tier];
|
|
93
|
+
const info = {
|
|
94
|
+
key,
|
|
95
|
+
tier,
|
|
96
|
+
maxAgents: limits.maxAgents,
|
|
97
|
+
maxReqPerDay: limits.maxReqPerDay,
|
|
98
|
+
activatedAt: Date.now(),
|
|
99
|
+
lastValidated: Date.now(),
|
|
100
|
+
offline: false,
|
|
101
|
+
};
|
|
102
|
+
saveLicense(info);
|
|
103
|
+
return { ok: true, info };
|
|
104
|
+
}
|
|
105
|
+
// Validate license (check expiry + limits)
|
|
106
|
+
function validateLicense() {
|
|
107
|
+
const info = loadLicense();
|
|
108
|
+
// Check expiry
|
|
109
|
+
if (info.expiresAt && Date.now() > info.expiresAt) {
|
|
110
|
+
return { valid: false, reason: 'License expired', info };
|
|
111
|
+
}
|
|
112
|
+
// Grace period: 7 days offline
|
|
113
|
+
const GRACE_MS = 7 * 24 * 60 * 60 * 1000;
|
|
114
|
+
if (info.lastValidated && Date.now() - info.lastValidated > GRACE_MS) {
|
|
115
|
+
return { valid: false, reason: 'License validation required (offline grace period expired)', info };
|
|
116
|
+
}
|
|
117
|
+
return { valid: true, info };
|
|
118
|
+
}
|
|
119
|
+
// ─── Usage Tracking ────────────────────────────────────────────────────────
|
|
120
|
+
function todayStr() {
|
|
121
|
+
return new Date().toISOString().slice(0, 10);
|
|
122
|
+
}
|
|
123
|
+
function loadUsage() {
|
|
124
|
+
try {
|
|
125
|
+
if (fs_1.default.existsSync(USAGE_FILE)) {
|
|
126
|
+
const data = JSON.parse(fs_1.default.readFileSync(USAGE_FILE, 'utf-8'));
|
|
127
|
+
if (data.date === todayStr())
|
|
128
|
+
return data;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch { }
|
|
132
|
+
return { date: todayStr(), requests: 0, agentsUsed: 0 };
|
|
133
|
+
}
|
|
134
|
+
function trackUsage(agentsSpawned = 1) {
|
|
135
|
+
const { valid, reason, info } = validateLicense();
|
|
136
|
+
if (!valid)
|
|
137
|
+
return { allowed: false, reason };
|
|
138
|
+
const usage = loadUsage();
|
|
139
|
+
if (usage.requests >= info.maxReqPerDay) {
|
|
140
|
+
return {
|
|
141
|
+
allowed: false,
|
|
142
|
+
reason: `Daily limit reached (${info.maxReqPerDay} req/day). Upgrade to Pro for unlimited.`,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
if (agentsSpawned > info.maxAgents) {
|
|
146
|
+
return {
|
|
147
|
+
allowed: false,
|
|
148
|
+
reason: `Agent limit exceeded (max ${info.maxAgents} agents). Upgrade to Pro for 12 agents.`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
// Increment
|
|
152
|
+
usage.requests += 1;
|
|
153
|
+
usage.agentsUsed = Math.max(usage.agentsUsed, agentsSpawned);
|
|
154
|
+
if (!fs_1.default.existsSync(CONFIG_DIR))
|
|
155
|
+
fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
156
|
+
fs_1.default.writeFileSync(USAGE_FILE, JSON.stringify(usage, null, 2));
|
|
157
|
+
return { allowed: true };
|
|
158
|
+
}
|
|
159
|
+
function getUsageSummary() {
|
|
160
|
+
const usage = loadUsage();
|
|
161
|
+
const { info } = validateLicense();
|
|
162
|
+
const remaining = info.maxReqPerDay === 99999 ? '∞' : String(info.maxReqPerDay - usage.requests);
|
|
163
|
+
return `${usage.requests}/${info.maxReqPerDay === 99999 ? '∞' : info.maxReqPerDay} req today | ${remaining} remaining`;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=license.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.js","sourceRoot":"","sources":["../src/license.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AgentRole } from './agents';
|
|
2
|
+
export interface AgentResult {
|
|
3
|
+
agentId: string;
|
|
4
|
+
agentName: string;
|
|
5
|
+
output: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
durationMs: number;
|
|
8
|
+
}
|
|
9
|
+
export interface SwarmPlan {
|
|
10
|
+
task: string;
|
|
11
|
+
agents: string[];
|
|
12
|
+
parallel: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function runAgent(role: AgentRole, task: string, context?: string, onStream?: (chunk: string) => void): Promise<AgentResult>;
|
|
15
|
+
export declare function runSequential(agentIds: string[], task: string, onProgress?: (agent: AgentRole, result: AgentResult) => void): Promise<AgentResult[]>;
|
|
16
|
+
export declare function runParallel(agentIds: string[], task: string, onProgress?: (agent: AgentRole, result: AgentResult) => void): Promise<AgentResult[]>;
|
|
17
|
+
export declare function runSwarm(task: string, maxAgents?: number, onStep?: (step: string, agent?: AgentRole) => void): Promise<{
|
|
18
|
+
plan: string;
|
|
19
|
+
results: AgentResult[];
|
|
20
|
+
}>;
|
|
21
|
+
export declare function formatResults(results: AgentResult[]): string;
|
|
22
|
+
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,UAAU,CAAC;AAGlD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAW,EACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACjC,OAAO,CAAC,WAAW,CAAC,CAiCtB;AAGD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,GAC3D,OAAO,CAAC,WAAW,EAAE,CAAC,CAgBxB;AAGD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,GAC3D,OAAO,CAAC,WAAW,EAAE,CAAC,CAYxB;AAGD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAW,EACtB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,KAAK,IAAI,GACjD,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CA+BnD;AA4BD,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAU5D"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runAgent = runAgent;
|
|
7
|
+
exports.runSequential = runSequential;
|
|
8
|
+
exports.runParallel = runParallel;
|
|
9
|
+
exports.runSwarm = runSwarm;
|
|
10
|
+
exports.formatResults = formatResults;
|
|
11
|
+
const api_1 = require("./api");
|
|
12
|
+
const agents_1 = require("./agents");
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
// Run a single agent on a task
|
|
15
|
+
async function runAgent(role, task, context = '', onStream) {
|
|
16
|
+
const start = Date.now();
|
|
17
|
+
let output = '';
|
|
18
|
+
const messages = [
|
|
19
|
+
{ role: 'system', content: role.systemPrompt },
|
|
20
|
+
{
|
|
21
|
+
role: 'user',
|
|
22
|
+
content: context ? `Context:\n${context}\n\nTask: ${task}` : task,
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
try {
|
|
26
|
+
await (0, api_1.streamChat)(messages, 'auto', (chunk) => {
|
|
27
|
+
output += chunk;
|
|
28
|
+
if (onStream)
|
|
29
|
+
onStream(chunk);
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
agentId: role.id,
|
|
33
|
+
agentName: role.name,
|
|
34
|
+
output,
|
|
35
|
+
durationMs: Date.now() - start,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
return {
|
|
40
|
+
agentId: role.id,
|
|
41
|
+
agentName: role.name,
|
|
42
|
+
output: '',
|
|
43
|
+
error: err.message,
|
|
44
|
+
durationMs: Date.now() - start,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Run agents in sequence, passing output as context to next
|
|
49
|
+
async function runSequential(agentIds, task, onProgress) {
|
|
50
|
+
const results = [];
|
|
51
|
+
let context = '';
|
|
52
|
+
for (const id of agentIds) {
|
|
53
|
+
const role = agents_1.AGENT_ROLES[id];
|
|
54
|
+
if (!role)
|
|
55
|
+
continue;
|
|
56
|
+
const result = await runAgent(role, task, context);
|
|
57
|
+
results.push(result);
|
|
58
|
+
context += `\n[${role.name}]:\n${result.output}\n`;
|
|
59
|
+
if (onProgress)
|
|
60
|
+
onProgress(role, result);
|
|
61
|
+
}
|
|
62
|
+
return results;
|
|
63
|
+
}
|
|
64
|
+
// Run agents in parallel
|
|
65
|
+
async function runParallel(agentIds, task, onProgress) {
|
|
66
|
+
const roles = agentIds
|
|
67
|
+
.map((id) => agents_1.AGENT_ROLES[id])
|
|
68
|
+
.filter(Boolean);
|
|
69
|
+
const promises = roles.map(async (role) => {
|
|
70
|
+
const result = await runAgent(role, task);
|
|
71
|
+
if (onProgress)
|
|
72
|
+
onProgress(role, result);
|
|
73
|
+
return result;
|
|
74
|
+
});
|
|
75
|
+
return Promise.all(promises);
|
|
76
|
+
}
|
|
77
|
+
// Smart swarm: Coordinator → Planner → parallel execution agents
|
|
78
|
+
async function runSwarm(task, maxAgents = 12, onStep) {
|
|
79
|
+
// Step 1: Coordinator creates brief
|
|
80
|
+
if (onStep)
|
|
81
|
+
onStep('briefing');
|
|
82
|
+
const coordinator = agents_1.AGENT_ROLES['coordinator'];
|
|
83
|
+
const briefResult = await runAgent(coordinator, task);
|
|
84
|
+
// Step 2: Planner creates execution plan
|
|
85
|
+
if (onStep)
|
|
86
|
+
onStep('planning');
|
|
87
|
+
const planner = agents_1.AGENT_ROLES['planner'];
|
|
88
|
+
const planResult = await runAgent(planner, task, briefResult.output);
|
|
89
|
+
// Step 3: Determine which agents to use based on task
|
|
90
|
+
const executionAgents = selectAgents(task, maxAgents);
|
|
91
|
+
// Step 4: Run selected agents sequentially with context
|
|
92
|
+
const results = [briefResult, planResult];
|
|
93
|
+
for (const agentId of executionAgents) {
|
|
94
|
+
const role = agents_1.AGENT_ROLES[agentId];
|
|
95
|
+
if (!role)
|
|
96
|
+
continue;
|
|
97
|
+
if (onStep)
|
|
98
|
+
onStep('executing', role);
|
|
99
|
+
const context = results.map((r) => `[${r.agentName}]:\n${r.output}`).join('\n\n');
|
|
100
|
+
const result = await runAgent(role, task, context);
|
|
101
|
+
results.push(result);
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
plan: planResult.output,
|
|
105
|
+
results,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
// Select relevant agents based on task keywords
|
|
109
|
+
function selectAgents(task, max) {
|
|
110
|
+
const lower = task.toLowerCase();
|
|
111
|
+
const scored = [];
|
|
112
|
+
if (lower.match(/api|backend|server|database|db|sql/))
|
|
113
|
+
scored.push({ id: 'backend', score: 3 });
|
|
114
|
+
if (lower.match(/ui|frontend|web|html|css|react|page/))
|
|
115
|
+
scored.push({ id: 'frontend', score: 3 });
|
|
116
|
+
if (lower.match(/ai|llm|prompt|model|gpt|claude/))
|
|
117
|
+
scored.push({ id: 'ai_integrator', score: 3 });
|
|
118
|
+
if (lower.match(/security|auth|vulnerable|hack|safe/))
|
|
119
|
+
scored.push({ id: 'security', score: 3 });
|
|
120
|
+
if (lower.match(/test|qa|quality|bug|error/))
|
|
121
|
+
scored.push({ id: 'qa', score: 2 });
|
|
122
|
+
if (lower.match(/deploy|docker|ci|cd|cloud|infra/))
|
|
123
|
+
scored.push({ id: 'cloud', score: 2 });
|
|
124
|
+
if (lower.match(/data|analytic|insight|metric|chart/))
|
|
125
|
+
scored.push({ id: 'data', score: 2 });
|
|
126
|
+
if (lower.match(/doc|guide|readme|content|write/))
|
|
127
|
+
scored.push({ id: 'writer', score: 2 });
|
|
128
|
+
if (lower.match(/memory|rag|context|knowledge/))
|
|
129
|
+
scored.push({ id: 'memory', score: 2 });
|
|
130
|
+
// Always include backend + qa as default
|
|
131
|
+
if (!scored.find((s) => s.id === 'backend'))
|
|
132
|
+
scored.push({ id: 'backend', score: 1 });
|
|
133
|
+
if (!scored.find((s) => s.id === 'qa'))
|
|
134
|
+
scored.push({ id: 'qa', score: 1 });
|
|
135
|
+
return scored
|
|
136
|
+
.sort((a, b) => b.score - a.score)
|
|
137
|
+
.slice(0, max - 2) // -2 for coordinator + planner already run
|
|
138
|
+
.map((s) => s.id);
|
|
139
|
+
}
|
|
140
|
+
// Format results for display
|
|
141
|
+
function formatResults(results) {
|
|
142
|
+
return results
|
|
143
|
+
.map((r) => {
|
|
144
|
+
const agent = agents_1.AGENT_ROLES[r.agentId];
|
|
145
|
+
const emoji = agent?.emoji ?? '🤖';
|
|
146
|
+
const status = r.error ? chalk_1.default.red('✗') : chalk_1.default.green('✓');
|
|
147
|
+
const duration = chalk_1.default.gray(`${(r.durationMs / 1000).toFixed(1)}s`);
|
|
148
|
+
return `${status} ${emoji} ${chalk_1.default.white(r.agentName)} ${duration}\n${chalk_1.default.gray(r.output.slice(0, 200))}${r.output.length > 200 ? chalk_1.default.gray('...') : ''}`;
|
|
149
|
+
})
|
|
150
|
+
.join('\n\n');
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dlnk/cli",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "AI Agent CLI \u2014 Powered by dLNk",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"dlnk": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"dev": "ts-node src/index.ts",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"package": "pkg dist/index.js --targets node18-linux-x64,node18-win-x64,node18-macos-x64 --output bin/dlnk",
|
|
14
|
+
"obfuscate": "javascript-obfuscator dist/ --output dist-obf/ --compact true --control-flow-flattening true --dead-code-injection true --string-array true --rotate-string-array true"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"ai",
|
|
18
|
+
"agent",
|
|
19
|
+
"cli",
|
|
20
|
+
"dlnk"
|
|
21
|
+
],
|
|
22
|
+
"author": "dLNk",
|
|
23
|
+
"license": "UNLICENSED",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"chalk": "^4.1.2",
|
|
26
|
+
"commander": "^14.0.3",
|
|
27
|
+
"figlet": "^1.11.0",
|
|
28
|
+
"node-fetch": "^3.3.2",
|
|
29
|
+
"ora": "^9.3.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/node": "^25.5.2",
|
|
33
|
+
"javascript-obfuscator": "^5.4.1",
|
|
34
|
+
"pkg": "^5.8.1",
|
|
35
|
+
"ts-node": "^10.9.2",
|
|
36
|
+
"typescript": "^6.0.2"
|
|
37
|
+
},
|
|
38
|
+
"pkg": {
|
|
39
|
+
"targets": [
|
|
40
|
+
"node18-linux-x64",
|
|
41
|
+
"node18-win-x64",
|
|
42
|
+
"node18-macos-x64"
|
|
43
|
+
],
|
|
44
|
+
"outputPath": "bin"
|
|
45
|
+
},
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"registry": "https://registry.npmjs.org",
|
|
48
|
+
"access": "public"
|
|
49
|
+
}
|
|
50
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"lib": ["ES2022", "DOM"],
|
|
6
|
+
"types": ["node"],
|
|
7
|
+
"outDir": "./dist",
|
|
8
|
+
"rootDir": "./src",
|
|
9
|
+
"strict": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"skipLibCheck": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
|
13
|
+
"resolveJsonModule": true,
|
|
14
|
+
"declaration": true,
|
|
15
|
+
"declarationMap": true,
|
|
16
|
+
"sourceMap": true
|
|
17
|
+
},
|
|
18
|
+
"include": ["src/**/*"],
|
|
19
|
+
"exclude": ["node_modules", "dist"]
|
|
20
|
+
}
|