@somacheck/vibecheck 0.6.6 → 0.6.8

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 CHANGED
@@ -9,7 +9,7 @@ Your agent has your context. It does not have your gut. This is the bridge.
9
9
 
10
10
  Fair. Here is what you need, without executing anything.
11
11
 
12
- **What the `link` command does.** `npx -y @somacheck/vibecheck@0.6.6 link <CODE> --client <CLIENT>`
12
+ **What the `link` command does.** `npx -y @somacheck/vibecheck@0.6.7 link <CODE> --client <CLIENT>`
13
13
  exchanges a short-lived pairing code, generated inside the SomaCheck iOS app, for
14
14
  a bearer token. It writes that token to `~/.sensie/config.json` with mode `0600`,
15
15
  offers to configure supported agent clients found on the computer, and checks the
@@ -59,18 +59,34 @@ telemetry, no analytics, no other endpoints.
59
59
  **Install-time behaviour.** No `postinstall`, `preinstall`, or any other npm
60
60
  lifecycle script. Two runtime dependencies: `@modelcontextprotocol/sdk` and `zod`.
61
61
 
62
- You can verify all of the above by reading `dist/` in the installed package, or
63
- the source at the repository below, without running anything.
62
+ You can verify all of the above by reading `dist/` in the installed package
63
+ without running anything.
64
64
 
65
- ## Setup, for humans
65
+ ## Choose local or hosted
66
66
 
67
- 1. Install SomaCheck on iPhone and open **Settings Agent → Connect your agent**.
68
- 2. On the computer that will run your agent, open **Terminal** and run the command
67
+ | Path | Use it with | What you add |
68
+ |---|---|---|
69
+ | Local npm package | Claude Code or Codex | A pinned `npx` command on your computer |
70
+ | Hosted MCP | Claude.ai | `https://mcp.somacheck.com/functions/v1/mcp` as a custom connector |
71
+
72
+ Both paths send a consented statement and return its Aligned or Unaligned signal
73
+ with confidence. Raw motion data and conversation history never cross this
74
+ connection. Full setup and privacy details are at
75
+ <https://somacheck.com/docs/hosted-mcp>.
76
+
77
+ ## Local setup for Claude Code or Codex
78
+
79
+ 1. Install SomaCheck on iPhone from the
80
+ [current TestFlight invitation](https://testflight.apple.com/join/C4mAH3zz).
81
+ 2. Open **Settings → Agent → Connect your agent**.
82
+ 3. On the computer that will run your agent, open **Terminal** and run the command
69
83
  shown on that screen. If you paste it into a local agent session instead of a
70
84
  terminal, add exactly one client flag, for example `--client claude`.
71
- 3. Choose the client you want to configure when the command asks. It then checks
85
+ 4. Choose the client you want to configure when the command asks. It then checks
72
86
  the link, backend protocol, health probes, and client registration before
73
87
  reporting that setup is ready.
88
+ 5. Restart the client, then ask: **Give me a SomaCheck vibecheck based on what
89
+ you know about me.**
74
90
 
75
91
  For provisioning without the prompt in a terminal, append `--client codex`,
76
92
  `--client claude`, `--client all`, or `--client none` to the `link <CODE>`
@@ -81,9 +97,9 @@ before the pairing code is redeemed.
81
97
  To configure or repair a client later:
82
98
 
83
99
  ```text
84
- npx -y @somacheck/vibecheck@0.6.6 setup codex
85
- npx -y @somacheck/vibecheck@0.6.6 setup claude
86
- npx -y @somacheck/vibecheck@0.6.6 doctor
100
+ npx -y @somacheck/vibecheck@0.6.7 setup codex
101
+ npx -y @somacheck/vibecheck@0.6.7 setup claude
102
+ npx -y @somacheck/vibecheck@0.6.7 doctor
87
103
  ```
88
104
 
89
105
  Manual registration remains available:
@@ -93,13 +109,13 @@ Manual registration remains available:
93
109
  "mcpServers": {
94
110
  "vibecheck": {
95
111
  "command": "npx",
96
- "args": ["-y", "@somacheck/vibecheck@0.6.6", "serve", "--client", "codex"]
112
+ "args": ["-y", "@somacheck/vibecheck@0.6.7", "serve", "--client", "codex"]
97
113
  }
98
114
  }
99
115
  }
