fix: use Gitea-compatible package scope
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# @_jb/pi-copy-all
|
||||
# @jbcode/pi-copy-all
|
||||
|
||||
Pi extension that adds `/copy-all` for copying the current conversation as Markdown.
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-copy-all
|
||||
pi install npm:@jbcode/pi-copy-all
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-copy-all",
|
||||
"name": "@jbcode/pi-copy-all",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi command for copying the current conversation as Markdown.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-dictate",
|
||||
"name": "@jbcode/pi-dictate",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi extension for local Linux voice dictation through a Unix socket service.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# @_jb/pi-effort-controls
|
||||
# @jbcode/pi-effort-controls
|
||||
|
||||
Pi extension that adds `/effort` reasoning selection and `/fast` priority-mode controls.
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-effort-controls
|
||||
pi install npm:@jbcode/pi-effort-controls
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-effort-controls",
|
||||
"name": "@jbcode/pi-effort-controls",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi commands for reasoning effort and priority-mode controls.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# @_jb/pi-file-search
|
||||
# @jbcode/pi-file-search
|
||||
|
||||
Pi extension providing structured `fd` file search and `rg` text search tools.
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-file-search
|
||||
pi install npm:@jbcode/pi-file-search
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-file-search",
|
||||
"name": "@jbcode/pi-file-search",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi file and text search tools backed by fd and ripgrep.",
|
||||
"type": "module",
|
||||
|
||||
@@ -197,7 +197,7 @@ Status display is configured via `config.json` in the extension directory (copy
|
||||
## Install
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-interactive-subagents
|
||||
pi install npm:@jbcode/pi-interactive-subagents
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-interactive-subagents",
|
||||
"name": "@jbcode/pi-interactive-subagents",
|
||||
"version": "3.7.2",
|
||||
"description": "Interactive subagents for Pi — spawn, orchestrate, and manage sub-agent sessions in Orca, Herdr or tmux.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# @_jb/pi-lm-studio
|
||||
# @jbcode/pi-lm-studio
|
||||
|
||||
Pi provider extension for a local LM Studio server at `http://127.0.0.1:1234/v1`.
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-lm-studio
|
||||
pi install npm:@jbcode/pi-lm-studio
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-lm-studio",
|
||||
"name": "@jbcode/pi-lm-studio",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi provider registration for a local LM Studio server.",
|
||||
"type": "module",
|
||||
|
||||
@@ -13,7 +13,7 @@ A native Pi extension that coordinates trusted personal policies after workspace
|
||||
Installation is a separate, user-level mutation and is **not** performed by this repository's tests:
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-native-hooks
|
||||
pi install npm:@jbcode/pi-native-hooks
|
||||
```
|
||||
|
||||
For monorepo development, use the curated link policy or load `extensions/native-hooks/extensions/pi-native-hooks/index.ts` directly.
|
||||
|
||||
@@ -113,7 +113,7 @@ The loader must:
|
||||
7. isolate a throwing/invalid module so other policies still load, while surfacing the exact file and error; and
|
||||
8. reload policies only when Pi recreates the extension on `/reload` or session replacement.
|
||||
|
||||
The package exposes `@_jb/pi-native-hooks/policy` type declarations. An authorized initializer writes a personal `tsconfig.json` with a path mapping to the installed package so policies can use `import type` plus `satisfies` without a runtime package import. Runtime validation remains authoritative because type checking can be skipped or stale.
|
||||
The package exposes `@jbcode/pi-native-hooks/policy` type declarations. An authorized initializer writes a personal `tsconfig.json` with a path mapping to the installed package so policies can use `import type` plus `satisfies` without a runtime package import. Runtime validation remains authoritative because type checking can be skipped or stale.
|
||||
|
||||
Suggested personal layout:
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { VerificationPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { VerificationPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const manifests = new Set(["package.json", "bun.lock", "tsconfig.json"]);
|
||||
const behavior = (path: string) => /^(extensions|scripts|services|skills|config)\//.test(path) || manifests.has(path);
|
||||
const types = (path: string) => /\.tsx?$/.test(path) || manifests.has(path);
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
import type { VerificationPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { VerificationPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const manifests = new Set(["package.json", "bun.lock", "tsconfig.json"]);
|
||||
const behavior = (path: string) => /^(extensions|src|tests|examples|skills)\//.test(path) || manifests.has(path);
|
||||
const types = (path: string) => /\.tsx?$/.test(path) || manifests.has(path);
|
||||
export default { kind: "verification", id: "pi-native-hooks-verification", project: { matches: (project) => project.packageName === "@_jb/pi-native-hooks" }, requirements: [
|
||||
export default { kind: "verification", id: "pi-native-hooks-verification", project: { matches: (project) => project.packageName === "@jbcode/pi-native-hooks" }, requirements: [
|
||||
{ id: "tests", command: "bun run test", cwd: "project-root", affects: behavior },
|
||||
{ id: "typecheck", command: "bun run typecheck", cwd: "project-root", affects: types },
|
||||
] } satisfies VerificationPolicy;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const ruleIds = new Set(["typescript-no-dynamic-import-ts", "typescript-no-dynamic-import-tsx"]);
|
||||
export default {
|
||||
kind: "diagnostic", id: "typescript-no-dynamic-import", analyzerKeys: ["ast-grep:personal"],
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const ruleIds = new Set(["typescript-no-non-null-assertion-ts", "typescript-no-non-null-assertion-tsx"]);
|
||||
export default {
|
||||
kind: "diagnostic", id: "typescript-no-non-null-assertion", analyzerKeys: ["ast-grep:personal"],
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"allowImportingTsExtensions": true,
|
||||
"paths": { "@_jb/pi-native-hooks/policy": ["__PI_NATIVE_HOOKS_PACKAGE_ROOT__/src/policy.ts"] }
|
||||
"paths": { "@jbcode/pi-native-hooks/policy": ["__PI_NATIVE_HOOKS_PACKAGE_ROOT__/src/policy.ts"] }
|
||||
},
|
||||
"include": ["policies/*.ts"]
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { VerificationPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { VerificationPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const manifests = new Set(["package.json", "bun.lock", "tsconfig.json"]);
|
||||
const behavior = (path: string) => /^(extensions|scripts|services|skills|config)\//.test(path) || manifests.has(path);
|
||||
const types = (path: string) => /\.tsx?$/.test(path) || manifests.has(path);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { VerificationPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { VerificationPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const manifests = new Set(["package.json", "bun.lock", "tsconfig.json"]);
|
||||
const behavior = (path: string) => /^(extensions|src|tests|examples|skills)\//.test(path) || manifests.has(path);
|
||||
const types = (path: string) => /\.tsx?$/.test(path) || manifests.has(path);
|
||||
export default { kind: "verification", id: "pi-native-hooks-verification", project: { matches: (project) => project.packageName === "@_jb/pi-native-hooks" }, requirements: [
|
||||
export default { kind: "verification", id: "pi-native-hooks-verification", project: { matches: (project) => project.packageName === "@jbcode/pi-native-hooks" }, requirements: [
|
||||
{ id: "tests", command: "bun run test", cwd: "project-root", affects: behavior },
|
||||
{ id: "typecheck", command: "bun run typecheck", cwd: "project-root", affects: types },
|
||||
] } satisfies VerificationPolicy;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const ruleIds = new Set(["typescript-no-dynamic-import-ts", "typescript-no-dynamic-import-tsx"]);
|
||||
export default {
|
||||
kind: "diagnostic", id: "typescript-no-dynamic-import", analyzerKeys: ["ast-grep:personal"],
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const ruleIds = new Set(["typescript-no-non-null-assertion-ts", "typescript-no-non-null-assertion-tsx"]);
|
||||
export default {
|
||||
kind: "diagnostic", id: "typescript-no-non-null-assertion", analyzerKeys: ["ast-grep:personal"],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-native-hooks",
|
||||
"name": "@jbcode/pi-native-hooks",
|
||||
"version": "0.1.0",
|
||||
"description": "Native Pi hooks runtime for shared diagnostics and verification gates.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Policy contracts
|
||||
|
||||
The authoritative declarations are exported by `@_jb/pi-native-hooks/policy` from `src/policy.ts`. Do not copy them into personal config.
|
||||
The authoritative declarations are exported by `@jbcode/pi-native-hooks/policy` from `src/policy.ts`. Do not copy them into personal config.
|
||||
|
||||
A diagnostic policy declares `kind`, a unique `id`, analyzer keys, `appliesTo`, and a pure `evaluate`. `evaluate` receives readonly normalized snapshots and a process-free policy context. Filter findings by exact rule ID and return bounded guidance plus the supported suppression form.
|
||||
|
||||
@@ -9,7 +9,7 @@ A verification policy declares a project matcher and exact requirements. Each re
|
||||
Use:
|
||||
|
||||
```ts
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
export default { /* ... */ } satisfies DiagnosticPolicy;
|
||||
```
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { VerificationPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { VerificationPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const manifests = new Set(["package.json", "bun.lock", "tsconfig.json"]);
|
||||
const behavior = (path: string) => /^(extensions|scripts|services|skills|config)\//.test(path) || manifests.has(path);
|
||||
const types = (path: string) => /\.tsx?$/.test(path) || manifests.has(path);
|
||||
|
||||
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
import type { VerificationPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { VerificationPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const manifests = new Set(["package.json", "bun.lock", "tsconfig.json"]);
|
||||
const behavior = (path: string) => /^(extensions|src|tests|examples|skills)\//.test(path) || manifests.has(path);
|
||||
const types = (path: string) => /\.tsx?$/.test(path) || manifests.has(path);
|
||||
export default { kind: "verification", id: "pi-native-hooks-verification", project: { matches: (project) => project.packageName === "@_jb/pi-native-hooks" }, requirements: [
|
||||
export default { kind: "verification", id: "pi-native-hooks-verification", project: { matches: (project) => project.packageName === "@jbcode/pi-native-hooks" }, requirements: [
|
||||
{ id: "tests", command: "bun run test", cwd: "project-root", affects: behavior },
|
||||
{ id: "typecheck", command: "bun run typecheck", cwd: "project-root", affects: types },
|
||||
] } satisfies VerificationPolicy;
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const ruleIds = new Set(["typescript-no-dynamic-import-ts", "typescript-no-dynamic-import-tsx"]);
|
||||
export default {
|
||||
kind: "diagnostic", id: "typescript-no-dynamic-import", analyzerKeys: ["ast-grep:personal"],
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
import type { DiagnosticPolicy } from "@_jb/pi-native-hooks/policy";
|
||||
import type { DiagnosticPolicy } from "@jbcode/pi-native-hooks/policy";
|
||||
const ruleIds = new Set(["typescript-no-non-null-assertion-ts", "typescript-no-non-null-assertion-tsx"]);
|
||||
export default {
|
||||
kind: "diagnostic", id: "typescript-no-non-null-assertion", analyzerKeys: ["ast-grep:personal"],
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"allowImportingTsExtensions": true,
|
||||
"paths": { "@_jb/pi-native-hooks/policy": ["__PI_NATIVE_HOOKS_PACKAGE_ROOT__/src/policy.ts"] }
|
||||
"paths": { "@jbcode/pi-native-hooks/policy": ["__PI_NATIVE_HOOKS_PACKAGE_ROOT__/src/policy.ts"] }
|
||||
},
|
||||
"include": ["policies/*.ts"]
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-prompt-snippets",
|
||||
"name": "@jbcode/pi-prompt-snippets",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi extension for toggling reusable per-message prompt snippets.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# @_jb/pi-shared
|
||||
# @jbcode/pi-shared
|
||||
|
||||
Shared runtime utilities used by the `@_jb` Pi extension packages. This is a library package and does not register a Pi extension by itself.
|
||||
Shared runtime utilities used by the `@jbcode` Pi extension packages. This is a library package and does not register a Pi extension by itself.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@_jb/pi-shared",
|
||||
"name": "@jbcode/pi-shared",
|
||||
"version": "0.1.0",
|
||||
"description": "Shared runtime utilities for @_jb Pi extensions.",
|
||||
"description": "Shared runtime utilities for @jbcode Pi extensions.",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"engines": { "node": ">=22.19.0" },
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# @_jb/pi-subagents
|
||||
# @jbcode/pi-subagents
|
||||
|
||||
Pi extension for background subagents using Pi, Claude Code, and Codex backends.
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-subagents
|
||||
pi install npm:@jbcode/pi-subagents
|
||||
```
|
||||
|
||||
Do not enable it alongside another extension that registers the same subagent tools.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-subagents",
|
||||
"name": "@jbcode/pi-subagents",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi extension for background subagents across Pi, Claude Code, and Codex backends.",
|
||||
"type": "module",
|
||||
@@ -9,7 +9,7 @@
|
||||
"files": ["index.ts", "src", "docs", "README.md", "LICENSE", "!**/*.test.ts"],
|
||||
"pi": { "extensions": ["./index.ts"] },
|
||||
"dependencies": {
|
||||
"@_jb/pi-shared": "workspace:^",
|
||||
"@jbcode/pi-shared": "workspace:^",
|
||||
"@anthropic-ai/claude-agent-sdk": "catalog:",
|
||||
"effect": "catalog:"
|
||||
},
|
||||
|
||||
@@ -37,8 +37,8 @@ import {
|
||||
createChildResources,
|
||||
shutdownAndDisposeChildSession,
|
||||
waitForChildOperation,
|
||||
} from "@_jb/pi-shared/child-session";
|
||||
import { createToolCallTimeoutGuard } from "@_jb/pi-shared/tool-call-timeout";
|
||||
} from "@jbcode/pi-shared/child-session";
|
||||
import { createToolCallTimeoutGuard } from "@jbcode/pi-shared/tool-call-timeout";
|
||||
|
||||
// --- Model + effort resolution -----------------------------------------------
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Hierarchical, session-local task tracking for [Pi](https://pi.dev), with atomic
|
||||
Install the latest version from npm:
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-todo-herdr
|
||||
pi install npm:@jbcode/pi-todo-herdr
|
||||
```
|
||||
|
||||
Then start Pi. If Pi is already running, use `/reload` to load the extension.
|
||||
@@ -39,14 +39,14 @@ Then start Pi. If Pi is already running, use `/reload` to load the extension.
|
||||
To try the package for one run without installing it:
|
||||
|
||||
```bash
|
||||
pi -e npm:@_jb/pi-todo-herdr
|
||||
pi -e npm:@jbcode/pi-todo-herdr
|
||||
```
|
||||
|
||||
Update or remove it with Pi's package commands:
|
||||
|
||||
```bash
|
||||
pi update npm:@_jb/pi-todo-herdr
|
||||
pi remove npm:@_jb/pi-todo-herdr
|
||||
pi update npm:@jbcode/pi-todo-herdr
|
||||
pi remove npm:@jbcode/pi-todo-herdr
|
||||
```
|
||||
|
||||
## Usage
|
||||
@@ -138,8 +138,8 @@ Development uses the monorepo's pinned Bun toolchain and shared catalog.
|
||||
|
||||
```bash
|
||||
bun install --frozen-lockfile
|
||||
bun run --filter '@_jb/pi-todo-herdr' typecheck
|
||||
bun run --filter '@_jb/pi-todo-herdr' test
|
||||
bun run --filter '@jbcode/pi-todo-herdr' typecheck
|
||||
bun run --filter '@jbcode/pi-todo-herdr' test
|
||||
(cd extensions/todo-herdr && bun pm pack --destination ../../dist)
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-todo-herdr",
|
||||
"name": "@jbcode/pi-todo-herdr",
|
||||
"version": "0.2.5",
|
||||
"description": "Hierarchical task tools for Pi with a live widget and Herdr sidebar integration.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# @_jb/pi-update
|
||||
# @jbcode/pi-update
|
||||
|
||||
Pi extension providing controlled Pi and package update commands.
|
||||
|
||||
```bash
|
||||
pi install npm:@_jb/pi-update
|
||||
pi install npm:@jbcode/pi-update
|
||||
```
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-update",
|
||||
"name": "@jbcode/pi-update",
|
||||
"version": "0.1.0",
|
||||
"description": "Pi extension for controlled Pi and package updates.",
|
||||
"type": "module",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# workflow
|
||||
|
||||
Persisted, gated feature workflows for Pi. The private Bun workspace retains the npm package name `@_jb/pi-workflow` under the repository's scoped package convention.
|
||||
Persisted, gated feature workflows for Pi. The private Bun workspace retains the npm package name `@jbcode/pi-workflow` under the repository's scoped package convention.
|
||||
|
||||
This workspace is currently private and must not be published. Its remaining runtime dependencies on the `_workflows` reference implementation must first be merged into this directory; see `docs/todos.md` at the repository root.
|
||||
|
||||
@@ -16,7 +16,7 @@ import { Type } from "typebox";
|
||||
import {
|
||||
createChildResources,
|
||||
resolveStandaloneChildProjectTrust,
|
||||
} from "@_jb/pi-shared/child-session";
|
||||
} from "@jbcode/pi-shared/child-session";
|
||||
import {
|
||||
runAgent,
|
||||
type AgentOutcome,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "@_jb/pi-workflow",
|
||||
"name": "@jbcode/pi-workflow",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"description": "Private workspace for the deferred Pi workflow extension migration.",
|
||||
@@ -9,7 +9,7 @@
|
||||
"keywords": ["pi-package", "pi-extension", "workflow"],
|
||||
"pi": { "extensions": ["./index.ts"] },
|
||||
"dependencies": {
|
||||
"@_jb/pi-shared": "workspace:^"
|
||||
"@jbcode/pi-shared": "workspace:^"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@earendil-works/pi-ai": "catalog:pi-peer",
|
||||
|
||||
Reference in New Issue
Block a user