@ifsoul/core 0.3.0 → 0.4.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.
Files changed (137) hide show
  1. package/README.md +28 -34
  2. package/dist/packages/memory/src/sql.js +54 -5
  3. package/dist/packages/protocol/src/generated/validators.cjs +1 -1
  4. package/dist/packages/protocol/src/index.d.ts +1 -6
  5. package/dist/packages/protocol/src/index.js +3 -16
  6. package/dist/packages/protocol/src/types.d.ts +1 -1
  7. package/dist/packages/runtime/src/index.js +1 -1
  8. package/package.json +2 -3
  9. package/packages/protocol/schemas/current/archive.schema.json +16 -16
  10. package/packages/protocol/schemas/current/character.schema.json +21 -21
  11. package/packages/protocol/schemas/current/common.schema.json +15 -15
  12. package/packages/protocol/schemas/current/context.schema.json +24 -24
  13. package/packages/protocol/schemas/current/conversation.schema.json +39 -39
  14. package/packages/protocol/schemas/current/environment.schema.json +18 -18
  15. package/packages/protocol/schemas/current/memory.schema.json +66 -66
  16. package/packages/protocol/schemas/current/model-provider.schema.json +40 -40
  17. package/packages/protocol/schemas/current/planning.schema.json +61 -61
  18. package/packages/protocol/schemas/current/provider-common.schema.json +6 -6
  19. package/release.json +7 -12
  20. package/specs/README.md +3 -86
  21. package/specs/current/README.md +3 -5
  22. package/specs/current/examples/archive-fork.json +12 -12
  23. package/specs/current/examples/archive-resume.json +12 -12
  24. package/specs/current/examples/character-instance.json +1 -1
  25. package/specs/current/examples/character-template.json +1 -1
  26. package/specs/current/examples/context-after-inspection.json +1 -1
  27. package/specs/current/examples/context-chat.json +1 -1
  28. package/specs/current/examples/context-daily.json +1 -1
  29. package/specs/current/examples/context-no-speech.json +1 -1
  30. package/specs/current/examples/conversation-delivery.json +1 -1
  31. package/specs/current/examples/conversation-live-request.json +1 -1
  32. package/specs/current/examples/conversation-live-response.json +1 -1
  33. package/specs/current/examples/conversation-no-speech-request.json +1 -1
  34. package/specs/current/examples/conversation-no-speech-response.json +1 -1
  35. package/specs/current/examples/conversation-requested-request.json +1 -1
  36. package/specs/current/examples/conversation-requested-response.json +1 -1
  37. package/specs/current/examples/environment-chat.json +1 -1
  38. package/specs/current/examples/environment-game.json +1 -1
  39. package/specs/current/examples/environment-no-speech.json +1 -1
  40. package/specs/current/examples/intent-checkpoint.json +1 -1
  41. package/specs/current/examples/memory-episode.json +1 -1
  42. package/specs/current/examples/memory-event-conversation.json +1 -1
  43. package/specs/current/examples/memory-event-observed.json +2 -2
  44. package/specs/current/examples/memory-event-plan-proposal.json +2 -2
  45. package/specs/current/examples/memory-event-proposed.json +2 -2
  46. package/specs/current/examples/memory-fact.json +1 -1
  47. package/specs/current/examples/memory-relationship.json +1 -1
  48. package/specs/current/examples/memory-working-context.json +1 -1
  49. package/specs/current/examples/plan-cancel-request.json +1 -1
  50. package/specs/current/examples/plan-cancel-result.json +1 -1
  51. package/specs/current/examples/plan-daily.json +1 -1
  52. package/specs/current/examples/plan-partial-decision.json +1 -1
  53. package/specs/current/examples/portable-memory.jsonl +9 -9
  54. package/specs/current/examples/task-outcome.json +1 -1
  55. package/specs/current/examples/task-progress.json +1 -1
  56. package/specs/current/model-provider/examples/capabilities.json +1 -1
  57. package/specs/current/model-provider/examples/error.json +1 -1
  58. package/specs/current/model-provider/examples/request.json +1 -1
  59. package/specs/current/model-provider/examples/response.json +1 -1
  60. package/docs/npm-publishing.md +0 -44
  61. package/packages/protocol/schemas/action-result.schema.json +0 -187
  62. package/packages/protocol/schemas/action.schema.json +0 -68
  63. package/packages/protocol/schemas/archive-manifest.schema.json +0 -126
  64. package/packages/protocol/schemas/capability.schema.json +0 -131
  65. package/packages/protocol/schemas/character-instance.schema.json +0 -73
  66. package/packages/protocol/schemas/character-template.schema.json +0 -67
  67. package/packages/protocol/schemas/common.schema.json +0 -154
  68. package/packages/protocol/schemas/derived-memory.schema.json +0 -145
  69. package/packages/protocol/schemas/memory-event.schema.json +0 -123
  70. package/packages/protocol/schemas/model-provider.schema.json +0 -326
  71. package/packages/protocol/schemas/perception.schema.json +0 -89
  72. package/packages/protocol/schemas/permission-policy.schema.json +0 -153
  73. package/packages/protocol/schemas/v0.2/archive.schema.json +0 -205
  74. package/packages/protocol/schemas/v0.2/character.schema.json +0 -344
  75. package/packages/protocol/schemas/v0.2/common.schema.json +0 -239
  76. package/packages/protocol/schemas/v0.2/context.schema.json +0 -230
  77. package/packages/protocol/schemas/v0.2/conversation.schema.json +0 -340
  78. package/packages/protocol/schemas/v0.2/environment.schema.json +0 -244
  79. package/packages/protocol/schemas/v0.2/memory.schema.json +0 -495
  80. package/packages/protocol/schemas/v0.2/planning.schema.json +0 -443
  81. package/packages/protocol/schemas/world-event.schema.json +0 -74
  82. package/specs/character/README.md +0 -84
  83. package/specs/character/examples/archive-manifest.json +0 -32
  84. package/specs/character/examples/character-instance.json +0 -20
  85. package/specs/character/examples/character-template.json +0 -19
  86. package/specs/memory/README.md +0 -80
  87. package/specs/memory/examples/derived-memory.json +0 -21
  88. package/specs/memory/examples/memory-event.json +0 -35
  89. package/specs/model-provider/README.md +0 -85
  90. package/specs/model-provider/examples/capabilities.json +0 -10
  91. package/specs/model-provider/examples/error.json +0 -18
  92. package/specs/model-provider/examples/request.json +0 -17
  93. package/specs/model-provider/examples/response.json +0 -19
  94. package/specs/v0.2/README.md +0 -421
  95. package/specs/v0.2/examples/archive-fork.json +0 -64
  96. package/specs/v0.2/examples/archive-resume.json +0 -63
  97. package/specs/v0.2/examples/character-instance.json +0 -57
  98. package/specs/v0.2/examples/character-template.json +0 -45
  99. package/specs/v0.2/examples/context-after-inspection.json +0 -44
  100. package/specs/v0.2/examples/context-chat.json +0 -27
  101. package/specs/v0.2/examples/context-daily.json +0 -69
  102. package/specs/v0.2/examples/context-no-speech.json +0 -27
  103. package/specs/v0.2/examples/conversation-delivery.json +0 -17
  104. package/specs/v0.2/examples/conversation-live-request.json +0 -31
  105. package/specs/v0.2/examples/conversation-live-response.json +0 -23
  106. package/specs/v0.2/examples/conversation-no-speech-request.json +0 -23
  107. package/specs/v0.2/examples/conversation-no-speech-response.json +0 -22
  108. package/specs/v0.2/examples/conversation-requested-request.json +0 -31
  109. package/specs/v0.2/examples/conversation-requested-response.json +0 -23
  110. package/specs/v0.2/examples/environment-chat.json +0 -43
  111. package/specs/v0.2/examples/environment-game.json +0 -80
  112. package/specs/v0.2/examples/environment-no-speech.json +0 -47
  113. package/specs/v0.2/examples/intent-checkpoint.json +0 -29
  114. package/specs/v0.2/examples/memory-episode.json +0 -28
  115. package/specs/v0.2/examples/memory-event-conversation.json +0 -32
  116. package/specs/v0.2/examples/memory-event-observed.json +0 -50
  117. package/specs/v0.2/examples/memory-event-plan-proposal.json +0 -82
  118. package/specs/v0.2/examples/memory-event-proposed.json +0 -53
  119. package/specs/v0.2/examples/memory-fact.json +0 -23
  120. package/specs/v0.2/examples/memory-relationship.json +0 -25
  121. package/specs/v0.2/examples/memory-working-context.json +0 -24
  122. package/specs/v0.2/examples/plan-cancel-request.json +0 -16
  123. package/specs/v0.2/examples/plan-cancel-result.json +0 -21
  124. package/specs/v0.2/examples/plan-daily.json +0 -57
  125. package/specs/v0.2/examples/plan-partial-decision.json +0 -28
  126. package/specs/v0.2/examples/portable-memory.jsonl +0 -9
  127. package/specs/v0.2/examples/task-outcome.json +0 -21
  128. package/specs/v0.2/examples/task-progress.json +0 -19
  129. package/specs/world-adapter/README.md +0 -114
  130. package/specs/world-adapter/examples/action-result-unknown.json +0 -23
  131. package/specs/world-adapter/examples/action-result.json +0 -45
  132. package/specs/world-adapter/examples/action.json +0 -17
  133. package/specs/world-adapter/examples/capability.json +0 -44
  134. package/specs/world-adapter/examples/perception.json +0 -30
  135. package/specs/world-adapter/examples/permission-decision.json +0 -14
  136. package/specs/world-adapter/examples/permission-policy.json +0 -17
  137. package/specs/world-adapter/examples/world-event.json +0 -25
