@pencil-agent/nano-pencil 2.0.1 → 2.0.2
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/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/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.2",
|
|
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
|
+
}
|