@khanglvm/relay 0.4.0 → 0.4.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@khanglvm/relay",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Browser-based question boards with rich blocks (markdown, charts, mermaid, tables, code, sandboxed HTML) and element-level annotations for AI coding agents (Claude Code, Codex, …): ask users structured questions, present interactive visuals, collect inline comments, wait for submit, read answers as JSON.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: relay
3
- description: Show the user anything visual in an interactive browser board - repo/file structures, architecture diagrams (mermaid, graphviz, plantuml, uml), charts, sortable data tables, code, prototypes - and/or ask structured questions (single/multi choice, yes-no, free text, scale), then wait for Submit and read JSON answers plus element-level comments and user-edited diagrams. PROACTIVELY use whenever you would otherwise (a) draw an ASCII tree/table/diagram in the terminal or describe a structure/design/plan in prose - render it as interactive blocks instead, (b) call a native ask-user/question tool with 2+ questions or options that need explanation, or (c) hand-roll an HTML file or local server to demo an idea - relay replaces all three. Triggers - show me the structure, repo/project/folder structure, file tree, directory layout, codebase map, architecture overview, dependency graph, sequence/class diagram, uml, visualize, diagram, chart, data table, metrics review, mockup or prototype review, plan approval, design/UX feedback, compare alternatives, let the user edit the diagram, clarify requirements before ambiguous work, survey, "ask the user", "show the user", "which do you prefer", "get feedback". Skip only for a single trivial yes/no confirmation.
3
+ description: "Show the user anything visual in an interactive browser board - repo/file structures, architecture diagrams (mermaid, graphviz, plantuml, uml), charts, sortable tables, code, prototypes - and/or ask structured questions (choice, yes-no, text, scale), then wait for Submit and read JSON answers plus element comments and user-edited diagrams. PROACTIVELY use instead of (a) drawing an ASCII tree/table/diagram in the terminal or describing a structure/design/plan in prose, (b) a native ask-user tool for 2+ questions or options needing explanation, (c) hand-rolling an HTML demo + server. Triggers: show me the structure, repo/folder structure, file tree, directory layout, codebase map, architecture overview, dependency graph, sequence/class diagram, uml, visualize, diagram, chart, data table, metrics review, prototype review, plan approval, design feedback, compare alternatives, edit the diagram, clarify requirements, survey, ask the user, show the user, get feedback. Skip for a single trivial yes/no confirmation."
4
4
  ---
5
5
 
6
6
  # relay (`rly`)
package/src/cli.js CHANGED
@@ -652,6 +652,9 @@ const SKILL_SRC = path.join(PKG_ROOT, 'skills', 'relay');
652
652
  const KNOWN_SKILL_DIRS = () => ({
653
653
  claude: path.join(os.homedir(), '.claude', 'skills', 'relay'),
654
654
  codex: path.join(os.homedir(), '.codex', 'skills', 'relay'),
655
+ // The cross-agent skills dir (npx-skills ecosystem). Some Codex/agent
656
+ // setups load skills from here INSTEAD of ~/.codex/skills.
657
+ agents: path.join(os.homedir(), '.agents', 'skills', 'relay'),
655
658
  });
656
659
 
657
660
  // Pre-rename skill dirs (quest-board). `skill install` removes these so a
@@ -702,19 +705,15 @@ function skillFreshnessWarning() {
702
705
  }
703
706
 
704
707
  function skillTargets(target) {
705
- const home = os.homedir();
706
- const known = {
707
- claude: path.join(home, '.claude', 'skills', 'relay'),
708
- codex: path.join(home, '.codex', 'skills', 'relay'),
709
- };
708
+ const known = KNOWN_SKILL_DIRS();
710
709
  if (!target || target === true || target === 'auto') {
711
710
  const found = Object.values(known).filter((p) => fs.existsSync(path.dirname(path.dirname(p))));
712
711
  if (!found.length) {
713
- throw new CliError('no agent dirs found (~/.claude or ~/.codex). Use --target claude|codex|both|<dir>.');
712
+ throw new CliError('no agent dirs found (~/.claude, ~/.codex, or ~/.agents). Use --target claude|codex|agents|all|<dir>.');
714
713
  }
715
714
  return found;
716
715
  }
717
- if (target === 'both') return Object.values(known);
716
+ if (target === 'both' || target === 'all') return Object.values(known);
718
717
  if (known[target]) return [known[target]];
719
718
  return [path.join(path.resolve(target), 'relay')];
720
719
  }