@@ -1,340 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:ifsoul:protocol:draft-0.2.0:conversation",
4
- "oneOf": [
5
- {
6
- "$ref": "#/$defs/request"
7
- },
8
- {
9
- "$ref": "#/$defs/response"
10
- },
11
- {
12
- "$ref": "#/$defs/delivery"
13
- }
14
- ],
15
- "$defs": {
16
- "request": {
17
- "type": "object",
18
- "properties": {
19
- "schemaVersion": {
20
- "const": "draft-0.2.0"
21
- },
22
- "kind": {
23
- "const": "conversation-request"
24
- },
25
- "binding": {
26
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/binding"
27
- },
28
- "requestId": {
29
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
30
- },
31
- "correlationId": {
32
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
33
- },
34
- "channelId": {
35
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
36
- },
37
- "speakerParticipantId": {
38
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
39
- },
40
- "recipientParticipantIds": {
41
- "type": "array",
42
- "items": {
43
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
44
- },
45
- "minItems": 0,
46
- "maxItems": 32,
47
- "uniqueItems": true
48
- },
49
- "environmentRevision": {
50
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
51
- },
52
- "contextRevision": {
53
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
54
- },
55
- "mode": {
56
- "enum": ["host-requested", "live-channel"]
57
- },
58
- "trigger": {
59
- "enum": ["host-request", "incoming-message", "presence-event"]
60
- },
61
- "requestedModality": {
62
- "enum": ["text", "speech", "vocalization", "gesture", "status"]
63
- },
64
- "receivedAt": {
65
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/utc"
66
- },
67
- "deadlineAt": {
68
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/utc"
69
- },
70
- "messages": {
71
- "type": "array",
72
- "items": {
73
- "type": "object",
74
- "properties": {
75
- "messageId": {
76
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
77
- },
78
- "participantId": {
79
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
80
- },
81
- "recordedAt": {
82
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/utc"
83
- },
84
- "modality": {
85
- "enum": ["text", "speech", "vocalization", "gesture", "status"]
86
- },
87
- "content": {
88
- "type": "string",
89
- "minLength": 1,
90
- "maxLength": 4000
91
- }
92
- },
93
- "required": [
94
- "messageId",
95
- "participantId",
96
- "recordedAt",
97
- "modality",
98
- "content"
99
- ],
100
- "additionalProperties": false
101
- },
102
- "minItems": 0,
103
- "maxItems": 50
104
- },
105
- "extensions": {
106
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensions"
107
- },
108
- "requiredExtensions": {
109
- "type": "array",
110
- "items": {
111
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensionName"
112
- },
113
- "minItems": 0,
114
- "maxItems": 16,
115
- "uniqueItems": true
116
- }
117
- },
118
- "required": [
119
- "schemaVersion",
120
- "kind",
121
- "binding",
122
- "requestId",
123
- "correlationId",
124
- "channelId",
125
- "speakerParticipantId",
126
- "recipientParticipantIds",
127
- "environmentRevision",
128
- "contextRevision",
129
- "mode",
130
- "trigger",
131
- "requestedModality",
132
- "receivedAt",
133
- "deadlineAt",
134
- "messages"
135
- ],
136
- "additionalProperties": false,
137
- "allOf": [
138
- {
139
- "if": {
140
- "properties": {
141
- "mode": {
142
- "const": "host-requested"
143
- }
144
- },
145
- "required": ["mode"]
146
- },
147
- "then": {
148
- "properties": {
149
- "trigger": {
150
- "const": "host-request"
151
- }
152
- }
153
- }
154
- }
155
- ]
156
- },
157
- "response": {
158
- "type": "object",
159
- "properties": {
160
- "schemaVersion": {
161
- "const": "draft-0.2.0"
162
- },
163
- "kind": {
164
- "const": "conversation-response"
165
- },
166
- "binding": {
167
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/binding"
168
- },
169
- "requestId": {
170
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
171
- },
172
- "correlationId": {
173
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
174
- },
175
- "channelId": {
176
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
177
- },
178
- "speakerParticipantId": {
179
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
180
- },
181
- "recipientParticipantIds": {
182
- "type": "array",
183
- "items": {
184
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
185
- },
186
- "minItems": 0,
187
- "maxItems": 32,
188
- "uniqueItems": true
189
- },
190
- "responseId": {
191
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
192
- },
193
- "createdAt": {
194
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/utc"
195
- },
196
- "expiresAt": {
197
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/utc"
198
- },
199
- "output": {
200
- "oneOf": [
201
- {
202
- "type": "object",
203
- "properties": {
204
- "type": {
205
- "const": "utterance"
206
- },
207
- "modality": {
208
- "enum": [
209
- "text",
210
- "speech",
211
- "vocalization",
212
- "gesture",
213
- "status"
214
- ]
215
- },
216
- "content": {
217
- "type": "string",
218
- "minLength": 1,
219
- "maxLength": 2000
220
- }
221
- },
222
- "required": ["type", "modality", "content"],
223
- "additionalProperties": false
224
- },
225
- {
226
- "type": "object",
227
- "properties": {
228
- "type": {
229
- "const": "no-output"
230
- },
231
- "reason": {
232
- "enum": [
233
- "unsupported-modality",
234
- "no-response-needed",
235
- "policy",
236
- "deadline-exceeded"
237
- ]
238
- }
239
- },
240
- "required": ["type", "reason"],
241
- "additionalProperties": false
242
- }
243
- ]
244
- },
245
- "extensions": {
246
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensions"
247
- },
248
- "requiredExtensions": {
249
- "type": "array",
250
- "items": {
251
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensionName"
252
- },
253
- "minItems": 0,
254
- "maxItems": 16,
255
- "uniqueItems": true
256
- }
257
- },
258
- "required": [
259
- "schemaVersion",
260
- "kind",
261
- "binding",
262
- "requestId",
263
- "correlationId",
264
- "channelId",
265
- "speakerParticipantId",
266
- "recipientParticipantIds",
267
- "responseId",
268
- "createdAt",
269
- "expiresAt",
270
- "output"
271
- ],
272
- "additionalProperties": false
273
- },
274
- "delivery": {
275
- "type": "object",
276
- "properties": {
277
- "schemaVersion": {
278
- "const": "draft-0.2.0"
279
- },
280
- "kind": {
281
- "const": "conversation-delivery"
282
- },
283
- "binding": {
284
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/binding"
285
- },
286
- "requestId": {
287
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
288
- },
289
- "responseId": {
290
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
291
- },
292
- "correlationId": {
293
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
294
- },
295
- "channelId": {
296
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
297
- },
298
- "deliveryId": {
299
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
300
- },
301
- "recordedAt": {
302
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/utc"
303
- },
304
- "status": {
305
- "enum": ["accepted", "delivered", "rejected", "unknown"]
306
- },
307
- "reason": {
308
- "type": "string",
309
- "minLength": 1,
310
- "maxLength": 500
311
- },
312
- "extensions": {
313
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensions"
314
- },
315
- "requiredExtensions": {
316
- "type": "array",
317
- "items": {
318
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensionName"
319
- },
320
- "minItems": 0,
321
- "maxItems": 16,
322
- "uniqueItems": true
323
- }
324
- },
325
- "required": [
326
- "schemaVersion",
327
- "kind",
328
- "binding",
329
- "requestId",
330
- "responseId",
331
- "correlationId",
332
- "channelId",
333
- "deliveryId",
334
- "recordedAt",
335
- "status"
336
- ],
337
- "additionalProperties": false
338
- }
339
- }
340
- }
@@ -1,244 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:ifsoul:protocol:draft-0.2.0:environment",
4
- "type": "object",
5
- "properties": {
6
- "schemaVersion": {
7
- "const": "draft-0.2.0"
8
- },
9
- "kind": {
10
- "const": "environment-profile"
11
- },
12
- "binding": {
13
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/binding"
14
- },
15
- "hostId": {
16
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
17
- },
18
- "revision": {
19
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
20
- },
21
- "medium": {
22
- "enum": ["game", "chat"]
23
- },
24
- "embodiment": {
25
- "type": "object",
26
- "properties": {
27
- "form": {
28
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
29
- },
30
- "description": {
31
- "type": "string",
32
- "minLength": 1,
33
- "maxLength": 500
34
- },
35
- "modalities": {
36
- "type": "array",
37
- "items": {
38
- "enum": ["speech", "text", "vocalization", "gesture", "status"]
39
- },
40
- "minItems": 0,
41
- "maxItems": 5,
42
- "uniqueItems": true
43
- }
44
- },
45
- "required": ["form", "description", "modalities"],
46
- "additionalProperties": false
47
- },
48
- "participantLinks": {
49
- "type": "array",
50
- "items": {
51
- "type": "object",
52
- "properties": {
53
- "claimId": {
54
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
55
- },
56
- "participantId": {
57
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
58
- },
59
- "environmentSubjectId": {
60
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
61
- },
62
- "issuerId": {
63
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
64
- }
65
- },
66
- "required": [
67
- "claimId",
68
- "participantId",
69
- "environmentSubjectId",
70
- "issuerId"
71
- ],
72
- "additionalProperties": false
73
- },
74
- "minItems": 0,
75
- "maxItems": 64
76
- },
77
- "planning": {
78
- "type": "object",
79
- "properties": {
80
- "cadence": {
81
- "enum": ["host-requested", "daily", "event-driven"]
82
- },
83
- "maxTasks": {
84
- "type": "integer",
85
- "minimum": 1,
86
- "maximum": 16
87
- }
88
- },
89
- "required": ["cadence", "maxTasks"],
90
- "additionalProperties": false
91
- },
92
- "communication": {
93
- "type": "object",
94
- "properties": {
95
- "mode": {
96
- "enum": ["host-requested", "live-channel"]
97
- },
98
- "availability": {
99
- "enum": ["on-demand", "persistent"]
100
- },
101
- "allowUnrequestedMessages": {
102
- "type": "boolean"
103
- },
104
- "channelIds": {
105
- "type": "array",
106
- "items": {
107
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
108
- },
109
- "minItems": 0,
110
- "maxItems": 16,
111
- "uniqueItems": true
112
- }
113
- },
114
- "required": [
115
- "mode",
116
- "availability",
117
- "allowUnrequestedMessages",
118
- "channelIds"
119
- ],
120
- "additionalProperties": false
121
- },
122
- "hostIntents": {
123
- "type": "array",
124
- "items": {
125
- "type": "object",
126
- "properties": {
127
- "intentId": {
128
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
129
- },
130
- "description": {
131
- "type": "string",
132
- "minLength": 1,
133
- "maxLength": 500
134
- },
135
- "parameters": {
136
- "type": "array",
137
- "items": {
138
- "type": "object",
139
- "properties": {
140
- "name": {
141
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
142
- },
143
- "type": {
144
- "enum": ["entity-ref", "choice", "quantity", "boolean"]
145
- },
146
- "required": {
147
- "type": "boolean"
148
- },
149
- "choices": {
150
- "type": "array",
151
- "items": {
152
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
153
- },
154
- "minItems": 1,
155
- "maxItems": 32,
156
- "uniqueItems": true
157
- },
158
- "unit": {
159
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/id"
160
- },
161
- "minimum": {
162
- "type": "number"
163
- },
164
- "maximum": {
165
- "type": "number"
166
- }
167
- },
168
- "required": ["name", "type", "required"],
169
- "additionalProperties": false
170
- },
171
- "minItems": 0,
172
- "maxItems": 16
173
- },
174
- "cancellable": {
175
- "type": "boolean"
176
- }
177
- },
178
- "required": ["intentId", "description", "parameters", "cancellable"],
179
- "additionalProperties": false
180
- },
181
- "minItems": 0,
182
- "maxItems": 32
183
- },
184
- "worldTime": {
185
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/worldTime"
186
- },
187
- "extensions": {
188
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensions"
189
- },
190
- "requiredExtensions": {
191
- "type": "array",
192
- "items": {
193
- "$ref": "urn:ifsoul:protocol:draft-0.2.0:common#/$defs/extensionName"
194
- },
195
- "minItems": 0,
196
- "maxItems": 16,
197
- "uniqueItems": true
198
- }
199
- },
200
- "required": [
201
- "schemaVersion",
202
- "kind",
203
- "binding",
204
- "hostId",
205
- "revision",
206
- "medium",
207
- "embodiment",
208
- "participantLinks",
209
- "planning",
210
- "communication",
211
- "hostIntents"
212
- ],
213
- "additionalProperties": false,
214
- "allOf": [
215
- {
216
- "if": {
217
- "properties": {
218
- "communication": {
219
- "type": "object",
220
- "properties": {
221
- "mode": {
222
- "const": "host-requested"
223
- }
224
- },
225
- "required": ["mode"]
226
- }
227
- },
228
- "required": ["communication"]
229
- },
230
- "then": {
231
- "properties": {
232
- "communication": {
233
- "type": "object",
234
- "properties": {
235
- "allowUnrequestedMessages": {
236
- "const": false
237
- }
238
- }
239
- }
240
- }
241
- }
242
- }
243
- ]
244
- }