Thinking process
Product-safe reasoning summaries, source progress, tool activity, and execution receipts. It avoids raw hidden chain-of-thought and keeps active controls reachable.
Included in the single kansho full pack. Components are not offered as separate installs.
Active source search
Source disclosure is live; Stop is a static-preview callbackI am checking official documentation and nearby code before suggesting a token-storage change.
Limit to official docs and repository files before drafting the response.
Querying authentication and storage guidance for the current stack.
Waiting to inspect the existing session helper before proposing code.
Source list states
Loading, mixed, and done; the running example's Stop is a static-preview callbackTool activity
Tool details are live disclosures; Stop controls are static-preview callbacksrg "session" --type ts -l
Locating session helpers before editing the route handler.
Expanded text with inline pills
Soft summary referencing files and tools inlineI read app/api/session/route.tsand ran read_file to confirm the cookie flags before drafting the recommendation.
Blocked steps
Missing auth, timeout, rate limit, policy block, user inputMulti-step timeline
Planning through verification; Stop is a static-preview callbackOutline storage, transport, and refresh-token boundaries.
Inspected app/api/session/route.ts cookie flags.
eslint components/agent/*.tsx
Compact transcript
Minimal chrome for dense chat threads; Stop is a static-preview callbackLifecycle states
Collapsed, complete, blocked, errorMarkdown reasoning summary
The answer should separate the safe recommendation from the implementation detail.
- Store the session token in an HttpOnly cookie.
- Set
Secure,SameSite=Lax, and a server-side expiry. - Only mention localStorage to explain why it is avoided.
Identify storage, transport, and refresh-token boundaries.
Read app/api/session/route.ts and checked cookie flags.
Confirmed the answer should recommend an HttpOnly Secure cookie.
Inspector variant
Right-panel detail state; Stop is a static-preview callbackFound one user-scoped preference and one project-scoped constraint.
Executing lint on the changed agent component files.
The existing dev server lock must be cleared before browser capture.
Included components
This page is the canonical destination for these components. All ship in the single Kansho pack.
Disclosure
components/ui/disclosure.tsxStatus glyph
components/agent/status-glyph.tsxComponent documentation
Disclosure
components/ui/disclosure.tsxPurpose
Shows and hides a related content region from a trigger.
Appropriate use
Use for optional detail that should remain available without dominating the initial view.
Example
components/ui/disclosure.tsx has a representative live example in the "Blocked steps" section on /components/thinking-process.
States
Supports controlled or uncontrolled open state and animated open or closed content.
API and props
Disclosure accepts open, defaultOpen, onOpenChange, className, and children; DisclosureTrigger and DisclosureContent accept native button and div props.
Dependencies
React, Lucide icons, and the Kansho cn utility.
Accessibility
The trigger sets aria-expanded and aria-controls and remains a native keyboard-operable button.
Limitations
It is a single disclosure, not a coordinated accordion with one-open-at-a-time behaviour.
Source
Source: components/ui/disclosure.tsx.
Full pack
components/ui/disclosure.tsx is documented at /components/thinking-process and installs only through the single Kansho full pack; no individual component install is offered.
Status glyph
components/agent/status-glyph.tsxPurpose
Renders the shared status icon in a tinted circular glyph, including BrailleLoader for running state.
Appropriate use
Use in reasoning and timeline rows where the surrounding text names the status or a standalone label is provided.
Example
components/agent/status-glyph.tsx has a representative live example in the "Lifecycle states" section on /components/thinking-process.
States
Supports shared glyph statuses, sm/md/lg sizes, and an optional pending pulse.
API and props
StatusGlyph accepts status, label, size, pulse, and className.
Dependencies
Direct imports are React, Lucide icons, BrailleLoader, status metadata, and cn.
Accessibility
A supplied label makes the glyph a named image; otherwise it is hidden and the parent must convey status in text.
Limitations
It is presentational and does not announce status changes; motion-safe suppresses the optional pulse for reduced-motion users.
Source
Source: components/agent/status-glyph.tsx.
Full pack
components/agent/status-glyph.tsx is documented at /components/thinking-process and installs only through the single Kansho full pack; no individual component install is offered.
Thinking Process
components/agent/thinking-process.tsxPurpose
Presents a structured reasoning trace with lifecycle status, steps, sources, block reasons, elapsed time, and optional stop actions.
Appropriate use
Use when operators need a bounded execution trace rather than raw hidden reasoning.
Example
components/agent/thinking-process.tsx has a representative live example in the "Active source search" section on /components/thinking-process.
States
Process states are idle, running, complete, blocked, and error; step states add queued and paused, with typed kinds and blocked reasons; variants are default, compact, inspector, or dashed.
API and props
ThinkingProcess accepts label, durationMs, deprecated durationLabel, status, summary, steps, defaultOpen, variant, onStop, and className; ThinkingInlinePill renders compact labelled activity.
Dependencies
Direct imports are React, Lucide icons, SourcePill, StatusGlyph, Disclosure, duration formatting, and cn.
Accessibility
Disclosure owns keyboard expansion; per-step and process Stop controls are named native buttons, and status meaning is visible in text/glyph labels.
Limitations
It displays caller-supplied summaries and arguments without redaction and does not execute, cancel, or validate reasoning steps.
Source
Source: components/agent/thinking-process.tsx.
Full pack
components/agent/thinking-process.tsx is documented at /components/thinking-process and installs only through the single Kansho full pack; no individual component install is offered.