forkit-connect 0.1.30 → 0.1.31

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/QUICKSTART.md CHANGED
@@ -20,28 +20,24 @@ export PATH="$HOME/.local/bin:$PATH"
20
20
  ## Recommended First Run
21
21
 
22
22
  ```bash
23
- forkit-connect init
24
23
  forkit-connect login
25
- forkit-connect workspace select
26
- forkit-connect runtime register
24
+ forkit-connect workspace status
27
25
  forkit-connect scan
28
26
  forkit-connect inbox
29
- forkit-connect changes
27
+ forkit-connect runtime status
30
28
  forkit-connect status
31
- forkit-connect start
32
29
  ```
33
30
 
34
31
  ## What Each Step Does
35
32
 
36
- - `init` creates local Connect identity and privacy posture metadata.
37
33
  - `login` completes the device-login flow against Forkit.dev.
38
- - `workspace select` binds the governed workspace/project lane when the account supports it.
39
- - `runtime register` creates or reuses a governed runtime for the current repo/worktree and stores its runtime key locally.
34
+ - `workspace status` shows whether this account already has governed workspace/project scope.
40
35
  - `scan` detects supported local runtimes and AI models.
41
36
  - `inbox` shows what is ready to connect, what needs confirmation, and what is already connected.
42
- - `changes` shows the local evidence trail, runtime signal history, and anything still waiting to sync.
37
+ - `runtime status` shows runtime connection and signal posture.
43
38
  - `status` summarizes readiness, daemon state, discovery counts, and next recommended action.
44
- - `start` launches the daemon loop for continued runtime observation, check-ins, and sync preparation.
39
+
40
+ Advanced users can run `forkit-connect init` when they explicitly want to prepare or reset local identity and privacy posture before login.
45
41
 
46
42
  ## Useful Next Commands
47
43
 
package/README.md CHANGED
@@ -31,7 +31,9 @@ Published npm install:
31
31
  ```bash
32
32
  npx forkit-connect --help
33
33
  npm install -g forkit-connect
34
- forkit-connect status
34
+ forkit-connect login
35
+ forkit-connect scan
36
+ forkit-connect inbox
35
37
  ```
36
38
 
37
39
  From `integrations/connect`:
@@ -57,8 +59,8 @@ If `~/.local/bin` is already on your `PATH`, the command is immediately accessib
57
59
 
58
60
  ## Public Commands
59
61
 
60
- - `forkit-connect init` — initialize local Connect identity and privacy posture
61
62
  - `forkit-connect login` — link this device to Forkit.dev with the device flow
63
+ - `forkit-connect init` — optional advanced local identity and privacy posture setup
62
64
  - `forkit-connect scan` — discover local runtimes and AI models
63
65
  - `forkit-connect inbox` — review the Smart Registration Inbox
64
66
  - `forkit-connect connect <modelNameOrDiscoveryHash>` — prepare or sync a passport draft for a detected model
@@ -125,7 +127,7 @@ npm install /absolute/path/to/forkit-connect-0.1.24.tgz
125
127
  npx forkit-connect --help
126
128
  npx forkit-connect status
127
129
  npx forkit-connect inbox
