chore: import upstream snapshot with attribution
Publish CLI Package / publish-npm (push) Waiting to run
Publish Python SDK / publish-pypi (push) Waiting to run
Publish TypeScript SDK / publish-npm (push) Waiting to run
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Waiting to run
Publish Python SDK / publish-pypi (push) Waiting to run
Publish TypeScript SDK / publish-npm (push) Waiting to run
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
// Source: copilot/copilot/contracts/metrics-v1.schema.json
|
||||
// Regenerate with: bun run metrics-contract:generate
|
||||
//
|
||||
// Canonical mothership OTel metric names. Call sites should reference
|
||||
// `Metric.<Identifier>` (e.g. `Metric.CopilotToolDuration`) rather than raw
|
||||
// string literals, so the Go-side contract is the single source of truth and
|
||||
// typos become compile errors.
|
||||
//
|
||||
// NAMES ONLY. Label keys and histogram bucket boundaries are NOT in this
|
||||
// contract — Go owns the label-cardinality allowlist and the shared bucket
|
||||
// constant, and the Sim emitter MUST mirror those by hand so the Go∪Sim metric
|
||||
// union is queryable as one series set.
|
||||
|
||||
export const Metric = {
|
||||
CopilotCacheAttempted: 'copilot.cache.attempted',
|
||||
CopilotCacheHit: 'copilot.cache.hit',
|
||||
CopilotCacheWrite: 'copilot.cache.write',
|
||||
CopilotFileReadDuration: 'copilot.file.read.duration',
|
||||
CopilotFileReadSize: 'copilot.file.read.size',
|
||||
CopilotMessagesSerializeDuration: 'copilot.messages.serialize.duration',
|
||||
CopilotRequestCount: 'copilot.request.count',
|
||||
CopilotRequestDuration: 'copilot.request.duration',
|
||||
CopilotToolCalls: 'copilot.tool.calls',
|
||||
CopilotToolDuration: 'copilot.tool.duration',
|
||||
CopilotVfsDelta: 'copilot.vfs.delta',
|
||||
CopilotVfsMaterializeDuration: 'copilot.vfs.materialize.duration',
|
||||
GenAiClientCacheTokenUsage: 'gen_ai.client.cache.token.usage',
|
||||
GenAiClientTokenUsage: 'gen_ai.client.token.usage',
|
||||
LlmClientErrors: 'llm.client.errors',
|
||||
LlmClientOutputCutoff: 'llm.client.output_cutoff',
|
||||
LlmClientStreamDuration: 'llm.client.stream.duration',
|
||||
LlmClientTimeToFirstToken: 'llm.client.time_to_first_token',
|
||||
} as const
|
||||
|
||||
export type MetricKey = keyof typeof Metric
|
||||
export type MetricValue = (typeof Metric)[MetricKey]
|
||||
|
||||
/** Readonly sorted list of every canonical mothership metric name. */
|
||||
export const MetricValues: readonly MetricValue[] = [
|
||||
'copilot.cache.attempted',
|
||||
'copilot.cache.hit',
|
||||
'copilot.cache.write',
|
||||
'copilot.file.read.duration',
|
||||
'copilot.file.read.size',
|
||||
'copilot.messages.serialize.duration',
|
||||
'copilot.request.count',
|
||||
'copilot.request.duration',
|
||||
'copilot.tool.calls',
|
||||
'copilot.tool.duration',
|
||||
'copilot.vfs.delta',
|
||||
'copilot.vfs.materialize.duration',
|
||||
'gen_ai.client.cache.token.usage',
|
||||
'gen_ai.client.token.usage',
|
||||
'llm.client.errors',
|
||||
'llm.client.output_cutoff',
|
||||
'llm.client.stream.duration',
|
||||
'llm.client.time_to_first_token',
|
||||
] as const
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,555 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
|
||||
/**
|
||||
* Shared execution-oriented mothership stream contract from Go to Sim.
|
||||
*/
|
||||
export type MothershipStreamV1EventEnvelope =
|
||||
| MothershipStreamV1SessionStartEventEnvelope
|
||||
| MothershipStreamV1SessionChatEventEnvelope
|
||||
| MothershipStreamV1SessionTitleEventEnvelope
|
||||
| MothershipStreamV1SessionTraceEventEnvelope
|
||||
| MothershipStreamV1TextEventEnvelope
|
||||
| MothershipStreamV1ToolCallEventEnvelope
|
||||
| MothershipStreamV1ToolArgsDeltaEventEnvelope
|
||||
| MothershipStreamV1ToolResultEventEnvelope
|
||||
| MothershipStreamV1SubagentSpanStartEventEnvelope
|
||||
| MothershipStreamV1SubagentSpanEndEventEnvelope
|
||||
| MothershipStreamV1StructuredResultSpanEventEnvelope
|
||||
| MothershipStreamV1SubagentResultSpanEventEnvelope
|
||||
| MothershipStreamV1ResourceUpsertEventEnvelope
|
||||
| MothershipStreamV1ResourceRemoveEventEnvelope
|
||||
| MothershipStreamV1CheckpointPauseEventEnvelope
|
||||
| MothershipStreamV1RunResumedEventEnvelope
|
||||
| MothershipStreamV1CompactionStartEventEnvelope
|
||||
| MothershipStreamV1CompactionDoneEventEnvelope
|
||||
| MothershipStreamV1ErrorEventEnvelope
|
||||
| MothershipStreamV1CompleteEventEnvelope
|
||||
export type MothershipStreamV1TextChannel = 'assistant' | 'thinking'
|
||||
export type MothershipStreamV1ToolExecutor = 'go' | 'sim' | 'client'
|
||||
export type MothershipStreamV1ToolMode = 'sync' | 'async'
|
||||
export type MothershipStreamV1ToolStatus =
|
||||
| 'generating'
|
||||
| 'executing'
|
||||
| 'success'
|
||||
| 'error'
|
||||
| 'cancelled'
|
||||
| 'skipped'
|
||||
| 'rejected'
|
||||
export type MothershipStreamV1CompletionStatus = 'complete' | 'error' | 'cancelled'
|
||||
|
||||
export interface MothershipStreamV1SessionStartEventEnvelope {
|
||||
payload: MothershipStreamV1SessionStartPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'session'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SessionStartPayload {
|
||||
data?: MothershipStreamV1SessionStartData
|
||||
kind: 'start'
|
||||
}
|
||||
export interface MothershipStreamV1SessionStartData {
|
||||
responseId?: string
|
||||
}
|
||||
export interface MothershipStreamV1StreamScope {
|
||||
agentId?: string
|
||||
lane: 'subagent'
|
||||
parentSpanId?: string
|
||||
parentToolCallId?: string
|
||||
spanId?: string
|
||||
}
|
||||
export interface MothershipStreamV1StreamRef {
|
||||
chatId?: string
|
||||
cursor?: string
|
||||
streamId: string
|
||||
}
|
||||
export interface MothershipStreamV1Trace {
|
||||
/**
|
||||
* OTel trace ID from the first Go ingress. May differ from requestId when Sim assigns the canonical request identity.
|
||||
*/
|
||||
goTraceId?: string
|
||||
requestId: string
|
||||
spanId?: string
|
||||
}
|
||||
export interface MothershipStreamV1SessionChatEventEnvelope {
|
||||
payload: MothershipStreamV1SessionChatPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'session'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SessionChatPayload {
|
||||
chatId: string
|
||||
kind: 'chat'
|
||||
}
|
||||
export interface MothershipStreamV1SessionTitleEventEnvelope {
|
||||
payload: MothershipStreamV1SessionTitlePayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'session'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SessionTitlePayload {
|
||||
kind: 'title'
|
||||
title: string
|
||||
}
|
||||
export interface MothershipStreamV1SessionTraceEventEnvelope {
|
||||
payload: MothershipStreamV1SessionTracePayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'session'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SessionTracePayload {
|
||||
kind: 'trace'
|
||||
requestId: string
|
||||
spanId?: string
|
||||
}
|
||||
export interface MothershipStreamV1TextEventEnvelope {
|
||||
payload: MothershipStreamV1TextPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'text'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1TextPayload {
|
||||
channel: MothershipStreamV1TextChannel
|
||||
text: string
|
||||
}
|
||||
export interface MothershipStreamV1ToolCallEventEnvelope {
|
||||
payload: MothershipStreamV1ToolCallDescriptor
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'tool'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1ToolCallDescriptor {
|
||||
arguments?: MothershipStreamV1AdditionalPropertiesMap
|
||||
executor: MothershipStreamV1ToolExecutor
|
||||
mode: MothershipStreamV1ToolMode
|
||||
partial?: boolean
|
||||
phase: 'call'
|
||||
status?: MothershipStreamV1ToolStatus
|
||||
toolCallId: string
|
||||
toolName: string
|
||||
ui?: MothershipStreamV1ToolUI
|
||||
}
|
||||
export interface MothershipStreamV1AdditionalPropertiesMap {
|
||||
[k: string]: unknown
|
||||
}
|
||||
export interface MothershipStreamV1ToolUI {
|
||||
clientExecutable?: boolean
|
||||
hidden?: boolean
|
||||
internal?: boolean
|
||||
}
|
||||
export interface MothershipStreamV1ToolArgsDeltaEventEnvelope {
|
||||
payload: MothershipStreamV1ToolArgsDeltaPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'tool'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1ToolArgsDeltaPayload {
|
||||
argumentsDelta: string
|
||||
executor: MothershipStreamV1ToolExecutor
|
||||
mode: MothershipStreamV1ToolMode
|
||||
phase: 'args_delta'
|
||||
toolCallId: string
|
||||
toolName: string
|
||||
}
|
||||
export interface MothershipStreamV1ToolResultEventEnvelope {
|
||||
payload: MothershipStreamV1ToolResultPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'tool'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1ToolResultPayload {
|
||||
error?: string
|
||||
executor: MothershipStreamV1ToolExecutor
|
||||
mode: MothershipStreamV1ToolMode
|
||||
output?: unknown
|
||||
phase: 'result'
|
||||
status?: MothershipStreamV1ToolStatus
|
||||
success: boolean
|
||||
toolCallId: string
|
||||
toolName: string
|
||||
}
|
||||
export interface MothershipStreamV1SubagentSpanStartEventEnvelope {
|
||||
payload: MothershipStreamV1SubagentSpanStartPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'span'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SubagentSpanStartPayload {
|
||||
agent?: string
|
||||
data?: unknown
|
||||
event: 'start'
|
||||
kind: 'subagent'
|
||||
}
|
||||
export interface MothershipStreamV1SubagentSpanEndEventEnvelope {
|
||||
payload: MothershipStreamV1SubagentSpanEndPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'span'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SubagentSpanEndPayload {
|
||||
agent?: string
|
||||
data?: unknown
|
||||
event: 'end'
|
||||
kind: 'subagent'
|
||||
}
|
||||
export interface MothershipStreamV1StructuredResultSpanEventEnvelope {
|
||||
payload: MothershipStreamV1StructuredResultSpanPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'span'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1StructuredResultSpanPayload {
|
||||
agent?: string
|
||||
data?: unknown
|
||||
kind: 'structured_result'
|
||||
}
|
||||
export interface MothershipStreamV1SubagentResultSpanEventEnvelope {
|
||||
payload: MothershipStreamV1SubagentResultSpanPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'span'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1SubagentResultSpanPayload {
|
||||
agent?: string
|
||||
data?: unknown
|
||||
kind: 'subagent_result'
|
||||
}
|
||||
export interface MothershipStreamV1ResourceUpsertEventEnvelope {
|
||||
payload: MothershipStreamV1ResourceUpsertPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'resource'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1ResourceUpsertPayload {
|
||||
op: 'upsert'
|
||||
resource: MothershipStreamV1ResourceDescriptor
|
||||
}
|
||||
export interface MothershipStreamV1ResourceDescriptor {
|
||||
id: string
|
||||
title?: string
|
||||
type: string
|
||||
}
|
||||
export interface MothershipStreamV1ResourceRemoveEventEnvelope {
|
||||
payload: MothershipStreamV1ResourceRemovePayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'resource'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1ResourceRemovePayload {
|
||||
op: 'remove'
|
||||
resource: MothershipStreamV1ResourceDescriptor
|
||||
}
|
||||
export interface MothershipStreamV1CheckpointPauseEventEnvelope {
|
||||
payload: MothershipStreamV1CheckpointPausePayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'run'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1CheckpointPausePayload {
|
||||
checkpointId: string
|
||||
executionId: string
|
||||
frames?: MothershipStreamV1CheckpointPauseFrame[]
|
||||
kind: 'checkpoint_pause'
|
||||
pendingToolCallIds: string[]
|
||||
runId: string
|
||||
}
|
||||
export interface MothershipStreamV1CheckpointPauseFrame {
|
||||
checkpointId?: string
|
||||
parentToolCallId: string
|
||||
parentToolName: string
|
||||
pendingToolIds: string[]
|
||||
}
|
||||
export interface MothershipStreamV1RunResumedEventEnvelope {
|
||||
payload: MothershipStreamV1RunResumedPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'run'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1RunResumedPayload {
|
||||
kind: 'resumed'
|
||||
}
|
||||
export interface MothershipStreamV1CompactionStartEventEnvelope {
|
||||
payload: MothershipStreamV1CompactionStartPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'run'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1CompactionStartPayload {
|
||||
kind: 'compaction_start'
|
||||
}
|
||||
export interface MothershipStreamV1CompactionDoneEventEnvelope {
|
||||
payload: MothershipStreamV1CompactionDonePayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'run'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1CompactionDonePayload {
|
||||
data?: MothershipStreamV1CompactionDoneData
|
||||
kind: 'compaction_done'
|
||||
}
|
||||
export interface MothershipStreamV1CompactionDoneData {
|
||||
summary_chars: number
|
||||
}
|
||||
export interface MothershipStreamV1ErrorEventEnvelope {
|
||||
payload: MothershipStreamV1ErrorPayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'error'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1ErrorPayload {
|
||||
code?: string
|
||||
data?: unknown
|
||||
displayMessage?: string
|
||||
error?: string
|
||||
message: string
|
||||
provider?: string
|
||||
}
|
||||
export interface MothershipStreamV1CompleteEventEnvelope {
|
||||
payload: MothershipStreamV1CompletePayload
|
||||
scope?: MothershipStreamV1StreamScope
|
||||
seq: number
|
||||
stream: MothershipStreamV1StreamRef
|
||||
trace?: MothershipStreamV1Trace
|
||||
ts: string
|
||||
type: 'complete'
|
||||
v: 1
|
||||
}
|
||||
export interface MothershipStreamV1CompletePayload {
|
||||
cost?: MothershipStreamV1CostData
|
||||
reason?: string
|
||||
response?: unknown
|
||||
status: MothershipStreamV1CompletionStatus
|
||||
usage?: MothershipStreamV1UsageData
|
||||
}
|
||||
export interface MothershipStreamV1CostData {
|
||||
input?: number
|
||||
output?: number
|
||||
total?: number
|
||||
}
|
||||
export interface MothershipStreamV1UsageData {
|
||||
cache_creation_input_tokens?: number
|
||||
cache_read_input_tokens?: number
|
||||
input_tokens?: number
|
||||
model?: string
|
||||
output_tokens?: number
|
||||
total_tokens?: number
|
||||
}
|
||||
|
||||
export type MothershipStreamV1AsyncToolRecordStatus =
|
||||
| 'pending'
|
||||
| 'running'
|
||||
| 'completed'
|
||||
| 'failed'
|
||||
| 'cancelled'
|
||||
| 'delivered'
|
||||
|
||||
export const MothershipStreamV1AsyncToolRecordStatus = {
|
||||
pending: 'pending',
|
||||
running: 'running',
|
||||
completed: 'completed',
|
||||
failed: 'failed',
|
||||
cancelled: 'cancelled',
|
||||
delivered: 'delivered',
|
||||
} as const
|
||||
|
||||
export const MothershipStreamV1CompletionStatus = {
|
||||
complete: 'complete',
|
||||
error: 'error',
|
||||
cancelled: 'cancelled',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1EventType =
|
||||
| 'session'
|
||||
| 'text'
|
||||
| 'tool'
|
||||
| 'span'
|
||||
| 'resource'
|
||||
| 'run'
|
||||
| 'error'
|
||||
| 'complete'
|
||||
|
||||
export const MothershipStreamV1EventType = {
|
||||
session: 'session',
|
||||
text: 'text',
|
||||
tool: 'tool',
|
||||
span: 'span',
|
||||
resource: 'resource',
|
||||
run: 'run',
|
||||
error: 'error',
|
||||
complete: 'complete',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1ResourceOp = 'upsert' | 'remove'
|
||||
|
||||
export const MothershipStreamV1ResourceOp = {
|
||||
upsert: 'upsert',
|
||||
remove: 'remove',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1RunKind =
|
||||
| 'checkpoint_pause'
|
||||
| 'resumed'
|
||||
| 'compaction_start'
|
||||
| 'compaction_done'
|
||||
|
||||
export const MothershipStreamV1RunKind = {
|
||||
checkpoint_pause: 'checkpoint_pause',
|
||||
resumed: 'resumed',
|
||||
compaction_start: 'compaction_start',
|
||||
compaction_done: 'compaction_done',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1SessionKind = 'trace' | 'chat' | 'title' | 'start'
|
||||
|
||||
export const MothershipStreamV1SessionKind = {
|
||||
trace: 'trace',
|
||||
chat: 'chat',
|
||||
title: 'title',
|
||||
start: 'start',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1SpanKind = 'subagent'
|
||||
|
||||
export const MothershipStreamV1SpanKind = {
|
||||
subagent: 'subagent',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1SpanLifecycleEvent = 'start' | 'end'
|
||||
|
||||
export const MothershipStreamV1SpanLifecycleEvent = {
|
||||
start: 'start',
|
||||
end: 'end',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1SpanPayloadKind = 'subagent' | 'structured_result' | 'subagent_result'
|
||||
|
||||
export const MothershipStreamV1SpanPayloadKind = {
|
||||
subagent: 'subagent',
|
||||
structured_result: 'structured_result',
|
||||
subagent_result: 'subagent_result',
|
||||
} as const
|
||||
|
||||
export const MothershipStreamV1TextChannel = {
|
||||
assistant: 'assistant',
|
||||
thinking: 'thinking',
|
||||
} as const
|
||||
|
||||
export const MothershipStreamV1ToolExecutor = {
|
||||
go: 'go',
|
||||
sim: 'sim',
|
||||
client: 'client',
|
||||
} as const
|
||||
|
||||
export const MothershipStreamV1ToolMode = {
|
||||
sync: 'sync',
|
||||
async: 'async',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1ToolOutcome =
|
||||
| 'success'
|
||||
| 'error'
|
||||
| 'cancelled'
|
||||
| 'skipped'
|
||||
| 'rejected'
|
||||
|
||||
export const MothershipStreamV1ToolOutcome = {
|
||||
success: 'success',
|
||||
error: 'error',
|
||||
cancelled: 'cancelled',
|
||||
skipped: 'skipped',
|
||||
rejected: 'rejected',
|
||||
} as const
|
||||
|
||||
export type MothershipStreamV1ToolPhase = 'call' | 'args_delta' | 'result'
|
||||
|
||||
export const MothershipStreamV1ToolPhase = {
|
||||
call: 'call',
|
||||
args_delta: 'args_delta',
|
||||
result: 'result',
|
||||
} as const
|
||||
|
||||
export const MothershipStreamV1ToolStatus = {
|
||||
generating: 'generating',
|
||||
executing: 'executing',
|
||||
success: 'success',
|
||||
error: 'error',
|
||||
cancelled: 'cancelled',
|
||||
skipped: 'skipped',
|
||||
rejected: 'rejected',
|
||||
} as const
|
||||
@@ -0,0 +1,139 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1Outcome".
|
||||
*/
|
||||
export type RequestTraceV1Outcome = 'success' | 'error' | 'cancelled'
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1SpanSource".
|
||||
*/
|
||||
export type RequestTraceV1SpanSource = 'sim' | 'go'
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1SpanStatus".
|
||||
*/
|
||||
export type RequestTraceV1SpanStatus = 'ok' | 'error' | 'cancelled' | 'pending'
|
||||
|
||||
/**
|
||||
* Trace report sent from Sim to Go after a request completes.
|
||||
*/
|
||||
export interface RequestTraceV1SimReport {
|
||||
chatId?: string
|
||||
cost?: RequestTraceV1CostSummary
|
||||
durationMs: number
|
||||
endMs: number
|
||||
executionId?: string
|
||||
goTraceId?: string
|
||||
outcome: RequestTraceV1Outcome
|
||||
runId?: string
|
||||
simRequestId: string
|
||||
spans: RequestTraceV1Span[]
|
||||
startMs: number
|
||||
streamId?: string
|
||||
usage?: RequestTraceV1UsageSummary
|
||||
userMessage?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1CostSummary".
|
||||
*/
|
||||
export interface RequestTraceV1CostSummary {
|
||||
billedTotalCost?: number
|
||||
rawTotalCost?: number
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1Span".
|
||||
*/
|
||||
export interface RequestTraceV1Span {
|
||||
attributes?: MothershipStreamV1AdditionalPropertiesMap
|
||||
durationMs: number
|
||||
endMs: number
|
||||
kind?: string
|
||||
name: string
|
||||
parentName?: string
|
||||
source?: RequestTraceV1SpanSource
|
||||
startMs: number
|
||||
status: RequestTraceV1SpanStatus
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "MothershipStreamV1AdditionalPropertiesMap".
|
||||
*/
|
||||
export interface MothershipStreamV1AdditionalPropertiesMap {
|
||||
[k: string]: unknown
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1UsageSummary".
|
||||
*/
|
||||
export interface RequestTraceV1UsageSummary {
|
||||
cacheAttemptedRequests?: number
|
||||
cacheHitRequests?: number
|
||||
cacheReadTokens?: number
|
||||
cacheSavingsRate?: number
|
||||
cacheWriteRequests?: number
|
||||
cacheWriteTokens?: number
|
||||
inputTokens?: number
|
||||
outputTokens?: number
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1MergedTrace".
|
||||
*/
|
||||
export interface RequestTraceV1MergedTrace {
|
||||
chatId?: string
|
||||
cost?: RequestTraceV1CostSummary
|
||||
durationMs: number
|
||||
endMs: number
|
||||
goTraceId: string
|
||||
outcome: RequestTraceV1Outcome
|
||||
serviceCharges?: MothershipStreamV1AdditionalPropertiesMap
|
||||
simRequestId?: string
|
||||
spans: RequestTraceV1Span[]
|
||||
startMs: number
|
||||
streamId?: string
|
||||
usage?: RequestTraceV1UsageSummary
|
||||
userId?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `RequestTraceV1SimReport`'s JSON-Schema
|
||||
* via the `definition` "RequestTraceV1SimReport".
|
||||
*/
|
||||
export interface RequestTraceV1SimReport1 {
|
||||
chatId?: string
|
||||
cost?: RequestTraceV1CostSummary
|
||||
durationMs: number
|
||||
endMs: number
|
||||
executionId?: string
|
||||
goTraceId?: string
|
||||
outcome: RequestTraceV1Outcome
|
||||
runId?: string
|
||||
simRequestId: string
|
||||
spans: RequestTraceV1Span[]
|
||||
startMs: number
|
||||
streamId?: string
|
||||
usage?: RequestTraceV1UsageSummary
|
||||
userMessage?: string
|
||||
}
|
||||
|
||||
export const RequestTraceV1Outcome = {
|
||||
success: 'success',
|
||||
error: 'error',
|
||||
cancelled: 'cancelled',
|
||||
} as const
|
||||
|
||||
export const RequestTraceV1SpanSource = {
|
||||
sim: 'sim',
|
||||
go: 'go',
|
||||
} as const
|
||||
|
||||
export const RequestTraceV1SpanStatus = {
|
||||
ok: 'ok',
|
||||
error: 'error',
|
||||
cancelled: 'cancelled',
|
||||
pending: 'pending',
|
||||
} as const
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,372 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
// Source: copilot/copilot/contracts/trace-attribute-values-v1.schema.json
|
||||
// Regenerate with: bun run trace-attribute-values-contract:generate
|
||||
//
|
||||
// Canonical closed-set value vocabularies for mothership OTel
|
||||
// attributes. Call sites should reference e.g.
|
||||
// `CopilotRequestCancelReason.ExplicitStop` rather than the raw
|
||||
// string literal, so typos become compile errors and the Go contract
|
||||
// remains the single source of truth.
|
||||
|
||||
export const AbortBackend = {
|
||||
InProcess: 'in_process',
|
||||
Redis: 'redis',
|
||||
} as const
|
||||
|
||||
export type AbortBackendKey = keyof typeof AbortBackend
|
||||
export type AbortBackendValue = (typeof AbortBackend)[AbortBackendKey]
|
||||
|
||||
export const AbortRedisResult = {
|
||||
Error: 'error',
|
||||
Ok: 'ok',
|
||||
Slow: 'slow',
|
||||
} as const
|
||||
|
||||
export type AbortRedisResultKey = keyof typeof AbortRedisResult
|
||||
export type AbortRedisResultValue = (typeof AbortRedisResult)[AbortRedisResultKey]
|
||||
|
||||
export const AuthKeyMatch = {
|
||||
None: 'none',
|
||||
User: 'user',
|
||||
} as const
|
||||
|
||||
export type AuthKeyMatchKey = keyof typeof AuthKeyMatch
|
||||
export type AuthKeyMatchValue = (typeof AuthKeyMatch)[AuthKeyMatchKey]
|
||||
|
||||
export const BillingAnalyticsOutcome = {
|
||||
Duplicate: 'duplicate',
|
||||
RetriesExhausted: 'retries_exhausted',
|
||||
Success: 'success',
|
||||
Unknown: 'unknown',
|
||||
} as const
|
||||
|
||||
export type BillingAnalyticsOutcomeKey = keyof typeof BillingAnalyticsOutcome
|
||||
export type BillingAnalyticsOutcomeValue =
|
||||
(typeof BillingAnalyticsOutcome)[BillingAnalyticsOutcomeKey]
|
||||
|
||||
export const BillingFlushOutcome = {
|
||||
CheckpointAlreadyClaimed: 'checkpoint_already_claimed',
|
||||
CheckpointLoadFailed: 'checkpoint_load_failed',
|
||||
Flushed: 'flushed',
|
||||
NoCheckpoint: 'no_checkpoint',
|
||||
NoSnapshot: 'no_snapshot',
|
||||
SkippedUnconfigured: 'skipped_unconfigured',
|
||||
} as const
|
||||
|
||||
export type BillingFlushOutcomeKey = keyof typeof BillingFlushOutcome
|
||||
export type BillingFlushOutcomeValue = (typeof BillingFlushOutcome)[BillingFlushOutcomeKey]
|
||||
|
||||
export const BillingRouteOutcome = {
|
||||
AuthFailed: 'auth_failed',
|
||||
Billed: 'billed',
|
||||
BillingDisabled: 'billing_disabled',
|
||||
DuplicateIdempotencyKey: 'duplicate_idempotency_key',
|
||||
InternalError: 'internal_error',
|
||||
InvalidBody: 'invalid_body',
|
||||
} as const
|
||||
|
||||
export type BillingRouteOutcomeKey = keyof typeof BillingRouteOutcome
|
||||
export type BillingRouteOutcomeValue = (typeof BillingRouteOutcome)[BillingRouteOutcomeKey]
|
||||
|
||||
export const CopilotAbortOutcome = {
|
||||
BadRequest: 'bad_request',
|
||||
FallbackPersistFailed: 'fallback_persist_failed',
|
||||
ForceReleased: 'force_released',
|
||||
MissingMessageId: 'missing_message_id',
|
||||
MissingStreamId: 'missing_stream_id',
|
||||
NoChatId: 'no_chat_id',
|
||||
Ok: 'ok',
|
||||
SettleTimeout: 'settle_timeout',
|
||||
Settled: 'settled',
|
||||
Unauthorized: 'unauthorized',
|
||||
} as const
|
||||
|
||||
export type CopilotAbortOutcomeKey = keyof typeof CopilotAbortOutcome
|
||||
export type CopilotAbortOutcomeValue = (typeof CopilotAbortOutcome)[CopilotAbortOutcomeKey]
|
||||
|
||||
export const CopilotBranchKind = {
|
||||
Workflow: 'workflow',
|
||||
Workspace: 'workspace',
|
||||
} as const
|
||||
|
||||
export type CopilotBranchKindKey = keyof typeof CopilotBranchKind
|
||||
export type CopilotBranchKindValue = (typeof CopilotBranchKind)[CopilotBranchKindKey]
|
||||
|
||||
export const CopilotChatFinalizeOutcome = {
|
||||
AppendedAssistant: 'appended_assistant',
|
||||
AssistantAlreadyPersisted: 'assistant_already_persisted',
|
||||
ClearedStreamMarkerOnly: 'cleared_stream_marker_only',
|
||||
StaleUserMessage: 'stale_user_message',
|
||||
} as const
|
||||
|
||||
export type CopilotChatFinalizeOutcomeKey = keyof typeof CopilotChatFinalizeOutcome
|
||||
export type CopilotChatFinalizeOutcomeValue =
|
||||
(typeof CopilotChatFinalizeOutcome)[CopilotChatFinalizeOutcomeKey]
|
||||
|
||||
export const CopilotChatPersistOutcome = {
|
||||
Appended: 'appended',
|
||||
ChatNotFound: 'chat_not_found',
|
||||
} as const
|
||||
|
||||
export type CopilotChatPersistOutcomeKey = keyof typeof CopilotChatPersistOutcome
|
||||
export type CopilotChatPersistOutcomeValue =
|
||||
(typeof CopilotChatPersistOutcome)[CopilotChatPersistOutcomeKey]
|
||||
|
||||
export const CopilotConfirmOutcome = {
|
||||
Delivered: 'delivered',
|
||||
Forbidden: 'forbidden',
|
||||
InternalError: 'internal_error',
|
||||
RunNotFound: 'run_not_found',
|
||||
ToolCallNotFound: 'tool_call_not_found',
|
||||
Unauthorized: 'unauthorized',
|
||||
UpdateFailed: 'update_failed',
|
||||
ValidationError: 'validation_error',
|
||||
} as const
|
||||
|
||||
export type CopilotConfirmOutcomeKey = keyof typeof CopilotConfirmOutcome
|
||||
export type CopilotConfirmOutcomeValue = (typeof CopilotConfirmOutcome)[CopilotConfirmOutcomeKey]
|
||||
|
||||
export const CopilotFinalizeOutcome = {
|
||||
Aborted: 'aborted',
|
||||
Error: 'error',
|
||||
Success: 'success',
|
||||
} as const
|
||||
|
||||
export type CopilotFinalizeOutcomeKey = keyof typeof CopilotFinalizeOutcome
|
||||
export type CopilotFinalizeOutcomeValue = (typeof CopilotFinalizeOutcome)[CopilotFinalizeOutcomeKey]
|
||||
|
||||
export const CopilotLeg = {
|
||||
SimToGo: 'sim_to_go',
|
||||
} as const
|
||||
|
||||
export type CopilotLegKey = keyof typeof CopilotLeg
|
||||
export type CopilotLegValue = (typeof CopilotLeg)[CopilotLegKey]
|
||||
|
||||
export const CopilotOutputFileOutcome = {
|
||||
Failed: 'failed',
|
||||
Uploaded: 'uploaded',
|
||||
} as const
|
||||
|
||||
export type CopilotOutputFileOutcomeKey = keyof typeof CopilotOutputFileOutcome
|
||||
export type CopilotOutputFileOutcomeValue =
|
||||
(typeof CopilotOutputFileOutcome)[CopilotOutputFileOutcomeKey]
|
||||
|
||||
export const CopilotRecoveryOutcome = {
|
||||
GapDetected: 'gap_detected',
|
||||
InRange: 'in_range',
|
||||
} as const
|
||||
|
||||
export type CopilotRecoveryOutcomeKey = keyof typeof CopilotRecoveryOutcome
|
||||
export type CopilotRecoveryOutcomeValue = (typeof CopilotRecoveryOutcome)[CopilotRecoveryOutcomeKey]
|
||||
|
||||
export const CopilotRequestCancelReason = {
|
||||
ClientDisconnect: 'client_disconnect',
|
||||
ExplicitStop: 'explicit_stop',
|
||||
Timeout: 'timeout',
|
||||
Unknown: 'unknown',
|
||||
} as const
|
||||
|
||||
export type CopilotRequestCancelReasonKey = keyof typeof CopilotRequestCancelReason
|
||||
export type CopilotRequestCancelReasonValue =
|
||||
(typeof CopilotRequestCancelReason)[CopilotRequestCancelReasonKey]
|
||||
|
||||
export const CopilotResourcesOp = {
|
||||
Delete: 'delete',
|
||||
None: 'none',
|
||||
Upsert: 'upsert',
|
||||
} as const
|
||||
|
||||
export type CopilotResourcesOpKey = keyof typeof CopilotResourcesOp
|
||||
export type CopilotResourcesOpValue = (typeof CopilotResourcesOp)[CopilotResourcesOpKey]
|
||||
|
||||
export const CopilotResumeOutcome = {
|
||||
BatchDelivered: 'batch_delivered',
|
||||
ClientDisconnected: 'client_disconnected',
|
||||
EndedWithoutTerminal: 'ended_without_terminal',
|
||||
StreamNotFound: 'stream_not_found',
|
||||
TerminalDelivered: 'terminal_delivered',
|
||||
} as const
|
||||
|
||||
export type CopilotResumeOutcomeKey = keyof typeof CopilotResumeOutcome
|
||||
export type CopilotResumeOutcomeValue = (typeof CopilotResumeOutcome)[CopilotResumeOutcomeKey]
|
||||
|
||||
export const CopilotSseCloseReason = {
|
||||
Aborted: 'aborted',
|
||||
BackendError: 'backend_error',
|
||||
BillingLimit: 'billing_limit',
|
||||
ClosedNoTerminal: 'closed_no_terminal',
|
||||
Error: 'error',
|
||||
Terminal: 'terminal',
|
||||
Timeout: 'timeout',
|
||||
} as const
|
||||
|
||||
export type CopilotSseCloseReasonKey = keyof typeof CopilotSseCloseReason
|
||||
export type CopilotSseCloseReasonValue = (typeof CopilotSseCloseReason)[CopilotSseCloseReasonKey]
|
||||
|
||||
export const CopilotStopOutcome = {
|
||||
ChatNotFound: 'chat_not_found',
|
||||
InternalError: 'internal_error',
|
||||
NoMatchingRow: 'no_matching_row',
|
||||
Persisted: 'persisted',
|
||||
Unauthorized: 'unauthorized',
|
||||
ValidationError: 'validation_error',
|
||||
} as const
|
||||
|
||||
export type CopilotStopOutcomeKey = keyof typeof CopilotStopOutcome
|
||||
export type CopilotStopOutcomeValue = (typeof CopilotStopOutcome)[CopilotStopOutcomeKey]
|
||||
|
||||
export const CopilotSurface = {
|
||||
Copilot: 'copilot',
|
||||
Mothership: 'mothership',
|
||||
} as const
|
||||
|
||||
export type CopilotSurfaceKey = keyof typeof CopilotSurface
|
||||
export type CopilotSurfaceValue = (typeof CopilotSurface)[CopilotSurfaceKey]
|
||||
|
||||
export const CopilotTableOutcome = {
|
||||
EmptyContent: 'empty_content',
|
||||
EmptyRows: 'empty_rows',
|
||||
Failed: 'failed',
|
||||
Imported: 'imported',
|
||||
InvalidJsonShape: 'invalid_json_shape',
|
||||
InvalidShape: 'invalid_shape',
|
||||
RowLimitExceeded: 'row_limit_exceeded',
|
||||
TableNotFound: 'table_not_found',
|
||||
Wrote: 'wrote',
|
||||
} as const
|
||||
|
||||
export type CopilotTableOutcomeKey = keyof typeof CopilotTableOutcome
|
||||
export type CopilotTableOutcomeValue = (typeof CopilotTableOutcome)[CopilotTableOutcomeKey]
|
||||
|
||||
export const CopilotTableSourceFormat = {
|
||||
Csv: 'csv',
|
||||
Json: 'json',
|
||||
} as const
|
||||
|
||||
export type CopilotTableSourceFormatKey = keyof typeof CopilotTableSourceFormat
|
||||
export type CopilotTableSourceFormatValue =
|
||||
(typeof CopilotTableSourceFormat)[CopilotTableSourceFormatKey]
|
||||
|
||||
export const CopilotTransport = {
|
||||
Batch: 'batch',
|
||||
Headless: 'headless',
|
||||
Stream: 'stream',
|
||||
} as const
|
||||
|
||||
export type CopilotTransportKey = keyof typeof CopilotTransport
|
||||
export type CopilotTransportValue = (typeof CopilotTransport)[CopilotTransportKey]
|
||||
|
||||
export const CopilotValidateOutcome = {
|
||||
InternalAuthFailed: 'internal_auth_failed',
|
||||
InternalError: 'internal_error',
|
||||
InvalidBody: 'invalid_body',
|
||||
Ok: 'ok',
|
||||
UsageExceeded: 'usage_exceeded',
|
||||
UserNotFound: 'user_not_found',
|
||||
} as const
|
||||
|
||||
export type CopilotValidateOutcomeKey = keyof typeof CopilotValidateOutcome
|
||||
export type CopilotValidateOutcomeValue = (typeof CopilotValidateOutcome)[CopilotValidateOutcomeKey]
|
||||
|
||||
export const CopilotVfsOutcome = {
|
||||
PassthroughFitsBudget: 'passthrough_fits_budget',
|
||||
PassthroughNoMetadata: 'passthrough_no_metadata',
|
||||
PassthroughNoSharp: 'passthrough_no_sharp',
|
||||
RejectedNoMetadata: 'rejected_no_metadata',
|
||||
RejectedNoSharp: 'rejected_no_sharp',
|
||||
RejectedTooLargeAfterResize: 'rejected_too_large_after_resize',
|
||||
Resized: 'resized',
|
||||
} as const
|
||||
|
||||
export type CopilotVfsOutcomeKey = keyof typeof CopilotVfsOutcome
|
||||
export type CopilotVfsOutcomeValue = (typeof CopilotVfsOutcome)[CopilotVfsOutcomeKey]
|
||||
|
||||
export const CopilotVfsReadOutcome = {
|
||||
BinaryPlaceholder: 'binary_placeholder',
|
||||
DocumentParsed: 'document_parsed',
|
||||
DocumentTooLarge: 'document_too_large',
|
||||
ImagePrepared: 'image_prepared',
|
||||
ImageTooLarge: 'image_too_large',
|
||||
ParseFailed: 'parse_failed',
|
||||
ReadFailed: 'read_failed',
|
||||
TextRead: 'text_read',
|
||||
TextTooLarge: 'text_too_large',
|
||||
} as const
|
||||
|
||||
export type CopilotVfsReadOutcomeKey = keyof typeof CopilotVfsReadOutcome
|
||||
export type CopilotVfsReadOutcomeValue = (typeof CopilotVfsReadOutcome)[CopilotVfsReadOutcomeKey]
|
||||
|
||||
export const CopilotVfsReadPath = {
|
||||
Binary: 'binary',
|
||||
Image: 'image',
|
||||
ParseableDocument: 'parseable_document',
|
||||
Text: 'text',
|
||||
} as const
|
||||
|
||||
export type CopilotVfsReadPathKey = keyof typeof CopilotVfsReadPath
|
||||
export type CopilotVfsReadPathValue = (typeof CopilotVfsReadPath)[CopilotVfsReadPathKey]
|
||||
|
||||
export const LlmErrorStage = {
|
||||
BuildRequest: 'build_request',
|
||||
Decode: 'decode',
|
||||
HttpBuild: 'http_build',
|
||||
HttpStatus: 'http_status',
|
||||
Invoke: 'invoke',
|
||||
MarshalRequest: 'marshal_request',
|
||||
StreamClose: 'stream_close',
|
||||
} as const
|
||||
|
||||
export type LlmErrorStageKey = keyof typeof LlmErrorStage
|
||||
export type LlmErrorStageValue = (typeof LlmErrorStage)[LlmErrorStageKey]
|
||||
|
||||
export const RateLimitOutcome = {
|
||||
Allowed: 'allowed',
|
||||
IncrError: 'incr_error',
|
||||
Limited: 'limited',
|
||||
} as const
|
||||
|
||||
export type RateLimitOutcomeKey = keyof typeof RateLimitOutcome
|
||||
export type RateLimitOutcomeValue = (typeof RateLimitOutcome)[RateLimitOutcomeKey]
|
||||
|
||||
export const ToolAsyncWaiterResolution = {
|
||||
ContextCancelled: 'context_cancelled',
|
||||
Poll: 'poll',
|
||||
Pubsub: 'pubsub',
|
||||
StoredAfterClose: 'stored_after_close',
|
||||
StoredBeforeSubscribe: 'stored_before_subscribe',
|
||||
StoredPostSubscribe: 'stored_post_subscribe',
|
||||
SubscriptionClosed: 'subscription_closed',
|
||||
Unknown: 'unknown',
|
||||
} as const
|
||||
|
||||
export type ToolAsyncWaiterResolutionKey = keyof typeof ToolAsyncWaiterResolution
|
||||
export type ToolAsyncWaiterResolutionValue =
|
||||
(typeof ToolAsyncWaiterResolution)[ToolAsyncWaiterResolutionKey]
|
||||
|
||||
export const ToolErrorKind = {
|
||||
Dispatch: 'dispatch',
|
||||
NotFound: 'not_found',
|
||||
} as const
|
||||
|
||||
export type ToolErrorKindKey = keyof typeof ToolErrorKind
|
||||
export type ToolErrorKindValue = (typeof ToolErrorKind)[ToolErrorKindKey]
|
||||
|
||||
export const ToolExecutor = {
|
||||
Client: 'client',
|
||||
Go: 'go',
|
||||
Sim: 'sim',
|
||||
} as const
|
||||
|
||||
export type ToolExecutorKey = keyof typeof ToolExecutor
|
||||
export type ToolExecutorValue = (typeof ToolExecutor)[ToolExecutorKey]
|
||||
|
||||
export const ToolStoreStatus = {
|
||||
Cancelled: 'cancelled',
|
||||
Completed: 'completed',
|
||||
Failed: 'failed',
|
||||
Pending: 'pending',
|
||||
} as const
|
||||
|
||||
export type ToolStoreStatusKey = keyof typeof ToolStoreStatus
|
||||
export type ToolStoreStatusValue = (typeof ToolStoreStatus)[ToolStoreStatusKey]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,52 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
// Source: copilot/copilot/contracts/trace-events-v1.schema.json
|
||||
// Regenerate with: bun run trace-events-contract:generate
|
||||
//
|
||||
// Canonical mothership OTel span event names. Call sites should
|
||||
// reference `TraceEvent.<Identifier>` (e.g.
|
||||
// `TraceEvent.RequestCancelled`) rather than raw string literals,
|
||||
// so the Go-side contract is the single source of truth and typos
|
||||
// become compile errors.
|
||||
|
||||
export const TraceEvent = {
|
||||
ContextTransform: 'context.transform',
|
||||
CopilotOutputFileError: 'copilot.output_file.error',
|
||||
CopilotSseFirstEvent: 'copilot.sse.first_event',
|
||||
CopilotSseIdleGapExceeded: 'copilot.sse.idle_gap_exceeded',
|
||||
CopilotSseTerminalEventReceived: 'copilot.sse.terminal_event_received',
|
||||
CopilotTableError: 'copilot.table.error',
|
||||
CopilotVfsParseFailed: 'copilot.vfs.parse_failed',
|
||||
CopilotVfsResizeAttempt: 'copilot.vfs.resize_attempt',
|
||||
CopilotVfsResizeAttemptFailed: 'copilot.vfs.resize_attempt_failed',
|
||||
GenAiPromptCacheBreakpoint: 'gen_ai.prompt_cache.breakpoint',
|
||||
LlmInvokeSent: 'llm.invoke.sent',
|
||||
LlmStreamFirstChunk: 'llm.stream.first_chunk',
|
||||
LlmStreamOpened: 'llm.stream.opened',
|
||||
PgNotifyFailed: 'pg_notify_failed',
|
||||
RedisSubscribed: 'redis.subscribed',
|
||||
RequestCancelled: 'request.cancelled',
|
||||
} as const
|
||||
|
||||
export type TraceEventKey = keyof typeof TraceEvent
|
||||
export type TraceEventValue = (typeof TraceEvent)[TraceEventKey]
|
||||
|
||||
/** Readonly sorted list of every canonical event name. */
|
||||
export const TraceEventValues: readonly TraceEventValue[] = [
|
||||
'context.transform',
|
||||
'copilot.output_file.error',
|
||||
'copilot.sse.first_event',
|
||||
'copilot.sse.idle_gap_exceeded',
|
||||
'copilot.sse.terminal_event_received',
|
||||
'copilot.table.error',
|
||||
'copilot.vfs.parse_failed',
|
||||
'copilot.vfs.resize_attempt',
|
||||
'copilot.vfs.resize_attempt_failed',
|
||||
'gen_ai.prompt_cache.breakpoint',
|
||||
'llm.invoke.sent',
|
||||
'llm.stream.first_chunk',
|
||||
'llm.stream.opened',
|
||||
'pg_notify_failed',
|
||||
'redis.subscribed',
|
||||
'request.cancelled',
|
||||
] as const
|
||||
@@ -0,0 +1,155 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
// Source: copilot/copilot/contracts/trace-spans-v1.schema.json
|
||||
// Regenerate with: bun run trace-spans-contract:generate
|
||||
//
|
||||
// Canonical mothership OTel span names. Call sites should reference
|
||||
// `TraceSpan.<Identifier>` (e.g. `TraceSpan.CopilotVfsReadFile`)
|
||||
// rather than raw string literals, so the Go-side contract is the
|
||||
// single source of truth and typos become compile errors.
|
||||
|
||||
export const TraceSpan = {
|
||||
AnthropicCountTokens: 'anthropic.count_tokens',
|
||||
AsyncToolStoreSet: 'async_tool_store.set',
|
||||
AuthRateLimitRecord: 'auth.rate_limit.record',
|
||||
AuthValidateKey: 'auth.validate_key',
|
||||
ChatContinueWithToolResults: 'chat.continue_with_tool_results',
|
||||
ChatExplicitAbortConsume: 'chat.explicit_abort.consume',
|
||||
ChatExplicitAbortFlushPausedBilling: 'chat.explicit_abort.flush_paused_billing',
|
||||
ChatExplicitAbortHandle: 'chat.explicit_abort.handle',
|
||||
ChatExplicitAbortMark: 'chat.explicit_abort.mark',
|
||||
ChatExplicitAbortPeek: 'chat.explicit_abort.peek',
|
||||
ChatGateAcquire: 'chat.gate.acquire',
|
||||
ChatPersistAfterDone: 'chat.persist_after_done',
|
||||
ChatSetup: 'chat.setup',
|
||||
ContextReduce: 'context.reduce',
|
||||
ContextSummarizeChunk: 'context.summarize_chunk',
|
||||
CopilotAnalyticsFlush: 'copilot.analytics.flush',
|
||||
CopilotAnalyticsSaveRequest: 'copilot.analytics.save_request',
|
||||
CopilotAnalyticsUpdateBilling: 'copilot.analytics.update_billing',
|
||||
CopilotAsyncRunsClaimCompleted: 'copilot.async_runs.claim_completed',
|
||||
CopilotAsyncRunsCreateRunCheckpoint: 'copilot.async_runs.create_run_checkpoint',
|
||||
CopilotAsyncRunsCreateRunSegment: 'copilot.async_runs.create_run_segment',
|
||||
CopilotAsyncRunsGetAsyncToolCall: 'copilot.async_runs.get_async_tool_call',
|
||||
CopilotAsyncRunsGetLatestForExecution: 'copilot.async_runs.get_latest_for_execution',
|
||||
CopilotAsyncRunsGetLatestForStream: 'copilot.async_runs.get_latest_for_stream',
|
||||
CopilotAsyncRunsGetMany: 'copilot.async_runs.get_many',
|
||||
CopilotAsyncRunsGetRunSegment: 'copilot.async_runs.get_run_segment',
|
||||
CopilotAsyncRunsListForRun: 'copilot.async_runs.list_for_run',
|
||||
CopilotAsyncRunsMarkAsyncToolStatus: 'copilot.async_runs.mark_async_tool_status',
|
||||
CopilotAsyncRunsReleaseClaim: 'copilot.async_runs.release_claim',
|
||||
CopilotAsyncRunsUpdateRunStatus: 'copilot.async_runs.update_run_status',
|
||||
CopilotAsyncRunsUpsertAsyncToolCall: 'copilot.async_runs.upsert_async_tool_call',
|
||||
CopilotAuthValidateApiKey: 'copilot.auth.validate_api_key',
|
||||
CopilotBillingUpdateCost: 'copilot.billing.update_cost',
|
||||
CopilotChatAbortActiveStream: 'copilot.chat.abort_active_stream',
|
||||
CopilotChatAbortStream: 'copilot.chat.abort_stream',
|
||||
CopilotChatAbortWaitSettle: 'copilot.chat.abort_wait_settle',
|
||||
CopilotChatAcquirePendingStreamLock: 'copilot.chat.acquire_pending_stream_lock',
|
||||
CopilotChatBuildExecutionContext: 'copilot.chat.build_execution_context',
|
||||
CopilotChatBuildPayload: 'copilot.chat.build_payload',
|
||||
CopilotChatBuildWorkspaceContext: 'copilot.chat.build_workspace_context',
|
||||
CopilotChatFinalizeAssistantTurn: 'copilot.chat.finalize_assistant_turn',
|
||||
CopilotChatPersistUserMessage: 'copilot.chat.persist_user_message',
|
||||
CopilotChatResolveAgentContexts: 'copilot.chat.resolve_agent_contexts',
|
||||
CopilotChatResolveBranch: 'copilot.chat.resolve_branch',
|
||||
CopilotChatResolveOrCreateChat: 'copilot.chat.resolve_or_create_chat',
|
||||
CopilotChatStopStream: 'copilot.chat.stop_stream',
|
||||
CopilotConfirmToolResult: 'copilot.confirm.tool_result',
|
||||
CopilotFinalizeStream: 'copilot.finalize_stream',
|
||||
CopilotRecoveryCheckReplayGap: 'copilot.recovery.check_replay_gap',
|
||||
CopilotResumeRequest: 'copilot.resume.request',
|
||||
CopilotSseReadLoop: 'copilot.sse.read_loop',
|
||||
CopilotSubagentExecute: 'copilot.subagent.execute',
|
||||
CopilotToolWaitForClientResult: 'copilot.tool.wait_for_client_result',
|
||||
CopilotToolsHandleResourceSideEffects: 'copilot.tools.handle_resource_side_effects',
|
||||
CopilotToolsWriteCsvToTable: 'copilot.tools.write_csv_to_table',
|
||||
CopilotToolsWriteOutputFile: 'copilot.tools.write_output_file',
|
||||
CopilotToolsWriteOutputTable: 'copilot.tools.write_output_table',
|
||||
CopilotVfsMaterialize: 'copilot.vfs.materialize',
|
||||
CopilotVfsPrepareImage: 'copilot.vfs.prepare_image',
|
||||
CopilotVfsReadFile: 'copilot.vfs.read_file',
|
||||
GenAiAgentExecute: 'gen_ai.agent.execute',
|
||||
LlmStream: 'llm.stream',
|
||||
ProviderRouterCountTokens: 'provider.router.count_tokens',
|
||||
ProviderRouterRoute: 'provider.router.route',
|
||||
SimUpdateCost: 'sim.update_cost',
|
||||
SimValidateApiKey: 'sim.validate_api_key',
|
||||
ToolAsyncWaiterWait: 'tool.async_waiter.wait',
|
||||
ToolExecute: 'tool.execute',
|
||||
} as const
|
||||
|
||||
export type TraceSpanKey = keyof typeof TraceSpan
|
||||
export type TraceSpanValue = (typeof TraceSpan)[TraceSpanKey]
|
||||
|
||||
/** Readonly sorted list of every canonical span name. */
|
||||
export const TraceSpanValues: readonly TraceSpanValue[] = [
|
||||
'anthropic.count_tokens',
|
||||
'async_tool_store.set',
|
||||
'auth.rate_limit.record',
|
||||
'auth.validate_key',
|
||||
'chat.continue_with_tool_results',
|
||||
'chat.explicit_abort.consume',
|
||||
'chat.explicit_abort.flush_paused_billing',
|
||||
'chat.explicit_abort.handle',
|
||||
'chat.explicit_abort.mark',
|
||||
'chat.explicit_abort.peek',
|
||||
'chat.gate.acquire',
|
||||
'chat.persist_after_done',
|
||||
'chat.setup',
|
||||
'context.reduce',
|
||||
'context.summarize_chunk',
|
||||
'copilot.analytics.flush',
|
||||
'copilot.analytics.save_request',
|
||||
'copilot.analytics.update_billing',
|
||||
'copilot.async_runs.claim_completed',
|
||||
'copilot.async_runs.create_run_checkpoint',
|
||||
'copilot.async_runs.create_run_segment',
|
||||
'copilot.async_runs.get_async_tool_call',
|
||||
'copilot.async_runs.get_latest_for_execution',
|
||||
'copilot.async_runs.get_latest_for_stream',
|
||||
'copilot.async_runs.get_many',
|
||||
'copilot.async_runs.get_run_segment',
|
||||
'copilot.async_runs.list_for_run',
|
||||
'copilot.async_runs.mark_async_tool_status',
|
||||
'copilot.async_runs.release_claim',
|
||||
'copilot.async_runs.update_run_status',
|
||||
'copilot.async_runs.upsert_async_tool_call',
|
||||
'copilot.auth.validate_api_key',
|
||||
'copilot.billing.update_cost',
|
||||
'copilot.chat.abort_active_stream',
|
||||
'copilot.chat.abort_stream',
|
||||
'copilot.chat.abort_wait_settle',
|
||||
'copilot.chat.acquire_pending_stream_lock',
|
||||
'copilot.chat.build_execution_context',
|
||||
'copilot.chat.build_payload',
|
||||
'copilot.chat.build_workspace_context',
|
||||
'copilot.chat.finalize_assistant_turn',
|
||||
'copilot.chat.persist_user_message',
|
||||
'copilot.chat.resolve_agent_contexts',
|
||||
'copilot.chat.resolve_branch',
|
||||
'copilot.chat.resolve_or_create_chat',
|
||||
'copilot.chat.stop_stream',
|
||||
'copilot.confirm.tool_result',
|
||||
'copilot.finalize_stream',
|
||||
'copilot.recovery.check_replay_gap',
|
||||
'copilot.resume.request',
|
||||
'copilot.sse.read_loop',
|
||||
'copilot.subagent.execute',
|
||||
'copilot.tool.wait_for_client_result',
|
||||
'copilot.tools.handle_resource_side_effects',
|
||||
'copilot.tools.write_csv_to_table',
|
||||
'copilot.tools.write_output_file',
|
||||
'copilot.tools.write_output_table',
|
||||
'copilot.vfs.materialize',
|
||||
'copilot.vfs.prepare_image',
|
||||
'copilot.vfs.read_file',
|
||||
'gen_ai.agent.execute',
|
||||
'llm.stream',
|
||||
'provider.router.count_tokens',
|
||||
'provider.router.route',
|
||||
'sim.update_cost',
|
||||
'sim.validate_api_key',
|
||||
'tool.async_waiter.wait',
|
||||
'tool.execute',
|
||||
] as const
|
||||
@@ -0,0 +1,131 @@
|
||||
// AUTO-GENERATED FILE. DO NOT EDIT.
|
||||
//
|
||||
|
||||
/**
|
||||
* Structured workspace inventory snapshot Sim sends to Go; Go diffs successive snapshots into baseline+delta messages.
|
||||
*/
|
||||
export interface VfsSnapshotV1 {
|
||||
customTools?: VfsSnapshotV1NamedResource[]
|
||||
envVars?: string[]
|
||||
files?: VfsSnapshotV1File[]
|
||||
integrations?: VfsSnapshotV1Integration[]
|
||||
jobs?: VfsSnapshotV1Job[]
|
||||
knowledgeBases?: VfsSnapshotV1KnowledgeBase[]
|
||||
mcpServers?: VfsSnapshotV1McpServer[]
|
||||
members?: VfsSnapshotV1Member[]
|
||||
skills?: VfsSnapshotV1Skill[]
|
||||
tables?: VfsSnapshotV1Table[]
|
||||
workflows?: VfsSnapshotV1Workflow[]
|
||||
workspace?: VfsSnapshotV1Workspace
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1NamedResource".
|
||||
*/
|
||||
export interface VfsSnapshotV1NamedResource {
|
||||
id: string
|
||||
name: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1File".
|
||||
*/
|
||||
export interface VfsSnapshotV1File {
|
||||
folderPath?: string
|
||||
id: string
|
||||
name: string
|
||||
path: string
|
||||
size?: number
|
||||
type?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Integration".
|
||||
*/
|
||||
export interface VfsSnapshotV1Integration {
|
||||
displayName?: string
|
||||
id: string
|
||||
providerId: string
|
||||
role?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Job".
|
||||
*/
|
||||
export interface VfsSnapshotV1Job {
|
||||
cronExpression?: string
|
||||
id: string
|
||||
lifecycle?: string
|
||||
prompt?: string
|
||||
sourceTaskName?: string
|
||||
status?: string
|
||||
title?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1KnowledgeBase".
|
||||
*/
|
||||
export interface VfsSnapshotV1KnowledgeBase {
|
||||
connectorTypes?: string[]
|
||||
description?: string
|
||||
id: string
|
||||
name: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1McpServer".
|
||||
*/
|
||||
export interface VfsSnapshotV1McpServer {
|
||||
enabled?: boolean
|
||||
id: string
|
||||
name: string
|
||||
url?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Member".
|
||||
*/
|
||||
export interface VfsSnapshotV1Member {
|
||||
email: string
|
||||
name?: string
|
||||
permissionType?: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Skill".
|
||||
*/
|
||||
export interface VfsSnapshotV1Skill {
|
||||
description?: string
|
||||
id: string
|
||||
name: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Table".
|
||||
*/
|
||||
export interface VfsSnapshotV1Table {
|
||||
description?: string
|
||||
id: string
|
||||
name: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Workflow".
|
||||
*/
|
||||
export interface VfsSnapshotV1Workflow {
|
||||
description?: string
|
||||
folderPath?: string
|
||||
id: string
|
||||
isDeployed?: boolean
|
||||
name: string
|
||||
path: string
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `VfsSnapshotV1`'s JSON-Schema
|
||||
* via the `definition` "VfsSnapshotV1Workspace".
|
||||
*/
|
||||
export interface VfsSnapshotV1Workspace {
|
||||
id: string
|
||||
name: string
|
||||
ownerId?: string
|
||||
}
|
||||
Reference in New Issue
Block a user