@tacuchi/agent-workflow-cli 5.11.5 → 5.14.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.
Files changed (101) hide show
  1. package/dist/application/dev-only-services.d.ts +2 -3
  2. package/dist/application/dev-only-services.d.ts.map +1 -1
  3. package/dist/application/dev-only-services.js +37 -35
  4. package/dist/application/dev-only-services.js.map +1 -1
  5. package/dist/application/mcp-host-reader.d.ts.map +1 -1
  6. package/dist/application/mcp-host-reader.js +34 -26
  7. package/dist/application/mcp-host-reader.js.map +1 -1
  8. package/dist/application/mcp-host-writer.d.ts.map +1 -1
  9. package/dist/application/mcp-host-writer.js +55 -1
  10. package/dist/application/mcp-host-writer.js.map +1 -1
  11. package/dist/application/mcp-remove-service.d.ts.map +1 -1
  12. package/dist/application/mcp-remove-service.js +9 -1
  13. package/dist/application/mcp-remove-service.js.map +1 -1
  14. package/dist/application/mcp-setup-service.d.ts.map +1 -1
  15. package/dist/application/mcp-setup-service.js +9 -1
  16. package/dist/application/mcp-setup-service.js.map +1 -1
  17. package/dist/application/multiroot/oz.d.ts +49 -0
  18. package/dist/application/multiroot/oz.d.ts.map +1 -0
  19. package/dist/application/multiroot/oz.js +39 -0
  20. package/dist/application/multiroot/oz.js.map +1 -0
  21. package/dist/application/multiroot/warp.d.ts +49 -0
  22. package/dist/application/multiroot/warp.d.ts.map +1 -0
  23. package/dist/application/multiroot/warp.js +118 -0
  24. package/dist/application/multiroot/warp.js.map +1 -0
  25. package/dist/application/multiroot-service.d.ts +10 -0
  26. package/dist/application/multiroot-service.d.ts.map +1 -1
  27. package/dist/application/multiroot-service.js +12 -0
  28. package/dist/application/multiroot-service.js.map +1 -1
  29. package/dist/application/plugin-doctor/hooks.d.ts.map +1 -1
  30. package/dist/application/plugin-doctor/hooks.js +3 -1
  31. package/dist/application/plugin-doctor/hooks.js.map +1 -1
  32. package/dist/application/plugin-doctor/manifests.d.ts.map +1 -1
  33. package/dist/application/plugin-doctor/manifests.js +3 -1
  34. package/dist/application/plugin-doctor/manifests.js.map +1 -1
  35. package/dist/application/self/doctor-self.d.ts.map +1 -1
  36. package/dist/application/self/doctor-self.js +2 -1
  37. package/dist/application/self/doctor-self.js.map +1 -1
  38. package/dist/application/self/install-plugin-skills-git.d.ts +6 -0
  39. package/dist/application/self/install-plugin-skills-git.d.ts.map +1 -0
  40. package/dist/application/self/install-plugin-skills-git.js +156 -0
  41. package/dist/application/self/install-plugin-skills-git.js.map +1 -0
  42. package/dist/application/self/install-plugin-skills.d.ts +20 -0
  43. package/dist/application/self/install-plugin-skills.d.ts.map +1 -0
  44. package/dist/application/self/install-plugin-skills.js +174 -0
  45. package/dist/application/self/install-plugin-skills.js.map +1 -0
  46. package/dist/application/self/install-skill.d.ts +1 -1
  47. package/dist/application/self/install-skill.d.ts.map +1 -1
  48. package/dist/application/self/install-skill.js +13 -2
  49. package/dist/application/self/install-skill.js.map +1 -1
  50. package/dist/application/self/mcp-config.d.ts +2 -1
  51. package/dist/application/self/mcp-config.d.ts.map +1 -1
  52. package/dist/application/self/mcp-config.js +22 -6
  53. package/dist/application/self/mcp-config.js.map +1 -1
  54. package/dist/application/self/uninstall-skill.js +2 -2
  55. package/dist/application/self/uninstall-skill.js.map +1 -1
  56. package/dist/application/sessions-service.d.ts.map +1 -1
  57. package/dist/application/sessions-service.js +6 -1
  58. package/dist/application/sessions-service.js.map +1 -1
  59. package/dist/application/skill-index-service.d.ts.map +1 -1
  60. package/dist/application/skill-index-service.js +3 -4
  61. package/dist/application/skill-index-service.js.map +1 -1
  62. package/dist/application/visibility-doctor-service.d.ts +2 -1
  63. package/dist/application/visibility-doctor-service.d.ts.map +1 -1
  64. package/dist/application/visibility-doctor-service.js +17 -0
  65. package/dist/application/visibility-doctor-service.js.map +1 -1
  66. package/dist/cli/commands/mcp.d.ts.map +1 -1
  67. package/dist/cli/commands/mcp.js +12 -4
  68. package/dist/cli/commands/mcp.js.map +1 -1
  69. package/dist/cli/commands/multiroot.d.ts.map +1 -1
  70. package/dist/cli/commands/multiroot.js +4 -0
  71. package/dist/cli/commands/multiroot.js.map +1 -1
  72. package/dist/cli/commands/self.d.ts.map +1 -1
  73. package/dist/cli/commands/self.js +9 -1
  74. package/dist/cli/commands/self.js.map +1 -1
  75. package/dist/cli/tui/app.d.ts.map +1 -1
  76. package/dist/cli/tui/app.js +13 -3
  77. package/dist/cli/tui/app.js.map +1 -1
  78. package/dist/cli/tui/components/connections-grid.d.ts.map +1 -1
  79. package/dist/cli/tui/components/connections-grid.js +3 -3
  80. package/dist/cli/tui/components/connections-grid.js.map +1 -1
  81. package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
  82. package/dist/cli/tui/tabs/mcp-tab.js +2 -0
  83. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  84. package/dist/cli/tui/tabs/plugins-tab.d.ts +7 -0
  85. package/dist/cli/tui/tabs/plugins-tab.d.ts.map +1 -0
  86. package/dist/cli/tui/tabs/plugins-tab.js +271 -0
  87. package/dist/cli/tui/tabs/plugins-tab.js.map +1 -0
  88. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  89. package/dist/cli/tui/tabs/skills-tab.js +6 -1
  90. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  91. package/dist/domain/harnesses.d.ts +41 -0
  92. package/dist/domain/harnesses.d.ts.map +1 -0
  93. package/dist/domain/harnesses.js +91 -0
  94. package/dist/domain/harnesses.js.map +1 -0
  95. package/dist/domain/mcp-entry.d.ts +1 -1
  96. package/dist/domain/mcp-entry.d.ts.map +1 -1
  97. package/dist/runtime/namespace-resolver.d.ts +1 -1
  98. package/dist/runtime/namespace-resolver.d.ts.map +1 -1
  99. package/dist/runtime/namespace-resolver.js +1 -1
  100. package/dist/runtime/namespace-resolver.js.map +1 -1
  101. package/package.json +1 -1
