pi-code 1.0.45 → 1.0.47
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
CHANGED
|
@@ -69,7 +69,8 @@ Vendored bases (`question`, `notify`, `status-line`) come from pi's MIT example
|
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
71
|
npm install
|
|
72
|
-
npm run check # biome + strict tsc + vitest, the whole gate
|
|
72
|
+
npm run check # biome + strict tsc + knip + vitest with coverage floors, the whole gate
|
|
73
|
+
scripts/e2e-smoke.sh # headless deterministic smoke: wire payload against a dead-port model, no real model (also runs in CI)
|
|
73
74
|
scripts/e2e.sh # quick smoke of the real pi TUI via tmux (needs a working model)
|
|
74
75
|
scripts/e2e-full.sh # every README feature end to end, model turns included (5-15 min)
|
|
75
76
|
scripts/record-demos.sh # re-records demos/*.tape with vhs at low thinking
|
package/extensions/commands.ts
CHANGED
|
@@ -45,7 +45,7 @@ import type { ExtensionAPI, ExtensionCommandContext } from '@earendil-works/pi-c
|
|
|
45
45
|
import { Type } from 'typebox'
|
|
46
46
|
|
|
47
47
|
import { matchesBashRules } from './internal/bash-rules.js'
|
|
48
|
-
import { type CommandExec, type DiscoveredCommand, discoverCommandFiles, expandDynamicContent, type ParsedCommand, parseCommandFile, resolvePowershellBinary, spanExec, substituteArgsDetailed, substituteVars } from './internal/command-file.js'
|
|
48
|
+
import { type CommandExec, type DiscoveredCommand, discoverCommandFiles, expandDynamicContent, type ParsedCommand, type PathRuleTool, parseCommandFile, resolvePowershellBinary, spanExec, substituteArgsDetailed, substituteVars } from './internal/command-file.js'
|
|
49
49
|
import { claudeConfigDir } from './internal/config-dir.js'
|
|
50
50
|
import { managedSettingsFile, readManagedSettings } from './internal/managed-settings.js'
|
|
51
51
|
import { capForContext } from './internal/output-guard.js'
|
|
@@ -56,8 +56,6 @@ import { ancestorDirs, repoRoot } from './internal/project-root.js'
|
|
|
56
56
|
import { claudeSettingsChain } from './internal/settings-chain.js'
|
|
57
57
|
import { createTurnOverride } from './internal/turn-override.js'
|
|
58
58
|
|
|
59
|
-
type PathRuleTool = 'read' | 'edit' | 'write'
|
|
60
|
-
|
|
61
59
|
/** Just enough of pi's Model to match and restore; getAvailable returns these. */
|
|
62
60
|
interface ModelLike {
|
|
63
61
|
id: string
|
|
@@ -307,7 +307,7 @@ export function parseCommandFile(content: string): ParsedCommand {
|
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
/** Split a raw argument string, keeping quoted runs together. */
|
|
310
|
-
|
|
310
|
+
function splitArgs(args: string): string[] {
|
|
311
311
|
const out: string[] = []
|
|
312
312
|
const pattern = /"([^"]*)"|'([^']*)'|(\S+)/g
|
|
313
313
|
let match = pattern.exec(args)
|
|
@@ -120,7 +120,7 @@ export interface TodoItem {
|
|
|
120
120
|
completed: boolean
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
function cleanStepText(text: string): string {
|
|
124
124
|
let cleaned = text
|
|
125
125
|
.replace(/\*{1,2}([^*]+)\*{1,2}/g, '$1') // Remove bold/italic
|
|
126
126
|
.replace(/`([^`]+)`/g, '$1') // Remove code
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-code",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.47",
|
|
4
4
|
"description": "Claude Code experience for the pi coding agent: reads your .claude config (rules, commands, skills, hooks, output styles, MCP servers, agents) and adds todo, checkpoints, memory, web, and subagents",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi",
|
|
@@ -41,8 +41,9 @@
|
|
|
41
41
|
"biome:fix": "npx --no-install @biomejs/biome check --write .",
|
|
42
42
|
"type:check": "tsc --noEmit",
|
|
43
43
|
"test": "vitest run --coverage",
|
|
44
|
-
"check": "npm run biome && npm run type:check && npm run test",
|
|
45
|
-
"prepublishOnly": "npm run check"
|
|
44
|
+
"check": "npm run biome && npm run type:check && npm run knip && npm run test",
|
|
45
|
+
"prepublishOnly": "npm run check",
|
|
46
|
+
"knip": "npx --no-install knip"
|
|
46
47
|
},
|
|
47
48
|
"engines": {
|
|
48
49
|
"node": ">=22.19"
|
|
@@ -68,6 +69,8 @@
|
|
|
68
69
|
"@earendil-works/pi-tui": "^0.84.2",
|
|
69
70
|
"@types/node": "^26.1.1",
|
|
70
71
|
"@vitest/coverage-v8": "^4.1.10",
|
|
72
|
+
"fast-check": "^4.9.0",
|
|
73
|
+
"knip": "^6.34.0",
|
|
71
74
|
"typescript": "^7.0.2",
|
|
72
75
|
"vitest": "^4.1.10"
|
|
73
76
|
}
|