@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.
- package/README.md +28 -34
- package/dist/packages/memory/src/sql.js +54 -5
- package/dist/packages/protocol/src/generated/validators.cjs +1 -1
- package/dist/packages/protocol/src/index.d.ts +1 -6
- package/dist/packages/protocol/src/index.js +3 -16
- package/dist/packages/protocol/src/types.d.ts +1 -1
- package/dist/packages/runtime/src/index.js +1 -1
- package/package.json +2 -3
- package/packages/protocol/schemas/current/archive.schema.json +16 -16
- package/packages/protocol/schemas/current/character.schema.json +21 -21
- package/packages/protocol/schemas/current/common.schema.json +15 -15
- package/packages/protocol/schemas/current/context.schema.json +24 -24
- package/packages/protocol/schemas/current/conversation.schema.json +39 -39
- package/packages/protocol/schemas/current/environment.schema.json +18 -18
- package/packages/protocol/schemas/current/memory.schema.json +66 -66
- package/packages/protocol/schemas/current/model-provider.schema.json +40 -40
- package/packages/protocol/schemas/current/planning.schema.json +61 -61
- package/packages/protocol/schemas/current/provider-common.schema.json +6 -6
- package/release.json +7 -12
- package/specs/README.md +3 -86
- package/specs/current/README.md +3 -5
- package/specs/current/examples/archive-fork.json +12 -12
- package/specs/current/examples/archive-resume.json +12 -12
- package/specs/current/examples/character-instance.json +1 -1
- package/specs/current/examples/character-template.json +1 -1
- package/specs/current/examples/context-after-inspection.json +1 -1
- package/specs/current/examples/context-chat.json +1 -1
- package/specs/current/examples/context-daily.json +1 -1
- package/specs/current/examples/context-no-speech.json +1 -1
- package/specs/current/examples/conversation-delivery.json +1 -1
- package/specs/current/examples/conversation-live-request.json +1 -1
- package/specs/current/examples/conversation-live-response.json +1 -1
- package/specs/current/examples/conversation-no-speech-request.json +1 -1
- package/specs/current/examples/conversation-no-speech-response.json +1 -1
- package/specs/current/examples/conversation-requested-request.json +1 -1
- package/specs/current/examples/conversation-requested-response.json +1 -1
- package/specs/current/examples/environment-chat.json +1 -1
- package/specs/current/examples/environment-game.json +1 -1
- package/specs/current/examples/environment-no-speech.json +1 -1
- package/specs/current/examples/intent-checkpoint.json +1 -1
- package/specs/current/examples/memory-episode.json +1 -1
- package/specs/current/examples/memory-event-conversation.json +1 -1
- package/specs/current/examples/memory-event-observed.json +2 -2
- package/specs/current/examples/memory-event-plan-proposal.json +2 -2
- package/specs/current/examples/memory-event-proposed.json +2 -2
- package/specs/current/examples/memory-fact.json +1 -1
- package/specs/current/examples/memory-relationship.json +1 -1
- package/specs/current/examples/memory-working-context.json +1 -1
- package/specs/current/examples/plan-cancel-request.json +1 -1
- package/specs/current/examples/plan-cancel-result.json +1 -1
- package/specs/current/examples/plan-daily.json +1 -1
- package/specs/current/examples/plan-partial-decision.json +1 -1
- package/specs/current/examples/portable-memory.jsonl +9 -9
- package/specs/current/examples/task-outcome.json +1 -1
- package/specs/current/examples/task-progress.json +1 -1
- package/specs/current/model-provider/examples/capabilities.json +1 -1
- package/specs/current/model-provider/examples/error.json +1 -1
- package/specs/current/model-provider/examples/request.json +1 -1
- package/specs/current/model-provider/examples/response.json +1 -1
- package/docs/npm-publishing.md +0 -44
- package/packages/protocol/schemas/action-result.schema.json +0 -187
- package/packages/protocol/schemas/action.schema.json +0 -68
- package/packages/protocol/schemas/archive-manifest.schema.json +0 -126
- package/packages/protocol/schemas/capability.schema.json +0 -131
- package/packages/protocol/schemas/character-instance.schema.json +0 -73
- package/packages/protocol/schemas/character-template.schema.json +0 -67
- package/packages/protocol/schemas/common.schema.json +0 -154
- package/packages/protocol/schemas/derived-memory.schema.json +0 -145
- package/packages/protocol/schemas/memory-event.schema.json +0 -123
- package/packages/protocol/schemas/model-provider.schema.json +0 -326
- package/packages/protocol/schemas/perception.schema.json +0 -89
- package/packages/protocol/schemas/permission-policy.schema.json +0 -153
- package/packages/protocol/schemas/v0.2/archive.schema.json +0 -205
- package/packages/protocol/schemas/v0.2/character.schema.json +0 -344
- package/packages/protocol/schemas/v0.2/common.schema.json +0 -239
- package/packages/protocol/schemas/v0.2/context.schema.json +0 -230
- package/packages/protocol/schemas/v0.2/conversation.schema.json +0 -340
- package/packages/protocol/schemas/v0.2/environment.schema.json +0 -244
- package/packages/protocol/schemas/v0.2/memory.schema.json +0 -495
- package/packages/protocol/schemas/v0.2/planning.schema.json +0 -443
- package/packages/protocol/schemas/world-event.schema.json +0 -74
- package/specs/character/README.md +0 -84
- package/specs/character/examples/archive-manifest.json +0 -32
- package/specs/character/examples/character-instance.json +0 -20
- package/specs/character/examples/character-template.json +0 -19
- package/specs/memory/README.md +0 -80
- package/specs/memory/examples/derived-memory.json +0 -21
- package/specs/memory/examples/memory-event.json +0 -35
- package/specs/model-provider/README.md +0 -85
- package/specs/model-provider/examples/capabilities.json +0 -10
- package/specs/model-provider/examples/error.json +0 -18
- package/specs/model-provider/examples/request.json +0 -17
- package/specs/model-provider/examples/response.json +0 -19
- package/specs/v0.2/README.md +0 -421
- package/specs/v0.2/examples/archive-fork.json +0 -64
- package/specs/v0.2/examples/archive-resume.json +0 -63
- package/specs/v0.2/examples/character-instance.json +0 -57
- package/specs/v0.2/examples/character-template.json +0 -45
- package/specs/v0.2/examples/context-after-inspection.json +0 -44
- package/specs/v0.2/examples/context-chat.json +0 -27
- package/specs/v0.2/examples/context-daily.json +0 -69
- package/specs/v0.2/examples/context-no-speech.json +0 -27
- package/specs/v0.2/examples/conversation-delivery.json +0 -17
- package/specs/v0.2/examples/conversation-live-request.json +0 -31
- package/specs/v0.2/examples/conversation-live-response.json +0 -23
- package/specs/v0.2/examples/conversation-no-speech-request.json +0 -23
- package/specs/v0.2/examples/conversation-no-speech-response.json +0 -22
- package/specs/v0.2/examples/conversation-requested-request.json +0 -31
- package/specs/v0.2/examples/conversation-requested-response.json +0 -23
- package/specs/v0.2/examples/environment-chat.json +0 -43
- package/specs/v0.2/examples/environment-game.json +0 -80
- package/specs/v0.2/examples/environment-no-speech.json +0 -47
- package/specs/v0.2/examples/intent-checkpoint.json +0 -29
- package/specs/v0.2/examples/memory-episode.json +0 -28
- package/specs/v0.2/examples/memory-event-conversation.json +0 -32
- package/specs/v0.2/examples/memory-event-observed.json +0 -50
- package/specs/v0.2/examples/memory-event-plan-proposal.json +0 -82
- package/specs/v0.2/examples/memory-event-proposed.json +0 -53
- package/specs/v0.2/examples/memory-fact.json +0 -23
- package/specs/v0.2/examples/memory-relationship.json +0 -25
- package/specs/v0.2/examples/memory-working-context.json +0 -24
- package/specs/v0.2/examples/plan-cancel-request.json +0 -16
- package/specs/v0.2/examples/plan-cancel-result.json +0 -21
- package/specs/v0.2/examples/plan-daily.json +0 -57
- package/specs/v0.2/examples/plan-partial-decision.json +0 -28
- package/specs/v0.2/examples/portable-memory.jsonl +0 -9
- package/specs/v0.2/examples/task-outcome.json +0 -21
- package/specs/v0.2/examples/task-progress.json +0 -19
- package/specs/world-adapter/README.md +0 -114
- package/specs/world-adapter/examples/action-result-unknown.json +0 -23
- package/specs/world-adapter/examples/action-result.json +0 -45
- package/specs/world-adapter/examples/action.json +0 -17
- package/specs/world-adapter/examples/capability.json +0 -44
- package/specs/world-adapter/examples/perception.json +0 -30
- package/specs/world-adapter/examples/permission-decision.json +0 -14
- package/specs/world-adapter/examples/permission-policy.json +0 -17
- package/specs/world-adapter/examples/world-event.json +0 -25
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "0.
|
|
2
|
+
"schemaVersion": "0.4.0",
|
|
3
3
|
"kind": "memory-event",
|
|
4
4
|
"memoryId": "event-inspection",
|
|
5
5
|
"characterId": "character-mira",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"tick": 110
|
|
28
28
|
},
|
|
29
29
|
"recordedPayload": {
|
|
30
|
-
"schemaVersion": "0.
|
|
30
|
+
"schemaVersion": "0.4.0",
|
|
31
31
|
"kind": "task-report",
|
|
32
32
|
"binding": {
|
|
33
33
|
"environmentId": "garden",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "0.
|
|
2
|
+
"schemaVersion": "0.4.0",
|
|
3
3
|
"kind": "memory-event",
|
|
4
4
|
"memoryId": "event-plan-proposal",
|
|
5
5
|
"characterId": "character-mira",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"environmentId": "garden",
|
|
24
24
|
"sessionId": "garden-session-1",
|
|
25
25
|
"recordedPayload": {
|
|
26
|
-
"schemaVersion": "0.
|
|
26
|
+
"schemaVersion": "0.4.0",
|
|
27
27
|
"kind": "plan-proposal",
|
|
28
28
|
"binding": {
|
|
29
29
|
"environmentId": "garden",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "0.
|
|
2
|
+
"schemaVersion": "0.4.0",
|
|
3
3
|
"kind": "memory-event",
|
|
4
4
|
"memoryId": "event-plan-proposed",
|
|
5
5
|
"characterId": "character-mira",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"environmentId": "garden",
|
|
24
24
|
"sessionId": "garden-session-1",
|
|
25
25
|
"recordedPayload": {
|
|
26
|
-
"schemaVersion": "0.
|
|
26
|
+
"schemaVersion": "0.4.0",
|
|
27
27
|
"kind": "plan-decision",
|
|
28
28
|
"binding": {
|
|
29
29
|
"environmentId": "garden",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
{"schemaVersion":"0.
|
|
2
|
-
{"schemaVersion":"0.
|
|
3
|
-
{"schemaVersion":"0.
|
|
4
|
-
{"schemaVersion":"0.
|
|
5
|
-
{"schemaVersion":"0.
|
|
6
|
-
{"schemaVersion":"0.
|
|
7
|
-
{"schemaVersion":"0.
|
|
8
|
-
{"schemaVersion":"0.
|
|
9
|
-
{"schemaVersion":"0.
|
|
1
|
+
{"schemaVersion":"0.4.0","kind":"intent-checkpoint","memoryId":"checkpoint-initial","characterId":"character-mira","recordedAt":"2026-01-01T08:00:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"authored","sourceId":"template-mira-v2"}]},"intents":[{"portableIntentId":"learn-herb-care","description":"Learn to care for herbs when an environment supports it.","desiredOutcome":"Understand appropriate care through permitted experiences.","status":"pending","sourceMemoryIds":[]}]}
|
|
2
|
+
{"schemaVersion":"0.4.0","kind":"memory-event","memoryId":"event-inspection","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"host-report","sourceId":"outcome-inspect-1"}]},"eventType":"host-reported-outcome","summary":"The host reported completed inspection. This does not claim the rejected watering task happened.","participantIds":["participant-mira"],"environmentId":"garden","sessionId":"garden-session-1","worldTime":{"timelineId":"garden-day-1","tick":110},"recordedPayload":{"schemaVersion":"0.4.0","kind":"task-report","binding":{"environmentId":"garden","sessionId":"garden-session-1","characterId":"character-mira","embodimentId":"gardener-1"},"correlationId":"daily-cycle-1","planId":"plan-day-1","reportId":"outcome-inspect-1","taskId":"task-inspect","contextRevision":"context-102","recordedAt":"2026-01-01T08:01:00Z","status":"succeeded","summary":"The host reports inspection completed.","observedEffects":["Two herb beds were inspected by the existing host facility."]}}
|
|
3
|
+
{"schemaVersion":"0.4.0","kind":"memory-event","memoryId":"event-visitor-question","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"conversation","sourceId":"visitor-hello"}]},"eventType":"received-conversation","summary":"A synthetic visitor asked Mira how the garden was doing.","participantIds":["participant-mira","participant-visitor"],"environmentId":"garden","sessionId":"garden-session-1","recordedPayload":{"messageId":"visitor-hello","participantId":"participant-visitor","recordedAt":"2026-01-01T08:02:00Z","modality":"speech","content":"How is the garden today?"}}
|
|
4
|
+
{"schemaVersion":"0.4.0","kind":"memory-event","memoryId":"event-plan-proposal","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"plan-proposal","sourceId":"plan-day-1"}]},"eventType":"plan-proposed","summary":"A proposed plan included inspection and tending. A proposal is not accepted work or an observed effect.","participantIds":["participant-mira"],"environmentId":"garden","sessionId":"garden-session-1","recordedPayload":{"schemaVersion":"0.4.0","kind":"plan-proposal","binding":{"environmentId":"garden","sessionId":"garden-session-1","characterId":"character-mira","embodimentId":"gardener-1"},"correlationId":"daily-cycle-1","planId":"plan-day-1","requestId":"daily-request-1","contextReportId":"briefing-day-1","contextRevision":"context-100","environmentRevision":"garden-profile-1","createdAt":"2026-01-01T08:00:00Z","expiresAt":"2026-01-01T08:05:00Z","horizon":{"basis":"world-ticks","timelineId":"garden-day-1","fromTick":100,"toTick":600},"tasks":[{"taskId":"task-inspect","intentId":"inspect-area","arguments":{"area":{"type":"entity-ref","entityId":"herb-area"}},"priority":"normal","dependsOnTaskIds":[],"explanation":"Inspect before deciding whether further care is possible."},{"taskId":"task-tend","intentId":"tend-plot","arguments":{"plot":{"type":"entity-ref","entityId":"plot-1"},"amount":{"type":"quantity","value":100,"unit":"ml"}},"priority":"low","dependsOnTaskIds":["task-inspect"],"explanation":"A conditional care proposal; the host can reject it when water is unavailable."}]}}
|
|
5
|
+
{"schemaVersion":"0.4.0","kind":"memory-event","memoryId":"event-plan-proposed","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"plan-decision","sourceId":"decision-day-1"}]},"eventType":"plan-decision-observed","summary":"Inspection was accepted and watering was rejected. Acceptance is not achievement.","participantIds":["participant-mira"],"environmentId":"garden","sessionId":"garden-session-1","recordedPayload":{"schemaVersion":"0.4.0","kind":"plan-decision","binding":{"environmentId":"garden","sessionId":"garden-session-1","characterId":"character-mira","embodimentId":"gardener-1"},"correlationId":"daily-cycle-1","planId":"plan-day-1","decisionId":"decision-day-1","requestId":"daily-request-1","contextRevision":"context-100","recordedAt":"2026-01-01T08:00:00Z","status":"partially-accepted","taskDecisions":[{"taskId":"task-inspect","decision":"accepted"},{"taskId":"task-tend","decision":"rejected","reason":"The existing host facility reports no available water."}]}}
|
|
6
|
+
{"schemaVersion":"0.4.0","kind":"working-context","memoryId":"working-garden","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"memory","sourceId":"event-inspection"}]},"summary":"Inspection was reported complete; actual watering was not reported.","activeTopics":["Finding an authorized source of water."],"relevantMemoryIds":["event-inspection"],"expiresAt":"2026-01-02T08:00:00Z"}
|
|
7
|
+
{"schemaVersion":"0.4.0","kind":"memory-episode","memoryId":"episode-garden","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"memory","sourceId":"event-inspection"}]},"summary":"Mira received the host report of an inspection.","sourceMemoryIds":["event-inspection"],"period":{"basis":"world-ticks","timelineId":"garden-day-1","fromTick":100,"toTick":110}}
|
|
8
|
+
{"schemaVersion":"0.4.0","kind":"memory-fact","memoryId":"fact-inspection","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"memory","sourceId":"event-inspection"}]},"claim":"The host reported that two herb beds were inspected during this session.","sourceMemoryIds":["event-inspection"],"confidence":0.9}
|
|
9
|
+
{"schemaVersion":"0.4.0","kind":"memory-relationship","memoryId":"relationship-visitor","characterId":"character-mira","recordedAt":"2026-01-01T08:03:00Z","scope":{"audience":"private","participantIds":["participant-mira"],"export":"allowed"},"provenance":{"sources":[{"sourceType":"conversation","sourceId":"visitor-hello"}]},"subjectParticipantId":"participant-mira","objectParticipantId":"participant-visitor","relation":"acquaintance","description":"Mira recalls a synthetic visitor who asked about the garden.","sourceMemoryIds":["event-visitor-question"]}
|
package/docs/npm-publishing.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# First npm publication preparation
|
|
2
|
-
|
|
3
|
-
The intended first registry package is `@ifsoul/core@0.3.0`, public on
|
|
4
|
-
`https://registry.npmjs.org/` with the `latest` dist-tag. This is preparation,
|
|
5
|
-
not a publication receipt. Package names reflect the current manifest; GitHub
|
|
6
|
-
organization ownership does not establish npm scope ownership or publish rights.
|
|
7
|
-
|
|
8
|
-
Run existing frozen-install/check/build/package gates locally. Inspect the exact
|
|
9
|
-
built archive, its license/member inventory and SHA-256/SHA-512, then install that
|
|
10
|
-
archive in an external consumer and check runtime/declarations. Publish only the
|
|
11
|
-
reviewed archive after separate owner approval; do not repack a changed tree under
|
|
12
|
-
the approved digest. `publishConfig` fixes public access and the intended registry.
|
|
13
|
-
|
|
14
|
-
Before approval, re-read public registry name/version metadata and verify the
|
|
15
|
-
publisher's npm identity, scope/team permissions and interactive 2FA readiness.
|
|
16
|
-
A public 404 does not prove scope ownership or that a hidden package is absent.
|
|
17
|
-
Do not request credentials or tokens in chat. Account setup belongs to the owner
|
|
18
|
-
in their browser. Never stage a package as a harmless check: npm staged publishing
|
|
19
|
-
can create a public placeholder for a new package.
|
|
20
|
-
|
|
21
|
-
Core and SDK are independent runtime packages; publish Core first and verify its
|
|
22
|
-
registry readback, then SDK, as a coordinated release sequence. Neither needs an
|
|
23
|
-
unpublished IfSoul registry dependency. Existing App/game/Website/Cloud/bridge
|
|
24
|
-
archive pins and provenance stay unchanged until a separately reviewed migration
|
|
25
|
-
to actually published versions. No automatic publish workflow is authorized.
|
|
26
|
-
|
|
27
|
-
After final owner approval and authenticated scope checks, the proposed command
|
|
28
|
-
for the exact approved archive is:
|
|
29
|
-
|
|
30
|
-
```sh
|
|
31
|
-
npm publish /absolute/path/to/ifsoul-core-0.3.0.tgz --access public --tag latest --registry=https://registry.npmjs.org/ --ignore-scripts
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
This command is intentionally not a package script and has not been run. The
|
|
35
|
-
local release manifest supplies the real path and immutable candidate digests.
|
|
36
|
-
Local digest/provenance receipts are not an npm registry provenance attestation.
|
|
37
|
-
Do not add trusted-publisher settings or a CI publication workflow without a
|
|
38
|
-
separate owner decision.
|
|
39
|
-
|
|
40
|
-
The current [npm scoped-public guide](https://docs.npmjs.com/creating-and-publishing-scoped-public-packages/)
|
|
41
|
-
and [publish command](https://docs.npmjs.com/cli/v11/commands/npm-publish/)
|
|
42
|
-
require explicit public access and suitable account authentication/2FA policy.
|
|
43
|
-
A name/version pair cannot be reused after publication; if it becomes occupied,
|
|
44
|
-
stop for a reviewed version/name decision rather than overwrite or unpublish.
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "urn:ifsoul:protocol:draft-0.1.0:action-result",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"properties": {
|
|
6
|
-
"schemaVersion": {
|
|
7
|
-
"const": "draft-0.1.0"
|
|
8
|
-
},
|
|
9
|
-
"kind": {
|
|
10
|
-
"const": "action-result"
|
|
11
|
-
},
|
|
12
|
-
"resultId": {
|
|
13
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
14
|
-
},
|
|
15
|
-
"actionId": {
|
|
16
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
17
|
-
},
|
|
18
|
-
"adapterId": {
|
|
19
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
20
|
-
},
|
|
21
|
-
"worldId": {
|
|
22
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
23
|
-
},
|
|
24
|
-
"sessionId": {
|
|
25
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
26
|
-
},
|
|
27
|
-
"actorId": {
|
|
28
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
29
|
-
},
|
|
30
|
-
"recordedAt": {
|
|
31
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/utcTimestamp"
|
|
32
|
-
},
|
|
33
|
-
"worldTime": {
|
|
34
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/worldTime"
|
|
35
|
-
},
|
|
36
|
-
"status": {
|
|
37
|
-
"enum": ["success", "rejected", "failed", "unknown"]
|
|
38
|
-
},
|
|
39
|
-
"execution": {
|
|
40
|
-
"enum": ["not-started", "completed", "partial", "unknown"]
|
|
41
|
-
},
|
|
42
|
-
"events": {
|
|
43
|
-
"type": "array",
|
|
44
|
-
"items": {
|
|
45
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:world-event"
|
|
46
|
-
},
|
|
47
|
-
"minItems": 0
|
|
48
|
-
},
|
|
49
|
-
"error": {
|
|
50
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/error"
|
|
51
|
-
},
|
|
52
|
-
"worldRevision": {
|
|
53
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/id"
|
|
54
|
-
},
|
|
55
|
-
"extensions": {
|
|
56
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensions"
|
|
57
|
-
},
|
|
58
|
-
"requiredExtensions": {
|
|
59
|
-
"type": "array",
|
|
60
|
-
"items": {
|
|
61
|
-
"$ref": "urn:ifsoul:protocol:draft-0.1.0:common#/$defs/extensionName"
|
|
62
|
-
},
|
|
63
|
-
"minItems": 0,
|
|
64
|
-
"uniqueItems": true
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"required": [
|
|
68
|
-
"schemaVersion",
|
|
69
|
-
"kind",
|
|
70
|
-
"resultId",
|
|
71
|
-
"actionId",
|
|
72
|
-
"adapterId",
|
|
73
|
-
"worldId",
|
|
74
|
-
"sessionId",
|
|
75
|
-
"actorId",
|
|
76
|
-
"recordedAt",
|
|
77
|
-
"worldTime",
|
|
78
|
-
"status",
|
|
79
|
-
"execution",
|
|
80
|
-
"events"
|
|
81
|
-
],
|
|
82
|
-
"additionalProperties": false,
|
|
83
|
-
"allOf": [
|
|
84
|
-
{
|
|
85
|
-
"if": {
|
|
86
|
-
"properties": {
|
|
87
|
-
"status": {
|
|
88
|
-
"const": "success"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
"required": ["status"]
|
|
92
|
-
},
|
|
93
|
-
"then": {
|
|
94
|
-
"properties": {
|
|
95
|
-
"execution": {
|
|
96
|
-
"const": "completed"
|
|
97
|
-
},
|
|
98
|
-
"error": false
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"if": {
|
|
104
|
-
"properties": {
|
|
105
|
-
"status": {
|
|
106
|
-
"const": "rejected"
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
"required": ["status"]
|
|
110
|
-
},
|
|
111
|
-
"then": {
|
|
112
|
-
"properties": {
|
|
113
|
-
"execution": {
|
|
114
|
-
"const": "not-started"
|
|
115
|
-
},
|
|
116
|
-
"events": {
|
|
117
|
-
"maxItems": 0,
|
|
118
|
-
"type": "array"
|
|
119
|
-
}
|
|
120
|
-
},
|
|
121
|
-
"required": ["error"]
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"if": {
|
|
126
|
-
"properties": {
|
|
127
|
-
"status": {
|
|
128
|
-
"const": "failed"
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
"required": ["status"]
|
|
132
|
-
},
|
|
133
|
-
"then": {
|
|
134
|
-
"properties": {
|
|
135
|
-
"execution": {
|
|
136
|
-
"enum": ["not-started", "partial"]
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
"required": ["error"]
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
"if": {
|
|
144
|
-
"properties": {
|
|
145
|
-
"status": {
|
|
146
|
-
"const": "unknown"
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
"required": ["status"]
|
|
150
|
-
},
|
|
151
|
-
"then": {
|
|
152
|
-
"properties": {
|
|
153
|
-
"execution": {
|
|
154
|
-
"const": "unknown"
|
|
155
|
-
},
|
|
156
|
-
"error": {
|
|
157
|
-
"properties": {
|
|
158
|
-
"retry": {
|
|
159
|
-
"const": "reconcile-first"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
"type": "object"
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
"required": ["error"]
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"if": {
|
|
170
|
-
"properties": {
|
|
171
|
-
"execution": {
|
|
172
|
-
"const": "not-started"
|
|
173
|
-
}
|
|
174
|
-
},
|
|
175
|
-
"required": ["execution"]
|
|
176
|
-
},
|
|
177
|
-
"then": {
|
|
178
|
-
"properties": {
|
|
179
|
-
"events": {
|
|
180
|
-
"type": "array",
|
|
181
|
-
"maxItems": 0
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
]
|
|
187
|
-
}
|