| 1 | <!-- Code generated by cmd/extension-protocol-gen; DO NOT EDIT. --> |
| 2 | |
| 3 | # Reasonix Extension Protocol v1 — Generated Index |
| 4 | |
| 5 | - Protocol ID: `reasonix.extension.v1` |
| 6 | - Protocol major: `1` |
| 7 | - Schema: `internal/extension/protocol/schema.generated.json` |
| 8 | - Schema hash: `sha256:22338e662c66a0cb0f6055263afc18e122640e71f552b601251a1c7899593be3` |
| 9 | |
| 10 | Within major v1 only optional fields, new enum values, and new methods may |
| 11 | be added; existing required fields, directions, limits, error reasons, and |
| 12 | semantics never change. |
| 13 | |
| 14 | ## Methods |
| 15 | |
| 16 | | Method | Direction | Class | Params | Result | |
| 17 | | --- | --- | --- | --- | --- | |
| 18 | | `extension/event` | `host_to_extension_notification` | `observation` | `EventParams` | `-` | |
| 19 | | `extension/initialize` | `host_to_extension_request` | `lifecycle` | `InitializeParams` | `InitializeResult` | |
| 20 | | `extension/initialized` | `host_to_extension_notification` | `lifecycle` | `InitializedParams` | `-` | |
| 21 | | `extension/intercept` | `host_to_extension_request` | `intercept` | `InterceptParams` | `InterceptResult` | |
| 22 | | `extension/provider/catalog` | `host_to_extension_request` | `provider` | `ProviderCatalogParams` | `ProviderCatalogResult` | |
| 23 | | `extension/provider/stream/cancel` | `host_to_extension_request` | `provider` | `StreamCancelParams` | `StreamCancelResult` | |
| 24 | | `extension/provider/stream/chunk` | `extension_to_host_notification` | `provider` | `StreamChunkParams` | `-` | |
| 25 | | `extension/provider/stream/end` | `extension_to_host_notification` | `provider` | `StreamEndParams` | `-` | |
| 26 | | `extension/provider/stream/open` | `host_to_extension_request` | `provider` | `StreamOpenParams` | `StreamOpenResult` | |
| 27 | | `extension/resources/changed` | `host_to_extension_notification` | `observation` | `ResourcesChangedParams` | `-` | |
| 28 | | `extension/shutdown` | `host_to_extension_request` | `lifecycle` | `ShutdownParams` | `ShutdownResult` | |
| 29 | | `extension/ui/action` | `host_to_extension_request` | `ui` | `UIActionParams` | `UIActionResult` | |
| 30 | | `extension/ui/submit` | `host_to_extension_request` | `ui` | `UISubmitParams` | `UISubmitResult` | |
| 31 | | `host/content/read` | `extension_to_host_request` | `content` | `ContentReadParams` | `ContentReadResult` | |
| 32 | | `host/ui/publish` | `extension_to_host_request` | `ui` | `UIPublishParams` | `UIPublishResult` | |
| 33 | | `host/ui/request` | `extension_to_host_request` | `ui` | `UIRequestParams` | `UIRequestResult` | |
| 34 | |
| 35 | ## Intercept events (17) |
| 36 | |
| 37 | `extension/intercept` (blocking) and `extension/event` (observation) share |
| 38 | these frozen hook points: |
| 39 | |
| 40 | - `agent.before_start` |
| 41 | - `compaction.complete` |
| 42 | - `compaction.prepare` |
| 43 | - `context.prepare` |
| 44 | - `frontend.event` |
| 45 | - `input.receive` |
| 46 | - `permission.decision` |
| 47 | - `provider.request` |
| 48 | - `provider.response` |
| 49 | - `session.end` |
| 50 | - `session.load` |
| 51 | - `session.rotate` |
| 52 | - `session.save` |
| 53 | - `session.start` |
| 54 | - `system_prompt.build` |
| 55 | - `tool.after` |
| 56 | - `tool.before` |
| 57 | |
| 58 | ## Limits |
| 59 | |
| 60 | | Limit | Value | |
| 61 | | --- | --- | |
| 62 | | `frameBytes` | 8388608 | |
| 63 | | `externalizeFieldBytes` | 65536 | |
| 64 | | `contentRefChunkBytes` | 262144 | |
| 65 | | `contentRefObjectBytes` | 8388608 | |
| 66 | |
| 67 | ## Errors |
| 68 | |
| 69 | | Reason | JSON-RPC code | Retryable | Message | |
| 70 | | --- | --- | --- | --- | |
| 71 | | `capability_not_declared` | -32000 | false | The extension used a capability its manifest did not declare. | |
| 72 | | `content_ref_expired` | -32000 | true | The referenced content has expired. | |
| 73 | | `frame_too_large` | -32000 | false | The frame exceeds the frozen protocol size limit. | |
| 74 | | `intercept_timeout` | -32000 | true | The extension did not answer an intercept within its timeout. | |
| 75 | | `internal` | -32603 | true | An internal extension protocol error occurred. | |
| 76 | | `invalid_params` | -32602 | false | The params do not match the registered method schema. | |
| 77 | | `protocol_error` | -32600 | false | The extension protocol frame or envelope is invalid. | |
| 78 | | `provider_failed` | -32000 | true | The extension provider stream failed. | |
| 79 | | `provider_interrupted` | -32000 | true | The extension provider stream was interrupted. | |
| 80 | | `shutdown_timeout` | -32000 | true | The extension did not shut down within the requested timeout. | |
| 81 | | `stream_cancelled` | -32000 | false | The provider stream was cancelled. | |
| 82 | | `stream_gap` | -32000 | true | A provider stream chunk is missing from the ordered sequence. | |
| 83 | | `unknown_method` | -32601 | false | The method is not registered in Extension Protocol v1. | |
| 84 | | `unsupported_version` | -32000 | false | The peer's extension protocol version is not supported. | |
| 85 |