@a5c-ai/adapters-cli 5.1.1-staging.0ad6ac75ae4a

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.
Files changed (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/dist/bootstrap.d.ts +13 -0
  4. package/dist/bootstrap.d.ts.map +1 -0
  5. package/dist/bootstrap.js +59 -0
  6. package/dist/bootstrap.js.map +1 -0
  7. package/dist/commands/adapters.d.ts +4 -0
  8. package/dist/commands/adapters.d.ts.map +1 -0
  9. package/dist/commands/adapters.js +5 -0
  10. package/dist/commands/adapters.js.map +1 -0
  11. package/dist/commands/agent.d.ts +11 -0
  12. package/dist/commands/agent.d.ts.map +1 -0
  13. package/dist/commands/agent.js +219 -0
  14. package/dist/commands/agent.js.map +1 -0
  15. package/dist/commands/auth.d.ts +4 -0
  16. package/dist/commands/auth.d.ts.map +1 -0
  17. package/dist/commands/auth.js +5 -0
  18. package/dist/commands/auth.js.map +1 -0
  19. package/dist/commands/config.d.ts +4 -0
  20. package/dist/commands/config.d.ts.map +1 -0
  21. package/dist/commands/config.js +5 -0
  22. package/dist/commands/config.js.map +1 -0
  23. package/dist/commands/detect-host.d.ts +4 -0
  24. package/dist/commands/detect-host.d.ts.map +1 -0
  25. package/dist/commands/detect-host.js +5 -0
  26. package/dist/commands/detect-host.js.map +1 -0
  27. package/dist/commands/doctor.d.ts +3 -0
  28. package/dist/commands/doctor.d.ts.map +1 -0
  29. package/dist/commands/doctor.js +120 -0
  30. package/dist/commands/doctor.js.map +1 -0
  31. package/dist/commands/gateway/index.d.ts +5 -0
  32. package/dist/commands/gateway/index.d.ts.map +1 -0
  33. package/dist/commands/gateway/index.js +39 -0
  34. package/dist/commands/gateway/index.js.map +1 -0
  35. package/dist/commands/gateway/serve.d.ts +5 -0
  36. package/dist/commands/gateway/serve.d.ts.map +1 -0
  37. package/dist/commands/gateway/serve.js +76 -0
  38. package/dist/commands/gateway/serve.js.map +1 -0
  39. package/dist/commands/gateway/status.d.ts +2 -0
  40. package/dist/commands/gateway/status.d.ts.map +1 -0
  41. package/dist/commands/gateway/status.js +24 -0
  42. package/dist/commands/gateway/status.js.map +1 -0
  43. package/dist/commands/gateway/tokens.d.ts +2 -0
  44. package/dist/commands/gateway/tokens.d.ts.map +1 -0
  45. package/dist/commands/gateway/tokens.js +85 -0
  46. package/dist/commands/gateway/tokens.js.map +1 -0
  47. package/dist/commands/help.d.ts +13 -0
  48. package/dist/commands/help.d.ts.map +1 -0
  49. package/dist/commands/help.js +501 -0
  50. package/dist/commands/help.js.map +1 -0
  51. package/dist/commands/hooks.d.ts +16 -0
  52. package/dist/commands/hooks.d.ts.map +1 -0
  53. package/dist/commands/hooks.js +207 -0
  54. package/dist/commands/hooks.js.map +1 -0
  55. package/dist/commands/install-helpers.d.ts +5 -0
  56. package/dist/commands/install-helpers.d.ts.map +1 -0
  57. package/dist/commands/install-helpers.js +5 -0
  58. package/dist/commands/install-helpers.js.map +1 -0
  59. package/dist/commands/install.d.ts +4 -0
  60. package/dist/commands/install.d.ts.map +1 -0
  61. package/dist/commands/install.js +5 -0
  62. package/dist/commands/install.js.map +1 -0
  63. package/dist/commands/launch-bridge-hooks.d.ts +8 -0
  64. package/dist/commands/launch-bridge-hooks.d.ts.map +1 -0
  65. package/dist/commands/launch-bridge-hooks.js +8 -0
  66. package/dist/commands/launch-bridge-hooks.js.map +1 -0
  67. package/dist/commands/launch-completion-engine.d.ts +7 -0
  68. package/dist/commands/launch-completion-engine.d.ts.map +1 -0
  69. package/dist/commands/launch-completion-engine.js +8 -0
  70. package/dist/commands/launch-completion-engine.js.map +1 -0
  71. package/dist/commands/launch.d.ts +8 -0
  72. package/dist/commands/launch.d.ts.map +1 -0
  73. package/dist/commands/launch.js +8 -0
  74. package/dist/commands/launch.js.map +1 -0
  75. package/dist/commands/mcp.d.ts +3 -0
  76. package/dist/commands/mcp.d.ts.map +1 -0
  77. package/dist/commands/mcp.js +93 -0
  78. package/dist/commands/mcp.js.map +1 -0
  79. package/dist/commands/models.d.ts +8 -0
  80. package/dist/commands/models.d.ts.map +1 -0
  81. package/dist/commands/models.js +306 -0
  82. package/dist/commands/models.js.map +1 -0
  83. package/dist/commands/plugin.d.ts +3 -0
  84. package/dist/commands/plugin.d.ts.map +1 -0
  85. package/dist/commands/plugin.js +96 -0
  86. package/dist/commands/plugin.js.map +1 -0
  87. package/dist/commands/profiles.d.ts +8 -0
  88. package/dist/commands/profiles.d.ts.map +1 -0
  89. package/dist/commands/profiles.js +206 -0
  90. package/dist/commands/profiles.js.map +1 -0
  91. package/dist/commands/remote.d.ts +30 -0
  92. package/dist/commands/remote.d.ts.map +1 -0
  93. package/dist/commands/remote.js +204 -0
  94. package/dist/commands/remote.js.map +1 -0
  95. package/dist/commands/run.d.ts +27 -0
  96. package/dist/commands/run.d.ts.map +1 -0
  97. package/dist/commands/run.js +355 -0
  98. package/dist/commands/run.js.map +1 -0
  99. package/dist/commands/sessions.d.ts +8 -0
  100. package/dist/commands/sessions.d.ts.map +1 -0
  101. package/dist/commands/sessions.js +225 -0
  102. package/dist/commands/sessions.js.map +1 -0
  103. package/dist/commands/skill.d.ts +10 -0
  104. package/dist/commands/skill.d.ts.map +1 -0
  105. package/dist/commands/skill.js +217 -0
  106. package/dist/commands/skill.js.map +1 -0
  107. package/dist/commands/tui.d.ts +3 -0
  108. package/dist/commands/tui.d.ts.map +1 -0
  109. package/dist/commands/tui.js +57 -0
  110. package/dist/commands/tui.js.map +1 -0
  111. package/dist/commands/workspaces.d.ts +4 -0
  112. package/dist/commands/workspaces.d.ts.map +1 -0
  113. package/dist/commands/workspaces.js +187 -0
  114. package/dist/commands/workspaces.js.map +1 -0
  115. package/dist/exit-codes.d.ts +32 -0
  116. package/dist/exit-codes.d.ts.map +1 -0
  117. package/dist/exit-codes.js +68 -0
  118. package/dist/exit-codes.js.map +1 -0
  119. package/dist/index.d.ts +23 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +216 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/index.test.d.ts +1 -0
  124. package/dist/index.test.d.ts.map +1 -0
  125. package/dist/index.test.js +23 -0
  126. package/dist/index.test.js.map +1 -0
  127. package/dist/lib/agent-capabilities.d.ts +6 -0
  128. package/dist/lib/agent-capabilities.d.ts.map +1 -0
  129. package/dist/lib/agent-capabilities.js +63 -0
  130. package/dist/lib/agent-capabilities.js.map +1 -0
  131. package/dist/lib/agent-skill-paths.d.ts +9 -0
  132. package/dist/lib/agent-skill-paths.d.ts.map +1 -0
  133. package/dist/lib/agent-skill-paths.js +70 -0
  134. package/dist/lib/agent-skill-paths.js.map +1 -0
  135. package/dist/lib/agent-subagent-paths.d.ts +8 -0
  136. package/dist/lib/agent-subagent-paths.d.ts.map +1 -0
  137. package/dist/lib/agent-subagent-paths.js +64 -0
  138. package/dist/lib/agent-subagent-paths.js.map +1 -0
  139. package/dist/loggingConfig.d.ts +11 -0
  140. package/dist/loggingConfig.d.ts.map +1 -0
  141. package/dist/loggingConfig.js +17 -0
  142. package/dist/loggingConfig.js.map +1 -0
  143. package/dist/output.d.ts +55 -0
  144. package/dist/output.d.ts.map +1 -0
  145. package/dist/output.js +129 -0
  146. package/dist/output.js.map +1 -0
  147. package/dist/parse-args.d.ts +57 -0
  148. package/dist/parse-args.d.ts.map +1 -0
  149. package/dist/parse-args.js +261 -0
  150. package/dist/parse-args.js.map +1 -0
  151. package/dist/read-stdin.d.ts +1 -0
  152. package/dist/read-stdin.d.ts.map +1 -0
  153. package/dist/read-stdin.js +14 -0
  154. package/dist/read-stdin.js.map +1 -0
  155. package/package.json +79 -0
@@ -0,0 +1,63 @@
1
+ import { exec } from 'child_process';
2
+ import { promisify } from 'util';
3
+ const execAsync = promisify(exec);
4
+ const AGENT_PLUGIN_CONFIGS = {
5
+ claude: {
6
+ command: 'claude plugins',
7
+ commands: ['list', 'install', 'enable', 'disable', 'marketplace', 'uninstall', 'update'],
8
+ },
9
+ gemini: {
10
+ command: 'gemini extensions',
11
+ commands: ['list', 'install', 'update'],
12
+ },
13
+ copilot: {
14
+ command: 'copilot plugin',
15
+ commands: ['list', 'install', 'update', 'uninstall'],
16
+ },
17
+ opencode: {
18
+ command: 'opencode plugins',
19
+ commands: ['list', 'install'],
20
+ },
21
+ omp: {
22
+ command: 'omp plugin',
23
+ commands: ['list', 'install', 'uninstall', 'enable', 'disable', 'doctor'],
24
+ },
25
+ openclaw: {
26
+ command: 'openclaw plugins',
27
+ commands: ['list', 'install', 'enable', 'disable', 'doctor'],
28
+ },
29
+ pi: {
30
+ command: 'pi',
31
+ commands: ['list', 'install', 'update', 'config'],
32
+ },
33
+ qwen: {
34
+ command: 'qwen extensions',
35
+ commands: ['install', 'settings'],
36
+ }
37
+ };
38
+ export async function detectAgentCapabilities(agent) {
39
+ const config = AGENT_PLUGIN_CONFIGS[agent];
40
+ if (!config) {
41
+ return {
42
+ supportsPlugins: false,
43
+ pluginCommands: [],
44
+ nativePluginCommand: '',
45
+ };
46
+ }
47
+ try {
48
+ await execAsync(`${config.command} --help`, { timeout: 5000 });
49
+ return {
50
+ supportsPlugins: true,
51
+ pluginCommands: [...config.commands],
52
+ nativePluginCommand: config.command,
53
+ };
54
+ }
55
+ catch {
56
+ return {
57
+ supportsPlugins: false,
58
+ pluginCommands: [],
59
+ nativePluginCommand: '',
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=agent-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-capabilities.js","sourceRoot":"","sources":["../../src/lib/agent-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAQlC,MAAM,oBAAoB,GAAG;IAC3B,MAAM,EAAE;QACN,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC;KACzF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;KACxC;IACD,OAAO,EAAE;QACP,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC;KACrD;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC9B;IACD,GAAG,EAAE;QACH,OAAO,EAAE,YAAY;QACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;KAC1E;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;KAC7D;IACD,EAAE,EAAE;QACF,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;KAClD;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;KAClC;CACO,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAa;IACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAA0C,CAAC,CAAC;IAEhF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,EAAE;YAClB,mBAAmB,EAAE,EAAE;SACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpC,mBAAmB,EAAE,MAAM,CAAC,OAAO;SACpC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,EAAE;YAClB,mBAAmB,EAAE,EAAE;SACxB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type SkillScope = 'global' | 'project';
2
+ export interface SkillPaths {
3
+ global: string;
4
+ project: string;
5
+ }
6
+ export declare function findProjectRoot(startDir?: string): string;
7
+ export declare function getSkillPaths(agent: string, projectRoot?: string): SkillPaths | null;
8
+ export declare function getSkillDir(agent: string, scope: SkillScope, projectRoot?: string): string | null;
9
+ export declare function listSupportedAgents(): string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-skill-paths.d.ts","sourceRoot":"","sources":["../../src/lib/agent-skill-paths.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,QAAQ,SAAgB,UAevD;AAmCD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAoB,GAAG,UAAU,GAAG,IAAI,CAS/F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,SAAoB,GAAG,MAAM,GAAG,IAAI,CAI5G;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
@@ -0,0 +1,70 @@
1
+ import * as os from 'node:os';
2
+ import * as path from 'node:path';
3
+ import * as fs from 'node:fs';
4
+ export function findProjectRoot(startDir = process.cwd()) {
5
+ let current = path.resolve(startDir);
6
+ while (true) {
7
+ if (fs.existsSync(path.join(current, '.git')) ||
8
+ fs.existsSync(path.join(current, '.a5c')) ||
9
+ fs.existsSync(path.join(current, '.claude.json')) ||
10
+ fs.existsSync(path.join(current, '.claude'))) {
11
+ return current;
12
+ }
13
+ const parent = path.dirname(current);
14
+ if (parent === current)
15
+ return startDir;
16
+ current = parent;
17
+ }
18
+ }
19
+ const HOME = os.homedir() || '.';
20
+ const REGISTRY = {
21
+ claude: {
22
+ global: path.join(HOME, '.claude', 'skills'),
23
+ project: path.join('.claude', 'skills'),
24
+ },
25
+ 'claude-code': {
26
+ global: path.join(HOME, '.claude', 'skills'),
27
+ project: path.join('.claude', 'skills'),
28
+ },
29
+ codex: {
30
+ global: path.join(HOME, '.codex', 'skills'),
31
+ project: path.join('.codex', 'skills'),
32
+ },
33
+ cursor: {
34
+ global: path.join(HOME, '.cursor', 'skills'),
35
+ project: path.join('.cursor', 'skills'),
36
+ },
37
+ opencode: {
38
+ global: path.join(HOME, '.opencode', 'skills'),
39
+ project: path.join('.opencode', 'skills'),
40
+ },
41
+ gemini: {
42
+ global: path.join(HOME, '.gemini', 'skills'),
43
+ project: path.join('.gemini', 'skills'),
44
+ },
45
+ copilot: {
46
+ global: path.join(HOME, '.copilot', 'skills'),
47
+ project: path.join('.copilot', 'skills'),
48
+ },
49
+ };
50
+ export function getSkillPaths(agent, projectRoot = findProjectRoot()) {
51
+ const entry = REGISTRY[agent];
52
+ if (!entry)
53
+ return null;
54
+ return {
55
+ global: entry.global,
56
+ project: path.isAbsolute(entry.project)
57
+ ? entry.project
58
+ : path.join(projectRoot, entry.project),
59
+ };
60
+ }
61
+ export function getSkillDir(agent, scope, projectRoot = findProjectRoot()) {
62
+ const p = getSkillPaths(agent, projectRoot);
63
+ if (!p)
64
+ return null;
65
+ return scope === 'global' ? p.global : p.project;
66
+ }
67
+ export function listSupportedAgents() {
68
+ return Object.keys(REGISTRY);
69
+ }
70
+ //# sourceMappingURL=agent-skill-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-skill-paths.js","sourceRoot":"","sources":["../../src/lib/agent-skill-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type SubagentScope = 'global' | 'project';
2
+ export interface SubagentPaths {
3
+ global: string;
4
+ project: string;
5
+ }
6
+ export declare function getSubagentPaths(agent: string, projectRoot?: string): SubagentPaths | null;
7
+ export declare function getSubagentDir(agent: string, scope: SubagentScope, projectRoot?: string): string | null;
8
+ export declare function listSupportedAgents(): string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-subagent-paths.d.ts","sourceRoot":"","sources":["../../src/lib/agent-subagent-paths.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AA6CD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,SAAgB,GAAG,aAAa,GAAG,IAAI,CASjG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,SAAgB,GAAG,MAAM,GAAG,IAAI,CAI9G;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
@@ -0,0 +1,64 @@
1
+ import * as os from 'node:os';
2
+ import * as path from 'node:path';
3
+ const HOME = os.homedir() || '.';
4
+ /**
5
+ * Per-agent directories where custom sub-agents live. Each entry is a file
6
+ * (typically markdown with YAML frontmatter) in that directory.
7
+ *
8
+ * References:
9
+ * - Claude: https://code.claude.com/docs/en/sub-agents (`.claude/agents/`)
10
+ * - Codex: https://developers.openai.com/codex/subagents (`.codex/agents/`)
11
+ * - Gemini: https://geminicli.com/docs/core/subagents/ (`.gemini/agents/`)
12
+ * - Copilot CLI: https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli
13
+ */
14
+ const REGISTRY = {
15
+ claude: {
16
+ global: path.join(HOME, '.claude', 'agents'),
17
+ project: path.join('.claude', 'agents'),
18
+ },
19
+ 'claude-code': {
20
+ global: path.join(HOME, '.claude', 'agents'),
21
+ project: path.join('.claude', 'agents'),
22
+ },
23
+ codex: {
24
+ global: path.join(HOME, '.codex', 'agents'),
25
+ project: path.join('.codex', 'agents'),
26
+ },
27
+ cursor: {
28
+ global: path.join(HOME, '.cursor', 'agents'),
29
+ project: path.join('.cursor', 'agents'),
30
+ },
31
+ opencode: {
32
+ global: path.join(HOME, '.opencode', 'agents'),
33
+ project: path.join('.opencode', 'agents'),
34
+ },
35
+ gemini: {
36
+ global: path.join(HOME, '.gemini', 'agents'),
37
+ project: path.join('.gemini', 'agents'),
38
+ },
39
+ copilot: {
40
+ global: path.join(HOME, '.copilot', 'agents'),
41
+ project: path.join('.github', 'agents'),
42
+ },
43
+ };
44
+ export function getSubagentPaths(agent, projectRoot = process.cwd()) {
45
+ const entry = REGISTRY[agent];
46
+ if (!entry)
47
+ return null;
48
+ return {
49
+ global: entry.global,
50
+ project: path.isAbsolute(entry.project)
51
+ ? entry.project
52
+ : path.join(projectRoot, entry.project),
53
+ };
54
+ }
55
+ export function getSubagentDir(agent, scope, projectRoot = process.cwd()) {
56
+ const p = getSubagentPaths(agent, projectRoot);
57
+ if (!p)
58
+ return null;
59
+ return scope === 'global' ? p.global : p.project;
60
+ }
61
+ export function listSupportedAgents() {
62
+ return Object.keys(REGISTRY);
63
+ }
64
+ //# sourceMappingURL=agent-subagent-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-subagent-paths.js","sourceRoot":"","sources":["../../src/lib/agent-subagent-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AASlC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC;AAEjC;;;;;;;;;GASG;AACH,MAAM,QAAQ,GAAkC;IAC9C,MAAM,EAAE;QACN,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KACxC;IACD,aAAa,EAAE;QACb,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KACxC;IACD,KAAK,EAAE;QACL,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC3C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;KACvC;IACD,MAAM,EAAE;QACN,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KACxC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC;QAC9C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;KAC1C;IACD,MAAM,EAAE;QACN,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KACxC;IACD,OAAO,EAAE;QACP,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC;QAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KACxC;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;IACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;YACrC,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAoB,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;IAC7F,MAAM,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ type AgentMuxLogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
2
+ export interface CliLoggerConfig {
3
+ level: AgentMuxLogLevel;
4
+ logFile?: string;
5
+ }
6
+ export declare function resolveCliLoggerConfig(flags: {
7
+ debug?: boolean;
8
+ logLevel?: string;
9
+ logFile?: string;
10
+ }, env?: NodeJS.ProcessEnv): CliLoggerConfig;
11
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggingConfig.d.ts","sourceRoot":"","sources":["../src/loggingConfig.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAYD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/D,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,eAAe,CAMjB"}
@@ -0,0 +1,17 @@
1
+ function normalizeLogLevel(value, fallback) {
2
+ return value === 'debug' ||
3
+ value === 'info' ||
4
+ value === 'warn' ||
5
+ value === 'error' ||
6
+ value === 'silent'
7
+ ? value
8
+ : fallback;
9
+ }
10
+ export function resolveCliLoggerConfig(flags, env = process.env) {
11
+ const level = flags.logLevel
12
+ ? normalizeLogLevel(flags.logLevel, flags.debug ? 'debug' : 'info')
13
+ : normalizeLogLevel(env['AGENT_MUX_LOG_LEVEL'], flags.debug ? 'debug' : 'info');
14
+ const logFile = flags.logFile ?? env['AGENT_MUX_LOG_FILE'];
15
+ return logFile ? { level, logFile } : { level };
16
+ }
17
+ //# sourceMappingURL=loggingConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggingConfig.js","sourceRoot":"","sources":["../src/loggingConfig.ts"],"names":[],"mappings":"AAOA,SAAS,iBAAiB,CAAC,KAAyB,EAAE,QAA0B;IAC9E,OAAO,KAAK,KAAK,OAAO;QACtB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,QAAQ;QAClB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAA+D,EAC/D,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ;QAC1B,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC3D,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Output formatting utilities for the adapters CLI.
3
+ *
4
+ * Supports human-readable tables/text and JSON output modes.
5
+ * Color is supported via ANSI codes, gated by --no-color / NO_COLOR / TTY detection.
6
+ */
7
+ export declare function setColorEnabled(enabled: boolean): void;
8
+ export declare const color: {
9
+ bold: (text: string) => string;
10
+ dim: (text: string) => string;
11
+ red: (text: string) => string;
12
+ green: (text: string) => string;
13
+ yellow: (text: string) => string;
14
+ cyan: (text: string) => string;
15
+ };
16
+ /**
17
+ * Print a table in human-readable format.
18
+ */
19
+ export declare function printTable(headers: string[], rows: string[][]): void;
20
+ /**
21
+ * Print key-value pairs in human-readable format.
22
+ */
23
+ export declare function printKeyValue(pairs: [string, string][]): void;
24
+ /**
25
+ * Convert a typed object (possibly with a sealed index signature) into a plain
26
+ * `Record<string, unknown>` suitable for serialization / column-extraction
27
+ * helpers. Uses JSON round-trip so it drops undefined and functions and loses
28
+ * prototype — appropriate for the CLI's read-only render paths.
29
+ */
30
+ export declare function toPlain<T>(value: T): Record<string, unknown>;
31
+ export declare function toPlainArray<T>(values: readonly T[]): Record<string, unknown>[];
32
+ /**
33
+ * Print JSON output.
34
+ */
35
+ export declare function printJson(data: unknown): void;
36
+ /**
37
+ * Print a JSON-wrapped success response.
38
+ */
39
+ export declare function printJsonOk(data: unknown): void;
40
+ /**
41
+ * Print a JSON-wrapped error response.
42
+ */
43
+ export declare function printJsonError(code: string, message: string, recoverable?: boolean): void;
44
+ /**
45
+ * Print an error message to stderr.
46
+ */
47
+ export declare function printError(message: string): void;
48
+ /**
49
+ * Print a warning message to stderr.
50
+ */
51
+ export declare function printWarning(message: string): void;
52
+ /**
53
+ * Print an info message to stderr.
54
+ */
55
+ export declare function printInfo(message: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEtD;AAsBD,eAAO,MAAM,KAAK;iBACH,MAAM;gBACP,MAAM;gBACN,MAAM;kBACJ,MAAM;mBACL,MAAM;iBACR,MAAM;CACpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CA6BpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAU7D;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE5D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,IAAI,CAEhG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C"}
package/dist/output.js ADDED
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Output formatting utilities for the adapters CLI.
3
+ *
4
+ * Supports human-readable tables/text and JSON output modes.
5
+ * Color is supported via ANSI codes, gated by --no-color / NO_COLOR / TTY detection.
6
+ */
7
+ /** Whether color output is enabled. */
8
+ let colorEnabled;
9
+ export function setColorEnabled(enabled) {
10
+ colorEnabled = enabled;
11
+ }
12
+ function isColorEnabled() {
13
+ if (colorEnabled !== undefined)
14
+ return colorEnabled;
15
+ if (process.env['NO_COLOR'])
16
+ return false;
17
+ if (!process.stdout.isTTY)
18
+ return false;
19
+ return true;
20
+ }
21
+ // ANSI codes
22
+ const RESET = '\x1b[0m';
23
+ const BOLD = '\x1b[1m';
24
+ const DIM = '\x1b[2m';
25
+ const RED = '\x1b[31m';
26
+ const GREEN = '\x1b[32m';
27
+ const YELLOW = '\x1b[33m';
28
+ const CYAN = '\x1b[36m';
29
+ function c(code, text) {
30
+ return isColorEnabled() ? `${code}${text}${RESET}` : text;
31
+ }
32
+ export const color = {
33
+ bold: (text) => c(BOLD, text),
34
+ dim: (text) => c(DIM, text),
35
+ red: (text) => c(RED, text),
36
+ green: (text) => c(GREEN, text),
37
+ yellow: (text) => c(YELLOW, text),
38
+ cyan: (text) => c(CYAN, text),
39
+ };
40
+ /**
41
+ * Print a table in human-readable format.
42
+ */
43
+ export function printTable(headers, rows) {
44
+ if (rows.length === 0) {
45
+ process.stdout.write('(no results)\n');
46
+ return;
47
+ }
48
+ // Calculate column widths
49
+ const widths = headers.map((h, i) => {
50
+ let max = h.length;
51
+ for (const row of rows) {
52
+ const cell = row[i] ?? '';
53
+ if (cell.length > max)
54
+ max = cell.length;
55
+ }
56
+ return max;
57
+ });
58
+ // Print header
59
+ const headerLine = headers.map((h, i) => h.padEnd(widths[i])).join(' ');
60
+ process.stdout.write(c(BOLD, headerLine) + '\n');
61
+ // Print separator
62
+ const sep = widths.map((w) => '-'.repeat(w)).join(' ');
63
+ process.stdout.write(c(DIM, sep) + '\n');
64
+ // Print rows
65
+ for (const row of rows) {
66
+ const line = row.map((cell, i) => (cell ?? '').padEnd(widths[i])).join(' ');
67
+ process.stdout.write(line + '\n');
68
+ }
69
+ }
70
+ /**
71
+ * Print key-value pairs in human-readable format.
72
+ */
73
+ export function printKeyValue(pairs) {
74
+ if (pairs.length === 0)
75
+ return;
76
+ const maxKeyLen = Math.max(...pairs.map(([k]) => k.length));
77
+ for (const [key, value] of pairs) {
78
+ process.stdout.write(`${c(BOLD, key.padEnd(maxKeyLen))} ${value}\n`);
79
+ }
80
+ }
81
+ /**
82
+ * Convert a typed object (possibly with a sealed index signature) into a plain
83
+ * `Record<string, unknown>` suitable for serialization / column-extraction
84
+ * helpers. Uses JSON round-trip so it drops undefined and functions and loses
85
+ * prototype — appropriate for the CLI's read-only render paths.
86
+ */
87
+ export function toPlain(value) {
88
+ return JSON.parse(JSON.stringify(value));
89
+ }
90
+ export function toPlainArray(values) {
91
+ return values.map((v) => toPlain(v));
92
+ }
93
+ /**
94
+ * Print JSON output.
95
+ */
96
+ export function printJson(data) {
97
+ process.stdout.write(JSON.stringify(data, null, 2) + '\n');
98
+ }
99
+ /**
100
+ * Print a JSON-wrapped success response.
101
+ */
102
+ export function printJsonOk(data) {
103
+ printJson({ ok: true, data });
104
+ }
105
+ /**
106
+ * Print a JSON-wrapped error response.
107
+ */
108
+ export function printJsonError(code, message, recoverable = false) {
109
+ printJson({ ok: false, error: { code, message, recoverable } });
110
+ }
111
+ /**
112
+ * Print an error message to stderr.
113
+ */
114
+ export function printError(message) {
115
+ process.stderr.write(c(RED, 'Error: ') + message + '\n');
116
+ }
117
+ /**
118
+ * Print a warning message to stderr.
119
+ */
120
+ export function printWarning(message) {
121
+ process.stderr.write(c(YELLOW, 'Warning: ') + message + '\n');
122
+ }
123
+ /**
124
+ * Print an info message to stderr.
125
+ */
126
+ export function printInfo(message) {
127
+ process.stderr.write(c(CYAN, 'Info: ') + message + '\n');
128
+ }
129
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Lightweight argument parser for the adapters CLI.
3
+ *
4
+ * Zero external dependencies. Handles:
5
+ * - Long flags (--flag, --flag=value, --no-flag for booleans)
6
+ * - Short flags (-a, -a value, combined -abc)
7
+ * - Positional arguments
8
+ * - -- terminator
9
+ * - Repeatable flags (--tag x --tag y)
10
+ */
11
+ /** Parsed CLI arguments. */
12
+ export interface ParsedArgs {
13
+ /** The command (e.g., 'run', 'adapters'). */
14
+ command: string | undefined;
15
+ /** The subcommand (e.g., 'list', 'show'). */
16
+ subcommand: string | undefined;
17
+ /** Remaining positional arguments after command/subcommand. */
18
+ positionals: string[];
19
+ /** Named flags. Boolean flags are true/false. String/number flags are strings. */
20
+ flags: Record<string, string | boolean | string[]>;
21
+ }
22
+ /** Known flag definition for the parser. */
23
+ export interface FlagDef {
24
+ /** Short alias (single character). */
25
+ short?: string;
26
+ /** Flag type. */
27
+ type: 'boolean' | 'string' | 'number';
28
+ /** Whether the flag can be specified multiple times. */
29
+ repeatable?: boolean;
30
+ }
31
+ /**
32
+ * Global flags recognized by all commands.
33
+ */
34
+ export declare const GLOBAL_FLAGS: Record<string, FlagDef>;
35
+ /**
36
+ * Parse argv into structured args.
37
+ *
38
+ * @param argv - Arguments (typically process.argv.slice(2))
39
+ * @param extraFlags - Additional command-specific flag definitions
40
+ */
41
+ export declare function parseArgs(argv: string[], extraFlags?: Record<string, FlagDef>): ParsedArgs;
42
+ /**
43
+ * Get a flag value as a string, or undefined.
44
+ */
45
+ export declare function flagStr(flags: Record<string, string | boolean | string[]>, name: string): string | undefined;
46
+ /**
47
+ * Get a flag value as a number, or undefined.
48
+ */
49
+ export declare function flagNum(flags: Record<string, string | boolean | string[]>, name: string): number | undefined;
50
+ /**
51
+ * Get a flag value as a boolean.
52
+ */
53
+ export declare function flagBool(flags: Record<string, string | boolean | string[]>, name: string): boolean | undefined;
54
+ /**
55
+ * Get a flag value as a string array (for repeatable flags).
56
+ */
57
+ export declare function flagArr(flags: Record<string, string | boolean | string[]>, name: string): string[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,+DAA+D;IAC/D,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;CACpD;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iBAAiB;IACjB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEtC,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAahD,CAAC;AAmBF;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,UAAU,CAoLZ;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK5G;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM5G;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAM9G;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKlG"}