@ifsoul/core 0.3.0 → 0.5.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 (147) hide show
  1. package/README.md +30 -33
  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/behavior-types.d.ts +150 -0
  8. package/dist/packages/runtime/src/behavior-types.js +1 -0
  9. package/dist/packages/runtime/src/behavior.d.ts +40 -0
  10. package/dist/packages/runtime/src/behavior.js +621 -0
  11. package/dist/packages/runtime/src/group-scheduler.d.ts +165 -0
  12. package/dist/packages/runtime/src/group-scheduler.js +647 -0
  13. package/dist/packages/runtime/src/index.d.ts +4 -0
  14. package/dist/packages/runtime/src/index.js +4 -1
  15. package/dist/packages/runtime/src/participants.d.ts +107 -0
  16. package/dist/packages/runtime/src/participants.js +309 -0
  17. package/dist/packages/runtime/src/types.d.ts +1 -0
  18. package/package.json +2 -3
  19. package/packages/protocol/schemas/current/archive.schema.json +16 -16
  20. package/packages/protocol/schemas/current/character.schema.json +21 -21
  21. package/packages/protocol/schemas/current/common.schema.json +15 -15
  22. package/packages/protocol/schemas/current/context.schema.json +24 -24
  23. package/packages/protocol/schemas/current/conversation.schema.json +39 -39
  24. package/packages/protocol/schemas/current/environment.schema.json +18 -18
  25. package/packages/protocol/schemas/current/memory.schema.json +66 -66
  26. package/packages/protocol/schemas/current/model-provider.schema.json +40 -40
  27. package/packages/protocol/schemas/current/planning.schema.json +61 -61
  28. package/packages/protocol/schemas/current/provider-common.schema.json +6 -6
  29. package/release.json +7 -12
  30. package/specs/README.md +3 -86
  31. package/specs/current/README.md +3 -5
  32. package/specs/current/examples/archive-fork.json +12 -12
  33. package/specs/current/examples/archive-resume.json +12 -12
  34. package/specs/current/examples/character-instance.json +1 -1
  35. package/specs/current/examples/character-template.json +1 -1
  36. package/specs/current/examples/context-after-inspection.json +1 -1
  37. package/specs/current/examples/context-chat.json +1 -1
  38. package/specs/current/examples/context-daily.json +1 -1
  39. package/specs/current/examples/context-no-speech.json +1 -1
  40. package/specs/current/examples/conversation-delivery.json +1 -1
  41. package/specs/current/examples/conversation-live-request.json +1 -1
  42. package/specs/current/examples/conversation-live-response.json +1 -1
  43. package/specs/current/examples/conversation-no-speech-request.json +1 -1
  44. package/specs/current/examples/conversation-no-speech-response.json +1 -1
  45. package/specs/current/examples/conversation-requested-request.json +1 -1
  46. package/specs/current/examples/conversation-requested-response.json +1 -1
  47. package/specs/current/examples/environment-chat.json +1 -1
  48. package/specs/current/examples/environment-game.json +1 -1
  49. package/specs/current/examples/environment-no-speech.json +1 -1
  50. package/specs/current/examples/intent-checkpoint.json +1 -1
  51. package/specs/current/examples/memory-episode.json +1 -1
  52. package/specs/current/examples/memory-event-conversation.json +1 -1
  53. package/specs/current/examples/memory-event-observed.json +2 -2
  54. package/specs/current/examples/memory-event-plan-proposal.json +2 -2
  55. package/specs/current/examples/memory-event-proposed.json +2 -2
  56. package/specs/current/examples/memory-fact.json +1 -1
  57. package/specs/current/examples/memory-relationship.json +1 -1
  58. package/specs/current/examples/memory-working-context.json +1 -1
  59. package/specs/current/examples/plan-cancel-request.json +1 -1
  60. package/specs/current/examples/plan-cancel-result.json +1 -1
  61. package/specs/current/examples/plan-daily.json +1 -1
  62. package/specs/current/examples/plan-partial-decision.json +1 -1
  63. package/specs/current/examples/portable-memory.jsonl +9 -9
  64. package/specs/current/examples/task-outcome.json +1 -1
  65. package/specs/current/examples/task-progress.json +1 -1
  66. package/specs/current/model-provider/examples/capabilities.json +1 -1
  67. package/specs/current/model-provider/examples/error.json +1 -1
  68. package/specs/current/model-provider/examples/request.json +1 -1
  69. package/specs/current/model-provider/examples/response.json +1 -1
  70. package/docs/npm-publishing.md +0 -44
  71. package/packages/protocol/schemas/action-result.schema.json +0 -187
  72. package/packages/protocol/schemas/action.schema.json +0 -68
  73. package/packages/protocol/schemas/archive-manifest.schema.json +0 -126
  74. package/packages/protocol/schemas/capability.schema.json +0 -131
  75. package/packages/protocol/schemas/character-instance.schema.json +0 -73
  76. package/packages/protocol/schemas/character-template.schema.json +0 -67
  77. package/packages/protocol/schemas/common.schema.json +0 -154
  78. package/packages/protocol/schemas/derived-memory.schema.json +0 -145
  79. package/packages/protocol/schemas/memory-event.schema.json +0 -123
  80. package/packages/protocol/schemas/model-provider.schema.json +0 -326
  81. package/packages/protocol/schemas/perception.schema.json +0 -89
  82. package/packages/protocol/schemas/permission-policy.schema.json +0 -153
  83. package/packages/protocol/schemas/v0.2/archive.schema.json +0 -205
  84. package/packages/protocol/schemas/v0.2/character.schema.json +0 -344
  85. package/packages/protocol/schemas/v0.2/common.schema.json +0 -239
  86. package/packages/protocol/schemas/v0.2/context.schema.json +0 -230
  87. package/packages/protocol/schemas/v0.2/conversation.schema.json +0 -340
  88. package/packages/protocol/schemas/v0.2/environment.schema.json +0 -244
  89. package/packages/protocol/schemas/v0.2/memory.schema.json +0 -495
  90. package/packages/protocol/schemas/v0.2/planning.schema.json +0 -443
  91. package/packages/protocol/schemas/world-event.schema.json +0 -74
  92. package/specs/character/README.md +0 -84
  93. package/specs/character/examples/archive-manifest.json +0 -32
  94. package/specs/character/examples/character-instance.json +0 -20
  95. package/specs/character/examples/character-template.json +0 -19
  96. package/specs/memory/README.md +0 -80
  97. package/specs/memory/examples/derived-memory.json +0 -21
  98. package/specs/memory/examples/memory-event.json +0 -35
  99. package/specs/model-provider/README.md +0 -85
  100. package/specs/model-provider/examples/capabilities.json +0 -10
  101. package/specs/model-provider/examples/error.json +0 -18
  102. package/specs/model-provider/examples/request.json +0 -17
  103. package/specs/model-provider/examples/response.json +0 -19
  104. package/specs/v0.2/README.md +0 -421
  105. package/specs/v0.2/examples/archive-fork.json +0 -64
  106. package/specs/v0.2/examples/archive-resume.json +0 -63
  107. package/specs/v0.2/examples/character-instance.json +0 -57
  108. package/specs/v0.2/examples/character-template.json +0 -45
  109. package/specs/v0.2/examples/context-after-inspection.json +0 -44
  110. package/specs/v0.2/examples/context-chat.json +0 -27
  111. package/specs/v0.2/examples/context-daily.json +0 -69
  112. package/specs/v0.2/examples/context-no-speech.json +0 -27
  113. package/specs/v0.2/examples/conversation-delivery.json +0 -17
  114. package/specs/v0.2/examples/conversation-live-request.json +0 -31
  115. package/specs/v0.2/examples/conversation-live-response.json +0 -23
  116. package/specs/v0.2/examples/conversation-no-speech-request.json +0 -23
  117. package/specs/v0.2/examples/conversation-no-speech-response.json +0 -22
  118. package/specs/v0.2/examples/conversation-requested-request.json +0 -31
  119. package/specs/v0.2/examples/conversation-requested-response.json +0 -23
  120. package/specs/v0.2/examples/environment-chat.json +0 -43
  121. package/specs/v0.2/examples/environment-game.json +0 -80
  122. package/specs/v0.2/examples/environment-no-speech.json +0 -47
  123. package/specs/v0.2/examples/intent-checkpoint.json +0 -29
  124. package/specs/v0.2/examples/memory-episode.json +0 -28
  125. package/specs/v0.2/examples/memory-event-conversation.json +0 -32
  126. package/specs/v0.2/examples/memory-event-observed.json +0 -50
  127. package/specs/v0.2/examples/memory-event-plan-proposal.json +0 -82
  128. package/specs/v0.2/examples/memory-event-proposed.json +0 -53
  129. package/specs/v0.2/examples/memory-fact.json +0 -23
  130. package/specs/v0.2/examples/memory-relationship.json +0 -25
  131. package/specs/v0.2/examples/memory-working-context.json +0 -24
  132. package/specs/v0.2/examples/plan-cancel-request.json +0 -16
  133. package/specs/v0.2/examples/plan-cancel-result.json +0 -21
  134. package/specs/v0.2/examples/plan-daily.json +0 -57
  135. package/specs/v0.2/examples/plan-partial-decision.json +0 -28
  136. package/specs/v0.2/examples/portable-memory.jsonl +0 -9
  137. package/specs/v0.2/examples/task-outcome.json +0 -21
  138. package/specs/v0.2/examples/task-progress.json +0 -19
  139. package/specs/world-adapter/README.md +0 -114
  140. package/specs/world-adapter/examples/action-result-unknown.json +0 -23
  141. package/specs/world-adapter/examples/action-result.json +0 -45
  142. package/specs/world-adapter/examples/action.json +0 -17
  143. package/specs/world-adapter/examples/capability.json +0 -44
  144. package/specs/world-adapter/examples/perception.json +0 -30
  145. package/specs/world-adapter/examples/permission-decision.json +0 -14
  146. package/specs/world-adapter/examples/permission-policy.json +0 -17
  147. package/specs/world-adapter/examples/world-event.json +0 -25
