@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
package/specs/memory/README.md
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Memory contracts
|
|
2
|
-
|
|
3
|
-
Historical v0.1 contract. See [v0.2](../v0.2/README.md) for the current design;
|
|
4
|
-
the v0.1 JSON examples remain unchanged for regression checks.
|
|
5
|
-
|
|
6
|
-
A Memory Event records what a source supplied to an observer, with provenance.
|
|
7
|
-
It is not a universally true fact. A Derived Memory is replaceable interpretation
|
|
8
|
-
or indexing data built from raw events; it never replaces them automatically.
|
|
9
|
-
Neither format grants permission or acts as a trusted instruction.
|
|
10
|
-
|
|
11
|
-
| Document | Required fields beyond `schemaVersion`, `kind` |
|
|
12
|
-
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
13
|
-
| Memory Event | `eventId`, `characterId`, `worldId`, `sessionId`, `source`, `observerId`, `recordedAt`, `worldTime`, `scope`, `payload`, `provenance` |
|
|
14
|
-
| Derived Memory | `memoryId`, `characterId`, `createdAt`, `scope`, `sourceEventIds`, `derivation`, `payload` |
|
|
15
|
-
|
|
16
|
-
A source has `sourceId`, `kind` (`world-adapter`, `runtime`, `user`, or `import`),
|
|
17
|
-
and a nonnegative `sequence`. Sequence is ordered only within that source's
|
|
18
|
-
world/session stream; duplicates or regressions require explicit reconciliation.
|
|
19
|
-
`recordedAt` is wall-clock recording time; `worldTime` is the separately named
|
|
20
|
-
world timeline and tick. Neither defines global order across sources. Importers
|
|
21
|
-
MUST preserve original source/provenance rather than manufacture fresh historical
|
|
22
|
-
truth or treat equal ticks from different timelines as comparable.
|
|
23
|
-
|
|
24
|
-
An event payload has an opaque `type` and open object `data`; interpreting that
|
|
25
|
-
data requires a known payload contract. `provenance.eventIds` and
|
|
26
|
-
`provenance.worldEventIds` are unique ID arrays, empty when no source references
|
|
27
|
-
exist. A future consumer checks identity, accessible references, source-local
|
|
28
|
-
sequence ordering, and consistency with the character/world mapping. Optional
|
|
29
|
-
`confidence` lies in `[0,1]`; it is a source-supplied score, not a calibrated
|
|
30
|
-
probability, consensus, or permission.
|
|
31
|
-
|
|
32
|
-
## Access and export scope
|
|
33
|
-
|
|
34
|
-
Every event, derived record, world event, and observation item has a `scope`:
|
|
35
|
-
`audience`, `subjectIds`, and `export`.
|
|
36
|
-
|
|
37
|
-
- `private` requires exactly one subject ID: the intended subject.
|
|
38
|
-
- `participants` requires at least one explicit subject ID and exposes data only
|
|
39
|
-
to those subjects under trusted policy.
|
|
40
|
-
- `public` requires an empty subject list. It describes world-audience visibility,
|
|
41
|
-
not permission to publish player data on the Internet.
|
|
42
|
-
|
|
43
|
-
These list/cardinality relationships are semantic checks in this baseline.
|
|
44
|
-
Subject IDs use the record's world/session context; a derived record resolves
|
|
45
|
-
subjects through its source events. If source contexts differ, trusted identity
|
|
46
|
-
mapping and a scope no broader than every source's access are required; without
|
|
47
|
-
that mapping the derivation MUST be rejected. A string copied from an imported
|
|
48
|
-
record is never sufficient proof of identity.
|
|
49
|
-
|
|
50
|
-
`export` is `allowed`, `consent-required`, or `forbidden`. Access and export are
|
|
51
|
-
separate decisions: visibility does not imply export consent. `allowed` remains
|
|
52
|
-
subject to actual authorization; `consent-required` needs verifiable consent;
|
|
53
|
-
`forbidden` is excluded. Filtering MUST report losses without exposing withheld
|
|
54
|
-
payloads. Scope enforcement and consent verification are not schema checks.
|
|
55
|
-
|
|
56
|
-
## Derived records
|
|
57
|
-
|
|
58
|
-
`sourceEventIds` is a nonempty unique array. `derivation` requires `algorithmId`
|
|
59
|
-
and `algorithmVersion`, plus `modelId` when a model contributed. Payloads are
|
|
60
|
-
explicit variants:
|
|
61
|
-
|
|
62
|
-
| `payload.type` | Fields |
|
|
63
|
-
| -------------- | ----------------------------------------------------------- |
|
|
64
|
-
| `fact` | `text` |
|
|
65
|
-
| `relationship` | `subjectId`, `relation`, `objectId`, optional `description` |
|
|
66
|
-
| `summary` | `text` |
|
|
67
|
-
| `embedding` | Nonempty numeric `vector` |
|
|
68
|
-
|
|
69
|
-
A fact is a derived claim; a relationship is not consent. Embedding model,
|
|
70
|
-
preprocessing, and dimensional compatibility MUST be recorded by the derivation
|
|
71
|
-
identity/version and checked before use. Derived records can be regenerated
|
|
72
|
-
when algorithms change. Source data remains available until explicit authorized
|
|
73
|
-
deletion; summaries do not justify silent source deletion. Deleting or losing
|
|
74
|
-
access to source events requires deleting or recomputing dependent derived
|
|
75
|
-
records and indexes. Retention of older backups needs a separate policy.
|
|
76
|
-
|
|
77
|
-
The [event](examples/memory-event.json) refers to the synthetic watering world
|
|
78
|
-
event; the [summary](examples/derived-memory.json) derives from that event.
|
|
79
|
-
Storage, querying, deletion propagation, cross-world mapping, and derivation
|
|
80
|
-
execution are not implemented.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "draft-0.1.0",
|
|
3
|
-
"kind": "derived-memory",
|
|
4
|
-
"memoryId": "summary-1",
|
|
5
|
-
"characterId": "character-mira",
|
|
6
|
-
"createdAt": "2026-01-01T12:00:00Z",
|
|
7
|
-
"scope": {
|
|
8
|
-
"audience": "private",
|
|
9
|
-
"subjectIds": ["actor-mira"],
|
|
10
|
-
"export": "allowed"
|
|
11
|
-
},
|
|
12
|
-
"sourceEventIds": ["memory-event-1"],
|
|
13
|
-
"derivation": {
|
|
14
|
-
"algorithmId": "synthetic-summary",
|
|
15
|
-
"algorithmVersion": "1"
|
|
16
|
-
},
|
|
17
|
-
"payload": {
|
|
18
|
-
"type": "summary",
|
|
19
|
-
"text": "Mira observed that the watering action completed."
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "draft-0.1.0",
|
|
3
|
-
"kind": "memory-event",
|
|
4
|
-
"eventId": "memory-event-1",
|
|
5
|
-
"characterId": "character-mira",
|
|
6
|
-
"worldId": "garden",
|
|
7
|
-
"sessionId": "session-1",
|
|
8
|
-
"source": {
|
|
9
|
-
"sourceId": "garden-recorder",
|
|
10
|
-
"kind": "runtime",
|
|
11
|
-
"sequence": 1
|
|
12
|
-
},
|
|
13
|
-
"observerId": "actor-mira",
|
|
14
|
-
"recordedAt": "2026-01-01T12:00:00Z",
|
|
15
|
-
"worldTime": {
|
|
16
|
-
"timelineId": "garden-day-1",
|
|
17
|
-
"tick": 20
|
|
18
|
-
},
|
|
19
|
-
"scope": {
|
|
20
|
-
"audience": "private",
|
|
21
|
-
"subjectIds": ["actor-mira"],
|
|
22
|
-
"export": "allowed"
|
|
23
|
-
},
|
|
24
|
-
"payload": {
|
|
25
|
-
"type": "observed-action-result",
|
|
26
|
-
"data": {
|
|
27
|
-
"actionId": "action-water-1",
|
|
28
|
-
"status": "success"
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"provenance": {
|
|
32
|
-
"eventIds": [],
|
|
33
|
-
"worldEventIds": ["world-event-water-1"]
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# ModelProvider contract
|
|
2
|
-
|
|
3
|
-
This provider boundary remains independently versioned at `draft-0.1.0` while
|
|
4
|
-
the [character/environment design](../v0.2/README.md) advances to v0.2. A provider
|
|
5
|
-
performs inference; an external AgentController is a separately planned runtime
|
|
6
|
-
strategy, not a synonym for a provider or permission to execute game commands.
|
|
7
|
-
|
|
8
|
-
ModelProvider is a planned boundary for structured model input/output,
|
|
9
|
-
capability declaration, usage, cancellation/deadlines, and safe errors. It is
|
|
10
|
-
independent of a vendor, SDK, game, cloud account, and transport. This bootstrap
|
|
11
|
-
contains no model client or inference implementation and does not require a key.
|
|
12
|
-
|
|
13
|
-
The [model-provider schema](../../packages/protocol/schemas/model-provider.schema.json)
|
|
14
|
-
is a tagged union. Every variant requires `schemaVersion` and `kind`:
|
|
15
|
-
|
|
16
|
-
| `kind` | Required additional fields |
|
|
17
|
-
| ----------------------- | -------------------------------------------------------------------------------------------- |
|
|
18
|
-
| `provider-capabilities` | `providerId`, `modelId`, `toolCalling`, `structuredOutput`, `cancellation`, `usage` |
|
|
19
|
-
| `model-request` | `requestId`, `providerId`, `modelId`, `messages`, `toolChoice`, `outputFormat`, `deadlineAt` |
|
|
20
|
-
| `model-response` | `requestId`, `providerId`, `modelId`, `recordedAt`, `status`, `output`, `finishReason` |
|
|
21
|
-
| `model-error` | `requestId`, `providerId`, `modelId`, `recordedAt`, `error` |
|
|
22
|
-
|
|
23
|
-
Capabilities apply to the exact `providerId` + `modelId`. `toolCalling: false`
|
|
24
|
-
requires requests to omit tools or use an empty array with `toolChoice: "none"`.
|
|
25
|
-
`structuredOutput: false` requires `outputFormat: "text"`. Unsupported features
|
|
26
|
-
MUST be rejected explicitly, never silently removed or emulated as a claimed
|
|
27
|
-
native guarantee. `usage` indicates whether usage can be reported; omission
|
|
28
|
-
means unknown, never zero. Local rules strategies do not need to pretend to be
|
|
29
|
-
model providers.
|
|
30
|
-
|
|
31
|
-
Requests contain a nonempty `messages` array of `{ role, content }` where role is
|
|
32
|
-
`system`, `user`, `assistant`, or `tool`. Optional assistant `toolCalls` contain
|
|
33
|
-
`toolCallId`, `name`, and object `arguments`; tool-result messages reference a
|
|
34
|
-
`toolCallId`. Tool calls belong only to assistant messages, tool results require
|
|
35
|
-
a prior matching call, and non-tool messages MUST omit `toolCallId`. These are
|
|
36
|
-
semantic checks, not enforced by the enclosing schema. Context selection and
|
|
37
|
-
trust placement are application responsibilities; untrusted memory/tool text
|
|
38
|
-
MUST NOT become trusted system instructions.
|
|
39
|
-
|
|
40
|
-
Optional tool definitions contain `name`, `description`, and `argumentsSchema`.
|
|
41
|
-
Names and call IDs MUST be unique in their respective request/response context.
|
|
42
|
-
Arguments schemas require separate safe meta-validation and argument validation.
|
|
43
|
-
`toolChoice` is `none`, `auto`, or `required`; `required` needs at least one tool.
|
|
44
|
-
`outputFormat` is `text` or `json-object`; for the latter, a consumer MUST parse
|
|
45
|
-
and verify `output.text` as a JSON object. It does not imply a particular domain
|
|
46
|
-
schema. Optional `maxOutputTokens` requests a provider-supported output bound;
|
|
47
|
-
there is no context-window or billing guarantee. Unsupported limits are rejected.
|
|
48
|
-
|
|
49
|
-
`deadlineAt` is UTC scheduling time. Optional `cancellationId` correlates a
|
|
50
|
-
future transport's cancellation signal; the schema does not implement the signal
|
|
51
|
-
or define a wire message. `cancellation` is explicitly `unsupported` or
|
|
52
|
-
`best-effort`. Best effort can stop waiting/generation where supported but cannot
|
|
53
|
-
promise rollback, no usage, no billing, or that an upstream request never ran.
|
|
54
|
-
Unsupported cancellation MUST be reported by capabilities and checked before use.
|
|
55
|
-
|
|
56
|
-
A response's `output` contains `text` and `toolCalls` (possibly empty). Status is
|
|
57
|
-
`completed`, `incomplete`, or `cancelled`. Future consumers MUST enforce these
|
|
58
|
-
semantic combinations: completed uses finish reason `stop` or `tool-calls`;
|
|
59
|
-
incomplete uses `length`; cancelled uses `cancelled`. `tool-calls` requires
|
|
60
|
-
nonempty calls supported by the selected tools; `stop` has no pending tool calls.
|
|
61
|
-
Partial/cancelled output MUST NOT trigger execution automatically. A model tool
|
|
62
|
-
call is a proposal; it must become a separately validated, authorized world
|
|
63
|
-
Action before execution.
|
|
64
|
-
|
|
65
|
-
Responses and errors correlate `requestId`, `providerId`, and `modelId` to the
|
|
66
|
-
request. Usage optionally contains nonnegative `inputTokens`, `outputTokens`,
|
|
67
|
-
and `estimated`; estimates MUST stay labelled and omitted counts MUST NOT be
|
|
68
|
-
fabricated. No currency, pricing, or normalized cost contract is defined. Usage
|
|
69
|
-
may be present on failure or cancellation.
|
|
70
|
-
|
|
71
|
-
Errors use `code`, safe `message`, `retry`, and optional `retryAfterMs`. Examples
|
|
72
|
-
of codes are `unsupported-feature`, `invalid-request`, `rate-limited`,
|
|
73
|
-
`unavailable`, `deadline-exceeded`, and `cancelled`; codes are extensible opaque
|
|
74
|
-
IDs, so callers handle unknown codes conservatively. Never include credentials,
|
|
75
|
-
raw private prompts, or upstream secrets in errors. A retry hint is not an
|
|
76
|
-
idempotency guarantee: a timed-out provider request may have consumed usage and
|
|
77
|
-
a repeated request may generate different output or another charge. Preserve
|
|
78
|
-
request provenance and apply local budgets before a retry. Rules decisions can
|
|
79
|
-
be reproducible; replay of recorded output reproduces that fixture; live model
|
|
80
|
-
responses are not promised deterministic across models or versions.
|
|
81
|
-
|
|
82
|
-
Positive synthetic examples: [capabilities](examples/capabilities.json),
|
|
83
|
-
[request](examples/request.json), [response](examples/response.json),
|
|
84
|
-
[error](examples/error.json). Response and error are alternative outcomes, not
|
|
85
|
-
two mandatory messages. No hidden model reasoning is required or stored.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "draft-0.1.0",
|
|
3
|
-
"kind": "model-error",
|
|
4
|
-
"requestId": "request-1",
|
|
5
|
-
"providerId": "synthetic-provider",
|
|
6
|
-
"modelId": "fixture-model",
|
|
7
|
-
"recordedAt": "2026-01-01T12:00:00Z",
|
|
8
|
-
"error": {
|
|
9
|
-
"code": "deadline-exceeded",
|
|
10
|
-
"message": "No complete response was received before the deadline.",
|
|
11
|
-
"retry": "same-request"
|
|
12
|
-
},
|
|
13
|
-
"usage": {
|
|
14
|
-
"inputTokens": 13,
|
|
15
|
-
"outputTokens": 0,
|
|
16
|
-
"estimated": true
|
|
17
|
-
}
|
|
18
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "draft-0.1.0",
|
|
3
|
-
"kind": "model-request",
|
|
4
|
-
"requestId": "request-1",
|
|
5
|
-
"providerId": "synthetic-provider",
|
|
6
|
-
"modelId": "fixture-model",
|
|
7
|
-
"messages": [
|
|
8
|
-
{
|
|
9
|
-
"role": "user",
|
|
10
|
-
"content": "Describe the visible garden plant in one sentence."
|
|
11
|
-
}
|
|
12
|
-
],
|
|
13
|
-
"toolChoice": "none",
|
|
14
|
-
"outputFormat": "text",
|
|
15
|
-
"deadlineAt": "2026-01-01T12:00:05Z",
|
|
16
|
-
"maxOutputTokens": 32
|
|
17
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "draft-0.1.0",
|
|
3
|
-
"kind": "model-response",
|
|
4
|
-
"requestId": "request-1",
|
|
5
|
-
"providerId": "synthetic-provider",
|
|
6
|
-
"modelId": "fixture-model",
|
|
7
|
-
"recordedAt": "2026-01-01T12:00:00Z",
|
|
8
|
-
"status": "completed",
|
|
9
|
-
"output": {
|
|
10
|
-
"text": "A small plant stands beside the path.",
|
|
11
|
-
"toolCalls": []
|
|
12
|
-
},
|
|
13
|
-
"finishReason": "stop",
|
|
14
|
-
"usage": {
|
|
15
|
-
"inputTokens": 13,
|
|
16
|
-
"outputTokens": 10,
|
|
17
|
-
"estimated": true
|
|
18
|
-
}
|
|
19
|
-
}
|