@@ -0,0 +1,271 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { readdir, stat } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { Box, Text, useInput } from "ink";
5
+ import { useCallback, useEffect, useRef, useState } from "react";
6
+ import { installPluginSkillsFromGit } from "../../../application/self/install-plugin-skills-git.js";
7
+ import { selfInstallPluginSkills } from "../../../application/self/install-plugin-skills.js";
8
+ import { InputPrompt } from "../components/input-prompt.js";
9
+ import { Toast } from "../components/toast.js";
10
+ import { useInputLock } from "../input-lock.js";
11
+ import { colors, icons } from "../theme.js";
12
+ const TARGET_LABELS = {
13
+ warp: "Warp",
14
+ agents: "Agents",
15
+ claude: "Claude Code",
16
+ codex: "Codex",
17
+ oz: "Oz",
18
+ };
19
+ export function PluginsTab({ ctx, isActive }) {
20
+ const [plugins, setPlugins] = useState([]);
21
+ const [cursor, setCursor] = useState(0);
22
+ const [busy, setBusy] = useState(null);
23
+ const [mode, setMode] = useState({ kind: "idle" });
24
+ const [toast, setToast] = useState(null);
25
+ const startedRef = useRef(false);
26
+ const { lock, unlock } = useInputLock();
27
+ useEffect(() => {
28
+ if (mode.kind === "idle")
29
+ unlock();
30
+ else {
31
+ lock();
32
+ setToast(null);
33
+ }
34
+ }, [mode, lock, unlock]);
35
+ useEffect(() => {
36
+ return () => unlock();
37
+ }, [unlock]);
38
+ const refresh = useCallback(async () => {
39
+ const home = ctx.env.homeDir();
40
+ const entries = await buildPluginEntries(home);
41
+ setPlugins(entries);
42
+ setCursor((c) => Math.min(Math.max(0, entries.length - 1), Math.max(0, c)));
43
+ }, [ctx]);
44
+ useEffect(() => {
45
+ if (startedRef.current)
46
+ return;
47
+ startedRef.current = true;
48
+ void refresh();
49
+ }, [refresh]);
50
+ const installFromLocal = useCallback(async (target, force) => {
51
+ const plugin = plugins[cursor];
52
+ if (!plugin?.sourcePath)
53
+ return false;
54
+ setBusy(`instalando en ${target}…`);
55
+ setToast(null);
56
+ try {
57
+ const args = {
58
+ rest: [],
59
+ plugin: {},
60
+ flags: new Set(force ? ["--force"] : []),
61
+ values: new Map([
62
+ ["from", plugin.sourcePath],
63
+ ["target", target],
64
+ ["namespace", plugin.namespace],
65
+ ]),
66
+ valuesMulti: new Map(),
67
+ };
68
+ const result = await selfInstallPluginSkills(args, ctx);
69
+ const summary = result.data?.summary ?? result.error?.message ?? "";
70
+ setToast({ tone: result.ok ? "success" : "error", message: summary });
71
+ await refresh();
72
+ }
73
+ catch (err) {
74
+ setToast({ tone: "error", message: err.message });
75
+ }
76
+ finally {
77
+ setBusy(null);
78
+ }
79
+ return true;
80
+ }, [plugins, cursor, ctx, refresh]);
81
+ const installFromGit = useCallback(async (target, force, url, ref) => {
82
+ const plugin = plugins[cursor];
83
+ if (!plugin)
84
+ return;
85
+ const label = TARGET_LABELS[target] ?? target;
86
+ setBusy(`clonando e instalando en ${label}…`);
87
+ setToast(null);
88
+ try {
89
+ const fullUrl = ref ? `${url}#${ref}` : url;
90
+ const args = {
91
+ rest: [],
92
+ plugin: {},
93
+ flags: new Set(force ? ["--force"] : []),
94
+ values: new Map([
95
+ ["url", fullUrl],
96
+ ["target", target],
97
+ ["namespace", plugin.namespace],
98
+ ]),
99
+ valuesMulti: new Map(),
100
+ };
101
+ const result = await installPluginSkillsFromGit(args, ctx);
102
+ const summary = result.data?.summary ?? result.error?.message ?? "";
103
+ setToast({ tone: result.ok ? "success" : "error", message: summary });
104
+ await refresh();
105
+ }
106
+ catch (err) {
107
+ setToast({ tone: "error", message: err.message });
108
+ }
109
+ finally {
110
+ setBusy(null);
111
+ }
112
+ }, [plugins, cursor, ctx, refresh]);
113
+ const install = useCallback(async (target, force = false, forceGit = false) => {
114
+ const plugin = plugins[cursor];
115
+ if (!plugin)
116
+ return;
117
+ if (!forceGit && plugin.sourcePath) {
118
+ await installFromLocal(target, force);
119
+ return;
120
+ }
121
+ if (plugin.sourceUrl) {
122
+ await installFromGit(target, force, plugin.sourceUrl, plugin.sourceRef);
123
+ return;
124
+ }
125
+ // No source available — ask user for URL
126
+ setMode({ kind: "entering-url", target, force });
127
+ }, [plugins, cursor, installFromLocal, installFromGit]);
128
+ useInput((input, key) => {
129
+ if (!isActive || busy || mode.kind !== "idle")
130
+ return;
131
+ handlePluginsKey(input, key, plugins.length, setCursor, install);
132
+ }, { isActive });
133
+ // Esc cancels URL entry
134
+ useInput((_, key) => {
135
+ if (!isActive || mode.kind !== "entering-url")
136
+ return;
137
+ if (key.escape)
138
+ setMode({ kind: "idle" });
139
+ }, { isActive });
140
+ // URL entry mode overlay
141
+ if (mode.kind === "entering-url") {
142
+ const label = TARGET_LABELS[mode.target] ?? mode.target;
143
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.fg, bold: true, children: "Plugin Skills" }), _jsx(Box, { marginTop: 1, children: _jsx(InputPrompt, { message: `URL git del plugin para instalar en ${label}:`, validate: (v) => v.startsWith("http") || "Debe ser una URL git válida (https://...)", onSubmit: (url) => {
144
+ setMode({ kind: "idle" });
145
+ void installFromGit(mode.target, mode.force, url);
146
+ }, isActive: true }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.fgMoreSubtle, children: "Esc para cancelar \u00B7 \u23CE para confirmar" }) })] }));
147
+ }
148
+ if (plugins.length === 0 && !busy) {
149
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.fg, bold: true, children: "Plugin Skills" }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: colors.fgMoreSubtle, italic: true, children: "(sin plugins detectados \u2014 instala qtc-workflow-plugin desde el marketplace de Claude Code)" }) })] }));
150
+ }
151
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: colors.fg, bold: true, children: "Plugin Skills" }), _jsx(Box, { marginTop: 1, flexDirection: "column", children: plugins.map((plugin, i) => (_jsx(PluginRow, { plugin: plugin, focused: isActive && i === cursor }, plugin.id))) }), busy ? (_jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: colors.warning, children: [icons.spinner, " ", busy] }) })) : null, toast ? _jsx(Toast, { tone: toast.tone, message: toast.message }) : null] }));
152
+ }
153
+ function PluginRow({ plugin, focused }) {
154
+ return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: focused ? colors.primary : colors.fgMoreSubtle, bold: focused, children: focused ? icons.focusBullet : " " }), _jsx(Text, { color: focused ? colors.fg : colors.fgSubtle, bold: focused, children: plugin.label }), plugin.version ? _jsxs(Text, { color: colors.fgMoreSubtle, children: [" v", plugin.version] }) : null, plugin.skillCount !== null ? (_jsxs(Text, { color: colors.fgMoreSubtle, children: [" \u00B7 ", plugin.skillCount, " skills"] })) : null, !plugin.sourcePath && !plugin.sourceUrl ? (_jsx(Text, { color: colors.warning, children: " (fuente no encontrada)" })) : !plugin.sourcePath && plugin.sourceUrl ? (_jsx(Text, { color: colors.fgMoreSubtle, children: " (instalar\u00E1 desde git)" })) : null] }), _jsx(Box, { flexDirection: "column", marginLeft: 2, children: plugin.targets.map((t) => (_jsxs(Box, { children: [_jsxs(Text, { color: t.installed ? colors.success : colors.fgMoreSubtle, bold: t.installed, children: [t.installed ? icons.check : "–", " "] }), _jsx(Text, { color: colors.fgSubtle, children: t.label }), _jsxs(Text, { color: colors.fgMoreSubtle, children: [" \u00B7 ", t.path] })] }, t.id))) })] }));
155
+ }
156
+ async function buildPluginEntries(homeDir) {
157
+ const qtcEntry = await detectQtcPlugin(homeDir);
158
+ return qtcEntry ? [qtcEntry] : [];
159
+ }
160
+ async function detectQtcPlugin(homeDir) {
161
+ const cacheBase = join(homeDir, ".claude", "plugins", "cache", "qtc-marketplace", "qtc");
162
+ const version = await findLatestVersion(cacheBase);
163
+ const skillsDir = version ? join(cacheBase, version, "skills") : null;
164
+ const skillCount = skillsDir ? await countSkillDirs(skillsDir) : null;
165
+ const ns = "qtc";
166
+ const targets = [
167
+ {
168
+ id: "warp",
169
+ label: "Warp Terminal",
170
+ path: `~/.warp/skills/${ns}-*/`,
171
+ installed: await isInstalled(homeDir, "warp", ns),
172
+ },
173
+ {
174
+ id: "agents",
175
+ label: "Oz / Agents",
176
+ path: `~/.agents/skills/${ns}-*/`,
177
+ installed: await isInstalled(homeDir, "agents", ns),
178
+ },
179
+ ];
180
+ return {
181
+ id: "qtc",
182
+ label: "qtc-workflow-plugin",
183
+ namespace: ns,
184
+ sourcePath: skillsDir,
185
+ sourceUrl: "https://bitbucket.org/adminqtc-ti/qtc-workflow-plugin.git",
186
+ sourceRef: "feature/last",
187
+ version: version ?? null,
188
+ skillCount,
189
+ targets,
190
+ };
191
+ }
192
+ async function findLatestVersion(base) {
193
+ try {
194
+ const entries = await readdir(base);
195
+ const versions = entries.filter((e) => /^\d+\.\d+\.\d+/.test(e)).sort(semverDesc);
196
+ return versions[0] ?? null;
197
+ }
198
+ catch {
199
+ return null;
200
+ }
201
+ }
202
+ async function countSkillDirs(skillsDir) {
203
+ try {
204
+ const entries = await readdir(skillsDir);
205
+ let count = 0;
206
+ for (const e of entries) {
207
+ try {
208
+ const s = await stat(join(skillsDir, e));
209
+ if (s.isDirectory())
210
+ count += 1;
211
+ }
212
+ catch {
213
+ // skip
214
+ }
215
+ }
216
+ return count;
217
+ }
218
+ catch {
219
+ return null;
220
+ }
221
+ }
222
+ async function isInstalled(homeDir, target, namespace) {
223
+ const marker = `${namespace}-session`;
224
+ const roots = {
225
+ warp: [".warp", "skills"],
226
+ agents: [".agents", "skills"],
227
+ claude: [".claude", "skills"],
228
+ codex: [".codex", "skills"],
229
+ oz: [".agents", "skills"],
230
+ };
231
+ const segments = roots[target];
232
+ if (!segments)
233
+ return false;
234
+ const markerPath = join(homeDir, ...segments, marker);
235
+ try {
236
+ await stat(markerPath);
237
+ return true;
238
+ }
239
+ catch {
240
+ return false;
241
+ }
242
+ }
243
+ function semverDesc(a, b) {
244
+ const parse = (v) => v.split(".").map(Number);
245
+ const [aMaj = 0, aMin = 0, aPatch = 0] = parse(a);
246
+ const [bMaj = 0, bMin = 0, bPatch = 0] = parse(b);
247
+ return bMaj - aMaj || bMin - aMin || bPatch - aPatch;
248
+ }
249
+ function handlePluginsKey(input, key, pluginsLength, setCursor, install) {
250
+ if (key.upArrow) {
251
+ setCursor((c) => Math.max(0, c - 1));
252
+ return;
253
+ }
254
+ if (key.downArrow) {
255
+ setCursor((c) => (pluginsLength === 0 ? 0 : Math.min(pluginsLength - 1, c + 1)));
256
+ return;
257
+ }
258
+ if (input === "w")
259
+ install("warp");
260
+ else if (input === "W")
261
+ install("warp", true);
262
+ else if (input === "a")
263
+ install("agents");
264
+ else if (input === "A")
265
+ install("agents", true);
266
+ else if (input === "r")
267
+ install("warp", false, true);
268
+ else if (input === "R")
269
+ install("warp", true, true);
270
+ }
271
+ //# sourceMappingURL=plugins-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/plugins-tab.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skills-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/skills-tab.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAQD,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAwF1D"}
1
+ {"version":3,"file":"skills-tab.d.ts","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/skills-tab.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,UAAU,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAQD,wBAAgB,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,cAAc,2CA6F1D"}
@@ -28,6 +28,11 @@ export function SkillsTab({ ctx, isActive }) {
28
28
  installed: await ctx.fs.exists(`${home}/.codex/skills/agent-workflow`),
29
29
  path: "~/.codex/skills/agent-workflow/",
30
30
  },
