@herbertgao/pi-extensions 2026.8.8 → 2026.8.10
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 +6 -3
- package/node_modules/@czottmann/pi-automode/CHANGELOG.md +24 -0
- package/node_modules/@czottmann/pi-automode/README.md +78 -112
- package/node_modules/@czottmann/pi-automode/docs/GLOSSARY.md +18 -14
- package/node_modules/@czottmann/pi-automode/docs/adr/ADR-001-permission-precedence-and-trust-boundaries.md +44 -0
- package/node_modules/@czottmann/pi-automode/docs/adr/INDEX.md +5 -0
- package/node_modules/@czottmann/pi-automode/docs/automode-classifier-flow.md +198 -104
- package/node_modules/@czottmann/pi-automode/docs/configuration.md +155 -0
- package/node_modules/@czottmann/pi-automode/docs/defaults.md +55 -14
- package/node_modules/@czottmann/pi-automode/docs/diagnostics.md +90 -0
- package/node_modules/@czottmann/pi-automode/docs/observability-logging.md +61 -26
- package/node_modules/@czottmann/pi-automode/examples/automode.local.json +5 -0
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/classifier.ts +172 -18
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/config.ts +127 -30
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/constants.ts +3 -0
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/extension.ts +273 -31
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/log.ts +60 -5
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/paths.ts +92 -8
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/permissions.ts +203 -13
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/state.ts +1 -0
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/types.ts +11 -0
- package/node_modules/@czottmann/pi-automode/extensions/auto-mode/utils.ts +9 -1
- package/node_modules/@czottmann/pi-automode/package.json +9 -2
- package/node_modules/@czottmann/pi-automode/skills/automode-diagnostics/SKILL.md +63 -0
- package/node_modules/@herbertgao/pi-cc-extensions/README.en.md +3 -3
- package/node_modules/@herbertgao/pi-cc-extensions/README.md +3 -3
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/config/panel.ts +8 -3
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/feature/context.ts +56 -29
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/message-display.ts +1 -1
- package/node_modules/@herbertgao/pi-cc-extensions/extensions/renderer/mouse/interaction.ts +15 -13
- package/node_modules/@herbertgao/pi-cc-extensions/package.json +3 -3
- package/node_modules/@herbertgao/pi-handoff/CHANGELOG.md +29 -0
- package/node_modules/@herbertgao/pi-handoff/README.md +15 -18
- package/node_modules/@herbertgao/pi-handoff/package.json +11 -4
- package/node_modules/@herbertgao/pi-handoff/src/complete-text.ts +33 -0
- package/node_modules/@herbertgao/pi-handoff/src/index.ts +127 -232
- package/node_modules/@herbertgao/pi-handoff/src/session-query.ts +15 -30
- package/node_modules/@herbertgao/pi-mermaid-open/CHANGELOG.md +14 -0
- package/node_modules/@herbertgao/pi-mermaid-open/README.md +21 -4
- package/node_modules/@herbertgao/pi-mermaid-open/herdr-plugin/herdr-plugin.toml +11 -0
- package/node_modules/@herbertgao/pi-mermaid-open/herdr-plugin/viewer.mjs +305 -0
- package/node_modules/@herbertgao/pi-mermaid-open/package.json +15 -4
- package/node_modules/@herbertgao/pi-mermaid-open/src/index.ts +351 -101
- package/node_modules/@herbertgao/pi-preferred-thinking/CHANGELOG.md +12 -0
- package/node_modules/@herbertgao/pi-preferred-thinking/README.md +30 -14
- package/node_modules/@herbertgao/pi-preferred-thinking/package.json +7 -4
- package/node_modules/@herbertgao/pi-preferred-thinking/src/index.ts +140 -85
- package/node_modules/@herbertgao/pi-recap/CHANGELOG.md +12 -0
- package/node_modules/@herbertgao/pi-recap/README.md +5 -3
- package/node_modules/@herbertgao/pi-recap/package.json +9 -3
- package/node_modules/@herbertgao/pi-recap/src/index.ts +3 -7
- package/node_modules/@herbertgao/pi-recap/src/model-picker.ts +6 -19
- package/node_modules/@herbertgao/pi-recap/src/models.ts +9 -21
- package/node_modules/@herbertgao/pi-recap/src/tui.ts +1 -1
- package/node_modules/@herbertgao/pi-rename/CHANGELOG.md +49 -0
- package/node_modules/@herbertgao/pi-rename/README.md +13 -11
- package/node_modules/@herbertgao/pi-rename/package.json +13 -3
- package/node_modules/@herbertgao/pi-rename/src/index.ts +135 -59
- package/node_modules/@herbertgao/pi-rename/src/models.ts +5 -13
- package/node_modules/@herbertgao/pi-rename/src/naming.ts +2 -6
- package/node_modules/@herbertgao/pi-stash/package.json +3 -3
- package/node_modules/@herbertgao/pi-subagents/CHANGELOG.md +8 -0
- package/node_modules/@herbertgao/pi-subagents/README.md +16 -3
- package/node_modules/@herbertgao/pi-subagents/package.json +1 -1
- package/node_modules/@herbertgao/pi-subagents/src/cross-extension-rpc.ts +15 -4
- package/node_modules/@herbertgao/pi-subagents/src/index.ts +16 -0
- package/node_modules/@herbertgao/pi-subagents/src/ui/conversation-viewer.ts +5 -1
- package/node_modules/pi-web-access/CHANGELOG.md +13 -0
- package/node_modules/pi-web-access/README.md +2 -2
- package/node_modules/pi-web-access/chrome-cookies.ts +12 -7
- package/node_modules/pi-web-access/gemini-search.ts +28 -10
- package/node_modules/pi-web-access/index.ts +24 -10
- package/node_modules/pi-web-access/package.json +1 -1
- package/node_modules/resume-from/LICENSE +21 -0
- package/node_modules/resume-from/README.md +161 -0
- package/node_modules/resume-from/dist/adapters/claude-code/adapter.d.ts +25 -0
- package/node_modules/resume-from/dist/adapters/claude-code/adapter.js +60 -0
- package/node_modules/resume-from/dist/adapters/claude-code/contract.d.ts +8 -0
- package/node_modules/resume-from/dist/adapters/claude-code/contract.js +4 -0
- package/node_modules/resume-from/dist/adapters/claude-code/entries.d.ts +30 -0
- package/node_modules/resume-from/dist/adapters/claude-code/entries.js +107 -0
- package/node_modules/resume-from/dist/adapters/claude-code/index.d.ts +3 -0
- package/node_modules/resume-from/dist/adapters/claude-code/index.js +2 -0
- package/node_modules/resume-from/dist/adapters/claude-code/layout.d.ts +29 -0
- package/node_modules/resume-from/dist/adapters/claude-code/layout.js +80 -0
- package/node_modules/resume-from/dist/adapters/claude-code/readback.d.ts +9 -0
- package/node_modules/resume-from/dist/adapters/claude-code/readback.js +39 -0
- package/node_modules/resume-from/dist/adapters/claude-code/reader.d.ts +37 -0
- package/node_modules/resume-from/dist/adapters/claude-code/reader.js +415 -0
- package/node_modules/resume-from/dist/adapters/claude-code/redaction.d.ts +26 -0
- package/node_modules/resume-from/dist/adapters/claude-code/redaction.js +132 -0
- package/node_modules/resume-from/dist/adapters/claude-code/validation.d.ts +4 -0
- package/node_modules/resume-from/dist/adapters/claude-code/validation.js +39 -0
- package/node_modules/resume-from/dist/adapters/claude-code/writer.d.ts +23 -0
- package/node_modules/resume-from/dist/adapters/claude-code/writer.js +306 -0
- package/node_modules/resume-from/dist/adapters/codex/contract.d.ts +15 -0
- package/node_modules/resume-from/dist/adapters/codex/contract.js +4 -0
- package/node_modules/resume-from/dist/adapters/codex/index.d.ts +6 -0
- package/node_modules/resume-from/dist/adapters/codex/index.js +44 -0
- package/node_modules/resume-from/dist/adapters/codex/read.d.ts +28 -0
- package/node_modules/resume-from/dist/adapters/codex/read.js +270 -0
- package/node_modules/resume-from/dist/adapters/codex/readback.d.ts +9 -0
- package/node_modules/resume-from/dist/adapters/codex/readback.js +47 -0
- package/node_modules/resume-from/dist/adapters/codex/redaction.d.ts +26 -0
- package/node_modules/resume-from/dist/adapters/codex/redaction.js +132 -0
- package/node_modules/resume-from/dist/adapters/codex/rollout.d.ts +75 -0
- package/node_modules/resume-from/dist/adapters/codex/rollout.js +185 -0
- package/node_modules/resume-from/dist/adapters/codex/validation.d.ts +7 -0
- package/node_modules/resume-from/dist/adapters/codex/validation.js +78 -0
- package/node_modules/resume-from/dist/adapters/codex/write.d.ts +17 -0
- package/node_modules/resume-from/dist/adapters/codex/write.js +141 -0
- package/node_modules/resume-from/dist/adapters/contract.d.ts +74 -0
- package/node_modules/resume-from/dist/adapters/contract.js +4 -0
- package/node_modules/resume-from/dist/adapters/pi/adapter.d.ts +15 -0
- package/node_modules/resume-from/dist/adapters/pi/adapter.js +209 -0
- package/node_modules/resume-from/dist/adapters/pi/contract.d.ts +24 -0
- package/node_modules/resume-from/dist/adapters/pi/contract.js +4 -0
- package/node_modules/resume-from/dist/adapters/pi/format.d.ts +162 -0
- package/node_modules/resume-from/dist/adapters/pi/format.js +223 -0
- package/node_modules/resume-from/dist/adapters/pi/index.d.ts +7 -0
- package/node_modules/resume-from/dist/adapters/pi/index.js +10 -0
- package/node_modules/resume-from/dist/adapters/pi/parse.d.ts +41 -0
- package/node_modules/resume-from/dist/adapters/pi/parse.js +371 -0
- package/node_modules/resume-from/dist/adapters/pi/redaction.d.ts +26 -0
- package/node_modules/resume-from/dist/adapters/pi/redaction.js +132 -0
- package/node_modules/resume-from/dist/adapters/pi/serialize.d.ts +22 -0
- package/node_modules/resume-from/dist/adapters/pi/serialize.js +87 -0
- package/node_modules/resume-from/dist/adapters/pi/validate.d.ts +14 -0
- package/node_modules/resume-from/dist/adapters/pi/validate.js +134 -0
- package/node_modules/resume-from/dist/bin.d.ts +35 -0
- package/node_modules/resume-from/dist/bin.js +135 -0
- package/node_modules/resume-from/dist/contract.d.ts +10 -0
- package/node_modules/resume-from/dist/contract.js +4 -0
- package/node_modules/resume-from/dist/host/agents.d.ts +29 -0
- package/node_modules/resume-from/dist/host/agents.js +20 -0
- package/node_modules/resume-from/dist/host/cli/args.d.ts +21 -0
- package/node_modules/resume-from/dist/host/cli/args.js +187 -0
- package/node_modules/resume-from/dist/host/cli/contract.d.ts +27 -0
- package/node_modules/resume-from/dist/host/cli/contract.js +4 -0
- package/node_modules/resume-from/dist/host/cli/index.d.ts +2 -0
- package/node_modules/resume-from/dist/host/cli/index.js +1 -0
- package/node_modules/resume-from/dist/host/cli/presentation.d.ts +2 -0
- package/node_modules/resume-from/dist/host/cli/presentation.js +11 -0
- package/node_modules/resume-from/dist/host/cli/render.d.ts +3 -0
- package/node_modules/resume-from/dist/host/cli/render.js +70 -0
- package/node_modules/resume-from/dist/host/cli/runner.d.ts +8 -0
- package/node_modules/resume-from/dist/host/cli/runner.js +125 -0
- package/node_modules/resume-from/dist/host/contract.d.ts +42 -0
- package/node_modules/resume-from/dist/host/contract.js +4 -0
- package/node_modules/resume-from/dist/host/entry.d.ts +52 -0
- package/node_modules/resume-from/dist/host/entry.js +91 -0
- package/node_modules/resume-from/dist/host/index.d.ts +11 -0
- package/node_modules/resume-from/dist/host/index.js +10 -0
- package/node_modules/resume-from/dist/host/pi-extension/command.d.ts +18 -0
- package/node_modules/resume-from/dist/host/pi-extension/command.js +103 -0
- package/node_modules/resume-from/dist/host/pi-extension/contract.d.ts +34 -0
- package/node_modules/resume-from/dist/host/pi-extension/contract.js +4 -0
- package/node_modules/resume-from/dist/host/pi-extension/index.d.ts +6 -0
- package/node_modules/resume-from/dist/host/pi-extension/index.js +4 -0
- package/node_modules/resume-from/dist/host/pi-extension/picker.d.ts +16 -0
- package/node_modules/resume-from/dist/host/pi-extension/picker.js +35 -0
- package/node_modules/resume-from/dist/host/pi-extension/presentation.d.ts +2 -0
- package/node_modules/resume-from/dist/host/pi-extension/presentation.js +11 -0
- package/node_modules/resume-from/dist/host/pi-extension/register.d.ts +25 -0
- package/node_modules/resume-from/dist/host/pi-extension/register.js +11 -0
- package/node_modules/resume-from/dist/host/pi-extension/ui.d.ts +20 -0
- package/node_modules/resume-from/dist/host/pi-extension/ui.js +1 -0
- package/node_modules/resume-from/dist/host/profile.d.ts +8 -0
- package/node_modules/resume-from/dist/host/profile.js +31 -0
- package/node_modules/resume-from/dist/host/registry.d.ts +8 -0
- package/node_modules/resume-from/dist/host/registry.js +33 -0
- package/node_modules/resume-from/dist/host/wiring.d.ts +41 -0
- package/node_modules/resume-from/dist/host/wiring.js +67 -0
- package/node_modules/resume-from/dist/import/confirmation.d.ts +6 -0
- package/node_modules/resume-from/dist/import/confirmation.js +27 -0
- package/node_modules/resume-from/dist/import/contract.d.ts +41 -0
- package/node_modules/resume-from/dist/import/contract.js +4 -0
- package/node_modules/resume-from/dist/import/discovery/contract.d.ts +58 -0
- package/node_modules/resume-from/dist/import/discovery/contract.js +4 -0
- package/node_modules/resume-from/dist/import/discovery/errors.d.ts +9 -0
- package/node_modules/resume-from/dist/import/discovery/errors.js +12 -0
- package/node_modules/resume-from/dist/import/discovery/finder.d.ts +10 -0
- package/node_modules/resume-from/dist/import/discovery/finder.js +129 -0
- package/node_modules/resume-from/dist/import/discovery/homes.d.ts +23 -0
- package/node_modules/resume-from/dist/import/discovery/homes.js +83 -0
- package/node_modules/resume-from/dist/import/discovery/index.d.ts +2 -0
- package/node_modules/resume-from/dist/import/discovery/index.js +2 -0
- package/node_modules/resume-from/dist/import/discovery/ordering.d.ts +3 -0
- package/node_modules/resume-from/dist/import/discovery/ordering.js +21 -0
- package/node_modules/resume-from/dist/import/errors.d.ts +22 -0
- package/node_modules/resume-from/dist/import/errors.js +20 -0
- package/node_modules/resume-from/dist/import/index.d.ts +3 -0
- package/node_modules/resume-from/dist/import/index.js +5 -0
- package/node_modules/resume-from/dist/import/landing/contract.d.ts +44 -0
- package/node_modules/resume-from/dist/import/landing/contract.js +4 -0
- package/node_modules/resume-from/dist/import/landing/errors.d.ts +15 -0
- package/node_modules/resume-from/dist/import/landing/errors.js +15 -0
- package/node_modules/resume-from/dist/import/landing/handover.d.ts +5 -0
- package/node_modules/resume-from/dist/import/landing/handover.js +12 -0
- package/node_modules/resume-from/dist/import/landing/index.d.ts +4 -0
- package/node_modules/resume-from/dist/import/landing/index.js +4 -0
- package/node_modules/resume-from/dist/import/landing/lander.d.ts +7 -0
- package/node_modules/resume-from/dist/import/landing/lander.js +133 -0
- package/node_modules/resume-from/dist/import/landing/marker.d.ts +9 -0
- package/node_modules/resume-from/dist/import/landing/marker.js +46 -0
- package/node_modules/resume-from/dist/import/pipeline.d.ts +17 -0
- package/node_modules/resume-from/dist/import/pipeline.js +134 -0
- package/node_modules/resume-from/dist/import/preview/builder.d.ts +6 -0
- package/node_modules/resume-from/dist/import/preview/builder.js +76 -0
- package/node_modules/resume-from/dist/import/preview/contract.d.ts +39 -0
- package/node_modules/resume-from/dist/import/preview/contract.js +4 -0
- package/node_modules/resume-from/dist/import/preview/format.d.ts +19 -0
- package/node_modules/resume-from/dist/import/preview/format.js +45 -0
- package/node_modules/resume-from/dist/import/preview/index.d.ts +2 -0
- package/node_modules/resume-from/dist/import/preview/index.js +1 -0
- package/node_modules/resume-from/dist/import/preview/warnings.d.ts +11 -0
- package/node_modules/resume-from/dist/import/preview/warnings.js +80 -0
- package/node_modules/resume-from/dist/import/transfer/contract.d.ts +48 -0
- package/node_modules/resume-from/dist/import/transfer/contract.js +4 -0
- package/node_modules/resume-from/dist/import/transfer/index.d.ts +2 -0
- package/node_modules/resume-from/dist/import/transfer/index.js +1 -0
- package/node_modules/resume-from/dist/import/transfer/rules.d.ts +3 -0
- package/node_modules/resume-from/dist/import/transfer/rules.js +228 -0
- package/node_modules/resume-from/dist/import/wiring.d.ts +24 -0
- package/node_modules/resume-from/dist/import/wiring.js +27 -0
- package/node_modules/resume-from/dist/index.d.ts +36 -0
- package/node_modules/resume-from/dist/index.js +36 -0
- package/node_modules/resume-from/dist/platform/config/contract.d.ts +35 -0
- package/node_modules/resume-from/dist/platform/config/contract.js +4 -0
- package/node_modules/resume-from/dist/platform/config/defaults.d.ts +16 -0
- package/node_modules/resume-from/dist/platform/config/defaults.js +22 -0
- package/node_modules/resume-from/dist/platform/config/errors.d.ts +9 -0
- package/node_modules/resume-from/dist/platform/config/errors.js +12 -0
- package/node_modules/resume-from/dist/platform/config/index.d.ts +5 -0
- package/node_modules/resume-from/dist/platform/config/index.js +6 -0
- package/node_modules/resume-from/dist/platform/config/loader.d.ts +10 -0
- package/node_modules/resume-from/dist/platform/config/loader.js +47 -0
- package/node_modules/resume-from/dist/platform/config/paths.d.ts +13 -0
- package/node_modules/resume-from/dist/platform/config/paths.js +37 -0
- package/node_modules/resume-from/dist/platform/config/validate.d.ts +9 -0
- package/node_modules/resume-from/dist/platform/config/validate.js +117 -0
- package/node_modules/resume-from/dist/platform/repo/contract.d.ts +30 -0
- package/node_modules/resume-from/dist/platform/repo/contract.js +4 -0
- package/node_modules/resume-from/dist/platform/repo/git.d.ts +21 -0
- package/node_modules/resume-from/dist/platform/repo/git.js +74 -0
- package/node_modules/resume-from/dist/platform/repo/index.d.ts +2 -0
- package/node_modules/resume-from/dist/platform/repo/index.js +1 -0
- package/node_modules/resume-from/dist/platform/repo/reader.d.ts +8 -0
- package/node_modules/resume-from/dist/platform/repo/reader.js +130 -0
- package/node_modules/resume-from/dist/platform/store/contract.d.ts +31 -0
- package/node_modules/resume-from/dist/platform/store/contract.js +4 -0
- package/node_modules/resume-from/dist/platform/store/file-committer.d.ts +3 -0
- package/node_modules/resume-from/dist/platform/store/file-committer.js +391 -0
- package/node_modules/resume-from/dist/platform/store/index.d.ts +2 -0
- package/node_modules/resume-from/dist/platform/store/index.js +2 -0
- package/node_modules/resume-from/dist/platform/tokens/contract.d.ts +12 -0
- package/node_modules/resume-from/dist/platform/tokens/contract.js +4 -0
- package/node_modules/resume-from/dist/platform/tokens/estimator.d.ts +12 -0
- package/node_modules/resume-from/dist/platform/tokens/estimator.js +111 -0
- package/node_modules/resume-from/dist/platform/tokens/index.d.ts +2 -0
- package/node_modules/resume-from/dist/platform/tokens/index.js +1 -0
- package/node_modules/resume-from/dist/session/contract.d.ts +109 -0
- package/node_modules/resume-from/dist/session/contract.js +4 -0
- package/node_modules/resume-from/package.json +80 -0
- package/node_modules/resume-from/shims/pi/extensions/resume-from.js +118 -0
- package/package.json +19 -14
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "resume-from",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Continue a coding session in a different agent, or a different profile.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pi-package",
|
|
7
|
+
"coding-agent",
|
|
8
|
+
"session-handoff",
|
|
9
|
+
"claude-code",
|
|
10
|
+
"codex"
|
|
11
|
+
],
|
|
12
|
+
"type": "module",
|
|
13
|
+
"packageManager": "pnpm@11.20.0",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=24"
|
|
17
|
+
},
|
|
18
|
+
"bin": {
|
|
19
|
+
"resume-from": "./dist/bin.js"
|
|
20
|
+
},
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"import": "./dist/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./pi-extension": {
|
|
28
|
+
"types": "./dist/host/pi-extension/index.d.ts",
|
|
29
|
+
"import": "./dist/host/pi-extension/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"shims/pi"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "node scripts/clean-dist.mjs && tsc -p tsconfig.build.json",
|
|
38
|
+
"typecheck": "tsc --noEmit",
|
|
39
|
+
"test": "vitest run",
|
|
40
|
+
"test:watch": "vitest",
|
|
41
|
+
"lint": "biome check . && eslint . --cache --cache-strategy content",
|
|
42
|
+
"lint:fix": "biome check --write .",
|
|
43
|
+
"packages:stage": "npm run build && node scripts/release/stage-npm-packages.mjs",
|
|
44
|
+
"packages:check": "npm run packages:stage && node scripts/release/check-npm-packages.mjs",
|
|
45
|
+
"pack:dry": "npm pack --dry-run",
|
|
46
|
+
"prepack": "npm run build"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@biomejs/biome": "2.5.7",
|
|
50
|
+
"@eslint/js": "^10.0.1",
|
|
51
|
+
"@types/node": "^24.13.3",
|
|
52
|
+
"esbuild": "0.28.1",
|
|
53
|
+
"eslint": "^10.8.0",
|
|
54
|
+
"globals": "^17.9.0",
|
|
55
|
+
"typescript": "^7.0.2",
|
|
56
|
+
"typescript-compiler-api": "npm:typescript@6.0.3",
|
|
57
|
+
"vitest": "^4.1.10"
|
|
58
|
+
},
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@earendil-works/pi-tui": "^0.84.1",
|
|
61
|
+
"gpt-tokenizer": "^3.4.0"
|
|
62
|
+
},
|
|
63
|
+
"pi": {
|
|
64
|
+
"extensions": [
|
|
65
|
+
"./shims/pi/extensions/resume-from.js"
|
|
66
|
+
],
|
|
67
|
+
"image": "https://raw.githubusercontent.com/alexei-led/resume-from/fa0bfa778b52c64accc53155f12f3b895476ea08/assets/resume-from-card.png"
|
|
68
|
+
},
|
|
69
|
+
"repository": {
|
|
70
|
+
"type": "git",
|
|
71
|
+
"url": "git+https://github.com/alexei-led/resume-from.git"
|
|
72
|
+
},
|
|
73
|
+
"homepage": "https://github.com/alexei-led/resume-from#readme",
|
|
74
|
+
"bugs": {
|
|
75
|
+
"url": "https://github.com/alexei-led/resume-from/issues"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { isAbsolute, join, resolve } from "node:path";
|
|
3
|
+
import { truncateToWidth } from "@earendil-works/pi-tui";
|
|
4
|
+
import { activatePiExtension } from "resume-from";
|
|
5
|
+
import { formatRow, safeLines, safeText } from "resume-from/pi-extension";
|
|
6
|
+
|
|
7
|
+
const COMMAND_NAME = "resume-from";
|
|
8
|
+
const DESCRIPTION =
|
|
9
|
+
"Continue another session. Use /resume-from --help for accepted arguments.";
|
|
10
|
+
const PROVENANCE_CUSTOM_TYPE = "resume-from-provenance";
|
|
11
|
+
|
|
12
|
+
function provenanceLines(data) {
|
|
13
|
+
const lines = data?.lines;
|
|
14
|
+
return Array.isArray(lines) && lines.every((line) => typeof line === "string")
|
|
15
|
+
? lines
|
|
16
|
+
: null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function renderProvenance(entry, { expanded }, theme) {
|
|
20
|
+
const lines = provenanceLines(entry.data);
|
|
21
|
+
const visible =
|
|
22
|
+
lines === null
|
|
23
|
+
? ["Imported session"]
|
|
24
|
+
: expanded
|
|
25
|
+
? lines
|
|
26
|
+
: [`${lines[0] ?? "Imported session"} · ${lines.at(-1) ?? ""}`];
|
|
27
|
+
return {
|
|
28
|
+
render(width) {
|
|
29
|
+
return visible.map((line) =>
|
|
30
|
+
theme.bg("customMessageBg", truncateToWidth(safeText(line), Math.max(0, width), "")),
|
|
31
|
+
);
|
|
32
|
+
},
|
|
33
|
+
invalidate() {},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function agentHome() {
|
|
38
|
+
const configured = process.env.PI_CODING_AGENT_DIR;
|
|
39
|
+
if (configured === undefined) return join(homedir(), ".pi", "agent");
|
|
40
|
+
return isAbsolute(configured) ? configured : resolve(configured);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function commandArgs(raw) {
|
|
44
|
+
const trimmed = raw.trim();
|
|
45
|
+
return trimmed === "" ? [] : [trimmed];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function uiFor(context) {
|
|
49
|
+
return {
|
|
50
|
+
show(lines) {
|
|
51
|
+
context.ui.notify(safeLines(lines).join("\n"), "info");
|
|
52
|
+
},
|
|
53
|
+
async confirm(question) {
|
|
54
|
+
return (await context.ui.confirm("Resume session", safeText(question)))
|
|
55
|
+
? "selected"
|
|
56
|
+
: "cancelled";
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function pickerFor(context) {
|
|
62
|
+
return {
|
|
63
|
+
async pick(listing) {
|
|
64
|
+
if (!context.hasUI) return { choice: "cancelled", selected: null };
|
|
65
|
+
|
|
66
|
+
const options = listing.rows.map((row, index) =>
|
|
67
|
+
safeText(`${index + 1}. ${formatRow(row)}`),
|
|
68
|
+
);
|
|
69
|
+
const selected = await context.ui.select(
|
|
70
|
+
"Select a session to import",
|
|
71
|
+
options,
|
|
72
|
+
);
|
|
73
|
+
const row =
|
|
74
|
+
listing.rows[selected === undefined ? -1 : options.indexOf(selected)];
|
|
75
|
+
return row === undefined
|
|
76
|
+
? { choice: "cancelled", selected: null }
|
|
77
|
+
: { choice: "selected", selected: row };
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export default function resumeFrom(pi) {
|
|
83
|
+
// Provenance is already persisted as a custom entry. Render it in the transcript,
|
|
84
|
+
// not as a widget, so it scrolls away and never occupies the footer/editor area.
|
|
85
|
+
pi.registerEntryRenderer(PROVENANCE_CUSTOM_TYPE, renderProvenance);
|
|
86
|
+
|
|
87
|
+
pi.registerCommand(COMMAND_NAME, {
|
|
88
|
+
description: DESCRIPTION,
|
|
89
|
+
async handler(rawArgs, context) {
|
|
90
|
+
const home = agentHome();
|
|
91
|
+
let command;
|
|
92
|
+
await activatePiExtension({
|
|
93
|
+
agent: "pi",
|
|
94
|
+
registrar: { registerCommand: (definition) => (command = definition) },
|
|
95
|
+
ui: uiFor(context),
|
|
96
|
+
picker: pickerFor(context),
|
|
97
|
+
home,
|
|
98
|
+
cwd: context.cwd,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
if (command === undefined) {
|
|
102
|
+
throw new Error(
|
|
103
|
+
"resume-from: extension activation did not register /resume-from.",
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
await command.run(
|
|
108
|
+
{
|
|
109
|
+
cwd: context.cwd,
|
|
110
|
+
home,
|
|
111
|
+
switchSession: (path, options) =>
|
|
112
|
+
context.switchSession(path, options),
|
|
113
|
+
},
|
|
114
|
+
commandArgs(rawArgs),
|
|
115
|
+
);
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herbertgao/pi-extensions",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.10",
|
|
4
4
|
"description": "Aggregate installer for HerbertGao-maintained Pi extensions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"extensions",
|
|
@@ -36,22 +36,22 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@ast-grep/cli": "^0.45.0",
|
|
38
38
|
"@ast-grep/napi": "^0.45.0",
|
|
39
|
-
"@czottmann/pi-automode": "1.
|
|
39
|
+
"@czottmann/pi-automode": "1.12.0",
|
|
40
40
|
"@dietrichgebert/ponytail": "4.9.0",
|
|
41
41
|
"@earendil-works/pi-coding-agent": "^0.84.2",
|
|
42
42
|
"@earendil-works/pi-tui": "^0.84.2",
|
|
43
43
|
"@effect/platform-node": "4.0.0-beta.103",
|
|
44
44
|
"@effect/platform-node-shared": "4.0.0-beta.103",
|
|
45
|
-
"@herbertgao/pi-cc-extensions": "0.8.
|
|
45
|
+
"@herbertgao/pi-cc-extensions": "0.8.58",
|
|
46
46
|
"@herbertgao/pi-copy-response": "0.2.6",
|
|
47
|
-
"@herbertgao/pi-handoff": "
|
|
47
|
+
"@herbertgao/pi-handoff": "2.0.0",
|
|
48
48
|
"@herbertgao/pi-inline-skills": "1.0.5",
|
|
49
|
-
"@herbertgao/pi-mermaid-open": "0.
|
|
50
|
-
"@herbertgao/pi-preferred-thinking": "0.
|
|
51
|
-
"@herbertgao/pi-recap": "0.4.
|
|
52
|
-
"@herbertgao/pi-rename": "0.
|
|
53
|
-
"@herbertgao/pi-stash": "0.1.
|
|
54
|
-
"@herbertgao/pi-subagents": "0.16.
|
|
49
|
+
"@herbertgao/pi-mermaid-open": "0.2.0",
|
|
50
|
+
"@herbertgao/pi-preferred-thinking": "0.4.0",
|
|
51
|
+
"@herbertgao/pi-recap": "0.4.5",
|
|
52
|
+
"@herbertgao/pi-rename": "0.5.0",
|
|
53
|
+
"@herbertgao/pi-stash": "0.1.2",
|
|
54
|
+
"@herbertgao/pi-subagents": "0.16.1",
|
|
55
55
|
"@herbertgao/pi-titlebar-spinner": "0.1.3",
|
|
56
56
|
"@juicesharp/rpiv-ask-user-question": "2.7.0",
|
|
57
57
|
"@juicesharp/rpiv-config": "^2.7.0",
|
|
@@ -73,7 +73,8 @@
|
|
|
73
73
|
"croner": "^10.0.1",
|
|
74
74
|
"cross-spawn": "^7.0.6",
|
|
75
75
|
"effect": "4.0.0-beta.103",
|
|
76
|
-
"
|
|
76
|
+
"gpt-tokenizer": "^3.4.0",
|
|
77
|
+
"grok-mermaid": "0.2.2",
|
|
77
78
|
"jiti": "^2.7.0",
|
|
78
79
|
"js-yaml": "^5.2.2",
|
|
79
80
|
"linkedom": "^0.16.0",
|
|
@@ -84,12 +85,13 @@
|
|
|
84
85
|
"pi-footer": "0.5.1",
|
|
85
86
|
"pi-lens": "4.1.1",
|
|
86
87
|
"pi-mcp-adapter": "2.27.0",
|
|
87
|
-
"pi-web-access": "0.24.
|
|
88
|
+
"pi-web-access": "0.24.2",
|
|
88
89
|
"pidusage": "^4.0.1",
|
|
89
90
|
"promise.try": "^2.0.1",
|
|
90
91
|
"qrcode-terminal": "^0.12.0",
|
|
91
92
|
"recheck": "^4.5.0",
|
|
92
93
|
"remote-pi": "0.7.0",
|
|
94
|
+
"resume-from": "0.2.0",
|
|
93
95
|
"smol-toml": "^1.6.1",
|
|
94
96
|
"strip-json-comments": "^5.0.3",
|
|
95
97
|
"turndown": "^7.2.0",
|
|
@@ -124,10 +126,11 @@
|
|
|
124
126
|
"pi-lens",
|
|
125
127
|
"pi-mcp-adapter",
|
|
126
128
|
"pi-web-access",
|
|
127
|
-
"remote-pi"
|
|
129
|
+
"remote-pi",
|
|
130
|
+
"resume-from"
|
|
128
131
|
],
|
|
129
132
|
"engines": {
|
|
130
|
-
"node": ">=
|
|
133
|
+
"node": ">=24"
|
|
131
134
|
},
|
|
132
135
|
"pi": {
|
|
133
136
|
"extensions": [
|
|
@@ -151,6 +154,7 @@
|
|
|
151
154
|
"./node_modules/pi-lens/dist/index.js",
|
|
152
155
|
"./node_modules/pi-web-access/index.ts",
|
|
153
156
|
"./node_modules/remote-pi/dist/index.js",
|
|
157
|
+
"./node_modules/resume-from/shims/pi/extensions/resume-from.js",
|
|
154
158
|
"./node_modules/@czottmann/pi-automode/extensions/auto-mode.ts",
|
|
155
159
|
"./node_modules/pi-footer/src/index.ts"
|
|
156
160
|
],
|
|
@@ -159,6 +163,7 @@
|
|
|
159
163
|
"./node_modules/@herbertgao/pi-cc-extensions/themes/cc-light.json"
|
|
160
164
|
],
|
|
161
165
|
"skills": [
|
|
166
|
+
"./node_modules/@czottmann/pi-automode/skills",
|
|
162
167
|
"./node_modules/@dietrichgebert/ponytail/skills",
|
|
163
168
|
"./node_modules/pi-mcp-adapter/skills",
|
|
164
169
|
"./node_modules/pi-lens/skills"
|