128
- npx forkit-connect init
130
+ npx forkit-connect login
129
131
  ```
130
132
 
131
133
  For a user-space Ubuntu install that creates a stable command path, prefer `pnpm run install:ubuntu`.
package/dist/cli.js CHANGED
@@ -173,6 +173,103 @@ function advancedUsage() {
173
173
  console.log(cliKeyLine('--api-key', 'Runtime signal API key used by runtime observe'));
174
174
  console.log(cliKeyLine('--draft-only', 'Allow private continuation when governed publish is blocked'));
175
175
  }
176
+ function commandUsage(command) {
177
+ switch (command) {
178
+ case 'init':
179
+ printCliHeader('Init', 'Prepare local Connect identity and privacy posture without signing in.');
180
+ console.log(cliKeyLine('usage', 'forkit-connect init'));
181
+ console.log(cliKeyLine('when', 'Optional local setup; most users should start with forkit-connect login'));
182
+ console.log(cliKeyLine('privacy', 'Creates local metadata state only; no model files, prompts, outputs, or secrets are uploaded'));
183
+ console.log(cliKeyLine('next', 'forkit-connect login'));
184
+ return true;
185
+ case 'login':
186
+ printCliHeader('Login', 'Pair this machine with Forkit.dev through browser device approval.');
187
+ console.log(cliKeyLine('usage', 'forkit-connect login [--no-browser]'));
188
+ console.log(cliKeyLine('opens', `${DEFAULT_BASE_URL}/connect/verify`));
189
+ console.log(cliKeyLine('stores', 'Session reference in secure local storage where available'));
190
+ console.log(cliKeyLine('privacy', 'No model files, prompts, outputs, or secrets are uploaded'));
191
+ console.log(cliKeyLine('--no-browser', 'Print the approval URL instead of opening a browser'));
192
+ return true;
193
+ case 'logout':
194
+ printCliHeader('Logout', 'Remove the stored Forkit.dev session from this device.');
195
+ console.log(cliKeyLine('usage', 'forkit-connect logout'));
196
+ console.log(cliKeyLine('keeps', 'Local discovery state and reviewed metadata remain on this device'));
197
+ return true;
198
+ case 'changes':
199
+ printCliHeader('Changes', 'Review local evidence, runtime signal history, and queued metadata.');
200
+ console.log(cliKeyLine('usage', 'forkit-connect changes [--json] [--limit <count>]'));
201
+ console.log(cliKeyLine('safe', 'Read-only local review; does not publish or sync by itself'));
202
+ return true;
203
+ case 'start':
204
+ printCliHeader('Start', 'Open the guided launcher or run the local daemon loop.');
205
+ console.log(cliKeyLine('usage', 'forkit-connect start [--plain] [--foreground]'));
206
+ console.log(cliKeyLine('plain', 'Use --plain for non-interactive terminals'));
207
+ console.log(cliKeyLine('foreground', 'Use --foreground to run sync loop in this terminal'));
208
+ return true;
209
+ case 'stop':
210
+ printCliHeader('Stop', 'Stop the local Connect daemon without deleting local state.');
211
+ console.log(cliKeyLine('usage', 'forkit-connect stop'));
212
+ console.log(cliKeyLine('safe', 'Does not revoke account access or remove local metadata'));
213
+ return true;
214
+ case 'sync':
215
+ printCliHeader('Sync', 'Flush approved metadata-only queue items to Forkit.dev.');
216
+ console.log(cliKeyLine('usage', 'forkit-connect sync [--json]'));
217
+ console.log(cliKeyLine('requires', 'Signed-in account and approved local queue items'));
218
+ return true;
219
+ case 'scan':
220
+ case 'discover':
221
+ printCliHeader('Scan', 'Discover local models, agents, and runtimes with metadata-only checks.');
222
+ console.log(cliKeyLine('usage', 'forkit-connect scan [--json] [--dry-run]'));
223
+ console.log(cliKeyLine('checks', 'Ollama, LM Studio, OpenAI-compatible local servers, and local model folders'));
224
+ console.log(cliKeyLine('next', 'forkit-connect inbox'));
225
+ return true;
226
+ case 'inbox':
227
+ printCliHeader('Inbox', 'Review detected records before creating or connecting Passports.');
228
+ console.log(cliKeyLine('usage', 'forkit-connect inbox [--json]'));
229
+ console.log(cliKeyLine('safe', 'Review-only by default; create/publish actions are explicit'));
230
+ return true;
231
+ case 'status':
232
+ printCliHeader('Status', 'Show account, device, queue, runtime, and scope posture.');
233
+ console.log(cliKeyLine('usage', 'forkit-connect status [--json]'));
234
+ console.log(cliKeyLine('next', 'If session is expired, run forkit-connect login'));
235
+ return true;
236
+ case 'workspace':
237
+ printCliHeader('Workspace', 'Manage governed workspace and project scope for Signal and Protocol accounts.');
238
+ console.log(cliKeyLine('usage', 'forkit-connect workspace status [--json]'));
239
+ console.log(cliKeyLine('usage', 'forkit-connect workspace select --workspace <id> --project <id>'));
240
+ console.log(cliKeyLine('note', 'Origin remains personal/public; governed scope starts with Signal'));
241
+ return true;
242
+ case 'runtime':
243
+ printCliHeader('Runtime', 'Review and connect local runtime posture without uploading runtime data.');
244
+ console.log(cliKeyLine('usage', 'forkit-connect runtime status [--json]'));
245
+ console.log(cliKeyLine('usage', 'forkit-connect runtime review [--json]'));
246
+ console.log(cliKeyLine('privacy', 'Metadata-only status, heartbeat, and lifecycle evidence'));
247
+ return true;
248
+ case 'doctor':
249
+ printCliHeader('Doctor', 'Diagnose local setup, secure storage, runtime availability, and session truth.');
250
+ console.log(cliKeyLine('usage', 'forkit-connect doctor [--json]'));
251
+ console.log(cliKeyLine('healthy', 'PASS/WARN/FAIL checks with clear next action'));
252
+ return true;
253
+ case 'update-check':
254
+ printCliHeader('Update Check', 'Compare npm CLI and desktop installer release channels.');
255
+ console.log(cliKeyLine('usage', 'forkit-connect update-check'));
256
+ console.log(cliKeyLine('cli', 'Uses the public npm forkit-connect latest version'));
257
+ console.log(cliKeyLine('desktop', 'Uses Forkit Connect desktop installer metadata separately'));
258
+ return true;
259
+ case 'connect':
260
+ printCliHeader('Connect', 'Prepare or sync a detected model into a passport-ready flow.');
261
+ console.log(cliKeyLine('usage', 'forkit-connect connect <modelNameOrDiscoveryHash>'));
262
+ console.log(cliKeyLine('review', 'Use forkit-connect inbox first to choose the right target'));
263
+ return true;
264
+ case 'register':
265
+ printCliHeader('Register', 'Register ready local models through the reviewed Connect flow.');
266
+ console.log(cliKeyLine('usage', 'forkit-connect register <modelNameOrDiscoveryHash>'));
267
+ console.log(cliKeyLine('safe', 'Governed accounts require workspace/project scope before registration'));
268
+ return true;
269
+ default:
270
+ return false;
271
+ }
272
+ }
176
273
  function showUsage() {
177
274
  if (hasFlag('--advanced-help')) {
178
275
  advancedUsage();
@@ -2613,6 +2710,25 @@ function printTrayStatus(status, menu) {
2613
2710
  async function run() {
2614
2711
  const args = process.argv.slice(2);
2615
2712
  const command = args[0];
2713
+ if (!command) {
2714
+ showUsage();
2715
+ return;
2716
+ }
2717
+ if (command === 'version' || command === '--version' || command === '-v') {
2718
+ console.log((0, update_1.getCurrentConnectVersion)());
2719
+ return;
2720
+ }
2721
+ if (isHelpCommand(command)) {
2722
+ showUsage();
2723
+ return;
2724
+ }
2725
+ if (hasFlag('--help') || hasFlag('-h')) {
2726
+ if (!commandUsage(command)) {
2727
+ showUsage();
2728
+ process.exitCode = 2;
2729
+ }
2730
+ return;
2731
+ }
2616
2732
  const service = new service_1.ConnectV1Service();
2617
2733
  const sessionRef = getArg('--session-ref');
2618
2734
  const workspaceId = getArg('--workspace');
@@ -2627,18 +2743,6 @@ async function run() {
2627
2743
  if (sessionRef !== null) {
2628
2744
  service.setSessionRef(sessionRef);
2629
2745
  }
2630
- if (!command) {
2631
- showUsage();
2632
- return;
2633
- }
2634
- if (command === 'version' || command === '--version' || command === '-v') {
2635
- console.log((0, update_1.getCurrentConnectVersion)());
2636
- return;
2637
- }
2638
- if (isHelpCommand(command)) {
2639
- showUsage();
2640
- return;
2641
- }
2642
2746
  const runPublicConnectInit = () => {
2643
2747
  printConnectInit(service.initializeConnectIdentity());
2644
2748
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forkit-connect",
3
- "version": "0.1.30",
3
+ "version": "0.1.31",
4
4
  "description": "Forkit Connect Local Engine - The Global AI Governance Fabric",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",