incur 0.3.14 → 0.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +55 -4
- package/dist/Cli.js.map +1 -1
- package/dist/Fetch.d.ts.map +1 -1
- package/dist/Fetch.js +10 -9
- package/dist/Fetch.js.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +6 -1
- package/dist/Formatter.js.map +1 -1
- package/dist/Help.d.ts +1 -1
- package/dist/Help.d.ts.map +1 -1
- package/dist/Help.js +4 -3
- package/dist/Help.js.map +1 -1
- package/dist/Openapi.js +20 -12
- package/dist/Openapi.js.map +1 -1
- package/dist/Parser.d.ts +2 -0
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Parser.js +1 -1
- package/dist/Parser.js.map +1 -1
- package/dist/Skill.d.ts.map +1 -1
- package/dist/Skill.js +1 -1
- package/dist/Skill.js.map +1 -1
- package/dist/SyncSkills.d.ts +24 -0
- package/dist/SyncSkills.d.ts.map +1 -1
- package/dist/SyncSkills.js +46 -0
- package/dist/SyncSkills.js.map +1 -1
- package/dist/internal/command.d.ts +4 -2
- package/dist/internal/command.d.ts.map +1 -1
- package/dist/internal/command.js +4 -0
- package/dist/internal/command.js.map +1 -1
- package/package.json +1 -1
- package/src/Cli.test.ts +52 -3
- package/src/Cli.ts +62 -4
- package/src/Fetch.test.ts +21 -0
- package/src/Fetch.ts +8 -10
- package/src/Formatter.test.ts +15 -2
- package/src/Formatter.ts +5 -1
- package/src/Help.test.ts +39 -1
- package/src/Help.ts +6 -5
- package/src/Openapi.test.ts +7 -0
- package/src/Openapi.ts +19 -13
- package/src/Parser.ts +1 -1
- package/src/Skill.ts +2 -1
- package/src/SyncSkills.test.ts +63 -0
- package/src/SyncSkills.ts +78 -0
- package/src/e2e.test.ts +2 -2
- package/src/internal/command.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/command.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/internal/command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Cli.test.ts
CHANGED
|
@@ -2030,7 +2030,7 @@ describe('help', () => {
|
|
|
2030
2030
|
Integrations:
|
|
2031
2031
|
completions Generate shell completion script
|
|
2032
2032
|
mcp add Register as MCP server
|
|
2033
|
-
skills
|
|
2033
|
+
skills Sync skill files to agents (add, list)
|
|
2034
2034
|
|
|
2035
2035
|
Global Options:
|
|
2036
2036
|
--filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
|
|
@@ -2068,7 +2068,7 @@ describe('help', () => {
|
|
|
2068
2068
|
Integrations:
|
|
2069
2069
|
completions Generate shell completion script
|
|
2070
2070
|
mcp add Register as MCP server
|
|
2071
|
-
skills
|
|
2071
|
+
skills Sync skill files to agents (add, list)
|
|
2072
2072
|
|
|
2073
2073
|
Global Options:
|
|
2074
2074
|
--filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
|
|
@@ -2231,7 +2231,7 @@ describe('help', () => {
|
|
|
2231
2231
|
Integrations:
|
|
2232
2232
|
completions Generate shell completion script
|
|
2233
2233
|
mcp add Register as MCP server
|
|
2234
|
-
skills
|
|
2234
|
+
skills Sync skill files to agents (add, list)
|
|
2235
2235
|
|
|
2236
2236
|
Global Options:
|
|
2237
2237
|
--filter-output <keys> Filter output by key paths (e.g. foo,bar.baz,a[0,3])
|
|
@@ -2602,6 +2602,25 @@ describe('built-in commands', () => {
|
|
|
2602
2602
|
expect(output).toContain('--depth')
|
|
2603
2603
|
expect(output).toContain('--no-global')
|
|
2604
2604
|
})
|
|
2605
|
+
|
|
2606
|
+
test('skills list --help shows description', async () => {
|
|
2607
|
+
const cli = Cli.create('test')
|
|
2608
|
+
cli.command('ping', { run: () => ({ pong: true }) })
|
|
2609
|
+
const { output } = await serve(cli, ['skills', 'list', '--help'])
|
|
2610
|
+
expect(output).toContain('test skills list')
|
|
2611
|
+
expect(output).toContain('List skills')
|
|
2612
|
+
})
|
|
2613
|
+
|
|
2614
|
+
test('skills list shows skills with install status', async () => {
|
|
2615
|
+
const cli = Cli.create('test')
|
|
2616
|
+
cli.command('ping', { description: 'Health check', run: () => ({ pong: true }) })
|
|
2617
|
+
cli.command('greet', { description: 'Say hello', run: () => ({ hi: true }) })
|
|
2618
|
+
const { output } = await serve(cli, ['skills', 'list'])
|
|
2619
|
+
expect(output).toContain('✗')
|
|
2620
|
+
expect(output).toContain('test-ping')
|
|
2621
|
+
expect(output).toContain('test-greet')
|
|
2622
|
+
expect(output).toContain('installed')
|
|
2623
|
+
})
|
|
2605
2624
|
})
|
|
2606
2625
|
|
|
2607
2626
|
describe('skills staleness', () => {
|
|
@@ -4477,3 +4496,33 @@ describe('displayName', () => {
|
|
|
4477
4496
|
expect(parsed.meta.cta.commands[0].command).toBe('mc login')
|
|
4478
4497
|
})
|
|
4479
4498
|
})
|
|
4499
|
+
|
|
4500
|
+
test('--format rejects invalid format values', async () => {
|
|
4501
|
+
const cli = Cli.create('test').command('hello', {
|
|
4502
|
+
run: (c) => c.ok({ message: 'hi' }),
|
|
4503
|
+
})
|
|
4504
|
+
|
|
4505
|
+
const { exitCode, output } = await serve(cli, ['hello', '--format', 'xml'])
|
|
4506
|
+
expect(exitCode).toBe(1)
|
|
4507
|
+
expect(output).toMatch(/invalid|unsupported|unknown.*format/i)
|
|
4508
|
+
})
|
|
4509
|
+
|
|
4510
|
+
test('--token-limit with non-numeric value errors', async () => {
|
|
4511
|
+
const cli = Cli.create('test').command('hello', {
|
|
4512
|
+
run: (c) => c.ok({ message: 'hello world' }),
|
|
4513
|
+
})
|
|
4514
|
+
|
|
4515
|
+
const { exitCode, output } = await serve(cli, ['hello', '--token-limit', 'foo', '--json'])
|
|
4516
|
+
expect(exitCode).toBe(1)
|
|
4517
|
+
expect(output).not.toContain('NaN')
|
|
4518
|
+
})
|
|
4519
|
+
|
|
4520
|
+
test('--token-offset with non-numeric value errors', async () => {
|
|
4521
|
+
const cli = Cli.create('test').command('hello', {
|
|
4522
|
+
run: (c) => c.ok({ message: 'hello world' }),
|
|
4523
|
+
})
|
|
4524
|
+
|
|
4525
|
+
const { exitCode, output } = await serve(cli, ['hello', '--token-offset', 'foo', '--json'])
|
|
4526
|
+
expect(exitCode).toBe(1)
|
|
4527
|
+
expect(output).not.toContain('NaN')
|
|
4528
|
+
})
|
package/src/Cli.ts
CHANGED
|
@@ -656,8 +656,8 @@ async function serveImpl(
|
|
|
656
656
|
filtered[0] === 'skills' ? 0 : filtered[0] === name && filtered[1] === 'skills' ? 1 : -1
|
|
657
657
|
if (skillsIdx !== -1 && filtered[skillsIdx] === 'skills') {
|
|
658
658
|
const skillsSub = filtered[skillsIdx + 1]
|
|
659
|
-
if (skillsSub && skillsSub !== 'add') {
|
|
660
|
-
const suggestion = suggest(skillsSub, ['add'])
|
|
659
|
+
if (skillsSub && skillsSub !== 'add' && skillsSub !== 'list') {
|
|
660
|
+
const suggestion = suggest(skillsSub, ['add', 'list'])
|
|
661
661
|
const didYouMean = suggestion ? ` Did you mean '${suggestion}'?` : ''
|
|
662
662
|
const message = `'${skillsSub}' is not a command for '${name} skills'.${didYouMean}`
|
|
663
663
|
const ctaCommands: FormattedCta[] = []
|
|
@@ -685,6 +685,52 @@ async function serveImpl(
|
|
|
685
685
|
writeln(formatBuiltinHelp(name, b))
|
|
686
686
|
return
|
|
687
687
|
}
|
|
688
|
+
if (skillsSub === 'list') {
|
|
689
|
+
if (help) {
|
|
690
|
+
const b = builtinCommands.find((c) => c.name === 'skills')!
|
|
691
|
+
writeln(formatBuiltinSubcommandHelp(name, b, 'list'))
|
|
692
|
+
return
|
|
693
|
+
}
|
|
694
|
+
try {
|
|
695
|
+
const result = await SyncSkills.list(name, commands, {
|
|
696
|
+
cwd: options.sync?.cwd,
|
|
697
|
+
depth: options.sync?.depth ?? 1,
|
|
698
|
+
description: options.description,
|
|
699
|
+
include: options.sync?.include,
|
|
700
|
+
})
|
|
701
|
+
if (result.length === 0) {
|
|
702
|
+
writeln('No skills found.')
|
|
703
|
+
return
|
|
704
|
+
}
|
|
705
|
+
const lines: string[] = []
|
|
706
|
+
const maxLen = Math.max(...result.map((s) => s.name.length))
|
|
707
|
+
for (const s of result) {
|
|
708
|
+
const icon = s.installed ? '✓' : '✗'
|
|
709
|
+
const padding = s.description
|
|
710
|
+
? `${' '.repeat(maxLen - s.name.length)} ${s.description}`
|
|
711
|
+
: ''
|
|
712
|
+
lines.push(` ${icon} ${s.name}${padding}`)
|
|
713
|
+
}
|
|
714
|
+
const installedCount = result.filter((s) => s.installed).length
|
|
715
|
+
lines.push('')
|
|
716
|
+
lines.push(
|
|
717
|
+
`${result.length} skill${result.length === 1 ? '' : 's'} (${installedCount} installed)`,
|
|
718
|
+
)
|
|
719
|
+
writeln(lines.join('\n'))
|
|
720
|
+
} catch (err) {
|
|
721
|
+
writeln(
|
|
722
|
+
Formatter.format(
|
|
723
|
+
{
|
|
724
|
+
code: 'LIST_SKILLS_FAILED',
|
|
725
|
+
message: err instanceof Error ? err.message : String(err),
|
|
726
|
+
},
|
|
727
|
+
formatExplicit ? formatFlag : 'toon',
|
|
728
|
+
),
|
|
729
|
+
)
|
|
730
|
+
exit(1)
|
|
731
|
+
}
|
|
732
|
+
return
|
|
733
|
+
}
|
|
688
734
|
if (help) {
|
|
689
735
|
const b = builtinCommands.find((c) => c.name === 'skills')!
|
|
690
736
|
writeln(formatBuiltinSubcommandHelp(name, b, 'add'))
|
|
@@ -1970,6 +2016,8 @@ declare namespace serveImpl {
|
|
|
1970
2016
|
}
|
|
1971
2017
|
|
|
1972
2018
|
/** @internal Extracts built-in flags (--verbose, --format, --json, --llms, --help, --version) from argv. */
|
|
2019
|
+
const validFormats = new Set(['toon', 'json', 'yaml', 'md', 'jsonl'] as const)
|
|
2020
|
+
|
|
1973
2021
|
function extractBuiltinFlags(argv: string[], options: extractBuiltinFlags.Options = {}) {
|
|
1974
2022
|
let verbose = false
|
|
1975
2023
|
let llms = false
|
|
@@ -2005,6 +2053,10 @@ function extractBuiltinFlags(argv: string[], options: extractBuiltinFlags.Option
|
|
|
2005
2053
|
format = 'json'
|
|
2006
2054
|
formatExplicit = true
|
|
2007
2055
|
} else if (token === '--format' && argv[i + 1]) {
|
|
2056
|
+
if (!validFormats.has(argv[i + 1]! as any))
|
|
2057
|
+
throw new ParseError({
|
|
2058
|
+
message: `Invalid format: "${argv[i + 1]}". Expected one of: ${[...validFormats].join(', ')}`,
|
|
2059
|
+
})
|
|
2008
2060
|
format = argv[i + 1] as Formatter.Format
|
|
2009
2061
|
formatExplicit = true
|
|
2010
2062
|
i++
|
|
@@ -2028,10 +2080,16 @@ function extractBuiltinFlags(argv: string[], options: extractBuiltinFlags.Option
|
|
|
2028
2080
|
filterOutput = argv[i + 1]!
|
|
2029
2081
|
i++
|
|
2030
2082
|
} else if (token === '--token-limit' && argv[i + 1]) {
|
|
2031
|
-
|
|
2083
|
+
const n = Number(argv[i + 1])
|
|
2084
|
+
if (!Number.isFinite(n) || argv[i + 1]!.trim() === '')
|
|
2085
|
+
throw new ParseError({ message: `Invalid value for --token-limit: "${argv[i + 1]}"` })
|
|
2086
|
+
tokenLimit = n
|
|
2032
2087
|
i++
|
|
2033
2088
|
} else if (token === '--token-offset' && argv[i + 1]) {
|
|
2034
|
-
|
|
2089
|
+
const n = Number(argv[i + 1])
|
|
2090
|
+
if (!Number.isFinite(n) || argv[i + 1]!.trim() === '')
|
|
2091
|
+
throw new ParseError({ message: `Invalid value for --token-offset: "${argv[i + 1]}"` })
|
|
2092
|
+
tokenOffset = n
|
|
2035
2093
|
i++
|
|
2036
2094
|
} else if (token === '--token-count') tokenCount = true
|
|
2037
2095
|
else rest.push(token)
|
package/src/Fetch.test.ts
CHANGED
|
@@ -82,6 +82,27 @@ describe('parseArgv', () => {
|
|
|
82
82
|
expect(input.query.get('limit')).toBe('5')
|
|
83
83
|
})
|
|
84
84
|
|
|
85
|
+
test('--method as last token throws missing value error', () => {
|
|
86
|
+
expect(() => Fetch.parseArgv(['users', '--method'])).toThrow('Missing value for --method')
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
test('-X as last token throws missing value error', () => {
|
|
90
|
+
expect(() => Fetch.parseArgv(['users', '-X'])).toThrow('Missing value for -X')
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
test('--header as last token throws missing value error', () => {
|
|
94
|
+
expect(() => Fetch.parseArgv(['users', '--header'])).toThrow('Missing value for --header')
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
test('--limit as last token throws missing value error', () => {
|
|
98
|
+
expect(() => Fetch.parseArgv(['users', '--limit'])).toThrow('Missing value for --limit')
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
test('unknown short flag does not swallow the next token', () => {
|
|
102
|
+
const input = Fetch.parseArgv(['users', '-z', 'create'])
|
|
103
|
+
expect(input.path).toBe('/users/create')
|
|
104
|
+
})
|
|
105
|
+
|
|
85
106
|
test('mixed tokens, flags, and query params', () => {
|
|
86
107
|
const input = Fetch.parseArgv([
|
|
87
108
|
'users',
|
package/src/Fetch.ts
CHANGED
|
@@ -43,24 +43,22 @@ export function parseArgv(argv: string[]): FetchInput {
|
|
|
43
43
|
} else {
|
|
44
44
|
const key = token.slice(2)
|
|
45
45
|
const value = argv[i + 1]
|
|
46
|
-
if (
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
query.set(key, value!)
|
|
51
|
-
i += 2
|
|
52
|
-
}
|
|
46
|
+
if (value === undefined) throw new Error(`Missing value for --${key}`)
|
|
47
|
+
if (reservedFlags.has(key)) handleReserved(key, value)
|
|
48
|
+
else query.set(key, value)
|
|
49
|
+
i += 2
|
|
53
50
|
}
|
|
54
51
|
} else if (token.startsWith('-') && token.length === 2) {
|
|
55
52
|
const short = token[1]!
|
|
56
53
|
const mapped = reservedShort[short]
|
|
57
|
-
const value = argv[i + 1]!
|
|
58
54
|
if (mapped) {
|
|
55
|
+
const value = argv[i + 1]
|
|
56
|
+
if (value === undefined) throw new Error(`Missing value for -${short}`)
|
|
59
57
|
handleReserved(mapped, value)
|
|
60
58
|
i += 2
|
|
61
59
|
} else {
|
|
62
|
-
// Unknown short flag —
|
|
63
|
-
i
|
|
60
|
+
// Unknown short flag — treat as single token, don't consume next
|
|
61
|
+
i++
|
|
64
62
|
}
|
|
65
63
|
} else {
|
|
66
64
|
segments.push(token)
|
package/src/Formatter.test.ts
CHANGED
|
@@ -296,8 +296,21 @@ describe('format md', () => {
|
|
|
296
296
|
})
|
|
297
297
|
|
|
298
298
|
describe('format jsonl', () => {
|
|
299
|
-
test('
|
|
299
|
+
test('single object outputs one JSON line', () => {
|
|
300
300
|
const result = Formatter.format({ message: 'hello' }, 'jsonl')
|
|
301
|
-
expect(result).toMatchInlineSnapshot(`"message:
|
|
301
|
+
expect(result).toMatchInlineSnapshot(`"{"message":"hello"}"`)
|
|
302
|
+
})
|
|
303
|
+
|
|
304
|
+
test('array outputs one JSON line per element', () => {
|
|
305
|
+
const result = Formatter.format([{ id: 1 }, { id: 2 }], 'jsonl')
|
|
306
|
+
expect(result).toMatchInlineSnapshot(`
|
|
307
|
+
"{"id":1}
|
|
308
|
+
{"id":2}"
|
|
309
|
+
`)
|
|
310
|
+
})
|
|
311
|
+
|
|
312
|
+
test('scalar value outputs JSON', () => {
|
|
313
|
+
expect(Formatter.format(42, 'jsonl')).toMatchInlineSnapshot(`"42"`)
|
|
314
|
+
expect(Formatter.format('hi', 'jsonl')).toMatchInlineSnapshot(`""hi""`)
|
|
302
315
|
})
|
|
303
316
|
})
|
package/src/Formatter.ts
CHANGED
|
@@ -10,7 +10,11 @@ export function format(value: unknown, fmt: Format = 'toon'): string {
|
|
|
10
10
|
if (fmt === 'json') return JSON.stringify(value, null, 2)
|
|
11
11
|
if (fmt === 'yaml') return yamlStringify(value)
|
|
12
12
|
if (fmt === 'md') return formatMarkdown(value)
|
|
13
|
-
|
|
13
|
+
if (fmt === 'jsonl') {
|
|
14
|
+
if (Array.isArray(value)) return value.map((v) => JSON.stringify(v)).join('\n')
|
|
15
|
+
return JSON.stringify(value)
|
|
16
|
+
}
|
|
17
|
+
// toon (default)
|
|
14
18
|
if (isScalar(value)) return String(value)
|
|
15
19
|
return encode(value as Record<string, unknown>)
|
|
16
20
|
}
|
package/src/Help.test.ts
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
import { Help, z } from 'incur'
|
|
2
2
|
|
|
3
|
+
describe('redact: short secrets should not leak characters', () => {
|
|
4
|
+
/**
|
|
5
|
+
* The internal `redact()` function is exercised through `formatCommand`
|
|
6
|
+
* by passing an env schema + envSource with a set value.
|
|
7
|
+
*/
|
|
8
|
+
function getRedactedValue(secret: string): string {
|
|
9
|
+
const env = z.object({ SECRET: z.string().describe('a secret') })
|
|
10
|
+
const output = Help.formatCommand('test', {
|
|
11
|
+
env,
|
|
12
|
+
envSource: { SECRET: secret },
|
|
13
|
+
hideGlobalOptions: true,
|
|
14
|
+
})
|
|
15
|
+
const match = output.match(/set:\s*(\S+)/)
|
|
16
|
+
if (!match) throw new Error(`Could not find "set:" in output:\n${output}`)
|
|
17
|
+
return match[1]!
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
test('1-char secret is fully masked', () => {
|
|
21
|
+
const redacted = getRedactedValue('x')
|
|
22
|
+
expect(redacted).not.toContain('x')
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
test('2-char secret does not leak any character', () => {
|
|
26
|
+
const redacted = getRedactedValue('ab')
|
|
27
|
+
expect(redacted).not.toContain('b')
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
test('3-char secret does not leak any character', () => {
|
|
31
|
+
const redacted = getRedactedValue('abc')
|
|
32
|
+
expect(redacted).not.toContain('c')
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
test('4-char secret does not leak any character', () => {
|
|
36
|
+
const redacted = getRedactedValue('wxyz')
|
|
37
|
+
expect(redacted).not.toContain('z')
|
|
38
|
+
})
|
|
39
|
+
})
|
|
40
|
+
|
|
3
41
|
describe('formatCommand', () => {
|
|
4
42
|
test('formats leaf command with args and options', () => {
|
|
5
43
|
const result = Help.formatCommand('gh pr list', {
|
|
@@ -306,7 +344,7 @@ describe('formatRoot', () => {
|
|
|
306
344
|
Integrations:
|
|
307
345
|
completions Generate shell completion script
|
|
308
346
|
mcp add Register as MCP server
|
|
309
|
-
skills
|
|
347
|
+
skills Sync skill files to agents (add, list)
|
|
310
348
|
|
|
311
349
|
Global Options:
|
|
312
350
|
--config <path> Load JSON option defaults from a file
|
package/src/Help.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { z } from 'zod'
|
|
|
2
2
|
|
|
3
3
|
import { builtinCommands } from './internal/command.js'
|
|
4
4
|
import { toKebab } from './internal/helpers.js'
|
|
5
|
+
import { defaultEnvSource } from './Parser.js'
|
|
5
6
|
|
|
6
7
|
/** Formats help text for a router CLI or command group. */
|
|
7
8
|
export function formatRoot(name: string, options: formatRoot.Options = {}): string {
|
|
@@ -55,7 +56,7 @@ export declare namespace formatRoot {
|
|
|
55
56
|
export declare namespace formatCommand {
|
|
56
57
|
type Options = {
|
|
57
58
|
/** Map of option names to single-char aliases. */
|
|
58
|
-
alias?: Record<string, string
|
|
59
|
+
alias?: Partial<Record<string, string>> | undefined
|
|
59
60
|
/** Alternative binary names for this CLI. */
|
|
60
61
|
aliases?: string[] | undefined
|
|
61
62
|
/** Zod schema for positional arguments. */
|
|
@@ -217,7 +218,7 @@ export function formatCommand(name: string, options: formatCommand.Options = {})
|
|
|
217
218
|
for (const entry of entries) {
|
|
218
219
|
const padding = ' '.repeat(maxLen - entry.name.length)
|
|
219
220
|
const parts: string[] = [entry.description]
|
|
220
|
-
const source = envSource ??
|
|
221
|
+
const source = envSource ?? defaultEnvSource()
|
|
221
222
|
if (entry.name in source) parts.push(`set: ${redact(source[entry.name]!)}`)
|
|
222
223
|
if (entry.defaultValue !== undefined) parts.push(`default: ${entry.defaultValue}`)
|
|
223
224
|
const desc = parts.length > 1 ? `${parts[0]} (${parts.slice(1).join(', ')})` : parts[0]
|
|
@@ -260,7 +261,7 @@ function envEntries(schema: z.ZodObject<any>) {
|
|
|
260
261
|
}
|
|
261
262
|
|
|
262
263
|
/** Extracts option entries from a Zod object schema. */
|
|
263
|
-
function optionEntries(schema: z.ZodObject<any>, alias?: Record<string, string
|
|
264
|
+
function optionEntries(schema: z.ZodObject<any>, alias?: Partial<Record<string, string>> | undefined) {
|
|
264
265
|
const entries: {
|
|
265
266
|
flag: string
|
|
266
267
|
description: string
|
|
@@ -387,8 +388,8 @@ function globalOptionsLines(root = false, configFlag?: string): string[] {
|
|
|
387
388
|
return lines
|
|
388
389
|
}
|
|
389
390
|
|
|
390
|
-
/** Redacts a value, showing only the last 4 characters. */
|
|
391
|
+
/** Redacts a value, showing only the last 4 characters for long values. */
|
|
391
392
|
function redact(value: string): string {
|
|
392
|
-
if (value.length <= 4) return
|
|
393
|
+
if (value.length <= 4) return '****'
|
|
393
394
|
return `****${value.slice(-4)}`
|
|
394
395
|
}
|
package/src/Openapi.test.ts
CHANGED
|
@@ -47,6 +47,13 @@ describe('generateCommands', () => {
|
|
|
47
47
|
const cmd = commands.get('listUsers')!
|
|
48
48
|
expect(cmd.description).toBe('List users')
|
|
49
49
|
})
|
|
50
|
+
|
|
51
|
+
test('coerced number params preserve description', async () => {
|
|
52
|
+
const commands = await Openapi.generateCommands(spec, app.fetch)
|
|
53
|
+
const cmd = commands.get('listUsers')!
|
|
54
|
+
const limitSchema = cmd.options!.shape.limit
|
|
55
|
+
expect(limitSchema.description).toBe('Max results')
|
|
56
|
+
})
|
|
50
57
|
})
|
|
51
58
|
|
|
52
59
|
describe('cli integration', () => {
|
package/src/Openapi.ts
CHANGED
|
@@ -186,20 +186,26 @@ function coerceIfNeeded(schema: z.ZodType): z.ZodType {
|
|
|
186
186
|
const isOptional = schema instanceof z.ZodOptional
|
|
187
187
|
const inner = isOptional ? schema.unwrap() : schema
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
if (inner instanceof z.ZodBoolean)
|
|
193
|
-
return isOptional ? z.coerce.boolean().optional() : z.coerce.boolean()
|
|
194
|
-
|
|
195
|
-
// Union containing number (e.g. type: ["number", "null"] from OpenAPI 3.1)
|
|
196
|
-
if (inner instanceof z.ZodUnion) {
|
|
197
|
-
const options = (inner as any)._zod?.def?.options as z.ZodType[] | undefined
|
|
198
|
-
if (options?.some((o: z.ZodType) => o instanceof z.ZodNumber))
|
|
189
|
+
const coerced = (() => {
|
|
190
|
+
// Direct number
|
|
191
|
+
if (inner instanceof z.ZodNumber)
|
|
199
192
|
return isOptional ? z.coerce.number().optional() : z.coerce.number()
|
|
200
|
-
|
|
193
|
+
// Direct boolean
|
|
194
|
+
if (inner instanceof z.ZodBoolean)
|
|
201
195
|
return isOptional ? z.coerce.boolean().optional() : z.coerce.boolean()
|
|
202
|
-
|
|
196
|
+
// Union containing number or boolean (e.g. type: ["number", "null"] from OpenAPI 3.1)
|
|
197
|
+
if (inner instanceof z.ZodUnion) {
|
|
198
|
+
const options = (inner as any)._zod?.def?.options as z.ZodType[] | undefined
|
|
199
|
+
if (options?.some((o: z.ZodType) => o instanceof z.ZodNumber))
|
|
200
|
+
return isOptional ? z.coerce.number().optional() : z.coerce.number()
|
|
201
|
+
if (options?.some((o: z.ZodType) => o instanceof z.ZodBoolean))
|
|
202
|
+
return isOptional ? z.coerce.boolean().optional() : z.coerce.boolean()
|
|
203
|
+
}
|
|
204
|
+
// No coercion needed
|
|
205
|
+
return undefined
|
|
206
|
+
})()
|
|
203
207
|
|
|
204
|
-
return schema
|
|
208
|
+
if (!coerced) return schema
|
|
209
|
+
const desc = (schema as any).description ?? (inner as any).description
|
|
210
|
+
return desc ? coerced.describe(desc) : coerced
|
|
205
211
|
}
|
package/src/Parser.ts
CHANGED
|
@@ -315,7 +315,7 @@ function coerce(value: unknown, name: string, schema: z.ZodObject<any>): unknown
|
|
|
315
315
|
}
|
|
316
316
|
|
|
317
317
|
/** Returns the best available env source for the current runtime. */
|
|
318
|
-
function defaultEnvSource(): Record<string, string | undefined> {
|
|
318
|
+
export function defaultEnvSource(): Record<string, string | undefined> {
|
|
319
319
|
if (typeof globalThis !== 'undefined') {
|
|
320
320
|
const g = globalThis as any
|
|
321
321
|
if (g.process?.env) return g.process.env
|
package/src/Skill.ts
CHANGED
|
@@ -133,7 +133,8 @@ function renderGroup(
|
|
|
133
133
|
const childDescs = cmds.map((c) => c.description).filter(Boolean) as string[]
|
|
134
134
|
const descParts: string[] = []
|
|
135
135
|
if (groupDesc) descParts.push(groupDesc.replace(/\.$/, ''))
|
|
136
|
-
if (childDescs.length > 0)
|
|
136
|
+
if (childDescs.length > 0)
|
|
137
|
+
descParts.push(childDescs.map((d) => d.replace(/\.$/, '')).join(', '))
|
|
137
138
|
const description =
|
|
138
139
|
descParts.length > 0
|
|
139
140
|
? `${descParts.join('. ')}. Run \`${title} --help\` for usage details.`
|
package/src/SyncSkills.test.ts
CHANGED
|
@@ -125,3 +125,66 @@ test('installed SKILL.md contains frontmatter', async () => {
|
|
|
125
125
|
|
|
126
126
|
rmSync(tmp, { recursive: true, force: true })
|
|
127
127
|
})
|
|
128
|
+
|
|
129
|
+
test('list returns skills from command map', async () => {
|
|
130
|
+
const cli = Cli.create('test', { description: 'A test CLI' })
|
|
131
|
+
cli.command('ping', { description: 'Health check', run: () => ({}) })
|
|
132
|
+
cli.command('greet', { description: 'Say hello', run: () => ({}) })
|
|
133
|
+
|
|
134
|
+
const commands = Cli.toCommands.get(cli)!
|
|
135
|
+
const result = await SyncSkills.list('test', commands)
|
|
136
|
+
|
|
137
|
+
expect(result.length).toBeGreaterThan(0)
|
|
138
|
+
const names = result.map((s) => s.name)
|
|
139
|
+
expect(names).toContain('test-ping')
|
|
140
|
+
expect(names).toContain('test-greet')
|
|
141
|
+
for (const s of result) {
|
|
142
|
+
expect(s.installed).toBe(false)
|
|
143
|
+
expect(s.description).toBeDefined()
|
|
144
|
+
}
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
test('list shows installed status after sync', async () => {
|
|
148
|
+
const tmp = join(tmpdir(), `clac-list-test-${Date.now()}`)
|
|
149
|
+
mkdirSync(tmp, { recursive: true })
|
|
150
|
+
process.env.XDG_DATA_HOME = tmp
|
|
151
|
+
|
|
152
|
+
const cli = Cli.create('test')
|
|
153
|
+
cli.command('ping', { description: 'Ping', run: () => ({}) })
|
|
154
|
+
|
|
155
|
+
const commands = Cli.toCommands.get(cli)!
|
|
156
|
+
const installDir = join(tmp, 'install')
|
|
157
|
+
mkdirSync(join(installDir, '.agents', 'skills'), { recursive: true })
|
|
158
|
+
|
|
159
|
+
// Sync first to install
|
|
160
|
+
await SyncSkills.sync('test', commands, {
|
|
161
|
+
global: false,
|
|
162
|
+
cwd: installDir,
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
// Now list should show installed
|
|
166
|
+
const result = await SyncSkills.list('test', commands)
|
|
167
|
+
expect(result.length).toBeGreaterThan(0)
|
|
168
|
+
for (const s of result) expect(s.installed).toBe(true)
|
|
169
|
+
|
|
170
|
+
rmSync(tmp, { recursive: true, force: true })
|
|
171
|
+
})
|
|
172
|
+
|
|
173
|
+
test('list returns empty for CLI with no commands', async () => {
|
|
174
|
+
const cli = Cli.create('empty')
|
|
175
|
+
const commands = Cli.toCommands.get(cli)!
|
|
176
|
+
const result = await SyncSkills.list('empty', commands)
|
|
177
|
+
expect(result).toHaveLength(0)
|
|
178
|
+
})
|
|
179
|
+
|
|
180
|
+
test('list results are sorted alphabetically', async () => {
|
|
181
|
+
const cli = Cli.create('test')
|
|
182
|
+
cli.command('zebra', { description: 'Z command', run: () => ({}) })
|
|
183
|
+
cli.command('alpha', { description: 'A command', run: () => ({}) })
|
|
184
|
+
cli.command('middle', { description: 'M command', run: () => ({}) })
|
|
185
|
+
|
|
186
|
+
const commands = Cli.toCommands.get(cli)!
|
|
187
|
+
const result = await SyncSkills.list('test', commands)
|
|
188
|
+
const names = result.map((s) => s.name)
|
|
189
|
+
expect(names).toEqual([...names].sort())
|
|
190
|
+
})
|