ftown-bridge 0.19.39 → 0.19.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-client.d.ts +17 -0
- package/dist/cli-client.js +76 -0
- package/dist/cli-client.js.map +1 -0
- package/dist/cli-entry.d.ts +2 -0
- package/dist/cli-entry.js +22 -0
- package/dist/cli-entry.js.map +1 -0
- package/dist/codex-installer.d.ts +1 -1
- package/dist/codex-installer.js +7 -6
- package/dist/codex-installer.js.map +1 -1
- package/dist/command-rpc.js +0 -1
- package/dist/command-rpc.js.map +1 -1
- package/dist/create-ftown-session.d.ts +1 -6
- package/dist/create-ftown-session.js +3 -25
- package/dist/create-ftown-session.js.map +1 -1
- package/dist/cursor-hook-installer.d.ts +1 -1
- package/dist/cursor-hook-installer.js +6 -5
- package/dist/cursor-hook-installer.js.map +1 -1
- package/dist/ensure-ftown-path.js +1 -1
- package/dist/env-commands.d.ts +32 -0
- package/dist/env-commands.js +162 -0
- package/dist/env-commands.js.map +1 -0
- package/dist/ftown-cli.d.ts +2 -6
- package/dist/ftown-cli.js +25 -79
- package/dist/ftown-cli.js.map +1 -1
- package/dist/ftown-env-cli.d.ts +2 -31
- package/dist/ftown-env-cli.js +7 -176
- package/dist/ftown-env-cli.js.map +1 -1
- package/dist/ftown-home.d.ts +24 -10
- package/dist/ftown-home.js +19 -41
- package/dist/ftown-home.js.map +1 -1
- package/dist/ftown-sessions-cli.d.ts +1 -1
- package/dist/ftown-sessions-cli.js +6 -499
- package/dist/ftown-sessions-cli.js.map +1 -1
- package/dist/harness-cli.d.ts +1 -1
- package/dist/harness-cli.js +6 -626
- package/dist/harness-cli.js.map +1 -1
- package/dist/harness-commands.d.ts +2 -0
- package/dist/harness-commands.js +576 -0
- package/dist/harness-commands.js.map +1 -0
- package/dist/harness-installer.d.ts +1 -10
- package/dist/harness-installer.js +13 -166
- package/dist/harness-installer.js.map +1 -1
- package/dist/harness-registry.d.ts +1 -27
- package/dist/harness-registry.js +1 -20
- package/dist/harness-registry.js.map +1 -1
- package/dist/hook-installer.d.ts +1 -1
- package/dist/hook-installer.js +5 -4
- package/dist/hook-installer.js.map +1 -1
- package/dist/index.js +10 -108
- package/dist/index.js.map +1 -1
- package/dist/install-ftown-command-cli.d.ts +3 -3
- package/dist/install-ftown-command-cli.js +67 -22
- package/dist/install-ftown-command-cli.js.map +1 -1
- package/dist/install-ftown-skill.d.ts +6 -0
- package/dist/install-ftown-skill.js +111 -10
- package/dist/install-ftown-skill.js.map +1 -1
- package/dist/install-notify-script.d.ts +1 -1
- package/dist/install-notify-script.js +7 -6
- package/dist/install-notify-script.js.map +1 -1
- package/dist/mail-delivery.d.ts +1 -1
- package/dist/mail-delivery.js +3 -5
- package/dist/mail-delivery.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/muse-plugin-installer.js +4 -0
- package/dist/muse-plugin-installer.js.map +1 -1
- package/dist/opencode-plugin-installer.d.ts +1 -2
- package/dist/opencode-plugin-installer.js +1 -2
- package/dist/opencode-plugin-installer.js.map +1 -1
- package/dist/provider-env-store.js +1 -1
- package/dist/provider-env-store.js.map +1 -1
- package/dist/retired-skill-assets.d.ts +3 -0
- package/dist/retired-skill-assets.js +11 -0
- package/dist/retired-skill-assets.js.map +1 -1
- package/dist/sessions-commands.d.ts +2 -0
- package/dist/sessions-commands.js +445 -0
- package/dist/sessions-commands.js.map +1 -0
- package/dist/setup-migrations.d.ts +6 -0
- package/dist/setup-migrations.js +28 -0
- package/dist/setup-migrations.js.map +1 -0
- package/dist/setup-state.d.ts +16 -0
- package/dist/setup-state.js +163 -0
- package/dist/setup-state.js.map +1 -0
- package/dist/setup.d.ts +25 -0
- package/dist/setup.js +120 -0
- package/dist/setup.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/wire-types.js +1 -8
- package/dist/wire-types.js.map +1 -1
- package/package.json +2 -3
- package/pi-extension/API.md +4 -0
- package/pi-extension/ftown.js +1 -2
- package/skills/ftown/SKILL.md +71 -19
- package/skills/ftown/references/orchestrator.md +23 -99
- package/skills/ftown/references/sessions.md +37 -42
- package/dist/claude-trust.d.ts +0 -11
- package/dist/claude-trust.js +0 -47
- package/dist/claude-trust.js.map +0 -1
- package/dist/install-ftown-cli.d.ts +0 -3
- package/dist/install-ftown-cli.js +0 -29
- package/dist/install-ftown-cli.js.map +0 -1
- package/dist/install-ftown-env-cli.d.ts +0 -3
- package/dist/install-ftown-env-cli.js +0 -30
- package/dist/install-ftown-env-cli.js.map +0 -1
- package/dist/install-ftown-workflows-cli.d.ts +0 -3
- package/dist/install-ftown-workflows-cli.js +0 -33
- package/dist/install-ftown-workflows-cli.js.map +0 -1
- package/dist/workflow-runner-cli.d.ts +0 -2
- package/dist/workflow-runner-cli.js +0 -376
- package/dist/workflow-runner-cli.js.map +0 -1
- package/dist/workflow-runner.d.ts +0 -163
- package/dist/workflow-runner.js +0 -307
- package/dist/workflow-runner.js.map +0 -1
- package/skills/fticket/SKILL.md +0 -166
- package/skills/ftown/references/workflows.md +0 -470
- package/skills/ftown/scripts/example.flow.mjs +0 -170
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness-commands.js","sourceRoot":"","sources":["../src/harness-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
export interface HarnessInstallResult {
|
|
2
|
-
wrapperPath: string;
|
|
3
|
-
cliPath: string;
|
|
4
|
-
binDir: string;
|
|
5
|
-
}
|
|
6
|
-
/** Deploy ftown-harness wrapper under ~/.ftown/bin (idempotent). */
|
|
7
|
-
export declare function installHarness(harnessCliPath: string): HarnessInstallResult;
|
|
8
|
-
export declare function harnessOnPath(): boolean;
|
|
9
|
-
export declare function pathHint(): string;
|
|
10
1
|
/** Agent-facing cheat sheet — rewritten on every bridge start. */
|
|
11
2
|
export declare function writeHarnessAgentGuide(opts: {
|
|
12
3
|
wrapperPath: string;
|
|
13
|
-
port
|
|
4
|
+
port?: number;
|
|
14
5
|
bridgeId?: string;
|
|
15
6
|
}): void;
|
|
16
7
|
export declare function agentGuidePath(): string;
|
|
@@ -1,179 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { createRequire } from 'node:module';
|
|
1
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
3
2
|
import { homedir } from 'node:os';
|
|
4
|
-
import {
|
|
5
|
-
const require = createRequire(import.meta.url);
|
|
6
|
-
const HARNESS_RUNTIME_DEPS = ['commander'];
|
|
7
|
-
function paths(home = homedir()) {
|
|
8
|
-
const ftownDir = join(home, '.ftown');
|
|
9
|
-
const binDir = join(ftownDir, 'bin');
|
|
10
|
-
return {
|
|
11
|
-
ftownDir,
|
|
12
|
-
binDir,
|
|
13
|
-
wrapper: join(binDir, 'ftown-harness'),
|
|
14
|
-
cliPathFile: join(ftownDir, 'harness-cli.path'),
|
|
15
|
-
runtimeDir: join(ftownDir, 'harness-runtime'),
|
|
16
|
-
cliCopy: join(ftownDir, 'harness-runtime', 'harness-cli.js'),
|
|
17
|
-
formatCopy: join(ftownDir, 'harness-runtime', 'harness-format.js'),
|
|
18
|
-
wireTypesCopy: join(ftownDir, 'harness-runtime', 'wire-types.js'),
|
|
19
|
-
agentGuide: join(ftownDir, 'harness-agent.md'),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
function wrapperScript(cliPathFile) {
|
|
23
|
-
return `#!/usr/bin/env bash
|
|
24
|
-
# Auto-deployed by ftown-bridge — do not edit
|
|
25
|
-
set -euo pipefail
|
|
26
|
-
CLI_PATH_FILE="${cliPathFile.replace(/\\/g, '\\\\')}"
|
|
27
|
-
if [[ ! -f "$CLI_PATH_FILE" ]]; then
|
|
28
|
-
echo "ftown-harness: bridge not running (missing $CLI_PATH_FILE)" >&2
|
|
29
|
-
exit 1
|
|
30
|
-
fi
|
|
31
|
-
CLI="$(cat "$CLI_PATH_FILE")"
|
|
32
|
-
if [[ ! -f "$CLI" ]]; then
|
|
33
|
-
echo "ftown-harness: harness CLI missing at $CLI — restart ftown-bridge" >&2
|
|
34
|
-
exit 1
|
|
35
|
-
fi
|
|
36
|
-
exec node "$CLI" "$@"
|
|
37
|
-
`;
|
|
38
|
-
}
|
|
39
|
-
function findPackageRoot(entrypoint) {
|
|
40
|
-
let dir = dirname(entrypoint);
|
|
41
|
-
const root = parse(dir).root;
|
|
42
|
-
for (;;) {
|
|
43
|
-
if (existsSync(join(dir, 'package.json')))
|
|
44
|
-
return dir;
|
|
45
|
-
if (dir === root) {
|
|
46
|
-
throw new Error(`Could not find package root for ${entrypoint}`);
|
|
47
|
-
}
|
|
48
|
-
dir = dirname(dir);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function copyRuntimeDependency(dep, fromDir, runtimeDir) {
|
|
52
|
-
const entrypoint = require.resolve(dep, { paths: [fromDir] });
|
|
53
|
-
const packageDir = findPackageRoot(entrypoint);
|
|
54
|
-
const dest = join(runtimeDir, 'node_modules', dep);
|
|
55
|
-
cpSync(packageDir, dest, { recursive: true, force: true });
|
|
56
|
-
}
|
|
57
|
-
/** Deploy ftown-harness wrapper under ~/.ftown/bin (idempotent). */
|
|
58
|
-
export function installHarness(harnessCliPath) {
|
|
59
|
-
const p = paths();
|
|
60
|
-
const cliPath = p.cliCopy;
|
|
61
|
-
mkdirSync(p.binDir, { recursive: true, mode: 0o700 });
|
|
62
|
-
mkdirSync(p.runtimeDir, { recursive: true, mode: 0o700 });
|
|
63
|
-
copyFileSync(harnessCliPath, p.cliCopy);
|
|
64
|
-
chmodSync(p.cliCopy, 0o644);
|
|
65
|
-
copyFileSync(join(dirname(harnessCliPath), 'harness-format.js'), p.formatCopy);
|
|
66
|
-
chmodSync(p.formatCopy, 0o644);
|
|
67
|
-
copyFileSync(join(dirname(harnessCliPath), 'wire-types.js'), p.wireTypesCopy);
|
|
68
|
-
chmodSync(p.wireTypesCopy, 0o644);
|
|
69
|
-
for (const dep of HARNESS_RUNTIME_DEPS) {
|
|
70
|
-
copyRuntimeDependency(dep, dirname(harnessCliPath), p.runtimeDir);
|
|
71
|
-
}
|
|
72
|
-
writeFileSync(p.cliPathFile, cliPath + '\n', { mode: 0o600 });
|
|
73
|
-
writeFileSync(p.wrapper, wrapperScript(p.cliPathFile), { mode: 0o755 });
|
|
74
|
-
return {
|
|
75
|
-
wrapperPath: p.wrapper,
|
|
76
|
-
cliPath,
|
|
77
|
-
binDir: p.binDir,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
export function harnessOnPath() {
|
|
81
|
-
const { ftownDir, binDir } = paths();
|
|
82
|
-
const pathEnv = process.env.PATH ?? '';
|
|
83
|
-
return pathEnv.split(':').some((p) => p === binDir || p === join(ftownDir, 'bin'));
|
|
84
|
-
}
|
|
85
|
-
export function pathHint() {
|
|
86
|
-
const { wrapper, binDir } = paths();
|
|
87
|
-
return existsSync(wrapper)
|
|
88
|
-
? `Add to PATH: export PATH="${binDir}:$PATH"`
|
|
89
|
-
: '';
|
|
90
|
-
}
|
|
3
|
+
import { join } from 'node:path';
|
|
91
4
|
/** Agent-facing cheat sheet — rewritten on every bridge start. */
|
|
92
5
|
export function writeHarnessAgentGuide(opts) {
|
|
93
|
-
const
|
|
94
|
-
const body = `# ftown bridge harness (auto-generated)
|
|
95
|
-
|
|
96
|
-
Bridge is running. Use the harness CLI — **do not** use curl, lsof, or raw HTTP for the local bridge API.
|
|
97
|
-
|
|
98
|
-
## Command
|
|
99
|
-
|
|
100
|
-
\`\`\`bash
|
|
101
|
-
${h} <subcommand>
|
|
102
|
-
\`\`\`
|
|
103
|
-
|
|
104
|
-
Wrapper path is stable; bridge port/token live in \`~/.ftown/bridge.json\` (current port: ${opts.port}).
|
|
105
|
-
|
|
106
|
-
## Default workflow (run in order)
|
|
107
|
-
|
|
108
|
-
\`\`\`bash
|
|
109
|
-
${h} status # bridge up?
|
|
110
|
-
${h} here -n 25 # workspace session + tail (works when process dead if log exists)
|
|
111
|
-
${h} ls --tail 3 # all sessions; log=N lines; preview dead sessions too
|
|
112
|
-
${h} grep <name> "error|FAIL" -C 2
|
|
113
|
-
\`\`\`
|
|
114
|
-
|
|
115
|
-
## Subcommands
|
|
116
|
-
|
|
117
|
-
| Subcommand | Example |
|
|
118
|
-
|------------|---------|
|
|
119
|
-
| \`status\` | \`${h} status\` |
|
|
120
|
-
| \`ls\` | \`${h} ls --tail 3\` |
|
|
121
|
-
| \`here\` | \`${h} here -n 30\` — walks up from cwd to find workspace |
|
|
122
|
-
| \`tail\` | \`${h} tail ftown -n 40\` |
|
|
123
|
-
| \`grep\` | \`${h} grep legbi "pattern" -C 2\` |
|
|
124
|
-
| \`mail send\` | \`${h} mail send <session> --type task "do X"\` — inter-agent mail |
|
|
125
|
-
| \`mail read\` | \`${h} mail read\` (\`--peek\`, \`--limit N\`, \`--all\`) |
|
|
126
|
-
| \`send\` | \`${h} send ftown "text" -s --dry-run\` first; **only if user asked** |
|
|
127
|
-
| \`--json\` | \`${h} --json ls\` — machine-readable output |
|
|
128
|
-
|
|
129
|
-
## Session names
|
|
130
|
-
|
|
131
|
-
Resolve by exact name → unique substring → id prefix. Ambiguous names print choices.
|
|
132
|
-
|
|
133
|
-
## Mail (per-session inbox)
|
|
134
|
-
|
|
135
|
-
\`\`\`bash
|
|
136
|
-
${h} mail send <session> "message" # plain message
|
|
137
|
-
${h} mail send <child> --type task "do X" # task for a worker
|
|
138
|
-
${h} mail send --parent --type result "done" # report to parent (uses FTOWN_PARENT_SESSION_ID)
|
|
139
|
-
${h} mail read # pending mail; --peek keeps it undelivered
|
|
140
|
-
\`\`\`
|
|
141
|
-
|
|
142
|
-
Types: \`message | task | result | escalation\`; \`--thread <id>\` groups replies.
|
|
143
|
-
Mail reaches the recipient automatically: a synchronous \`hook-pump\` hook
|
|
144
|
-
(Stop / UserPromptSubmit / SessionStart in \`~/.claude/settings.json\` for claude,
|
|
145
|
-
\`~/.codex/hooks.json\` for codex) checks the inbox at turn boundaries and
|
|
146
|
-
injects pending mail as \`[ftown mail]\` context —
|
|
147
|
-
on Stop it holds the agent's turn open so messages get handled immediately.
|
|
148
|
-
Pi's bundled extension keeps one cancellable inbox long-poll open and wakes an
|
|
149
|
-
idle Pi session with a native follow-up turn as soon as mail arrives.
|
|
150
|
-
opencode sessions get the same turn-boundary delivery through the installed
|
|
151
|
-
plugin at \`~/.config/opencode/plugins/ftown.js\`.
|
|
152
|
-
Cursor and shell sessions have no hooks; when idle they get a one-line nudge
|
|
153
|
-
to run \`ftown-harness mail read\` instead.
|
|
154
|
-
Prefer mail over \`send\` (keystroke injection) for agent-to-agent communication.
|
|
155
|
-
|
|
156
|
-
## Submit keys (\`-s\`)
|
|
157
|
-
|
|
158
|
-
- All shell types: Enter (\`\\r\`)
|
|
159
|
-
|
|
160
|
-
## Registry
|
|
161
|
-
|
|
162
|
-
\`~/.ftown/session-registry.json\` maps workspace roots → session id. \`here\` uses it.
|
|
163
|
-
|
|
164
|
-
## When bridge is down
|
|
6
|
+
const body = `# ftown agent guide (auto-generated)
|
|
165
7
|
|
|
166
|
-
|
|
8
|
+
Read the installed ftown skill at ~/.ftown/skills/ftown/SKILL.md for session,
|
|
9
|
+
mail, terminal, and cleanup guidance. Its references/sessions.md contains the
|
|
10
|
+
command reference; references/orchestrator.md adds coordination examples.
|
|
167
11
|
|
|
168
|
-
|
|
12
|
+
Discover commands with \`ftown --help\`, \`ftown sessions --help\`,
|
|
13
|
+
\`ftown harness --help\`, and \`ftown env --help\`.
|
|
14
|
+
If ftown is not on PATH, use \`~/.ftown/ftown\`.
|
|
169
15
|
|
|
170
|
-
|
|
16
|
+
Bridge connection details live in \`~/.ftown/bridge.json\`.
|
|
171
17
|
`;
|
|
172
|
-
const
|
|
18
|
+
const ftownDir = join(homedir(), '.ftown');
|
|
19
|
+
const agentGuide = agentGuidePath();
|
|
173
20
|
mkdirSync(ftownDir, { recursive: true, mode: 0o700 });
|
|
174
21
|
writeFileSync(agentGuide, body, { mode: 0o600 });
|
|
175
22
|
}
|
|
176
23
|
export function agentGuidePath() {
|
|
177
|
-
return
|
|
24
|
+
return join(homedir(), '.ftown', 'harness-agent.md');
|
|
178
25
|
}
|
|
179
26
|
//# sourceMappingURL=harness-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-installer.js","sourceRoot":"","sources":["../src/harness-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"harness-installer.js","sourceRoot":"","sources":["../src/harness-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,kEAAkE;AAClE,MAAM,UAAU,sBAAsB,CAAC,IAItC;IACC,MAAM,IAAI,GAAG;;;;;;;;;;;CAWd,CAAC;IACA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC;IACpC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -2,14 +2,9 @@
|
|
|
2
2
|
* Single source of truth for the supported harnesses ("shell types").
|
|
3
3
|
*
|
|
4
4
|
* Every place that used to re-list harness names (ShellType unions,
|
|
5
|
-
* HOOKED_SHELL_TYPES,
|
|
5
|
+
* HOOKED_SHELL_TYPES, the buildSessionCommand
|
|
6
6
|
* branch, the prompt-as-CLI-arg predicate) now derives from HARNESSES below.
|
|
7
7
|
*
|
|
8
|
-
* NOTE: this module is part of the bridge dist and is NOT sibling-copied into
|
|
9
|
-
* ~/.ftown. Standalone sibling-copied modules (provider-env-store.ts,
|
|
10
|
-
* workflow-runner.ts, workflow-runner-cli.ts, harness-cli.ts,
|
|
11
|
-
* ftown-sessions-cli.ts) must not import it at runtime — type-only imports are
|
|
12
|
-
* fine (they are erased at compile time).
|
|
13
8
|
*/
|
|
14
9
|
/** Escape an argument for the direct runtime's platform shell. */
|
|
15
10
|
export declare function shellQuote(value: string, platform?: NodeJS.Platform): string;
|
|
@@ -47,8 +42,6 @@ export interface HarnessSpec {
|
|
|
47
42
|
* which stays registry-free so it can be sibling-copied).
|
|
48
43
|
*/
|
|
49
44
|
providerBase?: 'claude';
|
|
50
|
-
/** Accepted as a workflow child shell (WorkflowShell / ftown-workflows --shell). */
|
|
51
|
-
validForWorkflow: boolean;
|
|
52
45
|
/**
|
|
53
46
|
* Minimum gap (ms) enforced between concurrent spawns of this harness
|
|
54
47
|
* (see spawn-stagger.ts). Unset means spawns are not staggered.
|
|
@@ -101,14 +94,12 @@ export declare const HARNESSES: {
|
|
|
101
94
|
readonly hooked: true;
|
|
102
95
|
readonly promptAsCliArg: true;
|
|
103
96
|
readonly resumeField: "claudeSessionId";
|
|
104
|
-
readonly validForWorkflow: true;
|
|
105
97
|
};
|
|
106
98
|
readonly cursor: {
|
|
107
99
|
readonly buildCommand: (input: BuildCommandInput) => string;
|
|
108
100
|
readonly hooked: false;
|
|
109
101
|
readonly promptAsCliArg: true;
|
|
110
102
|
readonly resumeField: "cursorSessionId";
|
|
111
|
-
readonly validForWorkflow: true;
|
|
112
103
|
readonly spawnStaggerMs: 300;
|
|
113
104
|
};
|
|
114
105
|
readonly codex: {
|
|
@@ -116,45 +107,38 @@ export declare const HARNESSES: {
|
|
|
116
107
|
readonly hooked: true;
|
|
117
108
|
readonly promptAsCliArg: true;
|
|
118
109
|
readonly resumeField: "codexSessionId";
|
|
119
|
-
readonly validForWorkflow: true;
|
|
120
110
|
};
|
|
121
111
|
readonly shell: {
|
|
122
112
|
readonly buildCommand: () => string;
|
|
123
113
|
readonly hooked: false;
|
|
124
114
|
readonly promptAsCliArg: false;
|
|
125
|
-
readonly validForWorkflow: true;
|
|
126
115
|
};
|
|
127
116
|
readonly grok: {
|
|
128
117
|
readonly buildCommand: (input: BuildCommandInput) => string;
|
|
129
118
|
readonly hooked: false;
|
|
130
119
|
readonly promptAsCliArg: true;
|
|
131
|
-
readonly validForWorkflow: false;
|
|
132
120
|
};
|
|
133
121
|
readonly muse: {
|
|
134
122
|
readonly buildCommand: (input: BuildCommandInput) => string;
|
|
135
123
|
readonly hooked: true;
|
|
136
124
|
readonly promptAsCliArg: true;
|
|
137
125
|
readonly resumeField: "museSessionId";
|
|
138
|
-
readonly validForWorkflow: false;
|
|
139
126
|
};
|
|
140
127
|
readonly pi: {
|
|
141
128
|
readonly buildCommand: (input: BuildCommandInput) => string;
|
|
142
129
|
readonly hooked: true;
|
|
143
130
|
readonly promptAsCliArg: true;
|
|
144
|
-
readonly validForWorkflow: true;
|
|
145
131
|
};
|
|
146
132
|
readonly opencode: {
|
|
147
133
|
readonly buildCommand: (input: BuildCommandInput) => string;
|
|
148
134
|
readonly hooked: true;
|
|
149
135
|
readonly promptAsCliArg: true;
|
|
150
136
|
readonly resumeField: "opencodeSessionId";
|
|
151
|
-
readonly validForWorkflow: true;
|
|
152
137
|
};
|
|
153
138
|
readonly 'kimi-code': {
|
|
154
139
|
readonly buildCommand: (input: BuildCommandInput) => string;
|
|
155
140
|
readonly hooked: false;
|
|
156
141
|
readonly promptAsCliArg: false;
|
|
157
|
-
readonly validForWorkflow: false;
|
|
158
142
|
};
|
|
159
143
|
readonly zai: {
|
|
160
144
|
readonly buildCommand: typeof buildClaudeCommand;
|
|
@@ -162,7 +146,6 @@ export declare const HARNESSES: {
|
|
|
162
146
|
readonly promptAsCliArg: true;
|
|
163
147
|
readonly resumeField: "claudeSessionId";
|
|
164
148
|
readonly providerBase: "claude";
|
|
165
|
-
readonly validForWorkflow: false;
|
|
166
149
|
};
|
|
167
150
|
readonly kimi: {
|
|
168
151
|
readonly buildCommand: typeof buildClaudeCommand;
|
|
@@ -170,7 +153,6 @@ export declare const HARNESSES: {
|
|
|
170
153
|
readonly promptAsCliArg: true;
|
|
171
154
|
readonly resumeField: "claudeSessionId";
|
|
172
155
|
readonly providerBase: "claude";
|
|
173
|
-
readonly validForWorkflow: false;
|
|
174
156
|
};
|
|
175
157
|
readonly deepseek: {
|
|
176
158
|
readonly buildCommand: typeof buildClaudeCommand;
|
|
@@ -178,7 +160,6 @@ export declare const HARNESSES: {
|
|
|
178
160
|
readonly promptAsCliArg: true;
|
|
179
161
|
readonly resumeField: "claudeSessionId";
|
|
180
162
|
readonly providerBase: "claude";
|
|
181
|
-
readonly validForWorkflow: false;
|
|
182
163
|
};
|
|
183
164
|
readonly fireworks: {
|
|
184
165
|
readonly buildCommand: typeof buildClaudeCommand;
|
|
@@ -186,17 +167,10 @@ export declare const HARNESSES: {
|
|
|
186
167
|
readonly promptAsCliArg: true;
|
|
187
168
|
readonly resumeField: "claudeSessionId";
|
|
188
169
|
readonly providerBase: "claude";
|
|
189
|
-
readonly validForWorkflow: false;
|
|
190
170
|
};
|
|
191
171
|
};
|
|
192
172
|
export type ShellType = keyof typeof HARNESSES;
|
|
193
|
-
type KeysWhere<F extends 'validForWorkflow' | 'hooked'> = {
|
|
194
|
-
[K in ShellType]: (typeof HARNESSES)[K][F] extends true ? K : never;
|
|
195
|
-
}[ShellType];
|
|
196
|
-
/** Harnesses accepted as workflow child shells — derived, so drift is a compile error. */
|
|
197
|
-
export type WorkflowShell = KeysWhere<'validForWorkflow'>;
|
|
198
173
|
export declare const SHELL_TYPES: readonly ShellType[];
|
|
199
|
-
export declare const WORKFLOW_SHELLS: readonly WorkflowShell[];
|
|
200
174
|
/** Shell types whose mail arrives at turn boundaries through native hooks/extensions. */
|
|
201
175
|
export declare const HOOKED_SHELL_TYPES: ReadonlySet<string>;
|
|
202
176
|
export declare function isShellType(value: unknown): value is ShellType;
|
package/dist/harness-registry.js
CHANGED
|
@@ -2,14 +2,9 @@
|
|
|
2
2
|
* Single source of truth for the supported harnesses ("shell types").
|
|
3
3
|
*
|
|
4
4
|
* Every place that used to re-list harness names (ShellType unions,
|
|
5
|
-
* HOOKED_SHELL_TYPES,
|
|
5
|
+
* HOOKED_SHELL_TYPES, the buildSessionCommand
|
|
6
6
|
* branch, the prompt-as-CLI-arg predicate) now derives from HARNESSES below.
|
|
7
7
|
*
|
|
8
|
-
* NOTE: this module is part of the bridge dist and is NOT sibling-copied into
|
|
9
|
-
* ~/.ftown. Standalone sibling-copied modules (provider-env-store.ts,
|
|
10
|
-
* workflow-runner.ts, workflow-runner-cli.ts, harness-cli.ts,
|
|
11
|
-
* ftown-sessions-cli.ts) must not import it at runtime — type-only imports are
|
|
12
|
-
* fine (they are erased at compile time).
|
|
13
8
|
*/
|
|
14
9
|
/** Escape an argument for the direct runtime's platform shell. */
|
|
15
10
|
export function shellQuote(value, platform = process.platform) {
|
|
@@ -168,7 +163,6 @@ const CLAUDE_SPEC = {
|
|
|
168
163
|
hooked: true,
|
|
169
164
|
promptAsCliArg: true,
|
|
170
165
|
resumeField: 'claudeSessionId',
|
|
171
|
-
validForWorkflow: true,
|
|
172
166
|
};
|
|
173
167
|
/** claude-rebadged provider flavor (zai/kimi/deepseek/fireworks): same CLI, provider env. */
|
|
174
168
|
const PROVIDER_FLAVOR_SPEC = {
|
|
@@ -177,8 +171,6 @@ const PROVIDER_FLAVOR_SPEC = {
|
|
|
177
171
|
promptAsCliArg: true,
|
|
178
172
|
resumeField: 'claudeSessionId',
|
|
179
173
|
providerBase: 'claude',
|
|
180
|
-
// Preserved decision: provider flavors were never in WorkflowShell.
|
|
181
|
-
validForWorkflow: false,
|
|
182
174
|
};
|
|
183
175
|
export const HARNESSES = {
|
|
184
176
|
claude: CLAUDE_SPEC,
|
|
@@ -192,7 +184,6 @@ export const HARNESSES = {
|
|
|
192
184
|
hooked: false,
|
|
193
185
|
promptAsCliArg: true,
|
|
194
186
|
resumeField: 'cursorSessionId',
|
|
195
|
-
validForWorkflow: true,
|
|
196
187
|
// Concurrent cursor-agent startups race on a macOS Keychain WRITE during
|
|
197
188
|
// token refresh (last-writer-wins; corrupts auth from 2 concurrent spawns).
|
|
198
189
|
// A 250ms spawn stagger fully eliminated it in testing (0/27 at N=9);
|
|
@@ -209,13 +200,11 @@ export const HARNESSES = {
|
|
|
209
200
|
hooked: true,
|
|
210
201
|
promptAsCliArg: true,
|
|
211
202
|
resumeField: 'codexSessionId',
|
|
212
|
-
validForWorkflow: true,
|
|
213
203
|
},
|
|
214
204
|
shell: {
|
|
215
205
|
buildCommand: () => '/bin/zsh -l',
|
|
216
206
|
hooked: false,
|
|
217
207
|
promptAsCliArg: false,
|
|
218
|
-
validForWorkflow: true,
|
|
219
208
|
},
|
|
220
209
|
grok: {
|
|
221
210
|
// Workdir comes from the runner cwd — grok inherits process cwd, no --cwd.
|
|
@@ -226,8 +215,6 @@ export const HARNESSES = {
|
|
|
226
215
|
// Preserved decision: grok was never in HOOKED_SHELL_TYPES (no Stop-hook pump).
|
|
227
216
|
hooked: false,
|
|
228
217
|
promptAsCliArg: true,
|
|
229
|
-
// Preserved decision: grok was absent from WorkflowShell / ftown-workflows SHELLS.
|
|
230
|
-
validForWorkflow: false,
|
|
231
218
|
},
|
|
232
219
|
muse: {
|
|
233
220
|
// Fresh spawns take a positional prompt (grok-style); resume restores the
|
|
@@ -244,8 +231,6 @@ export const HARNESSES = {
|
|
|
244
231
|
hooked: true,
|
|
245
232
|
promptAsCliArg: true,
|
|
246
233
|
resumeField: 'museSessionId',
|
|
247
|
-
// Preserved decision: like grok, muse is absent from WorkflowShell / ftown-workflows SHELLS.
|
|
248
|
-
validForWorkflow: false,
|
|
249
234
|
},
|
|
250
235
|
pi: {
|
|
251
236
|
// Workdir comes from the runner cwd. Pi resumes the most recent session for
|
|
@@ -258,7 +243,6 @@ export const HARNESSES = {
|
|
|
258
243
|
}),
|
|
259
244
|
hooked: true,
|
|
260
245
|
promptAsCliArg: true,
|
|
261
|
-
validForWorkflow: true,
|
|
262
246
|
},
|
|
263
247
|
opencode: {
|
|
264
248
|
// Workdir comes from the runner cwd — opencode takes a project dir
|
|
@@ -274,14 +258,12 @@ export const HARNESSES = {
|
|
|
274
258
|
hooked: true,
|
|
275
259
|
promptAsCliArg: true,
|
|
276
260
|
resumeField: 'opencodeSessionId',
|
|
277
|
-
validForWorkflow: true,
|
|
278
261
|
},
|
|
279
262
|
'kimi-code': {
|
|
280
263
|
// Own binary (absolute path); interactive TUI, no positional prompt.
|
|
281
264
|
buildCommand: (input) => buildKimiCodeCommand({ model: input.model, resume: input.resume }),
|
|
282
265
|
hooked: false,
|
|
283
266
|
promptAsCliArg: false,
|
|
284
|
-
validForWorkflow: false,
|
|
285
267
|
},
|
|
286
268
|
zai: PROVIDER_FLAVOR_SPEC,
|
|
287
269
|
kimi: PROVIDER_FLAVOR_SPEC,
|
|
@@ -290,7 +272,6 @@ export const HARNESSES = {
|
|
|
290
272
|
};
|
|
291
273
|
// ---- Derived runtime lists / predicates ----
|
|
292
274
|
export const SHELL_TYPES = Object.keys(HARNESSES);
|
|
293
|
-
export const WORKFLOW_SHELLS = SHELL_TYPES.filter((type) => HARNESSES[type].validForWorkflow);
|
|
294
275
|
/** Shell types whose mail arrives at turn boundaries through native hooks/extensions. */
|
|
295
276
|
export const HOOKED_SHELL_TYPES = new Set(SHELL_TYPES.filter((type) => HARNESSES[type].hooked));
|
|
296
277
|
export function isShellType(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness-registry.js","sourceRoot":"","sources":["../src/harness-registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"harness-registry.js","sourceRoot":"","sources":["../src/harness-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/hook-installer.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** Matches `ftown-harness hook-pump` in both bare and absolute-path forms. */
|
|
2
2
|
export declare function isFtownMailPumpCommand(command: string): boolean;
|
|
3
|
-
export declare function installClaudeHooks(notifyScriptPath: string):
|
|
3
|
+
export declare function installClaudeHooks(notifyScriptPath: string): boolean;
|
package/dist/hook-installer.js
CHANGED
|
@@ -53,7 +53,7 @@ export function installClaudeHooks(notifyScriptPath) {
|
|
|
53
53
|
catch (err) {
|
|
54
54
|
const msg = err instanceof Error ? err.message : String(err);
|
|
55
55
|
console.error(`[HookInstaller] failed: ${msg}`);
|
|
56
|
-
return;
|
|
56
|
+
return false;
|
|
57
57
|
}
|
|
58
58
|
let parsed;
|
|
59
59
|
try {
|
|
@@ -61,13 +61,13 @@ export function installClaudeHooks(notifyScriptPath) {
|
|
|
61
61
|
parsed = trimmed.length === 0 ? {} : JSON.parse(trimmed);
|
|
62
62
|
if (!isObject(parsed)) {
|
|
63
63
|
console.error('[HookInstaller] failed: settings.json root is not an object');
|
|
64
|
-
return;
|
|
64
|
+
return false;
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
catch (err) {
|
|
68
68
|
const msg = err instanceof Error ? err.message : String(err);
|
|
69
69
|
console.error(`[HookInstaller] failed: ${msg}`);
|
|
70
|
-
return;
|
|
70
|
+
return false;
|
|
71
71
|
}
|
|
72
72
|
if (!isObject(parsed.hooks)) {
|
|
73
73
|
parsed.hooks = {};
|
|
@@ -112,8 +112,9 @@ export function installClaudeHooks(notifyScriptPath) {
|
|
|
112
112
|
catch (err) {
|
|
113
113
|
const msg = err instanceof Error ? err.message : String(err);
|
|
114
114
|
console.error(`[HookInstaller] failed: ${msg}`);
|
|
115
|
-
return;
|
|
115
|
+
return false;
|
|
116
116
|
}
|
|
117
117
|
console.log(`[HookInstaller] settings.json: added ${counters.added}, repaired ${counters.repaired}, kept ${counters.kept}`);
|
|
118
|
+
return true;
|
|
118
119
|
}
|
|
119
120
|
//# sourceMappingURL=hook-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-installer.js","sourceRoot":"","sources":["../src/hook-installer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hook-installer.js","sourceRoot":"","sources":["../src/hook-installer.ts"],"names":[],"mappings":"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"}
|