aman-intelligence 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/LICENSE +21 -0
- package/README.md +116 -0
- package/dist/bin/aman.d.ts +2 -0
- package/dist/bin/aman.js +165 -0
- package/dist/cli/global-install.d.ts +7 -0
- package/dist/cli/global-install.js +36 -0
- package/dist/cli/help-text.d.ts +1 -0
- package/dist/cli/help-text.js +62 -0
- package/dist/cli/version.d.ts +1 -0
- package/dist/cli/version.js +6 -0
- package/dist/commands/backup.d.ts +11 -0
- package/dist/commands/backup.js +262 -0
- package/dist/commands/browse.d.ts +11 -0
- package/dist/commands/browse.js +641 -0
- package/dist/commands/cache.d.ts +1 -0
- package/dist/commands/cache.js +38 -0
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.js +146 -0
- package/dist/commands/dashboard.d.ts +1 -0
- package/dist/commands/dashboard.js +1004 -0
- package/dist/commands/doctor.d.ts +4 -0
- package/dist/commands/doctor.js +54 -0
- package/dist/commands/export.d.ts +1 -0
- package/dist/commands/export.js +137 -0
- package/dist/commands/help.d.ts +1 -0
- package/dist/commands/help.js +47 -0
- package/dist/commands/import-wizard.d.ts +7 -0
- package/dist/commands/import-wizard.js +374 -0
- package/dist/commands/import.d.ts +9 -0
- package/dist/commands/import.js +351 -0
- package/dist/commands/info.d.ts +1 -0
- package/dist/commands/info.js +174 -0
- package/dist/commands/init.d.ts +20 -0
- package/dist/commands/init.js +146 -0
- package/dist/commands/install.d.ts +10 -0
- package/dist/commands/install.js +342 -0
- package/dist/commands/pack.d.ts +23 -0
- package/dist/commands/pack.js +331 -0
- package/dist/commands/registry.d.ts +6 -0
- package/dist/commands/registry.js +218 -0
- package/dist/commands/remove.d.ts +1 -0
- package/dist/commands/remove.js +76 -0
- package/dist/commands/search.d.ts +7 -0
- package/dist/commands/search.js +295 -0
- package/dist/commands/stack.d.ts +18 -0
- package/dist/commands/stack.js +327 -0
- package/dist/commands/sync.d.ts +9 -0
- package/dist/commands/sync.js +428 -0
- package/dist/commands/update.d.ts +1 -0
- package/dist/commands/update.js +97 -0
- package/dist/config/features.d.ts +2 -0
- package/dist/config/features.js +2 -0
- package/dist/config/index.d.ts +13 -0
- package/dist/config/index.js +80 -0
- package/dist/config/paths.d.ts +23 -0
- package/dist/config/paths.js +45 -0
- package/dist/import/adapters.d.ts +14 -0
- package/dist/import/adapters.js +580 -0
- package/dist/import/discovery.service.d.ts +8 -0
- package/dist/import/discovery.service.js +26 -0
- package/dist/import/import.service.d.ts +7 -0
- package/dist/import/import.service.js +259 -0
- package/dist/import/types.d.ts +71 -0
- package/dist/import/types.js +1 -0
- package/dist/import/utils.d.ts +36 -0
- package/dist/import/utils.js +428 -0
- package/dist/marketplace/cache.d.ts +18 -0
- package/dist/marketplace/cache.js +141 -0
- package/dist/marketplace/github-search.d.ts +17 -0
- package/dist/marketplace/github-search.js +268 -0
- package/dist/marketplace/install-from-candidate.d.ts +6 -0
- package/dist/marketplace/install-from-candidate.js +14 -0
- package/dist/marketplace/install.d.ts +15 -0
- package/dist/marketplace/install.js +54 -0
- package/dist/marketplace/metadata-validator.d.ts +8 -0
- package/dist/marketplace/metadata-validator.js +79 -0
- package/dist/marketplace/types.d.ts +34 -0
- package/dist/marketplace/types.js +1 -0
- package/dist/providers/local.provider.d.ts +9 -0
- package/dist/providers/local.provider.js +51 -0
- package/dist/providers/provider.interface.d.ts +7 -0
- package/dist/providers/provider.interface.js +1 -0
- package/dist/providers/registry.provider.d.ts +2 -0
- package/dist/providers/registry.provider.js +42 -0
- package/dist/providers/skills-sh.provider.d.ts +11 -0
- package/dist/providers/skills-sh.provider.js +56 -0
- package/dist/registry/adapter.interface.d.ts +16 -0
- package/dist/registry/adapter.interface.js +1 -0
- package/dist/registry/errors.d.ts +5 -0
- package/dist/registry/errors.js +8 -0
- package/dist/registry/filesystem-registry.adapter.d.ts +25 -0
- package/dist/registry/filesystem-registry.adapter.js +288 -0
- package/dist/registry/github-registry.adapter.d.ts +11 -0
- package/dist/registry/github-registry.adapter.js +32 -0
- package/dist/registry/index.d.ts +8 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/local-registry.adapter.d.ts +6 -0
- package/dist/registry/local-registry.adapter.js +9 -0
- package/dist/registry/registry.service.d.ts +44 -0
- package/dist/registry/registry.service.js +163 -0
- package/dist/registry/slug-utils.d.ts +12 -0
- package/dist/registry/slug-utils.js +51 -0
- package/dist/registry/types.d.ts +160 -0
- package/dist/registry/types.js +1 -0
- package/dist/services/asset.service.d.ts +12 -0
- package/dist/services/asset.service.js +142 -0
- package/dist/services/backup.service.d.ts +8 -0
- package/dist/services/backup.service.js +169 -0
- package/dist/services/classification.service.d.ts +31 -0
- package/dist/services/classification.service.js +271 -0
- package/dist/services/config.service.d.ts +9 -0
- package/dist/services/config.service.js +20 -0
- package/dist/services/doctor.service.d.ts +5 -0
- package/dist/services/doctor.service.js +186 -0
- package/dist/services/environment.service.d.ts +42 -0
- package/dist/services/environment.service.js +227 -0
- package/dist/services/github.service.d.ts +7 -0
- package/dist/services/github.service.js +42 -0
- package/dist/services/lock.service.d.ts +12 -0
- package/dist/services/lock.service.js +71 -0
- package/dist/services/marketplace.service.d.ts +40 -0
- package/dist/services/marketplace.service.js +225 -0
- package/dist/services/pack.service.d.ts +9 -0
- package/dist/services/pack.service.js +193 -0
- package/dist/services/stack.service.d.ts +9 -0
- package/dist/services/stack.service.js +94 -0
- package/dist/storage/asset-layout.d.ts +46 -0
- package/dist/storage/asset-layout.js +277 -0
- package/dist/storage/filesystem.d.ts +12 -0
- package/dist/storage/filesystem.js +113 -0
- package/dist/storage/scan-by-type.d.ts +2 -0
- package/dist/storage/scan-by-type.js +8 -0
- package/dist/storage/scanner.d.ts +11 -0
- package/dist/storage/scanner.js +188 -0
- package/dist/types/asset-metadata.d.ts +84 -0
- package/dist/types/asset-metadata.js +104 -0
- package/dist/types/index.d.ts +212 -0
- package/dist/types/index.js +1 -0
- package/dist/ui/animations/ErrorIndicator.d.ts +5 -0
- package/dist/ui/animations/ErrorIndicator.js +6 -0
- package/dist/ui/animations/GithubIndicator.d.ts +6 -0
- package/dist/ui/animations/GithubIndicator.js +9 -0
- package/dist/ui/animations/ProgressBar.d.ts +5 -0
- package/dist/ui/animations/ProgressBar.js +15 -0
- package/dist/ui/animations/Spinner.d.ts +5 -0
- package/dist/ui/animations/Spinner.js +21 -0
- package/dist/ui/animations/SuccessIndicator.d.ts +5 -0
- package/dist/ui/animations/SuccessIndicator.js +6 -0
- package/dist/ui/animations/SyncActivity.d.ts +5 -0
- package/dist/ui/animations/SyncActivity.js +21 -0
- package/dist/ui/animations/TransitionScreen.d.ts +7 -0
- package/dist/ui/animations/TransitionScreen.js +25 -0
- package/dist/ui/animations/useAnimationMode.d.ts +1 -0
- package/dist/ui/animations/useAnimationMode.js +16 -0
- package/dist/ui/assetDisplay.d.ts +19 -0
- package/dist/ui/assetDisplay.js +59 -0
- package/dist/ui/components/Confirm.d.ts +8 -0
- package/dist/ui/components/Confirm.js +14 -0
- package/dist/ui/components/CustomSelect.d.ts +19 -0
- package/dist/ui/components/CustomSelect.js +13 -0
- package/dist/ui/components/Header.d.ts +6 -0
- package/dist/ui/components/Header.js +9 -0
- package/dist/ui/components/HealthReport.d.ts +7 -0
- package/dist/ui/components/HealthReport.js +13 -0
- package/dist/ui/components/MarketplaceInstallConfirm.d.ts +19 -0
- package/dist/ui/components/MarketplaceInstallConfirm.js +23 -0
- package/dist/ui/components/Narrator.d.ts +9 -0
- package/dist/ui/components/Narrator.js +26 -0
- package/dist/ui/components/ScopePrompt.d.ts +8 -0
- package/dist/ui/components/ScopePrompt.js +23 -0
- package/dist/ui/components/TooSmallScreen.d.ts +8 -0
- package/dist/ui/components/TooSmallScreen.js +6 -0
- package/dist/ui/date.d.ts +2 -0
- package/dist/ui/date.js +33 -0
- package/dist/ui/layout.d.ts +23 -0
- package/dist/ui/layout.js +44 -0
- package/dist/ui/list-item.d.ts +12 -0
- package/dist/ui/list-item.js +1 -0
- package/dist/ui/marketplaceDisplay.d.ts +10 -0
- package/dist/ui/marketplaceDisplay.js +36 -0
- package/dist/ui/theme.d.ts +42 -0
- package/dist/ui/theme.js +47 -0
- package/dist/utils/asset-list-fields.d.ts +11 -0
- package/dist/utils/asset-list-fields.js +28 -0
- package/dist/utils/error-message.d.ts +2 -0
- package/dist/utils/error-message.js +6 -0
- package/dist/utils/integrity.d.ts +9 -0
- package/dist/utils/integrity.js +23 -0
- package/dist/utils/lock-migrate.d.ts +25 -0
- package/dist/utils/lock-migrate.js +93 -0
- package/dist/utils/mcp-local.d.ts +15 -0
- package/dist/utils/mcp-local.js +129 -0
- package/dist/utils/slug.d.ts +6 -0
- package/dist/utils/slug.js +13 -0
- package/dist/utils/stack-normalize.d.ts +3 -0
- package/dist/utils/stack-normalize.js +43 -0
- package/package.json +77 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { exists, ensureDir, readJson, writeJson } from '../storage/filesystem.js';
|
|
4
|
+
import { mcpLocalFilePath, contentFilePath } from '../storage/asset-layout.js';
|
|
5
|
+
const PLACEHOLDER_RE = /^\$\{[A-Z0-9_]+\}$|^\{\{[A-Z0-9_]+\}\}$|^\$[A-Z][A-Z0-9_]*$/;
|
|
6
|
+
function isEnvPlaceholder(value) {
|
|
7
|
+
if (typeof value !== 'string')
|
|
8
|
+
return false;
|
|
9
|
+
if (value.trim() === '')
|
|
10
|
+
return true;
|
|
11
|
+
return PLACEHOLDER_RE.test(value.trim());
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Extract env var keys from mcp.json that need local values.
|
|
15
|
+
*/
|
|
16
|
+
export function extractMcpEnvKeys(mcpData) {
|
|
17
|
+
const keys = new Set();
|
|
18
|
+
const env = mcpData.env;
|
|
19
|
+
if (env && typeof env === 'object' && !Array.isArray(env)) {
|
|
20
|
+
for (const [key, value] of Object.entries(env)) {
|
|
21
|
+
if (typeof key === 'string' && key.length > 0 && isEnvPlaceholder(value)) {
|
|
22
|
+
keys.add(key);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const mcpServers = mcpData.mcpServers;
|
|
27
|
+
if (mcpServers && typeof mcpServers === 'object' && !Array.isArray(mcpServers)) {
|
|
28
|
+
for (const server of Object.values(mcpServers)) {
|
|
29
|
+
if (!server || typeof server !== 'object')
|
|
30
|
+
continue;
|
|
31
|
+
const serverEnv = server.env;
|
|
32
|
+
if (!serverEnv || typeof serverEnv !== 'object' || Array.isArray(serverEnv))
|
|
33
|
+
continue;
|
|
34
|
+
for (const [key, value] of Object.entries(serverEnv)) {
|
|
35
|
+
if (typeof key === 'string' && key.length > 0 && isEnvPlaceholder(value)) {
|
|
36
|
+
keys.add(key);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return Array.from(keys).sort();
|
|
42
|
+
}
|
|
43
|
+
export function buildMcpLocalTemplate(envKeys) {
|
|
44
|
+
const out = {
|
|
45
|
+
_comment: 'Fill in local values for this MCP. This file is gitignored and never synced.',
|
|
46
|
+
};
|
|
47
|
+
for (const key of envKeys) {
|
|
48
|
+
out[key] = '';
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
/** Create mcp.local.json when missing; never overwrite existing file. */
|
|
53
|
+
export async function scaffoldMcpLocalConfig(assetDir) {
|
|
54
|
+
const mcpPath = contentFilePath(assetDir, 'mcp');
|
|
55
|
+
const localPath = mcpLocalFilePath(assetDir);
|
|
56
|
+
if (!exists(mcpPath)) {
|
|
57
|
+
return { created: false, keys: [] };
|
|
58
|
+
}
|
|
59
|
+
if (exists(localPath)) {
|
|
60
|
+
return { created: false, keys: [] };
|
|
61
|
+
}
|
|
62
|
+
const mcpData = await readJson(mcpPath);
|
|
63
|
+
if (!mcpData) {
|
|
64
|
+
return { created: false, keys: [] };
|
|
65
|
+
}
|
|
66
|
+
const keys = extractMcpEnvKeys(mcpData);
|
|
67
|
+
if (keys.length === 0) {
|
|
68
|
+
return { created: false, keys: [] };
|
|
69
|
+
}
|
|
70
|
+
await writeJson(localPath, buildMcpLocalTemplate(keys));
|
|
71
|
+
return { created: true, keys };
|
|
72
|
+
}
|
|
73
|
+
export function mcpRequiresLocalConfig(mcpData) {
|
|
74
|
+
return extractMcpEnvKeys(mcpData).length > 0;
|
|
75
|
+
}
|
|
76
|
+
const GITIGNORE_MCP_LINE = 'mcps/**/mcp.local.json';
|
|
77
|
+
export async function ensureMcpLocalGitignore(scopeRoot) {
|
|
78
|
+
const gitignorePath = path.join(scopeRoot, '.gitignore');
|
|
79
|
+
let content = '';
|
|
80
|
+
if (exists(gitignorePath)) {
|
|
81
|
+
content = await fs.readFile(gitignorePath, 'utf-8');
|
|
82
|
+
if (content.split('\n').some((line) => line.trim() === GITIGNORE_MCP_LINE || line.trim() === '**/mcp.local.json')) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
if (!content.endsWith('\n'))
|
|
86
|
+
content += '\n';
|
|
87
|
+
content += `${GITIGNORE_MCP_LINE}\n`;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
content = `${GITIGNORE_MCP_LINE}\n`;
|
|
91
|
+
}
|
|
92
|
+
await ensureDir(scopeRoot);
|
|
93
|
+
await fs.writeFile(gitignorePath, content, 'utf-8');
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
export async function readGitignoreContent(scopeRoot) {
|
|
97
|
+
const gitignorePath = path.join(scopeRoot, '.gitignore');
|
|
98
|
+
if (!exists(gitignorePath))
|
|
99
|
+
return '';
|
|
100
|
+
return fs.readFile(gitignorePath, 'utf-8');
|
|
101
|
+
}
|
|
102
|
+
export async function gitignoreIncludesMcpLocalAsync(scopeRoot) {
|
|
103
|
+
const content = await readGitignoreContent(scopeRoot);
|
|
104
|
+
if (!content)
|
|
105
|
+
return false;
|
|
106
|
+
return content.split('\n').some((line) => {
|
|
107
|
+
const t = line.trim();
|
|
108
|
+
return (t === GITIGNORE_MCP_LINE ||
|
|
109
|
+
t === '**/mcp.local.json' ||
|
|
110
|
+
t === 'mcp.local.json' ||
|
|
111
|
+
t === 'mcps/*/mcp.local.json');
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
export async function countEmptyMcpLocalValues(assetDir) {
|
|
115
|
+
const localPath = mcpLocalFilePath(assetDir);
|
|
116
|
+
if (!exists(localPath))
|
|
117
|
+
return 0;
|
|
118
|
+
const data = await readJson(localPath);
|
|
119
|
+
if (!data)
|
|
120
|
+
return 0;
|
|
121
|
+
let empty = 0;
|
|
122
|
+
for (const [key, value] of Object.entries(data)) {
|
|
123
|
+
if (key === '_comment')
|
|
124
|
+
continue;
|
|
125
|
+
if (value === '' || value === null || value === undefined)
|
|
126
|
+
empty++;
|
|
127
|
+
}
|
|
128
|
+
return empty;
|
|
129
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Default public slug for a local asset name (V1 local/bundled convention). */
|
|
2
|
+
export declare function defaultSlugForName(localName: string, namespace?: string): string;
|
|
3
|
+
/** Extract local name segment from a slug (`@aman/react-best-practices` → `react-best-practices`). */
|
|
4
|
+
export declare function localNameFromSlug(slug: string): string;
|
|
5
|
+
/** Basic slug format validation for V1. */
|
|
6
|
+
export declare function isValidSlug(slug: string): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Default public slug for a local asset name (V1 local/bundled convention). */
|
|
2
|
+
export function defaultSlugForName(localName, namespace = 'aman') {
|
|
3
|
+
return `@${namespace}/${localName}`;
|
|
4
|
+
}
|
|
5
|
+
/** Extract local name segment from a slug (`@aman/react-best-practices` → `react-best-practices`). */
|
|
6
|
+
export function localNameFromSlug(slug) {
|
|
7
|
+
const slash = slug.lastIndexOf('/');
|
|
8
|
+
return slash >= 0 ? slug.slice(slash + 1) : slug;
|
|
9
|
+
}
|
|
10
|
+
/** Basic slug format validation for V1. */
|
|
11
|
+
export function isValidSlug(slug) {
|
|
12
|
+
return /^@[a-z0-9][a-z0-9-]*(?:~private)?\/[a-z0-9]+(-[a-z0-9]+)*$/.test(slug);
|
|
13
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { defaultSlugForName } from './slug.js';
|
|
3
|
+
function namesFromMembers(members) {
|
|
4
|
+
return (members ?? []).map((m) => m.localName);
|
|
5
|
+
}
|
|
6
|
+
/** Normalize legacy stack JSON to AMAN-STACK-SPEC-V1 compatible shape. */
|
|
7
|
+
export function normalizeStack(raw) {
|
|
8
|
+
if (!raw || !raw.name)
|
|
9
|
+
return null;
|
|
10
|
+
const skills = raw.skills?.length ? raw.skills : namesFromMembers(raw.members?.skills);
|
|
11
|
+
const prompts = raw.prompts?.length ? raw.prompts : namesFromMembers(raw.members?.prompts);
|
|
12
|
+
const mcps = raw.mcps?.length ? raw.mcps : namesFromMembers(raw.members?.mcps);
|
|
13
|
+
const buildRefs = (names, existing) => {
|
|
14
|
+
if (existing?.length)
|
|
15
|
+
return existing;
|
|
16
|
+
return names.map((localName) => ({
|
|
17
|
+
localName,
|
|
18
|
+
slug: defaultSlugForName(localName),
|
|
19
|
+
version: '1.0.0',
|
|
20
|
+
}));
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
schemaVersion: raw.schemaVersion ?? 1,
|
|
24
|
+
recordType: raw.recordType ?? 'stack',
|
|
25
|
+
id: raw.id ?? randomUUID(),
|
|
26
|
+
slug: raw.slug ?? `@local/${raw.name}`,
|
|
27
|
+
name: raw.name,
|
|
28
|
+
description: raw.description,
|
|
29
|
+
visibility: raw.visibility ?? 'private',
|
|
30
|
+
members: {
|
|
31
|
+
skills: buildRefs(skills, raw.members?.skills),
|
|
32
|
+
prompts: buildRefs(prompts, raw.members?.prompts),
|
|
33
|
+
mcps: buildRefs(mcps, raw.members?.mcps),
|
|
34
|
+
},
|
|
35
|
+
skills,
|
|
36
|
+
prompts,
|
|
37
|
+
mcps,
|
|
38
|
+
packs: raw.packs ?? [],
|
|
39
|
+
deprecated: raw.deprecated ?? null,
|
|
40
|
+
createdAt: raw.createdAt ?? new Date().toISOString(),
|
|
41
|
+
updatedAt: raw.updatedAt ?? new Date().toISOString(),
|
|
42
|
+
};
|
|
43
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "aman-intelligence",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Package manager for AI workflow assets — skills, prompts, MCPs, packs, and stacks.",
|
|
6
|
+
"bin": {
|
|
7
|
+
"aman": "dist/bin/aman.js",
|
|
8
|
+
"aman-cli": "dist/bin/aman.js",
|
|
9
|
+
"aman-intelligence": "dist/bin/aman.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=18"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"prepack": "npm run build",
|
|
21
|
+
"prepublishOnly": "npm run typecheck && npm run build",
|
|
22
|
+
"clean": "node scripts/clean-dist.mjs",
|
|
23
|
+
"build": "npm run clean && tsc",
|
|
24
|
+
"dev": "tsx src/bin/aman.ts",
|
|
25
|
+
"init": "tsx src/bin/aman.ts init",
|
|
26
|
+
"setup": "tsx src/bin/aman.ts init",
|
|
27
|
+
"browse": "tsx src/bin/aman.ts browse",
|
|
28
|
+
"search": "tsx src/bin/aman.ts search",
|
|
29
|
+
"doctor": "tsx src/bin/aman.ts doctor",
|
|
30
|
+
"start": "tsx src/bin/aman.ts",
|
|
31
|
+
"typecheck": "tsc --noEmit",
|
|
32
|
+
"pack:check": "npm pack --dry-run"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"archiver": "^7.0.1",
|
|
36
|
+
"chalk": "^5.4.1",
|
|
37
|
+
"conf": "^13.0.1",
|
|
38
|
+
"fuse.js": "^7.0.0",
|
|
39
|
+
"glob": "^11.0.1",
|
|
40
|
+
"ink": "^5.1.0",
|
|
41
|
+
"ink-select-input": "^6.0.0",
|
|
42
|
+
"ink-spinner": "^5.0.0",
|
|
43
|
+
"ink-text-input": "^6.0.0",
|
|
44
|
+
"js-yaml": "^4.1.0",
|
|
45
|
+
"meow": "^13.0.0",
|
|
46
|
+
"react": "^18.3.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/archiver": "^6.0.3",
|
|
50
|
+
"@types/js-yaml": "^4.0.9",
|
|
51
|
+
"@types/node": "^22.0.0",
|
|
52
|
+
"@types/react": "^18.3.0",
|
|
53
|
+
"tsx": "^4.19.0",
|
|
54
|
+
"typescript": "^5.7.0"
|
|
55
|
+
},
|
|
56
|
+
"license": "MIT",
|
|
57
|
+
"author": "Aman Intelligence",
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "git",
|
|
60
|
+
"url": "git+https://github.com/amandeavor/aman-intelligence-CLI.git"
|
|
61
|
+
},
|
|
62
|
+
"bugs": {
|
|
63
|
+
"url": "https://github.com/amandeavor/aman-intelligence-CLI/issues"
|
|
64
|
+
},
|
|
65
|
+
"homepage": "https://github.com/amandeavor/aman-intelligence-CLI#readme",
|
|
66
|
+
"keywords": [
|
|
67
|
+
"ai",
|
|
68
|
+
"workflow",
|
|
69
|
+
"cli",
|
|
70
|
+
"assets",
|
|
71
|
+
"mcp",
|
|
72
|
+
"skills",
|
|
73
|
+
"prompts",
|
|
74
|
+
"agentic-coding",
|
|
75
|
+
"developer-tools"
|
|
76
|
+
]
|
|
77
|
+
}
|