@trillioncore/cli 0.22.1 → 0.23.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.
Files changed (3) hide show
  1. package/README.md +57 -22
  2. package/dist/index.js +17882 -9378
  3. package/package.json +3 -2
package/README.md CHANGED
@@ -18,7 +18,7 @@ tc login
18
18
  ## Quickstart
19
19
 
20
20
  ```sh
21
- tc login # browser OAuth — opens your default browser, authenticates, and stores sessions
21
+ tc login # confirmed device authorization — browser may be on another machine
22
22
  tc whoami # prints the authenticated user, target source, and organization
23
23
  tc agent start --organization TrillionCore --env production --format json # agent harness preflight + briefing
24
24
  tc handover --to Jake --since today # draft/edit/publish a private Git-based handover to Daily Cortex
@@ -34,36 +34,69 @@ Memory writing contract for agent closeout: write durable interpretation, not ra
34
34
 
35
35
  Sessions are stored in `~/.trillioncore/config.json` and are scoped by environment, user, and organization. Use `tc logout` to clear them.
36
36
 
37
- ## Local agent / ChatGPT usage
37
+ ## Latest Fathom action items
38
38
 
39
- If a local ChatGPT, coding agent, or sandbox runs `tc` on your behalf, run it in agent-safe mode:
39
+ Ask naturally through the existing chat command:
40
40
 
41
41
  ```sh
42
- TC_AGENT_SAFE=1 tc brief
43
- TC_AGENT_SAFE=1 tc ask "What changed since yesterday?"
44
- tc --agent-safe whoami
42
+ tc ask "What were the action items from the last call?"
43
+ tc ask --json "What were the action items from the last Fathom transcript?"
45
44
  ```
46
45
 
47
- Agent-safe mode is a local blast-radius guardrail. It only allows read-heavy commands:
46
+ When the deployment feature flag is enabled, the organization is authorized,
47
+ and the request matches a latest-Fathom action-item prompt (currently
48
+ default-off/canary-only), TrillionCore selects the latest completed Fathom
49
+ meeting by meeting start time and returns only action items backed by transcript
50
+ evidence. Unrelated prompts do not activate this workflow. Interactive non-JSON
51
+ terminal queries offer one numbered action-item selection after the read-only
52
+ answer; press Enter to skip it. Non-code or ambiguous items create nothing. An
53
+ accepted selection creates one task bead and starts the configured bead loop;
54
+ follow execution with `tc loop status`. `--json` output and piped input or output
55
+ remain read-only.
48
56
 
49
- - `tc whoami`
50
- - `tc status`
51
- - `tc brief`
52
- - `tc ask ...`
53
- - `tc search ...`
54
- - `tc cat ...`
55
- - `tc ls ...`
56
- - `tc tree ...`
57
+ ## MCP handovers
57
58
 
58
- All other commands are blocked before they run. Ask the human user to run blocked commands manually.
59
+ For hosted agents that support MCP/custom connectors, prefer the Trillioncore MCP connector over local CLI setup:
59
60
 
60
- Agent-safe mode does not grant access by itself. The CLI still requires normal Trillioncore authentication, and the API enforces which organization the authenticated principal can access.
61
+ ```text
62
+ https://api.trillioncore.com/mcp
63
+ ```
64
+
65
+ Connect that URL, sign in through Trillioncore, review the requested read/write permissions in your browser, and click **Allow access**. The connector can then read context and create approved handovers or feedback without a static token or local CLI setup. Manage or fully revoke the connection under **Settings → Connected Apps**.
66
+
67
+ The CLI grant commands remain available for bootstrap and troubleshooting only. Approve a client ID only when you intentionally registered and trust that client:
68
+
69
+ ```sh
70
+ tc mcp grants
71
+ tc mcp approve-write <client-id>
72
+ tc mcp revoke-write <client-id>
73
+ ```
74
+
75
+ `tc mcp revoke-write` removes only write access while preserving the read connection. **Settings → Connected Apps → Revoke access** revokes the entire connection.
76
+
77
+ If an MCP write tool returns `mcp.write_approval_required`, reconnect the MCP client to repeat browser authorization or use the CLI fallback from a trusted authenticated machine.
78
+
79
+ Example handover prompt:
80
+
81
+ ```text
82
+ Use Trillioncore MCP to create an end-of-day handover for Jake.
83
+ Ask me for missing notes first.
84
+ Include current state, blockers, and what Jake should do tomorrow.
85
+ Use create_handover only after I confirm the draft.
86
+ ```
87
+
88
+ Pickup prompt:
89
+
90
+ ```text
91
+ Use Trillioncore MCP to list handovers addressed to me.
92
+ Summarize the newest handover and call get_memory if you need full details.
93
+ ```
61
94
 
62
95
  ## Commands
63
96
 
64
97
  | Command | What it does |
65
98
  | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
66
- | `tc login [--organization X]` | Authenticate via browser. Optionally pre-select an org by name. |
99
+ | `tc login [--organization X]` | Authenticate via an explicitly confirmed browser device flow. Optionally pre-select an org by name. |
67
100
  | `tc logout` | Clear stored authentication. |
68
101
  | `tc switch [--organization X]` | Change the default organization used when no per-command target exists. |
69
102
  | `tc whoami [-j]` | Show the authenticated user, target source, and organization diagnostics. |
@@ -123,7 +156,7 @@ The CLI defaults to the production Trillioncore stack. Two environment variables
123
156
  | `TC_API_URL` | `https://api.trillioncore.com` | Trillioncore API base URL. |