100
116
  ```
101
117
 
102
- For Claude Code: `claude mcp add --scope user vibecheck -- npx -y @somacheck/vibecheck@0.6.6 serve --client claude`
118
+ For Claude Code: `claude mcp add --scope user vibecheck -- npx -y @somacheck/vibecheck@0.6.7 serve --client claude`
103
119
 
104
120
  The link step writes only the bearer token in `~/.sensie/config.json`. The client
105
121
  setup step asks Codex or Claude to add the pinned MCP command to that client's own
@@ -110,6 +126,24 @@ If `doctor` reports another MCP server named `somacheck`, that is the legacy
110
126
  hosted connector and is separate from this local package. The setup command
111
127
  will explain it and leave it alone. The canonical local MCP key is `vibecheck`.
112
128
 
129
+ ## Hosted setup for Claude.ai
130
+
131
+ Claude.ai uses the hosted MCP and does not run `npx` on your computer.
132
+
133
+ 1. Install SomaCheck from the
134
+ [current TestFlight invitation](https://testflight.apple.com/join/C4mAH3zz)
135
+ and open the app once.
136
+ 2. In Claude.ai, open **Customize → Connectors**.
137
+ 3. Select **+**, then **Add custom connector**.
138
+ 4. Enter `https://mcp.somacheck.com/functions/v1/mcp` and select **Add**.
139
+ 5. Complete OAuth, enable the connector in a conversation, and ask for a
140
+ SomaCheck vibecheck.
141
+
142
+ On Team and Enterprise plans, an Owner must add the connector in organization
143
+ settings before members can connect it. To revoke the hosted connection, remove
144
+ it from Claude.ai under **Customize → Connectors**. To revoke any agent in
145
+ SomaCheck, open **Settings → Agent**, select the connection, and revoke it.
146
+
113
147
  ## Teach your agent when to use SomaCheck
114
148
 
115
149
  [`SKILL.md`](SKILL.md) teaches compatible agents one simple affordance:
@@ -120,24 +154,24 @@ first-person statement from available context, treat the returned gesture and
120
154
  optional feedback as context rather than authorization, and never include
121
155
  secrets or assess anyone else.
122
156
 
123
- For Claude Code, add this repository as a marketplace and install the skill in
124
- one terminal command:
157
+ For Claude Code, add the public plugin repository as a marketplace and install
158
+ the skill in one terminal command:
125
159
 
126
160
  ```text
127
- claude plugin marketplace add sensie-app/Somacheck && claude plugin install vibecheck@somacheck
161
+ claude plugin marketplace add Sensie-agents/vibecheck && claude plugin install vibecheck@somacheck
128
162
  ```
129
163
 
130
164
  Inside Claude Code, the equivalent commands are:
131
165
 
132
166
  ```text
133
- /plugin marketplace add sensie-app/Somacheck
167
+ /plugin marketplace add Sensie-agents/vibecheck
134
168
  /plugin install vibecheck@somacheck
135
169
  ```
136
170
 
137
171
  For agents supported by the Skills CLI:
138
172
 
139
173
  ```text
140
- npx skills add sensie-app/Somacheck --skill vibecheck
174
+ npx skills add Sensie-agents/vibecheck --skill vibecheck
141
175
  ```
142
176
 
143
177
  The skill expects the `@somacheck/vibecheck` MCP server to already be linked as
@@ -214,4 +248,8 @@ across local MCP clients.
214
248
 
215
249
  ## Support
216
250
 
217
- Issues: see the repository. Contact: agents@joinsensie.com
251
+ Public plugin: <https://github.com/Sensie-agents/vibecheck>
252
+
253
+ Documentation: <https://somacheck.com/docs/hosted-mcp>
254
+
255
+ Contact: agents@joinsensie.com
@@ -10,7 +10,7 @@
10
10
  "name": "vibecheck",
11
11
  "source": "./plugins/vibecheck",
12
12
  "description": "Let Claude offer a vibecheck and continue when the phone result arrives.",
