mirror of
https://github.com/backnotprop/plannotator.git
synced 2026-09-14 14:17:26 +08:00
fix(pi): bundle AI backbone into generated/ for published package
@plannotator/ai is a private workspace package unavailable on npm. Pi's dynamic import silently failed, so AI features never loaded for published package users. Now copies all AI files into generated/ai/ at build time, same pattern as the shared utils. For provenance purposes, this commit was AI assisted.
This commit is contained in:
@@ -38,11 +38,19 @@ jobs:
|
||||
- name: Generate Pi extension shared copies
|
||||
run: |
|
||||
cd apps/pi-extension
|
||||
mkdir -p generated
|
||||
mkdir -p generated generated/ai/providers
|
||||
for f in feedback-templates review-core storage draft project pr-provider pr-github pr-gitlab checklist integrations-common repo reference-common favicon resolve-file; do
|
||||
src="../../packages/shared/$f.ts"
|
||||
printf '// @generated — DO NOT EDIT. Source: packages/shared/%s.ts\n' "$f" | cat - "$src" > "generated/$f.ts"
|
||||
done
|
||||
for f in index types provider session-manager endpoints context base-session; do
|
||||
src="../../packages/ai/$f.ts"
|
||||
printf '// @generated — DO NOT EDIT. Source: packages/ai/%s.ts\n' "$f" | cat - "$src" > "generated/ai/$f.ts"
|
||||
done
|
||||
for f in claude-agent-sdk codex-sdk opencode-sdk pi-sdk pi-sdk-node pi-events; do
|
||||
src="../../packages/ai/providers/$f.ts"
|
||||
printf '// @generated — DO NOT EDIT. Source: packages/ai/providers/%s.ts\n' "$f" | cat - "$src" > "generated/ai/providers/$f.ts"
|
||||
done
|
||||
|
||||
- name: Type check
|
||||
run: bun run typecheck
|
||||
|
||||
@@ -25,11 +25,19 @@ jobs:
|
||||
- name: Generate Pi extension shared copies
|
||||
run: |
|
||||
cd apps/pi-extension
|
||||
mkdir -p generated
|
||||
mkdir -p generated generated/ai/providers
|
||||
for f in feedback-templates review-core storage draft project pr-provider pr-github pr-gitlab checklist integrations-common repo reference-common favicon resolve-file; do
|
||||
src="../../packages/shared/$f.ts"
|
||||
printf '// @generated — DO NOT EDIT. Source: packages/shared/%s.ts\n' "$f" | cat - "$src" > "generated/$f.ts"
|
||||
done
|
||||
for f in index types provider session-manager endpoints context base-session; do
|
||||
src="../../packages/ai/$f.ts"
|
||||
printf '// @generated — DO NOT EDIT. Source: packages/ai/%s.ts\n' "$f" | cat - "$src" > "generated/ai/$f.ts"
|
||||
done
|
||||
for f in claude-agent-sdk codex-sdk opencode-sdk pi-sdk pi-sdk-node pi-events; do
|
||||
src="../../packages/ai/providers/$f.ts"
|
||||
printf '// @generated — DO NOT EDIT. Source: packages/ai/providers/%s.ts\n' "$f" | cat - "$src" > "generated/ai/providers/$f.ts"
|
||||
done
|
||||
|
||||
- name: Type check
|
||||
run: bun run typecheck
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@plannotator/pi-extension",
|
||||
"version": "0.15.0",
|
||||
"version": "0.15.1",
|
||||
"type": "module",
|
||||
"description": "Plannotator extension for Pi coding agent - interactive plan review with visual annotation",
|
||||
"author": "backnotprop",
|
||||
@@ -28,7 +28,7 @@
|
||||
"review-editor.html"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "cp ../hook/dist/index.html plannotator.html && cp ../hook/dist/review.html review-editor.html && mkdir -p generated && for f in feedback-templates review-core storage draft project pr-provider pr-github pr-gitlab checklist integrations-common repo reference-common favicon resolve-file; do src=\"../../packages/shared/$f.ts\"; printf '// @generated — DO NOT EDIT. Source: packages/shared/%s.ts\\n' \"$f\" | cat - \"$src\" > \"generated/$f.ts\"; done",
|
||||
"build": "cp ../hook/dist/index.html plannotator.html && cp ../hook/dist/review.html review-editor.html && mkdir -p generated && for f in feedback-templates review-core storage draft project pr-provider pr-github pr-gitlab checklist integrations-common repo reference-common favicon resolve-file; do src=\"../../packages/shared/$f.ts\"; printf '// @generated — DO NOT EDIT. Source: packages/shared/%s.ts\\n' \"$f\" | cat - \"$src\" > \"generated/$f.ts\"; done && mkdir -p generated/ai/providers && for f in index types provider session-manager endpoints context base-session; do src=\"../../packages/ai/$f.ts\"; printf '// @generated — DO NOT EDIT. Source: packages/ai/%s.ts\\n' \"$f\" | cat - \"$src\" > \"generated/ai/$f.ts\"; done && for f in claude-agent-sdk codex-sdk opencode-sdk pi-sdk pi-sdk-node pi-events; do src=\"../../packages/ai/providers/$f.ts\"; printf '// @generated — DO NOT EDIT. Source: packages/ai/providers/%s.ts\\n' \"$f\" | cat - \"$src\" > \"generated/ai/providers/$f.ts\"; done",
|
||||
"prepublishOnly": "cd ../.. && bun run build:pi"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -156,7 +156,7 @@ export async function startReviewServer(options: {
|
||||
let aiSessionManager: { disposeAll: () => void } | null = null;
|
||||
let aiRegistry: { disposeAll: () => void } | null = null;
|
||||
try {
|
||||
const ai = await import("@plannotator/ai");
|
||||
const ai = await import("../generated/ai/index.js");
|
||||
const registry = new ai.ProviderRegistry();
|
||||
const sessionManager = new ai.SessionManager();
|
||||
|
||||
@@ -177,7 +177,7 @@ export async function startReviewServer(options: {
|
||||
// Claude Agent SDK
|
||||
try {
|
||||
// @ts-ignore — dynamic import; Bun-only types resolved at runtime
|
||||
await import("@plannotator/ai/providers/claude-agent-sdk");
|
||||
await import("../generated/ai/providers/claude-agent-sdk.js");
|
||||
const claudePath = whichCmd("claude");
|
||||
const provider = await ai.createProvider({
|
||||
type: "claude-agent-sdk",
|
||||
@@ -192,7 +192,7 @@ export async function startReviewServer(options: {
|
||||
// Codex SDK
|
||||
try {
|
||||
// @ts-ignore — dynamic import; Bun-only types resolved at runtime
|
||||
await import("@plannotator/ai/providers/codex-sdk");
|
||||
await import("../generated/ai/providers/codex-sdk.js");
|
||||
await import("@openai/codex-sdk");
|
||||
const codexPath = whichCmd("codex");
|
||||
const provider = await ai.createProvider({
|
||||
@@ -207,7 +207,7 @@ export async function startReviewServer(options: {
|
||||
|
||||
// Pi SDK (Node.js variant)
|
||||
try {
|
||||
await import("@plannotator/ai/providers/pi-sdk-node");
|
||||
await import("../generated/ai/providers/pi-sdk-node.js");
|
||||
const piPath = whichCmd("pi");
|
||||
if (piPath) {
|
||||
const provider = await ai.createProvider({
|
||||
@@ -229,7 +229,7 @@ export async function startReviewServer(options: {
|
||||
// OpenCode SDK
|
||||
try {
|
||||
// @ts-ignore — dynamic import; Bun-only types resolved at runtime
|
||||
await import("@plannotator/ai/providers/opencode-sdk");
|
||||
await import("../generated/ai/providers/opencode-sdk.js");
|
||||
const opencodePath = whichCmd("opencode");
|
||||
if (opencodePath) {
|
||||
const provider = await ai.createProvider({
|
||||
|
||||
Reference in New Issue
Block a user