full diff

dev.cocore.inference.submit

cocore.dev +72 −0
From
bafyreictkdh3mbwekigwn3ri4czj6224gtnkkct46ajcka7qi3xumprfzy indexed 2026-06-21 00:58 UTC View this version
To
bafyreibqqioxzzuzwa7lf727c5ptw6s3xjcddmemfvd47peesdjkeanuoa indexed 2026-07-26 20:05 UTC View this version

Compatibility

breaking 3 breaking changes, 23 non-breaking changes.

Breaking changes (3)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.cocore.inference.submit:input.tools:items", src: "dev.cocore.inference.submit:input.tools:items", tgt: "dev.cocore.inference.submit:input.tools:items.type", kind: "prop", name: Some("type") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.cocore.inference.submit:input.tools:items", src: "dev.cocore.inference.submit:input.tools:items", tgt: "dev.cocore.inference.submit:input.tools:items.function", kind: "prop", name: Some("function") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.cocore.inference.submit:input.tools:items.function", src: "dev.cocore.inference.submit:input.tools:items.function", tgt: "dev.cocore.inference.submit:input.tools:items.function.name", kind: "prop", name: Some("name") }
Non-breaking changes (23)
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema.name" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema.schema" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema.strict" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.toolChoice" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.toolChoiceFunction" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function.description" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function.name" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function.parameters" }
  • AddedVertex AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.type" }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.outputSchema", kind: "prop", name: Some("outputSchema") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.toolChoice", kind: "prop", name: Some("toolChoice") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.toolChoiceFunction", kind: "prop", name: Some("toolChoiceFunction") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.tools", kind: "prop", name: Some("tools") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input.outputSchema", tgt: "dev.cocore.inference.submit:input.outputSchema.name", kind: "prop", name: Some("name") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input.outputSchema", tgt: "dev.cocore.inference.submit:input.outputSchema.schema", kind: "prop", name: Some("schema") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input.outputSchema", tgt: "dev.cocore.inference.submit:input.outputSchema.strict", kind: "prop", name: Some("strict") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input.tools", tgt: "dev.cocore.inference.submit:input.tools:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input.tools:items.function", tgt: "dev.cocore.inference.submit:input.tools:items.function.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "dev.cocore.inference.submit:input.tools:items.function", tgt: "dev.cocore.inference.submit:input.tools:items.function.parameters", kind: "prop", name: Some("parameters") }

Migration guidance

