ui-sdk: 71 internal entry names have no consumer outside the package
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- bun, typescript
- Domain
- developer-experience, tooling
Research direction
Start with packages/ui-sdk/src/internal.ts and packages/ui-sdk/src/internal-client.ts, then check each listed name against the repository search command in the issue. Remove only the re-exports with no importer outside ui-sdk and regenerate api-report/ui-sdk.txt; keep symbols that ui-sdk code or tests use in their source modules. Run the listed typecheck, package tests, and API surface test; done when all remaining internal exports have external importers and the report omits the 71 names.
Written by the indexing model from the issue text.
Description
Context
@schlessera/brain-ui-sdk/internal (packages/ui-sdk/src/internal.ts, 96 lines, 227 names) exists only so first-party packages in the same product group can share code (docs/decisions/public-export-boundary.md; the 2026-10-09 ruling on #1345). At dcf5341aa, 68 of those 227 names have no importer outside ui-sdk. ui-sdk's own tests import these symbols from their source modules (for example packages/ui-sdk/tests/outward-actions.test.ts:2 imports classifyOutwardCall and outwardTarget from ../src/server/outward-actions), so the re-exports serve nobody. They still add rows to api-report/ui-sdk.txt and to the dist-types check, and they make ./internal look like a wider dependency surface than it is.
Three more names in ./internal/client (packages/ui-sdk/src/internal-client.ts) have no importer outside ui-sdk either: isShareTargetRequest, ShareTargetError, LinkEdit.
How the list was produced: take every name listed under export "./internal" in api-report/ui-sdk.txt, then run, for each name,
git grep -lw -- "$NAME" -- packages tests scripts website template evals experiments \
':!packages/ui-sdk/**' ':!api-report/**' ':!**/*.md'
and keep the names with no hit. A whole-word match anywhere, including a relative import from another package's tests, counts as a use, so the list errs towards keeping names.
The 68 names
ARCHIVING_UPDATE_REASON, brainGitSync, BUILTIN_OUTWARD_MCP_DESCRIPTORS, classifyOutwardCall, createWorkerStartupView, DEFAULT_MAINTENANCE_TEMP_BUDGET_BYTES, DEFAULT_MAINTENANCE_TEMP_BYTES, DEFAULT_OUTPUT_STAGING_BYTES, DEFAULT_WORKER_STATE_BYTES, describeLimitHits, EgressProxyOptions, InferenceRelayOptions, linkedTurnTempPaths, MaintenanceEnvelope, MaintenanceResult, MAINTENANCE_TEMP_BUDGET_ENV, MAINTENANCE_TEMP_BYTES_ENV, MaintenanceWorker, MAX_INFERENCE_REQUEST_BYTES, NativeBrainDeltaCandidate, NativeBrainDeltaError, NativeBrainRootIdentity, NativeFileVersion, OUTPUT_STAGING_BUDGET_ENV, OUTPUT_STAGING_BYTES_ENV, OutwardClassification, OutwardPlan, outwardTarget, PrepareWorkerSandboxOptions, probeMaintenanceWorker, PROMOTED_SCRATCH_DIR, PROMOTION_FILE_MAX_BYTES, PROMOTION_TURN_MAX_BYTES, PROMOTION_TURN_MAX_FILES, purgeTurnTemp, ReplayReceipt, resolveOutputStagingLimits, RestrictedEnvelope, SessionPromptFacts, STALE_NATIVE_WRITE, TURN_TEMP_BUDGET_ENV, TURN_TEMP_BYTES_ENV, turnTempFullMessage, turnTempPath, TurnTempPromoterOptions, TurnTempPurgeResult, TurnTempSpace, turnTempUsage, TURN_TEMP_WARN_RATIO, validWorkerStateBytes, VisibleOutwardAction, WorkerArea, WorkerAreaName, WORKER_AREAS, WorkerCommandRule, WORKER_EGRESS_SOCKET, WorkerHome, WorkerHostProbeOptions, WORKER_INFERENCE_DIR, WorkerLimitHit, WORKER_LIMITS_ENV, WorkerMount, WorkerOutputStorage, WorkerOutwardRule, WorkerProfile, WORKER_STATE_BUDGET_ENV, WorkerStateConfigError, WORKER_STATE_PAGE
This is narrower than #1401, which deletes whole ./internal entry points nobody imports. ui-sdk's ./internal entry stays: ui-server and both backends use the other 159 names.
Scope
- Remove the 68 names from
packages/ui-sdk/src/internal.ts, and the three frominternal-client.ts. Each symbol stays exported from its source module if ui-sdk code or tests still import it there. - Regenerate
api-report/ui-sdk.txt.
Out of scope
- Deleting the underlying functions, constants or types; many are used inside ui-sdk.
- Names moved by #1372 (
loadedSdkIdentity,VERSION_PROBE_TIMEOUT_MS). - Public entries (
.,./server,./client,./protocol). - Other packages'
./internalentries (#1401).
Acceptance criteria
- Running the command above over every name still exported from
./internaland./internal/clientfinds at least one importer outside ui-sdk for each (script output attached to the PR). -
api-report/ui-sdk.txtno longer lists the 71 removed names under./internalor./internal/client. -
bun run typecheck,bun run testandtests/api-surface.test.tspass.
Verification
bun run typecheck
bun run test packages/ui-sdk packages/ui-server packages/ui-backend-claude packages/ui-backend-pi
bun run test tests/api-surface.test.ts
Contract impact
None. Internal entries carry no compatibility promise (docs/decisions/public-export-boundary.md).
Found by a repository review on 2026-10-22.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 5h 38m
- Merged PRs (30d)
- 960
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from schlessera/brain-kit
-
area: ci type: test
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
schlessera/brain-kit#2769 ·
Maintainers usually reply within 1 day
-
agent-ready area: ui-server priority: p2 type: test
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
schlessera/brain-kit#2758 ·
Maintainers usually reply within 1 day
-
agent-ready area: ui-react blocked priority: p0 type: fix
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
schlessera/brain-kit#2723 · 1 comment ·
Maintainers usually reply within 1 day
-
agent-ready area: ci area: ui-react priority: p2 type: test
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
schlessera/brain-kit#2615 · 1 comment ·
Maintainers usually reply within 1 day
-
agent-ready area: ci area: docs type: docs
Difficulty 1/5 1-3 hours Newbie friendliness 82/100
schlessera/brain-kit#2612 ·
Maintainers usually reply within 1 day
All issues in schlessera/brain-kit
Similar issues
-
[Bug]: REST API URL starting with "http" but no scheme (e.g. httpbin.org/get) is not given an http:// prefixPossibly taken @ItsDeadlyProgrammer claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
appsmithorg/appsmith#42471 · 1 comment ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ehmpathy/rhachet-roles-bhrain#705 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Status: Triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
mermaid-js/mermaid#8546 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
braintrustdata/braintrust-sdk-javascript#2659 ·
Maintainers usually reply within 1 day