flowstate-epic-flowstate-community-epicdm-flowstate-shell-core
Package-local agent skill for @epicdm/flowstate-shell-core.
Tags
Publisher
Versions
1 version published — latest: 1.0.7
- 1.0.7publishedInvalid Date
Skill
flowstate-shell-core Package Skill
Package: @epicdm/flowstate-shell-core
Repository: epic-flowstate-community
Path: packages/flowstate-shell-core
Version: 1.0.7
Use this published Dojo skill as the package-level entrypoint. For detailed workflows, use the package-local skills listed below.
Primary Package Workflow
Shell Core Adapter Contracts
Status: Active
Purpose: Keep terminal transport implementations compatible with Terminal and TerminalTabs.
Scope: packages/flowstate-shell-core/src/adapters/ITerminalAdapter.ts
Trigger: A task changes terminal IPC, WebSocket, mock, or custom adapter behavior.
Input: Adapter source and the host transport protocol.
Output: An adapter that satisfies shell-core component expectations.
Current Contract
export interface ITerminalAdapter {
connect(): Promise<string>
write(data: string): void
onData(callback: (data: string) => void): void
disconnect(): void
resize?(cols: number, rows: number): void
}
connect() returns the session ID generated by the adapter/server. It does not receive a sessionId argument in current source.
Responsibilities
| Method | Responsibility |
|---|---|
connect | Open or request a terminal session and resolve with its ID. |
write | Send user input from xterm to the backing terminal. |
onData | Register the output callback used by Terminal to write into xterm. |
disconnect | Remove callbacks/listeners and close the backing session or transport reference. |
resize | Optionally send terminal dimensions after fit events. |
Adapter Review Checklist
- Does
connect()match the current zero-argument signature? - If backend output can arrive before
connect()resolves, does the adapter buffer it untilonData()is registered? - Does
onData()replace or register exactly the callback the component should use? - Does
disconnect()prevent later output from writing to an unmounted terminal? - Does
resize()tolerate repeated calls and dimensions fromFitAddon? - Are transport-specific details kept outside
flowstate-shell-core? - Do tests exercise both data delivery and cleanup?
Timing Invariant
Terminal awaits connect() before registering the xterm input handler and adapter output callback. Adapter implementations that subscribe to a backend stream during connect() should either delay stream forwarding or keep a small output buffer and flush it from onData(callback).
Known Caller Packages
packages/flowstate-shell/src/adapters/ElectronAdapter.tspackages/flowstate-shell/src/adapters/WebSocketAdapter.tspackages/flowstate-shell/src/components/TerminalProvider.tsx
Use package-local flowstate-shell skills for adapter protocol specifics.
Verification
yarn workspace @epicdm/flowstate-shell-core test -- tests/adapters/MockAdapter.test.ts
yarn workspace @epicdm/flowstate-shell-core typecheck
Also run yarn workspace @epicdm/flowstate-shell test when editing real platform adapters.
Package Skill Inventory
Skill Inventory: @epicdm/flowstate-shell-core
Review date: 2026-06-30
Skill Map
| Skill | Type | Use When |
|---|---|---|
flowstate-shell-core | Orchestrator | Choosing whether to use shell-core and how it composes with platform shell packages. |
flowstate-shell-core-terminal-component | Workflow | Embedding or modifying one terminal instance backed by an adapter. |
flowstate-shell-core-terminal-tabs | Workflow | Building a multi-terminal UI with local tab/session management. |
flowstate-shell-core-adapter-contracts | Reference | Implementing or reviewing an ITerminalAdapter for another package. |
flowstate-shell-core-themes | Workflow/reference | Applying, looking up, or persisting xterm theme presets. |
flowstate-shell-core-maintenance | Maintenance | Updating docs, tests, generated Dojo content, or exports for the package. |
Feature Coverage
| Feature Matrix Item | Covered By |
|---|---|
Terminal | flowstate-shell-core-terminal-component |
Terminal Tabs | flowstate-shell-core-terminal-tabs |
ITerminalAdapter | flowstate-shell-core-adapter-contracts |
TERMINAL_THEMES | flowstate-shell-core-themes |
DEFAULT_TERMINAL_THEME_ID | flowstate-shell-core-themes |
getTerminalTheme | flowstate-shell-core-themes |
useTerminalTheme | flowstate-shell-core-themes |
TerminalSession, TerminalSize | flowstate-shell-core-terminal-tabs, flowstate-shell-core-adapter-contracts |
Composition Notes
- Use package-local
flowstate-shellskills when the task involves Electron IPC, WebSocket transport,TerminalProvider, or platform-specific adapter construction. - Use this package for reusable UI contracts and xterm integration only.
- Do not publish generated
.flowstate/dojoskilllets until they are rebuilt from these reviewed local skills.
Review Gate
Package Skill Review: @epicdm/flowstate-shell-core
Review date: 2026-06-30 Verdict: pass
Quality Gate
- Source-backed package purpose: pass.
- Public entry points documented: pass.
- Composable skill map: pass.
- Stale README/generator drift called out: pass.
- Dojo publish readiness: deferred until reviewed skills replace generated
.flowstate/dojocontent.
Evidence Checked
package.jsonREADME.mdsrc/index.tssrc/adapters/ITerminalAdapter.tssrc/components/Terminal.tsxsrc/components/TerminalTabs.tsxsrc/themes/terminalThemes.tssrc/themes/useTerminalTheme.tssrc/types.tstests/adapters/MockAdapter.test.tstests/components/Terminal.test.tsxtests/components/TerminalTabs.test.tsx.flowstate/feature-matrix/inventory.md.flowstate/dojo/agent-skillset.md
Verification Results
yarn workspace @epicdm/flowstate-shell-core test
yarn workspace @epicdm/flowstate-shell-core typecheck
yarn workspace @epicdm/flowstate-shell-core build
yarn workspace @epicdm/flowstate-shell-core lint
yarn nx build @epicdm/flowstate-shell-core
Results:
- ASCII/frontmatter check passed.
testpassed: 3 suites, 8 tests.typecheckpassed.buildpassed.lintpassed with 1 existing warning for a non-null assertion insrc/themes/terminalThemes.ts.nx buildpassed and reported the existing Nx Cloud setup notice.
Dojo Status
Deferred. Existing generated Dojo artifacts should be rebuilt from these reviewed local skills before publication because current Dojo files only list exports and have ID/publisher drift.
Usage
Start with this skill to understand the package purpose, then use the package-local focused skills for specific workflows. Keep this Dojo version aligned with packages/flowstate-shell-core/package.json. Do not treat generated feature lists as lessons; use workflow evidence from CODE-REVIEW.md, SKILL-INVENTORY.md, and REVIEW.md.
Install
Run this in your project to install via CLI:
fscloud dojo skill install flowstate-epic-flowstate-community-epicdm-flowstate-shell-core --target <target> --out ./skillsReplace <target> with your agent target identifier. See the CLI docs for details.