31
+ {
32
+ target: "Warp Terminal",
33
+ installed: await ctx.fs.exists(`${home}/.warp/skills/agent-workflow`),
34
+ path: "~/.warp/skills/agent-workflow/",
35
+ },
31
36
  ];
32
37
  setSkills(targets);
33
38
  }
@@ -49,7 +54,7 @@ export function SkillsTab({ ctx, isActive }) {
49
54
  if (result.ok) {
50
55
  setToast({
51
56
  tone: "success",
52
- message: "Skill instalada/actualizada en Claude + Codex.",
57
+ message: "Skill instalada/actualizada en Claude, Codex y Warp.",
53
58
  });
54
59
  }
55
60
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"skills-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/skills-tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-tab.js","sourceRoot":"","sources":["../../../../src/cli/tui/tabs/skills-tab.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { McpHost } from "./mcp-entry.js";
2
+ export type Harness = "claude-code" | "codex" | "warp" | "oz" | "unknown";
3
+ export type InstallTarget = "claude" | "codex" | "agents" | "warp" | "oz";
4
+ export type HarnessChannel = "stable" | "preview";
5
+ export interface HarnessGlobalMcpPaths {
6
+ darwin: {
7
+ stable: string;
8
+ preview?: string;
9
+ };
10
+ linux: {
11
+ stable: string;
12
+ preview?: string;
13
+ };
14
+ win32: {
15
+ stable: string;
16
+ preview?: string;
17
+ };
18
+ }
19
+ export interface HarnessSpec {
20
+ id: Exclude<Harness, "unknown">;
21
+ envMarkers: readonly string[];
22
+ termProgramMatch?: string;
23
+ mcpHostId: McpHost | null;
24
+ globalMcpPaths?: HarnessGlobalMcpPaths;
25
+ projectMcpPath?: string;
26
+ pluginManifest: string | null;
27
+ pluginHooksDir: string | null;
28
+ skillsDirs: readonly string[];
29
+ installTarget: InstallTarget;
30
+ }
31
+ export declare const HARNESSES: readonly HarnessSpec[];
32
+ /**
33
+ * Resolves the global MCP config path for a harness spec.
34
+ * Expands %LOCALAPPDATA% on win32. Does NOT expand `~` (caller uses homedir()).
35
+ */
36
+ export declare function resolveGlobalMcpRawPath(spec: HarnessSpec, platform?: NodeJS.Platform, channel?: HarnessChannel): string | null;
37
+ /** Returns the HarnessSpec for a given McpHost id, or null. */
38
+ export declare function harnessForMcpHost(host: McpHost): HarnessSpec | null;
39
+ /** Returns the HarnessSpec for a given harness id, or null. */
40
+ export declare function harnessById(id: Exclude<Harness, "unknown">): HarnessSpec | null;
41
+ //# sourceMappingURL=harnesses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harnesses.d.ts","sourceRoot":"","sources":["../../src/domain/harnesses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAG1E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1E,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEhC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAE1B,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAEvC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9B,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,eAAO,MAAM,SAAS,EAAE,SAAS,WAAW,EAmED,CAAC;AAE5C;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,cAAyB,GACjC,MAAM,GAAG,IAAI,CASf;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAEnE;AAED,+DAA+D;AAC/D,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,WAAW,GAAG,IAAI,CAE/E"}
@@ -0,0 +1,91 @@
1
+ export const HARNESSES = [
2
+ {
3
+ id: "claude-code",
4
+ envMarkers: ["CLAUDECODE", "CLAUDE_PLUGIN_ROOT", "CLAUDE_AGENT_ID"],
5
+ mcpHostId: "claude",
6
+ globalMcpPaths: {
7
+ darwin: { stable: "~/.claude.json" },
8
+ linux: { stable: "~/.claude.json" },
9
+ win32: { stable: "~/.claude.json" },
10
+ },
11
+ projectMcpPath: ".mcp.json",
12
+ pluginManifest: ".claude-plugin/plugin.json",
13
+ pluginHooksDir: "hooks",
14
+ skillsDirs: [".claude/skills"],
15
+ installTarget: "claude",
16
+ },
17
+ {
18
+ id: "codex",
19
+ envMarkers: ["CODEX_HOME", "CODEX_CLI", "CODEX_RUNTIME"],
20
+ mcpHostId: "codex",
21
+ globalMcpPaths: {
22
+ darwin: { stable: "~/.codex/config.toml" },
23
+ linux: { stable: "~/.codex/config.toml" },
24
+ win32: { stable: "~/.codex/config.toml" },
25
+ },
26
+ projectMcpPath: ".codex/config.toml",
27
+ pluginManifest: ".codex-plugin/plugin.json",
28
+ pluginHooksDir: "codex-hooks",
29
+ skillsDirs: [".codex/skills"],
30
+ installTarget: "codex",
31
+ },
32
+ {
33
+ // Detection: OZ_RUN_ID takes priority over warp markers to handle overlap.
34
+ // Keep oz before warp in the array so first-match detection picks oz first
35
+ // when both OZ_RUN_ID and TERM_PROGRAM=WarpTerminal are set.
36
+ id: "oz",
37
+ envMarkers: ["OZ_RUN_ID"],
38
+ mcpHostId: null, // Oz does not write a config file; emits JSON for --mcp flag
39
+ pluginManifest: null,
40
+ pluginHooksDir: null,
41
+ skillsDirs: [".agents/skills"],
42
+ installTarget: "oz",
43
+ },
44
+ {
45
+ id: "warp",
46
+ envMarkers: ["WARP_IS_LOCAL_SHELL_SESSION"],
47
+ termProgramMatch: "WarpTerminal",
48
+ mcpHostId: "warp",
49
+ globalMcpPaths: {
50
+ // DEC-W3: Warp uses .mcp.json (JSON), not settings.toml, for MCP config.
51
+ darwin: { stable: "~/.warp/.mcp.json", preview: "~/.warp-preview/.mcp.json" },
52
+ linux: {
53
+ stable: "~/.config/warp-terminal/.mcp.json",
54
+ preview: "~/.config/warp-terminal-preview/.mcp.json",
55
+ },
56
+ win32: {
57
+ stable: "%LOCALAPPDATA%/warp/Warp/config/.mcp.json",
58
+ preview: "%LOCALAPPDATA%/warp/WarpPreview/config/.mcp.json",
59
+ },
60
+ },
61
+ projectMcpPath: ".warp/.mcp.json",
62
+ pluginManifest: null, // DEC-W2: no plugin manifest convention for Warp
63
+ pluginHooksDir: null, // DEC-W4: no hooks system in Warp/Oz
64
+ // Warp auto-discovers skills from all these dirs; primary install target is .warp/skills
65
+ skillsDirs: [".warp/skills", ".agents/skills", ".claude/skills", ".codex/skills"],
66
+ installTarget: "warp",
67
+ },
68
+ ];
69
+ /**
70
+ * Resolves the global MCP config path for a harness spec.
71
+ * Expands %LOCALAPPDATA% on win32. Does NOT expand `~` (caller uses homedir()).
72
+ */
73
+ export function resolveGlobalMcpRawPath(spec, platform = process.platform, channel = "stable") {
74
+ if (!spec.globalMcpPaths)
75
+ return null;
76
+ const byPlatform = platform === "darwin"
77
+ ? spec.globalMcpPaths.darwin
78
+ : platform === "linux"
79
+ ? spec.globalMcpPaths.linux
80
+ : spec.globalMcpPaths.win32;
81
+ return (channel === "preview" ? byPlatform.preview : null) ?? byPlatform.stable;
82
+ }
83
+ /** Returns the HarnessSpec for a given McpHost id, or null. */
84
+ export function harnessForMcpHost(host) {
85
+ return HARNESSES.find((h) => h.mcpHostId === host) ?? null;
86
+ }
87
+ /** Returns the HarnessSpec for a given harness id, or null. */
88
+ export function harnessById(id) {
89
+ return HARNESSES.find((h) => h.id === id) ?? null;
90
+ }
91
+ //# sourceMappingURL=harnesses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harnesses.js","sourceRoot":"","sources":["../../src/domain/harnesses.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type McpHost = "claude" | "codex";
1
+ export type McpHost = "claude" | "codex" | "warp";
2
2
  export type McpInstance = string;
3
3
  export type McpEntryName = string;
4
4
  export declare const DEFAULT_MCP_INSTANCES: readonly ["cert", "prod"];
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-entry.d.ts","sourceRoot":"","sources":["../../src/domain/mcp-entry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,eAAO,MAAM,qBAAqB,2BAA4B,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAEnG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAK/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GACZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAejE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,CAEnE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GACZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY5D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgB9E"}
1
+ {"version":3,"file":"mcp-entry.d.ts","sourceRoot":"","sources":["../../src/domain/mcp-entry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,eAAO,MAAM,qBAAqB,2BAA4B,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,oBAAoB,GAAG,SAAS,CAAC;AAEtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAEnG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACtE,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAK/D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GACZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAejE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,GAAG,YAAY,CAEnE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GACZ;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAY5D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgB9E"}
@@ -6,7 +6,7 @@ export interface ResolvedNamespace {
6
6
  namespace: Namespace;
7
7
  source: NamespaceSource;
8
8
  }
9
- export declare const DEFAULT_NAMESPACE = "agent-workflow";
9
+ export declare const DEFAULT_NAMESPACE = "workflow";
10
10
  export declare const ENV_VAR_NAMESPACE = "AW_NAMESPACE";
11
11
  export declare class NamespaceResolver {
12
12
  private readonly fs;
@@ -1 +1 @@
1
- {"version":3,"file":"namespace-resolver.d.ts","sourceRoot":"","sources":["../../src/runtime/namespace-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAmB,KAAK,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAErF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAClD,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAIhD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO;IAGzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAoBrD,mBAAmB;CAsBlC"}
1
+ {"version":3,"file":"namespace-resolver.d.ts","sourceRoot":"","sources":["../../src/runtime/namespace-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAmB,KAAK,SAAS,EAAsB,MAAM,gBAAgB,CAAC;AAErF,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAIhD,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO;IAGzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAoBrD,mBAAmB;CAsBlC"}
@@ -1,6 +1,6 @@
1
1
  import { join } from "node:path";
2
2
  import { NAMESPACE_REGEX, normalizeNamespace } from "./namespace.js";
3
- export const DEFAULT_NAMESPACE = "agent-workflow";
3
+ export const DEFAULT_NAMESPACE = "workflow";
4
4
  export const ENV_VAR_NAMESPACE = "AW_NAMESPACE";
5
5
  const LEGACY_NAMESPACE_DENYLIST = new Set(["qtc"]);
6
6
  export class NamespaceResolver {
@@ -1 +1 @@
1
- {"version":3,"file":"namespace-resolver.js","sourceRoot":"","sources":["../../src/runtime/namespace-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namespace-resolver.js","sourceRoot":"","sources":["../../src/runtime/namespace-resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "5.11.5",
3
+ "version": "5.14.0",
4
4
  "description": "Agnostic runtime CLI for session-lifecycle workflows. Auto-detects namespace from any `.<ns>/sessions/` dir in CWD; falls back to 'agent-workflow'. Plugins can reclaim a fixed namespace via SessionStart hook (writes to `~/.config/agent-workflow/namespace`). Bundles the universal `agent-workflow` skill in the tarball — `self install-skill` copies it from the bundled location to `~/.claude/skills/agent-workflow/` and `~/.codex/skills/agent-workflow/` (dual-target by default; opt-out with `--target claude|codex`). Override the source with `--from <local-path>` for skill development.",
5
5
  "type": "module",
6
6
  "bin": {