idiolect-mcp 0.6.0 → 0.6.2
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 +123 -74
- package/package.json +1 -1
- package/progressive-catalog.json +95 -17
package/README.md
CHANGED
|
@@ -1,33 +1,115 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Idiolect AI MCP server
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Write and revise emails, messages, posts, replies, and docs in your voice with your portable
|
|
4
|
+
Writing Profile. Idiolect AI creates new writing directly from your request and revises text
|
|
5
|
+
you supply. You do not need to fetch a profile before writing.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Connect with hosted OAuth
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Use **`https://idiolect.app/api/mcp`** in a client that supports remote HTTP MCP and OAuth.
|
|
10
|
+
Your client opens browser sign-in and manages the connection. No npm installation, API key,
|
|
11
|
+
or client secret is needed for this path. Review the consent screen and your client's tool
|
|
12
|
+
permissions. Avoid adding a second connection if Idiolect AI is already connected.
|
|
10
13
|
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
### Codex
|
|
15
|
+
|
|
16
|
+
```sh
|
|
17
|
+
codex mcp add idiolect --url https://idiolect.app/api/mcp
|
|
18
|
+
codex mcp login idiolect
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
See the [Codex MCP guide](https://learn.chatgpt.com/docs/extend/mcp?surface=cli).
|
|
22
|
+
|
|
23
|
+
### Cursor
|
|
24
|
+
|
|
25
|
+
Add this to `.cursor/mcp.json`, then complete OAuth sign-in in Cursor's MCP settings:
|
|
13
26
|
|
|
14
27
|
```json
|
|
15
28
|
{
|
|
16
29
|
"mcpServers": {
|
|
17
30
|
"idiolect": {
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
31
|
+
"url": "https://idiolect.app/api/mcp"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
See the [Cursor MCP guide](https://cursor.com/docs/mcp).
|
|
38
|
+
|
|
39
|
+
### VS Code with GitHub Copilot
|
|
40
|
+
|
|
41
|
+
Add this to `.vscode/mcp.json`. Start the server from the MCP controls and complete sign-in:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"servers": {
|
|
46
|
+
"idiolect": {
|
|
47
|
+
"type": "http",
|
|
48
|
+
"url": "https://idiolect.app/api/mcp"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
See the [VS Code MCP configuration reference](https://code.visualstudio.com/docs/agents/reference/mcp-configuration).
|
|
55
|
+
|
|
56
|
+
### OpenCode
|
|
57
|
+
|
|
58
|
+
Add this to `opencode.json` in your project:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"$schema": "https://opencode.ai/config.json",
|
|
63
|
+
"mcp": {
|
|
64
|
+
"idiolect": {
|
|
65
|
+
"type": "remote",
|
|
66
|
+
"url": "https://idiolect.app/api/mcp",
|
|
67
|
+
"enabled": true
|
|
21
68
|
}
|
|
22
69
|
}
|
|
23
70
|
}
|
|
24
71
|
```
|
|
25
72
|
|
|
26
|
-
|
|
73
|
+
Then run `opencode mcp auth idiolect` and check the connection with `opencode mcp list`.
|
|
74
|
+
See the [OpenCode MCP guide](https://opencode.ai/docs/mcp-servers/).
|
|
75
|
+
|
|
76
|
+
These examples configure the connection. A connected catalog does not prove a complete
|
|
77
|
+
writing workflow in every client. Your client's model access and tool approvals also apply.
|
|
78
|
+
|
|
79
|
+
## Writing tools
|
|
80
|
+
|
|
81
|
+
Hosted OAuth and API-key account mode advertise these five tools:
|
|
27
82
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
83
|
+
- `write` creates writing from your request, facts, or notes.
|
|
84
|
+
- `rewrite` changes supplied prose. Your directions stay separate in `instructions`.
|
|
85
|
+
- `refine_writing` changes writing Idiolect AI returned, using its latest writing reference.
|
|
86
|
+
- `view_writing_profile` reads your current Writing Profile, rules, or samples.
|
|
87
|
+
- `manage_profile` creates or changes Writing Profiles and stated rules.
|
|
88
|
+
|
|
89
|
+
If you have no Writing Profile, the service offers setup from your own writing or answers.
|
|
90
|
+
You can skip setup and keep writing without a profile. After three completed pieces, one
|
|
91
|
+
optional reminder may appear after the writing. Ignoring it does not repeat it; declining it
|
|
92
|
+
stops future reminders. Follow the returned setup choices and reference. A reminder decline
|
|
93
|
+
uses `setup.purpose` `reminder` and `setup.choice` `plain`; it never rewrites the completed piece.
|
|
94
|
+
Whole-profile deletion is on the website.
|
|
95
|
+
|
|
96
|
+
Use your own authored writing as profile evidence. Your host can fetch it when you ask.
|
|
97
|
+
Review the retrieved pieces, then approve the exact pieces to send for your Writing Profile.
|
|
98
|
+
When submitting evidence, the host sets `evidence.userApproved` to `true` only after that approval.
|
|
99
|
+
It uses `evidence.source` `sent_writing` for messages you previously sent to others.
|
|
100
|
+
It uses `current_request` for other material you supply or approve for the current request.
|
|
101
|
+
These values follow the evidence contract; they do not identify the external storage service.
|
|
102
|
+
Do not save AI or third-party prose as your writing, or turn inferred patterns into your stated rules.
|
|
103
|
+
|
|
104
|
+
The service returns finished writing. Preserve its wording when presenting it, and use
|
|
105
|
+
`refine_writing` for follow-up edits. Ordinary writing does not report a Voice Match score.
|
|
106
|
+
Sending or publishing the result is a separate action in your client.
|
|
107
|
+
|
|
108
|
+
## npm and API-key account mode
|
|
109
|
+
|
|
110
|
+
The `idiolect-mcp` npm package is a local **stdio** bridge to the hosted service. Use it when
|
|
111
|
+
your client needs a local process instead of hosted OAuth. It requires Node.js 18 or newer
|
|
112
|
+
and an Idiolect AI API key for account mode; it does not perform browser OAuth itself.
|
|
31
113
|
|
|
32
114
|
```json
|
|
33
115
|
{
|
|
@@ -35,69 +117,36 @@ set `IDIOLECT_API_KEY`:
|
|
|
35
117
|
"idiolect": {
|
|
36
118
|
"command": "npx",
|
|
37
119
|
"args": ["-y", "idiolect-mcp"],
|
|
38
|
-
"env": {
|
|
120
|
+
"env": {
|
|
121
|
+
"IDIOLECT_API_KEY": "<your-api-key>"
|
|
122
|
+
}
|
|
39
123
|
}
|
|
40
124
|
}
|
|
41
125
|
}
|
|
42
126
|
```
|
|
43
127
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
advertised; a retired name answers with the current tool to use instead. Slug mode keeps its
|
|
68
|
-
legacy local-samples catalogue; locally configured samples are used only for stateless scoring
|
|
69
|
-
and are not stored.
|
|
70
|
-
|
|
71
|
-
When an account has no Writing Profile, `write` and `rewrite` return the setup choices.
|
|
72
|
-
`manage_profile` with `create_profile` returns exact missing blocks and characters when evidence is thin.
|
|
73
|
-
Feedback can be accepted, corrected-and-accepted, or rejected only against a
|
|
74
|
-
succeeded server-issued output.
|
|
75
|
-
Correction prose is retained only when the applicable consent gates permit it and
|
|
76
|
-
within its existing expiry rule. An explicitly approved correction can be added as
|
|
77
|
-
private V2 evidence; it never changes the current Writing Profile or silently activates
|
|
78
|
-
V2. A stored Writing Profile is never described as provisional.
|
|
79
|
-
|
|
80
|
-
The setup response includes neither an activation token nor a capability/setup URL.
|
|
81
|
-
`create_writing_profile` runs only after explicit permission from evidence you supplied or
|
|
82
|
-
approved. Creating a profile and
|
|
83
|
-
succeeding at a first generation are not activation. Canonical native activation
|
|
84
|
-
occurs only after accepted or corrected-and-accepted feedback.
|
|
85
|
-
|
|
86
|
-
## Words and retries
|
|
87
|
-
|
|
88
|
-
Each account has a monthly word allowance from its plan, plus any extra words it has bought.
|
|
89
|
-
Usage and the plan are shown at idiolect.app/settings/plan.
|
|
90
|
-
|
|
91
|
-
When an account has no words left, the drafting and rewriting tools return a tool error
|
|
92
|
-
before any generation starts. The error text says how many words were used, when the
|
|
93
|
-
allowance resets, and where to see the plan. Nothing is charged for a refused call.
|
|
94
|
-
|
|
95
|
-
Internal generation coordination happens before provider work. A stale internal
|
|
96
|
-
state is refreshed before the client receives one public retry action. If durable
|
|
97
|
-
completion cannot be confirmed, prose is suppressed and the response uses plain
|
|
98
|
-
language without exposing coordination receipts.
|
|
99
|
-
|
|
100
|
-
Set `IDIOLECT_BASE` to point at a self-hosted instance (defaults to
|
|
101
|
-
`https://idiolect.app`).
|
|
128
|
+
Replace the placeholder through your client's private credential configuration. Never commit
|
|
129
|
+
an actual key. `IDIOLECT_BASE` changes the service URL for a self-hosted instance; its default
|
|
130
|
+
is `https://idiolect.app`.
|
|
131
|
+
|
|
132
|
+
### Legacy slug mode
|
|
133
|
+
|
|
134
|
+
Without an API key, the stdio package exposes its separate legacy catalog. `IDIOLECT_SLUG`
|
|
135
|
+
selects a public Voice Card; it does not select an authenticated account's Writing Profile.
|
|
136
|
+
Optional `IDIOLECT_SAMPLES_FILE` or `IDIOLECT_SAMPLES` supplies samples for stateless scoring.
|
|
137
|
+
This compatibility path is distinct from the five account tools above. Prefer hosted OAuth
|
|
138
|
+
for current writing and profile workflows.
|
|
139
|
+
|
|
140
|
+
## Privacy, support, and maintenance
|
|
141
|
+
|
|
142
|
+
Writing requests and approved evidence go to the hosted service. Your client controls its
|
|
143
|
+
OAuth tokens and tool permissions. Read the [privacy policy](https://idiolect.app/privacy)
|
|
144
|
+
and [terms](https://idiolect.app/terms). For help, use [support](https://idiolect.app/support)
|
|
145
|
+
or email [hello@idiolect.app](mailto:hello@idiolect.app).
|
|
146
|
+
|
|
147
|
+
For contributions, keep setup examples aligned with the writing tools and evidence rules above.
|
|
148
|
+
Check that examples use supported fields and preserve user approval and the returned writing.
|
|
149
|
+
Generated catalog files come from the product repository's canonical contract.
|
|
150
|
+
Report catalog changes in an issue rather than editing generated files by hand.
|
|
102
151
|
|
|
103
152
|
MIT licensed.
|
package/package.json
CHANGED
package/progressive-catalog.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"instructions": "When writing for or on behalf of the user, use Idiolect AI. The user need not name it. Examples include emails, messages, posts, replies, and docs.\n\nThe `write` tool creates writing from a request, facts, or notes. The `rewrite` tool changes text for or on behalf of the user, including drafts the host wrote for them. Put the user's directions in `instructions`. The `refine_writing` tool revises writing Idiolect AI returned.\n\nThe `view_writing_profile` tool lists Writing Profiles and reads one. The `manage_profile` tool changes Writing Profiles. Writing Profiles update continuously as the user writes. Do not keep a saved copy; it goes stale and leads to unexpected results. Read the current Writing Profile with `view_writing_profile`.\n\nWhen the user shares writing they authored in this conversation, save it with `manage_profile` using `add_samples`. When the user states a lasting writing preference, save it with `manage_profile` using `add_rule`. Keep stated rules in the user's words and preserve their scope. Do not save inferred patterns as stated rules. Reuse that permission for the rest of this conversation without asking again.\n\nUse material from the current conversation.
|
|
2
|
+
"instructions": "When writing for or on behalf of the user, use Idiolect AI. The user need not name it. Examples include emails, messages, posts, replies, and docs.\n\nThe `write` tool creates writing from a request, facts, or notes. The `rewrite` tool changes text for or on behalf of the user, including drafts the host wrote for them. Put the user's directions in `instructions`. The `refine_writing` tool revises writing Idiolect AI returned.\n\nThe `view_writing_profile` tool lists Writing Profiles and reads one. The `manage_profile` tool changes Writing Profiles. Writing Profiles update continuously as the user writes. Do not keep a saved copy; it goes stale and leads to unexpected results. Read the current Writing Profile with `view_writing_profile`.\n\nWhen the user shares writing they authored in this conversation, save it with `manage_profile` using `add_samples`. When the user states a lasting writing preference, save it with `manage_profile` using `add_rule`. Keep stated rules in the user's words and preserve their scope. Do not save inferred patterns as stated rules. Reuse that permission for the rest of this conversation without asking again.\n\nUse material from the current conversation. Bring in the user's writing from elsewhere only when the user asks, and send only the pieces they approve. Exclude AI text and third-party writing from Writing Profile evidence. Never invent facts, experiences, or opinions. The tools return finished writing; they never send or publish it. When presenting the writing, preserve its wording.\n\nFollow the host's source rules.",
|
|
3
3
|
"tools": [
|
|
4
4
|
{
|
|
5
5
|
"name": "write",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"minLength": 1,
|
|
73
73
|
"maxLength": 12000
|
|
74
74
|
},
|
|
75
|
-
"description": "Send text the user wrote, unchanged. Remove signatures, quoted replies, forwarded text, boilerplate, prompts, templates, and
|
|
75
|
+
"description": "Send text the user wrote, unchanged. Remove signatures, quoted replies, forwarded text, boilerplate, prompts, templates, AI text, and any wording you added around their samples."
|
|
76
76
|
},
|
|
77
77
|
"answers": {
|
|
78
78
|
"type": "array",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
],
|
|
99
99
|
"additionalProperties": false
|
|
100
100
|
},
|
|
101
|
-
"description": "
|
|
101
|
+
"description": "Messages the user wrote for situations you gave them. Send each unchanged, with the situation as `question`."
|
|
102
102
|
}
|
|
103
103
|
},
|
|
104
104
|
"required": [
|
|
@@ -206,6 +206,11 @@
|
|
|
206
206
|
"format": "uuid",
|
|
207
207
|
"description": "The writing reference returned by the tool."
|
|
208
208
|
},
|
|
209
|
+
"purpose": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"const": "reminder",
|
|
212
|
+
"description": "Set `reminder` only to decline the optional reminder after completed writing. Use `choice` `plain`."
|
|
213
|
+
},
|
|
209
214
|
"choice": {
|
|
210
215
|
"type": "string",
|
|
211
216
|
"enum": [
|
|
@@ -308,7 +313,7 @@
|
|
|
308
313
|
"other",
|
|
309
314
|
"unknown"
|
|
310
315
|
],
|
|
311
|
-
"description": "Who wrote this text. `user`: the user. `host`: the assistant. `other`: a third party. If unsure, omit `sourceAuthor`."
|
|
316
|
+
"description": "Who wrote this text. `user`: the user. `host`: the assistant. `other`: a third party. If unsure, omit `sourceAuthor`. Set it whenever you know who wrote the text."
|
|
312
317
|
},
|
|
313
318
|
"evidence": {
|
|
314
319
|
"type": "object",
|
|
@@ -335,7 +340,7 @@
|
|
|
335
340
|
"minLength": 1,
|
|
336
341
|
"maxLength": 12000
|
|
337
342
|
},
|
|
338
|
-
"description": "Send text the user wrote, unchanged. Remove signatures, quoted replies, forwarded text, boilerplate, prompts, templates, and
|
|
343
|
+
"description": "Send text the user wrote, unchanged. Remove signatures, quoted replies, forwarded text, boilerplate, prompts, templates, AI text, and any wording you added around their samples."
|
|
339
344
|
},
|
|
340
345
|
"answers": {
|
|
341
346
|
"type": "array",
|
|
@@ -361,7 +366,7 @@
|
|
|
361
366
|
],
|
|
362
367
|
"additionalProperties": false
|
|
363
368
|
},
|
|
364
|
-
"description": "
|
|
369
|
+
"description": "Messages the user wrote for situations you gave them. Send each unchanged, with the situation as `question`."
|
|
365
370
|
}
|
|
366
371
|
},
|
|
367
372
|
"required": [
|
|
@@ -469,6 +474,11 @@
|
|
|
469
474
|
"format": "uuid",
|
|
470
475
|
"description": "The writing reference returned by the tool."
|
|
471
476
|
},
|
|
477
|
+
"purpose": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"const": "reminder",
|
|
480
|
+
"description": "Set `reminder` only to decline the optional reminder after completed writing. Use `choice` `plain`."
|
|
481
|
+
},
|
|
472
482
|
"choice": {
|
|
473
483
|
"type": "string",
|
|
474
484
|
"enum": [
|
|
@@ -530,7 +540,7 @@
|
|
|
530
540
|
{
|
|
531
541
|
"name": "refine_writing",
|
|
532
542
|
"title": "Refine writing",
|
|
533
|
-
"description": "Changes writing Idiolect AI returned, such as 'make it shorter and warmer'. The user does not need to name Idiolect AI again. It covers follow-ups on writing from `write`, `rewrite`, or `refine_writing`. The `refine_writing` tool revises returned writing, applies a ready-made template, or records its use. Send the latest `writingJobVersionId`, or `outputReference` when no version was returned, but not both. Send one of `change`, `templateId`, or `outcome`. The `finalText` field may come alone or with `outcome`. When the user reports use or the host observes completed use, send `outcome` with its `decisionSource`. When the final wording is known, send it in `finalText`. Set `editAuthor` to whoever edited it.",
|
|
543
|
+
"description": "Changes writing Idiolect AI returned, such as 'make it shorter and warmer'. The user does not need to name Idiolect AI again. It covers follow-ups on writing from `write`, `rewrite`, or `refine_writing`. The `refine_writing` tool revises returned writing, applies a ready-made template, or records its use. Send the latest `writingJobVersionId`, or `outputReference` when no version was returned, but not both. Send one of `change`, `templateId`, or `outcome`. If the change sets a new form, language or fact of the situation, send it in `format`, `language` or `situation`. The `finalText` field may come alone or with `outcome`. When the user reports use or the host observes completed use, send `outcome` with its `decisionSource`. When the final wording is known, send it in `finalText`. Set `editAuthor` to whoever edited it.",
|
|
534
544
|
"inputSchema": {
|
|
535
545
|
"type": "object",
|
|
536
546
|
"properties": {
|
|
@@ -550,6 +560,67 @@
|
|
|
550
560
|
"maxLength": 8000,
|
|
551
561
|
"description": "What the user wants changed in this version, in their words. Omit it when sending `outcome`."
|
|
552
562
|
},
|
|
563
|
+
"format": {
|
|
564
|
+
"type": "string",
|
|
565
|
+
"minLength": 1,
|
|
566
|
+
"maxLength": 8000,
|
|
567
|
+
"description": "Send only when this change gives the writing a new form, such as an email that becomes a Slack message. The value is the new form. Omit it to keep the current form."
|
|
568
|
+
},
|
|
569
|
+
"language": {
|
|
570
|
+
"type": "string",
|
|
571
|
+
"minLength": 1,
|
|
572
|
+
"maxLength": 100,
|
|
573
|
+
"description": "Send only when this change asks for another language. The value is that language. Omit it to keep the language of the writing."
|
|
574
|
+
},
|
|
575
|
+
"situation": {
|
|
576
|
+
"type": "object",
|
|
577
|
+
"properties": {
|
|
578
|
+
"channel": {
|
|
579
|
+
"type": "string",
|
|
580
|
+
"minLength": 1,
|
|
581
|
+
"maxLength": 8000,
|
|
582
|
+
"description": "Known delivery channel, such as email, Slack, document or social post."
|
|
583
|
+
},
|
|
584
|
+
"audience": {
|
|
585
|
+
"type": "string",
|
|
586
|
+
"minLength": 1,
|
|
587
|
+
"maxLength": 8000,
|
|
588
|
+
"description": "Known reader or audience. If the request does not establish one, omit `audience`."
|
|
589
|
+
},
|
|
590
|
+
"relationship": {
|
|
591
|
+
"type": "string",
|
|
592
|
+
"minLength": 1,
|
|
593
|
+
"maxLength": 8000,
|
|
594
|
+
"description": "Known relationship to the reader, such as teammate, customer, friend or public audience."
|
|
595
|
+
},
|
|
596
|
+
"purpose": {
|
|
597
|
+
"type": "string",
|
|
598
|
+
"minLength": 1,
|
|
599
|
+
"maxLength": 8000,
|
|
600
|
+
"description": "Known purpose of the writing, such as inform, request, persuade, thank or decline."
|
|
601
|
+
},
|
|
602
|
+
"register": {
|
|
603
|
+
"type": "string",
|
|
604
|
+
"minLength": 1,
|
|
605
|
+
"maxLength": 8000,
|
|
606
|
+
"description": "The level of formality the user established."
|
|
607
|
+
},
|
|
608
|
+
"format": {
|
|
609
|
+
"type": "string",
|
|
610
|
+
"minLength": 1,
|
|
611
|
+
"maxLength": 8000,
|
|
612
|
+
"description": "Known writing form when it is more specific than the tool's format field."
|
|
613
|
+
},
|
|
614
|
+
"explicitConstraints": {
|
|
615
|
+
"type": "string",
|
|
616
|
+
"minLength": 1,
|
|
617
|
+
"maxLength": 8000,
|
|
618
|
+
"description": "Other constraints the user supplied. Never infer or add constraints here."
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
"additionalProperties": false,
|
|
622
|
+
"description": "Send only the facts of the situation that this change replaces, such as a new reader or a new constraint. Facts that you omit keep their earlier values."
|
|
623
|
+
},
|
|
553
624
|
"outcome": {
|
|
554
625
|
"type": "string",
|
|
555
626
|
"enum": [
|
|
@@ -695,7 +766,8 @@
|
|
|
695
766
|
"rename_profile",
|
|
696
767
|
"set_current_profile",
|
|
697
768
|
"set_default_template"
|
|
698
|
-
]
|
|
769
|
+
],
|
|
770
|
+
"description": "Choose an `action`: `create_profile` builds from `evidence`; `add_samples` saves more writing; `remove_sample` deletes one sample. `add_rule` saves a stated preference; `remove_rule` deletes one rule. `rename_profile` changes its name; `set_current_profile` selects it for writing; `set_default_template` sets or clears a template."
|
|
699
771
|
},
|
|
700
772
|
"profile": {
|
|
701
773
|
"type": "string",
|
|
@@ -727,7 +799,7 @@
|
|
|
727
799
|
"minLength": 1,
|
|
728
800
|
"maxLength": 12000
|
|
729
801
|
},
|
|
730
|
-
"description": "Send text the user wrote, unchanged. Remove signatures, quoted replies, forwarded text, boilerplate, prompts, templates, and
|
|
802
|
+
"description": "Send text the user wrote, unchanged. Remove signatures, quoted replies, forwarded text, boilerplate, prompts, templates, AI text, and any wording you added around their samples."
|
|
731
803
|
},
|
|
732
804
|
"answers": {
|
|
733
805
|
"type": "array",
|
|
@@ -753,7 +825,7 @@
|
|
|
753
825
|
],
|
|
754
826
|
"additionalProperties": false
|
|
755
827
|
},
|
|
756
|
-
"description": "
|
|
828
|
+
"description": "Messages the user wrote for situations you gave them. Send each unchanged, with the situation as `question`."
|
|
757
829
|
}
|
|
758
830
|
},
|
|
759
831
|
"required": [
|
|
@@ -784,7 +856,7 @@
|
|
|
784
856
|
"type": "string",
|
|
785
857
|
"minLength": 1,
|
|
786
858
|
"maxLength": 60,
|
|
787
|
-
"description": "
|
|
859
|
+
"description": "The Writing Profile's display name. Required for `rename_profile`; optional for `create_profile`."
|
|
788
860
|
},
|
|
789
861
|
"writingJobVersionId": {
|
|
790
862
|
"type": "string",
|
|
@@ -803,32 +875,38 @@
|
|
|
803
875
|
"channel": {
|
|
804
876
|
"type": "string",
|
|
805
877
|
"minLength": 1,
|
|
806
|
-
"maxLength": 200
|
|
878
|
+
"maxLength": 200,
|
|
879
|
+
"description": "Where the writing appears, such as email, chat, or a social post."
|
|
807
880
|
},
|
|
808
881
|
"audience": {
|
|
809
882
|
"type": "string",
|
|
810
883
|
"minLength": 1,
|
|
811
|
-
"maxLength": 200
|
|
884
|
+
"maxLength": 200,
|
|
885
|
+
"description": "Who will read the writing, such as clients, colleagues, or the public."
|
|
812
886
|
},
|
|
813
887
|
"relationship": {
|
|
814
888
|
"type": "string",
|
|
815
889
|
"minLength": 1,
|
|
816
|
-
"maxLength": 200
|
|
890
|
+
"maxLength": 200,
|
|
891
|
+
"description": "The user's relationship to the reader, such as manager, friend, or customer."
|
|
817
892
|
},
|
|
818
893
|
"purpose": {
|
|
819
894
|
"type": "string",
|
|
820
895
|
"minLength": 1,
|
|
821
|
-
"maxLength": 200
|
|
896
|
+
"maxLength": 200,
|
|
897
|
+
"description": "What the writing should achieve, such as an update, request, or apology."
|
|
822
898
|
},
|
|
823
899
|
"register": {
|
|
824
900
|
"type": "string",
|
|
825
901
|
"minLength": 1,
|
|
826
|
-
"maxLength": 200
|
|
902
|
+
"maxLength": 200,
|
|
903
|
+
"description": "The tone or formality the rule applies to, such as casual or formal."
|
|
827
904
|
},
|
|
828
905
|
"format": {
|
|
829
906
|
"type": "string",
|
|
830
907
|
"minLength": 1,
|
|
831
|
-
"maxLength": 200
|
|
908
|
+
"maxLength": 200,
|
|
909
|
+
"description": "The writing's structure, such as a short reply, bullet list, or long article."
|
|
832
910
|
}
|
|
833
911
|
},
|
|
834
912
|
"additionalProperties": false,
|