@phyzess/pappra 0.1.0-beta.13 → 0.1.0-beta.18
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 +134 -15
- package/assets/integrations/skills/pappra/SKILL.md +28 -7
- package/assets/integrations/skills/pappra/references/collaboration.md +633 -0
- package/assets/integrations/skills/pappra/references/environment.md +360 -0
- package/assets/integrations/skills/pappra/references/hosts.md +20 -0
- package/assets/integrations/skills/pappra/references/operations.md +36 -5
- package/dist/adapters/pi/recovery-extension.d.ts +65 -0
- package/dist/adapters/pi/recovery-extension.js +238 -0
- package/dist/adapters/pi/session-transition-extension.d.ts +30 -0
- package/dist/adapters/pi/session-transition-extension.js +265 -0
- package/dist/app/automatic-handoff-events.d.ts +26 -0
- package/dist/app/automatic-handoff-events.js +134 -0
- package/dist/app/bounded-file.d.ts +2 -0
- package/dist/app/bounded-file.js +2 -0
- package/dist/app/capability-evidence/claude.d.ts +37 -0
- package/dist/app/capability-evidence/claude.js +206 -0
- package/dist/app/capability-evidence/codex.d.ts +35 -0
- package/dist/app/capability-evidence/codex.js +193 -0
- package/dist/app/capability-evidence/index.d.ts +33 -0
- package/dist/app/capability-evidence/index.js +117 -0
- package/dist/app/capability-evidence/pi.d.ts +73 -0
- package/dist/app/capability-evidence/pi.js +669 -0
- package/dist/app/capability-evidence/shared.d.ts +69 -0
- package/dist/app/capability-evidence/shared.js +195 -0
- package/dist/app/collab-auto-handoff.d.ts +55 -0
- package/dist/app/collab-auto-handoff.js +384 -0
- package/dist/app/collab-bindings.d.ts +57 -0
- package/dist/app/collab-bindings.js +1006 -0
- package/dist/app/collab-bootstrap-transport.d.ts +163 -0
- package/dist/app/collab-bootstrap-transport.js +769 -0
- package/dist/app/collab-bootstrap.d.ts +137 -0
- package/dist/app/collab-bootstrap.js +3455 -0
- package/dist/app/collab-handoff.d.ts +12 -0
- package/dist/app/collab-handoff.js +511 -0
- package/dist/app/collab-messages.d.ts +2 -0
- package/dist/app/collab-messages.js +2 -0
- package/dist/app/collab-notify.d.ts +156 -0
- package/dist/app/collab-notify.js +1208 -0
- package/dist/app/collab-preflight.d.ts +34 -0
- package/dist/app/collab-preflight.js +96 -0
- package/dist/app/collab-recovery-executor.d.ts +161 -0
- package/dist/app/collab-recovery-executor.js +1153 -0
- package/dist/app/collab-recovery-projection.d.ts +103 -0
- package/dist/app/collab-recovery-projection.js +659 -0
- package/dist/app/collab-recovery.d.ts +25 -0
- package/dist/app/collab-recovery.js +429 -0
- package/dist/app/collab-resources.d.ts +16 -0
- package/dist/app/collab-resources.js +278 -0
- package/dist/app/collab-role-events.d.ts +22 -0
- package/dist/app/collab-role-events.js +329 -0
- package/dist/app/collab-role-orchestration.d.ts +53 -0
- package/dist/app/collab-role-orchestration.js +601 -0
- package/dist/app/collab-role-plan.d.ts +81 -0
- package/dist/app/collab-role-plan.js +504 -0
- package/dist/app/collab-role-repair.d.ts +109 -0
- package/dist/app/collab-role-repair.js +821 -0
- package/dist/app/collab-rollover.d.ts +263 -0
- package/dist/app/collab-rollover.js +1112 -0
- package/dist/app/collab-route.d.ts +64 -0
- package/dist/app/collab-route.js +240 -0
- package/dist/app/collab-session-transition.d.ts +221 -0
- package/dist/app/collab-session-transition.js +3334 -0
- package/dist/app/collab-state.d.ts +7 -0
- package/dist/app/collab-state.js +162 -0
- package/dist/app/collab-task-store.d.ts +22 -0
- package/dist/app/collab-task-store.js +204 -0
- package/dist/app/collab-work-execution.d.ts +127 -0
- package/dist/app/collab-work-execution.js +1027 -0
- package/dist/app/collab-work-plan.d.ts +87 -0
- package/dist/app/collab-work-plan.js +437 -0
- package/dist/app/collaboration.d.ts +8 -2
- package/dist/app/collaboration.js +101 -12
- package/dist/app/doctor.js +108 -5
- package/dist/app/host-mcp.js +34 -8
- package/dist/app/host-probe.js +4 -4
- package/dist/app/init.d.ts +58 -4
- package/dist/app/init.js +768 -155
- package/dist/app/managed-pi-bootstrap-admission.d.ts +14 -0
- package/dist/app/managed-pi-bootstrap-admission.js +104 -0
- package/dist/app/managed-pi-bootstrap-refresh.d.ts +10 -0
- package/dist/app/managed-pi-bootstrap-refresh.js +78 -0
- package/dist/app/managed-pi-delivery.d.ts +8 -0
- package/dist/app/managed-pi-delivery.js +110 -0
- package/dist/app/managed-pi-handoff-receiver.d.ts +15 -0
- package/dist/app/managed-pi-handoff-receiver.js +263 -0
- package/dist/app/managed-pi-handoff-reference.d.ts +3 -0
- package/dist/app/managed-pi-handoff-reference.js +60 -0
- package/dist/app/managed-pi-herdr.d.ts +21 -0
- package/dist/app/managed-pi-herdr.js +185 -0
- package/dist/app/managed-pi-initial-admission.d.ts +28 -0
- package/dist/app/managed-pi-initial-admission.js +416 -0
- package/dist/app/managed-pi-initial-launch.d.ts +5 -0
- package/dist/app/managed-pi-initial-launch.js +61 -0
- package/dist/app/managed-pi-native-observation.d.ts +36 -0
- package/dist/app/managed-pi-native-observation.js +191 -0
- package/dist/app/managed-pi-readiness.d.ts +29 -0
- package/dist/app/managed-pi-readiness.js +288 -0
- package/dist/app/managed-pi-repair-stop.d.ts +21 -0
- package/dist/app/managed-pi-repair-stop.js +371 -0
- package/dist/app/managed-pi-resume-admission.d.ts +32 -0
- package/dist/app/managed-pi-resume-admission.js +618 -0
- package/dist/app/managed-pi-retirement.d.ts +28 -0
- package/dist/app/managed-pi-retirement.js +112 -0
- package/dist/app/managed-pi-sdk-control.d.ts +7 -0
- package/dist/app/managed-pi-sdk-control.js +169 -0
- package/dist/app/managed-pi-sdk-runtime.d.ts +3 -0
- package/dist/app/managed-pi-sdk-runtime.js +483 -0
- package/dist/app/managed-pi-source-admission.d.ts +14 -0
- package/dist/app/managed-pi-source-admission.js +323 -0
- package/dist/app/managed-pi-transition-host.d.ts +36 -0
- package/dist/app/managed-pi-transition-host.js +292 -0
- package/dist/app/managed-pi.d.ts +54 -0
- package/dist/app/managed-pi.js +248 -0
- package/dist/app/shell-readiness.d.ts +66 -0
- package/dist/app/shell-readiness.js +368 -0
- package/dist/app/task-pin.d.ts +2 -23
- package/dist/app/task-pin.js +2 -113
- package/dist/cli/commands/collaboration-binding.d.ts +13 -0
- package/dist/cli/commands/collaboration-binding.js +118 -0
- package/dist/cli/commands/collaboration-bootstrap.d.ts +10 -0
- package/dist/cli/commands/collaboration-bootstrap.js +84 -0
- package/dist/cli/commands/collaboration-capabilities.d.ts +13 -0
- package/dist/cli/commands/collaboration-capabilities.js +127 -0
- package/dist/cli/commands/collaboration-handoff.d.ts +13 -0
- package/dist/cli/commands/collaboration-handoff.js +102 -0
- package/dist/cli/commands/collaboration-message.d.ts +17 -0
- package/dist/cli/commands/collaboration-message.js +177 -0
- package/dist/cli/commands/collaboration-plan.d.ts +8 -0
- package/dist/cli/commands/collaboration-plan.js +108 -0
- package/dist/cli/commands/collaboration-preflight.d.ts +10 -0
- package/dist/cli/commands/collaboration-preflight.js +167 -0
- package/dist/cli/commands/collaboration-recovery-run.d.ts +46 -0
- package/dist/cli/commands/collaboration-recovery-run.js +224 -0
- package/dist/cli/commands/collaboration-recovery.d.ts +11 -0
- package/dist/cli/commands/collaboration-recovery.js +104 -0
- package/dist/cli/commands/collaboration-resources.d.ts +11 -0
- package/dist/cli/commands/collaboration-resources.js +96 -0
- package/dist/cli/commands/collaboration-role-plan.d.ts +9 -0
- package/dist/cli/commands/collaboration-role-plan.js +69 -0
- package/dist/cli/commands/collaboration-role-run.d.ts +11 -0
- package/dist/cli/commands/collaboration-role-run.js +128 -0
- package/dist/cli/commands/collaboration-rollover.d.ts +10 -0
- package/dist/cli/commands/collaboration-rollover.js +103 -0
- package/dist/cli/commands/collaboration-state.d.ts +10 -0
- package/dist/cli/commands/collaboration-state.js +96 -0
- package/dist/cli/commands/collaboration-transition.d.ts +10 -0
- package/dist/cli/commands/collaboration-transition.js +75 -0
- package/dist/cli/commands/collaboration-work-run.d.ts +34 -0
- package/dist/cli/commands/collaboration-work-run.js +178 -0
- package/dist/cli/commands/collaboration.d.ts +4 -0
- package/dist/cli/commands/collaboration.js +39 -4
- package/dist/cli/commands/continuity.js +2 -6
- package/dist/cli/commands/docs.d.ts +2 -0
- package/dist/cli/commands/docs.js +89 -15
- package/dist/cli/commands/host.d.ts +7 -1
- package/dist/cli/commands/host.js +122 -7
- package/dist/cli/commands/init.d.ts +20 -3
- package/dist/cli/commands/init.js +897 -232
- package/dist/cli/commands/mcp.d.ts +1 -0
- package/dist/cli/commands/mcp.js +11 -5
- package/dist/cli/commands/repair.d.ts +12 -0
- package/dist/cli/commands/repair.js +41 -0
- package/dist/cli/commands/runtime.d.ts +1 -1
- package/dist/cli/commands/runtime.js +139 -38
- package/dist/cli/commands/session.d.ts +7 -0
- package/dist/cli/commands/session.js +82 -0
- package/dist/cli/commands/task.js +19 -5
- package/dist/cli/run.js +866 -24
- package/dist/code/identity.d.ts +7 -0
- package/dist/code/identity.js +7 -3
- package/dist/code/registration.js +7 -0
- package/dist/code/service.d.ts +9 -0
- package/dist/code/service.js +16 -3
- package/dist/code/text.js +19 -7
- package/dist/collab/admission.d.ts +91 -66
- package/dist/collab/admission.js +21 -6
- package/dist/collab/canonical.d.ts +1 -1
- package/dist/collab/canonical.js +44 -3
- package/dist/collab/envelope.d.ts +2 -2
- package/dist/collab/envelope.js +12 -12
- package/dist/collab/first-work.d.ts +3 -0
- package/dist/collab/first-work.js +15 -0
- package/dist/collab/handoff.d.ts +16 -0
- package/dist/collab/handoff.js +39 -5
- package/dist/collab/index.d.ts +97 -1
- package/dist/collab/index.js +9 -1
- package/dist/collab/messages.js +126 -3
- package/dist/collab/persisted-messages.d.ts +123 -0
- package/dist/collab/persisted-messages.js +496 -0
- package/dist/collab/preflight.d.ts +1 -1
- package/dist/collab/resources.d.ts +13 -3
- package/dist/collab/resources.js +37 -6
- package/dist/collab/rollover.d.ts +311 -0
- package/dist/collab/rollover.js +1024 -0
- package/dist/collab/store.d.ts +1 -0
- package/dist/collab/store.js +1 -4
- package/dist/collab/types.d.ts +2 -354
- package/dist/collab/validation.d.ts +2 -10
- package/dist/collab/validation.js +2 -303
- package/dist/collab/work-plan.d.ts +105 -0
- package/dist/collab/work-plan.js +843 -0
- package/dist/continuity/context.d.ts +11 -2
- package/dist/continuity/context.js +100 -13
- package/dist/continuity/handoff-bundle.d.ts +296 -0
- package/dist/continuity/handoff-bundle.js +477 -0
- package/dist/continuity/index.d.ts +2 -0
- package/dist/continuity/index.js +1 -0
- package/dist/continuity/paths.js +10 -2
- package/dist/continuity/service.js +91 -15
- package/dist/continuity/task-pin.d.ts +24 -0
- package/dist/continuity/task-pin.js +590 -0
- package/dist/doctor.d.ts +1 -0
- package/dist/doctor.js +6 -0
- package/dist/experimental/index.d.ts +13 -0
- package/dist/experimental/index.js +25 -0
- package/dist/experimental/pi.d.ts +4 -0
- package/dist/experimental/pi.js +12 -0
- package/dist/hosts/claude/native.js +1 -1
- package/dist/hosts/codex/native.js +1 -1
- package/dist/hosts/codex/protocol.js +1 -1
- package/dist/hosts/integration/bootstrap-config.d.ts +58 -0
- package/dist/hosts/integration/bootstrap-config.js +254 -0
- package/dist/hosts/integration/bundle-export.d.ts +44 -0
- package/dist/hosts/integration/bundle-export.js +366 -3
- package/dist/hosts/integration/bundle.js +3 -0
- package/dist/hosts/integration/hook.js +36 -9
- package/dist/hosts/integration/pappra-bootstrap-extension.mjs +80 -0
- package/dist/hosts/integration/pappra-extension-runtime.mjs +59 -24631
- package/dist/hosts/integration/pappra-hook.mjs +61 -24749
- package/dist/hosts/integration/pappra-recovery-extension.mjs +259 -0
- package/dist/hosts/integration/pappra-session-transition-extension.mjs +276 -0
- package/dist/hosts/integration/pi-bootstrap-extension.d.ts +36 -0
- package/dist/hosts/integration/pi-bootstrap-extension.js +101 -0
- package/dist/hosts/integration/pi-bootstrap-guard.d.ts +125 -0
- package/dist/hosts/integration/pi-bootstrap-guard.js +438 -0
- package/dist/hosts/integration/pi-bootstrap-runtime.d.ts +63 -0
- package/dist/hosts/integration/pi-bootstrap-runtime.js +223 -0
- package/dist/hosts/integration/pi-native-events.d.ts +112 -0
- package/dist/hosts/integration/pi-native-events.js +348 -0
- package/dist/hosts/integration/pi-rollover-extension.d.ts +166 -0
- package/dist/hosts/integration/pi-rollover-extension.js +431 -0
- package/dist/hosts/integration/recovery-config.d.ts +48 -0
- package/dist/hosts/integration/recovery-config.js +117 -0
- package/dist/hosts/integration/service.d.ts +6 -1
- package/dist/hosts/integration/service.js +485 -35
- package/dist/hosts/integration/support.d.ts +7 -0
- package/dist/hosts/integration/support.js +9 -1
- package/dist/hosts/integration/templates.d.ts +3 -0
- package/dist/hosts/integration/templates.js +26 -3
- package/dist/hosts/pi/managed-host-identity.d.ts +2 -0
- package/dist/hosts/pi/managed-host-identity.js +40 -0
- package/dist/hosts/pi/managed-provider-diagnostics.d.ts +6 -0
- package/dist/hosts/pi/managed-provider-diagnostics.js +184 -0
- package/dist/hosts/pi/managed-sdk-session.d.ts +335 -0
- package/dist/hosts/pi/managed-sdk-session.js +1639 -0
- package/dist/hosts/pi/managed-session-extension.d.ts +20 -0
- package/dist/hosts/pi/managed-session-extension.js +84 -0
- package/dist/hosts/pi/managed-session.d.ts +177 -0
- package/dist/hosts/pi/managed-session.js +1557 -0
- package/dist/hosts/pi/protocol.js +1 -1
- package/dist/hosts/pi/query-result.js +1 -1
- package/dist/hosts/pi/resume-capability.d.ts +41 -0
- package/dist/hosts/pi/resume-capability.js +33 -0
- package/dist/hosts/pi/rpc.d.ts +182 -134
- package/dist/hosts/pi/rpc.js +230 -37
- package/dist/hosts/pilot.d.ts +97 -74
- package/dist/hosts/pilot.js +5 -1
- package/dist/hosts/version.d.ts +3 -0
- package/dist/hosts/version.js +18 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/infra/bounded-file.d.ts +19 -0
- package/dist/infra/bounded-file.js +66 -0
- package/dist/infra/fs.js +10 -2
- package/dist/infra/git.d.ts +29 -0
- package/dist/infra/git.js +45 -9
- package/dist/infra/json-property.d.ts +2 -0
- package/dist/infra/json-property.js +69 -0
- package/dist/infra/json.d.ts +4 -0
- package/dist/infra/json.js +24 -0
- package/dist/infra/owned-process-group.js +1 -1
- package/dist/infra/private-lock.d.ts +16 -0
- package/dist/infra/private-lock.js +148 -0
- package/dist/infra/private-state.d.ts +7 -0
- package/dist/infra/private-state.js +146 -0
- package/dist/infra/process-identity.d.ts +12 -0
- package/dist/infra/process-identity.js +142 -0
- package/dist/infra/validation.d.ts +5 -0
- package/dist/infra/validation.js +15 -0
- package/dist/init.d.ts +1 -0
- package/dist/init.js +6 -0
- package/dist/install/apply.d.ts +9 -1
- package/dist/install/apply.js +176 -12
- package/dist/install/dependencies.d.ts +38 -0
- package/dist/install/dependencies.js +282 -0
- package/dist/install/ownership.js +30 -1
- package/dist/install/references.d.ts +31 -0
- package/dist/install/references.js +208 -0
- package/dist/install/repair.d.ts +37 -0
- package/dist/install/repair.js +798 -0
- package/dist/install/reset-local.d.ts +16 -0
- package/dist/install/reset-local.js +304 -0
- package/dist/install/rollback.d.ts +3 -0
- package/dist/install/rollback.js +9 -3
- package/dist/install/runtime.d.ts +10 -6
- package/dist/install/runtime.js +299 -59
- package/dist/install/source-fingerprint.d.ts +2 -0
- package/dist/install/source-fingerprint.js +103 -0
- package/dist/knowledge/catalog.d.ts +1 -0
- package/dist/knowledge/catalog.js +143 -10
- package/dist/knowledge/journal.js +17 -7
- package/dist/knowledge/paths.js +2 -1
- package/dist/knowledge/refs.js +4 -0
- package/dist/knowledge/register-batch.d.ts +4 -0
- package/dist/knowledge/register-batch.js +225 -0
- package/dist/knowledge/relocate.d.ts +5 -0
- package/dist/knowledge/relocate.js +92 -0
- package/dist/knowledge/scan.js +103 -47
- package/dist/knowledge/service.d.ts +3 -0
- package/dist/knowledge/service.js +33 -1
- package/dist/knowledge/write.d.ts +4 -1
- package/dist/knowledge/write.js +1 -1
- package/dist/mcp/server.d.ts +4 -2
- package/dist/mcp/server.js +87 -136
- package/dist/schemas/collaboration-state-validation.d.ts +6 -0
- package/dist/schemas/collaboration-state-validation.js +342 -0
- package/dist/schemas/collaboration-state.d.ts +436 -0
- package/dist/schemas/collaboration-state.js +1 -0
- package/dist/schemas/collaboration.d.ts +335 -0
- package/dist/schemas/collaboration.js +272 -0
- package/dist/schemas/continuity.d.ts +8 -0
- package/dist/schemas/continuity.js +13 -3
- package/dist/schemas/doctor.d.ts +1 -0
- package/dist/schemas/doctor.js +1 -0
- package/dist/schemas/document.d.ts +61 -0
- package/dist/schemas/document.js +9 -0
- package/dist/schemas/errors.d.ts +1 -0
- package/dist/schemas/errors.js +1 -0
- package/dist/schemas/host.d.ts +24 -0
- package/dist/schemas/host.js +19 -0
- package/dist/schemas/install.d.ts +8 -2
- package/dist/schemas/install.js +11 -1
- package/dist/schemas/managed-pi-execution.d.ts +16 -0
- package/dist/schemas/managed-pi-execution.js +2 -0
- package/dist/schemas/outcome.d.ts +9 -5
- package/dist/workspace/config-file.js +1 -3
- package/dist/workspace/documents.js +12 -2
- package/dist/workspace/repositories.d.ts +7 -0
- package/dist/workspace/repositories.js +14 -5
- package/package.json +35 -35
- package/skills/pappra/SKILL.md +28 -7
- package/skills/pappra/references/collaboration.md +633 -0
- package/skills/pappra/references/environment.md +360 -0
- package/skills/pappra/references/hosts.md +20 -0
- package/skills/pappra/references/operations.md +36 -5
- package/dist/app/collab-from.d.ts +0 -35
- package/dist/app/collab-from.js +0 -84
package/README.md
CHANGED
|
@@ -20,23 +20,32 @@ curl -fsSL https://raw.githubusercontent.com/phyzess/pappra/main/examples/minima
|
|
|
20
20
|
npx @phyzess/pappra@beta init --config ./minimal-choices.json --json
|
|
21
21
|
|
|
22
22
|
# Apply the same choices. Apply also installs and binds a durable runtime copy,
|
|
23
|
-
# so this converges with exit code 0; add --no-runtime to
|
|
23
|
+
# so this converges with exit code 0; add --no-runtime to skip that work and
|
|
24
|
+
# leave a still-required runtime action pending.
|
|
24
25
|
npx @phyzess/pappra@beta init --config ./minimal-choices.json --apply --json
|
|
25
26
|
npx @phyzess/pappra@beta doctor --json
|
|
26
27
|
```
|
|
27
28
|
|
|
28
29
|
`examples/minimal-choices.json` is complete for a host-free, no-graph, single-directory workspace. The example intentionally has no repositories or optional hosts.
|
|
29
30
|
|
|
30
|
-
For a non-interactive derived setup, `npx @phyzess/pappra@beta init --yes --apply --json` derives repositories, knowledge sources, code engine, validation commands, excludes and hosts from discovery. `--print-choices` prints
|
|
31
|
+
For a non-interactive derived setup, `npx @phyzess/pappra@beta init --yes --apply --json` derives repositories, knowledge sources, code engine, validation commands, excludes and hosts from discovery; with an existing workspace plus `--reconfigure` it keeps the current represented selections instead of deriving new ones, and `--print-choices --reconfigure` prints those current choices. `--print-choices` normally prints the derived `pappra/init-choices/1` document and writes nothing, and `init --json` without selections returns the discovery candidates plus the suggested document. JSON mode never prompts.
|
|
31
32
|
|
|
32
33
|
Development from a checkout works the same way: `pnpm install --frozen-lockfile`, `pnpm build`, then invoke `dist/cli/main.js` by absolute path from the target workspace.
|
|
33
34
|
|
|
34
|
-
`init
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
`
|
|
39
|
-
|
|
35
|
+
`init` never writes during planning. `--apply` writes the planned files through a managed
|
|
36
|
+
journal. By default it then verifies an existing runtime for the workspace's recorded runtime
|
|
37
|
+
version and reuses it when the manifest, package contents, executable and smoke check all pass;
|
|
38
|
+
otherwise it packs and installs the current package under the Pappra data directory and binds
|
|
39
|
+
that runtime in `machine.json`. So an npx/dlx bootstrap survives cache eviction. If the current
|
|
40
|
+
package version differs from the workspace target, a previously installed verified target
|
|
41
|
+
runtime may still be reused; when none is reusable the configuration is applied and runtime
|
|
42
|
+
setup fails afterwards with a nonzero exit. Pass `--no-runtime` to suppress runtime verification,
|
|
43
|
+
installation and binding for that invocation. When a runtime action is still required afterwards,
|
|
44
|
+
the configuration is applied, that action stays pending, and the result is `ok:true` with
|
|
45
|
+
`status:"external-actions-pending"` and exit `0` for the requested configuration-only work.
|
|
46
|
+
A workspace that already has a bound runtime for its target and needs no file changes can instead
|
|
47
|
+
report `ok:true`, apply status `no-changes` and exit `0`; `initComplete` then stays `false`,
|
|
48
|
+
because that invocation verified no runtime.
|
|
40
49
|
|
|
41
50
|
For a new workspace or a new machine, `pappra onboard --dry-run --json` shows the plan and
|
|
42
51
|
the host version matrix; `pappra onboard --yes --apply-host --json` applies config, runtime
|
|
@@ -51,12 +60,101 @@ npx @phyzess/pappra@beta runtime status --json
|
|
|
51
60
|
npx @phyzess/pappra@beta runtime verify --json
|
|
52
61
|
```
|
|
53
62
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
Runtime content hashes now use UTF-8 byte ordering, independent of system locale.
|
|
64
|
+
Beta.15 uses `pappra/runtime-manifest/2` with an explicit digest scheme and does not
|
|
65
|
+
migrate old beta state. Unsupported formats are reported as incompatible, separately
|
|
66
|
+
from corrupted content. Use the current package with `init --reconfigure --apply` to
|
|
67
|
+
initialize its runtime; existing state is preserved until explicitly removed.
|
|
68
|
+
Verification never rewrites a manifest to adopt an unexpected digest.
|
|
69
|
+
Runtime removal refuses unknown cross-workspace references;
|
|
70
|
+
`--force` is an explicit override after checking other workspaces.
|
|
71
|
+
|
|
72
|
+
Interrupted installations can be inspected and recovered explicitly:
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
pappra repair --root /path/to/workspace --json
|
|
76
|
+
pappra repair --root /path/to/workspace --apply
|
|
77
|
+
pappra repair --runtime-version 0.1.0 --json
|
|
78
|
+
pappra repair --runtime-version 0.1.0 --apply
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`repair` finds the nearest workspace from a subdirectory and previews incomplete journals plus
|
|
82
|
+
install, knowledge and checkpoint writer locks. Add `--install-id <uuid>`
|
|
83
|
+
to select one incomplete journal. `--apply` reclaims a lock only when its recorded owner is
|
|
84
|
+
provably dead, rolls back files with verified ownership, and restores journaled reconfiguration
|
|
85
|
+
backups. For runtimes it removes only journal-owned staging, or finalizes an already published
|
|
86
|
+
copy whose manifest and contents still match, without executing the runtime. Live or unknown
|
|
87
|
+
owners, modified files, invalid journals and unproven backup paths are preserved and reported.
|
|
88
|
+
Reconfiguration holds the same workspace lock and journal through replacements and creations.
|
|
89
|
+
Files created before their inode reached the journal remain in place, with an explicit
|
|
90
|
+
preservation audit; their ownership is not adopted. Lock publication is atomic, so a new
|
|
91
|
+
writer never exposes an empty named owner record. `doctor` reports dead or unknown writers
|
|
92
|
+
and points to the same repair surface.
|
|
93
|
+
|
|
94
|
+
For copied or moved beta workspaces, stop every affected writer before explicitly starting
|
|
95
|
+
fresh local state; this preserves the old bytes instead of migrating machine bindings:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
pappra repair --reset-local --json # read-only plan
|
|
99
|
+
pappra repair --reset-local --all-writers-stopped --apply
|
|
100
|
+
pappra init --yes --apply
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The old tree remains under ignored `.pappra/local-archive/<id>`. Reset has its own recoverable
|
|
104
|
+
journal and refuses verified live owners. The stopped-writers flag is an operator assertion
|
|
105
|
+
for unknown/imported ownership, not process stop proof. For a single malformed or empty lock,
|
|
106
|
+
`repair --quarantine-unowned-locks --apply` provides the same explicit stop-all-writers
|
|
107
|
+
precondition and preserves the lock plus a receipt in private quarantine. Never use either
|
|
108
|
+
escape while a writer is alive or paused.
|
|
109
|
+
|
|
110
|
+
Every first private-state write creates `.pappra/local/.gitignore` with a final `*`
|
|
111
|
+
rule, including writes performed without init. Checkpoint payloads retain tracked
|
|
112
|
+
diffs, but untracked files contribute only their path, object type and content digest;
|
|
113
|
+
their contents and symlink target text are not copied into the checkpoint.
|
|
114
|
+
|
|
115
|
+
A workspace that already has a valid `.pappra/workspace.json` is never rewritten silently: a
|
|
116
|
+
plain `init` reuses it and only plans missing local state. `--reconfigure` is the explicit opt-in
|
|
117
|
+
that re-derives `workspace.json` from the current selections, and it preserves the workspace
|
|
118
|
+
identity, `extensions`, `continuity`, custom validation entries with their original checkout
|
|
119
|
+
binding, and existing local machine settings; the previous file is backed up under
|
|
120
|
+
`.pappra/local/backups`. `--yes --reconfigure` therefore keeps the represented selections instead
|
|
121
|
+
of re-deriving them from discovery, while `--config <file> --reconfigure` applies explicitly
|
|
122
|
+
supplied edits.
|
|
123
|
+
|
|
124
|
+
Knowledge sources and the document destination are different settings. `knowledge.sources` lists
|
|
125
|
+
existing rules and documents that stay in place and are only registered later by
|
|
126
|
+
`pappra docs scan --apply`; `knowledge.newDocuments` is merely the destination for future
|
|
127
|
+
authored documents and is not created by `init`. Apply also reports advisory `nextActions`:
|
|
128
|
+
`pappra code prepare` for a selected code engine and `pappra docs scan --apply` to register
|
|
129
|
+
documents from the configured knowledge sources.
|
|
130
|
+
|
|
131
|
+
### Interactive init
|
|
132
|
+
|
|
133
|
+
A TTY opens the full wizard only when selections are actually needed: a plain `init` in a
|
|
134
|
+
workspace that already has a valid configuration reuses it and asks only for missing local
|
|
135
|
+
state, and `--reconfigure` is what opens the editor. The workspace name, new-document
|
|
136
|
+
destination and excludes are editable text fields seeded with the current or derived value, so
|
|
137
|
+
the suggested value is visible and can be changed before submitting; an invalid entry is
|
|
138
|
+
reported at that field and re-asked. Repository and knowledge sections pre-select the current
|
|
139
|
+
choices and offer **Add existing repository…** and **Add existing knowledge file or folder…**.
|
|
140
|
+
That action inspects only the workspace-relative path you type: it checks portability,
|
|
141
|
+
canonical containment, workspace exclusions, nested-workspace boundaries, unsafe symlinks and,
|
|
142
|
+
for repositories, that the path is the exact Git checkout root. It never scans ancestors or the
|
|
143
|
+
home directory, never reads document bodies, and empty knowledge folders are valid sources.
|
|
144
|
+
Advanced preferences are opt-in (`Keep current advanced settings` is the default), sections after
|
|
145
|
+
the first offer `Back` alongside `Review selections`, the review screen can reopen one section, and
|
|
146
|
+
`Cancel` (also Ctrl-C) discards the draft before anything is written. Graph/symbols/preparation
|
|
147
|
+
choices, validation candidates and host declarations are recorded preferences only: `init` does not
|
|
148
|
+
install, index, execute or wire them.
|
|
149
|
+
|
|
150
|
+
A TTY run that collected selections without `--apply` prints the plan and then asks one
|
|
151
|
+
confirmation when configuration writes are planned; declining exits `130` with no files written.
|
|
152
|
+
`--apply` never prompts, `--config` without `--apply` stays a preview even on a TTY, and an empty
|
|
153
|
+
read-only plan performs no runtime work and asks nothing. `--print-choices` prints the
|
|
154
|
+
`pappra/init-choices/1` document and writes nothing, `--config` reads that document,
|
|
155
|
+
`--yes`/`--no-interactive` derive selections non-interactively, and `--json` never prompts.
|
|
156
|
+
Exit `0` means the requested work completed. `--no-runtime` deliberately defers runtime work
|
|
157
|
+
and keeps `initComplete:false`; a failure in a requested runtime step returns nonzero.
|
|
60
158
|
|
|
61
159
|
Optional examples have prerequisites rather than generated files: code-graph and
|
|
62
160
|
host commands require the selected external CLI/support, and collaboration
|
|
@@ -64,6 +162,22 @@ requires an explicit controller. `--controller pi-rpc` is the host-directs/Pi-ex
|
|
|
64
162
|
path, verified end to end against Pi 1.3.0; see [Pi RPC collaboration](docs/pi-rpc.md).
|
|
65
163
|
They are not needed for the core workflow above.
|
|
66
164
|
|
|
165
|
+
For a fresh controller-owned visible Pi TUI, use `pappra session plan` then
|
|
166
|
+
`pappra session start --config <absolute-file>`. The controller preserves normal
|
|
167
|
+
Pi configuration, selects an explicit OpenRouter model, journals terminal input
|
|
168
|
+
and exposes a private status/fence/stop endpoint. See
|
|
169
|
+
[managed Pi sessions](docs/managed-pi-session.md). Opt-in SDK mode pins Pi 1.4.0
|
|
170
|
+
and observes native queues and dialogs within its owned runtime. External writers
|
|
171
|
+
and unowned descendants remain outside that proof. [Controlled resume](docs/managed-pi-resume.md)
|
|
172
|
+
checks process death and current task authority before reopening an idle session;
|
|
173
|
+
[provider diagnostics](docs/managed-provider-diagnostics.md) retain redacted transport details.
|
|
174
|
+
Threshold-driven checkpoint
|
|
175
|
+
and bundle capture are available through [automatic handoff](docs/automatic-handoff.md);
|
|
176
|
+
ownership transfer still requires the existing supported transition contract.
|
|
177
|
+
[Role plans](docs/collaboration-role-plan.md) support an optional planner before
|
|
178
|
+
independent writers and a final reviewer; [event orchestration](docs/collaboration-role-orchestration.md)
|
|
179
|
+
dispatches ready assignments and aggregates authoritative results.
|
|
180
|
+
|
|
67
181
|
## What it manages
|
|
68
182
|
|
|
69
183
|
- **Workspace configuration:** `.pappra/workspace.json` and checkout-local `.pappra/local/machine.json`.
|
|
@@ -95,7 +209,12 @@ The check runs the source policy, type checks, formatting, deterministic tests a
|
|
|
95
209
|
|
|
96
210
|
## Status and limits
|
|
97
211
|
|
|
98
|
-
Pappra is development software (`0.1.0-beta.
|
|
212
|
+
Pappra is development software (`0.1.0-beta.14`) published as `@phyzess/pappra` under the `beta` dist-tag. Releases are published from GitHub Actions with npm trusted publishing (OIDC), so no npm token is stored in this repository. Pin either the moving `beta` tag or an exact version such as `@phyzess/pappra@0.1.0-beta.14`, because pre-release versions are never republished.
|
|
213
|
+
|
|
214
|
+
The deterministic runner removes inherited `PAPPRA_*` controls and isolates global/system
|
|
215
|
+
Git configuration. Test cases inject required Pappra variables explicitly. Native provider
|
|
216
|
+
acceptance is run separately against its selected test file, rather than enabled by ambient
|
|
217
|
+
opt-in flags during `pnpm check`.
|
|
99
218
|
|
|
100
219
|
The deterministic suite covers synthetic workspaces, fixtures and local process boundaries. It does not establish real-model behavior, native host callability on every platform, CodeGraph completeness, Windows/Linux parity or production performance. A host adapter version pin is an observed support claim, not proof that a particular native installation will load or run correctly.
|
|
101
220
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pappra
|
|
3
|
-
description: Use Pappra workspace knowledge, checkpoint/resume,
|
|
3
|
+
description: Use Pappra workspace knowledge, checkpoint/resume, selected-repository code intelligence, and task-scoped cross-harness collaboration from any supported coding agent. Use when a task needs durable handoff context, workspace documents, bounded code navigation, or a visible/direct multi-agent collaboration workflow.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pappra
|
|
@@ -20,15 +20,28 @@ index, or new writer.
|
|
|
20
20
|
the workspace selected by the current root. Never infer a workspace from an
|
|
21
21
|
unrelated session. `pappra docs scan --apply` registers discovered documents;
|
|
22
22
|
`pappra runtime install --apply` keeps a durable copy of this package.
|
|
23
|
-
5. For
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
5. For task-scoped collaboration, read `references/environment.md` first to
|
|
24
|
+
choose direct versus visible Herdr operation, bootstrap or reuse the
|
|
25
|
+
receiving instance, and bind its routing identity. Then read
|
|
26
|
+
`references/collaboration.md` and build the shared strict
|
|
27
|
+
`pappra/collaboration-goal/1` from explicit choices. The installed CLI accepts
|
|
28
|
+
`pappra collab prepare --goal <file> --domain-root <dir>`; it has no preview
|
|
29
|
+
mode, so it mutates task state, claims resources and registers the initial
|
|
30
|
+
ASSIGN once authorized. MCP `collab_prepare` accepts `{ domainRoot, goal }`
|
|
31
|
+
and rejects the retired flat objective form. Neither prepares a capability
|
|
32
|
+
card; derive and preflight actual runtime evidence separately, and notify the
|
|
33
|
+
already-registered ASSIGN rather than sending a duplicate. Visible peers are
|
|
34
|
+
the default collaboration channel; the owned Pi `pi-rpc` run remains a
|
|
35
|
+
separate explicit option, and fixtures are explicit only. Never turn prose
|
|
36
|
+
into identity, approval, or capability claims.
|
|
29
37
|
|
|
30
38
|
## One-request collaboration
|
|
31
39
|
|
|
40
|
+
Visible collaboration uses `references/environment.md` plus the persisted
|
|
41
|
+
message/notify loop in `references/collaboration.md`. The owned `collab run`
|
|
42
|
+
flow described here is the separate Pi RPC option, not a substitute for a
|
|
43
|
+
visible participant.
|
|
44
|
+
|
|
32
45
|
`pappra collab prepare --goal <file> --domain-root <dir>` requires an explicit
|
|
33
46
|
shared domain. It validates the canonical domain/tasks/task/private namespace
|
|
34
47
|
before writing any task metadata and again around each write, so a task-root or
|
|
@@ -61,6 +74,14 @@ No approval is auto-answered, no cancel is inferred from an acknowledgement, and
|
|
|
61
74
|
arbitrary PID is adopted. Do not launch a model or real user session without
|
|
62
75
|
the task's explicit authorization.
|
|
63
76
|
|
|
77
|
+
## Recovery and parallel work
|
|
78
|
+
|
|
79
|
+
Use `pappra collab work-run --request <abs-request.json>` for a read-only plan and add `--apply` only when the existing assignments, current capability cards, coordinator authority, resource claims and visible participant binding are ready. Work-run notifies only registered participants; it does not create sessions, merge, accept reports, or replay ambiguous delivery.
|
|
80
|
+
|
|
81
|
+
Use `pappra collab recovery-run --request <abs-request.json>` to inspect one guarded recovery action; add `--apply` only with exact current session/cwd/harness/pane and a digest-pinned task-local binding. Recovery is a bounded single wake, not generic outage recovery: there is no reconnect trigger, hidden worker, approval automation, or replay after an unknown effect.
|
|
82
|
+
|
|
83
|
+
For an explicitly selected Pi package, `pappra host bundle --host pi --out <new-private-dir> --recovery-config <abs-private-config.json>` exports the recovery extension and its private sibling config. Add `--transition-extension` to export the separate `/collab-transition` command extension. Exports do not install, trust, enable, load, launch, or transfer anything; review and install packages explicitly. Native quiescence and interactive Pi session takeover remain unsupported, and task retirement is not native session archive.
|
|
84
|
+
|
|
64
85
|
## Boundaries
|
|
65
86
|
|
|
66
87
|
- Hooks are local and bounded. They do not read transcripts, run commands,
|