@namzu/cli 2.2.0 → 2.4.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/dist/skills/store.d.ts +38 -3
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/skills/store.js +58 -24
- package/dist/skills/store.js.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/App.js +23 -3
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/Composer.d.ts +4 -1
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/Composer.js +2 -2
- package/dist/tui/Composer.js.map +1 -1
- package/dist/tui/slashCommands.d.ts +9 -1
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/slashCommands.js +45 -14
- package/dist/tui/slashCommands.js.map +1 -1
- package/dist/user-commands/store.d.ts +95 -0
- package/dist/user-commands/store.d.ts.map +1 -0
- package/dist/user-commands/store.js +153 -0
- package/dist/user-commands/store.js.map +1 -0
- package/package.json +2 -2
package/dist/skills/store.d.ts
CHANGED
|
@@ -17,6 +17,16 @@ export interface SkillInfo {
|
|
|
17
17
|
readonly description: string;
|
|
18
18
|
readonly path: string;
|
|
19
19
|
readonly source: SkillSource;
|
|
20
|
+
/**
|
|
21
|
+
* Why this skill cannot be used, when it cannot.
|
|
22
|
+
*
|
|
23
|
+
* A `SKILL.md` whose frontmatter does not parse is REFUSED rather than
|
|
24
|
+
* loaded with the metadata missing, but refusing it must not take the rest
|
|
25
|
+
* of the roster with it: one unreadable file in `~/.namzu/skills` would
|
|
26
|
+
* otherwise leave the operator with no skills and no reason. So it stays in
|
|
27
|
+
* the list, named, carrying the reason it is unusable.
|
|
28
|
+
*/
|
|
29
|
+
readonly problem?: string;
|
|
20
30
|
}
|
|
21
31
|
export declare function userSkillsDir(home?: string): string;
|
|
22
32
|
export declare function projectSkillsDir(cwd?: string): string;
|
|
@@ -26,10 +36,35 @@ interface ParsedSkill {
|
|
|
26
36
|
readonly body: string;
|
|
27
37
|
}
|
|
28
38
|
/**
|
|
29
|
-
* Split `SKILL.md` into frontmatter (name/description) + body.
|
|
30
|
-
*
|
|
39
|
+
* Split `SKILL.md` into frontmatter (name/description) + body.
|
|
40
|
+
*
|
|
41
|
+
* Reads through the kernel's `parseFrontmatter`, which is the point: this file
|
|
42
|
+
* used to carry its own regex, `/^---\n…\n---\n?/`, and that regex is LF-only.
|
|
43
|
+
* A `SKILL.md` saved on Windows has CRLF line endings, so the match failed, the
|
|
44
|
+
* whole file was treated as body, and the skill was listed under its directory
|
|
45
|
+
* name with `(no description)`. It did not fail — it described the skill
|
|
46
|
+
* wrongly, which is the shape that survives review.
|
|
47
|
+
*
|
|
48
|
+
* ## Absent frontmatter is fine; broken frontmatter is not
|
|
49
|
+
*
|
|
50
|
+
* These were the same case here and are not the same thing. A file with no
|
|
51
|
+
* frontmatter is a documented, supported shape (`docs/cli/skills.md`): the body
|
|
52
|
+
* is the skill. A file that opens a fence and then fails to parse is an author
|
|
53
|
+
* who tried to write metadata and got it wrong, and answering that with "no
|
|
54
|
+
* metadata, carry on" put the broken YAML into the body — and from there
|
|
55
|
+
* verbatim into the system prompt.
|
|
56
|
+
*
|
|
57
|
+
* So the fence decides. No fence, no parser: body only, exactly as documented.
|
|
58
|
+
* A fence present hands the file to the kernel reader, which throws rather than
|
|
59
|
+
* returning a partial result. The absence test mirrors the reader's own
|
|
60
|
+
* (`raw.trimStart().startsWith('---')`) so the two cannot disagree about what
|
|
61
|
+
* counts as having frontmatter — two readers disagreeing on that is the defect
|
|
62
|
+
* this consolidation exists to remove.
|
|
63
|
+
*
|
|
64
|
+
* @param source A label for the error message, e.g. the file's path.
|
|
65
|
+
* @throws When a fence is present and the frontmatter cannot be read.
|
|
31
66
|
*/
|
|
32
|
-
export declare function parseSkillMarkdown(raw: string): ParsedSkill;
|
|
67
|
+
export declare function parseSkillMarkdown(raw: string, source?: string): ParsedSkill;
|
|
33
68
|
/**
|
|
34
69
|
* Discover all skills, project shadowing user on name clash. Returns an
|
|
35
70
|
* empty list when no skill dirs exist.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5C,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAA;AAE5C,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEpE;AAED,UAAU,WAAW;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAa,GAAG,WAAW,CAahF;AA8CD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,SAAS,EAAE,CAOtF;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAGrD;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACnD,MAAM,GAAG,IAAI,CASf"}
|
package/dist/skills/store.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { readFileSync, readdirSync } from 'node:fs';
|
|
15
15
|
import { homedir } from 'node:os';
|
|
16
16
|
import { join } from 'node:path';
|
|
17
|
-
import {
|
|
17
|
+
import { parseFrontmatter } from '@namzu/sdk';
|
|
18
18
|
export function userSkillsDir(home = homedir()) {
|
|
19
19
|
return join(home, '.namzu', 'skills');
|
|
20
20
|
}
|
|
@@ -22,29 +22,45 @@ export function projectSkillsDir(cwd = process.cwd()) {
|
|
|
22
22
|
return join(cwd, 'skills');
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Split `SKILL.md` into frontmatter (name/description) + body.
|
|
26
|
-
*
|
|
25
|
+
* Split `SKILL.md` into frontmatter (name/description) + body.
|
|
26
|
+
*
|
|
27
|
+
* Reads through the kernel's `parseFrontmatter`, which is the point: this file
|
|
28
|
+
* used to carry its own regex, `/^---\n…\n---\n?/`, and that regex is LF-only.
|
|
29
|
+
* A `SKILL.md` saved on Windows has CRLF line endings, so the match failed, the
|
|
30
|
+
* whole file was treated as body, and the skill was listed under its directory
|
|
31
|
+
* name with `(no description)`. It did not fail — it described the skill
|
|
32
|
+
* wrongly, which is the shape that survives review.
|
|
33
|
+
*
|
|
34
|
+
* ## Absent frontmatter is fine; broken frontmatter is not
|
|
35
|
+
*
|
|
36
|
+
* These were the same case here and are not the same thing. A file with no
|
|
37
|
+
* frontmatter is a documented, supported shape (`docs/cli/skills.md`): the body
|
|
38
|
+
* is the skill. A file that opens a fence and then fails to parse is an author
|
|
39
|
+
* who tried to write metadata and got it wrong, and answering that with "no
|
|
40
|
+
* metadata, carry on" put the broken YAML into the body — and from there
|
|
41
|
+
* verbatim into the system prompt.
|
|
42
|
+
*
|
|
43
|
+
* So the fence decides. No fence, no parser: body only, exactly as documented.
|
|
44
|
+
* A fence present hands the file to the kernel reader, which throws rather than
|
|
45
|
+
* returning a partial result. The absence test mirrors the reader's own
|
|
46
|
+
* (`raw.trimStart().startsWith('---')`) so the two cannot disagree about what
|
|
47
|
+
* counts as having frontmatter — two readers disagreeing on that is the defect
|
|
48
|
+
* this consolidation exists to remove.
|
|
49
|
+
*
|
|
50
|
+
* @param source A label for the error message, e.g. the file's path.
|
|
51
|
+
* @throws When a fence is present and the frontmatter cannot be read.
|
|
27
52
|
*/
|
|
28
|
-
export function parseSkillMarkdown(raw) {
|
|
29
|
-
|
|
30
|
-
if (!match)
|
|
53
|
+
export function parseSkillMarkdown(raw, source = 'SKILL.md') {
|
|
54
|
+
if (!raw.trimStart().startsWith('---'))
|
|
31
55
|
return { body: raw.trim() };
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (typeof meta.description === 'string')
|
|
41
|
-
description = meta.description;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// Malformed frontmatter → treat as no metadata; body still usable.
|
|
46
|
-
}
|
|
47
|
-
return { name, description, body: (body ?? '').trim() };
|
|
56
|
+
const { values, body } = parseFrontmatter(raw, source);
|
|
57
|
+
// A non-scalar `name` or `description` is dropped rather than rendered:
|
|
58
|
+
// there is no sensible string for a block of indented pairs, and the
|
|
59
|
+
// fallbacks below (directory name, "(no description)") are the honest
|
|
60
|
+
// answer for a key that did not carry one.
|
|
61
|
+
const name = values.name?.kind === 'scalar' ? values.name.value : undefined;
|
|
62
|
+
const description = values.description?.kind === 'scalar' ? values.description.value : undefined;
|
|
63
|
+
return { name, description, body };
|
|
48
64
|
}
|
|
49
65
|
function readSkillsFrom(dir, source) {
|
|
50
66
|
let entries;
|
|
@@ -66,7 +82,23 @@ function readSkillsFrom(dir, source) {
|
|
|
66
82
|
catch {
|
|
67
83
|
continue;
|
|
68
84
|
}
|
|
69
|
-
|
|
85
|
+
let parsed;
|
|
86
|
+
try {
|
|
87
|
+
parsed = parseSkillMarkdown(raw, path);
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
// Refused, but still listed. One unreadable file must not empty the
|
|
91
|
+
// roster and leave the operator without a reason — the whole point of
|
|
92
|
+
// refusing instead of degrading is that somebody gets told.
|
|
93
|
+
skills.push({
|
|
94
|
+
name: dirName,
|
|
95
|
+
description: '(could not be read)',
|
|
96
|
+
path,
|
|
97
|
+
source,
|
|
98
|
+
problem: err instanceof Error ? err.message : String(err),
|
|
99
|
+
});
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
70
102
|
skills.push({
|
|
71
103
|
name: parsed.name ?? dirName,
|
|
72
104
|
description: parsed.description ?? '(no description)',
|
|
@@ -92,7 +124,9 @@ export function discoverSkills(opts = {}) {
|
|
|
92
124
|
}
|
|
93
125
|
/** Read a skill's markdown body (frontmatter stripped). */
|
|
94
126
|
export function loadSkillBody(info) {
|
|
95
|
-
|
|
127
|
+
if (info.problem)
|
|
128
|
+
throw new Error(info.problem);
|
|
129
|
+
return parseSkillMarkdown(readFileSync(info.path, 'utf8'), info.path).body;
|
|
96
130
|
}
|
|
97
131
|
/** Compose the active-skills system block, or null when none are active. */
|
|
98
132
|
export function composeSkillsPrompt(active) {
|
package/dist/skills/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/skills/store.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/App.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuDH,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;CACxB;AAWD,wBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,2CA0zBpC"}
|
package/dist/tui/App.js
CHANGED
|
@@ -20,7 +20,8 @@ import { createAssistantMessage, createUserMessage } from '@namzu/sdk';
|
|
|
20
20
|
import { appendMessages, listRecent, loadConversation, openSessions, startConversation, } from '../integrations/sessions/store.js';
|
|
21
21
|
import { createAgentSession, probeAgentSession, } from './agent.js';
|
|
22
22
|
import { ResumePicker } from './ResumePicker.js';
|
|
23
|
-
import {
|
|
23
|
+
import { discoverUserCommands } from '../user-commands/store.js';
|
|
24
|
+
import { SLASH_COMMANDS, runSlash } from './slashCommands.js';
|
|
24
25
|
import { theme } from './theme.js';
|
|
25
26
|
export function App({ ctx }) {
|
|
26
27
|
const { exit } = useApp();
|
|
@@ -33,6 +34,11 @@ export function App({ ctx }) {
|
|
|
33
34
|
const [currentProvider, setCurrentProvider] = useState(null);
|
|
34
35
|
const [permission, setPermission] = useState(null);
|
|
35
36
|
const [activeSkills, setActiveSkills] = useState([]);
|
|
37
|
+
// Read when the session comes up rather than on every keystroke: the
|
|
38
|
+
// autocomplete dropdown consults this on each character, and a `readdirSync`
|
|
39
|
+
// per keypress is a cost nobody asked for. A file added mid-session is
|
|
40
|
+
// picked up by `/model` (which re-hydrates) or a restart.
|
|
41
|
+
const [userCommands, setUserCommands] = useState([]);
|
|
36
42
|
const [usage, setUsage] = useState(null);
|
|
37
43
|
// Context fill, straight from the kernel and held apart from `usage` —
|
|
38
44
|
// they are different quantities and conflating them is what made the
|
|
@@ -130,6 +136,13 @@ export function App({ ctx }) {
|
|
|
130
136
|
void previousSessionRef.current?.close();
|
|
131
137
|
previousSessionRef.current = s;
|
|
132
138
|
setSession(s);
|
|
139
|
+
setUserCommands(discoverUserCommands({
|
|
140
|
+
cwd: ctx.cwd,
|
|
141
|
+
// Builtins are reserved: a `help.md` must not take over `/help`.
|
|
142
|
+
// Passing the names here is what lets the loader tell its author
|
|
143
|
+
// the file is shadowed instead of leaving it silently unused.
|
|
144
|
+
reserved: SLASH_COMMANDS.map((c) => c.name),
|
|
145
|
+
}));
|
|
133
146
|
setCurrentProvider(prefs.provider);
|
|
134
147
|
if (s.hasProvider) {
|
|
135
148
|
setPhase('ready');
|
|
@@ -213,6 +226,7 @@ export function App({ ctx }) {
|
|
|
213
226
|
},
|
|
214
227
|
agentIds: session?.agentIds ?? [],
|
|
215
228
|
instructionFiles: session?.instructionFiles ?? [],
|
|
229
|
+
userCommands,
|
|
216
230
|
};
|
|
217
231
|
// `/resume`: open the picker with this folder's recent conversations.
|
|
218
232
|
const doResume = useCallback(async () => {
|
|
@@ -486,7 +500,13 @@ export function App({ ctx }) {
|
|
|
486
500
|
return;
|
|
487
501
|
}
|
|
488
502
|
const activeNames = new Set(activeSkills.map((s) => s.name));
|
|
489
|
-
const lines = skills.map((s) =>
|
|
503
|
+
const lines = skills.map((s) =>
|
|
504
|
+
// A refused skill is shown with its reason rather than hidden.
|
|
505
|
+
// Dropping it silently would leave someone wondering where a
|
|
506
|
+
// file they can see on disk went.
|
|
507
|
+
s.problem
|
|
508
|
+
? `⚠ ${s.name} — ${s.problem}`
|
|
509
|
+
: `${activeNames.has(s.name) ? '● ' : '○ '}${s.name} — ${s.description}`);
|
|
490
510
|
pushMessage('system', `Skills (● active):\n ${lines.join('\n ')}`);
|
|
491
511
|
return;
|
|
492
512
|
}
|
|
@@ -655,7 +675,7 @@ export function App({ ctx }) {
|
|
|
655
675
|
// Background is left natural — we inherit the terminal's own background
|
|
656
676
|
// and only theme the foreground. Forcing
|
|
657
677
|
// a filled bg left mismatched patches around bordered areas, so we don't.
|
|
658
|
-
return (_jsxs(Box, { flexDirection: "column", children: [phase !== 'ready' ? (_jsx(Banner, { version: ctx.version, session: session, bypass: ctx.skipPermissions === true, cwd: ctx.cwd })) : null, _jsxs(Box, { flexDirection: "column", paddingX: 1, children: [phase === 'trust' ? (_jsx(TrustPrompt, { cwd: ctx.cwd })) : phase === 'resume' ? (_jsx(ResumePicker, { conversations: resumeList, selected: selectedResume })) : phase === 'picker' ? (_jsx(Picker, { detected: detected, currentProvider: currentProvider, onSubmit: handlePickerSubmit, onCancel: handlePickerCancel })) : (_jsxs(_Fragment, { children: [_jsx(TranscriptFrame, { children: _jsx(Transcript, { messages: messages.filter((m) => !m.pending), pending: messages.find((m) => m.pending) ?? null, state: state, expanded: expanded, resetKey: resetKey, header: phase === 'ready' ? (_jsx(Banner, { version: ctx.version, session: session, bypass: ctx.skipPermissions === true, cwd: ctx.cwd })) : undefined }) }), _jsx(LiveActivity, { activeTools: activeTools, thinking: state === 'thinking' && !messages.some((m) => m.pending) }), permission ? (_jsx(PermissionOverlay, { toolCalls: permission.toolCalls })) : (_jsxs(ComposerFrame, { focus: state === 'idle' && phase === 'ready', children: [queued.length > 0 ? (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: theme.text.muted, children: ["\u23CE ", queued.length, " message", queued.length > 1 ? 's' : '', " queued \u2014 sending when ready"] }) })) : null, _jsx(Composer, { disabled: phase !== 'ready' || state === 'awaiting-permission', onSubmit: handleSubmit, history: history })] }))] })), _jsx(Box, { paddingTop: 1, children: _jsx(StatusBar, { cwd: ctx.cwd, provider: session?.providerSummary ?? null, model: session?.modelSummary ?? null, state: state, hint: hintForPhase(phase, state), usage: usage, context: context }) })] })] }));
|
|
678
|
+
return (_jsxs(Box, { flexDirection: "column", children: [phase !== 'ready' ? (_jsx(Banner, { version: ctx.version, session: session, bypass: ctx.skipPermissions === true, cwd: ctx.cwd })) : null, _jsxs(Box, { flexDirection: "column", paddingX: 1, children: [phase === 'trust' ? (_jsx(TrustPrompt, { cwd: ctx.cwd })) : phase === 'resume' ? (_jsx(ResumePicker, { conversations: resumeList, selected: selectedResume })) : phase === 'picker' ? (_jsx(Picker, { detected: detected, currentProvider: currentProvider, onSubmit: handlePickerSubmit, onCancel: handlePickerCancel })) : (_jsxs(_Fragment, { children: [_jsx(TranscriptFrame, { children: _jsx(Transcript, { messages: messages.filter((m) => !m.pending), pending: messages.find((m) => m.pending) ?? null, state: state, expanded: expanded, resetKey: resetKey, header: phase === 'ready' ? (_jsx(Banner, { version: ctx.version, session: session, bypass: ctx.skipPermissions === true, cwd: ctx.cwd })) : undefined }) }), _jsx(LiveActivity, { activeTools: activeTools, thinking: state === 'thinking' && !messages.some((m) => m.pending) }), permission ? (_jsx(PermissionOverlay, { toolCalls: permission.toolCalls })) : (_jsxs(ComposerFrame, { focus: state === 'idle' && phase === 'ready', children: [queued.length > 0 ? (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: theme.text.muted, children: ["\u23CE ", queued.length, " message", queued.length > 1 ? 's' : '', " queued \u2014 sending when ready"] }) })) : null, _jsx(Composer, { disabled: phase !== 'ready' || state === 'awaiting-permission', onSubmit: handleSubmit, userCommands: userCommands, history: history })] }))] })), _jsx(Box, { paddingTop: 1, children: _jsx(StatusBar, { cwd: ctx.cwd, provider: session?.providerSummary ?? null, model: session?.modelSummary ?? null, state: state, hint: hintForPhase(phase, state), usage: usage, context: context }) })] })] }));
|
|
659
679
|
}
|
|
660
680
|
function Banner({ version, session, bypass, cwd, }) {
|
|
661
681
|
const cols = process.stdout.columns ?? 80;
|
package/dist/tui/App.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
|
package/dist/tui/Composer.d.ts
CHANGED
|
@@ -8,10 +8,13 @@
|
|
|
8
8
|
* else browse history, Backspace deletes.
|
|
9
9
|
*/
|
|
10
10
|
import type { ImageAttachment } from '@namzu/sdk';
|
|
11
|
+
import type { UserCommand } from '../user-commands/store.js';
|
|
11
12
|
export interface ComposerProps {
|
|
12
13
|
readonly disabled?: boolean;
|
|
13
14
|
readonly onSubmit: (value: string, images?: readonly ImageAttachment[]) => void;
|
|
14
15
|
readonly history: readonly string[];
|
|
16
|
+
/** Operator-defined commands, offered in the dropdown alongside builtins. */
|
|
17
|
+
readonly userCommands?: readonly UserCommand[];
|
|
15
18
|
}
|
|
16
|
-
export declare function Composer({ disabled, onSubmit, history }: ComposerProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare function Composer({ disabled, onSubmit, history, userCommands, }: ComposerProps): import("react/jsx-runtime").JSX.Element;
|
|
17
20
|
//# sourceMappingURL=Composer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/tui/Composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../src/tui/Composer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAKjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAI5D,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,KAAK,IAAI,CAAA;IAC/E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,WAAW,EAAE,CAAA;CAC9C;AAMD,wBAAgB,QAAQ,CAAC,EACxB,QAAgB,EAChB,QAAQ,EACR,OAAO,EACP,YAAiB,GACjB,EAAE,aAAa,2CAoKf"}
|
package/dist/tui/Composer.js
CHANGED
|
@@ -7,7 +7,7 @@ import { theme } from './theme.js';
|
|
|
7
7
|
const MAX_SUGGESTIONS = 6;
|
|
8
8
|
// A single keypress longer than this (with no newline) is treated as a paste.
|
|
9
9
|
const PASTE_THRESHOLD = 80;
|
|
10
|
-
export function Composer({ disabled = false, onSubmit, history }) {
|
|
10
|
+
export function Composer({ disabled = false, onSubmit, history, userCommands = [], }) {
|
|
11
11
|
const [value, setValue] = useState('');
|
|
12
12
|
const [historyIndex, setHistoryIndex] = useState(-1);
|
|
13
13
|
const [selected, setSelected] = useState(0);
|
|
@@ -17,7 +17,7 @@ export function Composer({ disabled = false, onSubmit, history }) {
|
|
|
17
17
|
// Images pasted from the clipboard (Ctrl+V), shown as chips and sent as
|
|
18
18
|
// vision attachments on submit.
|
|
19
19
|
const [images, setImages] = useState([]);
|
|
20
|
-
const suggestions = matchSlashCommands(value).slice(0, MAX_SUGGESTIONS);
|
|
20
|
+
const suggestions = matchSlashCommands(value, userCommands).slice(0, MAX_SUGGESTIONS);
|
|
21
21
|
const showSuggestions = suggestions.length > 0;
|
|
22
22
|
const selIdx = Math.min(selected, Math.max(0, suggestions.length - 1));
|
|
23
23
|
const reset = useCallback(() => {
|
package/dist/tui/Composer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/tui/Composer.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"Composer.js","sourceRoot":"","sources":["../../src/tui/Composer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* second source for a fact the kernel already owns, and the two would drift.
|
|
15
15
|
*/
|
|
16
16
|
import type { VerificationRule } from '@namzu/sdk';
|
|
17
|
+
import { type UserCommand } from '../user-commands/store.js';
|
|
17
18
|
export type SlashAction = {
|
|
18
19
|
kind: 'message';
|
|
19
20
|
role: 'system';
|
|
@@ -88,6 +89,13 @@ export interface SlashContext {
|
|
|
88
89
|
* reports this; nothing new is discovered to answer it.
|
|
89
90
|
*/
|
|
90
91
|
readonly instructionFiles: readonly string[];
|
|
92
|
+
/**
|
|
93
|
+
* Commands the operator defined as `.md` files.
|
|
94
|
+
*
|
|
95
|
+
* Consulted only after the builtins, so a file cannot take a name the TUI
|
|
96
|
+
* already answers to. Empty is the normal case.
|
|
97
|
+
*/
|
|
98
|
+
readonly userCommands: readonly UserCommand[];
|
|
91
99
|
}
|
|
92
100
|
export interface SlashCommand {
|
|
93
101
|
readonly name: string;
|
|
@@ -104,7 +112,7 @@ export interface ParsedSlash {
|
|
|
104
112
|
* once a space is typed (the user has moved on to arguments) or the value
|
|
105
113
|
* isn't a slash command, so the dropdown only shows while picking a name.
|
|
106
114
|
*/
|
|
107
|
-
export declare function matchSlashCommands(value: string): SlashCommand[];
|
|
115
|
+
export declare function matchSlashCommands(value: string, userCommands?: readonly UserCommand[]): SlashCommand[];
|
|
108
116
|
/** Returns null when the line is not a slash command. */
|
|
109
117
|
export declare function parseSlash(line: string): ParsedSlash | null;
|
|
110
118
|
export declare const SLASH_COMMANDS: readonly SlashCommand[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["../../src/tui/slashCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,MAAM,WAAW,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE;AACpB;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnB,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1C,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACjF,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE;QACrB,mDAAmD;QACnD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;QACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAA;KAC3C,CAAA;IACD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["../../src/tui/slashCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,18 +13,27 @@
|
|
|
13
13
|
* already carries. A command that had to compute its own answer would be a
|
|
14
14
|
* second source for a fact the kernel already owns, and the two would drift.
|
|
15
15
|
*/
|
|
16
|
+
import { expandCommand } from '../user-commands/store.js';
|
|
16
17
|
/**
|
|
17
18
|
* Autocomplete matches for a composer value that is a command-in-progress
|
|
18
19
|
* (`/`, `/me`, `/mo…` — slash + a partial name, no space yet). Returns []
|
|
19
20
|
* once a space is typed (the user has moved on to arguments) or the value
|
|
20
21
|
* isn't a slash command, so the dropdown only shows while picking a name.
|
|
21
22
|
*/
|
|
22
|
-
export function matchSlashCommands(value) {
|
|
23
|
+
export function matchSlashCommands(value, userCommands = []) {
|
|
23
24
|
const m = /^\/([\w-]*)$/.exec(value);
|
|
24
25
|
if (!m)
|
|
25
26
|
return [];
|
|
26
27
|
const prefix = (m[1] ?? '').toLowerCase();
|
|
27
|
-
|
|
28
|
+
// A command the dropdown does not offer is one nobody discovers. Refused
|
|
29
|
+
// ones are offered too, carrying their reason as the description — running
|
|
30
|
+
// it prints the problem, which is how its author finds out.
|
|
31
|
+
const own = userCommands.map((c) => ({
|
|
32
|
+
name: c.name,
|
|
33
|
+
description: c.problem ? `⚠ ${c.problem}` : c.description,
|
|
34
|
+
action: () => ({ kind: 'none' }),
|
|
35
|
+
}));
|
|
36
|
+
return [...SLASH_COMMANDS, ...own].filter((c) => c.name.startsWith(prefix));
|
|
28
37
|
}
|
|
29
38
|
/** Returns null when the line is not a slash command. */
|
|
30
39
|
export function parseSlash(line) {
|
|
@@ -40,11 +49,23 @@ export const SLASH_COMMANDS = [
|
|
|
40
49
|
{
|
|
41
50
|
name: 'help',
|
|
42
51
|
description: 'Show available slash commands.',
|
|
43
|
-
action: () =>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
action: (ctx) => {
|
|
53
|
+
const builtin = SLASH_COMMANDS.map((c) => `/${c.name.padEnd(12)} ${c.description}`);
|
|
54
|
+
// Listed separately and always, including the refused ones with their
|
|
55
|
+
// reason. A command file that exists and does not work is exactly what
|
|
56
|
+
// its author needs to see here — leaving it out of `/help` is how it
|
|
57
|
+
// stays broken.
|
|
58
|
+
const own = ctx.userCommands.map((c) => c.problem
|
|
59
|
+
? `/${c.name.padEnd(12)} ⚠ ${c.problem}`
|
|
60
|
+
: `/${c.name.padEnd(12)} ${c.description}`);
|
|
61
|
+
return {
|
|
62
|
+
kind: 'message',
|
|
63
|
+
role: 'system',
|
|
64
|
+
content: own.length > 0
|
|
65
|
+
? `${builtin.join('\n')}\n\nYour commands:\n${own.join('\n')}`
|
|
66
|
+
: builtin.join('\n'),
|
|
67
|
+
};
|
|
68
|
+
},
|
|
48
69
|
},
|
|
49
70
|
{
|
|
50
71
|
name: 'clear',
|
|
@@ -277,14 +298,24 @@ export function runSlash(line, ctx) {
|
|
|
277
298
|
const parsed = parseSlash(line);
|
|
278
299
|
if (!parsed)
|
|
279
300
|
return null;
|
|
301
|
+
// Builtins first, always. A file appearing on disk must not take over a name
|
|
302
|
+
// the TUI already answers to — `discoverUserCommands` marks those files with
|
|
303
|
+
// a `problem` so their author is told, rather than leaving them to wonder
|
|
304
|
+
// why the file never ran.
|
|
280
305
|
const cmd = SLASH_COMMANDS.find((c) => c.name === parsed.name);
|
|
281
|
-
if (
|
|
282
|
-
return
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
306
|
+
if (cmd)
|
|
307
|
+
return cmd.action(ctx, parsed.args);
|
|
308
|
+
const user = ctx.userCommands.find((c) => c.name === parsed.name);
|
|
309
|
+
if (user) {
|
|
310
|
+
const expanded = expandCommand(user, parsed.args.join(' '));
|
|
311
|
+
return expanded.ok
|
|
312
|
+
? { kind: 'prompt', text: expanded.prompt }
|
|
313
|
+
: { kind: 'message', role: 'system', content: expanded.reason };
|
|
287
314
|
}
|
|
288
|
-
return
|
|
315
|
+
return {
|
|
316
|
+
kind: 'message',
|
|
317
|
+
role: 'system',
|
|
318
|
+
content: `Unknown command: /${parsed.name}. Try /help.`,
|
|
319
|
+
};
|
|
289
320
|
}
|
|
290
321
|
//# sourceMappingURL=slashCommands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../src/tui/slashCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../src/tui/slashCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-defined slash commands — one `.md` file per command.
|
|
3
|
+
*
|
|
4
|
+
* A command is a markdown file whose body is a prompt template:
|
|
5
|
+
*
|
|
6
|
+
* ~/.namzu/commands/<name>.md available everywhere
|
|
7
|
+
* <cwd>/.namzu/commands/<name>.md this project only
|
|
8
|
+
*
|
|
9
|
+
* The name is the filename without `.md`, so `review.md` is `/review`. A
|
|
10
|
+
* project command shadows a user command of the same name, which is the same
|
|
11
|
+
* precedence skills use.
|
|
12
|
+
*
|
|
13
|
+
* ## Why this is not `discoverSkills`
|
|
14
|
+
*
|
|
15
|
+
* The kernel's `discoverSkills` finds DIRECTORIES containing a `SKILL.md`, and
|
|
16
|
+
* returns `[]` for a folder of loose `.md` files — silently, because an empty
|
|
17
|
+
* roster is a legitimate answer to "no skills here". A command is one file, so
|
|
18
|
+
* that loader cannot serve this layout and would report nothing rather than
|
|
19
|
+
* fail. What IS reused is the part worth sharing: `parseFrontmatter`, so there
|
|
20
|
+
* is exactly one definition of what a `---` block means anywhere in the repo.
|
|
21
|
+
*
|
|
22
|
+
* ## Arguments
|
|
23
|
+
*
|
|
24
|
+
* `$ARGUMENTS` in the template is replaced by whatever followed the command.
|
|
25
|
+
* A template WITHOUT it, invoked WITH arguments, is refused rather than run —
|
|
26
|
+
* see `expandCommand`. Dropping them silently is the failure this file is
|
|
27
|
+
* written to avoid, and appending them somewhere the author did not ask for
|
|
28
|
+
* would be guessing where they belong.
|
|
29
|
+
*/
|
|
30
|
+
export type UserCommandSource = 'user' | 'project';
|
|
31
|
+
export interface UserCommand {
|
|
32
|
+
/** Invoked as `/<name>`. The filename without `.md`. */
|
|
33
|
+
readonly name: string;
|
|
34
|
+
readonly description: string;
|
|
35
|
+
/** The prompt template. Empty when the file could not be read. */
|
|
36
|
+
readonly template: string;
|
|
37
|
+
readonly path: string;
|
|
38
|
+
readonly source: UserCommandSource;
|
|
39
|
+
/**
|
|
40
|
+
* Why this command cannot be used, when it cannot.
|
|
41
|
+
*
|
|
42
|
+
* Same contract as `SkillInfo.problem`: a file that will not parse is
|
|
43
|
+
* refused, but it stays listed with its reason so one bad file does not
|
|
44
|
+
* quietly remove the rest — and so a file the operator can see on disk is
|
|
45
|
+
* accounted for rather than missing.
|
|
46
|
+
*/
|
|
47
|
+
readonly problem?: string;
|
|
48
|
+
}
|
|
49
|
+
/** The token a template uses to receive what followed the command. */
|
|
50
|
+
export declare const ARGUMENTS_TOKEN = "$ARGUMENTS";
|
|
51
|
+
export declare function userCommandsDir(home?: string): string;
|
|
52
|
+
export declare function projectCommandsDir(cwd?: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Every user-defined command, project shadowing user on a name clash.
|
|
55
|
+
*
|
|
56
|
+
* `reserved` names are dropped with a `problem` rather than allowed to win:
|
|
57
|
+
* a file called `help.md` must not replace `/help`, because a builtin someone
|
|
58
|
+
* relies on disappearing when a file appears is the worst kind of surprise —
|
|
59
|
+
* and silently ignoring the file would leave its author with no idea why it
|
|
60
|
+
* never ran.
|
|
61
|
+
*/
|
|
62
|
+
export declare function discoverUserCommands(opts?: {
|
|
63
|
+
home?: string;
|
|
64
|
+
cwd?: string;
|
|
65
|
+
reserved?: readonly string[];
|
|
66
|
+
}): UserCommand[];
|
|
67
|
+
export type ExpandResult = {
|
|
68
|
+
readonly ok: true;
|
|
69
|
+
readonly prompt: string;
|
|
70
|
+
} | {
|
|
71
|
+
readonly ok: false;
|
|
72
|
+
readonly reason: string;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Fill a command's template with the arguments it was invoked with.
|
|
76
|
+
*
|
|
77
|
+
* Three cases, and the third is the decision worth defending:
|
|
78
|
+
*
|
|
79
|
+
* 1. Template has `$ARGUMENTS` → substituted, with `''` when none were given.
|
|
80
|
+
* 2. No `$ARGUMENTS`, no arguments → the template is a static prompt. Fine.
|
|
81
|
+
* 3. No `$ARGUMENTS`, arguments given → **refused**, naming the file and the
|
|
82
|
+
* fix.
|
|
83
|
+
*
|
|
84
|
+
* The third could have appended them under a heading instead, and that is
|
|
85
|
+
* friendlier in the moment. It was rejected because it guesses where the author
|
|
86
|
+
* wanted them and because the author never finds out their template ignores
|
|
87
|
+
* arguments. Refusing is one-time friction that teaches the contract.
|
|
88
|
+
*
|
|
89
|
+
* It is also the reversible direction: relaxing a refusal into an append later
|
|
90
|
+
* breaks nobody, while tightening an append into a refusal breaks everyone who
|
|
91
|
+
* had come to rely on it. Where a contract is hard to change, pick the one that
|
|
92
|
+
* can still be changed.
|
|
93
|
+
*/
|
|
94
|
+
export declare function expandCommand(command: UserCommand, args: string): ExpandResult;
|
|
95
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/user-commands/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAOH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAA;AAElD,MAAM,WAAW,WAAW;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;IAClC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,sEAAsE;AACtE,eAAO,MAAM,eAAe,eAAe,CAAA;AAE3C,wBAAgB,eAAe,CAAC,IAAI,GAAE,MAAkB,GAAG,MAAM,CAEhE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEtE;AAmDD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GACtE,WAAW,EAAE,CAgBf;AAED,MAAM,MAAM,YAAY,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAkB9E"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-defined slash commands — one `.md` file per command.
|
|
3
|
+
*
|
|
4
|
+
* A command is a markdown file whose body is a prompt template:
|
|
5
|
+
*
|
|
6
|
+
* ~/.namzu/commands/<name>.md available everywhere
|
|
7
|
+
* <cwd>/.namzu/commands/<name>.md this project only
|
|
8
|
+
*
|
|
9
|
+
* The name is the filename without `.md`, so `review.md` is `/review`. A
|
|
10
|
+
* project command shadows a user command of the same name, which is the same
|
|
11
|
+
* precedence skills use.
|
|
12
|
+
*
|
|
13
|
+
* ## Why this is not `discoverSkills`
|
|
14
|
+
*
|
|
15
|
+
* The kernel's `discoverSkills` finds DIRECTORIES containing a `SKILL.md`, and
|
|
16
|
+
* returns `[]` for a folder of loose `.md` files — silently, because an empty
|
|
17
|
+
* roster is a legitimate answer to "no skills here". A command is one file, so
|
|
18
|
+
* that loader cannot serve this layout and would report nothing rather than
|
|
19
|
+
* fail. What IS reused is the part worth sharing: `parseFrontmatter`, so there
|
|
20
|
+
* is exactly one definition of what a `---` block means anywhere in the repo.
|
|
21
|
+
*
|
|
22
|
+
* ## Arguments
|
|
23
|
+
*
|
|
24
|
+
* `$ARGUMENTS` in the template is replaced by whatever followed the command.
|
|
25
|
+
* A template WITHOUT it, invoked WITH arguments, is refused rather than run —
|
|
26
|
+
* see `expandCommand`. Dropping them silently is the failure this file is
|
|
27
|
+
* written to avoid, and appending them somewhere the author did not ask for
|
|
28
|
+
* would be guessing where they belong.
|
|
29
|
+
*/
|
|
30
|
+
import { readFileSync, readdirSync } from 'node:fs';
|
|
31
|
+
import { homedir } from 'node:os';
|
|
32
|
+
import { join } from 'node:path';
|
|
33
|
+
import { parseFrontmatter } from '@namzu/sdk';
|
|
34
|
+
/** The token a template uses to receive what followed the command. */
|
|
35
|
+
export const ARGUMENTS_TOKEN = '$ARGUMENTS';
|
|
36
|
+
export function userCommandsDir(home = homedir()) {
|
|
37
|
+
return join(home, '.namzu', 'commands');
|
|
38
|
+
}
|
|
39
|
+
export function projectCommandsDir(cwd = process.cwd()) {
|
|
40
|
+
return join(cwd, '.namzu', 'commands');
|
|
41
|
+
}
|
|
42
|
+
function readCommandsFrom(dir, source) {
|
|
43
|
+
let files;
|
|
44
|
+
try {
|
|
45
|
+
files = readdirSync(dir, { withFileTypes: true })
|
|
46
|
+
.filter((e) => e.isFile() && e.name.endsWith('.md'))
|
|
47
|
+
.map((e) => e.name);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// No directory is not an error: most projects define no commands.
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
const out = [];
|
|
54
|
+
for (const file of files) {
|
|
55
|
+
const path = join(dir, file);
|
|
56
|
+
const name = file.slice(0, -'.md'.length);
|
|
57
|
+
let raw;
|
|
58
|
+
try {
|
|
59
|
+
raw = readFileSync(path, 'utf8');
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
// Same fence-decides rule as the skill reader: a file with no `---` is
|
|
65
|
+
// all body, which is the common case for a command, and a file that
|
|
66
|
+
// opens one must parse. The absence test mirrors the kernel reader's own
|
|
67
|
+
// so the two cannot disagree about what counts as having frontmatter.
|
|
68
|
+
try {
|
|
69
|
+
if (!raw.trimStart().startsWith('---')) {
|
|
70
|
+
out.push({ name, description: '(no description)', template: raw.trim(), path, source });
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const { values, body } = parseFrontmatter(raw, path);
|
|
74
|
+
const description = values.description?.kind === 'scalar' ? values.description.value : '(no description)';
|
|
75
|
+
out.push({ name, description, template: body, path, source });
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
out.push({
|
|
79
|
+
name,
|
|
80
|
+
description: '(could not be read)',
|
|
81
|
+
template: '',
|
|
82
|
+
path,
|
|
83
|
+
source,
|
|
84
|
+
problem: err instanceof Error ? err.message : String(err),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return out;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Every user-defined command, project shadowing user on a name clash.
|
|
92
|
+
*
|
|
93
|
+
* `reserved` names are dropped with a `problem` rather than allowed to win:
|
|
94
|
+
* a file called `help.md` must not replace `/help`, because a builtin someone
|
|
95
|
+
* relies on disappearing when a file appears is the worst kind of surprise —
|
|
96
|
+
* and silently ignoring the file would leave its author with no idea why it
|
|
97
|
+
* never ran.
|
|
98
|
+
*/
|
|
99
|
+
export function discoverUserCommands(opts = {}) {
|
|
100
|
+
const reserved = new Set(opts.reserved ?? []);
|
|
101
|
+
const user = readCommandsFrom(userCommandsDir(opts.home), 'user');
|
|
102
|
+
const project = readCommandsFrom(projectCommandsDir(opts.cwd), 'project');
|
|
103
|
+
const byName = new Map();
|
|
104
|
+
for (const c of user)
|
|
105
|
+
byName.set(c.name, c);
|
|
106
|
+
for (const c of project)
|
|
107
|
+
byName.set(c.name, c); // project wins
|
|
108
|
+
return [...byName.values()]
|
|
109
|
+
.map((c) => reserved.has(c.name)
|
|
110
|
+
? { ...c, problem: `"/${c.name}" is a built-in command, so this file is not used.` }
|
|
111
|
+
: c)
|
|
112
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Fill a command's template with the arguments it was invoked with.
|
|
116
|
+
*
|
|
117
|
+
* Three cases, and the third is the decision worth defending:
|
|
118
|
+
*
|
|
119
|
+
* 1. Template has `$ARGUMENTS` → substituted, with `''` when none were given.
|
|
120
|
+
* 2. No `$ARGUMENTS`, no arguments → the template is a static prompt. Fine.
|
|
121
|
+
* 3. No `$ARGUMENTS`, arguments given → **refused**, naming the file and the
|
|
122
|
+
* fix.
|
|
123
|
+
*
|
|
124
|
+
* The third could have appended them under a heading instead, and that is
|
|
125
|
+
* friendlier in the moment. It was rejected because it guesses where the author
|
|
126
|
+
* wanted them and because the author never finds out their template ignores
|
|
127
|
+
* arguments. Refusing is one-time friction that teaches the contract.
|
|
128
|
+
*
|
|
129
|
+
* It is also the reversible direction: relaxing a refusal into an append later
|
|
130
|
+
* breaks nobody, while tightening an append into a refusal breaks everyone who
|
|
131
|
+
* had come to rely on it. Where a contract is hard to change, pick the one that
|
|
132
|
+
* can still be changed.
|
|
133
|
+
*/
|
|
134
|
+
export function expandCommand(command, args) {
|
|
135
|
+
if (command.problem)
|
|
136
|
+
return { ok: false, reason: command.problem };
|
|
137
|
+
const trimmed = args.trim();
|
|
138
|
+
if (command.template.includes(ARGUMENTS_TOKEN)) {
|
|
139
|
+
return { ok: true, prompt: command.template.split(ARGUMENTS_TOKEN).join(trimmed) };
|
|
140
|
+
}
|
|
141
|
+
if (trimmed.length === 0)
|
|
142
|
+
return { ok: true, prompt: command.template };
|
|
143
|
+
return {
|
|
144
|
+
ok: false,
|
|
145
|
+
reason: [
|
|
146
|
+
`/${command.name} takes no arguments, but you gave: ${trimmed}`,
|
|
147
|
+
'',
|
|
148
|
+
`Add ${ARGUMENTS_TOKEN} where they belong in ${command.path}, and they will be`,
|
|
149
|
+
'substituted there. Running it now would silently discard them.',
|
|
150
|
+
].join('\n'),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/user-commands/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "Operator CLI for the Namzu agent platform — namzu doctor + future commands. Dual-purpose: standalone bin (`namzu doctor`) and library (`import { runDoctor } from '@namzu/cli'`).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"namzu",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"yaml": "^2.9.0",
|
|
47
47
|
"@namzu/anthropic": "3.1.1",
|
|
48
48
|
"@namzu/ollama": "2.0.1",
|
|
49
|
-
"@namzu/openai": "1.1.1",
|
|
50
49
|
"@namzu/openrouter": "2.0.1",
|
|
50
|
+
"@namzu/openai": "1.1.1",
|
|
51
51
|
"@namzu/sdk": "^15.1.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|