@clien-ai/mcp 0.8.1 → 0.10.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.
- package/README.md +38 -6
- package/dist/tools/collections.js +308 -5
- package/dist/tools/collections.js.map +1 -1
- package/dist/tools/content-type-display.js +166 -0
- package/dist/tools/content-type-display.js.map +1 -0
- package/dist/tools/credits.js +299 -0
- package/dist/tools/credits.js.map +1 -0
- package/dist/tools/interview-scripts.js +370 -0
- package/dist/tools/interview-scripts.js.map +1 -0
- package/dist/tools/interview.js +148 -6
- package/dist/tools/interview.js.map +1 -1
- package/dist/tools/output-schemas.js +47 -0
- package/dist/tools/output-schemas.js.map +1 -1
- package/dist/tools/personas.js +276 -48
- package/dist/tools/personas.js.map +1 -1
- package/dist/tools/registry.js +316 -24
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/report-digest.js +179 -3
- package/dist/tools/report-digest.js.map +1 -1
- package/dist/tools/reports.js +9 -2
- package/dist/tools/reports.js.map +1 -1
- package/dist/tools/research.js +102 -5
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/scoped-research.js +270 -42
- package/dist/tools/scoped-research.js.map +1 -1
- package/dist/tools/status.js +2 -2
- package/dist/tools/status.js.map +1 -1
- package/dist/types/report.js +207 -5
- package/dist/types/report.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ on our sandbox, and hands you back a markdown report plus structured
|
|
|
7
7
|
[trust layer](#trust-signals) — per-claim GROUNDED/SPECULATION/NO_RECEIPT
|
|
8
8
|
classifications, source receipts, and robustness survival counts.
|
|
9
9
|
|
|
10
|
-
Alongside it, [
|
|
10
|
+
Alongside it, [21 more tools](#tools) let an agent read and edit what a project
|
|
11
11
|
already holds — projects, personas, interviews, reports, competitors, and
|
|
12
12
|
community signals — most of them free.
|
|
13
13
|
|
|
@@ -74,6 +74,9 @@ Restart Claude Code. First call triggers OAuth.
|
|
|
74
74
|
"hypotheses": [...],
|
|
75
75
|
"competitors": [...],
|
|
76
76
|
"key_findings": [...],
|
|
77
|
+
"executiveSummary": "...",
|
|
78
|
+
// The run's own reason for its verdict — 1-2 sentences, often absent.
|
|
79
|
+
"verdictSummary": "...",
|
|
77
80
|
// Trust layer (typed):
|
|
78
81
|
"claims": [
|
|
79
82
|
{ "id": "CLM-p0-pp0", "personaId": "persona-0", "text": "...", "state": "GROUNDED", "sourceId": "RCP-p0-s0", "quoteSpan": "..." }
|
|
@@ -99,6 +102,25 @@ pass back to Claude Code when you want it to reason about the research
|
|
|
99
102
|
further — "find the strongest competitor", "draft a positioning doc against
|
|
100
103
|
the top 3 threats", etc.
|
|
101
104
|
|
|
105
|
+
### The run's verdict rationale
|
|
106
|
+
|
|
107
|
+
When a run wrote one, `report_data.verdictSummary` carries its own 1-2 sentence
|
|
108
|
+
reason for the overall verdict, and it is rendered into the result text under a
|
|
109
|
+
`## Verdict rationale` heading between the report markdown and the trust digest.
|
|
110
|
+
The typed field is on `structuredContent.report_data` for `get_report` and on
|
|
111
|
+
host-side `_meta.report_data` for `clien_research` / `clien_research_status`; the
|
|
112
|
+
rendered text is the only channel all three give the model.
|
|
113
|
+
It sits on the prose side of the `---` on purpose: it is what the run *said*, not
|
|
114
|
+
something machine-checked.
|
|
115
|
+
|
|
116
|
+
**It is retrieved, never derived.** Do not recompute or paraphrase it from the
|
|
117
|
+
verdict counts or `overallConfidence` — a rationale assembled from a tally asserts
|
|
118
|
+
something the run never produced. It is frequently **absent**, which is normal and
|
|
119
|
+
not an error: the report may predate the field, the run may have written none, or
|
|
120
|
+
it may have been withdrawn because a robustness re-ask downgraded a verdict it
|
|
121
|
+
argued for. Nothing is rendered in that case — no placeholder — so say that no
|
|
122
|
+
rationale was recorded rather than inferring one.
|
|
123
|
+
|
|
102
124
|
### Trust signals
|
|
103
125
|
|
|
104
126
|
Every field below reaches the agent-visible result text on any host, not only
|
|
@@ -136,7 +158,7 @@ simply omits them. The full Zod schema lives in
|
|
|
136
158
|
|
|
137
159
|
## Tools
|
|
138
160
|
|
|
139
|
-
Twenty tools. `clien_research` is the hero — the recommended default for
|
|
161
|
+
Twenty-three tools. `clien_research` is the hero — the recommended default for
|
|
140
162
|
validating an idea end to end. Everything else is either a **free read** for
|
|
141
163
|
orienting on what a project already holds, or a **targeted primitive** for a
|
|
142
164
|
narrow, cheaper probe.
|
|
@@ -170,6 +192,7 @@ name — the aliases exist for callers written before the rename.
|
|
|
170
192
|
| `clien_research_status` | — | free | Re-attach to an existing job by `job_id` — recovers a run that dropped with `-32000` and polls for completion. Called with no arguments it discovers your recent runs. |
|
|
171
193
|
| `scan_competitors` | `topic` | debits credits | One web researcher over the COMPETITOR dimension only (2–10 min). Returns competitor profiles in `_meta.competitors`. Check the free `list_competitors` first. |
|
|
172
194
|
| `search_forums` | `topic` | debits credits | One forum researcher over the COMMUNITY dimension only (2–10 min). Returns threads in `_meta.threads`. Check the free `list_community_signals` first. Run sequentially with `scan_competitors` on the same project — a parallel second call gets a 409. |
|
|
195
|
+
| `scan_market` | `topic` | debits credits | One market researcher over the MARKET dimension only (2–10 min) — size, growth, atomic figures, trends and unserved gaps, in `_meta.market`. Discovers NO competitors and leaves the other two dossiers untouched. Replaces the project's whole market snapshot, so a field this run did not establish is emptied. Check the free `get_market` first. Availability is server-gated: a deployment that has not enabled it answers 503 and nothing is charged. |
|
|
173
196
|
|
|
174
197
|
### Projects
|
|
175
198
|
|
|
@@ -183,10 +206,11 @@ name — the aliases exist for callers written before the rename.
|
|
|
183
206
|
|
|
184
207
|
| Tool | Required | Cost | What it does |
|
|
185
208
|
|------|----------|------|--------------|
|
|
186
|
-
| `list_personas` | `project_id` | free | The project's personas, newest first, paginated — including ones created in the web app. Entries carry
|
|
187
|
-
| `get_persona` | `persona_id` | free | One persona entity in full, including flat
|
|
209
|
+
| `list_personas` | `project_id` | free | The project's personas, newest first, paginated — including ones created in the web app. Entries carry `seniority` / `careerPath` when the persona has them: user-editable in the web app and writable through `update_persona_identity_priors`, so not a research signal. |
|
|
210
|
+
| `get_persona` | `persona_id` | free | One persona entity in full, including flat `seniority` / `careerPath` when present. ⚠️ Those two are web-editable and writable via `update_persona_identity_priors`, and the entity does not say whether a value is run-written, agent-written or user-typed. The run-written copy, forum `sources[]` and `identityProvenance` live on `report_data` via `get_report`, which nests the same two names under `identityPriors`. |
|
|
188
211
|
| `create_persona` | `project_id`, `name`, `role` | free | Create a persona from fields you already know. No AI, no credit. |
|
|
189
|
-
| `update_persona` | `persona_id` | free | Correct explicit scalar fields on an existing persona. No AI, no credit. |
|
|
212
|
+
| `update_persona` | `persona_id` | free | Correct explicit scalar fields on an existing persona. No AI, no credit. Identity priors go through `update_persona_identity_priors` instead. |
|
|
213
|
+
| `update_persona_identity_priors` | `persona_id` | free | Set `seniority` / `career_path` on an existing persona — the same edit the web persona profile makes. Empty string clears. No AI, no credit. ⚠️ Nothing records whether a stored value came from a research run, an agent or a person, so writing one does not make it grounding. |
|
|
190
214
|
| `generate_persona` | `project_id`, `name`, `role` | 1 credit | AI-generate a persona from a short brief, grounded by default in real user-voice evidence. A failed generation is never charged. |
|
|
191
215
|
| `enrich_persona` | `persona_id` | 1 credit | AI-fill only the fields that are currently BLANK on an existing persona (or the ones named in `refresh`). A no-op charges nothing; a failure is refunded. |
|
|
192
216
|
|
|
@@ -194,7 +218,7 @@ name — the aliases exist for callers written before the rename.
|
|
|
194
218
|
|
|
195
219
|
| Tool | Required | Cost | What it does |
|
|
196
220
|
|------|----------|------|--------------|
|
|
197
|
-
| `interview_persona` | `action` |
|
|
221
|
+
| `interview_persona` | `action` | debits credits | Stateful multi-turn interview. `action:start` → `turn` (repeatedly) → `complete`, plus `transcript` and `reopen`. ONE FLAT charge covers the whole interview however many turns it runs, and credits are the only meter — there is no separate token allowance. `get_credit_balance` returns the current figure. |
|
|
198
222
|
| `list_interviews` | `project_id` | free | The project's interviews, newest first, paginated — recovers ids for interviews started in the web app. Entries carry `messageCount`, not transcripts; use `get_interview` for one. |
|
|
199
223
|
| `get_interview` | `interview_id` | free | One interview's full transcript, from just an id. |
|
|
200
224
|
|
|
@@ -206,6 +230,14 @@ name — the aliases exist for callers written before the rename.
|
|
|
206
230
|
| `get_report` | `job_id` | free | A past run's full report + `report_data`, same shape `clien_research` returns. Use this instead of re-running. |
|
|
207
231
|
| `list_competitors` | `project_id` | free | The project's deduped, accumulated competitor set, most-recently-seen first. Each of the four company facts carries a sibling `<fact>Grounding` — key on its `state`. |
|
|
208
232
|
| `list_community_signals` | `project_id` | free | The project's deduped, accumulated thread set, newest-**discovered** first (a stable order — a thread seen again does not move back to page one). Carries the verbatim `relevantQuotes[]` cached at collection. |
|
|
233
|
+
| `get_market` | `project_id` | free | The project's market snapshot — size, growth trend, key trends, positioning gaps. A **singleton**, not a page: every field was written together by the one run named in `sourceRunId`. No snapshot is reported as "no run has produced market data", never as an empty or unmeasured market. The figures carry no trust state here; read the source run with `get_report` for their claim states. |
|
|
234
|
+
| `list_interview_scripts` | `project_id` | free | The interview scripts a research run wrote for the project — one per hypothesis, ranked least-settled first, each carrying its `hypothesisId`, statement, verdict and questions. **Stored output of one run, never generated on read.** Call it before `interview_persona` so the answers anchor to a hypothesis; no scripts is reported as "no run has written any", never as "nothing worth asking". |
|
|
235
|
+
|
|
236
|
+
### Account
|
|
237
|
+
|
|
238
|
+
| Tool | Required | Cost | What it does |
|
|
239
|
+
|------|----------|------|--------------|
|
|
240
|
+
| `get_credit_balance` | — | free | The account's credit balance and what every metered action costs, so you can check what you can afford BEFORE committing to paid work. Returns the ledger balance, the **spendable** balance (lower when the anti-hoarding cap bites — budget with this one) and a per-action price list read live from the server. ⚠️ **Advisory, never a reservation:** it holds nothing back, the balance can move before a spend, and the server's atomic debit remains the only authority. **Read-only:** no top-up, no plan change, no checkout — no MCP tool adds credits; the account owner does that in the web app. A failed read raises an error rather than report a balance, so an error means "unknown", never "out of credits". |
|
|
209
241
|
|
|
210
242
|
"free" above means what each tool's own description states: no credit cost and
|
|
211
243
|
no side effects.
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
* { competitors: <raw row>[], pagination: { limit, offset, total } }
|
|
20
20
|
* - list_community_signals → GET /api/community?projectId&limit&offset →
|
|
21
21
|
* { communitySignals: <raw row>[], pagination: { limit, offset, total } }
|
|
22
|
+
* - get_market → GET /api/market?projectId →
|
|
23
|
+
* { market: <raw row> | null } (no pagination — a singleton, FUL-511)
|
|
22
24
|
*
|
|
23
25
|
* `offset` is an ABSOLUTE row offset honoured exactly by the endpoints (FUL-214),
|
|
24
26
|
* not rounded to a page boundary — identical semantics to `/api/personas`, so an
|
|
@@ -56,6 +58,7 @@
|
|
|
56
58
|
import { z } from 'zod';
|
|
57
59
|
import { ToolError } from './errors.js';
|
|
58
60
|
import { formatEngagement } from './engagement-display.js';
|
|
61
|
+
import { canonicalContentType, contentTypeProvenanceLine } from './content-type-display.js';
|
|
59
62
|
import { apiCall, categorizeFetchError, } from './research.js';
|
|
60
63
|
import { truncate, collapseWhitespace, safeInline, safeId, firstQuoteWithCount, } from './render-safety.js';
|
|
61
64
|
const COLLECTIONS_FETCH_TIMEOUT_MS = 30_000;
|
|
@@ -124,6 +127,28 @@ export const ListCommunitySignalsInputSchema = z.object({
|
|
|
124
127
|
'through a large feed; the total count is stated in the result text ' +
|
|
125
128
|
'("Found N community signals").'),
|
|
126
129
|
});
|
|
130
|
+
/**
|
|
131
|
+
* `get_market` (FUL-511) — the THIRD research dossier, and the only singleton one.
|
|
132
|
+
*
|
|
133
|
+
* No `limit`/`offset`: `project_market` has `project_id` as its primary key, so a
|
|
134
|
+
* project has exactly zero or one snapshot. Everything else about the tool
|
|
135
|
+
* follows its two siblings — same `apiCall`, same 404 semantics, same rule that
|
|
136
|
+
* "I could not read the answer" must never render as "the answer is none".
|
|
137
|
+
*/
|
|
138
|
+
export const GetMarketInputSchema = z.object({
|
|
139
|
+
project_id: z
|
|
140
|
+
.string()
|
|
141
|
+
.uuid()
|
|
142
|
+
.describe('UUID of the project whose market snapshot to read. Get it from ' +
|
|
143
|
+
'`list_projects` (or `create_project`). Rejected with a 404 if you do not ' +
|
|
144
|
+
'own the project. Returns the project\'s single stored market snapshot — ' +
|
|
145
|
+
'market size, growth trend, key trends and positioning gaps — which is ONE ' +
|
|
146
|
+
'COHERENT RUN\'S OUTPUT: every field was written together by the research ' +
|
|
147
|
+
'run named in the `sourceRunId` provenance field, never assembled from ' +
|
|
148
|
+
'several runs. Pass that id to `get_report` to see the run behind the ' +
|
|
149
|
+
'figures. A project can legitimately have NO snapshot; that is reported as ' +
|
|
150
|
+
'"no run has produced market data", never as a zero or an empty market.'),
|
|
151
|
+
});
|
|
127
152
|
function nullableString(value) {
|
|
128
153
|
return typeof value === 'string' ? value : null;
|
|
129
154
|
}
|
|
@@ -218,27 +243,55 @@ export function toCommunitySignalSummary(row) {
|
|
|
218
243
|
upvotes: nullableNumber(row.upvotes),
|
|
219
244
|
commentCount: nullableNumber(row.comment_count),
|
|
220
245
|
source: nullableString(row.source),
|
|
246
|
+
contentType: canonicalContentType(row.content_type),
|
|
221
247
|
firstSeenRunId: nullableString(row.first_seen_run_id),
|
|
222
248
|
lastSeenAt: nullableString(row.last_seen_at),
|
|
223
249
|
createdAt: nullableString(row.created_at),
|
|
224
250
|
};
|
|
225
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* `project_market` row → the camelCase market snapshot exposed to agents.
|
|
254
|
+
*
|
|
255
|
+
* Written out rather than derived, for the same FUL-215 reason as the two mappers
|
|
256
|
+
* above: the field list IS the public MCP contract, so it must be readable in
|
|
257
|
+
* review and pinned by a test, not produced by string surgery that silently
|
|
258
|
+
* admits whatever column is added next.
|
|
259
|
+
*
|
|
260
|
+
* EVERY column on the table is mapped — the singleton has no bookkeeping columns.
|
|
261
|
+
* `key_trends` / `positioning_gaps` are Postgres `TEXT[] NOT NULL DEFAULT '{}'`,
|
|
262
|
+
* so an empty array is the real "nothing recorded" value and `stringArray`
|
|
263
|
+
* normalises a drifted null to the same thing.
|
|
264
|
+
*/
|
|
265
|
+
export function toMarketSnapshot(row) {
|
|
266
|
+
return {
|
|
267
|
+
projectId: nullableString(row.project_id),
|
|
268
|
+
marketSize: nullableString(row.market_size),
|
|
269
|
+
growthTrend: nullableString(row.growth_trend),
|
|
270
|
+
keyTrends: stringArray(row.key_trends),
|
|
271
|
+
positioningGaps: stringArray(row.positioning_gaps),
|
|
272
|
+
sourceRunId: nullableString(row.source_run_id),
|
|
273
|
+
updatedAt: nullableString(row.updated_at),
|
|
274
|
+
};
|
|
275
|
+
}
|
|
226
276
|
export class CollectionToolError extends ToolError {
|
|
227
277
|
}
|
|
228
|
-
function formatZodError(error) {
|
|
278
|
+
export function formatZodError(error) {
|
|
229
279
|
return error.issues.map((i) => `${i.path.join('.') || 'input'}: ${i.message}`).join('; ');
|
|
230
280
|
}
|
|
231
|
-
function makeCtx(deps) {
|
|
281
|
+
export function makeCtx(deps) {
|
|
232
282
|
return { config: deps.config, session: deps.session, fetch: deps.fetch ?? fetch };
|
|
233
283
|
}
|
|
234
284
|
/**
|
|
235
|
-
* Shared non-ok handling
|
|
285
|
+
* Shared non-ok handling for every bearer READ in this package — the two
|
|
286
|
+
* collections, `get_market`, and `list_interview_scripts` in
|
|
287
|
+
* `interview-scripts.ts`, which imports this rather than growing a third dialect
|
|
288
|
+
* of the same four messages. Mirrors `personas.ts`: 401 drops the cached session
|
|
236
289
|
* and surfaces a re-auth message; 404 means the project is missing OR not the
|
|
237
290
|
* caller's (U6 makes the two indistinguishable on purpose, so a caller cannot
|
|
238
291
|
* probe for other users' project ids); 400 surfaces the server's validation
|
|
239
292
|
* detail; everything else surfaces a generic HTTP error.
|
|
240
293
|
*/
|
|
241
|
-
async function throwForResponse(response, deps, action, projectId) {
|
|
294
|
+
export async function throwForResponse(response, deps, action, projectId) {
|
|
242
295
|
const category = categorizeFetchError(response.status);
|
|
243
296
|
if (category === 'auth') {
|
|
244
297
|
if (response.refreshError?.kind !== 'transient')
|
|
@@ -660,7 +713,14 @@ export async function listCommunitySignals(input, deps) {
|
|
|
660
713
|
// line is gated. `search_forums` uses the same helper; they must not drift.
|
|
661
714
|
const engagement = formatEngagement(s.upvotes, s.commentCount);
|
|
662
715
|
const engagementLine = engagement ? `\n ${engagement}` : '';
|
|
663
|
-
|
|
716
|
+
// FUL-341: the provenance line is stated in BOTH directions, never omitted — the rule, and
|
|
717
|
+
// why each exclusion is worded the way it is, live on `contentTypeProvenanceLine` itself.
|
|
718
|
+
// FUL-536 moved it there from this ternary: `search_forums` renders these SAME rows and was
|
|
719
|
+
// silent about the trust state, which is exactly the FUL-247 divergence one shared helper
|
|
720
|
+
// makes impossible. Already-normalized here (`toCommunitySignalSummary`); the helper
|
|
721
|
+
// re-normalizes, which is idempotent and keeps it safe for a caller that has not.
|
|
722
|
+
const provenanceLine = contentTypeProvenanceLine(s.contentType);
|
|
723
|
+
return `${header}${sentiment}${url}${quote}${engagementLine}${provenanceLine}\n id: ${safeId(s.id) ?? 'unknown'}`;
|
|
664
724
|
});
|
|
665
725
|
text =
|
|
666
726
|
`Found ${total} community signal${total === 1 ? '' : 's'} in project ${projectId}:\n\n` +
|
|
@@ -678,4 +738,247 @@ export async function listCommunitySignals(input, deps) {
|
|
|
678
738
|
},
|
|
679
739
|
};
|
|
680
740
|
}
|
|
741
|
+
// ---------------------------------------------------------------------------
|
|
742
|
+
// get_market (FUL-511) — the singleton dossier
|
|
743
|
+
// ---------------------------------------------------------------------------
|
|
744
|
+
/**
|
|
745
|
+
* How much of one free-text market field reaches the rendered line.
|
|
746
|
+
*
|
|
747
|
+
* `marketSize` is a whole sentence in practice (FUL-348: it is lifted from the
|
|
748
|
+
* run's first market-SIZE claim, e.g. "The global X market was valued at $12.4B
|
|
749
|
+
* in 2025"), so it gets more room than a competitor's `pricing`. Trends and gaps
|
|
750
|
+
* are one-line assertions. Both are agent-written free text, so both go through
|
|
751
|
+
* `collapseWhitespace` first — see `factLine` for why that is a forgery guard and
|
|
752
|
+
* not cosmetics.
|
|
753
|
+
*/
|
|
754
|
+
const MARKET_FIELD_MAX = 240;
|
|
755
|
+
const MARKET_ITEM_MAX = 200;
|
|
756
|
+
/**
|
|
757
|
+
* Upper bound on list items RENDERED per field. The producer caps `keyTrends` at
|
|
758
|
+
* 5 and `positioningGaps` is short in practice, so this should never fire — but
|
|
759
|
+
* an unfired cap that would truncate silently is the thing this package refuses
|
|
760
|
+
* (`moreLine`, `clipNote`). When it fires it says so.
|
|
761
|
+
*/
|
|
762
|
+
const MARKET_LIST_MAX = 20;
|
|
763
|
+
/**
|
|
764
|
+
* One bulleted list field ("Key trends", "Positioning gaps"), or `null` when the
|
|
765
|
+
* field is empty.
|
|
766
|
+
*
|
|
767
|
+
* Branching on the RENDERED items rather than on `items.length` is the same trap
|
|
768
|
+
* `hasAnalysis` records above: `['']` has length 1 and collapses to nothing, and
|
|
769
|
+
* a "Key trends:" header over no bullets reads as a rendering bug rather than as
|
|
770
|
+
* an empty field.
|
|
771
|
+
*/
|
|
772
|
+
function marketListBlock(label, items) {
|
|
773
|
+
const flat = items
|
|
774
|
+
.map((item) => collapseWhitespace(typeof item === 'string' ? item : ''))
|
|
775
|
+
.filter((item) => item.length > 0);
|
|
776
|
+
if (flat.length === 0)
|
|
777
|
+
return null;
|
|
778
|
+
const shown = flat.slice(0, MARKET_LIST_MAX);
|
|
779
|
+
const lines = shown.map((item) => ` - ${truncate(item, MARKET_ITEM_MAX)}`);
|
|
780
|
+
const dropped = flat.length - shown.length;
|
|
781
|
+
const more = dropped > 0 ? `\n (${dropped} more in \`structuredContent.market\`)` : '';
|
|
782
|
+
return `${label}:\n${lines.join('\n')}${more}`;
|
|
783
|
+
}
|
|
784
|
+
/**
|
|
785
|
+
* GET /api/market for one project → the mapped snapshot, or `null` when the
|
|
786
|
+
* project genuinely has none.
|
|
787
|
+
*
|
|
788
|
+
* ⚠️ THE NULL AND THE THROW ARE DIFFERENT ANSWERS, and the difference is decided
|
|
789
|
+
* by KEY PRESENCE, not truthiness. `{ "market": null }` is the endpoint saying
|
|
790
|
+
* "this project has no snapshot" — a real, quotable fact. A 200 whose body has no
|
|
791
|
+
* `market` key at all (an HTML error page from a proxy, a truncated response, a
|
|
792
|
+
* reshaped envelope) is the endpoint saying nothing, and must not arrive at an
|
|
793
|
+
* agent wearing the empty state's words. This is `fetchCollection`'s rule one
|
|
794
|
+
* shape down: "I could not read the answer" and "the answer is none" must not
|
|
795
|
+
* look the same. Here it matters MORE than it does for the collections, because
|
|
796
|
+
* the empty state an agent would be handed is not "run a scan" but "no research
|
|
797
|
+
* has established this market" — a claim it may well repeat to a user.
|
|
798
|
+
*/
|
|
799
|
+
async function fetchMarket(deps, projectId) {
|
|
800
|
+
const action = 'read the market snapshot';
|
|
801
|
+
const ctx = makeCtx(deps);
|
|
802
|
+
const query = new URLSearchParams({ projectId });
|
|
803
|
+
let response;
|
|
804
|
+
try {
|
|
805
|
+
response = await apiCall(ctx, 'GET', `/api/market?${query.toString()}`, {
|
|
806
|
+
timeoutMs: COLLECTIONS_FETCH_TIMEOUT_MS,
|
|
807
|
+
});
|
|
808
|
+
}
|
|
809
|
+
catch (err) {
|
|
810
|
+
const e = err;
|
|
811
|
+
if (e.name === 'AbortError' || e.name === 'TimeoutError') {
|
|
812
|
+
throw new CollectionToolError(`Timed out after ${COLLECTIONS_FETCH_TIMEOUT_MS / 1000}s trying to ${action}. ` +
|
|
813
|
+
'Try again in a moment — this is a read, so nothing was spent and nothing was lost.');
|
|
814
|
+
}
|
|
815
|
+
throw err;
|
|
816
|
+
}
|
|
817
|
+
if (!response.ok)
|
|
818
|
+
await throwForResponse(response, deps, action, projectId);
|
|
819
|
+
const json = (await response.json().catch(() => null));
|
|
820
|
+
const unreadable = new CollectionToolError(`Could not ${action} — the server returned a 200 with an unreadable body ` +
|
|
821
|
+
'(no `market` key). This is NOT "the project has no market snapshot": the request ' +
|
|
822
|
+
'failed and a snapshot may well exist. Retry — this is a read, so nothing was spent ' +
|
|
823
|
+
'and nothing was lost. Do not tell anyone this project has no market data on the ' +
|
|
824
|
+
'strength of this, and do not start a paid research run because of it.');
|
|
825
|
+
if (json === null || typeof json !== 'object' || Array.isArray(json) || !('market' in json)) {
|
|
826
|
+
throw unreadable;
|
|
827
|
+
}
|
|
828
|
+
const market = json.market;
|
|
829
|
+
if (market === null)
|
|
830
|
+
return null;
|
|
831
|
+
if (typeof market !== 'object' || Array.isArray(market))
|
|
832
|
+
throw unreadable;
|
|
833
|
+
return toMarketSnapshot(market);
|
|
834
|
+
}
|
|
835
|
+
/**
|
|
836
|
+
* The provenance sentence, stated in the TEXT channel because that is the one an
|
|
837
|
+
* agent always receives (FUL-243: `_meta` is a mirror, Claude Code drops it).
|
|
838
|
+
*
|
|
839
|
+
* This is the FUL-477 guarantee and the most valuable thing this tool carries: an
|
|
840
|
+
* agent quoting a market size should be able to say which run produced it, and
|
|
841
|
+
* should know that the trend beside it came from the SAME run rather than from
|
|
842
|
+
* whichever run last happened to touch that column.
|
|
843
|
+
*
|
|
844
|
+
* A `null` `sourceRunId` gets its own sentence rather than silence. Silence would
|
|
845
|
+
* read as "there is nothing to say about where this came from", which is the
|
|
846
|
+
* opposite of the truth: the provenance is UNKNOWN, and figures with unknown
|
|
847
|
+
* provenance are exactly the ones an agent must not attribute.
|
|
848
|
+
*/
|
|
849
|
+
function marketProvenanceLine(runId) {
|
|
850
|
+
const safe = safeId(runId);
|
|
851
|
+
if (!safe) {
|
|
852
|
+
return ('PROVENANCE: this snapshot names NO source run — either it predates the coherent-snapshot ' +
|
|
853
|
+
'guarantee or the run behind it has since been deleted. Its fields may not all come from ' +
|
|
854
|
+
'the same research run. Treat the figures as unattributable: report them as recorded, ' +
|
|
855
|
+
'never as "run X found".');
|
|
856
|
+
}
|
|
857
|
+
return (`PROVENANCE: every field above was written together by research run ${safe} — one run's ` +
|
|
858
|
+
'coherent market read, never a mix of runs. Quote a figure only alongside that run id, and ' +
|
|
859
|
+
`call \`get_report\` with job_id=${safe} for the run behind it (its market claims, the ` +
|
|
860
|
+
'sources they were lifted from, and their trust states).');
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* The trust caveat.
|
|
864
|
+
*
|
|
865
|
+
* ⚠️ Unlike a competitor's four company facts, a market figure has NO per-fact
|
|
866
|
+
* grounding column to render beside it — the trust state lives only in the SOURCE
|
|
867
|
+
* RUN's claim spine, and the web app reconstructs it there with a fail-closed
|
|
868
|
+
* two-gate check (`buildMarketDossier` in `app/lib/validation/market-claims.ts`).
|
|
869
|
+
* This client cannot import that, and reproducing it from a different codebase on
|
|
870
|
+
* a different release cadence is how two surfaces come to disagree about whether
|
|
871
|
+
* a number is verified.
|
|
872
|
+
*
|
|
873
|
+
* So this tool renders the figures UNGRADED and says so, which is the same choice
|
|
874
|
+
* `list_competitors` makes for strengths/weaknesses. The alternative — printing a
|
|
875
|
+
* market size bare, with no state and no disclaimer — is precisely FUL-247's
|
|
876
|
+
* failure: a number beside a heading reads as checked.
|
|
877
|
+
*/
|
|
878
|
+
const MARKET_TRUST_LINE = 'TRUST: these figures carry NO trust state here. A market figure\'s grounding lives in its ' +
|
|
879
|
+
'source run\'s claim spine, not on this snapshot, so nothing above is a verified claim — it is ' +
|
|
880
|
+
'what the run recorded. Do not cite a figure from this tool as sourced; read the source run ' +
|
|
881
|
+
'with `get_report` (its market claims carry GROUNDED / SPECULATION / NO_RECEIPT states and ' +
|
|
882
|
+
'their receipts), or open the project\'s Market page, which grades them and fails closed.';
|
|
883
|
+
export async function getMarket(input, deps) {
|
|
884
|
+
const parsed = GetMarketInputSchema.safeParse(input);
|
|
885
|
+
if (!parsed.success) {
|
|
886
|
+
throw new CollectionToolError(`Invalid input — ${formatZodError(parsed.error)}`);
|
|
887
|
+
}
|
|
888
|
+
const { project_id: projectId } = parsed.data;
|
|
889
|
+
const market = await fetchMarket(deps, projectId);
|
|
890
|
+
let text;
|
|
891
|
+
if (market === null) {
|
|
892
|
+
// ⚠️ THE HONEST EMPTY STATE. "Absent" is not "zero" and it is not "we looked
|
|
893
|
+
// and found nothing" — FUL-477's market gate means a completed run that did no
|
|
894
|
+
// market research writes nothing here at all, so this sentence has to say
|
|
895
|
+
// which of the two it is. An agent that reads silence as a finding will tell a
|
|
896
|
+
// user their market is unmeasured, which is a claim nobody made.
|
|
897
|
+
//
|
|
898
|
+
// ⚠️ THE REMEDY LINE IS A PRICE, and it has to name the CHEAP tool first
|
|
899
|
+
// (FUL-479). This tool used to say only `clien_research` because nothing else
|
|
900
|
+
// could write here; `scan_market` now can, at a small fraction of a full run's
|
|
901
|
+
// cost, and an agent that follows stale advice pays the difference. It stays
|
|
902
|
+
// hedged on availability because `scan_market` is behind a server-side switch
|
|
903
|
+
// this client cannot read — the refusal is free and says so, so trying is
|
|
904
|
+
// strictly better than not knowing the tool exists.
|
|
905
|
+
text =
|
|
906
|
+
`No market snapshot recorded for project ${projectId}.\n\n` +
|
|
907
|
+
'This means NO completed research run has produced market data for this project. It is ' +
|
|
908
|
+
'NOT a finding about the market: not "the market is small", not "no market was found", ' +
|
|
909
|
+
'not zero. There is simply nothing on record, and nothing here supports any statement ' +
|
|
910
|
+
'about the market either way.\n\n' +
|
|
911
|
+
'To produce one: `scan_market` researches the market on its own and is the cheapest way ' +
|
|
912
|
+
'to fill this in (if it is not enabled on this deployment it refuses immediately, costs ' +
|
|
913
|
+
'nothing and tells you so); `clien_research` is a full validation run and also writes ' +
|
|
914
|
+
'market data, at much higher cost. `scan_competitors` and `search_forums` never write ' +
|
|
915
|
+
'market data, so running those will leave this empty.';
|
|
916
|
+
}
|
|
917
|
+
else {
|
|
918
|
+
const size = safeInline(market.marketSize, MARKET_FIELD_MAX);
|
|
919
|
+
const trend = safeInline(market.growthTrend, 40);
|
|
920
|
+
const trends = marketListBlock('Key trends', market.keyTrends);
|
|
921
|
+
const gaps = marketListBlock('Positioning gaps', market.positioningGaps);
|
|
922
|
+
const updated = safeInline(market.updatedAt, 40);
|
|
923
|
+
const body = [
|
|
924
|
+
size ? `Market size: ${size}` : null,
|
|
925
|
+
trend ? `Growth trend: ${trend}` : null,
|
|
926
|
+
trends,
|
|
927
|
+
gaps,
|
|
928
|
+
].filter((line) => line !== null);
|
|
929
|
+
const runId = safeId(market.sourceRunId);
|
|
930
|
+
const updatedLine = updated ? `\nLast updated: ${updated}` : '';
|
|
931
|
+
if (body.length === 0) {
|
|
932
|
+
// ⚠️ A DIFFERENT FACT FROM THE `null` BRANCH, and worth its own words. A row
|
|
933
|
+
// exists, so a run DID reach the market block — which under FUL-477 only
|
|
934
|
+
// happens for a full run whose report carried a `webResearch` object. That
|
|
935
|
+
// run researched and recorded no figures. "Researched, found nothing" and
|
|
936
|
+
// "never researched" are opposite evidence, and collapsing them into one
|
|
937
|
+
// empty state is the exact error this tool is written to avoid.
|
|
938
|
+
//
|
|
939
|
+
// ⚠️ …but only the NAMED-RUN arm may say the run researched the market. A row
|
|
940
|
+
// with no `source_run_id` may predate the gate that makes that inference
|
|
941
|
+
// sound (the same doubt `marketProvenanceLine(null)` states two lines down),
|
|
942
|
+
// so its arm reports what the row records and infers nothing about the run.
|
|
943
|
+
//
|
|
944
|
+
// ⚠️ IT SAYS "researched the market", NOT "did web research" (FUL-479). Two
|
|
945
|
+
// different run kinds reach this block now — a full run carrying `webResearch`
|
|
946
|
+
// and a `scan_market` run carrying `marketResearch` — and this surface cannot
|
|
947
|
+
// tell them apart from the row. "Did web research" was true of the only run
|
|
948
|
+
// kind that could get here when it was written and is now a coin flip, which
|
|
949
|
+
// is a worse thing to tell an agent than the weaker claim both kinds satisfy.
|
|
950
|
+
// Contradicting our own provenance caveat one paragraph later would be the
|
|
951
|
+
// same class of over-claim this tool exists to refuse.
|
|
952
|
+
text =
|
|
953
|
+
`Project ${projectId} has a market snapshot with no figures in it.\n\n` +
|
|
954
|
+
(runId
|
|
955
|
+
? `Research run ${runId} researched the market and recorded no market size, no growth ` +
|
|
956
|
+
'trend, no key trends and no positioning gaps. '
|
|
957
|
+
: 'The run that wrote this snapshot recorded no market size, no growth trend, no ' +
|
|
958
|
+
'key trends and no positioning gaps. ') +
|
|
959
|
+
'That is a result, not missing data — but it is a WEAK one: it means that run surfaced ' +
|
|
960
|
+
'nothing quotable, not that the market is empty or unmeasured.' +
|
|
961
|
+
updatedLine +
|
|
962
|
+
'\n\n' +
|
|
963
|
+
marketProvenanceLine(market.sourceRunId) +
|
|
964
|
+
'\n\nThe full record is in `structuredContent.market` (also mirrored in `_meta.market`).';
|
|
965
|
+
}
|
|
966
|
+
else {
|
|
967
|
+
const runLine = runId ? `\nSource run: ${runId}` : '';
|
|
968
|
+
text =
|
|
969
|
+
`Market snapshot for project ${projectId}:\n\n` +
|
|
970
|
+
`${body.join('\n')}${runLine}${updatedLine}\n\n` +
|
|
971
|
+
marketProvenanceLine(market.sourceRunId) +
|
|
972
|
+
'\n\n' +
|
|
973
|
+
MARKET_TRUST_LINE +
|
|
974
|
+
'\n\nThe full record is in `structuredContent.market` (also mirrored in `_meta.market`).';
|
|
975
|
+
}
|
|
976
|
+
}
|
|
977
|
+
return {
|
|
978
|
+
content: [{ type: 'text', text }],
|
|
979
|
+
// `market` is present even when null — the key's PRESENCE is what tells a
|
|
980
|
+
// structured consumer "no snapshot" apart from "this tool did not answer".
|
|
981
|
+
_meta: { market },
|
|
982
|
+
};
|
|
983
|
+
}
|
|
681
984
|
//# sourceMappingURL=collections.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/tools/collections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collections.js","sourceRoot":"","sources":["../../src/tools/collections.ts"],"names":[],"mappings":"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"}
|