@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.
- package/README.md +30 -33
- 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/behavior-types.d.ts +150 -0
- package/dist/packages/runtime/src/behavior-types.js +1 -0
- package/dist/packages/runtime/src/behavior.d.ts +40 -0
- package/dist/packages/runtime/src/behavior.js +621 -0
- package/dist/packages/runtime/src/group-scheduler.d.ts +165 -0
- package/dist/packages/runtime/src/group-scheduler.js +647 -0
- package/dist/packages/runtime/src/index.d.ts +4 -0
- package/dist/packages/runtime/src/index.js +4 -1
- package/dist/packages/runtime/src/participants.d.ts +107 -0
- package/dist/packages/runtime/src/participants.js +309 -0
- package/dist/packages/runtime/src/types.d.ts +1 -0
- 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
package/release.json
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.5.0",
|
|
3
3
|
"current": {
|
|
4
|
-
"protocol": "0.
|
|
5
|
-
"modelProvider": "0.
|
|
6
|
-
"bridge": "ifsoul-bridge/0.
|
|
7
|
-
"bridgeResourcePolicy": "ifsoul-bridge-resource-policy/0.
|
|
8
|
-
"appResourcePolicy": "ifsoul-app-resource-policy/0.
|
|
9
|
-
"appMemory": "ifsoul-app-memory/0.
|
|
10
|
-
},
|
|
11
|
-
"legacy": {
|
|
12
|
-
"protocol": ["draft-0.1.0", "draft-0.2.0"],
|
|
13
|
-
"bridge": ["ifsoul-bridge/0.1"],
|
|
14
|
-
"appMemory": ["ifsoul-app-memory/0.1"]
|
|
4
|
+
"protocol": "0.4.0",
|
|
5
|
+
"modelProvider": "0.4.0",
|
|
6
|
+
"bridge": "ifsoul-bridge/0.4.0",
|
|
7
|
+
"bridgeResourcePolicy": "ifsoul-bridge-resource-policy/0.4.0",
|
|
8
|
+
"appResourcePolicy": "ifsoul-app-resource-policy/0.4.0",
|
|
9
|
+
"appMemory": "ifsoul-app-memory/0.4.0"
|
|
15
10
|
}
|
|
16
11
|
}
|
package/specs/README.md
CHANGED
|
@@ -1,87 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# IfSoul contracts
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
host-owned planning/dialogue. The sections below document the retained v0.1
|
|
6
|
-
baseline; they do not recommend implementing direct NPC control in a bridge.
|
|
7
|
-
ModelProvider v0.1 remains the current independent provider contract.
|
|
8
|
-
|
|
9
|
-
## Historical v0.1 baseline
|
|
10
|
-
|
|
11
|
-
The frozen local bootstrap baseline is **draft-0.1.0**. It specifies data
|
|
12
|
-
contracts, not a functioning agent system. The words MUST, MUST NOT, SHOULD,
|
|
13
|
-
and MAY express requirements for a future conforming implementation. Structural
|
|
14
|
-
requirements are in the [schema registry](../packages/protocol/README.md).
|
|
15
|
-
Additional semantic requirements below remain necessary even after validation.
|
|
16
|
-
|
|
17
|
-
| Area | Specification | Positive examples |
|
|
18
|
-
| ------------------------------ | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
19
|
-
| Character and archive | [Character](character/README.md) | [Template](character/examples/character-template.json), [instance](character/examples/character-instance.json), [manifest](character/examples/archive-manifest.json) |
|
|
20
|
-
| Event history and derived data | [Memory](memory/README.md) | [Event](memory/examples/memory-event.json), [summary](memory/examples/derived-memory.json) |
|
|
21
|
-
| World and authorization | [WorldAdapter](world-adapter/README.md) | [Perception](world-adapter/examples/perception.json), [action](world-adapter/examples/action.json), [result](world-adapter/examples/action-result.json) |
|
|
22
|
-
| Model boundary | [ModelProvider](model-provider/README.md) | [Request](model-provider/examples/request.json), [response](model-provider/examples/response.json), [error](model-provider/examples/error.json) |
|
|
23
|
-
|
|
24
|
-
These examples are normative positive structural examples using original,
|
|
25
|
-
synthetic data. They do not claim that an adapter, provider, archive importer, or
|
|
26
|
-
memory engine exists. The initial character archive predates the separate
|
|
27
|
-
watering trace; its instance therefore has empty history references.
|
|
28
|
-
|
|
29
|
-
## Frozen field conventions
|
|
30
|
-
|
|
31
|
-
- JSON uses UTF-8, case-sensitive camelCase property names, and a `kind`
|
|
32
|
-
discriminator. Every exchange envelope has `schemaVersion: "draft-0.1.0"`.
|
|
33
|
-
Absence and `null` differ; optional values are omitted, never `null`.
|
|
34
|
-
- IDs are opaque, case-sensitive ASCII strings matching
|
|
35
|
-
`[A-Za-z0-9][A-Za-z0-9._:-]{0,127}`. They are not paths, display names, emails,
|
|
36
|
-
URLs, credentials, or implied authorities. Allocation and collision detection
|
|
37
|
-
belong to the producer/importer. A referenced ID MUST resolve in its stated
|
|
38
|
-
namespace; equal IDs in unrelated worlds do not identify the same actor.
|
|
39
|
-
- A `characterId` identifies a portable instance. `actorId`, `observerId`, and
|
|
40
|
-
scope `subjectIds` identify world subjects within `worldId` + `sessionId`.
|
|
41
|
-
A trusted composition root maintains their mapping; it is not inferred from
|
|
42
|
-
names. A template ID and revision identify reusable authored content.
|
|
43
|
-
- Revisions are positive integers for template/policy content; capability/world
|
|
44
|
-
revisions are opaque IDs. No lexicographic revision ordering is implied.
|
|
45
|
-
- `recordedAt`, `createdAt`, `observedAt`, `requestedAt`, `deadlineAt`, and
|
|
46
|
-
`evaluatedAt` are RFC 3339 date-time strings restricted to UTC `Z`, four-digit
|
|
47
|
-
years, seconds, and optional 1–9 digit fractional seconds. They describe wall
|
|
48
|
-
clock recording or scheduling, not world chronology. Deadline comparisons
|
|
49
|
-
require a trusted local clock and explicit transport clock handling.
|
|
50
|
-
- `worldTime` is `{ "timelineId": <id>, "tick": <nonnegative integer> }`.
|
|
51
|
-
Ticks have no implied duration or UTC conversion. Worlds document their tick
|
|
52
|
-
rate separately. A reset, branch, or incomparable clock uses a new timeline
|
|
53
|
-
ID. Integers in common counters are bounded by `9007199254740991` for portable
|
|
54
|
-
exact representation. No global event ordering is promised.
|
|
55
|
-
- Ordinary contract objects reject additional properties. Open JSON payloads,
|
|
56
|
-
argument-schema objects, and extensions are explicit exceptions. Unknown
|
|
57
|
-
properties MUST NOT be silently removed to make a document pass validation.
|
|
58
|
-
- `extensions` is an optional object keyed by lowercase dotted namespaces such
|
|
59
|
-
as `org.example.notes`. Values are arbitrary JSON. `requiredExtensions` is an
|
|
60
|
-
optional unique array of those keys. Every required key MUST exist in
|
|
61
|
-
`extensions` and be understood before processing. Schema validation alone
|
|
62
|
-
cannot check that relationship or an implementation's support.
|
|
63
|
-
- Unknown optional extensions MUST be preserved as JSON values by a lossless
|
|
64
|
-
import/export path. An implementation unable to preserve them MUST reject
|
|
65
|
-
that operation or obtain an explicitly filtered export with recorded losses.
|
|
66
|
-
Unknown required extensions MUST cause rejection. Neither grants authority.
|
|
67
|
-
- Human-readable text, memory, model output, imported payloads, and semantic
|
|
68
|
-
descriptions are untrusted data; they cannot grant permissions or override
|
|
69
|
-
trusted policy. Validators MUST NOT fetch external schema references found in
|
|
70
|
-
untrusted argument/tool schemas. Limits and allowed local references must be
|
|
71
|
-
applied before compiling those nested schemas.
|
|
72
|
-
|
|
73
|
-
## Schema limits and semantic validation
|
|
74
|
-
|
|
75
|
-
JSON Schema checks fields, types, supported versions, tagged variants, and some
|
|
76
|
-
status relationships. It cannot prove uniqueness of selected IDs across records,
|
|
77
|
-
referential integrity, provenance truth, licenses, consent, authorization, UTC
|
|
78
|
-
clock accuracy, time ordering, checksums, archive completeness, action effects,
|
|
79
|
-
model capability support, or psychological identity. Future consumers MUST
|
|
80
|
-
check the requirements relevant to their operation, with bounded document,
|
|
81
|
-
array, string, archive, and model sizes. This draft intentionally does not pick
|
|
82
|
-
universal resource budgets or implement a semantic validator.
|
|
83
|
-
|
|
84
|
-
The schema of a capability's arguments or model tool is itself JSON data here.
|
|
85
|
-
A consumer MUST separately validate it as JSON Schema 2020-12, enforce its local
|
|
86
|
-
reference/complexity policy, and validate arguments against it. Merely passing
|
|
87
|
-
the enclosing schema does not validate the arguments.
|
|
3
|
+
The [current contracts](current/README.md) are the only supported product formats.
|
|
4
|
+
See [compatibility](../docs/compatibility.md) for the breaking-release boundary.
|
package/specs/current/README.md
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
# Current IfSoul 0.
|
|
1
|
+
# Current IfSoul 0.4.0 contracts
|
|
2
2
|
|
|
3
3
|
Current character, environment, planning, conversation, memory and archive schemas
|
|
4
|
-
are in `packages/protocol/schemas/current` and use `schemaVersion: "0.
|
|
5
|
-
The corresponding examples are under this directory.
|
|
6
|
-
reviewed v0.2 shapes; this new version has its own IDs and exact validation.
|
|
7
|
-
Historical v0.1/v0.2 schemas and examples remain byte-identical legacy references.
|
|
4
|
+
are in `packages/protocol/schemas/current` and use `schemaVersion: "0.4.0"`.
|
|
5
|
+
The corresponding examples are under this directory.
|
|
8
6
|
See [compatibility](../../docs/compatibility.md).
|
|
9
7
|
|
|
10
8
|
The current ModelProvider normative schema is `current/model-provider.schema.json`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "0.
|
|
2
|
+
"schemaVersion": "0.4.0",
|
|
3
3
|
"kind": "archive-manifest",
|
|
4
|
-
"archiveVersion": "0.
|
|
4
|
+
"archiveVersion": "0.4.0",
|
|
5
5
|
"archiveId": "archive-mira-fork",
|
|
6
6
|
"characterId": "character-mira",
|
|
7
7
|
"createdAt": "2026-01-01T08:03:01Z",
|
|
@@ -12,37 +12,37 @@
|
|
|
12
12
|
},
|
|
13
13
|
"schemaInventory": [
|
|
14
14
|
{
|
|
15
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
16
|
-
"schemaVersion": "0.
|
|
15
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:character",
|
|
16
|
+
"schemaVersion": "0.4.0"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
20
|
-
"schemaVersion": "0.
|
|
19
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:memory",
|
|
20
|
+
"schemaVersion": "0.4.0"
|
|
21
21
|
}
|
|
22
22
|
],
|
|
23
23
|
"files": [
|
|
24
24
|
{
|
|
25
25
|
"path": "character-template.json",
|
|
26
26
|
"role": "character-template",
|
|
27
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
27
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:character",
|
|
28
28
|
"recordCount": 1,
|
|
29
|
-
"sha256": "
|
|
29
|
+
"sha256": "ae65535b6f932bbc504c98bf7e12a2b3a7b91f97adbb22d20332c507e6a1afbe",
|
|
30
30
|
"sizeBytes": 1263
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "character-instance.json",
|
|
34
34
|
"role": "character-instance",
|
|
35
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
35
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:character",
|
|
36
36
|
"recordCount": 1,
|
|
37
|
-
"sha256": "
|
|
37
|
+
"sha256": "587f3259fa51cc2f70aa376a1ace4be0ffe9dd621450cd6d84466c1cb88c21fe",
|
|
38
38
|
"sizeBytes": 1574
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"path": "portable-memory.jsonl",
|
|
42
42
|
"role": "memory",
|
|
43
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
43
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:memory",
|
|
44
44
|
"recordCount": 9,
|
|
45
|
-
"sha256": "
|
|
45
|
+
"sha256": "5f716035bfde7e1f5e40e5dac8e499f32957f6a0b41209ff4116cd83603cd8ca",
|
|
46
46
|
"sizeBytes": 7253
|
|
47
47
|
}
|
|
48
48
|
],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion": "0.
|
|
2
|
+
"schemaVersion": "0.4.0",
|
|
3
3
|
"kind": "archive-manifest",
|
|
4
|
-
"archiveVersion": "0.
|
|
4
|
+
"archiveVersion": "0.4.0",
|
|
5
5
|
"archiveId": "archive-mira-resume",
|
|
6
6
|
"characterId": "character-mira",
|
|
7
7
|
"createdAt": "2026-01-01T08:03:01Z",
|
|
@@ -11,37 +11,37 @@
|
|
|
11
11
|
},
|
|
12
12
|
"schemaInventory": [
|
|
13
13
|
{
|
|
14
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
15
|
-
"schemaVersion": "0.
|
|
14
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:character",
|
|
15
|
+
"schemaVersion": "0.4.0"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
19
|
-
"schemaVersion": "0.
|
|
18
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:memory",
|
|
19
|
+
"schemaVersion": "0.4.0"
|
|
20
20
|
}
|
|
21
21
|
],
|
|
22
22
|
"files": [
|
|
23
23
|
{
|
|
24
24
|
"path": "character-template.json",
|
|
25
25
|
"role": "character-template",
|
|
26
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
26
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:character",
|
|
27
27
|
"recordCount": 1,
|
|
28
|
-
"sha256": "
|
|
28
|
+
"sha256": "ae65535b6f932bbc504c98bf7e12a2b3a7b91f97adbb22d20332c507e6a1afbe",
|
|
29
29
|
"sizeBytes": 1263
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"path": "character-instance.json",
|
|
33
33
|
"role": "character-instance",
|
|
34
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
34
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:character",
|
|
35
35
|
"recordCount": 1,
|
|
36
|
-
"sha256": "
|
|
36
|
+
"sha256": "587f3259fa51cc2f70aa376a1ace4be0ffe9dd621450cd6d84466c1cb88c21fe",
|
|
37
37
|
"sizeBytes": 1574
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"path": "portable-memory.jsonl",
|
|
41
41
|
"role": "memory",
|
|
42
|
-
"schemaId": "urn:ifsoul:protocol:0.
|
|
42
|
+
"schemaId": "urn:ifsoul:protocol:0.4.0:memory",
|
|
43
43
|
"recordCount": 9,
|
|
44
|
-
"sha256": "
|
|
44
|
+
"sha256": "5f716035bfde7e1f5e40e5dac8e499f32957f6a0b41209ff4116cd83603cd8ca",
|
|
45
45
|
"sizeBytes": 7253
|
|
46
46
|
}
|
|
47
47
|
],
|
|
@@ -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"]}
|