flow-agent-bridge 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/setup.d.ts +11 -0
- package/dist/setup.js +50 -10
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,6 +33,16 @@ unattended:
|
|
|
33
33
|
npx flow-agent-bridge --invite flow-K7P2-9QMR --name RepoBot --handle repobot --harness claude
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
+
Or commit the answers: an **`agent.example.json`** next to the (future)
|
|
37
|
+
`agent.json` is read by setup as the config's base — persona and settings
|
|
38
|
+
(`runtime.systemPromptExtra`, `allowedTools`, `eventScope`,
|
|
39
|
+
`respondToAgents`, …) are carried into the written `agent.json`, and the
|
|
40
|
+
extra keys `name`, `username`, `description` plus `runtime.kind` /
|
|
41
|
+
`runtime.cwd` pre-answer the prompts. With one of those in the folder,
|
|
42
|
+
onboarding is just `npx flow-agent-bridge flow-K7P2-9QMR` — no questions,
|
|
43
|
+
and the minted credentials land on top of your defaults. Flags still win
|
|
44
|
+
over the template.
|
|
45
|
+
|
|
36
46
|
| Flag | Default | Meaning |
|
|
37
47
|
|---|---|---|
|
|
38
48
|
| `--invite` | prompted (or the positional `<invite-code>`) | the one-time invite code |
|
package/dist/setup.d.ts
CHANGED
|
@@ -9,4 +9,15 @@ export interface SetupOptions {
|
|
|
9
9
|
description?: string | undefined;
|
|
10
10
|
cwd?: string | undefined;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* `agent.example.json` next to the target config: committed defaults for this
|
|
14
|
+
* agent's home. Setup merges it under the freshly minted credentials, so a
|
|
15
|
+
* folder can carry the whole persona (runtime.systemPromptExtra, eventScope,
|
|
16
|
+
* respondToAgents, …) and the wizard fills in only what onboarding creates.
|
|
17
|
+
* The extra keys `name`, `username`, and `description` seed the matching
|
|
18
|
+
* prompts (making a bare `npx flow-agent-bridge <code>` fully non-interactive)
|
|
19
|
+
* and are stripped from the written agent.json; `runtime.kind` and
|
|
20
|
+
* `runtime.cwd` seed the harness and working-directory answers.
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadTemplate(configPath: string): Record<string, unknown> | null;
|
|
12
23
|
export declare function runSetup(configPath: string, opts?: SetupOptions): Promise<string>;
|
package/dist/setup.js
CHANGED
|
@@ -27,8 +27,38 @@ function slugify(name) {
|
|
|
27
27
|
.replace(/^[-._]+|[-._]+$/g, '')
|
|
28
28
|
.slice(0, 32);
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* `agent.example.json` next to the target config: committed defaults for this
|
|
32
|
+
* agent's home. Setup merges it under the freshly minted credentials, so a
|
|
33
|
+
* folder can carry the whole persona (runtime.systemPromptExtra, eventScope,
|
|
34
|
+
* respondToAgents, …) and the wizard fills in only what onboarding creates.
|
|
35
|
+
* The extra keys `name`, `username`, and `description` seed the matching
|
|
36
|
+
* prompts (making a bare `npx flow-agent-bridge <code>` fully non-interactive)
|
|
37
|
+
* and are stripped from the written agent.json; `runtime.kind` and
|
|
38
|
+
* `runtime.cwd` seed the harness and working-directory answers.
|
|
39
|
+
*/
|
|
40
|
+
export function loadTemplate(configPath) {
|
|
41
|
+
const p = path.join(path.dirname(path.resolve(configPath)), 'agent.example.json');
|
|
42
|
+
if (!fs.existsSync(p))
|
|
43
|
+
return null;
|
|
44
|
+
let raw;
|
|
45
|
+
try {
|
|
46
|
+
raw = JSON.parse(fs.readFileSync(p, 'utf8'));
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
throw new Error(`could not read ${p}: ${err.message}`);
|
|
50
|
+
}
|
|
51
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
52
|
+
throw new Error(`${p} must contain a JSON object`);
|
|
53
|
+
}
|
|
54
|
+
return raw;
|
|
55
|
+
}
|
|
30
56
|
export async function runSetup(configPath, opts = {}) {
|
|
31
|
-
const
|
|
57
|
+
const template = loadTemplate(configPath);
|
|
58
|
+
const t = (k) => typeof template?.[k] === 'string' ? template[k] : undefined;
|
|
59
|
+
const tRuntime = (template?.runtime && typeof template.runtime === 'object' ? template.runtime : {});
|
|
60
|
+
const tr = (k) => (typeof tRuntime[k] === 'string' ? tRuntime[k] : undefined);
|
|
61
|
+
const serverUrl = (opts.serverUrl ?? process.env.FLOW_SERVER_URL ?? t('serverUrl') ?? 'https://app.freeflow.im').replace(/\/+$/, '');
|
|
32
62
|
const rl = process.stdin.isTTY ? readline.createInterface({ input: process.stdin, output: process.stdout }) : null;
|
|
33
63
|
// A required value: take the flag if given (validated), otherwise prompt.
|
|
34
64
|
// Without a TTY and without the flag there is no way to obtain it.
|
|
@@ -50,6 +80,8 @@ export async function runSetup(configPath, opts = {}) {
|
|
|
50
80
|
}
|
|
51
81
|
try {
|
|
52
82
|
console.log('Setting up your Flow agent.\n');
|
|
83
|
+
if (template)
|
|
84
|
+
console.log('Using defaults from agent.example.json.\n');
|
|
53
85
|
let agentToken;
|
|
54
86
|
let agentUsername;
|
|
55
87
|
let agentKey;
|
|
@@ -60,7 +92,7 @@ export async function runSetup(configPath, opts = {}) {
|
|
|
60
92
|
const me = await new FlowApi(serverUrl, opts.token).me();
|
|
61
93
|
console.log(`Reconnecting as existing agent ${me.displayName} <@${me.id}>.\n`);
|
|
62
94
|
agentToken = opts.token;
|
|
63
|
-
kind = await required(opts.harness, 'Agent harness — claude, codex, or demo', {
|
|
95
|
+
kind = await required(opts.harness ?? tr('kind'), 'Agent harness — claude, codex, or demo', {
|
|
64
96
|
def: 'claude',
|
|
65
97
|
normalize: (s) => s.toLowerCase(),
|
|
66
98
|
validate: (s) => HARNESSES.includes(s),
|
|
@@ -74,18 +106,18 @@ export async function runSetup(configPath, opts = {}) {
|
|
|
74
106
|
normalize: (s) => s.trim(),
|
|
75
107
|
validate: (s) => INVITE_CODE_RE.test(s),
|
|
76
108
|
});
|
|
77
|
-
const name = await required(opts.name, 'Agent name (shown in Flow, e.g. RepoBot)');
|
|
78
|
-
const username = await required(opts.username, 'Handle (the agent’s @username — its durable login)', {
|
|
109
|
+
const name = await required(opts.name ?? t('name'), 'Agent name (shown in Flow, e.g. RepoBot)');
|
|
110
|
+
const username = await required(opts.username ?? t('username'), 'Handle (the agent’s @username — its durable login)', {
|
|
79
111
|
def: slugify(name),
|
|
80
112
|
normalize: (s) => s.toLowerCase(),
|
|
81
113
|
validate: (s) => /^[a-z0-9][a-z0-9._-]{2,31}$/.test(s),
|
|
82
114
|
});
|
|
83
|
-
kind = await required(opts.harness, 'Agent harness — claude, codex, or demo', {
|
|
115
|
+
kind = await required(opts.harness ?? tr('kind'), 'Agent harness — claude, codex, or demo', {
|
|
84
116
|
def: 'claude',
|
|
85
117
|
normalize: (s) => s.toLowerCase(),
|
|
86
118
|
validate: (s) => HARNESSES.includes(s),
|
|
87
119
|
});
|
|
88
|
-
const description = opts.description ?? '';
|
|
120
|
+
const description = opts.description ?? t('description') ?? '';
|
|
89
121
|
const key = newAgentKey();
|
|
90
122
|
console.log('\nJoining the workspace…');
|
|
91
123
|
const res = await redeemAgentInvite(serverUrl, {
|
|
@@ -100,19 +132,27 @@ export async function runSetup(configPath, opts = {}) {
|
|
|
100
132
|
agentUsername = username;
|
|
101
133
|
agentKey = key;
|
|
102
134
|
}
|
|
135
|
+
// Template values first, credentials and resolved answers on top — so an
|
|
136
|
+
// agent.example.json carries everything but what onboarding mints.
|
|
103
137
|
const config = {
|
|
138
|
+
...(template ?? {}),
|
|
104
139
|
serverUrl,
|
|
105
140
|
agentToken,
|
|
106
141
|
// username + key are the agent's durable credentials: `flow-agent-bridge
|
|
107
142
|
// login` re-mints a token from them if agent.json's token is ever lost.
|
|
108
143
|
...(agentUsername ? { agentUsername } : {}),
|
|
109
144
|
...(agentKey ? { agentKey } : {}),
|
|
110
|
-
runtime: { kind },
|
|
145
|
+
runtime: { ...tRuntime, kind },
|
|
111
146
|
};
|
|
147
|
+
// Prompt-seed keys, not config keys.
|
|
148
|
+
delete config.name;
|
|
149
|
+
delete config.username;
|
|
150
|
+
delete config.description;
|
|
112
151
|
if (kind !== 'demo') {
|
|
113
|
-
// Optional; defaults to
|
|
114
|
-
// repo checkout that IS the
|
|
115
|
-
|
|
152
|
+
// Optional; defaults to the template's runtime.cwd, then to where
|
|
153
|
+
// `npx flow-agent-bridge` was run (usually the repo checkout that IS the
|
|
154
|
+
// agent's identity). --cwd overrides.
|
|
155
|
+
const cwd = path.resolve(expandHome(opts.cwd ?? tr('cwd') ?? '.'));
|
|
116
156
|
if (!fs.existsSync(cwd))
|
|
117
157
|
throw new Error(`working directory does not exist: ${cwd} (pass --cwd)`);
|
|
118
158
|
config.runtime.cwd = cwd;
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAczC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,MAAM,cAAc,GAAG,4CAA4C,CAAC;AAEpE,KAAK,UAAU,GAAG,CAAC,EAAsB,EAAE,CAAS,EAAE,GAAY;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,4EAA4E;AAC5E,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAAkB,EAAE,OAAqB,EAAE;IACxE,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-agent-bridge",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Flow agent bridge: joins a Flow workspace as a first-class AI agent and execs a coding-agent CLI (Claude Code, Codex) headlessly per conversation",
|
|
6
6
|
"license": "MIT",
|