13
- "version": "0.6.6",
13
+ "version": "0.6.7",
14
14
  "author": {
15
15
  "name": "Sensie",
16
16
  "email": "agents@joinsensie.com"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vibecheck",
3
3
  "description": "Let Claude offer a SomaCheck vibecheck and continue when the phone result arrives.",
4
- "version": "0.6.6",
4
+ "version": "0.6.7",
5
5
  "author": {
6
6
  "name": "Sensie",
7
7
  "email": "agents@joinsensie.com"
@@ -7,7 +7,7 @@
7
7
  "hooks": [
8
8
  {
9
9
  "type": "command",
10
- "command": "npx -y @somacheck/vibecheck@0.6.6 claude-hook await-result",
10
+ "command": "npx -y @somacheck/vibecheck@0.6.7 claude-hook await-result",
11
11
  "asyncRewake": true,
12
12
  "timeout": 900
13
13
  }
package/dist/api.js CHANGED
@@ -348,7 +348,7 @@ export class SupabaseAgentApi {
348
348
  const row = await this.#rpc("agent_link_redeem", { code });
349
349
  return requiredString(row, "token");
350
350
  }
351
- async requestVibecheck(token, identity, statement, idempotencyKey, signal) {
351
+ async requestVibecheck(token, identity, statement, idempotencyKey, consentBasis, signal) {
352
352
  if (identity.kind !== "local")
353
353
  throw new SomaCheckLiveAskClientError();
354
354
  const clientKey = identity.client_key;
@@ -357,6 +357,7 @@ export class SupabaseAgentApi {
357
357
  statement,
358
358
  idempotency_key: idempotencyKey,
359
359
  client_key: clientKey,
360
+ consent_basis: consentBasis,
360
361
  }, signal));
361
362
  const lifecycle = created.status === "answered"
362
363
  ? await this.liveVibecheckResult(token, identity, created.request_id, signal)
@@ -145,7 +145,8 @@ function isManagedSomaCheckRegistration(client, stdout) {
145
145
  || packageArg === "@somacheck/vibecheck@0.6.2"
146
146
  || packageArg === "@somacheck/vibecheck@0.6.3"
147
147
  || packageArg === "@somacheck/vibecheck@0.6.4"
148
- || packageArg === "@somacheck/vibecheck@0.6.5")
148
+ || packageArg === "@somacheck/vibecheck@0.6.5"
149
+ || packageArg === "@somacheck/vibecheck@0.6.6")
149
150
  && args.length === 5
150
151
  && args[0] === "-y"
151
152
  && args[1] === packageArg
package/dist/constants.js CHANGED
@@ -2,7 +2,7 @@
2
2
  export const SUPABASE_URL = "https://pbldcmniommltbdwuykk.supabase.co";
3
3
  export const SUPABASE_PUBLISHABLE_KEY = "sb_publishable_af-lUNI2FqEcb-oGy-4uxQ_cnm6kY85";
4
4
  export const PACKAGE_NAME = "@somacheck/vibecheck";
5
- export const PACKAGE_VERSION = "0.6.6";
5
+ export const PACKAGE_VERSION = "0.6.7";
6
6
  export const PACKAGE_SPEC = `${PACKAGE_NAME}@${PACKAGE_VERSION}`;
7
7
  export const MCP_SERVER_NAME = "vibecheck";
8
8
  export const LEGACY_HOSTED_MCP_SERVER_NAME = "somacheck";
package/dist/readiness.js CHANGED
@@ -10,7 +10,8 @@ export async function checkReadiness(dependencies) {
10
10
  }
11
11
  catch {
12
12
  dependencies.output("✗ This computer is not linked to SomaCheck.");
13
- dependencies.output(" Open SomaCheck Settings Agent and run the command shown there.");
13
+ dependencies.output(" Install SomaCheck from the current TestFlight invitation: https://testflight.apple.com/join/C4mAH3zz");
14
+ dependencies.output(" Then open SomaCheck → Settings → Agent → Connect your agent and run the command shown there.");
14
15
  return {
15
16
  linked: false,
16
17
  backendReachable: false,
package/dist/server.js CHANGED
@@ -319,7 +319,7 @@ export function createVibecheckServer(dependencies) {
319
319
  idempotentHint: true,
320
320
  openWorldHint: false,
321
321
  },
322
- }, async ({ statement, idempotency_key }, extra) => {
322
+ }, async ({ statement, idempotency_key, consent_basis }, extra) => {
323
323
  const now = dependencies.liveAskWait?.now ?? (() => performance.now());
324
324
  const budgetMs = dependencies.liveAskWait?.budgetMs ?? LIVE_ASK_WAIT_BUDGET_MS;
325
325
  const deadline = now() + budgetMs;
@@ -338,7 +338,7 @@ export function createVibecheckServer(dependencies) {
338
338
  return liveAskFailure(new SomaCheckLiveAskClientError());
339
339
  }
340
340
  const token = await dependencies.loadToken();
341
- const created = await dependencies.api.requestVibecheck(token, identity, statement.trim(), idempotency_key, callAbort.signal);
341
+ const created = await dependencies.api.requestVibecheck(token, identity, statement.trim(), idempotency_key, consent_basis, callAbort.signal);
342
342
  const result = await waitForLiveVibecheck(created, token, identity, dependencies, callAbort.signal, deadline, (attempt) => {
343
343
  const progressToken = extra._meta?.progressToken;
344
344
  if (progressToken === undefined)
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@somacheck/vibecheck",
3
- "version": "0.6.6",
3
+ "version": "0.6.8",
4
+ "mcpName": "io.github.Sensie-agents/vibecheck",
4
5
  "description": "Send a consented vibecheck to SomaCheck and use the result as a signal.",
5
6
  "repository": {
6
7
  "type": "git",