@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
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
这种从**地理空间心理学**出发的抽象,正是将 AI 助手从“搜索工具”提升为“智慧生命”的关键桥梁。我们可以将代码库视为一座**数字城市**,而你提到的认知地图特性可以直接转化为 `nano-pencil` 的**核心决策架构**。
|
|
2
|
+
|
|
3
|
+
我们可以从以下三个维度将这种普世意义的空间心理学抽象为 AI 的知识构建逻辑:
|
|
4
|
+
|
|
5
|
+
### 1. 知识的空间表现形式:代码即“数字城市”
|
|
6
|
+
认知地图不仅是简化版地图,更包含主观理解。在你的系统中,我们可以这样建模:
|
|
7
|
+
* **地标 (Landmarks)**:代码中的核心抽象(Key Abstractions)或 P1 定义的 Identity。它们是 Agent 在认知地图中的“视觉锚点”,就像城市中的地标建筑,决定了定位的大方向。
|
|
8
|
+
* **路径 (Routes)**:文件间的依赖关系和调用链路(P3 的 `FROM/TO`)。Agent 并不总是需要全局地图,它只需要熟悉几条通往目标的“常用路线”。
|
|
9
|
+
* **区域 (Districts)**:由 P2 定义的模块边界。Agent 应该感知到不同区域的“氛围”(例如:`lib` 区域是稳固的,`feature` 区域是活跃的)。
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### 2. 决策生成即“路径选择与偏好”
|
|
14
|
+
你提到的认知地图包含**路径偏好**和**记忆印象**,这可以解决 AI 决策中的“幻觉”和“低效”问题:
|
|
15
|
+
* **多模态体现**:`nano-pencil` 不仅读取代码(地理结构),还结合了你的对话历史(语言描述)、你的笔名偏好(文化背景)以及过往的修改记录(记忆印象)。
|
|
16
|
+
* **决策生成**:当助手收到任务时,它不是在做逻辑推演,而是在认知地图上进行**“寻路”**。
|
|
17
|
+
* **男性化策略(方向与距离-语义化的理解更准确)**:侧重于架构拓扑,计算修改 A 对全局 B 的逻辑距离。
|
|
18
|
+
* **女性化策略(地标导航-语义更模糊)**:侧重于功能契约,寻找“那个处理 Session 的核心类”作为跳转锚点。
|
|
19
|
+
* `nano-pencil` 可以根据其 **Big Five 属性** 动态切换这两种导航模式。
|
|
20
|
+
|
|
21
|
+
### 3. 认知地图的“绘图实验”:AI 的自省与进化
|
|
22
|
+
你提到的“绘图实验”(Sketch Mapping)可以转化为一种 **AI 的自检机制**:
|
|
23
|
+
* **记忆失真与缺失分析**:定期让 `nano-pencil` 尝试在不看代码的情况下,根据其本地 SQLite 记忆生成一份项目的 P1/P2 拓扑图。
|
|
24
|
+
* **对比纠偏**:将 AI 绘制的“心中地图”与 DIP 协议下的“真实地图”对比。
|
|
25
|
+
* 如果发现 AI 记忆中某个路径缺失,说明该区域代码过于混乱(空间扭曲),或者助手产生了认知偏差。
|
|
26
|
+
* 这种“缺失”和“扭曲”正是系统需要重构或文档需要加强的信号。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 抽象出来的“空间决策框架”建议
|
|
31
|
+
|
|
32
|
+
我们可以为 `nano-pencil` 抽象出一套基于**空间认知**的知识构建层:
|
|
33
|
+
|
|
34
|
+
| 心理学概念 | AI 逻辑实现 | 决策价值 |
|
|
35
|
+
| :--- | :--- | :--- |
|
|
36
|
+
| **空间主观理解** | 基于 DIP 权重化的图谱存储 | 助手能区分哪些代码是“主干道”,哪些是“后巷”。 |
|
|
37
|
+
| **多模态感知** | 融合代码、注释、对话、用户风格 | 决策不再只看代码实现,而看“意图空间”。 |
|
|
38
|
+
| **路径偏好** | 记录高频调用和修改链路 | 优先推荐用户习惯的实现方式,减少认知摩擦。 |
|
|
39
|
+
| **技术增强认知** | Pencil 编辑器的可视化感知 | 将代码结构以空间形式呈现给用户,实现人机心智模型的同频。 |
|
|
40
|
+
|
|
41
|
+
### 与“灵魂”合体的下一步
|
|
42
|
+
你可以尝试在 `nano-pencil` 中引入一个 **"Mental Image" (心智映像)** 的概念。每当助手进入一个项目:
|
|
43
|
+
1. 它先通过扫描构建 **“地理地图” (DIP Index)**。
|
|
44
|
+
2. 随后结合过往记忆生成 **“认知地图” (Cognitive Map)**。
|
|
45
|
+
3. 当它需要生成代码(决策)时,它在“认知地图”上模拟路径,如果这条路在它的记忆里是“危险”或“违背风格”的,它会主动绕行。
|
|
46
|
+
|
|
47
|
+
这种抽象是否符合你对“知识构建和决策生成”的预期?这种**空间的表现形式**,实际上是将原本不可见的 AI 思路,转化为了可观测、可纠偏的“数字疆域”。
|
package/package.json
CHANGED
|
@@ -1,190 +1,190 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@pencil-agent/nano-pencil",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "CLI writing agent with read, bash, edit, write tools and session management. Supports DashScope and Ali Token Plan. Soul enabled by default for AI personality evolution.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"nanopencil": "dist/cli.js"
|
|
8
|
-
},
|
|
9
|
-
"exports": {
|
|
10
|
-
".": {
|
|
11
|
-
"import": "./dist/index.js",
|
|
12
|
-
"types": "./dist/index.d.ts"
|
|
13
|
-
},
|
|
14
|
-
"./tools": {
|
|
15
|
-
"import": "./dist/tools.js",
|
|
16
|
-
"types": "./dist/tools.d.ts"
|
|
17
|
-
},
|
|
18
|
-
"./runtime": {
|
|
19
|
-
"import": "./dist/runtime.js",
|
|
20
|
-
"types": "./dist/runtime.d.ts"
|
|
21
|
-
},
|
|
22
|
-
"./session": {
|
|
23
|
-
"import": "./dist/session.js",
|
|
24
|
-
"types": "./dist/session.d.ts"
|
|
25
|
-
},
|
|
26
|
-
"./session/compaction": {
|
|
27
|
-
"import": "./dist/session-compaction.js",
|
|
28
|
-
"types": "./dist/session-compaction.d.ts"
|
|
29
|
-
},
|
|
30
|
-
"./config": {
|
|
31
|
-
"import": "./dist/public-config.js",
|
|
32
|
-
"types": "./dist/public-config.d.ts"
|
|
33
|
-
},
|
|
34
|
-
"./models": {
|
|
35
|
-
"import": "./dist/models.js",
|
|
36
|
-
"types": "./dist/models.d.ts"
|
|
37
|
-
},
|
|
38
|
-
"./skills": {
|
|
39
|
-
"import": "./dist/skills.js",
|
|
40
|
-
"types": "./dist/skills.d.ts"
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"files": [
|
|
44
|
-
"dist/**/*.js",
|
|
45
|
-
"dist/**/*.d.ts",
|
|
46
|
-
"dist/**/*.json",
|
|
47
|
-
"dist/**/*.md",
|
|
48
|
-
"dist/**/*.py",
|
|
49
|
-
"dist/**/*.html",
|
|
50
|
-
"dist/**/*.css",
|
|
51
|
-
"docs",
|
|
52
|
-
"LICENSE",
|
|
53
|
-
"README.md"
|
|
54
|
-
],
|
|
55
|
-
"scripts": {
|
|
56
|
-
"dev": "tsx cli.ts",
|
|
57
|
-
"build": "npm run clean:dist && npm run build:deps && tsc -p tsconfig.build.json && npm run copy:internal-libs && npm run copy:theme:json && npm run copy:assets && npm run build:meta && npm run minify:dist",
|
|
58
|
-
"build:meta": "node scripts/generate-build-meta.js",
|
|
59
|
-
"minify:dist": "node scripts/minify-dist.js",
|
|
60
|
-
"build:release": "npm run generate-models --prefix core/lib/ai && npm run build",
|
|
61
|
-
"build:deps": "node scripts/build-deps.js",
|
|
62
|
-
"clean:dist": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
63
|
-
"copy:theme:json": "node -e \"const fs=require('fs');const p=require('path');const d='dist/modes/interactive/theme';if(!fs.existsSync(d))fs.mkdirSync(d,{recursive:true});fs.readdirSync('modes/interactive/theme').forEach(f=>{if(f.endsWith('.json'))fs.copyFileSync(p.join('modes/interactive/theme',f),p.join(d,f))})\"",
|
|
64
|
-
"copy:internal-libs": "node scripts/copy-internal-libs.js",
|
|
65
|
-
"copy:assets": "node scripts/copy-assets.js",
|
|
66
|
-
"update-models": "npm run generate-models --prefix core/lib/ai",
|
|
67
|
-
"benchmark": "node scripts/startup-benchmark.cjs",
|
|
68
|
-
"benchmark:save": "node scripts/startup-benchmark.cjs --output .benchmarks/baseline.json",
|
|
69
|
-
"benchmark:compare": "node scripts/startup-benchmark.cjs --baseline .benchmarks/baseline.json",
|
|
70
|
-
"scaffold:docs": "node --import tsx scripts/scaffold-feature-docs.ts",
|
|
71
|
-
"verify:dip": "node --import tsx scripts/verify-dip.ts",
|
|
72
|
-
"verify:quality": "node --import tsx scripts/verify-quality.ts",
|
|
73
|
-
"verify:package-boundary": "node --import tsx scripts/verify-package-boundary.ts",
|
|
74
|
-
"verify:package-boundary:dist": "node --import tsx scripts/verify-package-boundary.ts --dist",
|
|
75
|
-
"verify:all": "npm run build:deps && npm run verify:dip && npm run verify:quality && npm run verify:package-boundary && npx tsc --noEmit",
|
|
76
|
-
"wiki:scan": "node --import tsx scripts/llm-wiki.ts scan",
|
|
77
|
-
"wiki:update": "node --import tsx scripts/llm-wiki.ts update",
|
|
78
|
-
"wiki:verify": "node --import tsx scripts/llm-wiki.ts verify",
|
|
79
|
-
"wiki:build": "node --import tsx scripts/llm-wiki.ts build",
|
|
80
|
-
"wiki:all": "node --import tsx scripts/llm-wiki.ts all",
|
|
81
|
-
"watch": "tsc --watch",
|
|
82
|
-
"test:subagent": "node --test --import tsx test/subagent-parser.test.ts test/worktree-manager.test.ts test/bash-sandbox.test.ts",
|
|
83
|
-
"test:team": "node --test --import tsx test/team-parser.test.ts test/team-runtime.test.ts",
|
|
84
|
-
"test:plan": "node --test --import tsx test/plan-mode.test.ts",
|
|
85
|
-
"test:utils": "node --test --import tsx test/logger.test.ts",
|
|
86
|
-
"test:commands": "node --test --import tsx test/slash-command-catalog.test.ts test/extension-command-completions.test.ts test/interactive-slash-command-arguments.test.ts test/rpc-command-catalog.test.ts",
|
|
87
|
-
"test:security": "node --test --import tsx test/security-audit.test.ts",
|
|
88
|
-
"test:tools": "node --test --import tsx test/workspace-write-guard.test.ts test/read-tool.test.ts test/tool-window-validation.test.ts test/bash-sandbox.test.ts",
|
|
89
|
-
"test:presence": "node --test --import tsx test/presence-opening.test.ts",
|
|
90
|
-
"test:interactive-memory-notify": "node --test --import tsx test/interactive-memory-notify.test.ts test/session-manager-header.test.ts",
|
|
91
|
-
"start": "npx cross-env NODE_ENV=production node --no-deprecation dist/cli.js",
|
|
92
|
-
"prepare": "git config core.hooksPath .githooks || true",
|
|
93
|
-
"prepublishOnly": "npm run build:release",
|
|
94
|
-
"changelog": "node scripts/generate-changelog.js",
|
|
95
|
-
"version": "npm run changelog && git add CHANGELOG.md",
|
|
96
|
-
"postversion": "git push",
|
|
97
|
-
"release": "npm version patch && npm publish"
|
|
98
|
-
},
|
|
99
|
-
"keywords": [
|
|
100
|
-
"nanopencil",
|
|
101
|
-
"writing-agent",
|
|
102
|
-
"coding-agent",
|
|
103
|
-
"ai",
|
|
104
|
-
"llm",
|
|
105
|
-
"cli",
|
|
106
|
-
"tui",
|
|
107
|
-
"agent",
|
|
108
|
-
"apikey",
|
|
109
|
-
"dashscope"
|
|
110
|
-
],
|
|
111
|
-
"license": "GPL-3.0",
|
|
112
|
-
"workspaces": [
|
|
113
|
-
"core/lib/agent-core",
|
|
114
|
-
"core/lib/ai",
|
|
115
|
-
"core/lib/tui",
|
|
116
|
-
"packages/mem-core",
|
|
117
|
-
"packages/soul-core",
|
|
118
|
-
"packages/protocol"
|
|
119
|
-
],
|
|
120
|
-
"engines": {
|
|
121
|
-
"node": ">=20"
|
|
122
|
-
},
|
|
123
|
-
"dependencies": {
|
|
124
|
-
"@agentclientprotocol/sdk": "^0.16.1",
|
|
125
|
-
"@anthropic-ai/sdk": "^0.73.0",
|
|
126
|
-
"@aws-sdk/client-bedrock-runtime": "^3.983.0",
|
|
127
|
-
"@google/genai": "^1.40.0",
|
|
128
|
-
"@mariozechner/clipboard": "^0.3.2",
|
|
129
|
-
"@mariozechner/jiti": "^2.6.2",
|
|
130
|
-
"@mistralai/mistralai": "1.10.0",
|
|
131
|
-
"@pencil-agent/protocol": "^0.1.0",
|
|
132
|
-
"@pencil-agent/mem-core": "^1.1.2",
|
|
133
|
-
"@pencil-agent/soul-core": "^0.1.0",
|
|
134
|
-
"@silvia-odwyer/photon-node": "^0.3.4",
|
|
135
|
-
"@sinclair/typebox": "^0.34.41",
|
|
136
|
-
"ajv": "^8.17.1",
|
|
137
|
-
"ajv-formats": "^3.0.1",
|
|
138
|
-
"chalk": "^5.5.0",
|
|
139
|
-
"chokidar": "^5.0.0",
|
|
140
|
-
"cli-highlight": "^2.1.11",
|
|
141
|
-
"diff": "^8.0.2",
|
|
142
|
-
"extract-zip": "^2.0.1",
|
|
143
|
-
"file-type": "^21.1.1",
|
|
144
|
-
"get-east-asian-width": "^1.3.0",
|
|
145
|
-
"glob": "^13.0.1",
|
|
146
|
-
"hosted-git-info": "^9.0.2",
|
|
147
|
-
"ignore": "^7.0.5",
|
|
148
|
-
"marked": "^15.0.12",
|
|
149
|
-
"mime-types": "^3.0.1",
|
|
150
|
-
"minimatch": "^10.1.1",
|
|
151
|
-
"openai": "6.10.0",
|
|
152
|
-
"partial-json": "^0.1.7",
|
|
153
|
-
"pdf-lib": "^1.17.1",
|
|
154
|
-
"pdfjs-dist": "^4.0.379",
|
|
155
|
-
"proper-lockfile": "^4.1.2",
|
|
156
|
-
"proxy-agent": "^6.5.0",
|
|
157
|
-
"undici": "^7.19.1",
|
|
158
|
-
"vscode-jsonrpc": "^8.2.1",
|
|
159
|
-
"vscode-languageserver-protocol": "^3.18.0",
|
|
160
|
-
"vscode-languageserver-types": "^3.18.0",
|
|
161
|
-
"yaml": "^2.8.2",
|
|
162
|
-
"zod": "^4.3.6",
|
|
163
|
-
"zod-to-json-schema": "^3.24.6"
|
|
164
|
-
},
|
|
165
|
-
"optionalDependencies": {
|
|
166
|
-
"koffi": "^2.9.0"
|
|
167
|
-
},
|
|
168
|
-
"devDependencies": {
|
|
169
|
-
"@types/hosted-git-info": "^3.0.5",
|
|
170
|
-
"@types/node": "^22.15.0",
|
|
171
|
-
"@types/proper-lockfile": "^4.1.4",
|
|
172
|
-
"cross-env": "^10.1.0",
|
|
173
|
-
"esbuild": "^0.27.3",
|
|
174
|
-
"tsx": "^4.7.0",
|
|
175
|
-
"typescript": "^5.3.3"
|
|
176
|
-
},
|
|
177
|
-
"overrides": {
|
|
178
|
-
"@types/node": "^22.15.0",
|
|
179
|
-
"zod": "^4.3.6"
|
|
180
|
-
},
|
|
181
|
-
"nanopencilConfig": {
|
|
182
|
-
"name": "nanopencil",
|
|
183
|
-
"configDir": ".pencils"
|
|
184
|
-
},
|
|
185
|
-
"repository": {
|
|
186
|
-
"type": "git",
|
|
187
|
-
"url": "git+ssh://git@github.com/O-Pencil/nanoPencil.git"
|
|
188
|
-
},
|
|
189
|
-
"homepage": "https://github.com/O-Pencil/nanoPencil"
|
|
190
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@pencil-agent/nano-pencil",
|
|
3
|
+
"version": "2.0.3",
|
|
4
|
+
"description": "CLI writing agent with read, bash, edit, write tools and session management. Supports DashScope and Ali Token Plan. Soul enabled by default for AI personality evolution.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"nanopencil": "dist/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./tools": {
|
|
15
|
+
"import": "./dist/tools.js",
|
|
16
|
+
"types": "./dist/tools.d.ts"
|
|
17
|
+
},
|
|
18
|
+
"./runtime": {
|
|
19
|
+
"import": "./dist/runtime.js",
|
|
20
|
+
"types": "./dist/runtime.d.ts"
|
|
21
|
+
},
|
|
22
|
+
"./session": {
|
|
23
|
+
"import": "./dist/session.js",
|
|
24
|
+
"types": "./dist/session.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./session/compaction": {
|
|
27
|
+
"import": "./dist/session-compaction.js",
|
|
28
|
+
"types": "./dist/session-compaction.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./config": {
|
|
31
|
+
"import": "./dist/public-config.js",
|
|
32
|
+
"types": "./dist/public-config.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./models": {
|
|
35
|
+
"import": "./dist/models.js",
|
|
36
|
+
"types": "./dist/models.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./skills": {
|
|
39
|
+
"import": "./dist/skills.js",
|
|
40
|
+
"types": "./dist/skills.d.ts"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"files": [
|
|
44
|
+
"dist/**/*.js",
|
|
45
|
+
"dist/**/*.d.ts",
|
|
46
|
+
"dist/**/*.json",
|
|
47
|
+
"dist/**/*.md",
|
|
48
|
+
"dist/**/*.py",
|
|
49
|
+
"dist/**/*.html",
|
|
50
|
+
"dist/**/*.css",
|
|
51
|
+
"docs",
|
|
52
|
+
"LICENSE",
|
|
53
|
+
"README.md"
|
|
54
|
+
],
|
|
55
|
+
"scripts": {
|
|
56
|
+
"dev": "tsx cli.ts",
|
|
57
|
+
"build": "npm run clean:dist && npm run build:deps && tsc -p tsconfig.build.json && npm run copy:internal-libs && npm run copy:theme:json && npm run copy:assets && npm run build:meta && npm run minify:dist",
|
|
58
|
+
"build:meta": "node scripts/generate-build-meta.js",
|
|
59
|
+
"minify:dist": "node scripts/minify-dist.js",
|
|
60
|
+
"build:release": "npm run generate-models --prefix core/lib/ai && npm run build",
|
|
61
|
+
"build:deps": "node scripts/build-deps.js",
|
|
62
|
+
"clean:dist": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
63
|
+
"copy:theme:json": "node -e \"const fs=require('fs');const p=require('path');const d='dist/modes/interactive/theme';if(!fs.existsSync(d))fs.mkdirSync(d,{recursive:true});fs.readdirSync('modes/interactive/theme').forEach(f=>{if(f.endsWith('.json'))fs.copyFileSync(p.join('modes/interactive/theme',f),p.join(d,f))})\"",
|
|
64
|
+
"copy:internal-libs": "node scripts/copy-internal-libs.js",
|
|
65
|
+
"copy:assets": "node scripts/copy-assets.js",
|
|
66
|
+
"update-models": "npm run generate-models --prefix core/lib/ai",
|
|
67
|
+
"benchmark": "node scripts/startup-benchmark.cjs",
|
|
68
|
+
"benchmark:save": "node scripts/startup-benchmark.cjs --output .benchmarks/baseline.json",
|
|
69
|
+
"benchmark:compare": "node scripts/startup-benchmark.cjs --baseline .benchmarks/baseline.json",
|
|
70
|
+
"scaffold:docs": "node --import tsx scripts/scaffold-feature-docs.ts",
|
|
71
|
+
"verify:dip": "node --import tsx scripts/verify-dip.ts",
|
|
72
|
+
"verify:quality": "node --import tsx scripts/verify-quality.ts",
|
|
73
|
+
"verify:package-boundary": "node --import tsx scripts/verify-package-boundary.ts",
|
|
74
|
+
"verify:package-boundary:dist": "node --import tsx scripts/verify-package-boundary.ts --dist",
|
|
75
|
+
"verify:all": "npm run build:deps && npm run verify:dip && npm run verify:quality && npm run verify:package-boundary && npx tsc --noEmit",
|
|
76
|
+
"wiki:scan": "node --import tsx scripts/llm-wiki.ts scan",
|
|
77
|
+
"wiki:update": "node --import tsx scripts/llm-wiki.ts update",
|
|
78
|
+
"wiki:verify": "node --import tsx scripts/llm-wiki.ts verify",
|
|
79
|
+
"wiki:build": "node --import tsx scripts/llm-wiki.ts build",
|
|
80
|
+
"wiki:all": "node --import tsx scripts/llm-wiki.ts all",
|
|
81
|
+
"watch": "tsc --watch",
|
|
82
|
+
"test:subagent": "node --test --import tsx test/subagent-parser.test.ts test/worktree-manager.test.ts test/bash-sandbox.test.ts",
|
|
83
|
+
"test:team": "node --test --import tsx test/team-parser.test.ts test/team-runtime.test.ts",
|
|
84
|
+
"test:plan": "node --test --import tsx test/plan-mode.test.ts",
|
|
85
|
+
"test:utils": "node --test --import tsx test/logger.test.ts",
|
|
86
|
+
"test:commands": "node --test --import tsx test/slash-command-catalog.test.ts test/extension-command-completions.test.ts test/interactive-slash-command-arguments.test.ts test/rpc-command-catalog.test.ts",
|
|
87
|
+
"test:security": "node --test --import tsx test/security-audit.test.ts",
|
|
88
|
+
"test:tools": "node --test --import tsx test/workspace-write-guard.test.ts test/read-tool.test.ts test/tool-window-validation.test.ts test/bash-sandbox.test.ts",
|
|
89
|
+
"test:presence": "node --test --import tsx test/presence-opening.test.ts",
|
|
90
|
+
"test:interactive-memory-notify": "node --test --import tsx test/interactive-memory-notify.test.ts test/session-manager-header.test.ts",
|
|
91
|
+
"start": "npx cross-env NODE_ENV=production node --no-deprecation dist/cli.js",
|
|
92
|
+
"prepare": "git config core.hooksPath .githooks || true",
|
|
93
|
+
"prepublishOnly": "npm run build:release",
|
|
94
|
+
"changelog": "node scripts/generate-changelog.js",
|
|
95
|
+
"version": "npm run changelog && git add CHANGELOG.md",
|
|
96
|
+
"postversion": "git push",
|
|
97
|
+
"release": "npm version patch && npm publish"
|
|
98
|
+
},
|
|
99
|
+
"keywords": [
|
|
100
|
+
"nanopencil",
|
|
101
|
+
"writing-agent",
|
|
102
|
+
"coding-agent",
|
|
103
|
+
"ai",
|
|
104
|
+
"llm",
|
|
105
|
+
"cli",
|
|
106
|
+
"tui",
|
|
107
|
+
"agent",
|
|
108
|
+
"apikey",
|
|
109
|
+
"dashscope"
|
|
110
|
+
],
|
|
111
|
+
"license": "GPL-3.0",
|
|
112
|
+
"workspaces": [
|
|
113
|
+
"core/lib/agent-core",
|
|
114
|
+
"core/lib/ai",
|
|
115
|
+
"core/lib/tui",
|
|
116
|
+
"packages/mem-core",
|
|
117
|
+
"packages/soul-core",
|
|
118
|
+
"packages/protocol"
|
|
119
|
+
],
|
|
120
|
+
"engines": {
|
|
121
|
+
"node": ">=20"
|
|
122
|
+
},
|
|
123
|
+
"dependencies": {
|
|
124
|
+
"@agentclientprotocol/sdk": "^0.16.1",
|
|
125
|
+
"@anthropic-ai/sdk": "^0.73.0",
|
|
126
|
+
"@aws-sdk/client-bedrock-runtime": "^3.983.0",
|
|
127
|
+
"@google/genai": "^1.40.0",
|
|
128
|
+
"@mariozechner/clipboard": "^0.3.2",
|
|
129
|
+
"@mariozechner/jiti": "^2.6.2",
|
|
130
|
+
"@mistralai/mistralai": "1.10.0",
|
|
131
|
+
"@pencil-agent/protocol": "^0.1.0",
|
|
132
|
+
"@pencil-agent/mem-core": "^1.1.2",
|
|
133
|
+
"@pencil-agent/soul-core": "^0.1.0",
|
|
134
|
+
"@silvia-odwyer/photon-node": "^0.3.4",
|
|
135
|
+
"@sinclair/typebox": "^0.34.41",
|
|
136
|
+
"ajv": "^8.17.1",
|
|
137
|
+
"ajv-formats": "^3.0.1",
|
|
138
|
+
"chalk": "^5.5.0",
|
|
139
|
+
"chokidar": "^5.0.0",
|
|
140
|
+
"cli-highlight": "^2.1.11",
|
|
141
|
+
"diff": "^8.0.2",
|
|
142
|
+
"extract-zip": "^2.0.1",
|
|
143
|
+
"file-type": "^21.1.1",
|
|
144
|
+
"get-east-asian-width": "^1.3.0",
|
|
145
|
+
"glob": "^13.0.1",
|
|
146
|
+
"hosted-git-info": "^9.0.2",
|
|
147
|
+
"ignore": "^7.0.5",
|
|
148
|
+
"marked": "^15.0.12",
|
|
149
|
+
"mime-types": "^3.0.1",
|
|
150
|
+
"minimatch": "^10.1.1",
|
|
151
|
+
"openai": "6.10.0",
|
|
152
|
+
"partial-json": "^0.1.7",
|
|
153
|
+
"pdf-lib": "^1.17.1",
|
|
154
|
+
"pdfjs-dist": "^4.0.379",
|
|
155
|
+
"proper-lockfile": "^4.1.2",
|
|
156
|
+
"proxy-agent": "^6.5.0",
|
|
157
|
+
"undici": "^7.19.1",
|
|
158
|
+
"vscode-jsonrpc": "^8.2.1",
|
|
159
|
+
"vscode-languageserver-protocol": "^3.18.0",
|
|
160
|
+
"vscode-languageserver-types": "^3.18.0",
|
|
161
|
+
"yaml": "^2.8.2",
|
|
162
|
+
"zod": "^4.3.6",
|
|
163
|
+
"zod-to-json-schema": "^3.24.6"
|
|
164
|
+
},
|
|
165
|
+
"optionalDependencies": {
|
|
166
|
+
"koffi": "^2.9.0"
|
|
167
|
+
},
|
|
168
|
+
"devDependencies": {
|
|
169
|
+
"@types/hosted-git-info": "^3.0.5",
|
|
170
|
+
"@types/node": "^22.15.0",
|
|
171
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
172
|
+
"cross-env": "^10.1.0",
|
|
173
|
+
"esbuild": "^0.27.3",
|
|
174
|
+
"tsx": "^4.7.0",
|
|
175
|
+
"typescript": "^5.3.3"
|
|
176
|
+
},
|
|
177
|
+
"overrides": {
|
|
178
|
+
"@types/node": "^22.15.0",
|
|
179
|
+
"zod": "^4.3.6"
|
|
180
|
+
},
|
|
181
|
+
"nanopencilConfig": {
|
|
182
|
+
"name": "nanopencil",
|
|
183
|
+
"configDir": ".pencils"
|
|
184
|
+
},
|
|
185
|
+
"repository": {
|
|
186
|
+
"type": "git",
|
|
187
|
+
"url": "git+ssh://git@github.com/O-Pencil/nanoPencil.git"
|
|
188
|
+
},
|
|
189
|
+
"homepage": "https://github.com/O-Pencil/nanoPencil"
|
|
190
|
+
}
|