124
157
  | `TC_APP_URL` | `https://app.trillioncore.com` | Web app URL used for the browser OAuth flow. |
125
158
 
126
- For self-hosted, staging, or local development, set both before running `tc` — e.g.:
159
+ For self-hosted or staging deployments, both URLs must use HTTPS. Plain HTTP browser authentication is rejected before any authentication network request. The only exception is explicit loopback development on `localhost`, `127.0.0.1`, or `[::1]` — e.g.:
127
160
 
128
161
  ```sh
129
162
  TC_API_URL=http://localhost:3001 TC_APP_URL=http://localhost:3000 tc login
@@ -143,10 +176,12 @@ The CLI tried to refresh your token and couldn't. Re-run `tc login`.
143
176
  Likely a stale session in `~/.trillioncore/config.json`. Run `tc logout && tc login`.
144
177
 
145
178
  **Browser doesn't open during `tc login`**
146
- The CLI prints a fallback URL to the terminal — copy it into your browser manually. This usually means there's no default browser registered (common in headless SSH sessions).
179
+ The CLI registers a five-minute device request, then prints a URL and a short verification code. Open the URL in any browser, including a browser on another machine when the CLI runs over SSH or on a headless VPS. In the browser, enter the code shown in the terminal, verify the displayed code matches, choose an organization, and click **Authorize this CLI**. Single-organization and `--organization` flows still require this explicit confirmation. `--organization` is only a preselection hint: zero or duplicate case-insensitive matches fail closed and require a manual organization choice. Keep the terminal running until it confirms authentication; transient polling network errors, 429 responses, and server errors retry within the original five-minute deadline, while Ctrl-C remains immediately cancellable.
180
+
181
+ Treat an unexpected login URL as a phishing attempt. The URL carries a one-way request identifier rather than a token, but it can identify an attacker's waiting CLI. Do not authorize a link you did not initiate, do not share the URL or verification code, and never accept a code supplied by another person. The high-entropy polling verifier and delivered credentials stay out of URLs and logs and are sent only in HTTPS POST bodies (except explicit loopback HTTP during local development). The CLI acknowledges consumption only after its mode-restricted temporary configuration is flushed, atomically renamed, and the containing directory is flushed on POSIX, allowing recovery from a lost polling response or failed local durability step without manual token copying. Never share CLI configuration files or print their contents.
147
182
 
148
- **Want to see what's stored?**
149
- `cat ~/.trillioncore/config.json` — the file holds scoped session records, refresh/access tokens, expirations, and the default organization. Tokens are sensitive; treat the file accordingly.
183
+ **Need to inspect configuration?**
184
+ Use `tc config list` and `tc status`; do not print `~/.trillioncore/config.json`, because it contains sensitive session credentials.
150
185
 
151
186
  ## Repository
152
187