@somacheck/vibecheck 0.6.2 → 0.6.3
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 +9 -9
- package/dist/client-setup.js +2 -1
- package/dist/constants.js +1 -1
- package/dist/server.js +9 -3
- package/package.json +1 -1
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.
|
|
12
|
+
**What the `link` command does.** `npx -y @somacheck/vibecheck@0.6.3 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
|
|
@@ -78,9 +78,9 @@ before the pairing code is redeemed.
|
|
|
78
78
|
To configure or repair a client later:
|
|
79
79
|
|
|
80
80
|
```text
|
|
81
|
-
npx -y @somacheck/vibecheck@0.6.
|
|
82
|
-
npx -y @somacheck/vibecheck@0.6.
|
|
83
|
-
npx -y @somacheck/vibecheck@0.6.
|
|
81
|
+
npx -y @somacheck/vibecheck@0.6.3 setup codex
|
|
82
|
+
npx -y @somacheck/vibecheck@0.6.3 setup claude
|
|
83
|
+
npx -y @somacheck/vibecheck@0.6.3 doctor
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
Manual registration remains available:
|
|
@@ -90,13 +90,13 @@ Manual registration remains available:
|
|
|
90
90
|
"mcpServers": {
|
|
91
91
|
"vibecheck": {
|
|
92
92
|
"command": "npx",
|
|
93
|
-
"args": ["-y", "@somacheck/vibecheck@0.6.
|
|
93
|
+
"args": ["-y", "@somacheck/vibecheck@0.6.3", "serve", "--client", "codex"]
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
For Claude Code: `claude mcp add --scope user vibecheck -- npx -y @somacheck/vibecheck@0.6.
|
|
99
|
+
For Claude Code: `claude mcp add --scope user vibecheck -- npx -y @somacheck/vibecheck@0.6.3 serve --client claude`
|
|
100
100
|
|
|
101
101
|
The link step writes only the bearer token in `~/.sensie/config.json`. The client
|
|
102
102
|
setup step asks Codex or Claude to add the pinned MCP command to that client's own
|
|
@@ -160,11 +160,11 @@ something to test, never as a claim about them. An `unaligned` result is another
|
|
|
160
160
|
signal to consider; the person decides whether it matches what they notice.
|
|
161
161
|
|
|
162
162
|
Setup and linking are not permission for future asks. If the person's current
|
|
163
|
-
message explicitly asks for a SomaCheck vibecheck, that is consent for one ask.
|
|
163
|
+
message explicitly asks for a SomaCheck vibecheck or check-in, that is consent for one ask.
|
|
164
164
|
Use their exact statement when supplied. If they delegated the choice, select
|
|
165
165
|
the most useful first-person statement from the current conversation, goal,
|
|
166
|
-
decision, or tension and send it immediately—do not ask them
|
|
167
|
-
second confirmation. Remembered context may identify a general tension, but an
|
|
166
|
+
decision, or tension and send it immediately—do not list candidates, ask them
|
|
167
|
+
for wording, or seek a second confirmation. Remembered context may identify a general tension, but an
|
|
168
168
|
agent-selected statement must not name a project, build, branch, wave, ticket,
|
|
169
169
|
task status, or supposedly open/closed work. Abstract it into a present-tense
|
|
170
170
|
first-person experience or choice, such as “I want to keep consolidating what is
|
package/dist/client-setup.js
CHANGED
|
@@ -141,7 +141,8 @@ function isManagedSomaCheckRegistration(client, stdout) {
|
|
|
141
141
|
// client remain user-owned.
|
|
142
142
|
const previousExactClient = (/^@somacheck\/vibecheck@0\.5\.\d+$/.test(packageArg)
|
|
143
143
|
|| packageArg === "@somacheck/vibecheck@0.6.0"
|
|
144
|
-
|| packageArg === "@somacheck/vibecheck@0.6.1"
|
|
144
|
+
|| packageArg === "@somacheck/vibecheck@0.6.1"
|
|
145
|
+
|| packageArg === "@somacheck/vibecheck@0.6.2")
|
|
145
146
|
&& args.length === 5
|
|
146
147
|
&& args[0] === "-y"
|
|
147
148
|
&& 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.
|
|
5
|
+
export const PACKAGE_VERSION = "0.6.3";
|
|
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/server.js
CHANGED
|
@@ -112,7 +112,7 @@ const contextShareSchema = {
|
|
|
112
112
|
};
|
|
113
113
|
const SERVER_INSTRUCTIONS = [
|
|
114
114
|
"SomaCheck lets you offer the person a statement to test through a quick phone check-in.",
|
|
115
|
-
"MANDATORY COMMAND RULE: when the current user message says 'Give me a SomaCheck vibecheck', 'Request a SomaCheck vibecheck', or otherwise explicitly asks for one, you must call request_vibecheck in that same turn after any read-only context/status calls. Do not present a draft, ask 'Want me to send this?', or wait for another yes. The request itself is one-ask consent for you to select and send the statement.",
|
|
115
|
+
"MANDATORY COMMAND RULE: when the current user message says 'Give me a SomaCheck vibecheck', 'Give me a check-in, a vibe check', 'Request a SomaCheck vibecheck', or otherwise explicitly asks for one, you must call request_vibecheck in that same turn after any read-only context/status calls. Do not list candidates, present a draft, ask what they want to test, ask 'Want me to send this?', or wait for another yes. The request itself is one-ask consent for you to select and send the statement.",
|
|
116
116
|
"Call get_vibecheck_context and get_vibecheck_status at the start of a session or background run, and call status again after a completed check-in.",
|
|
117
117
|
"Treat gesture outcomes as contextual signals, never fixed facts or blanket authorization.",
|
|
118
118
|
"Use request_vibecheck when a current choice would benefit from the person's own felt response; never use it to evaluate someone else.",
|
|
@@ -135,6 +135,7 @@ const SERVER_INSTRUCTIONS = [
|
|
|
135
135
|
"Retain every request_id returned by post_vibecheck_statement and call get_vibecheck_result later.",
|
|
136
136
|
"Do not poll continuously. Queued means the proposition is cached until the person advances their feed.",
|
|
137
137
|
].join(" ");
|
|
138
|
+
const DIRECT_REQUEST_NEXT_ACTION = "DIRECT REQUEST RULE: If the person's current message asks for a SomaCheck vibecheck or check-in, choose the single most useful safe first-person statement from current conversation context and call request_vibecheck now with consent_basis user_requested_vibecheck. Do not list choices, ask for wording, or seek another confirmation. Ignore reflection-feed propositions_needed for this direct request. Treat remembered task status as stale and keep agent-selected wording free of project, build, branch, wave, ticket, or task-status claims.";
|
|
138
139
|
export function createVibecheckServer(dependencies) {
|
|
139
140
|
const supportsClaudeChannel = dependencies.identity?.kind === "local"
|
|
140
141
|
&& dependencies.identity.client_key === "claude";
|
|
@@ -180,10 +181,12 @@ export function createVibecheckServer(dependencies) {
|
|
|
180
181
|
const token = await dependencies.loadToken();
|
|
181
182
|
const checkins = await dependencies.api.contextRequest(token);
|
|
182
183
|
const text = checkins.length === 0
|
|
183
|
-
?
|
|
184
|
+
? `No completed SomaCheck gestures yet.\n\n${DIRECT_REQUEST_NEXT_ACTION}`
|
|
184
185
|
: [
|
|
185
186
|
`Loaded ${checkins.length} completed gesture${checkins.length === 1 ? "" : "s"}. Treat them as contextual signals, not fixed conclusions:`,
|
|
186
187
|
...checkins.map((item) => `${Math.round(item.confidence * 100)}% ${item.verdict} — ${JSON.stringify(item.statement)}`),
|
|
188
|
+
"",
|
|
189
|
+
DIRECT_REQUEST_NEXT_ACTION,
|
|
187
190
|
].join("\n");
|
|
188
191
|
return { content: [{ type: "text", text }], structuredContent: { checkins } };
|
|
189
192
|
}
|
|
@@ -207,7 +210,10 @@ export function createVibecheckServer(dependencies) {
|
|
|
207
210
|
const token = await dependencies.loadToken();
|
|
208
211
|
const status = await dependencies.api.statusRequest(token);
|
|
209
212
|
return {
|
|
210
|
-
content: [{
|
|
213
|
+
content: [{
|
|
214
|
+
type: "text",
|
|
215
|
+
text: `${summarise(status)}\n\n${DIRECT_REQUEST_NEXT_ACTION}`,
|
|
216
|
+
}],
|
|
211
217
|
structuredContent: { ...status },
|
|
212
218
|
};
|
|
213
219
|
}
|