chore(ticket): incorporate integrated Drive and structured WIP contracts

# Conflicts:
#	openapi/server-api.json
#	web/workspace/src/lib/generated/companion-api.ts
#	web/workspace/src/lib/generated/repository-api.ts
#	web/workspace/src/lib/generated/runtime-api.ts
#	web/workspace/src/lib/generated/ticket-api.ts
#	web/workspace/src/lib/generated/worker-launch-api.ts
This commit is contained in:
2026-10-09 02:54:09 +09:00
62 changed files with 11501 additions and 1008 deletions
@@ -1,6 +1,6 @@
// @generated by yoi-companion-openapi-typescript@1. Do not edit.
// Input: openapi/server-api.json
// Input contract: 0.1.0 (sha256:3ae89b3b76b2c31f016f4f9e1bc339115fdfb0b7d2a9964c4c708488a3e5f6f1)
// Input contract: 0.1.0 (sha256:6dd3e9e7ffe5e653697addc29675545b5fb28ea856b14bafc580355f0453ec12)
// Options: companion-operation-schema-closure,openapi-3.1,strict-integer-ranges,sorted-output
// Output: web/workspace/src/lib/generated/companion-api.ts
// Regenerate/check: cargo run -q -p server-api --example generate_companion_api_types -- --check
@@ -0,0 +1,203 @@
// Generated from server-api. Do not edit by hand.
// Regenerate: cargo run -q -p server-api --features typescript --example generate_drive_api_types > web/workspace/src/lib/generated/drive-api.ts
export type DriveEntryRef = { workspace_id: string; node_id: string };
export type DriveEntryKind = "folder" | "file";
export type DriveEntry = {
entry: DriveEntryRef;
parent: DriveEntryRef | null;
name: string;
kind: DriveEntryKind;
revision: string;
/**
* File length in bytes; absent for folders.
*/
size: number | null;
content_type: string | null;
updated_by: string;
/**
* Timestamp projected from storage's updated_at_ms; not a creation time.
*/
updated_at: string;
/**
* Stable relative authenticated URL in this same Workspace. No bearer token
* or cross-Workspace link is embedded in this metadata.
*/
latest_url: string;
};
export type DriveEntryQuery = { entry_workspace_id: string; id: string };
export type DriveListQuery = {
entry_workspace_id: string;
/**
* Folder to list.
*/
id: string;
limit: number | null;
/**
* Opaque service-issued page cursor, not a bare node ID.
*/
after: string | null;
};
export type DriveSearchQuery = {
query: string;
/**
* Search file text as well as names only when explicitly requested.
*/
include_text: boolean;
limit: number | null;
after: string | null;
};
export type DriveListResponse = {
entries: Array<DriveEntry>;
next_after: string | null;
};
export type DriveReadTextQuery = {
entry_workspace_id: string;
id: string;
max_bytes: number;
};
export type DriveReadTextResponse = {
entry: DriveEntry;
text: string;
truncated: boolean;
};
export type DriveReadChunkQuery = {
entry_workspace_id: string;
id: string;
/**
* Bind a multi-chunk read to the same file revision.
*/
expected_revision: string;
offset: number;
length: number;
};
export type DriveDownloadQuery = {
entry_workspace_id: string;
id: string;
expected_revision: string | null;
};
export type DriveMutation = {
"operation": "create_folder";
parent: DriveEntryRef;
name: string;
} | {
"operation": "create_text";
parent: DriveEntryRef;
name: string;
text: string;
content_type: string;
} | {
"operation": "update_text";
id: DriveEntryRef;
expected_revision: string;
text: string;
content_type: string;
} | {
"operation": "relocate";
id: DriveEntryRef;
expected_revision: string;
parent: DriveEntryRef;
name: string;
} | { "operation": "delete"; id: DriveEntryRef; expected_revision: string };
export type DriveMutationRequest = {
request_id: string;
mutation: DriveMutation;
};
export type DriveMutationResponse = {
request_id: string;
/**
* A deleted entry has no live metadata.
*/
entry: DriveEntry | null;
};
export type DriveUploadOperation = "create" | "update";
export type DriveUploadQuery = {
operation: DriveUploadOperation;
request_id: string;
entry_workspace_id: string;
parent_id: string | null;
name: string | null;
id: string | null;
expected_revision: string | null;
content_type: string;
/**
* Values above the file limit still decode as u32 so the service returns
* typed Limit rather than a generic request-decoding error.
*/
size: number;
sha256: string;
};
export type DriveRequestState = "uncommitted" | "committed";
export type DriveRequestStatusResponse = {
request_id: string;
state: DriveRequestState;
response: DriveMutationResponse | null;
};
export type DriveAccess = "read_only" | "read_write";
export type DriveGrantCreateRequest = {
runtime_id: string;
worker_id: string;
access: DriveAccess;
};
export type DriveGrantResponse = {
grant_id: string;
workspace_id: string;
runtime_id: string;
worker_id: string;
access: DriveAccess;
revoked: boolean;
created_by: string;
created_at: string;
revoked_by: string | null;
revoked_at: string | null;
};
export type DriveGrantListQuery = {
limit: number | null;
/**
* Canonical grant ID cursor within this Workspace.
*/
after: string | null;
};
export type DriveGrantListResponse = {
grants: Array<DriveGrantResponse>;
next_after: string | null;
};
export type DriveApiErrorCode =
| "denied"
| "not_found"
| "conflict"
| "invalid"
| "limit"
| "storage_unavailable"
| "outcome_unknown";
export type DriveFailureClassification = "not_committed" | "unknown";
export type DriveApiError = {
code: DriveApiErrorCode;
classification: DriveFailureClassification;
message: string;
};
@@ -1,6 +1,6 @@
// @generated by yoi-repository-openapi-typescript@1. Do not edit.
// Input: openapi/server-api.json
// Input contract: 0.1.0 (sha256:3ae89b3b76b2c31f016f4f9e1bc339115fdfb0b7d2a9964c4c708488a3e5f6f1)
// Input contract: 0.1.0 (sha256:6dd3e9e7ffe5e653697addc29675545b5fb28ea856b14bafc580355f0453ec12)
// Options: repository-operation-schema-closure,openapi-3.1,format:uint64=safe-number,strict-safe-integers,sorted-output
// Output: web/workspace/src/lib/generated/repository-api.ts
// Regenerate/check: cargo run -q -p server-api --example generate_repository_openapi_types -- --check
@@ -1,6 +1,6 @@
// @generated by yoi-runtime-openapi-typescript@1. Do not edit.
// Input: openapi/server-api.json
// Input contract: 0.1.0 (sha256:3ae89b3b76b2c31f016f4f9e1bc339115fdfb0b7d2a9964c4c708488a3e5f6f1)
// Input contract: 0.1.0 (sha256:6dd3e9e7ffe5e653697addc29675545b5fb28ea856b14bafc580355f0453ec12)
// Options: runtime-operation-schema-closure,openapi-3.1,strict-integer-ranges,sorted-output
// Output: web/workspace/src/lib/generated/runtime-api.ts
// Regenerate/check: cargo run -q -p server-api --example generate_runtime_api_types -- --check
@@ -1,6 +1,6 @@
// @generated by yoi-ticket-browser-openapi-typescript@1. Do not edit.
// Input: openapi/server-api.json
// Input contract: 0.1.0 (sha256:3ae89b3b76b2c31f016f4f9e1bc339115fdfb0b7d2a9964c4c708488a3e5f6f1)
// Input contract: 0.1.0 (sha256:6dd3e9e7ffe5e653697addc29675545b5fb28ea856b14bafc580355f0453ec12)
// Options: ticket-objective-merge-request-browser-operation-schema-closure,openapi-3.1,strict-integer-ranges,sorted-output
// Output: web/workspace/src/lib/generated/ticket-api.ts
// Regenerate/check: cargo run -q -p server-api --example generate_ticket_api_types -- --check
@@ -1,6 +1,6 @@
// @generated by yoi-workdir-openapi-typescript@1. Do not edit.
// Input: openapi/server-api.json
// Input contract: 0.1.0 (sha256:3ae89b3b76b2c31f016f4f9e1bc339115fdfb0b7d2a9964c4c708488a3e5f6f1)
// Input contract: 0.1.0 (sha256:6dd3e9e7ffe5e653697addc29675545b5fb28ea856b14bafc580355f0453ec12)
// Options: workdir-operation-schema-closure,openapi-3.1,strict-integer-ranges,sorted-output
// Output: web/workspace/src/lib/generated/workdir-api.ts
// Regenerate/check: cargo run -q -p server-api --example generate_workdir_api_types -- --check
@@ -1,6 +1,6 @@
// @generated by yoi-worker-openapi-typescript@1. Do not edit.
// Input: openapi/server-api.json
// Input contract: 0.1.0 (sha256:3ae89b3b76b2c31f016f4f9e1bc339115fdfb0b7d2a9964c4c708488a3e5f6f1)
// Input contract: 0.1.0 (sha256:6dd3e9e7ffe5e653697addc29675545b5fb28ea856b14bafc580355f0453ec12)
// Options: worker-operation-schema-closure,openapi-3.1,strict-integer-ranges,sorted-output
// Output: web/workspace/src/lib/generated/worker-launch-api.ts
// Regenerate/check: cargo run -q -p server-api --example generate_worker_launch_api_types -- --check