blue-gardener 0.1.1 → 0.1.3
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/agents/orchestrators/blue-app-quality-gate-keeper.md +21 -13
- package/agents/orchestrators/blue-implementation-review-coordinator.md +7 -5
- package/dist/commands/add.d.ts +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +133 -110
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/platform.d.ts +2 -0
- package/dist/commands/platform.d.ts.map +1 -0
- package/dist/commands/platform.js +43 -0
- package/dist/commands/platform.js.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/agents.d.ts +9 -0
- package/dist/lib/agents.d.ts.map +1 -1
- package/dist/lib/agents.js +131 -50
- package/dist/lib/agents.js.map +1 -1
- package/dist/lib/manifest.d.ts +12 -2
- package/dist/lib/manifest.d.ts.map +1 -1
- package/dist/lib/manifest.js +36 -5
- package/dist/lib/manifest.js.map +1 -1
- package/dist/lib/platform.d.ts +12 -1
- package/dist/lib/platform.d.ts.map +1 -1
- package/dist/lib/platform.js +27 -7
- package/dist/lib/platform.js.map +1 -1
- package/dist/ui/menu.d.ts.map +1 -1
- package/dist/ui/menu.js +9 -0
- package/dist/ui/menu.js.map +1 -1
- package/package.json +3 -3
|
@@ -26,14 +26,22 @@ You are a quality assurance orchestrator who ensures code meets standards across
|
|
|
26
26
|
|
|
27
27
|
## Available Specialists
|
|
28
28
|
|
|
29
|
-
| Specialist
|
|
30
|
-
|
|
|
31
|
-
| `@blue-code-reviewer`
|
|
32
|
-
| `@blue-
|
|
33
|
-
| `@blue-
|
|
34
|
-
| `@blue-
|
|
35
|
-
| `@blue-
|
|
36
|
-
| `@blue-
|
|
29
|
+
| Specialist | Audit Type | When to Include |
|
|
30
|
+
| ---------------------------------- | --------------------------------------------------- | ------------------------- |
|
|
31
|
+
| `@blue-frontend-code-reviewer` | Frontend code quality, patterns, best practices | Frontend scopes |
|
|
32
|
+
| `@blue-node-backend-code-reviewer` | Node backend code quality, patterns, best practices | Node backend scopes |
|
|
33
|
+
| `@blue-go-backend-code-reviewer` | Go backend code quality, patterns, best practices | Go backend scopes |
|
|
34
|
+
| `@blue-security-specialist` | Security vulnerabilities, auth flows | Auth, payments, user data |
|
|
35
|
+
| `@blue-performance-specialist` | Bundle size, rendering, caching | User-facing features |
|
|
36
|
+
| `@blue-accessibility-specialist` | WCAG compliance, screen readers | UI components |
|
|
37
|
+
| `@blue-seo-specialist` | Meta tags, structured data | Public pages |
|
|
38
|
+
| `@blue-unit-testing-specialist` | Test coverage assessment | When coverage matters |
|
|
39
|
+
|
|
40
|
+
For code-quality reviews, route by scope:
|
|
41
|
+
|
|
42
|
+
- Frontend UI/client code -> `@blue-frontend-code-reviewer`
|
|
43
|
+
- Node backend code -> `@blue-node-backend-code-reviewer`
|
|
44
|
+
- Go backend code -> `@blue-go-backend-code-reviewer`
|
|
37
45
|
|
|
38
46
|
## Gate Levels
|
|
39
47
|
|
|
@@ -44,7 +52,7 @@ You are a quality assurance orchestrator who ensures code meets standards across
|
|
|
44
52
|
|
|
45
53
|
```
|
|
46
54
|
Delegate to:
|
|
47
|
-
→ @blue-code-reviewer
|
|
55
|
+
→ @blue-frontend-code-reviewer (frontend) or @blue-node-backend-code-reviewer / @blue-go-backend-code-reviewer (backend)
|
|
48
56
|
```
|
|
49
57
|
|
|
50
58
|
### Standard Gate
|
|
@@ -54,7 +62,7 @@ Delegate to:
|
|
|
54
62
|
|
|
55
63
|
```
|
|
56
64
|
Delegate to:
|
|
57
|
-
→ @blue-code-reviewer
|
|
65
|
+
→ @blue-frontend-code-reviewer (frontend) or @blue-node-backend-code-reviewer / @blue-go-backend-code-reviewer (backend)
|
|
58
66
|
→ @blue-performance-specialist
|
|
59
67
|
→ @blue-accessibility-specialist
|
|
60
68
|
```
|
|
@@ -66,7 +74,7 @@ Delegate to:
|
|
|
66
74
|
|
|
67
75
|
```
|
|
68
76
|
Delegate to:
|
|
69
|
-
→ @blue-code-reviewer
|
|
77
|
+
→ @blue-frontend-code-reviewer (frontend) or @blue-node-backend-code-reviewer / @blue-go-backend-code-reviewer (backend)
|
|
70
78
|
→ @blue-security-specialist
|
|
71
79
|
→ @blue-performance-specialist
|
|
72
80
|
→ @blue-accessibility-specialist
|
|
@@ -80,7 +88,7 @@ Delegate to:
|
|
|
80
88
|
|
|
81
89
|
```
|
|
82
90
|
Delegate to:
|
|
83
|
-
→ @blue-code-reviewer
|
|
91
|
+
→ @blue-frontend-code-reviewer (frontend) or @blue-node-backend-code-reviewer / @blue-go-backend-code-reviewer (backend)
|
|
84
92
|
→ @blue-security-specialist
|
|
85
93
|
```
|
|
86
94
|
|
|
@@ -265,7 +273,7 @@ User: "Run quality gate on the new checkout flow before release"
|
|
|
265
273
|
→ Gate Level: Full (or Security-Focused minimum)
|
|
266
274
|
|
|
267
275
|
2. Recommends delegation:
|
|
268
|
-
→ "@blue-code-reviewer: Review checkout components and hooks"
|
|
276
|
+
→ "@blue-frontend-code-reviewer: Review checkout components and hooks"
|
|
269
277
|
→ "@blue-security-specialist: Audit payment form, token handling, input validation"
|
|
270
278
|
→ "@blue-performance-specialist: Check bundle impact, rendering performance"
|
|
271
279
|
→ "@blue-accessibility-specialist: Verify form accessibility, error announcements"
|
|
@@ -255,11 +255,13 @@ Review coordinator:
|
|
|
255
255
|
|
|
256
256
|
### Backend Issues
|
|
257
257
|
|
|
258
|
-
| Issue Type
|
|
259
|
-
|
|
|
260
|
-
| Node.js/TypeScript backend
|
|
261
|
-
| Go backend
|
|
262
|
-
| Database schema/queries
|
|
258
|
+
| Issue Type | Route To |
|
|
259
|
+
| ------------------------------------ | ---------------------------------------------- |
|
|
260
|
+
| Node.js/TypeScript backend | `@blue-node-backend-implementation-specialist` |
|
|
261
|
+
| Go backend | `@blue-go-backend-implementation-specialist` |
|
|
262
|
+
| Database schema/queries (relational) | `@blue-relational-database-specialist` |
|
|
263
|
+
| Database schema/queries (document) | `@blue-document-database-specialist` |
|
|
264
|
+
| Database schema/queries (key-value) | `@blue-keyvalue-database-specialist` |
|
|
263
265
|
|
|
264
266
|
### Cross-Cutting Issues
|
|
265
267
|
|
package/dist/commands/add.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAmBA,wBAAsB,UAAU,CAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAqPf"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { checkbox, select } from "@inquirer/prompts";
|
|
3
|
-
import { getAvailableAgents, installAgent, getInstalledAgents, getCategories, getAgentsByCategory, } from "../lib/agents.js";
|
|
3
|
+
import { getAvailableAgents, installAgent, getInstalledAgents, getCategories, getAgentsByCategory, addPlatformAndSyncAgents, } from "../lib/agents.js";
|
|
4
4
|
import { getProfiles, getProfile } from "../lib/profiles.js";
|
|
5
|
-
import { detectPlatform, promptForPlatform, getPlatformInfo, } from "../lib/platform.js";
|
|
6
|
-
import { readManifest,
|
|
5
|
+
import { detectPlatform, promptForPlatform, getPlatformInfo, parsePlatform, } from "../lib/platform.js";
|
|
6
|
+
import { readManifest, getEnabledPlatforms } from "../lib/manifest.js";
|
|
7
7
|
export async function addCommand(agents, options) {
|
|
8
8
|
const availableAgents = getAvailableAgents();
|
|
9
9
|
const installedAgents = getInstalledAgents();
|
|
@@ -14,135 +14,158 @@ export async function addCommand(agents, options) {
|
|
|
14
14
|
}
|
|
15
15
|
// Filter out already installed agents
|
|
16
16
|
const notInstalled = availableAgents.filter((a) => !installedNames.includes(a.name));
|
|
17
|
-
if (notInstalled.length === 0) {
|
|
17
|
+
if (notInstalled.length === 0 && !options?.platform) {
|
|
18
18
|
console.log(chalk.green("All available agents are already installed."));
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
let agentsToInstall;
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
const requested = profile.agentNames;
|
|
29
|
-
const known = requested.filter((name) => availableAgents.some((a) => a.name === name));
|
|
30
|
-
const missing = requested.filter((name) => !availableAgents.some((a) => a.name === name));
|
|
31
|
-
if (missing.length > 0) {
|
|
32
|
-
console.log(chalk.yellow(`Profile contains unknown agents (skipping): ${missing.join(", ")}`));
|
|
33
|
-
}
|
|
34
|
-
agentsToInstall = known.filter((name) => notInstalled.some((a) => a.name === name));
|
|
35
|
-
const alreadyInstalled = known.filter((name) => installedNames.includes(name));
|
|
36
|
-
if (alreadyInstalled.length > 0) {
|
|
37
|
-
console.log(chalk.dim(`Already installed (profile): ${alreadyInstalled.join(", ")}`));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
else if (agents && agents.length > 0) {
|
|
41
|
-
// Use provided agent names
|
|
42
|
-
agentsToInstall = agents.filter((name) => notInstalled.some((a) => a.name === name));
|
|
43
|
-
const invalid = agents.filter((name) => !availableAgents.some((a) => a.name === name));
|
|
44
|
-
if (invalid.length > 0) {
|
|
45
|
-
console.log(chalk.yellow(`Unknown agents: ${invalid.join(", ")}`));
|
|
46
|
-
}
|
|
47
|
-
const alreadyInstalled = agents.filter((name) => installedNames.includes(name));
|
|
48
|
-
if (alreadyInstalled.length > 0) {
|
|
49
|
-
console.log(chalk.yellow(`Already installed: ${alreadyInstalled.join(", ")}`));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// Interactive selection: profile vs category
|
|
54
|
-
const installMode = await select({
|
|
55
|
-
message: "Install agents by:",
|
|
56
|
-
choices: [
|
|
57
|
-
{
|
|
58
|
-
name: "Profile preset (recommended)",
|
|
59
|
-
value: "profile",
|
|
60
|
-
description: "Install a curated set of agents for a project type",
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
name: "Category browse",
|
|
64
|
-
value: "category",
|
|
65
|
-
description: "Pick individual agents from a category",
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
});
|
|
69
|
-
if (installMode === "profile") {
|
|
70
|
-
const profiles = getProfiles();
|
|
71
|
-
const selectedProfileId = await select({
|
|
72
|
-
message: "Select a profile:",
|
|
73
|
-
choices: profiles.map((p) => ({
|
|
74
|
-
name: `${p.name} (${p.agentNames.length} agents)`,
|
|
75
|
-
value: p.id,
|
|
76
|
-
description: p.description,
|
|
77
|
-
})),
|
|
78
|
-
});
|
|
79
|
-
const profile = getProfile(selectedProfileId);
|
|
80
|
-
const profileAgents = profile.agentNames
|
|
81
|
-
.map((name) => availableAgents.find((a) => a.name === name))
|
|
82
|
-
.filter(Boolean)
|
|
83
|
-
.filter((a) => notInstalled.some((na) => na.name === a.name));
|
|
84
|
-
if (profileAgents.length === 0) {
|
|
85
|
-
console.log(chalk.green(`All agents in "${profile.name}" are already installed.`));
|
|
21
|
+
let agentsToInstall = [];
|
|
22
|
+
if (notInstalled.length > 0) {
|
|
23
|
+
if (options?.profile) {
|
|
24
|
+
const profile = getProfile(options.profile);
|
|
25
|
+
if (!profile) {
|
|
26
|
+
console.log(chalk.yellow(`Unknown profile: ${options.profile}. Run "npx blue-gardener profiles" to see available profiles.`));
|
|
86
27
|
return;
|
|
87
28
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
29
|
+
const requested = profile.agentNames;
|
|
30
|
+
const known = requested.filter((name) => availableAgents.some((a) => a.name === name));
|
|
31
|
+
const missing = requested.filter((name) => !availableAgents.some((a) => a.name === name));
|
|
32
|
+
if (missing.length > 0) {
|
|
33
|
+
console.log(chalk.yellow(`Profile contains unknown agents (skipping): ${missing.join(", ")}`));
|
|
34
|
+
}
|
|
35
|
+
agentsToInstall = known.filter((name) => notInstalled.some((a) => a.name === name));
|
|
36
|
+
const alreadyInstalled = known.filter((name) => installedNames.includes(name));
|
|
37
|
+
if (alreadyInstalled.length > 0) {
|
|
38
|
+
console.log(chalk.dim(`Already installed (profile): ${alreadyInstalled.join(", ")}`));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else if (agents && agents.length > 0) {
|
|
42
|
+
// Use provided agent names
|
|
43
|
+
agentsToInstall = agents.filter((name) => notInstalled.some((a) => a.name === name));
|
|
44
|
+
const invalid = agents.filter((name) => !availableAgents.some((a) => a.name === name));
|
|
45
|
+
if (invalid.length > 0) {
|
|
46
|
+
console.log(chalk.yellow(`Unknown agents: ${invalid.join(", ")}`));
|
|
47
|
+
}
|
|
48
|
+
const alreadyInstalled = agents.filter((name) => installedNames.includes(name));
|
|
49
|
+
if (alreadyInstalled.length > 0) {
|
|
50
|
+
console.log(chalk.yellow(`Already installed: ${alreadyInstalled.join(", ")}`));
|
|
51
|
+
}
|
|
96
52
|
}
|
|
97
53
|
else {
|
|
98
|
-
//
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
54
|
+
// Interactive selection: profile vs category
|
|
55
|
+
const installMode = await select({
|
|
56
|
+
message: "Install agents by:",
|
|
57
|
+
choices: [
|
|
58
|
+
{
|
|
59
|
+
name: "Profile preset (recommended)",
|
|
60
|
+
value: "profile",
|
|
61
|
+
description: "Install a curated set of agents for a project type",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: "Category browse",
|
|
65
|
+
value: "category",
|
|
66
|
+
description: "Pick individual agents from a category",
|
|
67
|
+
},
|
|
68
|
+
],
|
|
107
69
|
});
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
70
|
+
if (installMode === "profile") {
|
|
71
|
+
const profiles = getProfiles();
|
|
72
|
+
const selectedProfileId = await select({
|
|
73
|
+
message: "Select a profile:",
|
|
74
|
+
choices: profiles.map((p) => ({
|
|
75
|
+
name: `${p.name} (${p.agentNames.length} agents)`,
|
|
76
|
+
value: p.id,
|
|
77
|
+
description: p.description,
|
|
78
|
+
})),
|
|
79
|
+
});
|
|
80
|
+
const profile = getProfile(selectedProfileId);
|
|
81
|
+
const profileAgents = profile.agentNames
|
|
82
|
+
.map((name) => availableAgents.find((a) => a.name === name))
|
|
83
|
+
.filter(Boolean)
|
|
84
|
+
.filter((a) => notInstalled.some((na) => na.name === a.name));
|
|
85
|
+
if (profileAgents.length === 0) {
|
|
86
|
+
console.log(chalk.green(`All agents in "${profile.name}" are already installed.`));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
agentsToInstall = await checkbox({
|
|
90
|
+
message: `Select agents to install (${profile.name}):`,
|
|
91
|
+
choices: profileAgents.map((agent) => ({
|
|
92
|
+
name: agent.name,
|
|
93
|
+
value: agent.name,
|
|
94
|
+
description: agent.description,
|
|
95
|
+
})),
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// Category browse
|
|
100
|
+
const categories = getCategories();
|
|
101
|
+
// Step 1: Select category
|
|
102
|
+
const selectedCategory = await select({
|
|
103
|
+
message: "Select a category:",
|
|
104
|
+
choices: categories.map((cat) => ({
|
|
105
|
+
name: `${cat.name} (${cat.count} ${cat.count === 1 ? "agent" : "agents"})`,
|
|
106
|
+
value: cat.id,
|
|
107
|
+
})),
|
|
108
|
+
});
|
|
109
|
+
// Step 2: Select agents from category
|
|
110
|
+
const categoryAgents = getAgentsByCategory(selectedCategory).filter((a) => notInstalled.some((na) => na.name === a.name));
|
|
111
|
+
if (categoryAgents.length === 0) {
|
|
112
|
+
console.log(chalk.green(`All agents in ${selectedCategory} category are already installed.`));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
agentsToInstall = await checkbox({
|
|
116
|
+
message: `Select agents to install (${selectedCategory}):`,
|
|
117
|
+
choices: categoryAgents.map((agent) => ({
|
|
118
|
+
name: agent.name,
|
|
119
|
+
value: agent.name,
|
|
120
|
+
description: agent.description,
|
|
121
|
+
})),
|
|
122
|
+
});
|
|
113
123
|
}
|
|
114
|
-
agentsToInstall = await checkbox({
|
|
115
|
-
message: `Select agents to install (${selectedCategory}):`,
|
|
116
|
-
choices: categoryAgents.map((agent) => ({
|
|
117
|
-
name: agent.name,
|
|
118
|
-
value: agent.name,
|
|
119
|
-
description: agent.description,
|
|
120
|
-
})),
|
|
121
|
-
});
|
|
122
124
|
}
|
|
123
125
|
}
|
|
124
|
-
if (agentsToInstall.length === 0) {
|
|
126
|
+
if (agentsToInstall.length === 0 && !options?.platform) {
|
|
125
127
|
console.log(chalk.yellow("No agents selected."));
|
|
126
128
|
return;
|
|
127
129
|
}
|
|
128
|
-
// Step 3:
|
|
130
|
+
// Step 3: Ensure platform configuration exists and optionally add a platform
|
|
129
131
|
let manifest = readManifest();
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
132
|
+
if (options?.platform) {
|
|
133
|
+
const requestedPlatform = parsePlatform(options.platform);
|
|
134
|
+
if (!requestedPlatform) {
|
|
135
|
+
console.log(chalk.red(`Unknown platform: ${options.platform}`));
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const addResult = addPlatformAndSyncAgents(requestedPlatform);
|
|
139
|
+
if (addResult.alreadyEnabled) {
|
|
140
|
+
const info = getPlatformInfo(requestedPlatform);
|
|
141
|
+
console.log(chalk.dim(`${info.name} is already enabled.`));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const info = getPlatformInfo(requestedPlatform);
|
|
145
|
+
console.log(chalk.green(`✓ Added platform: ${info.name}`));
|
|
146
|
+
if (addResult.synced.length > 0) {
|
|
147
|
+
console.log(chalk.green(`✓ Synced ${addResult.synced.length} existing agent(s) to ${info.name}`));
|
|
148
|
+
}
|
|
149
|
+
if (addResult.failed.length > 0) {
|
|
150
|
+
console.log(chalk.yellow(`Could not sync ${addResult.failed.length} agent(s) to ${info.name}`));
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
manifest = readManifest() ?? manifest;
|
|
154
|
+
}
|
|
155
|
+
if (getEnabledPlatforms(manifest).length === 0) {
|
|
156
|
+
let platform = detectPlatform();
|
|
157
|
+
// First time - prompt for platform if detection fails
|
|
133
158
|
console.log(chalk.cyan("\nWelcome to Blue Gardener! Let's set up your platform configuration."));
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if (manifest) {
|
|
137
|
-
manifest = updatePlatform(manifest, platform);
|
|
138
|
-
writeManifest(manifest);
|
|
159
|
+
if (!platform) {
|
|
160
|
+
platform = await promptForPlatform();
|
|
139
161
|
}
|
|
162
|
+
addPlatformAndSyncAgents(platform);
|
|
140
163
|
const platformInfo = getPlatformInfo(platform);
|
|
141
164
|
console.log(chalk.green(`\n✓ Platform set to: ${platformInfo.name}\n`));
|
|
142
165
|
}
|
|
143
166
|
// Step 4: Install selected agents
|
|
144
167
|
for (const name of agentsToInstall) {
|
|
145
|
-
const success = installAgent(name
|
|
168
|
+
const success = installAgent(name);
|
|
146
169
|
if (success) {
|
|
147
170
|
console.log(chalk.green(`✓ Installed ${name}`));
|
|
148
171
|
}
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiB,EACjB,OAAiD;IAEjD,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,sCAAsC;IACtC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CACzC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CACxC,CAAC;IAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,IAAI,eAAe,GAAa,EAAE,CAAC;IAEnC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,oBAAoB,OAAO,CAAC,OAAO,+DAA+D,CACnG,CACF,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;YACrC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAC7C,CAAC;YACF,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAC9B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CACxD,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,+CAA+C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CACF,CAAC;YACJ,CAAC;YAED,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAC1C,CAAC;YAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7C,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9B,CAAC;YACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,gCAAgC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9D,CACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,2BAA2B;YAC3B,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAC1C,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CACxD,CAAC;YACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC9B,CAAC;YACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,sBAAsB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAClE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6CAA6C;YAC7C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;gBAC/B,OAAO,EAAE,oBAAoB;gBAC7B,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,8BAA8B;wBACpC,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE,oDAAoD;qBAClE;oBACD;wBACE,IAAI,EAAE,iBAAiB;wBACvB,KAAK,EAAE,UAAU;wBACjB,WAAW,EAAE,wCAAwC;qBACtD;iBACF;aACF,CAAC,CAAC;YAEH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;gBAC/B,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC;oBACrC,OAAO,EAAE,mBAAmB;oBAC5B,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5B,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,UAAU;wBACjD,KAAK,EAAE,CAAC,CAAC,EAAE;wBACX,WAAW,EAAE,CAAC,CAAC,WAAW;qBAC3B,CAAC,CAAC;iBACJ,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,UAAU,CAAC,iBAAiB,CAAE,CAAC;gBAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU;qBACrC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;qBAC3D,MAAM,CAAC,OAAO,CAAC;qBACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEjE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,kBAAkB,OAAO,CAAC,IAAI,0BAA0B,CACzD,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,eAAe,GAAG,MAAM,QAAQ,CAAC;oBAC/B,OAAO,EAAE,6BAA6B,OAAO,CAAC,IAAI,IAAI;oBACtD,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACrC,IAAI,EAAE,KAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,KAAM,CAAC,IAAI;wBAClB,WAAW,EAAE,KAAM,CAAC,WAAW;qBAChC,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,kBAAkB;gBAClB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;gBAEnC,0BAA0B;gBAC1B,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC;oBACpC,OAAO,EAAE,oBAAoB;oBAC7B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAChC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAG;wBAC1E,KAAK,EAAE,GAAG,CAAC,EAAE;qBACd,CAAC,CAAC;iBACJ,CAAC,CAAC;gBAEH,sCAAsC;gBACtC,MAAM,cAAc,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACjE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CACrD,CAAC;gBAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,iBAAiB,gBAAgB,kCAAkC,CACpE,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,eAAe,GAAG,MAAM,QAAQ,CAAC;oBAC/B,OAAO,EAAE,6BAA6B,gBAAgB,IAAI;oBAC1D,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACtC,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,KAAK,CAAC,IAAI;wBACjB,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC/B,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;IAE9B,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,MAAM,iBAAiB,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,wBAAwB,CAAC,iBAAiB,CAAC,CAAC;QAC9D,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3D,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,YAAY,SAAS,CAAC,MAAM,CAAC,MAAM,yBAAyB,IAAI,CAAC,IAAI,EAAE,CACxE,CACF,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,kBAAkB,SAAS,CAAC,MAAM,CAAC,MAAM,gBAAgB,IAAI,CAAC,IAAI,EAAE,CACrE,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,QAAQ,GAAG,YAAY,EAAE,IAAI,QAAQ,CAAC;IACxC,CAAC;IAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;QAEhC,sDAAsD;QACtD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,uEAAuE,CACxE,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACvC,CAAC;QAED,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAEnC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/commands/platform.ts"],"names":[],"mappings":"AAYA,wBAAsB,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD5E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { addPlatformAndSyncAgents } from "../lib/agents.js";
|
|
3
|
+
import { readManifest, getEnabledPlatforms } from "../lib/manifest.js";
|
|
4
|
+
import { PLATFORMS, getPlatformInfo, getAvailablePlatformsToAdd, parsePlatform, promptForPlatform, } from "../lib/platform.js";
|
|
5
|
+
export async function platformAddCommand(platformArg) {
|
|
6
|
+
const manifest = readManifest();
|
|
7
|
+
const enabledPlatforms = getEnabledPlatforms(manifest);
|
|
8
|
+
let targetPlatform;
|
|
9
|
+
if (platformArg) {
|
|
10
|
+
const parsed = parsePlatform(platformArg);
|
|
11
|
+
if (!parsed) {
|
|
12
|
+
console.log(chalk.red(`Unknown platform: ${platformArg}`));
|
|
13
|
+
console.log(chalk.dim(`Available: ${PLATFORMS.map((platform) => platform.id).join(", ")}`));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
targetPlatform = parsed;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
const availableToAdd = getAvailablePlatformsToAdd(enabledPlatforms);
|
|
20
|
+
if (availableToAdd.length === 0) {
|
|
21
|
+
console.log(chalk.green("All platforms are already enabled."));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
targetPlatform = await promptForPlatform({
|
|
25
|
+
exclude: enabledPlatforms,
|
|
26
|
+
message: "Which platform would you like to add?",
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const result = addPlatformAndSyncAgents(targetPlatform);
|
|
30
|
+
const platformInfo = getPlatformInfo(targetPlatform);
|
|
31
|
+
if (result.alreadyEnabled) {
|
|
32
|
+
console.log(chalk.yellow(`${platformInfo.name} is already enabled.`));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
console.log(chalk.green(`✓ Added platform: ${platformInfo.name}`));
|
|
36
|
+
if (result.synced.length > 0) {
|
|
37
|
+
console.log(chalk.green(`✓ Synced ${result.synced.length} existing agent(s) to ${platformInfo.name}`));
|
|
38
|
+
}
|
|
39
|
+
if (result.failed.length > 0) {
|
|
40
|
+
console.log(chalk.yellow(`Could not sync ${result.failed.length} agent(s) to ${platformInfo.name}: ${result.failed.join(", ")}`));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/commands/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EACL,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,aAAa,EACb,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAoB;IAC3D,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAEvD,IAAI,cAAwB,CAAC;IAC7B,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,cAAc,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpE,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,cAAc,GAAG,MAAM,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,cAAc,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QACD,cAAc,GAAG,MAAM,iBAAiB,CAAC;YACvC,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,uCAAuC;SACjD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAErD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEnE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CACT,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,yBAAyB,YAAY,CAAC,IAAI,EAAE,CAC7E,CACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,kBAAkB,MAAM,CAAC,MAAM,CAAC,MAAM,gBAAgB,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvG,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { syncCommand } from "./commands/sync.js";
|
|
|
10
10
|
import { repairCommand } from "./commands/repair.js";
|
|
11
11
|
import { searchCommand } from "./commands/search.js";
|
|
12
12
|
import { profilesCommand } from "./commands/profiles.js";
|
|
13
|
+
import { platformAddCommand } from "./commands/platform.js";
|
|
13
14
|
program
|
|
14
15
|
.name("blue-gardener")
|
|
15
16
|
.description("Manage AI coding agents across multiple platforms")
|
|
@@ -19,6 +20,7 @@ program
|
|
|
19
20
|
.command("add [agents...]")
|
|
20
21
|
.description("Add one or more agents to your project")
|
|
21
22
|
.option("-p, --profile <profileId>", "Install a preset profile of agents")
|
|
23
|
+
.option("--platform <platform>", "Enable a platform and sync existing agents before install")
|
|
22
24
|
.action((agents, options) => addCommand(agents, options));
|
|
23
25
|
program
|
|
24
26
|
.command("remove [agents...]")
|
|
@@ -45,5 +47,9 @@ program
|
|
|
45
47
|
.command("profiles")
|
|
46
48
|
.description("List available agent install profiles")
|
|
47
49
|
.action(profilesCommand);
|
|
50
|
+
program
|
|
51
|
+
.command("platform add [platform]")
|
|
52
|
+
.description("Add a platform and sync existing agents to it")
|
|
53
|
+
.action(platformAddCommand);
|
|
48
54
|
program.parse();
|
|
49
55
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,2DAA2D;AAC3D,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,2DAA2D;AAC3D,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,mDAAmD,CAAC;KAChE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;AAEnC,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,2BAA2B,EAAE,oCAAoC,CAAC;KACzE,MAAM,CACL,uBAAuB,EACvB,2DAA2D,CAC5D;KACA,MAAM,CACL,CAAC,MAAgB,EAAE,OAAgD,EAAE,EAAE,CACrE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAC9B,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC;KACrD,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,eAAe,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/lib/agents.d.ts
CHANGED
|
@@ -44,6 +44,15 @@ export declare function syncAgents(): {
|
|
|
44
44
|
synced: string[];
|
|
45
45
|
failed: string[];
|
|
46
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Add a platform and sync existing installed agents to it.
|
|
49
|
+
*/
|
|
50
|
+
export declare function addPlatformAndSyncAgents(platform: Platform): {
|
|
51
|
+
added: boolean;
|
|
52
|
+
alreadyEnabled: boolean;
|
|
53
|
+
synced: string[];
|
|
54
|
+
failed: string[];
|
|
55
|
+
};
|
|
47
56
|
/**
|
|
48
57
|
* Find orphaned blue-* agent files that exist in project but aren't in manifest
|
|
49
58
|
*/
|
package/dist/lib/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,QAAQ,EAAkB,MAAM,eAAe,CAAC;AAiDzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,YAAY,EAAE,CAgC9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAGjE;AA6DD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAoChD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAKhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAsC5E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CA8BtD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAoEnE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CA8DA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAwBhD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAsC1E"}
|
package/dist/lib/agents.js
CHANGED
|
@@ -2,7 +2,7 @@ import fs from "fs";
|
|
|
2
2
|
import path from "path";
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import { getBundledAgentsDir, getProjectAgentsDir, ensureProjectAgentsDir, } from "./paths.js";
|
|
5
|
-
import { readManifest, writeManifest, createManifest, addAgentToManifest, removeAgentFromManifest, getInstalledAgentNames,
|
|
5
|
+
import { readManifest, writeManifest, createManifest, addAgentToManifest, removeAgentFromManifest, getInstalledAgentNames, addPlatformToManifest, getEnabledPlatforms, } from "./manifest.js";
|
|
6
6
|
import { detectPlatform } from "./platform.js";
|
|
7
7
|
import { getAdapter } from "./adapters/index.js";
|
|
8
8
|
// Read version from package.json
|
|
@@ -26,6 +26,20 @@ function debugLog(message) {
|
|
|
26
26
|
console.log(chalk.gray(`[debug] ${message}`));
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
function resolvePlatformsFromManifest(manifest) {
|
|
30
|
+
const enabled = getEnabledPlatforms(manifest);
|
|
31
|
+
if (enabled.length > 0) {
|
|
32
|
+
return enabled;
|
|
33
|
+
}
|
|
34
|
+
const detected = detectPlatform();
|
|
35
|
+
if (detected) {
|
|
36
|
+
return [detected];
|
|
37
|
+
}
|
|
38
|
+
return ["cursor"];
|
|
39
|
+
}
|
|
40
|
+
function dedupePlatforms(platforms) {
|
|
41
|
+
return Array.from(new Set(platforms));
|
|
42
|
+
}
|
|
29
43
|
/**
|
|
30
44
|
* Get list of all categories with agent counts
|
|
31
45
|
*/
|
|
@@ -164,27 +178,27 @@ export function installAgent(agentName, platform) {
|
|
|
164
178
|
if (!agent) {
|
|
165
179
|
return false;
|
|
166
180
|
}
|
|
167
|
-
//
|
|
181
|
+
// Resolve target platform(s)
|
|
168
182
|
let manifest = readManifest();
|
|
169
|
-
const
|
|
170
|
-
//
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
183
|
+
const targetPlatforms = dedupePlatforms(platform ? [platform] : resolvePlatformsFromManifest(manifest));
|
|
184
|
+
// Install agent across all target platforms
|
|
185
|
+
for (const targetPlatform of targetPlatforms) {
|
|
186
|
+
const adapter = getAdapter(targetPlatform);
|
|
187
|
+
ensureProjectAgentsDir(targetPlatform);
|
|
188
|
+
try {
|
|
189
|
+
adapter.installAgent(agentName, agent);
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
debugLog(`Failed to install ${agentName} on ${targetPlatform}: ${error}`);
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
181
195
|
}
|
|
182
196
|
// Update manifest
|
|
183
197
|
if (!manifest) {
|
|
184
|
-
manifest = createManifest(PACKAGE_VERSION
|
|
198
|
+
manifest = createManifest(PACKAGE_VERSION);
|
|
185
199
|
}
|
|
186
|
-
|
|
187
|
-
manifest =
|
|
200
|
+
for (const targetPlatform of targetPlatforms) {
|
|
201
|
+
manifest = addPlatformToManifest(manifest, targetPlatform);
|
|
188
202
|
}
|
|
189
203
|
manifest = addAgentToManifest(manifest, agentName, PACKAGE_VERSION);
|
|
190
204
|
writeManifest(manifest);
|
|
@@ -198,19 +212,21 @@ export function removeAgent(agentName) {
|
|
|
198
212
|
if (!manifest || !manifest.agents[agentName]) {
|
|
199
213
|
return false;
|
|
200
214
|
}
|
|
201
|
-
//
|
|
202
|
-
const
|
|
203
|
-
const adapter = getAdapter(platform);
|
|
215
|
+
// Remove from all enabled platforms
|
|
216
|
+
const platforms = resolvePlatformsFromManifest(manifest);
|
|
204
217
|
// Find the agent info
|
|
205
218
|
const availableAgents = getAvailableAgents();
|
|
206
219
|
const agent = availableAgents.find((a) => a.name === agentName);
|
|
207
220
|
if (agent) {
|
|
208
|
-
|
|
209
|
-
adapter
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
221
|
+
for (const platform of platforms) {
|
|
222
|
+
const adapter = getAdapter(platform);
|
|
223
|
+
try {
|
|
224
|
+
adapter.removeAgent(agentName, agent);
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
debugLog(`Failed to remove ${agentName} from ${platform}: ${error}`);
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
214
230
|
}
|
|
215
231
|
}
|
|
216
232
|
// Update manifest
|
|
@@ -226,11 +242,9 @@ export function syncAgents() {
|
|
|
226
242
|
if (!manifest) {
|
|
227
243
|
return { synced: [], failed: [] };
|
|
228
244
|
}
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
const
|
|
232
|
-
const synced = [];
|
|
233
|
-
const failed = [];
|
|
245
|
+
const platforms = resolvePlatformsFromManifest(manifest);
|
|
246
|
+
const syncedSet = new Set();
|
|
247
|
+
const failedSet = new Set();
|
|
234
248
|
// Get installed agents info
|
|
235
249
|
const availableAgents = getAvailableAgents();
|
|
236
250
|
const installedAgents = [];
|
|
@@ -240,33 +254,43 @@ export function syncAgents() {
|
|
|
240
254
|
installedAgents.push(agent);
|
|
241
255
|
}
|
|
242
256
|
else {
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
if (adapter.isSingleFile) {
|
|
247
|
-
// Single-file platforms: regenerate entire file
|
|
248
|
-
try {
|
|
249
|
-
adapter.syncAgents(installedAgents);
|
|
250
|
-
synced.push(...installedAgents.map((a) => a.name));
|
|
251
|
-
}
|
|
252
|
-
catch (error) {
|
|
253
|
-
debugLog(`Failed to sync agents: ${error}`);
|
|
254
|
-
failed.push(...installedAgents.map((a) => a.name));
|
|
257
|
+
failedSet.add(agentName);
|
|
255
258
|
}
|
|
256
259
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
+
for (const platform of platforms) {
|
|
261
|
+
const adapter = getAdapter(platform);
|
|
262
|
+
ensureProjectAgentsDir(platform);
|
|
263
|
+
if (adapter.isSingleFile) {
|
|
264
|
+
// Single-file platforms: regenerate entire file
|
|
260
265
|
try {
|
|
261
|
-
adapter.
|
|
262
|
-
|
|
266
|
+
adapter.syncAgents(installedAgents);
|
|
267
|
+
for (const agent of installedAgents) {
|
|
268
|
+
syncedSet.add(agent.name);
|
|
269
|
+
}
|
|
263
270
|
}
|
|
264
271
|
catch (error) {
|
|
265
|
-
debugLog(`Failed to sync ${
|
|
266
|
-
|
|
272
|
+
debugLog(`Failed to sync agents for ${platform}: ${error}`);
|
|
273
|
+
for (const agent of installedAgents) {
|
|
274
|
+
failedSet.add(agent.name);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
// Multi-file platforms: update each file individually
|
|
280
|
+
for (const agent of installedAgents) {
|
|
281
|
+
try {
|
|
282
|
+
adapter.installAgent(agent.name, agent);
|
|
283
|
+
syncedSet.add(agent.name);
|
|
284
|
+
}
|
|
285
|
+
catch (error) {
|
|
286
|
+
debugLog(`Failed to sync ${agent.name} for ${platform}: ${error}`);
|
|
287
|
+
failedSet.add(agent.name);
|
|
288
|
+
}
|
|
267
289
|
}
|
|
268
290
|
}
|
|
269
291
|
}
|
|
292
|
+
const synced = Array.from(syncedSet).filter((name) => !failedSet.has(name));
|
|
293
|
+
const failed = Array.from(failedSet);
|
|
270
294
|
// Update manifest version
|
|
271
295
|
if (synced.length > 0) {
|
|
272
296
|
manifest.version = PACKAGE_VERSION;
|
|
@@ -277,6 +301,63 @@ export function syncAgents() {
|
|
|
277
301
|
}
|
|
278
302
|
return { synced, failed };
|
|
279
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* Add a platform and sync existing installed agents to it.
|
|
306
|
+
*/
|
|
307
|
+
export function addPlatformAndSyncAgents(platform) {
|
|
308
|
+
let manifest = readManifest();
|
|
309
|
+
if (!manifest) {
|
|
310
|
+
manifest = createManifest(PACKAGE_VERSION);
|
|
311
|
+
}
|
|
312
|
+
const enabledPlatforms = getEnabledPlatforms(manifest);
|
|
313
|
+
if (enabledPlatforms.includes(platform)) {
|
|
314
|
+
return { added: false, alreadyEnabled: true, synced: [], failed: [] };
|
|
315
|
+
}
|
|
316
|
+
manifest = addPlatformToManifest(manifest, platform);
|
|
317
|
+
writeManifest(manifest);
|
|
318
|
+
const availableAgents = getAvailableAgents();
|
|
319
|
+
const installedAgentNames = Object.keys(manifest.agents);
|
|
320
|
+
const adapter = getAdapter(platform);
|
|
321
|
+
ensureProjectAgentsDir(platform);
|
|
322
|
+
const synced = [];
|
|
323
|
+
const failed = [];
|
|
324
|
+
if (adapter.isSingleFile) {
|
|
325
|
+
const installedAgents = installedAgentNames
|
|
326
|
+
.map((name) => availableAgents.find((agent) => agent.name === name))
|
|
327
|
+
.filter((agent) => Boolean(agent));
|
|
328
|
+
for (const agentName of installedAgentNames) {
|
|
329
|
+
if (!installedAgents.some((agent) => agent.name === agentName)) {
|
|
330
|
+
failed.push(agentName);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
try {
|
|
334
|
+
adapter.syncAgents(installedAgents);
|
|
335
|
+
synced.push(...installedAgents.map((agent) => agent.name));
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
debugLog(`Failed to sync agents for ${platform}: ${error}`);
|
|
339
|
+
failed.push(...installedAgents.map((agent) => agent.name));
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
for (const agentName of installedAgentNames) {
|
|
344
|
+
const agent = availableAgents.find((candidate) => candidate.name === agentName);
|
|
345
|
+
if (!agent) {
|
|
346
|
+
failed.push(agentName);
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
try {
|
|
350
|
+
adapter.installAgent(agentName, agent);
|
|
351
|
+
synced.push(agentName);
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
debugLog(`Failed to install ${agentName} on ${platform}: ${error}`);
|
|
355
|
+
failed.push(agentName);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
return { added: true, alreadyEnabled: false, synced, failed };
|
|
360
|
+
}
|
|
280
361
|
/**
|
|
281
362
|
* Find orphaned blue-* agent files that exist in project but aren't in manifest
|
|
282
363
|
*/
|
package/dist/lib/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/lib/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAY,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,iCAAiC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAClD,MAAM,eAAe,GAAW,WAAW,CAAC,OAAO,CAAC;AAEpD;;GAEG;AACH,SAAS,cAAc;IACrB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,eAAe;QACrC,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG;QACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAC3C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,OAAe;IAC/B,IAAI,cAAc,EAAE,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CACnC,QAAyC;IAEzC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,SAAqB;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACxC,CAAC;AAkBD;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC;QAC3C,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,cAAc;QACd,aAAa;QACb,SAAS;QACT,gBAAgB;QAChB,eAAe;QACf,YAAY;QACZ,OAAO;KACR,CAAC;IAEF,MAAM,UAAU,GAAmB,EAAE,CAAC;IACtC,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,UAAU;gBACd,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9D,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAM5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC/D,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/D,6CAA6C;IAC7C,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,SAAS;QACpB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1C,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACjD,IAAI;QACJ,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;KACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,oCAAoC;YACpC,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wEAAwE;IACxE,MAAM,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GACzC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAExD,+DAA+D;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,WAAW,YAAY,mCAAmC,CAAC,CAAC;YACrE,SAAS;QACX,CAAC;QAED,gEAAgE;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,WAAW;YACX,QAAQ;YACR,4DAA4D;YAC5D,UAAU,EAAE,YAAY;YACxB,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,QAAmB;IACjE,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAEhE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6BAA6B;IAC7B,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,eAAe,GAAG,eAAe,CACrC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAC/D,CAAC;IAEF,4CAA4C;IAC5C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3C,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEvC,IAAI,CAAC;YACH,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,qBAAqB,SAAS,OAAO,cAAc,KAAK,KAAK,EAAE,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IACD,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACpE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAExB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,MAAM,SAAS,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAEzD,sBAAsB;IACtB,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAEhE,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC;gBACH,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,oBAAoB,SAAS,SAAS,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;gBACrE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,eAAe,GAAG,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrE,aAAa,CAAC,eAAe,CAAC,CAAC;IAE/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,SAAS,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,4BAA4B;IAC5B,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,eAAe,GAA2B,EAAE,CAAC;IAEnD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAChE,IAAI,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,gDAAgD;YAChD,IAAI,CAAC;gBACH,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACpC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;oBACpC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,6BAA6B,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;gBAC5D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;oBACpC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACxC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,QAAQ,CAAC,kBAAkB,KAAK,CAAC,IAAI,QAAQ,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;oBACnE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAErC,0BAA0B;IAC1B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,eAAe,CAAC;QAClD,CAAC;QACD,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAkB;IAMzD,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;IAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACrD,aAAa,CAAC,QAAQ,CAAC,CAAC;IAExB,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,eAAe,GAAG,mBAAmB;aACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;aACnE,MAAM,CAAC,CAAC,KAAK,EAAsB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzD,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,6BAA6B,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAChC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAC5C,CAAC;YACF,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,qBAAqB,SAAS,OAAO,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;gBACpE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,kFAAkF;IAClF,MAAM,KAAK,GAAG,EAAE;SACb,WAAW,CAAC,gBAAgB,CAAC;SAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAC3E,IAAI,aAAa,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,kCAAkC;IAClC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,mDAAmD;IACnD,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAChE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
|
package/dist/lib/manifest.d.ts
CHANGED
|
@@ -7,7 +7,9 @@ export interface Manifest {
|
|
|
7
7
|
_comment?: string;
|
|
8
8
|
version: string;
|
|
9
9
|
installedAt: string;
|
|
10
|
+
/** @deprecated Use platforms instead. */
|
|
10
11
|
platform?: Platform;
|
|
12
|
+
platforms: Platform[];
|
|
11
13
|
agents: Record<string, AgentEntry>;
|
|
12
14
|
}
|
|
13
15
|
/**
|
|
@@ -23,9 +25,17 @@ export declare function writeManifest(manifest: Manifest): void;
|
|
|
23
25
|
*/
|
|
24
26
|
export declare function createManifest(version: string, platform?: Platform): Manifest;
|
|
25
27
|
/**
|
|
26
|
-
*
|
|
28
|
+
* Normalize manifest to current schema.
|
|
27
29
|
*/
|
|
28
|
-
export declare function
|
|
30
|
+
export declare function normalizeManifest(manifest: Manifest): Manifest;
|
|
31
|
+
/**
|
|
32
|
+
* Add a platform to manifest if missing.
|
|
33
|
+
*/
|
|
34
|
+
export declare function addPlatformToManifest(manifest: Manifest, platform: Platform): Manifest;
|
|
35
|
+
/**
|
|
36
|
+
* Get enabled platforms from manifest.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getEnabledPlatforms(manifest: Manifest | null): Platform[];
|
|
29
39
|
/**
|
|
30
40
|
* Add an agent to the manifest
|
|
31
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AAKD;;GAEG;AACH,wBAAgB,YAAY,IAAI,QAAQ,GAAG,IAAI,CAS9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC;AAKD;;GAEG;AACH,wBAAgB,YAAY,IAAI,QAAQ,GAAG,IAAI,CAS9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAatD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAS7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAa9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GACjB,QAAQ,CAUV;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,EAAE,CAKzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,QAAQ,CAWV;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,GAChB,QAAQ,CAMV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAMjD"}
|
package/dist/lib/manifest.js
CHANGED
|
@@ -8,7 +8,7 @@ export function readManifest() {
|
|
|
8
8
|
const manifestPath = getManifestPath();
|
|
9
9
|
if (fs.existsSync(manifestPath)) {
|
|
10
10
|
const content = fs.readFileSync(manifestPath, "utf-8");
|
|
11
|
-
return JSON.parse(content);
|
|
11
|
+
return normalizeManifest(JSON.parse(content));
|
|
12
12
|
}
|
|
13
13
|
return null;
|
|
14
14
|
}
|
|
@@ -18,10 +18,11 @@ export function readManifest() {
|
|
|
18
18
|
export function writeManifest(manifest) {
|
|
19
19
|
ensureProjectAgentsDir();
|
|
20
20
|
const manifestPath = getManifestPath();
|
|
21
|
+
const normalizedManifest = normalizeManifest(manifest);
|
|
21
22
|
// Ensure comment is always present
|
|
22
23
|
const manifestWithComment = {
|
|
23
24
|
_comment: MANIFEST_COMMENT,
|
|
24
|
-
...
|
|
25
|
+
...normalizedManifest,
|
|
25
26
|
};
|
|
26
27
|
fs.writeFileSync(manifestPath, JSON.stringify(manifestWithComment, null, 2) + "\n");
|
|
27
28
|
}
|
|
@@ -34,18 +35,48 @@ export function createManifest(version, platform) {
|
|
|
34
35
|
version,
|
|
35
36
|
installedAt: new Date().toISOString(),
|
|
36
37
|
platform,
|
|
38
|
+
platforms: platform ? [platform] : [],
|
|
37
39
|
agents: {},
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
|
-
*
|
|
43
|
+
* Normalize manifest to current schema.
|
|
42
44
|
*/
|
|
43
|
-
export function
|
|
45
|
+
export function normalizeManifest(manifest) {
|
|
46
|
+
const platforms = Array.isArray(manifest.platforms)
|
|
47
|
+
? manifest.platforms
|
|
48
|
+
: manifest.platform
|
|
49
|
+
? [manifest.platform]
|
|
50
|
+
: [];
|
|
51
|
+
const dedupedPlatforms = Array.from(new Set(platforms));
|
|
44
52
|
return {
|
|
45
53
|
...manifest,
|
|
46
|
-
platform,
|
|
54
|
+
platform: dedupedPlatforms[0],
|
|
55
|
+
platforms: dedupedPlatforms,
|
|
47
56
|
};
|
|
48
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Add a platform to manifest if missing.
|
|
60
|
+
*/
|
|
61
|
+
export function addPlatformToManifest(manifest, platform) {
|
|
62
|
+
const normalized = normalizeManifest(manifest);
|
|
63
|
+
if (normalized.platforms.includes(platform)) {
|
|
64
|
+
return normalized;
|
|
65
|
+
}
|
|
66
|
+
return normalizeManifest({
|
|
67
|
+
...normalized,
|
|
68
|
+
platforms: [...normalized.platforms, platform],
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get enabled platforms from manifest.
|
|
73
|
+
*/
|
|
74
|
+
export function getEnabledPlatforms(manifest) {
|
|
75
|
+
if (!manifest) {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
return normalizeManifest(manifest).platforms;
|
|
79
|
+
}
|
|
49
80
|
/**
|
|
50
81
|
* Add an agent to the manifest
|
|
51
82
|
*/
|
package/dist/lib/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/lib/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAkBrE,MAAM,gBAAgB,GACpB,qHAAqH,CAAC;AAExH;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,sBAAsB,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACvD,mCAAmC;IACnC,MAAM,mBAAmB,GAAG;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,GAAG,kBAAkB;KACtB,CAAC;IACF,EAAE,CAAC,aAAa,CACd,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACpD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,QAAmB;IACjE,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,OAAO;QACP,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,QAAQ;QACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QACrC,MAAM,EAAE,EAAE;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,QAAQ,CAAC,SAAS;QACpB,CAAC,CAAC,QAAQ,CAAC,QAAQ;YACjB,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACrB,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,OAAO;QACL,GAAG,QAAQ;QACX,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC7B,SAAS,EAAE,gBAAgB;KAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAkB,EAClB,QAAkB;IAElB,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,iBAAiB,CAAC;QACvB,GAAG,UAAU;QACb,SAAS,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,SAAiB,EACjB,OAAe;IAEf,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE;YACN,GAAG,QAAQ,CAAC,MAAM;YAClB,CAAC,SAAS,CAAC,EAAE;gBACX,OAAO;gBACP,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAkB,EAClB,SAAiB;IAEjB,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,eAAe,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/D,OAAO;QACL,GAAG,QAAQ;QACX,MAAM,EAAE,eAAe;KACxB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/lib/platform.d.ts
CHANGED
|
@@ -9,10 +9,21 @@ export declare const PLATFORMS: PlatformInfo[];
|
|
|
9
9
|
* Auto-detect platform based on project structure
|
|
10
10
|
*/
|
|
11
11
|
export declare function detectPlatform(): Platform | null;
|
|
12
|
+
/**
|
|
13
|
+
* Parse platform from user input.
|
|
14
|
+
*/
|
|
15
|
+
export declare function parsePlatform(value: string): Platform | null;
|
|
16
|
+
/**
|
|
17
|
+
* Get platforms that can still be added.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getAvailablePlatformsToAdd(enabled: Platform[]): PlatformInfo[];
|
|
12
20
|
/**
|
|
13
21
|
* Prompt user to select a platform
|
|
14
22
|
*/
|
|
15
|
-
export declare function promptForPlatform(
|
|
23
|
+
export declare function promptForPlatform(options?: {
|
|
24
|
+
exclude?: Platform[];
|
|
25
|
+
message?: string;
|
|
26
|
+
}): Promise<Platform>;
|
|
16
27
|
/**
|
|
17
28
|
* Get platform info by ID
|
|
18
29
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,YAAY,EA+BnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,GAAG,IAAI,CA6BhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAChB,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,YAAY,EA+BnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,IAAI,QAAQ,GAAG,IAAI,CA6BhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAK5D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,QAAQ,EAAE,GAClB,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE;IAChD,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkBpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAMhE"}
|
package/dist/lib/platform.js
CHANGED
|
@@ -59,17 +59,37 @@ export function detectPlatform() {
|
|
|
59
59
|
}
|
|
60
60
|
return null;
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Parse platform from user input.
|
|
64
|
+
*/
|
|
65
|
+
export function parsePlatform(value) {
|
|
66
|
+
if (PLATFORMS.some((platform) => platform.id === value)) {
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get platforms that can still be added.
|
|
73
|
+
*/
|
|
74
|
+
export function getAvailablePlatformsToAdd(enabled) {
|
|
75
|
+
return PLATFORMS.filter((platform) => !enabled.includes(platform.id));
|
|
76
|
+
}
|
|
62
77
|
/**
|
|
63
78
|
* Prompt user to select a platform
|
|
64
79
|
*/
|
|
65
|
-
export async function promptForPlatform() {
|
|
80
|
+
export async function promptForPlatform(options) {
|
|
81
|
+
const exclude = options?.exclude ?? [];
|
|
82
|
+
const choices = PLATFORMS.filter((p) => !exclude.includes(p.id)).map((p) => ({
|
|
83
|
+
name: p.name,
|
|
84
|
+
value: p.id,
|
|
85
|
+
description: p.description,
|
|
86
|
+
}));
|
|
87
|
+
if (choices.length === 0) {
|
|
88
|
+
throw new Error("All platforms are already enabled.");
|
|
89
|
+
}
|
|
66
90
|
const platform = await select({
|
|
67
|
-
message: "Which platform are you using?",
|
|
68
|
-
choices
|
|
69
|
-
name: p.name,
|
|
70
|
-
value: p.id,
|
|
71
|
-
description: p.description,
|
|
72
|
-
})),
|
|
91
|
+
message: options?.message || "Which platform are you using?",
|
|
92
|
+
choices,
|
|
73
93
|
});
|
|
74
94
|
return platform;
|
|
75
95
|
}
|
package/dist/lib/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgB3C,MAAM,CAAC,MAAM,SAAS,GAAmB;IACvC;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sCAAsC;KACpD;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,gCAAgC;KAC9C;IACD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,kCAAkC;KAChD;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yCAAyC;KACvD;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,iCAAiC;KAC/C;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,6BAA6B;KAC3C;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,gDAAgD;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC/C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/lib/platform.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/menu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"AAsBA,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA2FrD"}
|
package/dist/ui/menu.js
CHANGED
|
@@ -7,6 +7,7 @@ import { searchCommand } from "../commands/search.js";
|
|
|
7
7
|
import { syncCommand } from "../commands/sync.js";
|
|
8
8
|
import { repairCommand } from "../commands/repair.js";
|
|
9
9
|
import { profilesCommand } from "../commands/profiles.js";
|
|
10
|
+
import { platformAddCommand } from "../commands/platform.js";
|
|
10
11
|
export async function interactiveMenu() {
|
|
11
12
|
console.log(chalk.blue.bold("\n🌱 Blue Gardener - Multi-Platform AI Agent Manager\n"));
|
|
12
13
|
while (true) {
|
|
@@ -43,6 +44,11 @@ export async function interactiveMenu() {
|
|
|
43
44
|
value: "sync",
|
|
44
45
|
description: "Update installed agents to latest version",
|
|
45
46
|
},
|
|
47
|
+
{
|
|
48
|
+
name: "Add platform",
|
|
49
|
+
value: "platform",
|
|
50
|
+
description: "Enable another platform and sync existing agents",
|
|
51
|
+
},
|
|
46
52
|
{
|
|
47
53
|
name: "Repair manifest",
|
|
48
54
|
value: "repair",
|
|
@@ -78,6 +84,9 @@ export async function interactiveMenu() {
|
|
|
78
84
|
case "repair":
|
|
79
85
|
await repairCommand();
|
|
80
86
|
break;
|
|
87
|
+
case "platform":
|
|
88
|
+
await platformAddCommand();
|
|
89
|
+
break;
|
|
81
90
|
case "exit":
|
|
82
91
|
console.log(chalk.blue("Goodbye! 🌱\n"));
|
|
83
92
|
return;
|
package/dist/ui/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/ui/menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAa7D,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAC1E,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAa;YACtC,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,KAAK;oBACZ,WAAW,EAAE,oCAAoC;iBAClD;gBACD;oBACE,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,QAAQ;oBACf,WAAW,EAAE,yBAAyB;iBACvC;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,qCAAqC;iBACnD;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,4CAA4C;iBAC1D;gBACD;oBACE,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,QAAQ;oBACf,WAAW,EAAE,6CAA6C;iBAC3D;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,2CAA2C;iBACzD;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,kDAAkD;iBAChE;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,QAAQ;oBACf,WAAW,EAAE,6CAA6C;iBAC3D;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,MAAM;oBACb,WAAW,EAAE,oBAAoB;iBAClC;aACF;SACF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBACR,MAAM,UAAU,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,WAAW,EAAE,CAAC;gBACpB,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,eAAe,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,WAAW,EAAE,CAAC;gBACpB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,aAAa,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,kBAAkB,EAAE,CAAC;gBAC3B,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;gBACzC,OAAO;QACX,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blue-gardener",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "CLI tool to manage AI coding agents across multiple platforms - install, remove, and sync specialized AI agents for Cursor, Claude Desktop, Codex, GitHub Copilot, Windsurf, and OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"blue-gardener": "
|
|
7
|
+
"blue-gardener": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"homepage": "https://bluegardenproject.github.io/blue-gardener/",
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
48
|
-
"url": "https://github.com/bluegardenproject/blue-gardener.git"
|
|
48
|
+
"url": "git+https://github.com/bluegardenproject/blue-gardener.git"
|
|
49
49
|
},
|
|
50
50
|
"bugs": {
|
|
51
51
|
"url": "https://github.com/bluegardenproject/blue-gardener/issues"
|