Added

  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema.name" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema.schema" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.outputSchema.strict" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.toolChoice" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.toolChoiceFunction" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function.description" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function.name" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.function.parameters" }
  • AddedVertex { vertex_id: "dev.cocore.inference.submit:input.tools:items.type" }

Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "dev.cocore.inference.submit:input.tools:items", src: "dev.cocore.inference.submit:input.tools:items", tgt: "dev.cocore.inference.submit:input.tools:items.type", kind: "prop", name: Some("type") }
  • Breaking: RequiredEdgeAdded { vertex_id: "dev.cocore.inference.submit:input.tools:items", src: "dev.cocore.inference.submit:input.tools:items", tgt: "dev.cocore.inference.submit:input.tools:items.function", kind: "prop", name: Some("function") }
  • Breaking: RequiredEdgeAdded { vertex_id: "dev.cocore.inference.submit:input.tools:items.function", src: "dev.cocore.inference.submit:input.tools:items.function", tgt: "dev.cocore.inference.submit:input.tools:items.function.name", kind: "prop", name: Some("name") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.outputSchema", kind: "prop", name: Some("outputSchema") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.toolChoice", kind: "prop", name: Some("toolChoice") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.toolChoiceFunction", kind: "prop", name: Some("toolChoiceFunction") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input", tgt: "dev.cocore.inference.submit:input.tools", kind: "prop", name: Some("tools") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input.outputSchema", tgt: "dev.cocore.inference.submit:input.outputSchema.name", kind: "prop", name: Some("name") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input.outputSchema", tgt: "dev.cocore.inference.submit:input.outputSchema.schema", kind: "prop", name: Some("schema") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input.outputSchema", tgt: "dev.cocore.inference.submit:input.outputSchema.strict", kind: "prop", name: Some("strict") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input.tools", tgt: "dev.cocore.inference.submit:input.tools:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input.tools:items.function", tgt: "dev.cocore.inference.submit:input.tools:items.function.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "dev.cocore.inference.submit:input.tools:items.function", tgt: "dev.cocore.inference.submit:input.tools:items.function.parameters", kind: "prop", name: Some("parameters") }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "Submit an inference request for the authenticated requester. Builds a (paymentAuthorization, job) pair scoped to the configured exchange, publishes both to the requester's PDS, and returns the job/authorization URIs so the caller can poll for a receipt via `dev.cocore.inference.status`.",
66 "errors": [
77 {
88 "description": "The caller is not authenticated.",
99 "name": "AuthRequired"
1010 },
1111 {
1212 "description": "The body failed validation.",
1313 "name": "InvalidRequest"
1414 }
1515 ],
1616 "input": {
1717 "encoding": "application/json",
1818 "schema": {
1919 "properties": {
2020 "maxTokensOut": {
2121 "minimum": 1,
2222 "type": "integer"
2323 },
2424 "model": {
2525 "description": "Opaque model identifier honored by the provider.",
2626 "minLength": 1,
2727 "type": "string"
2828 },
29 "outputSchema": {
30 "description": "Optional JSON Schema to constrain the model output. When present, the published job record carries this schema and the provider passes it to the inference engine as response_format guided decoding. The schema is public (not encrypted) — it describes the output shape, not the input.",
31 "properties": {
32 "name": {
33 "description": "Schema name (maps to OpenAI response_format.json_schema.name).",
34 "type": "string"
35 },
36 "schema": {
37 "description": "The actual JSON Schema object that constrains the model output.",
38 "type": "object"
39 },
40 "strict": {
41 "description": "Whether to enforce strict schema adherence.",
42 "type": "boolean"
43 }
44 },
45 "type": "object"
46 },
2947 "priceCeiling": {
3048 "description": "Maximum the requester will pay. Integer minor units plus an ISO 4217 / XBT-style currency code.",
3149 "properties": {
3250 "amount": {
3351 "minimum": 0,
3452 "type": "integer"
3553 },
3654 "currency": {
3755 "minLength": 1,
3856 "type": "string"
3957 }
4058 },
4159 "required": [
4260 "amount",
4361 "currency"
4462 ],
4563 "type": "object"
4664 },
4765 "prompt": {
4866 "minLength": 1,
4967 "type": "string"
68 },
69 "toolChoice": {
70 "description": "Optional tool choice strategy. 'auto' (default), 'none', or 'required'. Additive.",
71 "knownValues": [
72 "auto",
73 "none",
74 "required"
75 ],
76 "type": "string"
77 },
78 "toolChoiceFunction": {
79 "description": "When toolChoice is 'required', force the model to call this specific function. Maps to OpenAI tool_choice object form. Additive.",
80 "maxLength": 256,
81 "type": "string"
82 },
83 "tools": {
84 "description": "Optional list of tool/function definitions the model may call. Public (not encrypted). The published job record carries this list and the provider passes it to the inference engine.",
85 "items": {
86 "properties": {
87 "function": {
88 "properties": {
89 "description": {
90 "maxLength": 4096,
91 "type": "string"
92 },
93 "name": {
94 "maxLength": 256,
95 "type": "string"
96 },
97 "parameters": {
98 "description": "JSON Schema for the function's arguments.",
99 "type": "object"
100 }
101 },
102 "required": [
103 "name"
104 ],
105 "type": "object"
106 },
107 "type": {
108 "knownValues": [
109 "function"
110 ],
111 "type": "string"
112 }
113 },
114 "required": [
115 "type",
116 "function"
117 ],
118 "type": "object"
119 },
120 "maxLength": 128,
121 "type": "array"
50122 }
51123 },
52124 "required": [
53125 "model",
54126 "prompt",
55127 "maxTokensOut",
56128 "priceCeiling"
57129 ],
58130 "type": "object"
59131 }
60132 },
61133 "output": {
62134 "encoding": "application/json",
63135 "schema": {
64136 "properties": {
65137 "authUri": {
66138 "format": "at-uri",
67139 "type": "string"
68140 },
69141 "inputCommitment": {
70142 "description": "SHA-256 (lowercase hex) over the input bytes.",
71143 "type": "string"
72144 },
73145 "jobUri": {
74146 "format": "at-uri",
75147 "type": "string"
76148 }
77149 },
78150 "required": [
79151 "jobUri",
80152 "authUri",
81153 "inputCommitment"
82154 ],
83155 "type": "object"
84156 }
85157 },
86158 "type": "procedure"
87159 }
88160 },
89161 "id": "dev.cocore.inference.submit",
90162 "lexicon": 1
91163}

Compare other versions