@tai42/api-client 22.4.1 → 24.0.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/dist/client/conversations-client.d.ts +190 -20
- package/dist/client/conversations-client.d.ts.map +1 -1
- package/dist/client/index.d.ts +194 -24
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/states-client.d.ts +2 -2
- package/dist/client/tools-client.d.ts +2 -2
- package/dist/generated/api-routes.d.ts +12 -0
- package/dist/generated/api-routes.d.ts.map +1 -1
- package/dist/generated/api-routes.js +3 -0
- package/dist/generated/api-routes.js.map +1 -1
- package/dist/generated/openapi-schemas.d.ts +1070 -52
- package/dist/generated/openapi-schemas.d.ts.map +1 -1
- package/dist/generated/openapi-schemas.js +24 -11
- package/dist/generated/openapi-schemas.js.map +1 -1
- package/dist/generated/served-schemas.d.ts +535 -72
- package/dist/generated/served-schemas.d.ts.map +1 -1
- package/dist/generated/served-schemas.js +501 -80
- package/dist/generated/served-schemas.js.map +1 -1
- package/dist/schemas/conversations.d.ts +360 -23
- package/dist/schemas/conversations.d.ts.map +1 -1
- package/dist/schemas/conversations.js +24 -9
- package/dist/schemas/conversations.js.map +1 -1
- package/dist/schemas/interactions.d.ts +47 -9
- package/dist/schemas/interactions.d.ts.map +1 -1
- package/dist/schemas/interactions.js +28 -7
- package/dist/schemas/interactions.js.map +1 -1
- package/dist/schemas/served.d.ts +492 -70
- package/dist/schemas/served.d.ts.map +1 -1
- package/dist/schemas/states.d.ts +4 -4
- package/dist/schemas/tools.d.ts +4 -4
- package/dist/tool-runs.d.ts +2 -2
- package/package.json +1 -1
- package/src/generated/api-routes.ts +3 -0
- package/src/generated/openapi-schemas.ts +44 -11
- package/src/generated/served-schemas.ts +503 -80
- package/src/schemas/conversations.ts +24 -9
- package/src/schemas/interactions.ts +28 -7
|
@@ -15,19 +15,22 @@ export type AccessPolicy = z.infer<typeof accessPolicy>;
|
|
|
15
15
|
export const overlapPolicy = z.object({ "deliver": z.enum(["one","all"]).default("one"), "running": z.enum(["continue","cancel"]).default("continue"), "settle_seconds": z.number().int().gte(0).lte(30).default(0) });
|
|
16
16
|
export type OverlapPolicy = z.infer<typeof overlapPolicy>;
|
|
17
17
|
|
|
18
|
-
export const
|
|
18
|
+
export const replyTexts = z.object({ "error": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_code": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_code_invalid": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_link_unavailable": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_linked": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_not_linked": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_unlink_unavailable": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "pairing_unlinked": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "rejected_could_not_receive": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "rejected_too_large": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "rejected_unsupported_type": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null), "slow_down": z.string().regex(new RegExp("\\S")).min(1).max(2000).nullable().default(null) }).strict();
|
|
19
|
+
export type ReplyTexts = z.infer<typeof replyTexts>;
|
|
20
|
+
|
|
21
|
+
export const apiConversationRoute = z.object({ "callback_secret": z.string().nullable().default(null), "callback_url": z.string().regex(new RegExp("^[hH][tT][tT][pP][sS]://[^/?#@]+(?:[/?#]|$)")).nullable().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.null().default(null), "door": z.literal("api"), "execution_key": z.string().min(1), "execution_key_fingerprint": z.string().min(1), "extras_expr": templatedText.nullable().default(null), "initial_mode": z.enum(["agent","manual"]).default("agent"), "locale": z.string().nullable().default(null), "our_identity": z.null().default(null), "overlap": overlapPolicy.default({"deliver":"one","running":"continue","settle_seconds":0}), "reply_expr": templatedText.nullable().default(null), "reply_texts": replyTexts.nullable().default(null), "resume_expr": templatedText.nullable().default(null), "route_name": z.string().regex(new RegExp("^[a-z0-9-]+$")), "start_expr": templatedText.nullable().default(null), "target_kind": z.enum(["agent","tool"]), "target_name": z.string().min(1), "turns_per_hour_override": z.number().int().gt(0).nullable().default(null) });
|
|
19
22
|
export type ApiConversationRoute = z.infer<typeof apiConversationRoute>;
|
|
20
23
|
|
|
21
|
-
export const apiConversationRouteCreate = z.object({ "callback_url": z.string().regex(new RegExp("^[hH][tT][tT][pP][sS]://[^/?#@]+(?:[/?#]|$)")).nullable().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.null().default(null), "door": z.literal("api"), "
|
|
24
|
+
export const apiConversationRouteCreate = z.object({ "callback_url": z.string().regex(new RegExp("^[hH][tT][tT][pP][sS]://[^/?#@]+(?:[/?#]|$)")).nullable().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.null().default(null), "door": z.literal("api"), "execution_key": z.string().min(1), "extras_expr": templatedText.nullable().default(null), "initial_mode": z.enum(["agent","manual"]).default("agent"), "locale": z.string().nullable().default(null), "our_identity": z.null().default(null), "overlap": overlapPolicy.default({"deliver":"one","running":"continue","settle_seconds":0}), "reply_expr": templatedText.nullable().default(null), "reply_texts": replyTexts.nullable().default(null), "resume_expr": templatedText.nullable().default(null), "route_name": z.string().regex(new RegExp("^[a-z0-9-]+$")), "start_expr": templatedText.nullable().default(null), "target_kind": z.enum(["agent","tool"]), "target_name": z.string().min(1), "turns_per_hour_override": z.number().int().gt(0).nullable().default(null) });
|
|
22
25
|
export type ApiConversationRouteCreate = z.infer<typeof apiConversationRouteCreate>;
|
|
23
26
|
|
|
24
27
|
export const callbackSchema = z.object({ "carried_kwargs": z.record(z.string(), z.unknown()).default({}), "condition": templatedText.nullable().default(null), "expr": templatedText.nullable().default(null), "tool": z.string().default("") });
|
|
25
28
|
export type CallbackSchema = z.infer<typeof callbackSchema>;
|
|
26
29
|
|
|
27
|
-
export const channelConversationRoute = z.object({ "callback_secret": z.null().default(null), "callback_url": z.null().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.string().regex(new RegExp("^[^:]*[^:\\s][^:]*$")), "door": z.literal("channel"), "
|
|
30
|
+
export const channelConversationRoute = z.object({ "callback_secret": z.null().default(null), "callback_url": z.null().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.string().regex(new RegExp("^[^:]*[^:\\s][^:]*$")), "door": z.literal("channel"), "execution_key": z.string().min(1), "execution_key_fingerprint": z.string().min(1), "extras_expr": templatedText.nullable().default(null), "initial_mode": z.enum(["agent","manual"]).default("agent"), "locale": z.string().nullable().default(null), "our_identity": z.string().regex(new RegExp("\\S")), "overlap": overlapPolicy.default({"deliver":"one","running":"continue","settle_seconds":0}), "reply_expr": templatedText.nullable().default(null), "reply_texts": replyTexts.nullable().default(null), "resume_expr": templatedText.nullable().default(null), "route_name": z.string().regex(new RegExp("^[a-z0-9-]+$")), "start_expr": templatedText.nullable().default(null), "target_kind": z.enum(["agent","tool"]), "target_name": z.string().min(1), "turns_per_hour_override": z.number().int().gt(0).nullable().default(null) });
|
|
28
31
|
export type ChannelConversationRoute = z.infer<typeof channelConversationRoute>;
|
|
29
32
|
|
|
30
|
-
export const channelConversationRouteCreate = z.object({ "callback_url": z.null().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.string().regex(new RegExp("^[^:]*[^:\\s][^:]*$")), "door": z.literal("channel"), "
|
|
33
|
+
export const channelConversationRouteCreate = z.object({ "callback_url": z.null().default(null), "cancel_expr": templatedText.nullable().default(null), "channel": z.string().regex(new RegExp("^[^:]*[^:\\s][^:]*$")), "door": z.literal("channel"), "execution_key": z.string().min(1), "extras_expr": templatedText.nullable().default(null), "initial_mode": z.enum(["agent","manual"]).default("agent"), "locale": z.string().nullable().default(null), "our_identity": z.string().regex(new RegExp("\\S")), "overlap": overlapPolicy.default({"deliver":"one","running":"continue","settle_seconds":0}), "reply_expr": templatedText.nullable().default(null), "reply_texts": replyTexts.nullable().default(null), "resume_expr": templatedText.nullable().default(null), "route_name": z.string().regex(new RegExp("^[a-z0-9-]+$")), "start_expr": templatedText.nullable().default(null), "target_kind": z.enum(["agent","tool"]), "target_name": z.string().min(1), "turns_per_hour_override": z.number().int().gt(0).nullable().default(null) });
|
|
31
34
|
export type ChannelConversationRouteCreate = z.infer<typeof channelConversationRouteCreate>;
|
|
32
35
|
|
|
33
36
|
export const channelTemplate = z.object({ "language": z.string(), "name": z.string(), "parameters": z.record(z.string(), z.unknown()).nullable().default(null) }).strict();
|
|
@@ -563,21 +566,6 @@ export const servedDocumentsJson = {
|
|
|
563
566
|
"title": "Door",
|
|
564
567
|
"type": "string"
|
|
565
568
|
},
|
|
566
|
-
"error_reply_text": {
|
|
567
|
-
"anyOf": [
|
|
568
|
-
{
|
|
569
|
-
"maxLength": 2000,
|
|
570
|
-
"minLength": 1,
|
|
571
|
-
"pattern": "\\S",
|
|
572
|
-
"type": "string"
|
|
573
|
-
},
|
|
574
|
-
{
|
|
575
|
-
"type": "null"
|
|
576
|
-
}
|
|
577
|
-
],
|
|
578
|
-
"default": null,
|
|
579
|
-
"title": "Error Reply Text"
|
|
580
|
-
},
|
|
581
569
|
"execution_key": {
|
|
582
570
|
"description": "The api-key ``user_id`` the turn runs AS; its live stored grants authorize the agent run or tool dispatch and every tool call the turn makes.",
|
|
583
571
|
"minLength": 1,
|
|
@@ -677,14 +665,25 @@ export const servedDocumentsJson = {
|
|
|
677
665
|
"returns": "the reply: null (silent), a string, or a list of answer parts",
|
|
678
666
|
"variables": [
|
|
679
667
|
{
|
|
680
|
-
"blurb": "the turn
|
|
668
|
+
"blurb": "the turn this reply answers ({id, inbound, subject, reply_window}); reply_window {state, closes_at} is read when the turn starts, or at delivery for a late reply: open until closes_at, closed, or none; null when an out-of-band delivery's originating record has aged out",
|
|
681
669
|
"name": "turn",
|
|
682
670
|
"sample": {
|
|
683
671
|
"id": "m-1",
|
|
684
672
|
"inbound": {
|
|
685
673
|
"id": "i-1",
|
|
686
674
|
"kind": "message",
|
|
687
|
-
"source": "
|
|
675
|
+
"source": "chat-line"
|
|
676
|
+
},
|
|
677
|
+
"reply_window": {
|
|
678
|
+
"closes_at": "2026-01-02T09:30:00Z",
|
|
679
|
+
"state": "open"
|
|
680
|
+
},
|
|
681
|
+
"subject": {
|
|
682
|
+
"locale": null,
|
|
683
|
+
"person": null,
|
|
684
|
+
"target_kind": "agent",
|
|
685
|
+
"target_name": "assistant",
|
|
686
|
+
"thread": "t-1"
|
|
688
687
|
}
|
|
689
688
|
}
|
|
690
689
|
},
|
|
@@ -719,6 +718,17 @@ export const servedDocumentsJson = {
|
|
|
719
718
|
]
|
|
720
719
|
}
|
|
721
720
|
},
|
|
721
|
+
"reply_texts": {
|
|
722
|
+
"anyOf": [
|
|
723
|
+
{
|
|
724
|
+
"$ref": "#/$defs/ReplyTexts"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"type": "null"
|
|
728
|
+
}
|
|
729
|
+
],
|
|
730
|
+
"default": null
|
|
731
|
+
},
|
|
722
732
|
"resume_expr": {
|
|
723
733
|
"anyOf": [
|
|
724
734
|
{
|
|
@@ -826,7 +836,11 @@ export const servedDocumentsJson = {
|
|
|
826
836
|
"name": "location"
|
|
827
837
|
},
|
|
828
838
|
{
|
|
829
|
-
"gloss": "
|
|
839
|
+
"gloss": "the earlier message this one replies to, {message_id, status, text}; present only when the inbound quoted one",
|
|
840
|
+
"name": "reply_to"
|
|
841
|
+
},
|
|
842
|
+
{
|
|
843
|
+
"gloss": "overlap deliver=all: the batch carried into this turn, in acceptance order, each {id, text, accepted_at} (+ form/form_tag/attachments/location/reply_to when that message carried them)",
|
|
830
844
|
"name": "messages"
|
|
831
845
|
},
|
|
832
846
|
{
|
|
@@ -834,7 +848,7 @@ export const servedDocumentsJson = {
|
|
|
834
848
|
"name": "superseded"
|
|
835
849
|
},
|
|
836
850
|
{
|
|
837
|
-
"gloss": "the turn
|
|
851
|
+
"gloss": "the turn: {id, inbound: {id, kind, source}, subject: {target_kind, target_name, person, thread, locale}, reply_window: {state, closes_at}}; reply_window.state is open (a free-form reply is allowed until closes_at), closed, or none (no window on this channel or address)",
|
|
838
852
|
"name": "turn"
|
|
839
853
|
},
|
|
840
854
|
{
|
|
@@ -963,21 +977,6 @@ export const servedDocumentsJson = {
|
|
|
963
977
|
"title": "Door",
|
|
964
978
|
"type": "string"
|
|
965
979
|
},
|
|
966
|
-
"error_reply_text": {
|
|
967
|
-
"anyOf": [
|
|
968
|
-
{
|
|
969
|
-
"maxLength": 2000,
|
|
970
|
-
"minLength": 1,
|
|
971
|
-
"pattern": "\\S",
|
|
972
|
-
"type": "string"
|
|
973
|
-
},
|
|
974
|
-
{
|
|
975
|
-
"type": "null"
|
|
976
|
-
}
|
|
977
|
-
],
|
|
978
|
-
"default": null,
|
|
979
|
-
"title": "Error Reply Text"
|
|
980
|
-
},
|
|
981
980
|
"execution_key": {
|
|
982
981
|
"description": "The api-key ``user_id`` the turn runs AS; its live stored grants authorize the agent run or tool dispatch and every tool call the turn makes.",
|
|
983
982
|
"minLength": 1,
|
|
@@ -1077,14 +1076,25 @@ export const servedDocumentsJson = {
|
|
|
1077
1076
|
"returns": "the reply: null (silent), a string, or a list of answer parts",
|
|
1078
1077
|
"variables": [
|
|
1079
1078
|
{
|
|
1080
|
-
"blurb": "the turn
|
|
1079
|
+
"blurb": "the turn this reply answers ({id, inbound, subject, reply_window}); reply_window {state, closes_at} is read when the turn starts, or at delivery for a late reply: open until closes_at, closed, or none; null when an out-of-band delivery's originating record has aged out",
|
|
1081
1080
|
"name": "turn",
|
|
1082
1081
|
"sample": {
|
|
1083
1082
|
"id": "m-1",
|
|
1084
1083
|
"inbound": {
|
|
1085
1084
|
"id": "i-1",
|
|
1086
1085
|
"kind": "message",
|
|
1087
|
-
"source": "
|
|
1086
|
+
"source": "chat-line"
|
|
1087
|
+
},
|
|
1088
|
+
"reply_window": {
|
|
1089
|
+
"closes_at": "2026-01-02T09:30:00Z",
|
|
1090
|
+
"state": "open"
|
|
1091
|
+
},
|
|
1092
|
+
"subject": {
|
|
1093
|
+
"locale": null,
|
|
1094
|
+
"person": null,
|
|
1095
|
+
"target_kind": "agent",
|
|
1096
|
+
"target_name": "assistant",
|
|
1097
|
+
"thread": "t-1"
|
|
1088
1098
|
}
|
|
1089
1099
|
}
|
|
1090
1100
|
},
|
|
@@ -1119,6 +1129,17 @@ export const servedDocumentsJson = {
|
|
|
1119
1129
|
]
|
|
1120
1130
|
}
|
|
1121
1131
|
},
|
|
1132
|
+
"reply_texts": {
|
|
1133
|
+
"anyOf": [
|
|
1134
|
+
{
|
|
1135
|
+
"$ref": "#/$defs/ReplyTexts"
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
"type": "null"
|
|
1139
|
+
}
|
|
1140
|
+
],
|
|
1141
|
+
"default": null
|
|
1142
|
+
},
|
|
1122
1143
|
"resume_expr": {
|
|
1123
1144
|
"anyOf": [
|
|
1124
1145
|
{
|
|
@@ -1226,7 +1247,11 @@ export const servedDocumentsJson = {
|
|
|
1226
1247
|
"name": "location"
|
|
1227
1248
|
},
|
|
1228
1249
|
{
|
|
1229
|
-
"gloss": "
|
|
1250
|
+
"gloss": "the earlier message this one replies to, {message_id, status, text}; present only when the inbound quoted one",
|
|
1251
|
+
"name": "reply_to"
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"gloss": "overlap deliver=all: the batch carried into this turn, in acceptance order, each {id, text, accepted_at} (+ form/form_tag/attachments/location/reply_to when that message carried them)",
|
|
1230
1255
|
"name": "messages"
|
|
1231
1256
|
},
|
|
1232
1257
|
{
|
|
@@ -1234,7 +1259,7 @@ export const servedDocumentsJson = {
|
|
|
1234
1259
|
"name": "superseded"
|
|
1235
1260
|
},
|
|
1236
1261
|
{
|
|
1237
|
-
"gloss": "the turn
|
|
1262
|
+
"gloss": "the turn: {id, inbound: {id, kind, source}, subject: {target_kind, target_name, person, thread, locale}, reply_window: {state, closes_at}}; reply_window.state is open (a free-form reply is allowed until closes_at), closed, or none (no window on this channel or address)",
|
|
1238
1263
|
"name": "turn"
|
|
1239
1264
|
},
|
|
1240
1265
|
{
|
|
@@ -1339,6 +1364,194 @@ export const servedDocumentsJson = {
|
|
|
1339
1364
|
"title": "OverlapPolicy",
|
|
1340
1365
|
"type": "object"
|
|
1341
1366
|
},
|
|
1367
|
+
"ReplyTexts": {
|
|
1368
|
+
"additionalProperties": false,
|
|
1369
|
+
"description": "The caller's words for the platform's fixed participant replies on one route. Frozen, strict keys.\n\n``error`` is sent when a turn fails and the target gave no reply; ``slow_down`` when an address\nis over the turn cap; ``pairing_linked`` when a pair code was redeemed and the two persons\nmerged; ``pairing_unlinked`` when ``/unlink`` detached the address; ``pairing_not_linked`` when\n``/unlink`` came from an address linked to nothing; ``pairing_code_invalid`` when a redeem was\nrefused; ``pairing_code`` is the ``/link`` reply carrying the fresh code, a template that MUST\nreference ``{pairing_code}`` and may reference ``{expires_at}`` (the code's ISO-8601 expiry),\nwith no conversion or format spec; ``pairing_link_unavailable`` when a redeem met a person being\nerased (its code is consumed, so the reply asks for a new one); ``pairing_unlink_unavailable``\nwhen ``/unlink`` met the sender's person being erased; ``rejected_unsupported_type`` / ``rejected_too_large`` /\n``rejected_could_not_receive`` are the notices for an inbound message the channel cannot\nbridge, a file over the cap, and a file the channel could not fetch. Every member but\n``pairing_code`` is literal text: a ``{`` in it is drawn as written. Each is a\n:data:`~tai42_contract.interactions.ReplyText` in the line's language; absent, the built-in\nEnglish reply is sent. An empty catalogue names nothing and is refused; an unknown key is\nrefused.",
|
|
1370
|
+
"properties": {
|
|
1371
|
+
"error": {
|
|
1372
|
+
"anyOf": [
|
|
1373
|
+
{
|
|
1374
|
+
"maxLength": 2000,
|
|
1375
|
+
"minLength": 1,
|
|
1376
|
+
"pattern": "\\S",
|
|
1377
|
+
"type": "string"
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
"type": "null"
|
|
1381
|
+
}
|
|
1382
|
+
],
|
|
1383
|
+
"default": null,
|
|
1384
|
+
"title": "Error"
|
|
1385
|
+
},
|
|
1386
|
+
"pairing_code": {
|
|
1387
|
+
"anyOf": [
|
|
1388
|
+
{
|
|
1389
|
+
"maxLength": 2000,
|
|
1390
|
+
"minLength": 1,
|
|
1391
|
+
"pattern": "\\S",
|
|
1392
|
+
"type": "string"
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"type": "null"
|
|
1396
|
+
}
|
|
1397
|
+
],
|
|
1398
|
+
"default": null,
|
|
1399
|
+
"title": "Pairing Code"
|
|
1400
|
+
},
|
|
1401
|
+
"pairing_code_invalid": {
|
|
1402
|
+
"anyOf": [
|
|
1403
|
+
{
|
|
1404
|
+
"maxLength": 2000,
|
|
1405
|
+
"minLength": 1,
|
|
1406
|
+
"pattern": "\\S",
|
|
1407
|
+
"type": "string"
|
|
1408
|
+
},
|
|
1409
|
+
{
|
|
1410
|
+
"type": "null"
|
|
1411
|
+
}
|
|
1412
|
+
],
|
|
1413
|
+
"default": null,
|
|
1414
|
+
"title": "Pairing Code Invalid"
|
|
1415
|
+
},
|
|
1416
|
+
"pairing_link_unavailable": {
|
|
1417
|
+
"anyOf": [
|
|
1418
|
+
{
|
|
1419
|
+
"maxLength": 2000,
|
|
1420
|
+
"minLength": 1,
|
|
1421
|
+
"pattern": "\\S",
|
|
1422
|
+
"type": "string"
|
|
1423
|
+
},
|
|
1424
|
+
{
|
|
1425
|
+
"type": "null"
|
|
1426
|
+
}
|
|
1427
|
+
],
|
|
1428
|
+
"default": null,
|
|
1429
|
+
"title": "Pairing Link Unavailable"
|
|
1430
|
+
},
|
|
1431
|
+
"pairing_linked": {
|
|
1432
|
+
"anyOf": [
|
|
1433
|
+
{
|
|
1434
|
+
"maxLength": 2000,
|
|
1435
|
+
"minLength": 1,
|
|
1436
|
+
"pattern": "\\S",
|
|
1437
|
+
"type": "string"
|
|
1438
|
+
},
|
|
1439
|
+
{
|
|
1440
|
+
"type": "null"
|
|
1441
|
+
}
|
|
1442
|
+
],
|
|
1443
|
+
"default": null,
|
|
1444
|
+
"title": "Pairing Linked"
|
|
1445
|
+
},
|
|
1446
|
+
"pairing_not_linked": {
|
|
1447
|
+
"anyOf": [
|
|
1448
|
+
{
|
|
1449
|
+
"maxLength": 2000,
|
|
1450
|
+
"minLength": 1,
|
|
1451
|
+
"pattern": "\\S",
|
|
1452
|
+
"type": "string"
|
|
1453
|
+
},
|
|
1454
|
+
{
|
|
1455
|
+
"type": "null"
|
|
1456
|
+
}
|
|
1457
|
+
],
|
|
1458
|
+
"default": null,
|
|
1459
|
+
"title": "Pairing Not Linked"
|
|
1460
|
+
},
|
|
1461
|
+
"pairing_unlink_unavailable": {
|
|
1462
|
+
"anyOf": [
|
|
1463
|
+
{
|
|
1464
|
+
"maxLength": 2000,
|
|
1465
|
+
"minLength": 1,
|
|
1466
|
+
"pattern": "\\S",
|
|
1467
|
+
"type": "string"
|
|
1468
|
+
},
|
|
1469
|
+
{
|
|
1470
|
+
"type": "null"
|
|
1471
|
+
}
|
|
1472
|
+
],
|
|
1473
|
+
"default": null,
|
|
1474
|
+
"title": "Pairing Unlink Unavailable"
|
|
1475
|
+
},
|
|
1476
|
+
"pairing_unlinked": {
|
|
1477
|
+
"anyOf": [
|
|
1478
|
+
{
|
|
1479
|
+
"maxLength": 2000,
|
|
1480
|
+
"minLength": 1,
|
|
1481
|
+
"pattern": "\\S",
|
|
1482
|
+
"type": "string"
|
|
1483
|
+
},
|
|
1484
|
+
{
|
|
1485
|
+
"type": "null"
|
|
1486
|
+
}
|
|
1487
|
+
],
|
|
1488
|
+
"default": null,
|
|
1489
|
+
"title": "Pairing Unlinked"
|
|
1490
|
+
},
|
|
1491
|
+
"rejected_could_not_receive": {
|
|
1492
|
+
"anyOf": [
|
|
1493
|
+
{
|
|
1494
|
+
"maxLength": 2000,
|
|
1495
|
+
"minLength": 1,
|
|
1496
|
+
"pattern": "\\S",
|
|
1497
|
+
"type": "string"
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
"type": "null"
|
|
1501
|
+
}
|
|
1502
|
+
],
|
|
1503
|
+
"default": null,
|
|
1504
|
+
"title": "Rejected Could Not Receive"
|
|
1505
|
+
},
|
|
1506
|
+
"rejected_too_large": {
|
|
1507
|
+
"anyOf": [
|
|
1508
|
+
{
|
|
1509
|
+
"maxLength": 2000,
|
|
1510
|
+
"minLength": 1,
|
|
1511
|
+
"pattern": "\\S",
|
|
1512
|
+
"type": "string"
|
|
1513
|
+
},
|
|
1514
|
+
{
|
|
1515
|
+
"type": "null"
|
|
1516
|
+
}
|
|
1517
|
+
],
|
|
1518
|
+
"default": null,
|
|
1519
|
+
"title": "Rejected Too Large"
|
|
1520
|
+
},
|
|
1521
|
+
"rejected_unsupported_type": {
|
|
1522
|
+
"anyOf": [
|
|
1523
|
+
{
|
|
1524
|
+
"maxLength": 2000,
|
|
1525
|
+
"minLength": 1,
|
|
1526
|
+
"pattern": "\\S",
|
|
1527
|
+
"type": "string"
|
|
1528
|
+
},
|
|
1529
|
+
{
|
|
1530
|
+
"type": "null"
|
|
1531
|
+
}
|
|
1532
|
+
],
|
|
1533
|
+
"default": null,
|
|
1534
|
+
"title": "Rejected Unsupported Type"
|
|
1535
|
+
},
|
|
1536
|
+
"slow_down": {
|
|
1537
|
+
"anyOf": [
|
|
1538
|
+
{
|
|
1539
|
+
"maxLength": 2000,
|
|
1540
|
+
"minLength": 1,
|
|
1541
|
+
"pattern": "\\S",
|
|
1542
|
+
"type": "string"
|
|
1543
|
+
},
|
|
1544
|
+
{
|
|
1545
|
+
"type": "null"
|
|
1546
|
+
}
|
|
1547
|
+
],
|
|
1548
|
+
"default": null,
|
|
1549
|
+
"title": "Slow Down"
|
|
1550
|
+
}
|
|
1551
|
+
},
|
|
1552
|
+
"title": "ReplyTexts",
|
|
1553
|
+
"type": "object"
|
|
1554
|
+
},
|
|
1342
1555
|
"TemplatedText": {
|
|
1343
1556
|
"additionalProperties": false,
|
|
1344
1557
|
"description": "A renderable text: its source plus the parameters its render takes.\n\nEXACTLY ONE source is set — ``content`` (the text inline) or ``id`` (the id of a\nstored resource holding the text); neither and both are refused at construction.\n``kwargs`` are the render parameters for the TEXT and apply either way, so moving a\ntext from inline to stored (or back) leaves its parameters untouched.",
|
|
@@ -1462,21 +1675,6 @@ export const servedDocumentsJson = {
|
|
|
1462
1675
|
"title": "Door",
|
|
1463
1676
|
"type": "string"
|
|
1464
1677
|
},
|
|
1465
|
-
"error_reply_text": {
|
|
1466
|
-
"anyOf": [
|
|
1467
|
-
{
|
|
1468
|
-
"maxLength": 2000,
|
|
1469
|
-
"minLength": 1,
|
|
1470
|
-
"pattern": "\\S",
|
|
1471
|
-
"type": "string"
|
|
1472
|
-
},
|
|
1473
|
-
{
|
|
1474
|
-
"type": "null"
|
|
1475
|
-
}
|
|
1476
|
-
],
|
|
1477
|
-
"default": null,
|
|
1478
|
-
"title": "Error Reply Text"
|
|
1479
|
-
},
|
|
1480
1678
|
"execution_key": {
|
|
1481
1679
|
"description": "The api-key ``user_id`` the turn runs AS; its live stored grants authorize the agent run or tool dispatch and every tool call the turn makes.",
|
|
1482
1680
|
"minLength": 1,
|
|
@@ -1570,14 +1768,25 @@ export const servedDocumentsJson = {
|
|
|
1570
1768
|
"returns": "the reply: null (silent), a string, or a list of answer parts",
|
|
1571
1769
|
"variables": [
|
|
1572
1770
|
{
|
|
1573
|
-
"blurb": "the turn
|
|
1771
|
+
"blurb": "the turn this reply answers ({id, inbound, subject, reply_window}); reply_window {state, closes_at} is read when the turn starts, or at delivery for a late reply: open until closes_at, closed, or none; null when an out-of-band delivery's originating record has aged out",
|
|
1574
1772
|
"name": "turn",
|
|
1575
1773
|
"sample": {
|
|
1576
1774
|
"id": "m-1",
|
|
1577
1775
|
"inbound": {
|
|
1578
1776
|
"id": "i-1",
|
|
1579
1777
|
"kind": "message",
|
|
1580
|
-
"source": "
|
|
1778
|
+
"source": "chat-line"
|
|
1779
|
+
},
|
|
1780
|
+
"reply_window": {
|
|
1781
|
+
"closes_at": "2026-01-02T09:30:00Z",
|
|
1782
|
+
"state": "open"
|
|
1783
|
+
},
|
|
1784
|
+
"subject": {
|
|
1785
|
+
"locale": null,
|
|
1786
|
+
"person": null,
|
|
1787
|
+
"target_kind": "agent",
|
|
1788
|
+
"target_name": "assistant",
|
|
1789
|
+
"thread": "t-1"
|
|
1581
1790
|
}
|
|
1582
1791
|
}
|
|
1583
1792
|
},
|
|
@@ -1612,6 +1821,17 @@ export const servedDocumentsJson = {
|
|
|
1612
1821
|
]
|
|
1613
1822
|
}
|
|
1614
1823
|
},
|
|
1824
|
+
"reply_texts": {
|
|
1825
|
+
"anyOf": [
|
|
1826
|
+
{
|
|
1827
|
+
"$ref": "#/$defs/ReplyTexts"
|
|
1828
|
+
},
|
|
1829
|
+
{
|
|
1830
|
+
"type": "null"
|
|
1831
|
+
}
|
|
1832
|
+
],
|
|
1833
|
+
"default": null
|
|
1834
|
+
},
|
|
1615
1835
|
"resume_expr": {
|
|
1616
1836
|
"anyOf": [
|
|
1617
1837
|
{
|
|
@@ -1719,7 +1939,11 @@ export const servedDocumentsJson = {
|
|
|
1719
1939
|
"name": "location"
|
|
1720
1940
|
},
|
|
1721
1941
|
{
|
|
1722
|
-
"gloss": "
|
|
1942
|
+
"gloss": "the earlier message this one replies to, {message_id, status, text}; present only when the inbound quoted one",
|
|
1943
|
+
"name": "reply_to"
|
|
1944
|
+
},
|
|
1945
|
+
{
|
|
1946
|
+
"gloss": "overlap deliver=all: the batch carried into this turn, in acceptance order, each {id, text, accepted_at} (+ form/form_tag/attachments/location/reply_to when that message carried them)",
|
|
1723
1947
|
"name": "messages"
|
|
1724
1948
|
},
|
|
1725
1949
|
{
|
|
@@ -1727,7 +1951,7 @@ export const servedDocumentsJson = {
|
|
|
1727
1951
|
"name": "superseded"
|
|
1728
1952
|
},
|
|
1729
1953
|
{
|
|
1730
|
-
"gloss": "the turn
|
|
1954
|
+
"gloss": "the turn: {id, inbound: {id, kind, source}, subject: {target_kind, target_name, person, thread, locale}, reply_window: {state, closes_at}}; reply_window.state is open (a free-form reply is allowed until closes_at), closed, or none (no window on this channel or address)",
|
|
1731
1955
|
"name": "turn"
|
|
1732
1956
|
},
|
|
1733
1957
|
{
|
|
@@ -1850,21 +2074,6 @@ export const servedDocumentsJson = {
|
|
|
1850
2074
|
"title": "Door",
|
|
1851
2075
|
"type": "string"
|
|
1852
2076
|
},
|
|
1853
|
-
"error_reply_text": {
|
|
1854
|
-
"anyOf": [
|
|
1855
|
-
{
|
|
1856
|
-
"maxLength": 2000,
|
|
1857
|
-
"minLength": 1,
|
|
1858
|
-
"pattern": "\\S",
|
|
1859
|
-
"type": "string"
|
|
1860
|
-
},
|
|
1861
|
-
{
|
|
1862
|
-
"type": "null"
|
|
1863
|
-
}
|
|
1864
|
-
],
|
|
1865
|
-
"default": null,
|
|
1866
|
-
"title": "Error Reply Text"
|
|
1867
|
-
},
|
|
1868
2077
|
"execution_key": {
|
|
1869
2078
|
"description": "The api-key ``user_id`` the turn runs AS; its live stored grants authorize the agent run or tool dispatch and every tool call the turn makes.",
|
|
1870
2079
|
"minLength": 1,
|
|
@@ -1958,14 +2167,25 @@ export const servedDocumentsJson = {
|
|
|
1958
2167
|
"returns": "the reply: null (silent), a string, or a list of answer parts",
|
|
1959
2168
|
"variables": [
|
|
1960
2169
|
{
|
|
1961
|
-
"blurb": "the turn
|
|
2170
|
+
"blurb": "the turn this reply answers ({id, inbound, subject, reply_window}); reply_window {state, closes_at} is read when the turn starts, or at delivery for a late reply: open until closes_at, closed, or none; null when an out-of-band delivery's originating record has aged out",
|
|
1962
2171
|
"name": "turn",
|
|
1963
2172
|
"sample": {
|
|
1964
2173
|
"id": "m-1",
|
|
1965
2174
|
"inbound": {
|
|
1966
2175
|
"id": "i-1",
|
|
1967
2176
|
"kind": "message",
|
|
1968
|
-
"source": "
|
|
2177
|
+
"source": "chat-line"
|
|
2178
|
+
},
|
|
2179
|
+
"reply_window": {
|
|
2180
|
+
"closes_at": "2026-01-02T09:30:00Z",
|
|
2181
|
+
"state": "open"
|
|
2182
|
+
},
|
|
2183
|
+
"subject": {
|
|
2184
|
+
"locale": null,
|
|
2185
|
+
"person": null,
|
|
2186
|
+
"target_kind": "agent",
|
|
2187
|
+
"target_name": "assistant",
|
|
2188
|
+
"thread": "t-1"
|
|
1969
2189
|
}
|
|
1970
2190
|
}
|
|
1971
2191
|
},
|
|
@@ -2000,6 +2220,17 @@ export const servedDocumentsJson = {
|
|
|
2000
2220
|
]
|
|
2001
2221
|
}
|
|
2002
2222
|
},
|
|
2223
|
+
"reply_texts": {
|
|
2224
|
+
"anyOf": [
|
|
2225
|
+
{
|
|
2226
|
+
"$ref": "#/$defs/ReplyTexts"
|
|
2227
|
+
},
|
|
2228
|
+
{
|
|
2229
|
+
"type": "null"
|
|
2230
|
+
}
|
|
2231
|
+
],
|
|
2232
|
+
"default": null
|
|
2233
|
+
},
|
|
2003
2234
|
"resume_expr": {
|
|
2004
2235
|
"anyOf": [
|
|
2005
2236
|
{
|
|
@@ -2107,7 +2338,11 @@ export const servedDocumentsJson = {
|
|
|
2107
2338
|
"name": "location"
|
|
2108
2339
|
},
|
|
2109
2340
|
{
|
|
2110
|
-
"gloss": "
|
|
2341
|
+
"gloss": "the earlier message this one replies to, {message_id, status, text}; present only when the inbound quoted one",
|
|
2342
|
+
"name": "reply_to"
|
|
2343
|
+
},
|
|
2344
|
+
{
|
|
2345
|
+
"gloss": "overlap deliver=all: the batch carried into this turn, in acceptance order, each {id, text, accepted_at} (+ form/form_tag/attachments/location/reply_to when that message carried them)",
|
|
2111
2346
|
"name": "messages"
|
|
2112
2347
|
},
|
|
2113
2348
|
{
|
|
@@ -2115,7 +2350,7 @@ export const servedDocumentsJson = {
|
|
|
2115
2350
|
"name": "superseded"
|
|
2116
2351
|
},
|
|
2117
2352
|
{
|
|
2118
|
-
"gloss": "the turn
|
|
2353
|
+
"gloss": "the turn: {id, inbound: {id, kind, source}, subject: {target_kind, target_name, person, thread, locale}, reply_window: {state, closes_at}}; reply_window.state is open (a free-form reply is allowed until closes_at), closed, or none (no window on this channel or address)",
|
|
2119
2354
|
"name": "turn"
|
|
2120
2355
|
},
|
|
2121
2356
|
{
|
|
@@ -2219,6 +2454,194 @@ export const servedDocumentsJson = {
|
|
|
2219
2454
|
"title": "OverlapPolicy",
|
|
2220
2455
|
"type": "object"
|
|
2221
2456
|
},
|
|
2457
|
+
"ReplyTexts": {
|
|
2458
|
+
"additionalProperties": false,
|
|
2459
|
+
"description": "The caller's words for the platform's fixed participant replies on one route. Frozen, strict keys.\n\n``error`` is sent when a turn fails and the target gave no reply; ``slow_down`` when an address\nis over the turn cap; ``pairing_linked`` when a pair code was redeemed and the two persons\nmerged; ``pairing_unlinked`` when ``/unlink`` detached the address; ``pairing_not_linked`` when\n``/unlink`` came from an address linked to nothing; ``pairing_code_invalid`` when a redeem was\nrefused; ``pairing_code`` is the ``/link`` reply carrying the fresh code, a template that MUST\nreference ``{pairing_code}`` and may reference ``{expires_at}`` (the code's ISO-8601 expiry),\nwith no conversion or format spec; ``pairing_link_unavailable`` when a redeem met a person being\nerased (its code is consumed, so the reply asks for a new one); ``pairing_unlink_unavailable``\nwhen ``/unlink`` met the sender's person being erased; ``rejected_unsupported_type`` / ``rejected_too_large`` /\n``rejected_could_not_receive`` are the notices for an inbound message the channel cannot\nbridge, a file over the cap, and a file the channel could not fetch. Every member but\n``pairing_code`` is literal text: a ``{`` in it is drawn as written. Each is a\n:data:`~tai42_contract.interactions.ReplyText` in the line's language; absent, the built-in\nEnglish reply is sent. An empty catalogue names nothing and is refused; an unknown key is\nrefused.",
|
|
2460
|
+
"properties": {
|
|
2461
|
+
"error": {
|
|
2462
|
+
"anyOf": [
|
|
2463
|
+
{
|
|
2464
|
+
"maxLength": 2000,
|
|
2465
|
+
"minLength": 1,
|
|
2466
|
+
"pattern": "\\S",
|
|
2467
|
+
"type": "string"
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
"type": "null"
|
|
2471
|
+
}
|
|
2472
|
+
],
|
|
2473
|
+
"default": null,
|
|
2474
|
+
"title": "Error"
|
|
2475
|
+
},
|
|
2476
|
+
"pairing_code": {
|
|
2477
|
+
"anyOf": [
|
|
2478
|
+
{
|
|
2479
|
+
"maxLength": 2000,
|
|
2480
|
+
"minLength": 1,
|
|
2481
|
+
"pattern": "\\S",
|
|
2482
|
+
"type": "string"
|
|
2483
|
+
},
|
|
2484
|
+
{
|
|
2485
|
+
"type": "null"
|
|
2486
|
+
}
|
|
2487
|
+
],
|
|
2488
|
+
"default": null,
|
|
2489
|
+
"title": "Pairing Code"
|
|
2490
|
+
},
|
|
2491
|
+
"pairing_code_invalid": {
|
|
2492
|
+
"anyOf": [
|
|
2493
|
+
{
|
|
2494
|
+
"maxLength": 2000,
|
|
2495
|
+
"minLength": 1,
|
|
2496
|
+
"pattern": "\\S",
|
|
2497
|
+
"type": "string"
|
|
2498
|
+
},
|
|
2499
|
+
{
|
|
2500
|
+
"type": "null"
|
|
2501
|
+
}
|
|
2502
|
+
],
|
|
2503
|
+
"default": null,
|
|
2504
|
+
"title": "Pairing Code Invalid"
|
|
2505
|
+
},
|
|
2506
|
+
"pairing_link_unavailable": {
|
|
2507
|
+
"anyOf": [
|
|
2508
|
+
{
|
|
2509
|
+
"maxLength": 2000,
|
|
2510
|
+
"minLength": 1,
|
|
2511
|
+
"pattern": "\\S",
|
|
2512
|
+
"type": "string"
|
|
2513
|
+
},
|
|
2514
|
+
{
|
|
2515
|
+
"type": "null"
|
|
2516
|
+
}
|
|
2517
|
+
],
|
|
2518
|
+
"default": null,
|
|
2519
|
+
"title": "Pairing Link Unavailable"
|
|
2520
|
+
},
|
|
2521
|
+
"pairing_linked": {
|
|
2522
|
+
"anyOf": [
|
|
2523
|
+
{
|
|
2524
|
+
"maxLength": 2000,
|
|
2525
|
+
"minLength": 1,
|
|
2526
|
+
"pattern": "\\S",
|
|
2527
|
+
"type": "string"
|
|
2528
|
+
},
|
|
2529
|
+
{
|
|
2530
|
+
"type": "null"
|
|
2531
|
+
}
|
|
2532
|
+
],
|
|
2533
|
+
"default": null,
|
|
2534
|
+
"title": "Pairing Linked"
|
|
2535
|
+
},
|
|
2536
|
+
"pairing_not_linked": {
|
|
2537
|
+
"anyOf": [
|
|
2538
|
+
{
|
|
2539
|
+
"maxLength": 2000,
|
|
2540
|
+
"minLength": 1,
|
|
2541
|
+
"pattern": "\\S",
|
|
2542
|
+
"type": "string"
|
|
2543
|
+
},
|
|
2544
|
+
{
|
|
2545
|
+
"type": "null"
|
|
2546
|
+
}
|
|
2547
|
+
],
|
|
2548
|
+
"default": null,
|
|
2549
|
+
"title": "Pairing Not Linked"
|
|
2550
|
+
},
|
|
2551
|
+
"pairing_unlink_unavailable": {
|
|
2552
|
+
"anyOf": [
|
|
2553
|
+
{
|
|
2554
|
+
"maxLength": 2000,
|
|
2555
|
+
"minLength": 1,
|
|
2556
|
+
"pattern": "\\S",
|
|
2557
|
+
"type": "string"
|
|
2558
|
+
},
|
|
2559
|
+
{
|
|
2560
|
+
"type": "null"
|
|
2561
|
+
}
|
|
2562
|
+
],
|
|
2563
|
+
"default": null,
|
|
2564
|
+
"title": "Pairing Unlink Unavailable"
|
|
2565
|
+
},
|
|
2566
|
+
"pairing_unlinked": {
|
|
2567
|
+
"anyOf": [
|
|
2568
|
+
{
|
|
2569
|
+
"maxLength": 2000,
|
|
2570
|
+
"minLength": 1,
|
|
2571
|
+
"pattern": "\\S",
|
|
2572
|
+
"type": "string"
|
|
2573
|
+
},
|
|
2574
|
+
{
|
|
2575
|
+
"type": "null"
|
|
2576
|
+
}
|
|
2577
|
+
],
|
|
2578
|
+
"default": null,
|
|
2579
|
+
"title": "Pairing Unlinked"
|
|
2580
|
+
},
|
|
2581
|
+
"rejected_could_not_receive": {
|
|
2582
|
+
"anyOf": [
|
|
2583
|
+
{
|
|
2584
|
+
"maxLength": 2000,
|
|
2585
|
+
"minLength": 1,
|
|
2586
|
+
"pattern": "\\S",
|
|
2587
|
+
"type": "string"
|
|
2588
|
+
},
|
|
2589
|
+
{
|
|
2590
|
+
"type": "null"
|
|
2591
|
+
}
|
|
2592
|
+
],
|
|
2593
|
+
"default": null,
|
|
2594
|
+
"title": "Rejected Could Not Receive"
|
|
2595
|
+
},
|
|
2596
|
+
"rejected_too_large": {
|
|
2597
|
+
"anyOf": [
|
|
2598
|
+
{
|
|
2599
|
+
"maxLength": 2000,
|
|
2600
|
+
"minLength": 1,
|
|
2601
|
+
"pattern": "\\S",
|
|
2602
|
+
"type": "string"
|
|
2603
|
+
},
|
|
2604
|
+
{
|
|
2605
|
+
"type": "null"
|
|
2606
|
+
}
|
|
2607
|
+
],
|
|
2608
|
+
"default": null,
|
|
2609
|
+
"title": "Rejected Too Large"
|
|
2610
|
+
},
|
|
2611
|
+
"rejected_unsupported_type": {
|
|
2612
|
+
"anyOf": [
|
|
2613
|
+
{
|
|
2614
|
+
"maxLength": 2000,
|
|
2615
|
+
"minLength": 1,
|
|
2616
|
+
"pattern": "\\S",
|
|
2617
|
+
"type": "string"
|
|
2618
|
+
},
|
|
2619
|
+
{
|
|
2620
|
+
"type": "null"
|
|
2621
|
+
}
|
|
2622
|
+
],
|
|
2623
|
+
"default": null,
|
|
2624
|
+
"title": "Rejected Unsupported Type"
|
|
2625
|
+
},
|
|
2626
|
+
"slow_down": {
|
|
2627
|
+
"anyOf": [
|
|
2628
|
+
{
|
|
2629
|
+
"maxLength": 2000,
|
|
2630
|
+
"minLength": 1,
|
|
2631
|
+
"pattern": "\\S",
|
|
2632
|
+
"type": "string"
|
|
2633
|
+
},
|
|
2634
|
+
{
|
|
2635
|
+
"type": "null"
|
|
2636
|
+
}
|
|
2637
|
+
],
|
|
2638
|
+
"default": null,
|
|
2639
|
+
"title": "Slow Down"
|
|
2640
|
+
}
|
|
2641
|
+
},
|
|
2642
|
+
"title": "ReplyTexts",
|
|
2643
|
+
"type": "object"
|
|
2644
|
+
},
|
|
2222
2645
|
"TemplatedText": {
|
|
2223
2646
|
"additionalProperties": false,
|
|
2224
2647
|
"description": "A renderable text: its source plus the parameters its render takes.\n\nEXACTLY ONE source is set — ``content`` (the text inline) or ``id`` (the id of a\nstored resource holding the text); neither and both are refused at construction.\n``kwargs`` are the render parameters for the TEXT and apply either way, so moving a\ntext from inline to stored (or back) leaves its parameters untouched.",
|