chore: snapshot working tree - pty_exited notifications + in-flight inference WIP
feat(booterm): structured pty_exited WS notifications. Plan-validated, impl-validated, code-reviewed green (contracts build clean, contracts test 29/29, booterm + web typecheck clean). wip: in-progress inference/provider refactor (agents.ts, provider.ts, new llama-providers.ts, removed llama-args-validator), plus arena, dispatcher, compaction, schema changes. openspec: pty-exit-notifications complete; x-agent-flags planned (not yet implemented).
This commit is contained in:
@@ -115,8 +115,8 @@
|
||||
- function sanitizeSlug: (s) => string
|
||||
- function buildBattleSlug: (battleId, battleType, createdAt) => string
|
||||
- _...7 more_
|
||||
- `apps/coder/src/services/arena-model-call.ts` — function arenaModelCall: (opts, 'LLAMA_SWAP_URL'>;
|
||||
model) => Promise<string>
|
||||
- `apps/coder/src/services/arena-local-models.ts` — function createLocalModelSet: (log) => LocalModelSetHandle, interface LocalModelSetHandle
|
||||
- `apps/coder/src/services/arena-model-call.ts` — function resolveModelEndpoint: (model) => void, function arenaModelCall: (opts) => Promise<string>
|
||||
- `apps/coder/src/services/arena-runner.ts`
|
||||
- function createBattleRunner: (deps) => BattleRunner
|
||||
- interface ContestantSpec
|
||||
@@ -294,6 +294,11 @@
|
||||
- interface LineRef
|
||||
- `apps/coder/src/services/hashline/xxhash32.ts` — function hashXxh32: (input, seed) => number
|
||||
- `apps/coder/src/services/host-exec.ts` — function hostExec: (command, opts?) => Promise<HostExecResult>, interface HostExecResult
|
||||
- `apps/coder/src/services/llama-providers.ts`
|
||||
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
|
||||
- function getLlamaProviders: () => LlamaProvidersFile
|
||||
- function parseModelRef: (ref) => ParsedModelRef
|
||||
- `apps/coder/src/services/local-gateway.ts` — function resolveGatewayModel: (model) => void, function registerLocalGatewayRoutes: (app) => void
|
||||
- `apps/coder/src/services/lsp/client.ts` — class LspClient
|
||||
- `apps/coder/src/services/lsp/config.ts` — function getServerConfig: (filePath) => LspServerConfig | null, interface LspServerConfig
|
||||
- `apps/coder/src/services/lsp/operations.ts`
|
||||
@@ -346,6 +351,11 @@
|
||||
- function reclaimPort: (port) => void
|
||||
- function waitForPortRelease: (port, timeoutMs) => Promise<boolean>
|
||||
- function freePort: () => Promise<number>
|
||||
- `apps/coder/src/services/opencode-config-sync.ts`
|
||||
- function buildBoocodeLocalProviderConfig: (gatewayUrl) => Promise<OpencodeProviderConfig>
|
||||
- function syncOpencodeConfig: (gatewayUrl, log, msg) => void
|
||||
- interface OpencodeProviderConfig
|
||||
- interface OpencodeConfig
|
||||
- `apps/coder/src/services/orphan-worktree-reaper.ts`
|
||||
- function reapOrphanWorktrees: (sql, log, graceMs, now) => void
|
||||
- function createOrphanWorktreeReaper: (deps) => void
|
||||
@@ -374,6 +384,11 @@
|
||||
- function waitForElicitationResponse: (taskId, sessionId, provider, modeId, params, timeoutMs) => Promise<CreateElicitationResponse>
|
||||
- function cancelPendingPermission: (taskId) => void
|
||||
- _...3 more_
|
||||
- `apps/coder/src/services/pi-config-sync.ts`
|
||||
- function buildPiProviderEntry: (gatewayUrl, existing?) => Promise<PiProviderConfig>
|
||||
- function syncPiConfig: (gatewayUrl, log, msg) => void
|
||||
- interface PiProviderConfig
|
||||
- interface PiModelsConfig
|
||||
- `apps/coder/src/services/plan-store.ts`
|
||||
- function createPlan: (sql, opts) => Promise<Plan>
|
||||
- function getPlan: (sql, planId) => Promise<Plan | null>
|
||||
@@ -406,11 +421,11 @@
|
||||
- `apps/coder/src/services/provider-snapshot.ts`
|
||||
- function fetchDeepSeekModels: (config) => Promise<ProviderModel[]>
|
||||
- function fetchLlamaSwapModels: (config) => Promise<ProviderModel[]>
|
||||
- function fetchRegistryModels: (defaultModel?) => Promise<ProviderModel[]>
|
||||
- function prefixLlamaSwapModels: (models) => ProviderModel[]
|
||||
- function prefixBoocodeLocalModels: (models) => ProviderModel[]
|
||||
- function mergeModels: (...lists) => ProviderModel[]
|
||||
- function getProviderSnapshot: (sql, config, cwd?, force) => Promise<ProviderSnapshotEntry[]>
|
||||
- function clearProviderSnapshotCache: () => void
|
||||
- _...2 more_
|
||||
- _...4 more_
|
||||
- `apps/coder/src/services/pty-dispatch.ts`
|
||||
- function dispatchViaPty: (opts) => Promise<DispatchResult>
|
||||
- interface DispatchResult
|
||||
@@ -454,6 +469,125 @@
|
||||
- function isSecretPath: (filePath) => boolean
|
||||
- function resolveWritePath: (projectRoot, filePath) => string
|
||||
- class WriteGuardError
|
||||
- `apps/control/src/config.ts` — function loadConfig: () => Config, type Config
|
||||
- `apps/control/src/db.ts`
|
||||
- function getSql: (config) => Sql
|
||||
- function waitForTable: (sql, tableName, timeoutMs) => Promise<void>
|
||||
- function applySchema: (sql) => Promise<void>
|
||||
- function pingDb: (sql) => Promise<boolean>
|
||||
- function closeDb: () => Promise<void>
|
||||
- type Sql
|
||||
- `apps/control/src/index.ts`
|
||||
- function createDeltaEmitter: () => DeltaEmitter
|
||||
- function handleLlamaSweepEvent: (fleet, sql, config, providerId, emitter, event, logRelay) => Promise<void>
|
||||
- type DeltaCallback
|
||||
- type DeltaEmitter
|
||||
- `apps/control/src/services/action-queue.ts`
|
||||
- class ActionQueue
|
||||
- interface QueuedAction
|
||||
- interface ActionQueueEntry
|
||||
- interface ActionQueueState
|
||||
- interface ActionQueueDeps
|
||||
- type ActionType
|
||||
- `apps/control/src/services/bench-engine.ts`
|
||||
- function parseLlamaTimings: (chunk) => BenchTimings | null
|
||||
- function runSingleBenchRequest: (baseUrl, model, promptTokens, genTokens, repetition, temperature, topP) => Promise<BenchSample>
|
||||
- function runBenchSuite: (params, sql, emitter, seq, onProgress) => void
|
||||
- function computeRegressionFlag: (current, baselineJson) => 'baseline' | 'regression' | 'improvement' | null
|
||||
- function computeAggregates: (samples) => BenchAggregate
|
||||
- interface BenchSuite
|
||||
- _...5 more_
|
||||
- `apps/control/src/services/capture-fetch.ts`
|
||||
- function fetchCapture: (baseUrl, providerId, swapEntryId) => Promise<CaptureFetchResult>
|
||||
- function parseCapture: (raw, unknown>, providerId, swapEntryId) => CaptureData
|
||||
- function persistCapture: (sql, capture) => Promise<void>
|
||||
- interface CaptureData
|
||||
- interface CaptureFetchResult
|
||||
- `apps/control/src/services/eval-suites.ts`
|
||||
- function loadEvalSuitesFromData: () => EvalSuiteData[]
|
||||
- function seedEvalSuites: (sql) => Promise<void>
|
||||
- function listEvalSuites: (sql) => Promise<EvalSuiteRow[]>
|
||||
- function getEvalSuite: (sql, id) => Promise<EvalSuiteRow | null>
|
||||
- function upsertEvalSuite: (sql, id, name, kind, tasks, judgeModel, metadata?, unknown>) => Promise<string>
|
||||
- function createEvalRun: (sql, suiteId, providerId, model, quant, judgeModel, judgeModelVersion, totalTasks) => Promise<string>
|
||||
- _...9 more_
|
||||
- `apps/control/src/services/fleet-connector.ts`
|
||||
- function addJitter: (delayMs) => number
|
||||
- function reconnectDecision: (failures, policy) => ReconnectDecision
|
||||
- function parseSseLine: (line) => LlamaSweepSSEEvent | null
|
||||
- function startFleetConnector: (providerId, baseUrl, deps) => AbortController
|
||||
- function runFleetConnector: (providerId, baseUrl, abort, deps) => Promise<void>
|
||||
- interface ReconnectPolicy
|
||||
- _...8 more_
|
||||
- `apps/control/src/services/fleet-state.ts`
|
||||
- function createFleetState: () => FleetState
|
||||
- function ensureHostState: (fleet, providerId) => HostState
|
||||
- function stampLastSeen: (state) => void
|
||||
- function incrementSeq: (state) => number
|
||||
- interface HostConfig
|
||||
- interface FleetState
|
||||
- _...3 more_
|
||||
- `apps/control/src/services/gateway.ts`
|
||||
- function isGatewayVirtualModel: (id) => boolean
|
||||
- function parseVirtualModel: (modelId) => string
|
||||
- function orderCandidates: (virtualModel, policy, scores) => string[]
|
||||
- function resolveCandidates: (sql, fleet, modelId) => Promise<ResolvedCandidates>
|
||||
- function splitComposite: (compositeId) => void
|
||||
- interface RoutePolicyRow
|
||||
- _...3 more_
|
||||
- `apps/control/src/services/host-access.ts` — function acquireHostAccess: (providerId, purpose) => Promise<HostGrant>, interface HostGrant
|
||||
- `apps/control/src/services/jsonb.ts`
|
||||
- function jsonbStringArray: (value) => string[]
|
||||
- function jsonbArray: (value) => unknown[]
|
||||
- function jsonbNumberArray: (value) => number[]
|
||||
- function jsonbObject: (value) => Record<string, unknown> | null
|
||||
- `apps/control/src/services/judge-runner.ts`
|
||||
- function runJudgeEval: (params, sql, emitter, seq, logger) => void
|
||||
- interface JudgeEvalParams
|
||||
- interface JudgeProgress
|
||||
- interface JudgeResult
|
||||
- `apps/control/src/services/llama-providers.ts`
|
||||
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
|
||||
- function getLlamaProviders: () => LlamaProvidersFile
|
||||
- function resolveProviderBaseUrl: (providerId) => string | null
|
||||
- `apps/control/src/services/log-relay.ts` — class LogRelay, interface LogLine
|
||||
- `apps/control/src/services/reconcile.ts` — function detectGap: (oldestReconcileTs, newestPersistedTs) => boolean
|
||||
- `apps/control/src/services/reports.ts`
|
||||
- function gatherReportStats: (sql, interval, now) => Promise<ReportStats>
|
||||
- function renderReportMarkdown: (stats) => string
|
||||
- function generateReport: (sql, interval, now) => void
|
||||
- function isReportDue: (lastRunAt, interval, now) => boolean
|
||||
- function runReportSchedulerTick: (sql, now) => void
|
||||
- interface ReportStats
|
||||
- _...1 more_
|
||||
- `apps/control/src/services/retention.ts`
|
||||
- function buildRetentionConfig: (cfg) => RetentionConfig
|
||||
- function runRollup: (sql, providerId, hours) => Promise<void>
|
||||
- function pruneRawSamples: (sql, providerId, hours) => Promise<void>
|
||||
- function pruneActivity: (sql, hours) => Promise<void>
|
||||
- function pruneModelEvents: (sql, hours) => Promise<void>
|
||||
- function trimCapture: (captureJson, sizeKB) => string | null
|
||||
- _...2 more_
|
||||
- `apps/control/src/services/routing-scores.ts`
|
||||
- function assignBadges: (scores) => void
|
||||
- function computeRoutingScores: (sql, fleet) => Promise<ModelScore[]>
|
||||
- interface ModelScore
|
||||
- type BadgeKind
|
||||
- const BADGE_LABELS: Record<BadgeKind, string>
|
||||
- `apps/control/src/services/sandbox-runner.ts`
|
||||
- function runCodeEval: (params, sql, emitter, seq, onProgress) => void
|
||||
- interface SandboxEvalParams
|
||||
- interface SandboxProgress
|
||||
- interface SandboxResult
|
||||
- interface SandboxContainer
|
||||
- `apps/control/src/services/ssh-config.ts`
|
||||
- function validateLlamaConfig: (yamlText, schema) => ValidationResult
|
||||
- function computeDiff: (oldText, newText) => string
|
||||
- function backupFilename: (configPath, now) => string
|
||||
- function readRemoteConfig: (target, configPath, exec) => Promise<string>
|
||||
- function applyRemoteConfig: (opts) => Promise<ApplyResult>
|
||||
- function healthWait: (baseUrl, fetcher, attempts, delayMs) => Promise<boolean>
|
||||
- _...7 more_
|
||||
- `apps/server/src/config.ts` — function loadConfig: () => Config, type Config
|
||||
- `apps/server/src/db.ts`
|
||||
- function getSql: (config) => Sql
|
||||
@@ -601,11 +735,6 @@
|
||||
- function finalizeStreamedRow: (ctx, opts) => void
|
||||
- function finalizeEmpty: (ctx, args) => Promise<void>
|
||||
- function finalizeCompletion: (ctx, args, result, startedAt, session) => Promise<void>
|
||||
- `apps/server/src/services/inference/llama-args-validator.ts`
|
||||
- function validateExtraArgs: (args?) => string[]
|
||||
- function isManagedFlag: (flag) => boolean
|
||||
- function stripShadowingFlags: (args, opts?) => string[]
|
||||
- interface StripOptions
|
||||
- `apps/server/src/services/inference/loop-detectors.ts`
|
||||
- function detectContentRepeat: (messages) => LoopDetectionResult
|
||||
- function detectToolLoop: (toolNames) => LoopDetectionResult
|
||||
@@ -636,12 +765,12 @@
|
||||
- interface OpenAiMessage
|
||||
- `apps/server/src/services/inference/provider.ts`
|
||||
- function isDeepSeekModel: (modelId) => boolean
|
||||
- function resolveRoute: (agent, config?, modelId?) => RoutingInfo
|
||||
- function upstreamModel: (config, modelId, agent?) => LanguageModel
|
||||
- function isGatewayVirtualModel: (wireModelId) => boolean
|
||||
- function resolveModelProvider: (modelId, config) => ResolvedModel
|
||||
- function resolveRoute: (agent, config?, modelId?) => void
|
||||
- function upstreamModel: (config, modelId, agent?, source?) => LanguageModel
|
||||
- function resolveModelEndpoint: (config, modelId) => void
|
||||
- function resetDeepSeekProvider: () => void
|
||||
- interface RoutingInfo
|
||||
- _...1 more_
|
||||
- _...4 more_
|
||||
- `apps/server/src/services/inference/prune.ts`
|
||||
- function selectPruneTargets: (partsNewestFirst, tailStartCreatedAt) => void
|
||||
- function prune: (args) => Promise<PruneResult>
|
||||
@@ -709,6 +838,10 @@
|
||||
- function runInference: (ctx, sessionId, chatId, assistantMessageId, signal?) => Promise<void>
|
||||
- function runInferenceWithModel: (ctx, sessionId, chatId, assistantMessageId, modelOverride, compareGroupId, signal?) => Promise<void>
|
||||
- function createInferenceRunner: (ctx, 'publishUser'>, publishUserFn, frame) => void
|
||||
- `apps/server/src/services/llama-providers.ts`
|
||||
- function loadLlamaProviders: (providersPath, llamaSwapUrl) => LlamaProvidersFile
|
||||
- function getLlamaProviders: () => LlamaProvidersFile
|
||||
- function parseModelRef: (ref) => ParsedModelRef
|
||||
- `apps/server/src/services/mcp-client.ts`
|
||||
- function initialize: (entries, logger) => Promise<void>
|
||||
- function callTool: (prefixedName, args, unknown>) => Promise<unknown>
|
||||
@@ -930,6 +1063,7 @@
|
||||
- `apps/web/src/hooks/useProjectGit.ts` — function useProjectGit: (projectId) => GitMeta | null
|
||||
- `apps/web/src/hooks/useProviderSnapshot.ts` — function refreshProviderSnapshot: (cwd?) => Promise<ProviderSnapshotEntry[]>, function useProviderSnapshot: (cwd?) => ProviderSnapshotEntry[] | null
|
||||
- `apps/web/src/hooks/usePullToRefresh.ts` — function usePullToRefresh: (onRefresh) => void
|
||||
- `apps/web/src/hooks/useReducedMotion.ts` — function useReducedMotion: () => boolean
|
||||
- `apps/web/src/hooks/useSessionChats.ts`
|
||||
- function useSessionChats: (sessionId, opts) => UseSessionChatsResult
|
||||
- interface UseSessionChatsOpts
|
||||
@@ -1047,6 +1181,14 @@
|
||||
- function waitForEvent: (threadManager, threadId, eventType, timeoutMs) => Promise<LaceEvent>
|
||||
- function waitForEventCount: (threadManager, threadId, eventType, count, timeoutMs) => Promise<LaceEvent[]>
|
||||
- function waitForEventMatch: (threadManager, threadId, predicate) => void
|
||||
- `packages/contracts/src/llama-providers.ts`
|
||||
- function parseModelRef: (ref, defaultProvider) => ParsedModelRef
|
||||
- function formatModelRef: (providerId, wireModelId) => string
|
||||
- interface ParsedModelRef
|
||||
- type LlamaProvider
|
||||
- type LlamaProvidersFile
|
||||
- const LlamaProviderSchema
|
||||
- _...1 more_
|
||||
- `packages/ion/src/cli/commands/abandon.ts` — function abandonCommand: (args, options) => Promise<void>
|
||||
- `packages/ion/src/cli/commands/approve.ts` — function approveCommand: (args, options) => Promise<void>
|
||||
- `packages/ion/src/cli/commands/cleanup.ts` — function cleanupCommand: (args, options) => Promise<void>
|
||||
|
||||
Reference in New Issue
Block a user