@@ -1,326 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:ifsoul:protocol:draft-0.1.0:model-provider",
4
- "oneOf": [
5
- {
6
- "$ref": "#/$defs/capabilities"
7
- },
8
- {
9
- "$ref": "#/$defs/request"
10
- },
11
- {
12
- "$ref": "#/$defs/response"
13
- },
14
- {
15
- "$ref": "#/$defs/error"
16
- }
17
- ],
18
- "$defs": {
19
- "capabilities": {
20
- "type": "object",
21
- "properties": {
22
- "schemaVersion": {
23
- "const": "draft-0.1.0"
24
- },
25
- "kind": {
26
- "const": "provider-capabilities"
27
- },
28
- "providerId": {
29
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
30
- },
31
- "modelId": {
32
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
33
- },
34
- "toolCalling": {
35
- "type": "boolean"
36
- },
37
- "structuredOutput": {
38
- "type": "boolean"
39
- },
40
- "cancellation": {
41
- "enum": ["best-effort", "unsupported"]
42
- },
43
- "usage": {
44
- "type": "boolean"
45
- },
46
- "extensions": {
47
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
48
- },
49
- "requiredExtensions": {
50
- "type": "array",
51
- "items": {
52
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
53
- },
54
- "minItems": 0,
55
- "uniqueItems": true
56
- }
57
- },
58
- "required": [
59
- "schemaVersion",
60
- "kind",
61
- "providerId",
62
- "modelId",
63
- "toolCalling",
64
- "structuredOutput",
65
- "cancellation",
66
- "usage"
67
- ],
68
- "additionalProperties": false
69
- },
70
- "request": {
71
- "type": "object",
72
- "properties": {
73
- "schemaVersion": {
74
- "const": "draft-0.1.0"
75
- },
76
- "kind": {
77
- "const": "model-request"
78
- },
79
- "requestId": {
80
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
81
- },
82
- "providerId": {
83
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
84
- },
85
- "modelId": {
86
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
87
- },
88
- "messages": {
89
- "type": "array",
90
- "items": {
91
- "type": "object",
92
- "properties": {
93
- "role": {
94
- "enum": ["system", "user", "assistant", "tool"]
95
- },
96
- "content": {
97
- "type": "string"
98
- },
99
- "toolCallId": {
100
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
101
- },
102
- "toolCalls": {
103
- "type": "array",
104
- "items": {
105
- "type": "object",
106
- "properties": {
107
- "toolCallId": {
108
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
109
- },
110
- "name": {
111
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
112
- },
113
- "arguments": {
114
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/jsonObject"
115
- }
116
- },
117
- "required": ["toolCallId", "name", "arguments"],
118
- "additionalProperties": false
119
- },
120
- "minItems": 0
121
- }
122
- },
123
- "required": ["role", "content"],
124
- "additionalProperties": false
125
- },
126
- "minItems": 1
127
- },
128
- "tools": {
129
- "type": "array",
130
- "items": {
131
- "type": "object",
132
- "properties": {
133
- "name": {
134
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
135
- },
136
- "description": {
137
- "type": "string",
138
- "minLength": 1
139
- },
140
- "argumentsSchema": {
141
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/jsonSchema"
142
- }
143
- },
144
- "required": ["name", "description", "argumentsSchema"],
145
- "additionalProperties": false
146
- },
147
- "minItems": 0
148
- },
149
- "toolChoice": {
150
- "enum": ["none", "auto", "required"]
151
- },
152
- "outputFormat": {
153
- "enum": ["text", "json-object"]
154
- },
155
- "deadlineAt": {
156
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/utcTimestamp"
157
- },
158
- "cancellationId": {
159
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
160
- },
161
- "maxOutputTokens": {
162
- "type": "integer",
163
- "minimum": 1
164
- },
165
- "extensions": {
166
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
167
- },
168
- "requiredExtensions": {
169
- "type": "array",
170
- "items": {
171
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
172
- },
173
- "minItems": 0,
174
- "uniqueItems": true
175
- }
176
- },
177
- "required": [
178
- "schemaVersion",
179
- "kind",
180
- "requestId",
181
- "providerId",
182
- "modelId",
183
- "messages",
184
- "toolChoice",
185
- "outputFormat",
186
- "deadlineAt"
187
- ],
188
- "additionalProperties": false
189
- },
190
- "response": {
191
- "type": "object",
192
- "properties": {
193
- "schemaVersion": {
194
- "const": "draft-0.1.0"
195
- },
196
- "kind": {
197
- "const": "model-response"
198
- },
199
- "requestId": {
200
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
201
- },
202
- "providerId": {
203
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
204
- },
205
- "modelId": {
206
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
207
- },
208
- "recordedAt": {
209
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/utcTimestamp"
210
- },
211
- "status": {
212
- "enum": ["completed", "incomplete", "cancelled"]
213
- },
214
- "output": {
215
- "type": "object",
216
- "properties": {
217
- "text": {
218
- "type": "string"
219
- },
220
- "toolCalls": {
221
- "type": "array",
222
- "items": {
223
- "type": "object",
224
- "properties": {
225
- "toolCallId": {
226
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
227
- },
228
- "name": {
229
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
230
- },
231
- "arguments": {
232
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/jsonObject"
233
- }
234
- },
235
- "required": ["toolCallId", "name", "arguments"],
236
- "additionalProperties": false
237
- },
238
- "minItems": 0
239
- }
240
- },
241
- "required": ["text", "toolCalls"],
242
- "additionalProperties": false
243
- },
244
- "finishReason": {
245
- "enum": ["stop", "tool-calls", "length", "cancelled"]
246
- },
247
- "usage": {
248
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/usage"
249
- },
250
- "extensions": {
251
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
252
- },
253
- "requiredExtensions": {
254
- "type": "array",
255
- "items": {
256
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
257
- },
258
- "minItems": 0,
259
- "uniqueItems": true
260
- }
261
- },
262
- "required": [
263
- "schemaVersion",
264
- "kind",
265
- "requestId",
266
- "providerId",
267
- "modelId",
268
- "recordedAt",
269
- "status",
270
- "output",
271
- "finishReason"
272
- ],
273
- "additionalProperties": false
274
- },
275
- "error": {
276
- "type": "object",
277
- "properties": {
278
- "schemaVersion": {
279
- "const": "draft-0.1.0"
280
- },
281
- "kind": {
282
- "const": "model-error"
283
- },
284
- "requestId": {
285
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
286
- },
287
- "providerId": {
288
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
289
- },
290
- "modelId": {
291
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
292
- },
293
- "recordedAt": {
294
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/utcTimestamp"
295
- },
296
- "error": {
297
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/error"
298
- },
299
- "usage": {
300
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/usage"
301
- },
302
- "extensions": {
303
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
304
- },
305
- "requiredExtensions": {
306
- "type": "array",
307
- "items": {
308
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
309
- },
310
- "minItems": 0,
311
- "uniqueItems": true
312
- }
313
- },
314
- "required": [
315
- "schemaVersion",
316
- "kind",
317
- "requestId",
318
- "providerId",
319
- "modelId",
320
- "recordedAt",
321
- "error"
322
- ],
323
- "additionalProperties": false
324
- }
325
- }
326
- }
@@ -1,89 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:ifsoul:protocol:draft-0.1.0:perception",
4
- "type": "object",
5
- "properties": {
6
- "schemaVersion": {
7
- "const": "draft-0.1.0"
8
- },
9
- "kind": {
10
- "const": "perception"
11
- },
12
- "observationId": {
13
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
14
- },
15
- "adapterId": {
16
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
17
- },
18
- "worldId": {
19
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
20
- },
21
- "sessionId": {
22
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
23
- },
24
- "observerId": {
25
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
26
- },
27
- "observedAt": {
28
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/utcTimestamp"
29
- },
30
- "worldTime": {
31
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/worldTime"
32
- },
33
- "worldRevision": {
34
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
35
- },
36
- "observations": {
37
- "type": "array",
38
- "items": {
39
- "type": "object",
40
- "properties": {
41
- "subjectId": {
42
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
43
- },
44
- "scope": {
45
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/scope"
46
- },
47
- "payload": {
48
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/jsonObject"
49
- }
50
- },
51
- "required": ["subjectId", "scope", "payload"],
52
- "additionalProperties": false
53
- },
54
- "minItems": 0
55
- },
56
- "availableCapabilityIds": {
57
- "type": "array",
58
- "items": {
59
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
60
- },
61
- "minItems": 0,
62
- "uniqueItems": true
63
- },
64
- "extensions": {
65
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
66
- },
67
- "requiredExtensions": {
68
- "type": "array",
69
- "items": {
70
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
71
- },
72
- "minItems": 0,
73
- "uniqueItems": true
74
- }
75
- },
76
- "required": [
77
- "schemaVersion",
78
- "kind",
79
- "observationId",
80
- "adapterId",
81
- "worldId",
82
- "sessionId",
83
- "observerId",
84
- "observedAt",
85
- "worldTime",
86
- "observations"
87
- ],
88
- "additionalProperties": false
89
- }
@@ -1,153 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "urn:ifsoul:protocol:draft-0.1.0:permission-policy",
4
- "oneOf": [
5
- {
6
- "$ref": "#/$defs/policy"
7
- },
8
- {
9
- "$ref": "#/$defs/decision"
10
- }
11
- ],
12
- "$defs": {
13
- "policy": {
14
- "type": "object",
15
- "properties": {
16
- "schemaVersion": {
17
- "const": "draft-0.1.0"
18
- },
19
- "kind": {
20
- "const": "permission-policy"
21
- },
22
- "policyId": {
23
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
24
- },
25
- "revision": {
26
- "type": "integer",
27
- "minimum": 1
28
- },
29
- "worldId": {
30
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
31
- },
32
- "sessionId": {
33
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
34
- },
35
- "rules": {
36
- "type": "array",
37
- "items": {
38
- "type": "object",
39
- "properties": {
40
- "ruleId": {
41
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
42
- },
43
- "subjectId": {
44
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
45
- },
46
- "resource": {
47
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
48
- },
49
- "action": {
50
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
51
- },
52
- "effect": {
53
- "enum": ["grant", "revoke"]
54
- }
55
- },
56
- "required": ["ruleId", "subjectId", "resource", "action", "effect"],
57
- "additionalProperties": false
58
- },
59
- "minItems": 0
60
- },
61
- "extensions": {
62
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
63
- },
64
- "requiredExtensions": {
65
- "type": "array",
66
- "items": {
67
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
68
- },
69
- "minItems": 0,
70
- "uniqueItems": true
71
- }
72
- },
73
- "required": [
74
- "schemaVersion",
75
- "kind",
76
- "policyId",
77
- "revision",
78
- "worldId",
79
- "sessionId",
80
- "rules"
81
- ],
82
- "additionalProperties": false
83
- },
84
- "decision": {
85
- "type": "object",
86
- "properties": {
87
- "schemaVersion": {
88
- "const": "draft-0.1.0"
89
- },
90
- "kind": {
91
- "const": "permission-decision"
92
- },
93
- "decisionId": {
94
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
95
- },
96
- "policyId": {
97
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
98
- },
99
- "policyRevision": {
100
- "type": "integer",
101
- "minimum": 1
102
- },
103
- "worldId": {
104
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
105
- },
106
- "sessionId": {
107
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
108
- },
109
- "subjectId": {
110
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
111
- },
112
- "resource": {
113
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
114
- },
115
- "action": {
116
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
117
- },
118
- "decision": {
119
- "enum": ["allow", "deny"]
120
- },
121
- "evaluatedAt": {
122
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/utcTimestamp"
123
- },
124
- "extensions": {
125
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
126
- },
127
- "requiredExtensions": {
128
- "type": "array",
129
- "items": {
130
- "$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
131
- },
132
- "minItems": 0,
133
- "uniqueItems": true
134
- }
135
- },
136
- "required": [
137
- "schemaVersion",
138
- "kind",
139
- "decisionId",
140
- "policyId",
141
- "policyRevision",
142
- "worldId",
143
- "sessionId",
144
- "subjectId",
145
- "resource",
146
- "action",
147
- "decision",
148
- "evaluatedAt"
149
- ],
150
- "additionalProperties": false
151
- }
152
- }
153
- }