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.
@@ -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 worker
6
- * tokens the daemon rotates for builds. That separation is the point, not
7
- * bookkeeping: a worker reads untrusted repo, PR and issue text all day, so
8
- * giving THAT principal tools that write to your workspace would mean a hostile
9
- * string in a README could file work as you. The cli credential sees only the
10
- * management tools and can never claim or complete work; the worker can never
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; you ask Flowvy in
15
- * the app for those, and approve the card.
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 one in the');
81
- console.log('app and @mention an agent.');
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
  }
@@ -91,20 +91,23 @@ export async function preflight({ needGit = true } = {}) {
91
91
  }
92
92
  }
93
93
 
94
- // gh — needed to open PRs. Offer to fetch the isolated binary (yes-default:
95
- // low-risk, no login carried by the install itself).
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
- warn('gh NOT found — needed to open PRs.');
102
- if (await promptYesNo('Install GitHub CLI (gh) now?', true)) {
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
- : warn('install gh manually: https://cli.github.com, then run: gh auth login');
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'));