@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interview.js","sourceRoot":"","sources":["../../src/tools/interview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interview.js","sourceRoot":"","sources":["../../src/tools/interview.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,6 +125,53 @@ export const LIST_PROJECTS_OUTPUT_SCHEMA = listSchema('projects');
|
|
|
125
125
|
export const LIST_INTERVIEWS_OUTPUT_SCHEMA = listSchema('interviews');
|
|
126
126
|
export const LIST_COMPETITORS_OUTPUT_SCHEMA = listSchema('competitors');
|
|
127
127
|
export const LIST_COMMUNITY_SIGNALS_OUTPUT_SCHEMA = listSchema('communitySignals');
|
|
128
|
+
/**
|
|
129
|
+
* `get_market` → `{ market }` (FUL-511).
|
|
130
|
+
*
|
|
131
|
+
* `market` is `required` because the handler always sets the key — that PRESENCE
|
|
132
|
+
* is load-bearing, not bookkeeping: it is what lets a structured consumer tell
|
|
133
|
+
* "this project has no market snapshot" (`market: null`) from "the tool did not
|
|
134
|
+
* answer". The handler throws rather than emit the key on an unreadable body.
|
|
135
|
+
*
|
|
136
|
+
* Its VALUE is unconstrained for the usual reason plus one specific to this tool:
|
|
137
|
+
* `null` is a legitimate, meaningful answer here, so `type: 'object'` would make
|
|
138
|
+
* the honest empty state fail a strict client's validation.
|
|
139
|
+
*/
|
|
140
|
+
export const GET_MARKET_OUTPUT_SCHEMA = objectSchema({ market: ANYTHING }, ['market']);
|
|
141
|
+
/**
|
|
142
|
+
* `list_interview_scripts` → `{ interviewScripts, sourceRun }` (FUL-514).
|
|
143
|
+
*
|
|
144
|
+
* `interviewScripts` is `required` because the handler always sets the key — that
|
|
145
|
+
* PRESENCE is load-bearing, not bookkeeping: it is what lets a structured consumer
|
|
146
|
+
* tell "no run has written scripts" (`null`) from "the tool did not answer". The
|
|
147
|
+
* handler throws rather than emit the key on an unreadable body.
|
|
148
|
+
*
|
|
149
|
+
* Its VALUE is unconstrained: `null` is a legitimate answer, so `type: 'array'`
|
|
150
|
+
* would make the honest empty state fail a strict client. `sourceRun` is NOT
|
|
151
|
+
* required — it is `null` on the no-run branch and, being backend-sourced, must not
|
|
152
|
+
* turn version skew into a hard failure.
|
|
153
|
+
*/
|
|
154
|
+
export const LIST_INTERVIEW_SCRIPTS_OUTPUT_SCHEMA = objectSchema({ interviewScripts: ANYTHING, sourceRun: ANYTHING }, ['interviewScripts']);
|
|
128
155
|
/** `list_reports` returns no pagination envelope — the endpoint takes `limit` only. */
|
|
129
156
|
export const LIST_REPORTS_OUTPUT_SCHEMA = listSchema('jobs', false);
|
|
157
|
+
/**
|
|
158
|
+
* `get_credit_balance` → `{ credits }` (FUL-513).
|
|
159
|
+
*
|
|
160
|
+
* `credits` is `required` because the handler always sets the key — it throws rather
|
|
161
|
+
* than return a result without one, so its PRESENCE is what tells a structured consumer
|
|
162
|
+
* "here is the account's position" apart from "the tool did not answer". That matters
|
|
163
|
+
* more here than on most reads: the alternative reading of a missing balance is "zero",
|
|
164
|
+
* and zero is the answer that stops an agent doing work the user has already paid for.
|
|
165
|
+
*
|
|
166
|
+
* Its inner fields are NOT required and NOT typed, for this module's usual reason
|
|
167
|
+
* doubled. `balance` / `spendable` are legitimately `null` when the server sent no
|
|
168
|
+
* usable number — a real answer meaning "unknown", which a `type: 'number'` constraint
|
|
169
|
+
* would turn into a hard client-side failure at exactly the moment the honest degraded
|
|
170
|
+
* state was supposed to survive. `costs` is backend-sourced in full: the prices come
|
|
171
|
+
* from the app's pricing table, which this package cannot import and must never
|
|
172
|
+
* second-guess.
|
|
173
|
+
*/
|
|
174
|
+
export const GET_CREDIT_BALANCE_OUTPUT_SCHEMA = objectSchema({
|
|
175
|
+
credits: objectSchema({ balance: ANYTHING, spendable: ANYTHING, costs: ANY_OBJECT_ARRAY }, []),
|
|
176
|
+
}, ['credits']);
|
|
130
177
|
//# sourceMappingURL=output-schemas.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../../src/tools/output-schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,sEAAsE;AACtE,MAAM,UAAU,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAW,CAAA;AAE1E;;;;;;;;;;;GAWG;AACH,MAAM,QAAQ,GAAG,EAAW,CAAA;AAE5B,2EAA2E;AAC3E,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAW,CAAA;AAEtE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,GAAG;IACjB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;KACV;IACD,oBAAoB,EAAE,IAAI;CAClB,CAAA;AAEV,SAAS,YAAY,CACnB,UAAmC,EACnC,QAAkB;IAElB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAA;AAC7E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,aAAqB,EAAE,cAAc,GAAG,IAAI;IAC9D,MAAM,UAAU,GAA4B,EAAE,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACjF,IAAI,cAAc;QAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAA;IACtD,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;AAClD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CACnD,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAC7C,CAAC,SAAS,CAAC,CACZ,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAClD;IACE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC1B,WAAW,EAAE,QAAQ;CACtB,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CACrD,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAC/C,CAAC,WAAW,CAAC,CACd,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;AACjE,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;AACrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;AACvE,MAAM,CAAC,MAAM,oCAAoC,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAClF,uFAAuF;AACvF,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"output-schemas.js","sourceRoot":"","sources":["../../src/tools/output-schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/personas.js
CHANGED
|
@@ -50,8 +50,11 @@
|
|
|
50
50
|
* trajectory — persisted to the structured `personas.seniority` /
|
|
51
51
|
* `personas.career_path` columns (the demographic shape of the role). Unlike
|
|
52
52
|
* endowment/scope (folded into `background`), these are NOT echoed in the
|
|
53
|
-
* returned persona object —
|
|
54
|
-
*
|
|
53
|
+
* returned persona object — this call only writes them, and M5c later reads
|
|
54
|
+
* them back to calibrate against aggregate people distributions. ⚠️ The
|
|
55
|
+
* COLUMNS are not write-only: FUL-488 lets the user overwrite both in the web
|
|
56
|
+
* app, so what this generation wrote is not necessarily what a later
|
|
57
|
+
* `get_persona` reads back (FUL-540).
|
|
55
58
|
* - `enrich_persona` (FUL-77) — AI-fills the blank (or explicitly refreshed)
|
|
56
59
|
* scalar fields of an EXISTING persona over `POST /api/personas/ai-enrich`.
|
|
57
60
|
* Debits one `enrich_persona` credit, refunded if the enrichment fails; a
|
|
@@ -68,18 +71,38 @@ import { deprecatedAlias } from './param-aliases.js';
|
|
|
68
71
|
import { apiCall, categorizeFetchError, } from './research.js';
|
|
69
72
|
import { truncate, collapseWhitespace, safeInline, safeId, safeBlock, clipReceiptQuote, RECEIPT_QUOTE_MAX, } from './render-safety.js';
|
|
70
73
|
const PERSONAS_FETCH_TIMEOUT_MS = 30_000;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Persona field-length caps, hand-copied from `PERSONA_PROFILE_FIELD_RULES`
|
|
76
|
+
* (app/lib/personas/persona-profile-fields.ts). The @clien-ai/mcp package is
|
|
77
|
+
* published separately and cannot import from the Next.js app, so a copy is the
|
|
78
|
+
* only option — but every persona-writing route now READS those rules
|
|
79
|
+
* (`POST /api/personas`, `POST /api/personas/ai-generate`,
|
|
80
|
+
* `PATCH /api/personas/[personaId]` and its `identity-priors` sibling), so
|
|
81
|
+
* these numbers are the one advertised spec rather than a fourth opinion.
|
|
82
|
+
*
|
|
83
|
+
* That sync is ENFORCED, not trusted:
|
|
84
|
+
* `__tests__/integration/mcp/persona-field-cap-coupling.test.ts` pins all nine
|
|
85
|
+
* caps on both sides AND each route's derivation of them. Change a number here
|
|
86
|
+
* and its twin in the rules file in the same commit, or that guard fails.
|
|
87
|
+
*
|
|
88
|
+
* FUL-579 widened `location` 200 → 300 and `company_size` / `industry`
|
|
89
|
+
* 100 → 300 to match the web editor, which had always accepted them; `name`
|
|
90
|
+
* stayed 200 and the editor's 150 was raised to meet it, because narrowing a cap
|
|
91
|
+
* strands rows already over it. `company` went 200 → 255, not 300: it is the one
|
|
92
|
+
* widened field whose column is `VARCHAR(255)`, and advertising 300 there would
|
|
93
|
+
* hand an agent a length Postgres rejects with a 22001 the route surfaces as a
|
|
94
|
+
* 500 (FUL-600). `PERSONA_COLUMN_LENGTH_LIMITS` in the rules file is the ceiling.
|
|
95
|
+
*/
|
|
76
96
|
const NAME_MAX = 200;
|
|
77
97
|
const ROLE_MAX = 200;
|
|
78
|
-
const COMPANY_MAX =
|
|
98
|
+
const COMPANY_MAX = 255;
|
|
79
99
|
const DESCRIPTION_MAX = 5000;
|
|
80
|
-
const COMPANY_SIZE_MAX =
|
|
81
|
-
const INDUSTRY_MAX =
|
|
82
|
-
const LOCATION_MAX =
|
|
100
|
+
const COMPANY_SIZE_MAX = 300;
|
|
101
|
+
const INDUSTRY_MAX = 300;
|
|
102
|
+
const LOCATION_MAX = 300;
|
|
103
|
+
/** FUL-545 identity priors — same rules file, same guard. */
|
|
104
|
+
const SENIORITY_MAX = 300;
|
|
105
|
+
const CAREER_PATH_MAX = 300;
|
|
83
106
|
/** FUL-233: legacy camelCase spellings `create_persona` still accepts. */
|
|
84
107
|
export const CREATE_PERSONA_ALIASES = {
|
|
85
108
|
projectId: 'project_id',
|
|
@@ -188,8 +211,10 @@ function requireId(value, canonical, alias) {
|
|
|
188
211
|
}
|
|
189
212
|
/**
|
|
190
213
|
* Shared non-ok handling: 401 drops the cached session (so the next tool call
|
|
191
|
-
* rebuilds from disk) and surfaces a re-auth message; 403 `PERSONA_LOCKED`
|
|
192
|
-
*
|
|
214
|
+
* rebuilds from disk) and surfaces a re-auth message; 403 `PERSONA_LOCKED` and
|
|
215
|
+
* `PROJECT_LOCKED` each surface an upgrade message naming the object that is
|
|
216
|
+
* actually locked (the project wording also covers create, where no persona
|
|
217
|
+
* exists to "edit"); 404 means
|
|
193
218
|
* the caller does not own the target (the default message points at the project;
|
|
194
219
|
* pass `notFound` for a persona-scoped 404); 400 surfaces the server's
|
|
195
220
|
* validation detail; everything else surfaces a generic HTTP error.
|
|
@@ -212,8 +237,14 @@ async function throwForResponse(response, deps, action, options) {
|
|
|
212
237
|
catch {
|
|
213
238
|
// non-JSON body — fall back to the truncated raw text below.
|
|
214
239
|
}
|
|
215
|
-
if (response.status === 403 &&
|
|
216
|
-
|
|
240
|
+
if (response.status === 403 &&
|
|
241
|
+
(parsed?.code === 'PERSONA_LOCKED' || parsed?.code === 'PROJECT_LOCKED')) {
|
|
242
|
+
// Name the object that is actually locked. PROJECT_LOCKED can reach a
|
|
243
|
+
// CREATE call, where "edit it" describes a persona that was never created
|
|
244
|
+
// and sends the agent looking for a row that does not exist.
|
|
245
|
+
throw new PersonaToolError(parsed.code === 'PROJECT_LOCKED'
|
|
246
|
+
? `Could not ${action} — the project is locked due to subscription limits and is read-only. Upgrade to Pro to change it.`
|
|
247
|
+
: `Could not ${action} — it is locked due to subscription limits. Upgrade to Pro to edit it.`);
|
|
217
248
|
}
|
|
218
249
|
if (response.status === 404) {
|
|
219
250
|
throw new PersonaToolError(options?.notFound ??
|
|
@@ -484,15 +515,17 @@ export async function generatePersona(input, deps) {
|
|
|
484
515
|
const insightsNote = ephemeral
|
|
485
516
|
? ' Marked ephemeral — excluded from project insights.'
|
|
486
517
|
: '';
|
|
487
|
-
// FUL-96:
|
|
488
|
-
//
|
|
489
|
-
//
|
|
490
|
-
const sources = Array.isArray(persona.sources) ? persona.sources :
|
|
518
|
+
// FUL-96/FUL-425: only a successfully returned array can answer grounding.
|
|
519
|
+
// An absent field can be transport skew or a failed/not-loaded read, so it is
|
|
520
|
+
// UNKNOWN rather than an invented count of zero.
|
|
521
|
+
const sources = Array.isArray(persona.sources) ? persona.sources : undefined;
|
|
491
522
|
const groundingNote = groundInEvidence === false
|
|
492
523
|
? ' Grounding was disabled.'
|
|
493
|
-
: sources
|
|
494
|
-
?
|
|
495
|
-
:
|
|
524
|
+
: sources === undefined
|
|
525
|
+
? ' Grounding is unknown because the source receipts were not returned.'
|
|
526
|
+
: sources.length > 0
|
|
527
|
+
? ` Grounded in ${sources.length} real source${sources.length === 1 ? '' : 's'} (user voice from forums + Stack Exchange).`
|
|
528
|
+
: ' No matching real-world evidence was found, so it was generated from the brief.';
|
|
496
529
|
// FUL-243: render the GENERATED profile, not just a confirmation line. This
|
|
497
530
|
// tool's whole output is content the caller did not supply — the model wrote
|
|
498
531
|
// the background, company, industry, size and location — so a one-line receipt
|
|
@@ -702,13 +735,17 @@ export async function enrichPersona(input, deps) {
|
|
|
702
735
|
// are read-only over the existing bearer endpoints — zero credit cost, zero side
|
|
703
736
|
// effects — mirroring `list_reports`/`get_report`.
|
|
704
737
|
//
|
|
705
|
-
// NOTE: this is the entity-discovery surface, NOT the grounding surface —
|
|
706
|
-
//
|
|
707
|
-
// tools return FLAT `persona.seniority` /
|
|
708
|
-
//
|
|
709
|
-
//
|
|
710
|
-
//
|
|
711
|
-
//
|
|
738
|
+
// NOTE: this is the entity-discovery surface, NOT the grounding surface — and
|
|
739
|
+
// since FUL-540 there is no exception to that. FUL-208: `toPersona` maps the M5b
|
|
740
|
+
// identity columns, so both tools return FLAT `persona.seniority` /
|
|
741
|
+
// `persona.careerPath` strings when the row has them (absent otherwise; written
|
|
742
|
+
// through `update_persona_identity_priors`, not `update_persona`). Those were
|
|
743
|
+
// research-only when FUL-208 shipped; FUL-488 made them web-editable and FUL-545
|
|
744
|
+
// made them agent-writable, and nothing on the entity records which of the three
|
|
745
|
+
// a given value is, so they are profile data here like every other field. Forum grounding (`sources[]`), the report-level `identityProvenance`,
|
|
746
|
+
// and the run's own un-editable copy of the priors are all `report_data.personas[]`
|
|
747
|
+
// only, read via `get_report` — and the shape differs there: the same two leaf
|
|
748
|
+
// names are NESTED under `identityPriors`.
|
|
712
749
|
const LIST_LIMIT_MAX = 100;
|
|
713
750
|
const LIST_LIMIT_DEFAULT = 20;
|
|
714
751
|
export const ListPersonasInputSchema = z.object({
|
|
@@ -747,9 +784,14 @@ export const GetPersonaInputSchema = z.object({
|
|
|
747
784
|
'the id printed by `create_persona` / `generate_persona`. Rejected with a ' +
|
|
748
785
|
'404 if you do not own it. ' +
|
|
749
786
|
'Returns the persona ENTITY (name, role, company, industry, etc.) for ' +
|
|
750
|
-
'discovery/correction, including
|
|
751
|
-
'
|
|
752
|
-
'
|
|
787
|
+
'discovery/correction, including `seniority` / `careerPath` when the persona ' +
|
|
788
|
+
'has them. Those two are user-editable in the web app and writable through ' +
|
|
789
|
+
'`update_persona_identity_priors`, and this response does NOT record whether a ' +
|
|
790
|
+
'given value came from a research run, from an agent, or from a person typing ' +
|
|
791
|
+
'it — so do not read them as ' +
|
|
792
|
+
'a research signal. The run-written copy, where a run produced one, is at ' +
|
|
793
|
+
'`report_data.personas[].identityPriors`; forum sources and `identityProvenance` ' +
|
|
794
|
+
'live there too. Read all three via `get_report`.'),
|
|
753
795
|
});
|
|
754
796
|
/**
|
|
755
797
|
* Render a persona's FULL profile into readable text (FUL-243).
|
|
@@ -774,11 +816,17 @@ export const GetPersonaInputSchema = z.object({
|
|
|
774
816
|
* class this change exists to fix. (FUL-242 removes the field outright.)
|
|
775
817
|
*
|
|
776
818
|
* The closing caveat mirrors `list_competitors`: it makes a reader UNDER-trust
|
|
777
|
-
* the record.
|
|
778
|
-
* `seniority` / `careerPath`
|
|
779
|
-
*
|
|
780
|
-
*
|
|
781
|
-
*
|
|
819
|
+
* the record. NOTHING here is evidence. FUL-208 carved out one exception —
|
|
820
|
+
* `seniority` / `careerPath` were research output, so the caveat named them as
|
|
821
|
+
* grounding that merely could not be cited. FUL-540 removes that carve-out:
|
|
822
|
+
* FUL-488 made both web-editable, so a rendered value may be a person's typing,
|
|
823
|
+
* and FUL-545 added a third origin by making both writable over this server —
|
|
824
|
+
* the entity carries no marker for any of them (see `interface Persona` for why
|
|
825
|
+
* `authorship` cannot stand in). The caveat now says that outright rather than
|
|
826
|
+
* going silent on it — an agent that is told nothing will fall back on the
|
|
827
|
+
* fields' research-sounding names, which is the same wrong conclusion the old
|
|
828
|
+
* text produced. It points at `report_data.personas[].identityPriors` for the
|
|
829
|
+
* value that IS run-written, as everything else on `report_data` already was.
|
|
782
830
|
*/
|
|
783
831
|
export function renderPersonaProfile(persona, fallbackId) {
|
|
784
832
|
// FUL-263: every entity value below now goes through `safeInline`. This renderer
|
|
@@ -834,10 +882,24 @@ export function renderPersonaProfile(persona, fallbackId) {
|
|
|
834
882
|
// genuinely different answers to "can I edit this?" — and an agent that assumes
|
|
835
883
|
// editable will meet a 403 from `update_persona`.
|
|
836
884
|
const provenance = safeInline(persona.source, 60);
|
|
885
|
+
const authorship = persona.authorship === 'manual' ||
|
|
886
|
+
persona.authorship === 'ai_generated' ||
|
|
887
|
+
persona.authorship === 'unknown'
|
|
888
|
+
? persona.authorship
|
|
889
|
+
: 'unknown';
|
|
837
890
|
const enhancementStatus = safeInline(persona.enhancementStatus, 60);
|
|
838
891
|
const validationJobId = safeId(persona.validationJobId);
|
|
839
892
|
const stateBits = [
|
|
840
893
|
provenance && `Source: ${provenance}`,
|
|
894
|
+
// Authorship answers a DIFFERENT question from `Source` (which channel the
|
|
895
|
+
// write came from) and from grounding (the real `persona_sources` count).
|
|
896
|
+
// Spell each value out: a bare `unknown` reads as a missing field rather
|
|
897
|
+
// than as the positive statement that authorship was never established.
|
|
898
|
+
authorship === 'manual'
|
|
899
|
+
? 'Authorship: manual — a person wrote this profile'
|
|
900
|
+
: authorship === 'ai_generated'
|
|
901
|
+
? 'Authorship: ai_generated — AI-created synthetic persona, not a real person'
|
|
902
|
+
: 'Authorship: unknown — authorship was never established; this is NOT a claim that it is either human-written or AI-generated',
|
|
841
903
|
enhancementStatus && `Enhancement: ${enhancementStatus}`,
|
|
842
904
|
persona.isLocked === true
|
|
843
905
|
? 'LOCKED — read-only (subscription limit); `update_persona` and `enrich_persona` will be refused'
|
|
@@ -849,10 +911,14 @@ export function renderPersonaProfile(persona, fallbackId) {
|
|
|
849
911
|
if (stateBits.length > 0)
|
|
850
912
|
lines.push(stateBits.join(' · '));
|
|
851
913
|
// FUL-208 identity priors, rendered as their OWN line rather than folded into
|
|
852
|
-
// the attributes above.
|
|
853
|
-
//
|
|
854
|
-
//
|
|
855
|
-
//
|
|
914
|
+
// the attributes above. ⚠️ NOT because they are better-sourced — FUL-540: since
|
|
915
|
+
// FUL-488 a value here may equally be one the user typed, and since FUL-545 one
|
|
916
|
+
// an agent wrote through `update_persona_identity_priors`. This comment used
|
|
917
|
+
// to call them "agent-written", which the closing caveat now contradicts in the
|
|
918
|
+
// same function. They keep their own line because a run-derived one is
|
|
919
|
+
// calibrated against an aggregate people distribution rather than observed, so
|
|
920
|
+
// the caveat has to qualify these two by name; folding them in beside
|
|
921
|
+
// `industry`/`location` would leave it nothing to point at.
|
|
856
922
|
// Rendered here — not left to `_meta` — because `_meta` is the channel Claude
|
|
857
923
|
// Code drops, which is the whole reason this renderer exists.
|
|
858
924
|
const seniority = safeInline(persona.seniority, 80);
|
|
@@ -946,11 +1012,17 @@ export function renderPersonaProfile(persona, fallbackId) {
|
|
|
946
1012
|
: 'Forum receipts (`sources[]`) and `identityProvenance` are NOT returned by this read — ' +
|
|
947
1013
|
'their absence here means "not returned", never "this persona is ungrounded". They live ' +
|
|
948
1014
|
'on `report_data.personas[]`; read them with `get_report`.';
|
|
949
|
-
lines.push('\nTRUST: this is the persona ENTITY
|
|
950
|
-
'
|
|
951
|
-
'
|
|
952
|
-
`
|
|
953
|
-
'
|
|
1015
|
+
lines.push('\nTRUST: this is the persona ENTITY, and no field above is evidence. Seniority and career ' +
|
|
1016
|
+
'path are NOT an exception: a value there may have come from a research run, from the ' +
|
|
1017
|
+
'user editing this persona in the web app, or from an agent calling ' +
|
|
1018
|
+
'`update_persona_identity_priors`, and this response does not record which — so ' +
|
|
1019
|
+
'do not treat them as a research signal or cite them as evidence. Even the run-written ' +
|
|
1020
|
+
'ones are aggregate-calibrated, never span-receipted, so there is no source to follow for ' +
|
|
1021
|
+
'them either. To read what a run actually produced, use `get_report`: where a run produced ' +
|
|
1022
|
+
'any, ' +
|
|
1023
|
+
`\`report_data.personas[].identityPriors\` holds them, written by the run and out of reach of editing. ${receiptsClause} ` +
|
|
1024
|
+
'Treat every other field above as unverified profile data until checked there; an absent ' +
|
|
1025
|
+
'field here means "not returned", not "empty".');
|
|
954
1026
|
return lines.join('\n');
|
|
955
1027
|
}
|
|
956
1028
|
export async function listPersonas(input, deps) {
|
|
@@ -1061,8 +1133,18 @@ export async function getPersona(input, deps) {
|
|
|
1061
1133
|
// Wraps the shipped `PATCH /api/personas/[personaId]` (explicit patch, bearer,
|
|
1062
1134
|
// FREE/unmetered) — NOT `ai-enrich` (which is AI-filled + debits a credit). This
|
|
1063
1135
|
// completes the read → correct → interview loop for a web-created persona without
|
|
1064
|
-
// leaving for the web UI. Identity priors (seniority/careerPath) are
|
|
1065
|
-
//
|
|
1136
|
+
// leaving for the web UI. Identity priors (seniority/careerPath) are not among
|
|
1137
|
+
// this tool's fields: `UpdatePersonaInputSchema` below declares neither, and the
|
|
1138
|
+
// REST patch route it wraps (`app/api/personas/[personaId]/route.ts`) validates
|
|
1139
|
+
// against a seven-key schema with no `.passthrough()`, so a smuggled key is
|
|
1140
|
+
// dropped before it reaches SQL. (FUL-246's `?: never` brand is the APP-side
|
|
1141
|
+
// counterpart, on `DetailedPersonaInput` / `updatePersona` in
|
|
1142
|
+
// `app/lib/types/data-types.ts` and `app/lib/db/supabase-db.ts` — not on
|
|
1143
|
+
// anything in this package.)
|
|
1144
|
+
// ⚠️ All of that is about WHICH TOOL patches them, not about the values:
|
|
1145
|
+
// FUL-488 made both web-editable and FUL-545 gave this server
|
|
1146
|
+
// `update_persona_identity_priors`, so "not patchable here" must never be
|
|
1147
|
+
// relayed to an agent as "immutable" or "research-derived" (FUL-540).
|
|
1066
1148
|
//
|
|
1067
1149
|
// The "at least one field required" rule is enforced in the handler (not via a
|
|
1068
1150
|
// Zod `.refine()`) so the schema stays a plain `ZodObject` — the registry type
|
|
@@ -1204,4 +1286,150 @@ export async function updatePersona(input, deps) {
|
|
|
1204
1286
|
_meta: { persona, updated: updatedFields },
|
|
1205
1287
|
};
|
|
1206
1288
|
}
|
|
1289
|
+
// ---------------------------------------------------------------------------
|
|
1290
|
+
// update_persona_identity_priors (FUL-545) — the edit a human already had
|
|
1291
|
+
// ---------------------------------------------------------------------------
|
|
1292
|
+
//
|
|
1293
|
+
// FUL-488 made `seniority` / `careerPath` editable inline on the web persona
|
|
1294
|
+
// profile. `update_persona` could not write them, so an agent could not make a
|
|
1295
|
+
// change a person sitting in the browser could. This tool closes that.
|
|
1296
|
+
//
|
|
1297
|
+
// A SEPARATE TOOL, NOT TWO MORE KEYS ON `update_persona`. Those columns are
|
|
1298
|
+
// written only by NAMED writers on every path: the REST patch next door
|
|
1299
|
+
// validates against a seven-key schema with no `.passthrough()`, and the app
|
|
1300
|
+
// brands `seniority?: never` / `careerPath?: never` on its general-purpose write
|
|
1301
|
+
// types because `Omit` alone only catches excess properties on object LITERALS —
|
|
1302
|
+
// a widened write type would silently DISCARD these fields rather than refuse
|
|
1303
|
+
// them. Widening either to close this gap would retire the mechanism, so the
|
|
1304
|
+
// sanctioned shape is a narrow named writer, which is what the web path already
|
|
1305
|
+
// uses (`updatePersonaProfileScalars`).
|
|
1306
|
+
//
|
|
1307
|
+
// ⚠️ THIS TOOL IS ITSELF A NEW ORIGIN FOR THESE VALUES, and nothing records it.
|
|
1308
|
+
// Before FUL-545 a populated column was a research run's output or a person's
|
|
1309
|
+
// typing; now it can also be an agent's write, and the row cannot tell the three
|
|
1310
|
+
// apart (see `interface Persona` for why `personas.authorship` cannot stand in).
|
|
1311
|
+
// Every advert around these fields has to state that rather than imply a
|
|
1312
|
+
// provenance the response cannot supply.
|
|
1313
|
+
//
|
|
1314
|
+
// UNGATED, deliberately. `enrich_persona` writes priors only when both columns
|
|
1315
|
+
// are blank, so a weaker background INFERENCE cannot clobber a run-derived
|
|
1316
|
+
// value. A caller naming these fields here is making a deliberate edit, not
|
|
1317
|
+
// colliding — the same distinction the web profile writer records.
|
|
1318
|
+
//
|
|
1319
|
+
// "At least one field required" is enforced in the handler, not via a Zod
|
|
1320
|
+
// `.refine()`, so the schema stays a plain `ZodObject` (the registry type and
|
|
1321
|
+
// `schema-contract.test.ts` both read `.shape`).
|
|
1322
|
+
/**
|
|
1323
|
+
* The two fields this tool writes: snake_case PARAM name → the camelCase field
|
|
1324
|
+
* name the REST body and the persona entity both use.
|
|
1325
|
+
*/
|
|
1326
|
+
const IDENTITY_PRIOR_FIELDS = {
|
|
1327
|
+
seniority: 'seniority',
|
|
1328
|
+
career_path: 'careerPath',
|
|
1329
|
+
};
|
|
1330
|
+
/** Param names as the caller supplies them — used in caller-facing messages. */
|
|
1331
|
+
const IDENTITY_PRIOR_PARAMS = Object.keys(IDENTITY_PRIOR_FIELDS);
|
|
1332
|
+
export const UpdatePersonaIdentityPriorsInputSchema = z.object({
|
|
1333
|
+
persona_id: z
|
|
1334
|
+
.string()
|
|
1335
|
+
.uuid()
|
|
1336
|
+
.describe('UUID of the persona whose identity priors to set. Get it from a `list_personas` ' +
|
|
1337
|
+
'entry, or from the id printed by `create_persona` / `generate_persona`. Rejected ' +
|
|
1338
|
+
'with a 404 if you do not own it.'),
|
|
1339
|
+
// No `.min(1)`: an empty string CLEARS the column, which is the same edit a
|
|
1340
|
+
// person makes by emptying the field on the web persona profile.
|
|
1341
|
+
seniority: z
|
|
1342
|
+
.string()
|
|
1343
|
+
.max(SENIORITY_MAX, `seniority too long (max ${SENIORITY_MAX} chars)`)
|
|
1344
|
+
.optional()
|
|
1345
|
+
.describe('New seniority RUNG — a level of responsibility ("senior IC", "team lead"), not a ' +
|
|
1346
|
+
'job title. Pass an empty string to clear it. This field is user-editable in the ' +
|
|
1347
|
+
'web app as well as writable here, and nothing records which origin a stored value ' +
|
|
1348
|
+
'has, so writing it does not make it grounding.'),
|
|
1349
|
+
career_path: z
|
|
1350
|
+
.string()
|
|
1351
|
+
.max(CAREER_PATH_MAX, `career_path too long (max ${CAREER_PATH_MAX} chars)`)
|
|
1352
|
+
.optional()
|
|
1353
|
+
.describe('New career path / trajectory, e.g. "support → product ops → PM". Pass an empty ' +
|
|
1354
|
+
'string to clear it. This field is user-editable in the web app as well as writable ' +
|
|
1355
|
+
'here, and nothing records which origin a stored value has, so writing it does not ' +
|
|
1356
|
+
'make it grounding.'),
|
|
1357
|
+
});
|
|
1358
|
+
export async function updatePersonaIdentityPriors(input, deps) {
|
|
1359
|
+
const parsed = UpdatePersonaIdentityPriorsInputSchema.safeParse(input);
|
|
1360
|
+
if (!parsed.success) {
|
|
1361
|
+
throw new PersonaToolError(`Invalid input — ${formatZodError(parsed.error)}`);
|
|
1362
|
+
}
|
|
1363
|
+
const { persona_id: personaId, ...rest } = parsed.data;
|
|
1364
|
+
const body = {};
|
|
1365
|
+
for (const param of IDENTITY_PRIOR_PARAMS) {
|
|
1366
|
+
const value = rest[param];
|
|
1367
|
+
if (value !== undefined)
|
|
1368
|
+
body[IDENTITY_PRIOR_FIELDS[param]] = value;
|
|
1369
|
+
}
|
|
1370
|
+
if (Object.keys(body).length === 0) {
|
|
1371
|
+
throw new PersonaToolError('Invalid input — provide at least one field to set ' +
|
|
1372
|
+
`(one of: ${IDENTITY_PRIOR_PARAMS.join(', ')}).`);
|
|
1373
|
+
}
|
|
1374
|
+
const ctx = makeCtx(deps);
|
|
1375
|
+
let response;
|
|
1376
|
+
try {
|
|
1377
|
+
response = await apiCall(ctx, 'PATCH', `/api/personas/${personaId}/identity-priors`, {
|
|
1378
|
+
body,
|
|
1379
|
+
timeoutMs: PERSONAS_FETCH_TIMEOUT_MS,
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
catch (err) {
|
|
1383
|
+
const e = err;
|
|
1384
|
+
if (e.name === 'AbortError' || e.name === 'TimeoutError') {
|
|
1385
|
+
throw new PersonaToolError(`Setting the identity priors timed out after ${PERSONAS_FETCH_TIMEOUT_MS / 1000}s. ` +
|
|
1386
|
+
'They may or may not have been applied — call get_persona to check before retrying.');
|
|
1387
|
+
}
|
|
1388
|
+
throw err;
|
|
1389
|
+
}
|
|
1390
|
+
if (!response.ok) {
|
|
1391
|
+
await throwForResponse(response, deps, 'update persona identity priors', {
|
|
1392
|
+
notFound: 'Could not set identity priors — persona not found, or you don\'t own it. ' +
|
|
1393
|
+
'Confirm the persona_id (e.g. from list_personas).',
|
|
1394
|
+
});
|
|
1395
|
+
}
|
|
1396
|
+
const json = (await response.json().catch(() => null));
|
|
1397
|
+
const persona = json?.persona;
|
|
1398
|
+
if (!persona?.id) {
|
|
1399
|
+
throw new PersonaToolError('Identity-prior update returned no persona; the operation may not have succeeded.');
|
|
1400
|
+
}
|
|
1401
|
+
// FUL-263/279: `name` and `id` come from the PATCH response, not the caller,
|
|
1402
|
+
// so both carry the line-forgery surface. `id` degrades to this tool's own
|
|
1403
|
+
// validated-uuid input rather than failing — a retry re-applies the same
|
|
1404
|
+
// patch instead of minting a second row. `setFields` is built from this file's
|
|
1405
|
+
// own constants, so no endpoint text reaches it.
|
|
1406
|
+
const setFields = IDENTITY_PRIOR_PARAMS.filter((param) => rest[param] !== undefined);
|
|
1407
|
+
// Trim before deciding "cleared" — the SERVER trims (`setPersonaIdentityPriorsRecord`
|
|
1408
|
+
// does `.trim() || null`, mirroring the promote RPC's `NULLIF`), so `" "` stores
|
|
1409
|
+
// NULL exactly as `""` does. Testing the raw input instead would report a
|
|
1410
|
+
// whitespace-only patch under "Set ... - seniority" with no `Cleared:` clause:
|
|
1411
|
+
// the tool telling an agent it set a value the row does not have.
|
|
1412
|
+
const cleared = setFields.filter((param) => rest[param]?.trim() === '');
|
|
1413
|
+
const id = safeId(persona.id) ?? personaId;
|
|
1414
|
+
// The confirmation states the ORIGIN of what it just wrote. An agent that
|
|
1415
|
+
// reads these values back later cannot tell an agent write from a research
|
|
1416
|
+
// run's output or a person's typing — the row records no such thing — so the
|
|
1417
|
+
// one moment the distinction is knowable is here, when the write happens.
|
|
1418
|
+
const originNote = 'These two are user-editable in the web app and writable here, and nothing records which ' +
|
|
1419
|
+
'origin a stored value has — so a later read of them is not a research signal. What a run ' +
|
|
1420
|
+
'produced stays at `report_data.personas[].identityPriors` (via `get_report`), which this ' +
|
|
1421
|
+
'write does not touch.';
|
|
1422
|
+
const clearedNote = cleared.length > 0 ? ` Cleared: ${cleared.join(', ')}.` : '';
|
|
1423
|
+
return {
|
|
1424
|
+
content: [
|
|
1425
|
+
{
|
|
1426
|
+
type: 'text',
|
|
1427
|
+
text: `Set identity priors on persona "${safeInline(persona.name, 100) ?? personaId}" ` +
|
|
1428
|
+
`(id: ${id}) — ${setFields.join(', ')}.${clearedNote} ` +
|
|
1429
|
+
`No credit charged (explicit edit). ${originNote}`,
|
|
1430
|
+
},
|
|
1431
|
+
],
|
|
1432
|
+
_meta: { persona, updated: setFields },
|
|
1433
|
+
};
|
|
1434
|
+
}
|
|
1207
1435
|
//# sourceMappingURL=personas.js.map
|