@pencil-agent/nano-pencil 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +267 -267
- package/dist/build-meta.json +3 -3
- package/dist/core/export-html/AGENT.md +11 -11
- package/dist/core/export-html/template.css +971 -971
- package/dist/core/export-html/template.html +54 -54
- package/dist/core/model/custom-providers.js +1 -1
- package/dist/core/model-registry.js +5 -5
- package/dist/extensions/builtin/AGENT.md +115 -115
- package/dist/extensions/builtin/browser/AGENT.md +17 -17
- package/dist/extensions/builtin/browser/agent-workspace/agent_helpers.py +12 -12
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/amazon/product-search.md +198 -198
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/archive-org/scraping.md +341 -341
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv/scraping.md +311 -311
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/arxiv-bulk/scraping.md +333 -333
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/atlas/overview.md +70 -70
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/booking-com/scraping.md +578 -578
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/capterra/scraping.md +440 -440
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/centilebrain/generate-estimates.md +110 -110
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coingecko/scraping.md +325 -325
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coinmarketcap/scraping.md +463 -463
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/coursera/scraping.md +360 -360
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/craigslist/scraping.md +390 -390
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/crossref/scraping.md +568 -568
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/dev-to/scraping.md +323 -323
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/duckduckgo/scraping.md +349 -349
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/ebay/scraping.md +435 -435
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/etsy/scraping.md +506 -506
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/eventbrite/scraping.md +363 -363
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/expedia/automation.md +168 -168
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/groups.md +236 -236
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/facebook/pages.md +295 -295
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/framer/editor.md +108 -108
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/fred/scraping.md +493 -493
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/g2/scraping.md +580 -580
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/genius/scraping.md +511 -511
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/repo-actions.md +65 -65
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/github/scraping.md +184 -184
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/glassdoor/scraping.md +543 -543
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gmail/compose.md +122 -122
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/goodreads/scraping.md +461 -461
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/gutenberg/scraping.md +383 -383
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/hackernews/scraping.md +243 -243
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/howlongtobeat/scraping.md +473 -473
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/imdb/scraping.md +271 -271
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/itch-io/scraping.md +436 -436
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/job-boards/indeed-glassdoor.md +1021 -1021
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/letterboxd/scraping.md +349 -349
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/linkedin/invitation-manager.md +109 -109
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/loom/folder-enumeration.md +170 -170
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/macrotrends/scraping.md +537 -537
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/article-hydration.md +120 -120
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/medium/scraping.md +414 -414
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/metacritic/scraping.md +477 -477
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/musicbrainz/scraping.md +478 -478
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/nasa/scraping.md +339 -339
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/news-aggregation/multi-source.md +205 -205
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/open-library/scraping.md +472 -472
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openalex/scraping.md +470 -470
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/openstreetmap/scraping.md +490 -490
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/package-registries/npm-pypi.md +478 -478
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/polymarket/scraping.md +234 -234
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/producthunt/scraping.md +307 -307
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/pubmed/scraping.md +421 -421
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/quora/scraping.md +364 -364
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rawg/scraping.md +352 -352
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/reddit/scraping.md +124 -124
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/rest-countries/scraping.md +233 -233
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/sec-edgar/scraping.md +361 -361
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/README.md +36 -36
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/embedded-apps.md +72 -72
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/knowledge-base.md +109 -109
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/shopify-admin/polaris-inputs.md +137 -137
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/soundcloud/scraping.md +362 -362
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/spotify/scraping.md +339 -339
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/stackoverflow/scraping.md +435 -435
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/steam/scraping.md +575 -575
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/substack/scraping.md +338 -338
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/thetechgeeks/pricing.md +52 -52
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tiktok/upload.md +107 -107
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/tradingview/scraping.md +309 -309
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trello/boards-and-lists.md +88 -88
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/trustpilot/scraping.md +375 -375
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/walmart/scraping.md +444 -444
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wayback-machine/scraping.md +306 -306
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/weather/scraping.md +398 -398
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/wellfound/scraping.md +596 -596
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/world-bank/scraping.md +356 -356
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/xiaohongshu/scraping.md +84 -84
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/youtube/scraping.md +418 -418
- package/dist/extensions/builtin/browser/agent-workspace/domain-skills/zillow/scraping.md +433 -433
- package/dist/extensions/builtin/browser/browser.md +73 -73
- package/dist/extensions/builtin/browser/install.md +142 -142
- package/dist/extensions/builtin/browser/interaction-skills/connection.md +48 -48
- package/dist/extensions/builtin/browser/interaction-skills/cookies.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/cross-origin-iframes.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/dialogs.md +64 -64
- package/dist/extensions/builtin/browser/interaction-skills/downloads.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/drag-and-drop.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/dropdowns.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/iframes.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/network-requests.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/print-as-pdf.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/profile-sync.md +90 -90
- package/dist/extensions/builtin/browser/interaction-skills/screenshots.md +17 -17
- package/dist/extensions/builtin/browser/interaction-skills/scrolling.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/shadow-dom.md +3 -3
- package/dist/extensions/builtin/browser/interaction-skills/tabs.md +69 -69
- package/dist/extensions/builtin/browser/interaction-skills/uploads.md +1 -1
- package/dist/extensions/builtin/browser/interaction-skills/viewport.md +3 -3
- package/dist/extensions/builtin/browser/src/browser_harness/AGENT.md +15 -15
- package/dist/extensions/builtin/browser/src/browser_harness/__init__.py +8 -8
- package/dist/extensions/builtin/browser/src/browser_harness/_ipc.py +90 -90
- package/dist/extensions/builtin/browser/src/browser_harness/admin.py +722 -722
- package/dist/extensions/builtin/browser/src/browser_harness/daemon.py +328 -328
- package/dist/extensions/builtin/browser/src/browser_harness/helpers.py +396 -396
- package/dist/extensions/builtin/browser/src/browser_harness/run.py +103 -103
- package/dist/extensions/builtin/debug/index.js +9 -9
- package/dist/extensions/builtin/discipline/skills/brainstorming/SKILL.md +33 -33
- package/dist/extensions/builtin/discipline/skills/executing-plans/SKILL.md +25 -25
- package/dist/extensions/builtin/discipline/skills/finishing-development-branch/SKILL.md +25 -25
- package/dist/extensions/builtin/discipline/skills/receiving-code-review/SKILL.md +22 -22
- package/dist/extensions/builtin/discipline/skills/requesting-code-review/SKILL.md +31 -31
- package/dist/extensions/builtin/discipline/skills/systematic-debugging/SKILL.md +28 -28
- package/dist/extensions/builtin/discipline/skills/test-driven-development/SKILL.md +32 -32
- package/dist/extensions/builtin/discipline/skills/using-git-worktrees/SKILL.md +25 -25
- package/dist/extensions/builtin/discipline/skills/verification-before-completion/SKILL.md +27 -27
- package/dist/extensions/builtin/discipline/skills/writing-plans/SKILL.md +26 -26
- package/dist/extensions/builtin/goal/README.md +67 -67
- package/dist/extensions/builtin/goal/index.js +6 -6
- package/dist/extensions/builtin/grub/README.md +112 -112
- package/dist/extensions/builtin/link-world/agent-workspace/README.md +16 -16
- package/dist/extensions/builtin/link-world/internet-search/internet-search.md +65 -65
- package/dist/extensions/builtin/link-world/link-world-agent.md +82 -82
- package/dist/extensions/builtin/link-world/linkworld.md +313 -313
- package/dist/extensions/builtin/link-world/network-routing/network-routing.md +67 -67
- package/dist/extensions/builtin/loop/README.md +92 -92
- package/dist/extensions/builtin/mcp/figma-design.md +68 -68
- package/dist/extensions/builtin/mcp/mcp-management.md +85 -85
- package/dist/extensions/builtin/recap/AGENT.md +15 -15
- package/dist/extensions/builtin/sal/README.md +72 -72
- package/dist/extensions/builtin/security-audit/README.md +289 -289
- package/dist/extensions/builtin/team/AGENT.md +112 -112
- package/dist/extensions/builtin/team/TESTING.md +299 -299
- package/dist/extensions/builtin/token-save/README.md +56 -56
- package/dist/extensions/optional/AGENT.md +10 -10
- package/dist/modes/interactive/controllers/input-submit-controller.js +2 -2
- package/dist/modes/interactive/controllers/stream-render-controller.js +2 -2
- package/dist/modes/interactive/interactive-mode.js +19 -19
- package/dist/modes/interactive/theme/dark.json +85 -85
- package/dist/modes/interactive/theme/light.json +84 -84
- package/dist/modes/interactive/theme/theme-schema.json +335 -335
- package/dist/modes/interactive/theme/warm.json +81 -81
- package/dist/node_modules/@pencil-agent/ai/dist/cli.js +0 -0
- package/dist/node_modules/@pencil-agent/ai/dist/models.generated.js +1 -1
- package/docs/ACP/345/215/217/350/256/256/351/233/206/346/210/220/345/274/200/345/217/221/346/226/207/346/241/243.md +851 -0
- package/docs/SDK-TESTING.md +364 -0
- package/docs/codex-goal-command-impl.md +1055 -1055
- package/docs/codex-goal-vs-grub.md +500 -500
- package/docs/custom-provider.md +27 -27
- package/docs/extensions.md +27 -27
- package/docs/keybindings.md +27 -27
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/200/273/347/273/223.md" +250 -250
- package/docs/loop /351/207/215/346/236/204/345/256/214/346/210/220/346/212/245/345/221/212.md" +122 -122
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210.md" +1222 -1222
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/256/236/347/216/260/346/212/245/345/221/212.md" +158 -158
- package/docs/loop /351/207/215/346/236/204/346/226/271/346/241/210/345/257/271/346/257/224/345/210/206/346/236/220.md" +128 -128
- package/docs/loop /351/207/215/346/236/204/350/256/241/345/210/222.md" +320 -320
- package/docs/loop-usage-examples.md +214 -214
- package/docs/mem-core/346/212/200/346/234/257/346/226/207/346/241/243.md +593 -0
- package/docs/models.md +27 -27
- package/docs/packages.md +27 -27
- package/docs/pi-design-philosophy.md +457 -457
- package/docs/planmode.md +1987 -1987
- package/docs/prompt-templates.md +27 -27
- package/docs/providers.md +27 -27
- package/docs/sdk.md +27 -27
- package/docs/skills.md +27 -27
- package/docs/startup-performance-optimization.md +301 -0
- package/docs/themes.md +27 -27
- package/docs/tui.md +27 -27
- package/docs//350/256/244/347/237/245/345/234/260/345/233/276.md +47 -0
- package/package.json +190 -190
- package/docs/cc-agent-design.md +0 -1297
- package/docs/cc-tui-design.md +0 -1333
- package/docs/nanoPencil-/345/255/246/344/271/240/350/256/241/345/210/222.md +0 -170
- package/docs/scan-report.md +0 -3820
- package/docs//345/257/271/346/240/207Claude-Code.md +0 -1775
- package/docs//351/230/277/351/207/214/345/267/264/345/267/264/350/264/242/346/212/245/345/210/206/346/236/220/344/271/246.md +0 -261
package/docs/prompt-templates.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: prompt-templates
|
|
3
|
-
description: Use when the user asks how to customize system prompts or prompt templates.
|
|
4
|
-
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
-
owner: core/prompt/ # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
-
status: draft
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Prompt Templates
|
|
10
|
-
|
|
11
|
-
> TODO: one line — what this feature does for the user.
|
|
12
|
-
|
|
13
|
-
## When to use
|
|
14
|
-
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
-
|
|
19
|
-
## Behavior & defaults
|
|
20
|
-
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
-
|
|
22
|
-
## Code map → DIP
|
|
23
|
-
- Owner: `core/prompt/` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
-
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
[[skills]]
|
|
1
|
+
---
|
|
2
|
+
name: prompt-templates
|
|
3
|
+
description: Use when the user asks how to customize system prompts or prompt templates.
|
|
4
|
+
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
+
owner: core/prompt/ # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
+
status: draft
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Prompt Templates
|
|
10
|
+
|
|
11
|
+
> TODO: one line — what this feature does for the user.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
+
|
|
19
|
+
## Behavior & defaults
|
|
20
|
+
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
+
|
|
22
|
+
## Code map → DIP
|
|
23
|
+
- Owner: `core/prompt/` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
+
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
+
|
|
26
|
+
## Related
|
|
27
|
+
[[skills]]
|
package/docs/providers.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: providers
|
|
3
|
-
description: Use when the user hits 'no models available' or asks how to configure providers and API keys.
|
|
4
|
-
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
-
owner: core/model-registry.ts # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
-
status: draft
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Providers
|
|
10
|
-
|
|
11
|
-
> TODO: one line — what this feature does for the user.
|
|
12
|
-
|
|
13
|
-
## When to use
|
|
14
|
-
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
-
|
|
19
|
-
## Behavior & defaults
|
|
20
|
-
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
-
|
|
22
|
-
## Code map → DIP
|
|
23
|
-
- Owner: `core/model-registry.ts` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
-
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
[[custom-provider]] [[models]]
|
|
1
|
+
---
|
|
2
|
+
name: providers
|
|
3
|
+
description: Use when the user hits 'no models available' or asks how to configure providers and API keys.
|
|
4
|
+
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
+
owner: core/model-registry.ts # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
+
status: draft
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Providers
|
|
10
|
+
|
|
11
|
+
> TODO: one line — what this feature does for the user.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
+
|
|
19
|
+
## Behavior & defaults
|
|
20
|
+
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
+
|
|
22
|
+
## Code map → DIP
|
|
23
|
+
- Owner: `core/model-registry.ts` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
+
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
+
|
|
26
|
+
## Related
|
|
27
|
+
[[custom-provider]] [[models]]
|
package/docs/sdk.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sdk
|
|
3
|
-
description: Use when the user asks how to embed NanoPencil programmatically (createAgentSession).
|
|
4
|
-
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
-
owner: core/runtime/sdk.ts # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
-
status: draft
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# SDK Integration
|
|
10
|
-
|
|
11
|
-
> TODO: one line — what this feature does for the user.
|
|
12
|
-
|
|
13
|
-
## When to use
|
|
14
|
-
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
-
|
|
19
|
-
## Behavior & defaults
|
|
20
|
-
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
-
|
|
22
|
-
## Code map → DIP
|
|
23
|
-
- Owner: `core/runtime/sdk.ts` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
-
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
[[extensions]] [[packages]]
|
|
1
|
+
---
|
|
2
|
+
name: sdk
|
|
3
|
+
description: Use when the user asks how to embed NanoPencil programmatically (createAgentSession).
|
|
4
|
+
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
+
owner: core/runtime/sdk.ts # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
+
status: draft
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# SDK Integration
|
|
10
|
+
|
|
11
|
+
> TODO: one line — what this feature does for the user.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
+
|
|
19
|
+
## Behavior & defaults
|
|
20
|
+
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
+
|
|
22
|
+
## Code map → DIP
|
|
23
|
+
- Owner: `core/runtime/sdk.ts` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
+
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
+
|
|
26
|
+
## Related
|
|
27
|
+
[[extensions]] [[packages]]
|
package/docs/skills.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: skills
|
|
3
|
-
description: Use when the user asks how skills work or how to add a skill.
|
|
4
|
-
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
-
owner: core/skills.ts # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
-
status: draft
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Skills
|
|
10
|
-
|
|
11
|
-
> TODO: one line — what this feature does for the user.
|
|
12
|
-
|
|
13
|
-
## When to use
|
|
14
|
-
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
-
|
|
19
|
-
## Behavior & defaults
|
|
20
|
-
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
-
|
|
22
|
-
## Code map → DIP
|
|
23
|
-
- Owner: `core/skills.ts` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
-
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
[[extensions]] [[prompt-templates]]
|
|
1
|
+
---
|
|
2
|
+
name: skills
|
|
3
|
+
description: Use when the user asks how skills work or how to add a skill.
|
|
4
|
+
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
+
owner: core/skills.ts # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
+
status: draft
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Skills
|
|
10
|
+
|
|
11
|
+
> TODO: one line — what this feature does for the user.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
+
|
|
19
|
+
## Behavior & defaults
|
|
20
|
+
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
+
|
|
22
|
+
## Code map → DIP
|
|
23
|
+
- Owner: `core/skills.ts` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
+
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
+
|
|
26
|
+
## Related
|
|
27
|
+
[[extensions]] [[prompt-templates]]
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# nanoPencil 启动性能优化方案
|
|
2
|
+
|
|
3
|
+
> 文档版本: 2026-05-02
|
|
4
|
+
> 状态: 基础设施已完成,待评审后继续 MCP 延迟初始化
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、目标与原则
|
|
9
|
+
|
|
10
|
+
### 目标
|
|
11
|
+
将冷启动时间从 **~1800ms** 降低到 **<1500ms**(减少 15%+)
|
|
12
|
+
|
|
13
|
+
### 原则
|
|
14
|
+
1. **数据驱动** - 用 benchmark 量化效果,不用主观感受
|
|
15
|
+
2. **回归测试** - 任何优化必须通过 benchmark 验证
|
|
16
|
+
3. **快速见效优先** - 先做投入产出比高的优化
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 二、当前启动流程分析
|
|
21
|
+
|
|
22
|
+
### 2.1 启动阶段划分(已有 checkpoint)
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
┌─────────────────────────────────────────────────────────────────────┐
|
|
26
|
+
│ main_entry (865ms) │
|
|
27
|
+
│ ├── parseArgs() 解析参数 │
|
|
28
|
+
│ ├── runMigrations() 迁移 │
|
|
29
|
+
│ └── after_migrations │
|
|
30
|
+
│ │
|
|
31
|
+
│ settings_manager_ready (887ms) │
|
|
32
|
+
│ ├── SettingsManager.create() 文件 I/O + 锁 │
|
|
33
|
+
│ └── auth_storage_created │
|
|
34
|
+
│ │
|
|
35
|
+
│ nanopencil_defaults_ensured (889ms) │
|
|
36
|
+
│ └── ensureNanopencilDefaultConfig() │
|
|
37
|
+
│ │
|
|
38
|
+
│ model_registry_created (910ms) │
|
|
39
|
+
│ └── ModelRegistry 初始化 (38ms) │
|
|
40
|
+
│ │
|
|
41
|
+
│ before_resource_loader_create │
|
|
42
|
+
│ └── DefaultResourceLoader 构造 │
|
|
43
|
+
│ │
|
|
44
|
+
│ resource_loader_reload (1748ms) ← 🔥 优化重点 │
|
|
45
|
+
│ ├── PackageManager.resolve() npm 包扫描 │
|
|
46
|
+
│ ├── loadExtensions() jiti 动态编译扩展 │
|
|
47
|
+
│ └── extensions_loaded │
|
|
48
|
+
│ │
|
|
49
|
+
│ before_args_parse_2 │
|
|
50
|
+
│ args_parsed_2 │
|
|
51
|
+
│ cwd_resolved │
|
|
52
|
+
│ │
|
|
53
|
+
│ before_create_agent_session │
|
|
54
|
+
│ agent_session_created │
|
|
55
|
+
└─────────────────────────────────────────────────────────────────────┘
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 2.2 耗时分布(实测数据)
|
|
59
|
+
|
|
60
|
+
| 阶段 | 平均耗时 | 占比 | 优化空间 |
|
|
61
|
+
|------|---------|------|---------|
|
|
62
|
+
| **resource_loader_reload** | ~840ms | **47%** | 🔥 高 |
|
|
63
|
+
| model_registry_created | ~40ms | 2% | 中 |
|
|
64
|
+
| settings_manager_ready | ~2ms | 0.1% | 低 |
|
|
65
|
+
| 其他阶段 | <10ms | <1% | 低 |
|
|
66
|
+
|
|
67
|
+
### 2.3 瓶颈分析
|
|
68
|
+
|
|
69
|
+
#### 1. resource_loader_reload (~840ms)
|
|
70
|
+
**耗时来源**:
|
|
71
|
+
- `PackageManager.resolve()` - npm 包路径解析
|
|
72
|
+
- `loadExtensions()` - jiti 动态编译 TypeScript 扩展
|
|
73
|
+
- 文件系统 I/O - 读取扩展、主题、提示词模板
|
|
74
|
+
|
|
75
|
+
**优化方向**:
|
|
76
|
+
- [ ] MCP 延迟初始化(不启动服务器直到需要)
|
|
77
|
+
- [ ] 扩展懒加载(非交互模式不需要的扩展延迟)
|
|
78
|
+
- [ ] Extension 预编译缓存(jiti 结果缓存)
|
|
79
|
+
|
|
80
|
+
#### 2. model_registry_created (~40ms)
|
|
81
|
+
**耗时来源**:
|
|
82
|
+
- JSON 解析 models.json
|
|
83
|
+
- API key 验证
|
|
84
|
+
|
|
85
|
+
**优化方向**:
|
|
86
|
+
- [ ] 模型信息缓存
|
|
87
|
+
- [ ] 延迟验证 API key(首次调用时)
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 三、已完成的改动
|
|
92
|
+
|
|
93
|
+
### 3.1 基础设施(已提交)
|
|
94
|
+
|
|
95
|
+
#### A. startup-profiler.ts 增强
|
|
96
|
+
```typescript
|
|
97
|
+
// 新增 API
|
|
98
|
+
export function getProfileReport(): ProfileReport // 生成结构化报告
|
|
99
|
+
export async function exportProfile(filePath) // 导出 JSON
|
|
100
|
+
export function compareProfiles(baseline, current) // 检测回归
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### B. benchmark 脚本
|
|
104
|
+
```bash
|
|
105
|
+
npm run benchmark # 运行 5 次,显示结果
|
|
106
|
+
npm run benchmark:save # 保存当前为 baseline
|
|
107
|
+
npm run benchmark:compare # 与 baseline 对比
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
#### C. Checkpoint 标记(main.ts)
|
|
111
|
+
新增 13 个检查点,覆盖完整启动流程
|
|
112
|
+
|
|
113
|
+
### 3.2 改动文件列表
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
modified: utils/startup-profiler.ts (+161 行)
|
|
117
|
+
new file: scripts/startup-benchmark.cjs (+262 行)
|
|
118
|
+
modified: main.ts (+13 行 checkpoint)
|
|
119
|
+
modified: package.json (+3 行 scripts)
|
|
120
|
+
modified: .gitignore (+2 行 .benchmarks/)
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 四、待实施优化方案
|
|
126
|
+
|
|
127
|
+
### Phase 1: MCP 延迟初始化(预计收益: 200-400ms)
|
|
128
|
+
|
|
129
|
+
#### 问题分析
|
|
130
|
+
当前启动时同步初始化所有 MCP 服务器:
|
|
131
|
+
```typescript
|
|
132
|
+
// core/runtime/sdk.ts
|
|
133
|
+
await currentMcpManager.initialize(); // 同步启动所有
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
#### 解决方案
|
|
137
|
+
MCP 服务器按需启动,首次调用工具时才初始化:
|
|
138
|
+
```typescript
|
|
139
|
+
// 新增 lazy mode
|
|
140
|
+
mcpManager.setLazyMode(true);
|
|
141
|
+
// 服务器在首次调用工具时才启动
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### 预期效果
|
|
145
|
+
- 跳过不使用的 MCP 服务器初始化
|
|
146
|
+
- 减少启动时间 200-400ms(取决于配置了多少服务器)
|
|
147
|
+
|
|
148
|
+
#### 改动文件
|
|
149
|
+
- `core/mcp/mcp-client.ts` - 添加延迟初始化逻辑
|
|
150
|
+
- `core/runtime/sdk.ts` - 默认启用 lazy mode
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### Phase 2: 扩展懒加载(预计收益: 100-300ms)
|
|
155
|
+
|
|
156
|
+
#### 问题分析
|
|
157
|
+
启动时加载所有扩展,不管是否需要:
|
|
158
|
+
```typescript
|
|
159
|
+
// main.ts
|
|
160
|
+
await resourceLoader.reload(); // 同步加载所有
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### 解决方案
|
|
164
|
+
非交互模式不需要的扩展延迟加载:
|
|
165
|
+
```typescript
|
|
166
|
+
// 启动时只加载必要扩展
|
|
167
|
+
await resourceLoader.reload({
|
|
168
|
+
lazy: ['team', 'soul', 'browser'] // 这些延迟到首次使用
|
|
169
|
+
});
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
#### 预期效果
|
|
173
|
+
- 跳过不使用的扩展初始化
|
|
174
|
+
- 减少启动时间 100-300ms
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### Phase 3: Extension 预编译缓存(预计收益: 200-500ms)
|
|
179
|
+
|
|
180
|
+
#### 问题分析
|
|
181
|
+
jiti 每次启动都重新编译 TypeScript 扩展
|
|
182
|
+
|
|
183
|
+
#### 解决方案
|
|
184
|
+
1. 构建时生成扩展的预编译缓存
|
|
185
|
+
2. 启动时优先加载缓存,fallback 到 jiti
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
// core/extensions/loader.ts
|
|
189
|
+
const cachePath = getExtensionCachePath(extPath);
|
|
190
|
+
if (existsSync(cachePath)) {
|
|
191
|
+
return import(cachePath); // 直接加载,~10ms
|
|
192
|
+
}
|
|
193
|
+
// Fallback to jiti,~200-500ms
|
|
194
|
+
return jiti.import(extPath);
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### 预期效果
|
|
198
|
+
- 减少扩展加载时间 200-500ms
|
|
199
|
+
- 缓存命中率 > 80% 时收益最大
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 五、验证方法
|
|
204
|
+
|
|
205
|
+
### 5.1 Benchmark 命令
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# 1. 建立 baseline
|
|
209
|
+
npm run benchmark:save
|
|
210
|
+
|
|
211
|
+
# 2. 做优化后运行
|
|
212
|
+
npm run benchmark:compare
|
|
213
|
+
|
|
214
|
+
# 3. 输出示例
|
|
215
|
+
🚀 Running startup benchmark (5 runs)...
|
|
216
|
+
Run 1/5... ✓ 1750ms (checkpoints: 13)
|
|
217
|
+
...
|
|
218
|
+
|
|
219
|
+
📈 Comparison with Baseline
|
|
220
|
+
──────────────────────────────────────────────────
|
|
221
|
+
Baseline avg: 1809ms
|
|
222
|
+
Current avg: 1750ms
|
|
223
|
+
Difference: -59ms (-3.3%)
|
|
224
|
+
|
|
225
|
+
✅ No regressions detected!
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### 5.2 回归判定
|
|
229
|
+
|
|
230
|
+
- 任何阶段耗时增加 > 10% 且 > 10ms → 回归
|
|
231
|
+
- 总耗时增加 > 10% → 回归
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## 六、实施计划
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
Week 1: Phase 1 - MCP 延迟初始化
|
|
239
|
+
├── 评审方案 ← 当前节点
|
|
240
|
+
├── 实现延迟初始化
|
|
241
|
+
├── Benchmark 验证
|
|
242
|
+
└── 提交 PR
|
|
243
|
+
|
|
244
|
+
Week 2-3: Phase 2 - 扩展懒加载
|
|
245
|
+
├── 设计懒加载策略
|
|
246
|
+
├── 实现 ResourceLoader 懒加载
|
|
247
|
+
├── Benchmark 验证
|
|
248
|
+
└── 提交 PR
|
|
249
|
+
|
|
250
|
+
Week 4-5: Phase 3 - 预编译缓存(可选)
|
|
251
|
+
├── 设计缓存机制
|
|
252
|
+
├── 实现 Jiti 缓存
|
|
253
|
+
├── Benchmark 验证
|
|
254
|
+
└── 提交 PR
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 七、风险与缓解
|
|
260
|
+
|
|
261
|
+
| 风险 | 缓解措施 |
|
|
262
|
+
|------|---------|
|
|
263
|
+
| 延迟加载导致首次使用慢 | 使用预热机制,在空闲时提前加载 |
|
|
264
|
+
| 缓存失效导致行为不一致 | 缓存加版本号,版本变化时清除 |
|
|
265
|
+
| Benchmark 不稳定 | 运行 5 次取中位数,std_dev < 10% |
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 八、附录
|
|
270
|
+
|
|
271
|
+
### A. Benchmark 输出格式
|
|
272
|
+
|
|
273
|
+
```json
|
|
274
|
+
{
|
|
275
|
+
"timestamp": "2026-05-02T08:34:09.667Z",
|
|
276
|
+
"runs": 5,
|
|
277
|
+
"wallTime": { "avg": 1809, "min": 1790, "max": 1825, "stdDev": 15 },
|
|
278
|
+
"checkpoints": [
|
|
279
|
+
{ "name": "main_entry", "avgMs": 880, "minMs": 870, "maxMs": 890 }
|
|
280
|
+
],
|
|
281
|
+
"phases": [
|
|
282
|
+
{ "name": "resource_loader_reload", "avgMs": 843, "pct": 47 }
|
|
283
|
+
]
|
|
284
|
+
}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### B. 相关文件路径
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
utils/startup-profiler.ts - 性能打点
|
|
291
|
+
scripts/startup-benchmark.cjs - Benchmark 脚本
|
|
292
|
+
main.ts - 启动入口,checkpoint 标记位置
|
|
293
|
+
core/mcp/mcp-client.ts - MCP 客户端
|
|
294
|
+
core/runtime/sdk.ts - SDK 工厂
|
|
295
|
+
core/config/resource-loader.ts - 资源加载器
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### C. 环境要求
|
|
299
|
+
|
|
300
|
+
- Node.js >= 20
|
|
301
|
+
- 至少 5 次连续运行无显著波动(std_dev < 10%)
|
package/docs/themes.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: themes
|
|
3
|
-
description: Use when the user asks how to change, create, or configure a NanoPencil theme.
|
|
4
|
-
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
-
owner: modes/interactive/theme/ # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
-
status: draft
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Themes
|
|
10
|
-
|
|
11
|
-
> TODO: one line — what this feature does for the user.
|
|
12
|
-
|
|
13
|
-
## When to use
|
|
14
|
-
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
-
|
|
19
|
-
## Behavior & defaults
|
|
20
|
-
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
-
|
|
22
|
-
## Code map → DIP
|
|
23
|
-
- Owner: `modes/interactive/theme/` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
-
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
[[tui]] [[keybindings]]
|
|
1
|
+
---
|
|
2
|
+
name: themes
|
|
3
|
+
description: Use when the user asks how to change, create, or configure a NanoPencil theme.
|
|
4
|
+
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
+
owner: modes/interactive/theme/ # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
+
status: draft
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Themes
|
|
10
|
+
|
|
11
|
+
> TODO: one line — what this feature does for the user.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
+
|
|
19
|
+
## Behavior & defaults
|
|
20
|
+
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
+
|
|
22
|
+
## Code map → DIP
|
|
23
|
+
- Owner: `modes/interactive/theme/` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
+
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
+
|
|
26
|
+
## Related
|
|
27
|
+
[[tui]] [[keybindings]]
|
package/docs/tui.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tui
|
|
3
|
-
description: Use when the user asks about the terminal UI components or how rendering works.
|
|
4
|
-
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
-
owner: core/lib/tui/ # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
-
status: draft
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# TUI Components
|
|
10
|
-
|
|
11
|
-
> TODO: one line — what this feature does for the user.
|
|
12
|
-
|
|
13
|
-
## When to use
|
|
14
|
-
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
-
|
|
19
|
-
## Behavior & defaults
|
|
20
|
-
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
-
|
|
22
|
-
## Code map → DIP
|
|
23
|
-
- Owner: `core/lib/tui/` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
-
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
-
|
|
26
|
-
## Related
|
|
27
|
-
[[themes]] [[keybindings]]
|
|
1
|
+
---
|
|
2
|
+
name: tui
|
|
3
|
+
description: Use when the user asks about the terminal UI components or how rendering works.
|
|
4
|
+
surface: TODO # user entry points: /command, --flag, config key, file location
|
|
5
|
+
owner: core/lib/tui/ # DIP P2 anchor — read its AGENT.md member list to find code
|
|
6
|
+
status: draft
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# TUI Components
|
|
10
|
+
|
|
11
|
+
> TODO: one line — what this feature does for the user.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
TODO: the user intents that should pull this doc (mirrors the frontmatter `description`).
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
TODO: commands / flags / config keys / file locations, with one minimal example.
|
|
18
|
+
|
|
19
|
+
## Behavior & defaults
|
|
20
|
+
TODO: default on/off, side effects, opt-in/opt-out.
|
|
21
|
+
|
|
22
|
+
## Code map → DIP
|
|
23
|
+
- Owner: `core/lib/tui/` — read its DIP **P2 member list** (the nearest `AGENT.md`) to locate files.
|
|
24
|
+
- Then follow **P3** file headers (WHO / FROM / TO / HERE) to navigate. Do **not** duplicate code paths here.
|
|
25
|
+
|
|
26
|
+
## Related
|
|
27
|
+
[[themes]] [[keybindings]]
|