@codemieai/code 0.0.58 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -15
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +3 -0
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +18 -0
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/plugin/commands/README.md +2 -31
- package/dist/agents/plugins/claude/plugin/commands/codemie-catchup.md +5 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +42 -43
- package/dist/agents/plugins/claude/plugin/commands/codemie-subagents.md +5 -0
- package/dist/agents/plugins/claude/plugin/commands/handoff.md +56 -0
- package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +5 -0
- package/dist/agents/plugins/claude/plugin/hooks/hooks.json +1 -1
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-rewrite.sh +101 -0
- package/dist/agents/plugins/claude/plugin/skills/msgraph/README.md +4 -1
- package/dist/agents/plugins/claude/plugin/skills/msgraph/SKILL.md +27 -8
- package/dist/agents/plugins/claude/plugin/skills/msgraph/scripts/msgraph.js +63 -3
- package/dist/agents/plugins/claude/plugin/skills/report-issue/SKILL.md +1 -0
- package/dist/assets/demo.gif +0 -0
- package/dist/assets/skills-sh-egress-guard.cjs +166 -0
- package/dist/cli/commands/assistants/setup/constants.d.ts +1 -25
- package/dist/cli/commands/assistants/setup/constants.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/constants.js +1 -20
- package/dist/cli/commands/assistants/setup/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts +4 -4
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js +11 -10
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +4 -4
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +11 -9
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.d.ts +4 -18
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/helpers.js +10 -60
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -1
- package/dist/cli/commands/assistants/setup/index.d.ts +0 -8
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/index.js +20 -164
- package/dist/cli/commands/assistants/setup/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/actions.d.ts +1 -30
- package/dist/cli/commands/assistants/setup/selection/actions.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/actions.js +1 -320
- package/dist/cli/commands/assistants/setup/selection/actions.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/constants.d.ts +3 -65
- package/dist/cli/commands/assistants/setup/selection/constants.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/constants.js +4 -81
- package/dist/cli/commands/assistants/setup/selection/constants.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/index.d.ts +1 -9
- package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/index.js +14 -34
- package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts +1 -19
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +1 -338
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/types.d.ts +7 -23
- package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts +0 -8
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -1
- package/dist/cli/commands/assistants/setup/selection/ui.js +7 -123
- package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -1
- package/dist/cli/commands/doctor/index.d.ts.map +1 -1
- package/dist/cli/commands/doctor/index.js +10 -1
- package/dist/cli/commands/doctor/index.js.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop-managed-mcp-servers.json +50 -0
- package/dist/cli/commands/proxy/connectors/desktop.d.ts +13 -3
- package/dist/cli/commands/proxy/connectors/desktop.d.ts.map +1 -1
- package/dist/cli/commands/proxy/connectors/desktop.js +47 -4
- package/dist/cli/commands/proxy/connectors/desktop.js.map +1 -1
- package/dist/cli/commands/proxy/index.d.ts.map +1 -1
- package/dist/cli/commands/proxy/index.js +89 -52
- package/dist/cli/commands/proxy/index.js.map +1 -1
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +2 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/shared/constants.d.ts +15 -0
- package/dist/cli/commands/shared/constants.d.ts.map +1 -0
- package/dist/cli/commands/shared/constants.js +10 -0
- package/dist/cli/commands/shared/constants.js.map +1 -0
- package/dist/cli/commands/shared/helpers.d.ts +12 -0
- package/dist/cli/commands/shared/helpers.d.ts.map +1 -0
- package/dist/cli/commands/shared/helpers.js +54 -0
- package/dist/cli/commands/shared/helpers.js.map +1 -0
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts +6 -0
- package/dist/cli/commands/shared/prompts/storage-scope.d.ts.map +1 -0
- package/dist/cli/commands/shared/prompts/storage-scope.js +84 -0
- package/dist/cli/commands/shared/prompts/storage-scope.js.map +1 -0
- package/dist/cli/commands/shared/selection/actions.d.ts +40 -0
- package/dist/cli/commands/shared/selection/actions.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/actions.js +264 -0
- package/dist/cli/commands/shared/selection/actions.js.map +1 -0
- package/dist/cli/commands/shared/selection/constants.d.ts +68 -0
- package/dist/cli/commands/shared/selection/constants.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/constants.js +70 -0
- package/dist/cli/commands/shared/selection/constants.js.map +1 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.d.ts +16 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.js +276 -0
- package/dist/cli/commands/shared/selection/interactive-prompt.js.map +1 -0
- package/dist/cli/commands/shared/selection/types.d.ts +31 -0
- package/dist/cli/commands/shared/selection/types.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/types.js +2 -0
- package/dist/cli/commands/shared/selection/types.js.map +1 -0
- package/dist/cli/commands/shared/selection/ui.d.ts +9 -0
- package/dist/cli/commands/shared/selection/ui.d.ts.map +1 -0
- package/dist/cli/commands/shared/selection/ui.js +92 -0
- package/dist/cli/commands/shared/selection/ui.js.map +1 -0
- package/dist/cli/commands/skills/add.d.ts +9 -0
- package/dist/cli/commands/skills/add.d.ts.map +1 -0
- package/dist/cli/commands/skills/add.js +187 -0
- package/dist/cli/commands/skills/add.js.map +1 -0
- package/dist/cli/commands/skills/find.d.ts +17 -0
- package/dist/cli/commands/skills/find.d.ts.map +1 -0
- package/dist/cli/commands/skills/find.js +94 -0
- package/dist/cli/commands/skills/find.js.map +1 -0
- package/dist/cli/commands/skills/index.d.ts +10 -0
- package/dist/cli/commands/skills/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/index.js +23 -0
- package/dist/cli/commands/skills/index.js.map +1 -0
- package/dist/cli/commands/skills/lib/agent-detection.d.ts +27 -0
- package/dist/cli/commands/skills/lib/agent-detection.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/agent-detection.js +50 -0
- package/dist/cli/commands/skills/lib/agent-detection.js.map +1 -0
- package/dist/cli/commands/skills/lib/error-classify.d.ts +14 -0
- package/dist/cli/commands/skills/lib/error-classify.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/error-classify.js +64 -0
- package/dist/cli/commands/skills/lib/error-classify.js.map +1 -0
- package/dist/cli/commands/skills/lib/require-auth.d.ts +17 -0
- package/dist/cli/commands/skills/lib/require-auth.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/require-auth.js +44 -0
- package/dist/cli/commands/skills/lib/require-auth.js.map +1 -0
- package/dist/cli/commands/skills/lib/result-render.d.ts +26 -0
- package/dist/cli/commands/skills/lib/result-render.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/result-render.js +77 -0
- package/dist/cli/commands/skills/lib/result-render.js.map +1 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.d.ts +46 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.js +217 -0
- package/dist/cli/commands/skills/lib/run-skills-cli.js.map +1 -0
- package/dist/cli/commands/skills/lib/sanitize.d.ts +17 -0
- package/dist/cli/commands/skills/lib/sanitize.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/sanitize.js +73 -0
- package/dist/cli/commands/skills/lib/sanitize.js.map +1 -0
- package/dist/cli/commands/skills/lib/skills-metrics.d.ts +74 -0
- package/dist/cli/commands/skills/lib/skills-metrics.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/skills-metrics.js +268 -0
- package/dist/cli/commands/skills/lib/skills-metrics.js.map +1 -0
- package/dist/cli/commands/skills/lib/skills-search-client.d.ts +36 -0
- package/dist/cli/commands/skills/lib/skills-search-client.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/skills-search-client.js +147 -0
- package/dist/cli/commands/skills/lib/skills-search-client.js.map +1 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts +10 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.d.ts.map +1 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.js +33 -0
- package/dist/cli/commands/skills/lib/skills-sh-telemetry.js.map +1 -0
- package/dist/cli/commands/skills/list.d.ts +13 -0
- package/dist/cli/commands/skills/list.d.ts.map +1 -0
- package/dist/cli/commands/skills/list.js +55 -0
- package/dist/cli/commands/skills/list.js.map +1 -0
- package/dist/cli/commands/skills/remove.d.ts +11 -0
- package/dist/cli/commands/skills/remove.d.ts.map +1 -0
- package/dist/cli/commands/skills/remove.js +93 -0
- package/dist/cli/commands/skills/remove.js.map +1 -0
- package/dist/cli/commands/skills/setup/constants.d.ts +2 -0
- package/dist/cli/commands/skills/setup/constants.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/constants.js +2 -0
- package/dist/cli/commands/skills/setup/constants.js.map +1 -0
- package/dist/cli/commands/skills/setup/data.d.ts +28 -0
- package/dist/cli/commands/skills/setup/data.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/data.js +79 -0
- package/dist/cli/commands/skills/setup/data.js.map +1 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts +12 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js +94 -0
- package/dist/cli/commands/skills/setup/generators/claude-skill-generator.js.map +1 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts +12 -0
- package/dist/cli/commands/skills/setup/helpers.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/helpers.js +31 -0
- package/dist/cli/commands/skills/setup/helpers.js.map +1 -0
- package/dist/cli/commands/skills/setup/index.d.ts +5 -0
- package/dist/cli/commands/skills/setup/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/index.js +137 -0
- package/dist/cli/commands/skills/setup/index.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/actions.d.ts +2 -0
- package/dist/cli/commands/skills/setup/selection/actions.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/actions.js +2 -0
- package/dist/cli/commands/skills/setup/selection/actions.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/constants.d.ts +11 -0
- package/dist/cli/commands/skills/setup/selection/constants.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/constants.js +11 -0
- package/dist/cli/commands/skills/setup/selection/constants.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/index.d.ts +13 -0
- package/dist/cli/commands/skills/setup/selection/index.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/index.js +113 -0
- package/dist/cli/commands/skills/setup/selection/index.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.d.ts +2 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.js +2 -0
- package/dist/cli/commands/skills/setup/selection/interactive-prompt.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/types.d.ts +13 -0
- package/dist/cli/commands/skills/setup/selection/types.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/types.js +2 -0
- package/dist/cli/commands/skills/setup/selection/types.js.map +1 -0
- package/dist/cli/commands/skills/setup/selection/ui.d.ts +3 -0
- package/dist/cli/commands/skills/setup/selection/ui.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/selection/ui.js +68 -0
- package/dist/cli/commands/skills/setup/selection/ui.js.map +1 -0
- package/dist/cli/commands/skills/setup/sync.d.ts +13 -0
- package/dist/cli/commands/skills/setup/sync.d.ts.map +1 -0
- package/dist/cli/commands/skills/setup/sync.js +46 -0
- package/dist/cli/commands/skills/setup/sync.js.map +1 -0
- package/dist/cli/commands/skills/update.d.ts +7 -0
- package/dist/cli/commands/skills/update.d.ts.map +1 -0
- package/dist/cli/commands/skills/update.js +71 -0
- package/dist/cli/commands/skills/update.js.map +1 -0
- package/dist/cli/first-time.d.ts.map +1 -1
- package/dist/cli/first-time.js +4 -0
- package/dist/cli/first-time.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +14 -0
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/providers/core/types.d.ts +1 -1
- package/dist/providers/core/types.d.ts.map +1 -1
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.d.ts.map +1 -1
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js +26 -2
- package/dist/providers/plugins/anthropic-subscription/anthropic-subscription.template.js.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts +31 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.d.ts.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js +148 -0
- package/dist/providers/plugins/sso/proxy/plugins/claude-request-normalizer.plugin.js.map +1 -0
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts +12 -13
- package/dist/providers/plugins/sso/proxy/plugins/index.d.ts.map +1 -1
- package/dist/providers/plugins/sso/proxy/plugins/index.js +15 -17
- package/dist/providers/plugins/sso/proxy/plugins/index.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.d.ts +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +3 -3
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/providers/plugins/sso/sso.models.js +2 -2
- package/dist/providers/plugins/sso/sso.models.js.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js +6 -10
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
- package/dist/utils/config.d.ts +14 -3
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +95 -5
- package/dist/utils/config.js.map +1 -1
- package/package.json +22 -10
- package/scripts/copy-plugins.js +5 -0
- package/scripts/sonar/package.json +3 -0
- package/scripts/sonar/run-local-sonar.js +405 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-commit.md +0 -31
- package/dist/agents/plugins/claude/plugin/scripts/bash/rtk-auto-wrapper.sh +0 -81
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts +0 -30
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.d.ts.map +0 -1
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.js +0 -111
- package/dist/providers/plugins/sso/proxy/plugins/claude-thinking-transformer.plugin.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/cli/commands/skills/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `codemie skills find <query>` — two-section search across the EPAM
|
|
3
|
+
* internal catalog and the public skills.sh registry.
|
|
4
|
+
* Find/search intentionally does not emit CodeMie lifecycle metrics because
|
|
5
|
+
* interactive discovery can be noisy and does not change installed state.
|
|
6
|
+
*
|
|
7
|
+
* - Empty query: delegates to upstream `skills find` so the existing
|
|
8
|
+
* interactive prompt keeps working. The egress guard shim still
|
|
9
|
+
* applies on that path.
|
|
10
|
+
* - Query <2 chars: prints the upstream-style hint and exits 0.
|
|
11
|
+
* - Query >=2 chars: fetches both sections in parallel; each section
|
|
12
|
+
* degrades independently. Exit 0 if any HTTP call succeeded; exit 1
|
|
13
|
+
* only when every attempted call failed.
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
export declare function createFindCommand(): Command;
|
|
17
|
+
//# sourceMappingURL=find.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/skills/find.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,iBAAiB,IAAI,OAAO,CA6D3C"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `codemie skills find <query>` — two-section search across the EPAM
|
|
3
|
+
* internal catalog and the public skills.sh registry.
|
|
4
|
+
* Find/search intentionally does not emit CodeMie lifecycle metrics because
|
|
5
|
+
* interactive discovery can be noisy and does not change installed state.
|
|
6
|
+
*
|
|
7
|
+
* - Empty query: delegates to upstream `skills find` so the existing
|
|
8
|
+
* interactive prompt keeps working. The egress guard shim still
|
|
9
|
+
* applies on that path.
|
|
10
|
+
* - Query <2 chars: prints the upstream-style hint and exits 0.
|
|
11
|
+
* - Query >=2 chars: fetches both sections in parallel; each section
|
|
12
|
+
* degrades independently. Exit 0 if any HTTP call succeeded; exit 1
|
|
13
|
+
* only when every attempted call failed.
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
import { logger } from '../../../utils/logger.js';
|
|
17
|
+
import { runSkillsCli } from './lib/run-skills-cli.js';
|
|
18
|
+
import { requireAuthenticatedSession } from './lib/require-auth.js';
|
|
19
|
+
import { resolveInternalContext, searchInternal, searchPublic, } from './lib/skills-search-client.js';
|
|
20
|
+
import { renderSections, renderJson } from './lib/result-render.js';
|
|
21
|
+
const MIN_QUERY_CHARS = 2;
|
|
22
|
+
const DEFAULT_LIMIT = 10;
|
|
23
|
+
const MAX_LIMIT = 50;
|
|
24
|
+
export function createFindCommand() {
|
|
25
|
+
return new Command('find')
|
|
26
|
+
.description('Search EPAM internal and public skills.sh catalogs')
|
|
27
|
+
.argument('[query]', 'search query; without one the upstream interactive prompt is launched')
|
|
28
|
+
.option('--json', 'emit machine-readable JSON instead of the formatted output')
|
|
29
|
+
.option('--limit <n>', `max results per section (default ${DEFAULT_LIMIT}, max ${MAX_LIMIT})`)
|
|
30
|
+
.action(async (query, options) => {
|
|
31
|
+
await requireAuthenticatedSession();
|
|
32
|
+
if (!query) {
|
|
33
|
+
await delegateToUpstream();
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const trimmed = query.trim();
|
|
37
|
+
if (trimmed.length < MIN_QUERY_CHARS) {
|
|
38
|
+
process.stdout.write(`Start typing (min ${MIN_QUERY_CHARS} chars)\n`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const limit = clampLimit(options.limit);
|
|
42
|
+
// Resolve the internal endpoint and SSO headers once. The same
|
|
43
|
+
// result drives both the "internal configured" UX flag and the
|
|
44
|
+
// HTTP call inside `searchInternal`, so we avoid loading config
|
|
45
|
+
// multiple times per invocation.
|
|
46
|
+
const internalContext = await resolveInternalContext();
|
|
47
|
+
const internalConfigured = internalContext !== null;
|
|
48
|
+
const [internal, publicResults] = await Promise.all([
|
|
49
|
+
searchInternal(trimmed, limit, internalContext),
|
|
50
|
+
searchPublic(trimmed, limit),
|
|
51
|
+
]);
|
|
52
|
+
const succeededCalls = (internalConfigured && internal.available ? 1 : 0) +
|
|
53
|
+
(publicResults.available ? 1 : 0);
|
|
54
|
+
const allFailed = succeededCalls === 0;
|
|
55
|
+
const renderInput = {
|
|
56
|
+
query: trimmed,
|
|
57
|
+
internal,
|
|
58
|
+
public: publicResults,
|
|
59
|
+
internalConfigured,
|
|
60
|
+
};
|
|
61
|
+
if (options.json) {
|
|
62
|
+
process.stdout.write(`${JSON.stringify(renderJson(renderInput), null, 2)}\n`);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
process.stdout.write(renderSections(renderInput));
|
|
66
|
+
}
|
|
67
|
+
if (allFailed) {
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
async function delegateToUpstream() {
|
|
73
|
+
const cwd = process.cwd();
|
|
74
|
+
try {
|
|
75
|
+
const result = await runSkillsCli(['find'], { cwd });
|
|
76
|
+
if (result.code === 0) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
process.exit(result.code || 1);
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
logger.error(`[skills] find failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function clampLimit(raw) {
|
|
87
|
+
if (!raw)
|
|
88
|
+
return DEFAULT_LIMIT;
|
|
89
|
+
const parsed = Number.parseInt(raw, 10);
|
|
90
|
+
if (!Number.isFinite(parsed) || parsed <= 0)
|
|
91
|
+
return DEFAULT_LIMIT;
|
|
92
|
+
return Math.min(parsed, MAX_LIMIT);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=find.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../src/cli/commands/skills/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commander wiring for `codemie skills`.
|
|
3
|
+
*
|
|
4
|
+
* The wrapper delegates installation/management to the upstream `skills`
|
|
5
|
+
* CLI while gating commands on CodeMie SSO authentication, blocking
|
|
6
|
+
* upstream telemetry/audit egress, and emitting minimal lifecycle metrics.
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
export declare function createSkillsCommand(): Command;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mBAAmB,IAAI,OAAO,CAY7C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commander wiring for `codemie skills`.
|
|
3
|
+
*
|
|
4
|
+
* The wrapper delegates installation/management to the upstream `skills`
|
|
5
|
+
* CLI while gating commands on CodeMie SSO authentication, blocking
|
|
6
|
+
* upstream telemetry/audit egress, and emitting minimal lifecycle metrics.
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from 'commander';
|
|
9
|
+
import { createAddCommand } from './add.js';
|
|
10
|
+
import { createUpdateCommand } from './update.js';
|
|
11
|
+
import { createRemoveCommand } from './remove.js';
|
|
12
|
+
import { createListCommand } from './list.js';
|
|
13
|
+
import { createFindCommand } from './find.js';
|
|
14
|
+
export function createSkillsCommand() {
|
|
15
|
+
const command = new Command('skills').description('Install, manage, and discover skills via the upstream skills CLI and the CodeMie catalog');
|
|
16
|
+
command.addCommand(createAddCommand());
|
|
17
|
+
command.addCommand(createUpdateCommand());
|
|
18
|
+
command.addCommand(createRemoveCommand());
|
|
19
|
+
command.addCommand(createListCommand());
|
|
20
|
+
command.addCommand(createFindCommand());
|
|
21
|
+
return command;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/skills/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC/C,0FAA0F,CAC3F,CAAC;IAEF,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAExC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local project agent detection for `codemie skills add`.
|
|
3
|
+
*
|
|
4
|
+
* The wrapper inspects only strong project-local markers (well-known
|
|
5
|
+
* directories that unambiguously identify an agent runtime in the current
|
|
6
|
+
* project). Source-domain, registry ownership, or catalog labels are
|
|
7
|
+
* intentionally NOT considered — discovery and trust live in the future
|
|
8
|
+
* CodeMie UI/catalog, not in this CLI.
|
|
9
|
+
*/
|
|
10
|
+
export type AgentSelectionMode = 'explicit' | 'auto_detected' | 'prompted' | 'upstream';
|
|
11
|
+
export interface AgentSelection {
|
|
12
|
+
agents: string[];
|
|
13
|
+
mode: AgentSelectionMode;
|
|
14
|
+
}
|
|
15
|
+
export interface ResolveAgentSelectionOptions {
|
|
16
|
+
cwd: string;
|
|
17
|
+
/** Values from `--agent` exactly as supplied by the user (may be empty/undefined). */
|
|
18
|
+
explicitAgents?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* False when the wrapper must not prompt (e.g. `--yes`, non-TTY).
|
|
21
|
+
* When ambiguous and non-interactive, the wrapper falls through to
|
|
22
|
+
* upstream so skills.sh handles the selection itself.
|
|
23
|
+
*/
|
|
24
|
+
interactive: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function resolveAgentSelection(options: ResolveAgentSelectionOptions): Promise<AgentSelection>;
|
|
27
|
+
//# sourceMappingURL=agent-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detection.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/agent-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,MAAM,kBAAkB,GAC1B,UAAU,GACV,eAAe,GACf,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAgBD,MAAM,WAAW,4BAA4B;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sFAAsF;IACtF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,cAAc,CAAC,CAwCzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local project agent detection for `codemie skills add`.
|
|
3
|
+
*
|
|
4
|
+
* The wrapper inspects only strong project-local markers (well-known
|
|
5
|
+
* directories that unambiguously identify an agent runtime in the current
|
|
6
|
+
* project). Source-domain, registry ownership, or catalog labels are
|
|
7
|
+
* intentionally NOT considered — discovery and trust live in the future
|
|
8
|
+
* CodeMie UI/catalog, not in this CLI.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync } from 'node:fs';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import inquirer from 'inquirer';
|
|
13
|
+
import { logger } from '../../../../utils/logger.js';
|
|
14
|
+
const STRONG_MARKERS = [
|
|
15
|
+
{ dir: '.claude', agent: 'claude-code', label: 'Claude Code (.claude/)' },
|
|
16
|
+
{ dir: '.cursor', agent: 'cursor', label: 'Cursor (.cursor/)' },
|
|
17
|
+
];
|
|
18
|
+
export async function resolveAgentSelection(options) {
|
|
19
|
+
const { cwd, explicitAgents, interactive } = options;
|
|
20
|
+
if (explicitAgents && explicitAgents.length > 0) {
|
|
21
|
+
return { agents: [...explicitAgents], mode: 'explicit' };
|
|
22
|
+
}
|
|
23
|
+
const detected = detectStrongMarkers(cwd);
|
|
24
|
+
if (detected.length === 0) {
|
|
25
|
+
return { agents: [], mode: 'upstream' };
|
|
26
|
+
}
|
|
27
|
+
if (detected.length === 1) {
|
|
28
|
+
const marker = detected[0];
|
|
29
|
+
logger.debug(`[skills] Auto-detected agent "${marker.agent}" from marker ${marker.dir}/`);
|
|
30
|
+
return { agents: [marker.agent], mode: 'auto_detected' };
|
|
31
|
+
}
|
|
32
|
+
if (!interactive) {
|
|
33
|
+
logger.debug(`[skills] Multiple agent markers detected but running non-interactively; deferring to upstream`);
|
|
34
|
+
return { agents: [], mode: 'upstream' };
|
|
35
|
+
}
|
|
36
|
+
const answer = await inquirer.prompt([
|
|
37
|
+
{
|
|
38
|
+
type: 'checkbox',
|
|
39
|
+
name: 'selected',
|
|
40
|
+
message: 'Multiple agent markers detected. Select target agents:',
|
|
41
|
+
choices: detected.map((m) => ({ name: m.label, value: m.agent })),
|
|
42
|
+
validate: (input) => input.length > 0 ? true : 'Select at least one agent',
|
|
43
|
+
},
|
|
44
|
+
]);
|
|
45
|
+
return { agents: answer.selected, mode: 'prompted' };
|
|
46
|
+
}
|
|
47
|
+
function detectStrongMarkers(cwd) {
|
|
48
|
+
return STRONG_MARKERS.filter((marker) => existsSync(path.join(cwd, marker.dir)));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=agent-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-detection.js","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/agent-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAsB3C,MAAM,cAAc,GAA4B;IAC9C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,wBAAwB,EAAE;IACzE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE;CAChE,CAAC;AAcF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAqC;IAErC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAErD,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CACV,iCAAiC,MAAM,CAAC,KAAK,iBAAiB,MAAM,CAAC,GAAG,GAAG,CAC5E,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CACV,+FAA+F,CAChG,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAyB;QAC3D;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,wDAAwD;YACjE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE,CACrC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B;SACxD;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps stable upstream `skills` CLI failures to short error codes for metrics.
|
|
3
|
+
*
|
|
4
|
+
* Conservative by design: when the upstream wording changes, the wrapper
|
|
5
|
+
* returns `unknown` rather than parsing fragile interactive output.
|
|
6
|
+
*/
|
|
7
|
+
import type { ExecResult } from '../../../../utils/exec.js';
|
|
8
|
+
export type SkillErrorCode = 'egress_blocked' | 'skill_not_found' | 'git_fetch_timeout' | 'git_fetch_failed' | 'interrupted' | 'all_searches_failed' | 'unknown';
|
|
9
|
+
export interface ClassifyInput {
|
|
10
|
+
result?: Pick<ExecResult, 'code' | 'stdout' | 'stderr' | 'signal'>;
|
|
11
|
+
error?: unknown;
|
|
12
|
+
}
|
|
13
|
+
export declare function classifySkillError(input: ClassifyInput): SkillErrorCode;
|
|
14
|
+
//# sourceMappingURL=error-classify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-classify.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/error-classify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,qBAAqB,GACrB,SAAS,CAAC;AAEd,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACnE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAcD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAwBvE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maps stable upstream `skills` CLI failures to short error codes for metrics.
|
|
3
|
+
*
|
|
4
|
+
* Conservative by design: when the upstream wording changes, the wrapper
|
|
5
|
+
* returns `unknown` rather than parsing fragile interactive output.
|
|
6
|
+
*/
|
|
7
|
+
const EGRESS_MARKERS = ['CODEMIE_SKILL_EGRESS_BLOCKED', 'add-skill.vercel.sh'];
|
|
8
|
+
const TIMEOUT_MARKERS = ['CODEMIE_SKILLS_TIMEOUT', 'timed out'];
|
|
9
|
+
const NOT_FOUND_MARKERS = ['skill not found', 'no such skill', 'could not find skill'];
|
|
10
|
+
const GIT_FETCH_MARKERS = [
|
|
11
|
+
'git clone',
|
|
12
|
+
'git fetch',
|
|
13
|
+
'failed to fetch',
|
|
14
|
+
'unable to access',
|
|
15
|
+
'could not resolve host',
|
|
16
|
+
'remote: not found',
|
|
17
|
+
];
|
|
18
|
+
export function classifySkillError(input) {
|
|
19
|
+
if (isInterrupted(input)) {
|
|
20
|
+
return 'interrupted';
|
|
21
|
+
}
|
|
22
|
+
const haystack = collectHaystack(input).toLowerCase();
|
|
23
|
+
if (containsAny(haystack, EGRESS_MARKERS)) {
|
|
24
|
+
return 'egress_blocked';
|
|
25
|
+
}
|
|
26
|
+
if (containsAny(haystack, TIMEOUT_MARKERS)) {
|
|
27
|
+
return 'git_fetch_timeout';
|
|
28
|
+
}
|
|
29
|
+
if (containsAny(haystack, NOT_FOUND_MARKERS)) {
|
|
30
|
+
return 'skill_not_found';
|
|
31
|
+
}
|
|
32
|
+
if (containsAny(haystack, GIT_FETCH_MARKERS)) {
|
|
33
|
+
return 'git_fetch_failed';
|
|
34
|
+
}
|
|
35
|
+
return 'unknown';
|
|
36
|
+
}
|
|
37
|
+
function isInterrupted(input) {
|
|
38
|
+
if (input.result?.signal === 'SIGINT' || input.result?.signal === 'SIGTERM') {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
if (input.result?.code === 130) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
if (input.error instanceof Error && /terminated by signal/i.test(input.error.message)) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
function collectHaystack(input) {
|
|
50
|
+
const parts = [];
|
|
51
|
+
if (input.result?.stderr)
|
|
52
|
+
parts.push(input.result.stderr);
|
|
53
|
+
if (input.result?.stdout)
|
|
54
|
+
parts.push(input.result.stdout);
|
|
55
|
+
if (input.error instanceof Error)
|
|
56
|
+
parts.push(input.error.message);
|
|
57
|
+
else if (typeof input.error === 'string')
|
|
58
|
+
parts.push(input.error);
|
|
59
|
+
return parts.join('\n');
|
|
60
|
+
}
|
|
61
|
+
function containsAny(haystack, markers) {
|
|
62
|
+
return markers.some((marker) => haystack.includes(marker.toLowerCase()));
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=error-classify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-classify.js","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/error-classify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,MAAM,cAAc,GAAG,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAC/E,MAAM,eAAe,GAAG,CAAC,wBAAwB,EAAE,WAAW,CAAC,CAAC;AAChE,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;AACvF,MAAM,iBAAiB,GAAG;IACxB,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,kBAAkB;IAClB,wBAAwB;IACxB,mBAAmB;CACpB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAEtD,IAAI,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;QAC1C,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;QAC3C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAC7C,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,YAAY,KAAK,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,KAAK,YAAY,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,OAA0B;IAC/D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hard auth gate for `codemie skills *` subcommands.
|
|
3
|
+
*
|
|
4
|
+
* Per spec §7, every subcommand must verify CodeMie SSO credentials before
|
|
5
|
+
* any side effect (skills.sh spawn, metrics emission, etc.). On failure the
|
|
6
|
+
* wrapper prints the canonical SSO message to stderr and exits with code 1.
|
|
7
|
+
* No metric is emitted because the metrics transport itself depends on the
|
|
8
|
+
* authenticated context that is missing.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Verify SSO credentials are present.
|
|
12
|
+
*
|
|
13
|
+
* @returns true on success. On failure, logs the canonical message and
|
|
14
|
+
* calls `process.exit(1)` (does not return).
|
|
15
|
+
*/
|
|
16
|
+
export declare function requireAuthenticatedSession(): Promise<boolean>;
|
|
17
|
+
//# sourceMappingURL=require-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-auth.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/require-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;;;;GAKG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAqBpE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hard auth gate for `codemie skills *` subcommands.
|
|
3
|
+
*
|
|
4
|
+
* Per spec §7, every subcommand must verify CodeMie SSO credentials before
|
|
5
|
+
* any side effect (skills.sh spawn, metrics emission, etc.). On failure the
|
|
6
|
+
* wrapper prints the canonical SSO message to stderr and exits with code 1.
|
|
7
|
+
* No metric is emitted because the metrics transport itself depends on the
|
|
8
|
+
* authenticated context that is missing.
|
|
9
|
+
*/
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
import { ConfigLoader } from '../../../../utils/config.js';
|
|
12
|
+
import { logger } from '../../../../utils/logger.js';
|
|
13
|
+
const NOT_AUTHENTICATED_MESSAGE = 'CodeMie SSO authentication required. Run "codemie setup" or "codemie profile login" first.';
|
|
14
|
+
/**
|
|
15
|
+
* Verify SSO credentials are present.
|
|
16
|
+
*
|
|
17
|
+
* @returns true on success. On failure, logs the canonical message and
|
|
18
|
+
* calls `process.exit(1)` (does not return).
|
|
19
|
+
*/
|
|
20
|
+
export async function requireAuthenticatedSession() {
|
|
21
|
+
try {
|
|
22
|
+
const config = await ConfigLoader.load();
|
|
23
|
+
const lookupUrl = config.codeMieUrl || config.baseUrl;
|
|
24
|
+
if (!lookupUrl) {
|
|
25
|
+
failAuth('No CodeMie URL configured. Run "codemie setup" first.');
|
|
26
|
+
}
|
|
27
|
+
const { CodeMieSSO } = await import('../../../../providers/plugins/sso/sso.auth.js');
|
|
28
|
+
const sso = new CodeMieSSO();
|
|
29
|
+
const credentials = await sso.getStoredCredentials(lookupUrl);
|
|
30
|
+
if (!credentials?.cookies || Object.keys(credentials.cookies).length === 0) {
|
|
31
|
+
failAuth(NOT_AUTHENTICATED_MESSAGE);
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
logger.debug('[skills] Auth check threw; treating as unauthenticated', error);
|
|
37
|
+
failAuth(NOT_AUTHENTICATED_MESSAGE);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function failAuth(message) {
|
|
41
|
+
console.error(chalk.red(`\n${message}\n`));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=require-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-auth.js","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/require-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,yBAAyB,GAC7B,4FAA4F,CAAC;AAE/F;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,QAAQ,CAAC,uDAAuD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3E,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;QAC9E,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SearchSection, SkillSearchResult } from './skills-search-client.js';
|
|
2
|
+
export interface RenderInput {
|
|
3
|
+
query: string;
|
|
4
|
+
internal: SearchSection;
|
|
5
|
+
public: SearchSection;
|
|
6
|
+
/**
|
|
7
|
+
* `true` when an internal search URL is resolved (env var or config).
|
|
8
|
+
* Distinguishes "no configured endpoint" (placeholder text) from
|
|
9
|
+
* "configured endpoint, HTTP failed" (no-results message).
|
|
10
|
+
*/
|
|
11
|
+
internalConfigured: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface JsonOutput {
|
|
14
|
+
query: string;
|
|
15
|
+
internal: {
|
|
16
|
+
available: boolean;
|
|
17
|
+
results: SkillSearchResult[];
|
|
18
|
+
};
|
|
19
|
+
public: {
|
|
20
|
+
available: boolean;
|
|
21
|
+
results: SkillSearchResult[];
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare function renderSections(input: RenderInput): string;
|
|
25
|
+
export declare function renderJson(input: RenderInput): JsonOutput;
|
|
26
|
+
//# sourceMappingURL=result-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-render.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/result-render.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AASlF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;IAC/D,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAC;CAC9D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAiBzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAMzD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure formatters for `codemie skills find` output.
|
|
3
|
+
*
|
|
4
|
+
* Two surfaces:
|
|
5
|
+
* - `renderSections` — chalk-colored two-section text for humans.
|
|
6
|
+
* - `renderJson` — machine-readable shape for `--json`.
|
|
7
|
+
*
|
|
8
|
+
* Both are deterministic given the same input. The orchestrator owns
|
|
9
|
+
* stdout/stderr writes and exit codes.
|
|
10
|
+
*/
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
const PLACEHOLDER_INTERNAL_NOT_CONFIGURED = 'No internal results yet — internal catalog coming soon.';
|
|
13
|
+
const PUBLIC_UNAVAILABLE = 'Public search unavailable. Try again later.';
|
|
14
|
+
const NO_INTERNAL_RESULTS = 'No internal results.';
|
|
15
|
+
const NO_PUBLIC_RESULTS = 'No public results.';
|
|
16
|
+
const INSTALL_HINT = 'Install with: codemie skills add <owner/repo@skill>';
|
|
17
|
+
export function renderSections(input) {
|
|
18
|
+
const lines = [];
|
|
19
|
+
lines.push('');
|
|
20
|
+
lines.push(`${chalk.dim('Searching for')} ${chalk.bold(`"${input.query}"`)}${chalk.dim('…')}`);
|
|
21
|
+
lines.push('');
|
|
22
|
+
lines.push(chalk.bold('EPAM Internal'));
|
|
23
|
+
lines.push(...renderInternalBody(input));
|
|
24
|
+
lines.push('');
|
|
25
|
+
lines.push(chalk.bold('Public (skills.sh)'));
|
|
26
|
+
lines.push(...renderPublicBody(input.public));
|
|
27
|
+
lines.push('');
|
|
28
|
+
lines.push(chalk.dim(INSTALL_HINT));
|
|
29
|
+
lines.push('');
|
|
30
|
+
return lines.join('\n');
|
|
31
|
+
}
|
|
32
|
+
export function renderJson(input) {
|
|
33
|
+
return {
|
|
34
|
+
query: input.query,
|
|
35
|
+
internal: { available: input.internal.available, results: input.internal.results },
|
|
36
|
+
public: { available: input.public.available, results: input.public.results },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function renderInternalBody(input) {
|
|
40
|
+
if (!input.internalConfigured) {
|
|
41
|
+
return [` ${chalk.dim(PLACEHOLDER_INTERNAL_NOT_CONFIGURED)}`];
|
|
42
|
+
}
|
|
43
|
+
if (!input.internal.available || input.internal.results.length === 0) {
|
|
44
|
+
return [` ${chalk.dim(NO_INTERNAL_RESULTS)}`];
|
|
45
|
+
}
|
|
46
|
+
return formatResultBlock(input.internal.results);
|
|
47
|
+
}
|
|
48
|
+
function renderPublicBody(section) {
|
|
49
|
+
if (!section.available) {
|
|
50
|
+
return [` ${chalk.dim(PUBLIC_UNAVAILABLE)}`];
|
|
51
|
+
}
|
|
52
|
+
if (section.results.length === 0) {
|
|
53
|
+
return [` ${chalk.dim(NO_PUBLIC_RESULTS)}`];
|
|
54
|
+
}
|
|
55
|
+
return formatResultBlock(section.results);
|
|
56
|
+
}
|
|
57
|
+
function formatResultBlock(results) {
|
|
58
|
+
return results.flatMap((result) => {
|
|
59
|
+
const label = result.source && result.name ? `${result.source}@${result.name}` : result.slug;
|
|
60
|
+
const installs = formatInstalls(result.installs);
|
|
61
|
+
const headLine = installs ? ` ${label} ${chalk.cyan(installs)}` : ` ${label}`;
|
|
62
|
+
const detailLine = ` ${chalk.dim(`└ https://skills.sh/${result.slug}`)}`;
|
|
63
|
+
return [headLine, detailLine];
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function formatInstalls(count) {
|
|
67
|
+
if (!count || count <= 0)
|
|
68
|
+
return '';
|
|
69
|
+
if (count >= 1_000_000) {
|
|
70
|
+
return `${(count / 1_000_000).toFixed(1).replace(/\.0$/, '')}M installs`;
|
|
71
|
+
}
|
|
72
|
+
if (count >= 1_000) {
|
|
73
|
+
return `${(count / 1_000).toFixed(1).replace(/\.0$/, '')}K installs`;
|
|
74
|
+
}
|
|
75
|
+
return `${count} install${count === 1 ? '' : 's'}`;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=result-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-render.js","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/result-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spawns the upstream `skills` CLI as a child Node process with safe defaults:
|
|
3
|
+
*
|
|
4
|
+
* - Blocks upstream telemetry/audit egress to `add-skill.vercel.sh` via a
|
|
5
|
+
* `NODE_OPTIONS=--require <shim>` injection.
|
|
6
|
+
* - Sets `DO_NOT_TRACK` / `DISABLE_TELEMETRY` / `CI` so the upstream
|
|
7
|
+
* `track()` env gate is closed.
|
|
8
|
+
* - Inherits stdio so interactive prompts from `skills.sh` keep working.
|
|
9
|
+
*
|
|
10
|
+
* Resolution rules:
|
|
11
|
+
*
|
|
12
|
+
* - The skills bin is resolved from the project's `node_modules`
|
|
13
|
+
* (`skills/bin/cli.mjs`).
|
|
14
|
+
* - The egress shim is resolved from this module's own directory; both the
|
|
15
|
+
* source layout (`<repo>/src/cli/commands/skills/lib`) and the dist layout
|
|
16
|
+
* (`<repo>/dist/cli/commands/skills/lib`) are supported by walking up to
|
|
17
|
+
* the package root and checking `dist/assets/...` first, then
|
|
18
|
+
* `assets/...` as a fallback for ts-node / dev runs.
|
|
19
|
+
*/
|
|
20
|
+
import type { ExecResult } from '../../../../utils/exec.js';
|
|
21
|
+
export interface RunSkillsCliOptions {
|
|
22
|
+
cwd?: string;
|
|
23
|
+
/**
|
|
24
|
+
* When false, output is captured (used for non-interactive CLI flows like
|
|
25
|
+
* `list --json`). When true (default), stdio is inherited so the child can
|
|
26
|
+
* prompt the user.
|
|
27
|
+
*/
|
|
28
|
+
interactive?: boolean;
|
|
29
|
+
/** Additional env to merge in (caller may override telemetry vars too). */
|
|
30
|
+
env?: Record<string, string>;
|
|
31
|
+
/** Maximum runtime before terminating the upstream CLI. */
|
|
32
|
+
timeoutMs?: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Spawn the upstream `skills` CLI directly (not via the project `exec()` helper)
|
|
36
|
+
* because that helper rejects on non-zero exit when `interactive: true`. We need
|
|
37
|
+
* to surface the real exit code so `classifySkillError()` can map upstream
|
|
38
|
+
* failures to stable `error_code` values; rejection collapses everything to
|
|
39
|
+
* `unknown`.
|
|
40
|
+
*
|
|
41
|
+
* Even in interactive mode, child stderr is captured (in addition to being
|
|
42
|
+
* tee'd to the parent terminal) so that markers like
|
|
43
|
+
* `CODEMIE_SKILL_EGRESS_BLOCKED` remain visible to the classifier.
|
|
44
|
+
*/
|
|
45
|
+
export declare function runSkillsCli(args: string[], options?: RunSkillsCliOptions): Promise<ExecResult>;
|
|
46
|
+
//# sourceMappingURL=run-skills-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-skills-cli.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/skills/lib/run-skills-cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOlD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,UAAU,CAAC,CAmJrB"}
|