mirror of
https://github.com/backnotprop/plannotator.git
synced 2026-09-14 14:17:26 +08:00
89f0b6628e
Phase 2 of live app annotation: full parity on Pi over one shared implementation instead of drifting copies. - Extract every proxy decision into packages/shared/live-proxy-core.ts (HTML injector state machine, loopback/Host/Origin predicates, CSP/X-Frame-Options policy, redirect rewrite, WS origin gate, bridge assembly, liveAppDraftIdentity) and the CLI probe + live-mode messages into packages/shared/live-probe.ts. packages/server/live-proxy.ts is now a thin Bun transport over the core; its test suite passes unmodified. - Add packages/shared/live-proxy-node.ts, the node:http transport the Pi extension runs: streaming request/response piping through the shared injector, and WebSocket (HMR) passthrough that replays the client's handshake upstream over raw TCP and pipes the sockets byte-for-byte. Transport tests run the proxy in a real node child process, because Bun's node:http shim drops writes to an upgrade event's socket. - Wire Pi: /plannotator-annotate probes loopback URLs live-first with the shared probe (same 3s timeout, same <500 gate, same messages), recognizes --app/--static via parseAnnotateArgs's liveFlags opt-in (OpenCode deliberately does not opt in), and serves mode annotate-app from serverAnnotate.ts with the shared per-target draft identity, live sessions excluded from history/submissions, the remote hard-off throw, and guarded live-proxy shutdown. - Vendor live-proxy-core/live-probe/live-proxy-node plus the dependency-free bridge-script constants to generated/. - Docs: AGENTS.md phase-gate passages, marketing annotate page, Pi README.
100 lines
4.0 KiB
JSON
100 lines
4.0 KiB
JSON
{
|
|
"name": "@plannotator/shared",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"exports": {
|
|
"./agents": "./agents.ts",
|
|
"./annotatable": "./annotatable.ts",
|
|
"./compress": "./compress.ts",
|
|
"./crypto": "./crypto.ts",
|
|
"./diff-paths": "./diff-paths.ts",
|
|
"./feedback-templates": "./feedback-templates.ts",
|
|
"./jj-core": "./jj-core.ts",
|
|
"./gitbutler-core": "./gitbutler-core.ts",
|
|
"./review-core": "./review-core.ts",
|
|
"./commit-history": "./commit-history.ts",
|
|
"./review-workspace": "./review-workspace.ts",
|
|
"./review-workspace-node": "./review-workspace-node.ts",
|
|
"./review-args": "./review-args.ts",
|
|
"./vcs-core": "./vcs-core.ts",
|
|
"./checklist": "./checklist.ts",
|
|
"./types": "./types.ts",
|
|
"./pr-types": "./pr-types.ts",
|
|
"./pr-context-live": "./pr-context-live.ts",
|
|
"./pr-artifact-document": "./pr-artifact-document.ts",
|
|
"./pr-provider": "./pr-provider.ts",
|
|
"./pr-stack": "./pr-stack.ts",
|
|
"./project": "./project.ts",
|
|
"./storage": "./storage.ts",
|
|
"./draft": "./draft.ts",
|
|
"./annotate-history": "./annotate-history.ts",
|
|
"./html-diff": "./html-diff.ts",
|
|
"./integrations-common": "./integrations-common.ts",
|
|
"./repo": "./repo.ts",
|
|
"./reference-common": "./reference-common.ts",
|
|
"./file-browser-watch-core": "./file-browser-watch-core.ts",
|
|
"./favicon": "./favicon.ts",
|
|
"./code-file": "./code-file.ts",
|
|
"./resolve-file": "./resolve-file.ts",
|
|
"./annotate-reference-roots-node": "./annotate-reference-roots-node.ts",
|
|
"./extract-code-paths": "./extract-code-paths.ts",
|
|
"./external-annotation": "./external-annotation.ts",
|
|
"./agent-jobs": "./agent-jobs.ts",
|
|
"./agent-terminal": "./agent-terminal.ts",
|
|
"./config": "./config.ts",
|
|
"./data-dir": "./data-dir.ts",
|
|
"./prompts": "./prompts.ts",
|
|
"./improvement-hooks": "./improvement-hooks.ts",
|
|
"./pfm-reminder": "./pfm-reminder.ts",
|
|
"./worktree": "./worktree.ts",
|
|
"./worktree-pool": "./worktree-pool.ts",
|
|
"./html-to-markdown": "./html-to-markdown.ts",
|
|
"./url-to-markdown": "./url-to-markdown.ts",
|
|
"./html-assets": "./html-assets.ts",
|
|
"./html-assets-node": "./html-assets-node.ts",
|
|
"./tour": "./tour.ts",
|
|
"./guide": "./guide.ts",
|
|
"./guide-instructions-store": "./guide-instructions-store.ts",
|
|
"./guide-store": "./guide-store.ts",
|
|
"./annotate-args": "./annotate-args.ts",
|
|
"./annotate-target": "./annotate-target.ts",
|
|
"./at-reference": "./at-reference.ts",
|
|
"./code-nav": "./code-nav.ts",
|
|
"./goal-setup": "./goal-setup.ts",
|
|
"./semantic-diff": "./semantic-diff.ts",
|
|
"./semantic-diff-types": "./semantic-diff-types.ts",
|
|
"./call-flow-types": "./call-flow-types.ts",
|
|
"./call-flow-languages": "./call-flow-languages.ts",
|
|
"./call-flow": "./call-flow.ts",
|
|
"./call-flow-install": "./call-flow-install.ts",
|
|
"./single-flight": "./single-flight.ts",
|
|
"./source-save": "./source-save.ts",
|
|
"./source-save-node": "./source-save-node.ts",
|
|
"./browser-paths": "./browser-paths.ts",
|
|
"./workspace-status": "./workspace-status.ts",
|
|
"./open-in-apps": "./open-in-apps.ts",
|
|
"./port-range": "./port-range.ts",
|
|
"./tailscale": "./tailscale.ts",
|
|
"./plan-review-lifecycle": "./plan-review-lifecycle.ts",
|
|
"./review-profiles": "./review-profiles.ts",
|
|
"./commit-avatars": "./commit-avatars.ts",
|
|
"./generated-files": "./generated-files.ts",
|
|
"./annotate-client-lease": "./annotate-client-lease.ts",
|
|
"./annotate-decision": "./annotate-decision.ts",
|
|
"./archive-mode": "./archive-mode.ts",
|
|
"./guide-format": "./guide-format.ts",
|
|
"./guide-viewer-manifest": "./guide-viewer-manifest.ts",
|
|
"./guide-format-fixtures": "./guide-format-fixtures.ts",
|
|
"./live-proxy-core": "./live-proxy-core.ts",
|
|
"./live-probe": "./live-probe.ts",
|
|
"./live-proxy-node": "./live-proxy-node.ts"
|
|
},
|
|
"dependencies": {
|
|
"@joplin/turndown-plugin-gfm": "^1.0.64",
|
|
"@plannotator/core": "workspace:*",
|
|
"chokidar": "^5.0.0",
|
|
"parse5": "^7.3.0",
|
|
"turndown": "^7.2.4"
|
|
}
|
|
}
|