flowviant 0.52.0 → 0.54.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 +25 -31
- package/bin/cli.mjs +28 -22
- package/bin/lib/authproxy.mjs +131 -32
- package/bin/lib/config.mjs +15 -20
- package/bin/lib/fleet.mjs +141 -63
- package/bin/lib/git.mjs +1 -1
- package/bin/lib/instance.mjs +296 -17
- package/bin/lib/listeners.mjs +269 -0
- package/bin/lib/login.mjs +5 -1
- package/bin/lib/mcp-cli.mjs +12 -11
- package/bin/lib/preflight.mjs +8 -5
- package/bin/lib/preview.mjs +294 -390
- package/bin/lib/runtimes.mjs +12 -3
- package/bin/lib/stream.mjs +10 -8
- package/bin/lib/update.mjs +3 -2
- package/bin/lib/work.mjs +249 -5
- package/package.json +1 -1
package/bin/lib/mcp-cli.mjs
CHANGED
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
* `flowviant mcp` — connect YOUR Claude to Flowviant so you can file work from
|
|
3
3
|
* the terminal ("stick that on the board", "file a task for this TODO").
|
|
4
4
|
*
|
|
5
|
-
* This mints a `cli` credential, which is a different principal from the
|
|
6
|
-
* tokens the daemon
|
|
7
|
-
*
|
|
8
|
-
* giving THAT principal tools that write to
|
|
9
|
-
* string in a README could file work as
|
|
10
|
-
*
|
|
11
|
-
* reach create_task.
|
|
5
|
+
* This mints a `cli` credential, which is a different principal from the
|
|
6
|
+
* per-session `work` tokens the daemon mints for Workbench tabs. That
|
|
7
|
+
* separation is the point, not bookkeeping: a session's agent reads untrusted
|
|
8
|
+
* repo and issue text all day, so giving THAT principal tools that write to
|
|
9
|
+
* your workspace would mean a hostile string in a README could file work as
|
|
10
|
+
* you. The cli credential sees only the management tools and can never work or
|
|
11
|
+
* ship a card; a session token can never reach create_task.
|
|
12
12
|
*
|
|
13
13
|
* There is deliberately no invite capability on it. Invites grant access to a
|
|
14
|
-
* paid workspace and are guarded by a human browser session
|
|
15
|
-
* the
|
|
14
|
+
* paid workspace and are guarded by a human browser session — they are sent
|
|
15
|
+
* from the workspace card's gear menu in the app, and never from a CLI
|
|
16
|
+
* credential sitting on a shared machine.
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
import { FLEET_TOKEN, USER_AGENT, MCP_URL, FLEET_URL } from './config.mjs';
|
|
@@ -77,7 +78,7 @@ export async function runMcpCommand(args = []) {
|
|
|
77
78
|
console.log(` ${cmd}`);
|
|
78
79
|
console.log('');
|
|
79
80
|
console.log('Then, in any Claude session: "file a task in Flowviant for …".');
|
|
80
|
-
console.log('Tasks land as drafts — nothing runs until you open
|
|
81
|
-
console.log('
|
|
81
|
+
console.log('Tasks land as drafts on the board — nothing runs until you open');
|
|
82
|
+
console.log('a session tab in the Workbench and type in it.');
|
|
82
83
|
console.log('');
|
|
83
84
|
}
|
package/bin/lib/preflight.mjs
CHANGED
|
@@ -91,20 +91,23 @@ export async function preflight({ needGit = true } = {}) {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
// gh —
|
|
95
|
-
//
|
|
94
|
+
// gh — OPTIONAL. The daemon pushes and merges with plain `git`; nothing in
|
|
95
|
+
// the product opens a pull request any more, so gh is a convenience for the
|
|
96
|
+
// agent, not a requirement. Hence the offer no longer defaults to yes: an
|
|
97
|
+
// install nobody asked for, defaulted on, is how a preflight installs
|
|
98
|
+
// software on a machine whose operator only wanted a status line.
|
|
96
99
|
if (gh && ghAuthed()) {
|
|
97
100
|
ok('gh authenticated');
|
|
98
101
|
} else if (gh) {
|
|
99
102
|
warn('gh not signed in — run: gh auth login');
|
|
100
103
|
} else {
|
|
101
|
-
|
|
102
|
-
if (await promptYesNo('Install GitHub CLI (gh) now?',
|
|
104
|
+
info('gh not found (optional).');
|
|
105
|
+
if (await promptYesNo('Install GitHub CLI (gh) now?', false)) {
|
|
103
106
|
if (await installGh((m) => info(m))) gh = present('gh');
|
|
104
107
|
}
|
|
105
108
|
gh
|
|
106
109
|
? ok('gh installed to ~/.flowviant/bin — authenticate with: flowviant gh-auth')
|
|
107
|
-
:
|
|
110
|
+
: info(c.dim('or install it later: https://cli.github.com, then: gh auth login'));
|
|
108
111
|
}
|
|
109
112
|
|
|
110
113
|
if (needGit) (git ? ok('git installed') : warn('git NOT found — install git'));
|