@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,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "character-instance",
4
4
  "characterId": "character-mira",
5
5
  "participantId": "participant-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "character-template",
4
4
  "templateId": "template-mira-v2",
5
5
  "revision": 1,
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "context-report",
4
4
  "reportId": "briefing-after-inspection",
5
5
  "contextRevision": "context-102",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "context-report",
4
4
  "reportId": "context-chat",
5
5
  "contextRevision": "chat-context-1",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "context-report",
4
4
  "reportId": "briefing-day-1",
5
5
  "contextRevision": "context-100",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "context-report",
4
4
  "reportId": "context-no-speech",
5
5
  "contextRevision": "horse-context-1",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-delivery",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-request",
4
4
  "binding": {
5
5
  "environmentId": "quiet-chat",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-response",
4
4
  "binding": {
5
5
  "environmentId": "quiet-chat",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-request",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-response",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-request",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "conversation-response",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "environment-profile",
4
4
  "binding": {
5
5
  "environmentId": "quiet-chat",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "environment-profile",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "environment-profile",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "intent-checkpoint",
4
4
  "memoryId": "checkpoint-initial",
5
5
  "characterId": "character-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "memory-episode",
4
4
  "memoryId": "episode-garden",
5
5
  "characterId": "character-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "memory-event",
4
4
  "memoryId": "event-visitor-question",
5
5
  "characterId": "character-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.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.3.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.3.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.3.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.3.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.3.0",
26
+ "schemaVersion": "0.4.0",
27
27
  "kind": "plan-decision",
28
28
  "binding": {
29
29
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "memory-fact",
4
4
  "memoryId": "fact-inspection",
5
5
  "characterId": "character-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "memory-relationship",
4
4
  "memoryId": "relationship-visitor",
5
5
  "characterId": "character-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "working-context",
4
4
  "memoryId": "working-garden",
5
5
  "characterId": "character-mira",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "plan-cancel-request",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "plan-cancel-result",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "plan-proposal",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "plan-decision",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,9 +1,9 @@
1
- {"schemaVersion":"0.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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"]}
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"]}
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "task-report",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "task-report",
4
4
  "binding": {
5
5
  "environmentId": "garden",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "provider-capabilities",
4
4
  "providerId": "synthetic-provider",
5
5
  "modelId": "fixture-model",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "model-error",
4
4
  "requestId": "request-1",
5
5
  "providerId": "synthetic-provider",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "model-request",
4
4
  "requestId": "request-1",
5
5
  "providerId": "synthetic-provider",
@@ -1,5 +1,5 @@
1
1
  {
2
- "schemaVersion": "0.3.0",
2
+ "schemaVersion": "0.4.0",
3
3
  "kind": "model-response",
4
4
  "requestId": "request-1",
5
5
  "providerId": "synthetic-provider",
@@ -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
- }