@phyzess/pappra 0.1.0-beta.14 → 0.1.0-beta.19
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 +133 -14
- package/assets/integrations/skills/pappra/SKILL.md +56 -7
- package/assets/integrations/skills/pappra/references/collaboration.md +646 -0
- package/assets/integrations/skills/pappra/references/environment.md +367 -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-request.d.ts +50 -0
- package/dist/app/collab-session-transition-request.js +339 -0
- package/dist/app/collab-session-transition-validation.d.ts +19 -0
- package/dist/app/collab-session-transition-validation.js +44 -0
- package/dist/app/collab-session-transition.d.ts +181 -0
- package/dist/app/collab-session-transition.js +2970 -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 +104 -3
- 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/collaboration-router.d.ts +17 -0
- package/dist/cli/collaboration-router.js +604 -0
- 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/options.d.ts +806 -0
- package/dist/cli/options.js +293 -0
- package/dist/cli/run.js +280 -310
- 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 +90 -67
- 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 +37 -35
- package/skills/pappra/SKILL.md +56 -7
- package/skills/pappra/references/collaboration.md +646 -0
- package/skills/pappra/references/environment.md +367 -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
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import { homedir } from 'node:os';
|
|
2
|
-
import { join, resolve } from 'node:path';
|
|
2
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
3
3
|
import { HostIntegrationService } from '../../hosts/integration/service.js';
|
|
4
|
-
import { exportHostPluginBundle } from '../../hosts/integration/bundle-export.js';
|
|
4
|
+
import { exportHostPluginBundle, } from '../../hosts/integration/bundle-export.js';
|
|
5
|
+
import { readPiBootstrapConfig } from '../../hosts/integration/bootstrap-config.js';
|
|
6
|
+
import { readPiRecoveryConfig } from '../../hosts/integration/recovery-config.js';
|
|
5
7
|
import { applyHostMcp, planHostMcp, verifyHostMcp, } from '../../app/host-mcp.js';
|
|
6
8
|
import { probeHost } from '../../app/host-probe.js';
|
|
7
9
|
import { HOST_SUPPORT, isSupportedVersion, } from '../../hosts/integration/support.js';
|
|
8
|
-
import { getPackageInfo } from '../../package-info.js';
|
|
9
|
-
export const hostUsage = 'pappra host <detect|describe|plan|install|verify|bundle|mcp> --host <pi|codex|claude>\n' +
|
|
10
|
+
import { getPackageInfo, getPackageRoot } from '../../package-info.js';
|
|
11
|
+
export const hostUsage = 'pappra host <detect|describe|probe|plan|install|uninstall|verify|bundle|mcp> --host <pi|codex|claude>\n' +
|
|
10
12
|
' [--host-root <dir>] [--host-version <version>] [--out <dir>]\n' +
|
|
11
|
-
' [--mode project-settings|plugin] [--apply] [--json]\n' +
|
|
13
|
+
' [--mode project-settings|plugin] [--scope project|user] [--marketplace] [--apply] [--json]\n' +
|
|
14
|
+
' probe --host <name> [--host-root <dir>] [--json]\n' +
|
|
15
|
+
' uninstall --host <name> [--host-root <dir> | --scope user] [--apply] [--force]\n' +
|
|
16
|
+
' --force asserts all host writers are stopped and archives unknown locks; edited assets remain preserved.\n' +
|
|
17
|
+
' mcp <plan|install|verify> --host <name> [--host-root <dir>] [--apply] [--json]\n' +
|
|
18
|
+
' bundle --host pi --out <new-private-dir> [--bootstrap-config <abs-file> |\n' +
|
|
19
|
+
' --recovery-config <abs-file>] [--transition-extension]\n' +
|
|
12
20
|
'\n' +
|
|
13
21
|
'bundle exports a host-native plugin/package directory and never registers it or\n' +
|
|
14
|
-
'claims host callability.'
|
|
22
|
+
'claims host callability. Recovery and transition extensions are opt-in Pi bundle\n' +
|
|
23
|
+
'artifacts; --recovery-config must pin an exact task-local session and binding.\n' +
|
|
24
|
+
'Exports do not install, trust, load, launch or transfer; native quiescence and\n' +
|
|
25
|
+
'interactive session takeover remain unsupported.';
|
|
15
26
|
/** Codex only loads lifecycle hooks from its user configuration directory. */
|
|
16
27
|
function codexHome() {
|
|
17
28
|
const configured = process.env['CODEX_HOME'];
|
|
@@ -66,8 +77,9 @@ export async function runHostCommand(options, output) {
|
|
|
66
77
|
}
|
|
67
78
|
if (options.action !== 'plan' &&
|
|
68
79
|
options.action !== 'install' &&
|
|
80
|
+
options.action !== 'uninstall' &&
|
|
69
81
|
options.action !== 'verify') {
|
|
70
|
-
output.stderr('pappra host: --scope user is only valid for plan, install, or verify.\n');
|
|
82
|
+
output.stderr('pappra host: --scope user is only valid for plan, install, uninstall, or verify.\n');
|
|
71
83
|
return 2;
|
|
72
84
|
}
|
|
73
85
|
}
|
|
@@ -197,15 +209,109 @@ export async function runHostCommand(options, output) {
|
|
|
197
209
|
}
|
|
198
210
|
return diagnosticStatus(result.status);
|
|
199
211
|
}
|
|
212
|
+
if (options.action === 'uninstall') {
|
|
213
|
+
const result = await service.uninstall(options.host, {
|
|
214
|
+
...target,
|
|
215
|
+
apply: options.apply,
|
|
216
|
+
force: options.force,
|
|
217
|
+
});
|
|
218
|
+
if (options.json)
|
|
219
|
+
output.stdout(`${JSON.stringify(result)}\n`);
|
|
220
|
+
else {
|
|
221
|
+
output.stdout(`Status: ${result.status}\n`);
|
|
222
|
+
for (const file of result.removedFiles)
|
|
223
|
+
output.stdout(` removed ${file}\n`);
|
|
224
|
+
for (const file of result.retainedPaths)
|
|
225
|
+
output.stdout(` preserved ${file}\n`);
|
|
226
|
+
for (const file of result.quarantinedLocks)
|
|
227
|
+
output.stdout(` archived lock ${file}\n`);
|
|
228
|
+
if (!options.apply)
|
|
229
|
+
output.stdout(' plan only; rerun with --apply to remove managed wiring.\n');
|
|
230
|
+
printDiagnostics(output, result.diagnostics);
|
|
231
|
+
}
|
|
232
|
+
return result.ok ? 0 : 1;
|
|
233
|
+
}
|
|
200
234
|
if (options.action === 'bundle') {
|
|
201
235
|
if (options.out === null) {
|
|
202
236
|
output.stderr('pappra host bundle requires --out <dir>.\n');
|
|
203
237
|
return 2;
|
|
204
238
|
}
|
|
239
|
+
if (options.bootstrapConfig !== null) {
|
|
240
|
+
if (options.host !== 'pi') {
|
|
241
|
+
output.stderr('pappra host bundle: --bootstrap-config requires --host pi.\n');
|
|
242
|
+
return 2;
|
|
243
|
+
}
|
|
244
|
+
if (!isAbsolute(options.bootstrapConfig)) {
|
|
245
|
+
output.stderr('pappra host bundle: --bootstrap-config must be an absolute path.\n');
|
|
246
|
+
return 2;
|
|
247
|
+
}
|
|
248
|
+
if (options.marketplace || options.mode !== null || options.apply) {
|
|
249
|
+
output.stderr('pappra host bundle: --bootstrap-config cannot be combined with --marketplace, --mode or --apply.\n');
|
|
250
|
+
return 2;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
205
253
|
if (!isSupportedVersion(options.host, options.hostVersion)) {
|
|
206
254
|
output.stderr(`Host ${options.host} version ${options.hostVersion ?? '(unknown)'} is outside the pinned ${HOST_SUPPORT[options.host].version} support matrix.\n`);
|
|
207
255
|
return 1;
|
|
208
256
|
}
|
|
257
|
+
let bootstrap;
|
|
258
|
+
if (options.bootstrapConfig !== null) {
|
|
259
|
+
const loaded = readPiBootstrapConfig(options.bootstrapConfig);
|
|
260
|
+
if (loaded.ok === false) {
|
|
261
|
+
if (options.json) {
|
|
262
|
+
output.stdout(`${JSON.stringify({
|
|
263
|
+
ok: false,
|
|
264
|
+
command: 'host',
|
|
265
|
+
action: 'bundle',
|
|
266
|
+
code: loaded.code,
|
|
267
|
+
message: loaded.message,
|
|
268
|
+
})}\n`);
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
output.stderr(`pappra host bundle: ${loaded.message}\n`);
|
|
272
|
+
}
|
|
273
|
+
return 1;
|
|
274
|
+
}
|
|
275
|
+
bootstrap = {
|
|
276
|
+
config: loaded.config,
|
|
277
|
+
configBytes: loaded.bytes,
|
|
278
|
+
configDigest: loaded.digest,
|
|
279
|
+
artifactPath: join(getPackageRoot(), 'dist/hosts/integration/pappra-bootstrap-extension.mjs'),
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
let recovery;
|
|
283
|
+
if (options.recoveryConfig !== null) {
|
|
284
|
+
if (options.host !== 'pi') {
|
|
285
|
+
output.stderr('pappra host bundle: --recovery-config requires --host pi.\n');
|
|
286
|
+
return 2;
|
|
287
|
+
}
|
|
288
|
+
if (!isAbsolute(options.recoveryConfig) ||
|
|
289
|
+
options.bootstrapConfig !== null ||
|
|
290
|
+
options.marketplace ||
|
|
291
|
+
options.mode !== null ||
|
|
292
|
+
options.apply) {
|
|
293
|
+
output.stderr('pappra host bundle: --recovery-config requires an absolute path and cannot be combined with --bootstrap-config, --marketplace, --mode or --apply.\n');
|
|
294
|
+
return 2;
|
|
295
|
+
}
|
|
296
|
+
const loaded = readPiRecoveryConfig(options.recoveryConfig);
|
|
297
|
+
if (loaded.ok === false) {
|
|
298
|
+
output.stderr(`pappra host bundle: recovery config validation failed (${loaded.code}).\n`);
|
|
299
|
+
return 1;
|
|
300
|
+
}
|
|
301
|
+
recovery = {
|
|
302
|
+
configFile: options.recoveryConfig,
|
|
303
|
+
artifactPath: join(getPackageRoot(), 'dist/hosts/integration/pappra-recovery-extension.mjs'),
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
if (options.transitionExtension &&
|
|
307
|
+
(options.host !== 'pi' ||
|
|
308
|
+
options.bootstrapConfig !== null ||
|
|
309
|
+
options.marketplace ||
|
|
310
|
+
options.mode !== null ||
|
|
311
|
+
options.apply)) {
|
|
312
|
+
output.stderr('pappra host bundle: --transition-extension requires a plain Pi bundle and cannot be combined with --bootstrap-config, --marketplace, --mode or --apply.\n');
|
|
313
|
+
return 2;
|
|
314
|
+
}
|
|
209
315
|
try {
|
|
210
316
|
const exported = await exportHostPluginBundle({
|
|
211
317
|
host: options.host,
|
|
@@ -213,6 +319,15 @@ export async function runHostCommand(options, output) {
|
|
|
213
319
|
outDir: options.out,
|
|
214
320
|
packageVersion: getPackageInfo().version,
|
|
215
321
|
marketplace: options.marketplace,
|
|
322
|
+
...(bootstrap === undefined ? {} : { bootstrap }),
|
|
323
|
+
...(recovery === undefined ? {} : { recovery }),
|
|
324
|
+
...(options.transitionExtension
|
|
325
|
+
? {
|
|
326
|
+
transition: {
|
|
327
|
+
artifactPath: join(getPackageRoot(), 'dist/hosts/integration/pappra-session-transition-extension.mjs'),
|
|
328
|
+
},
|
|
329
|
+
}
|
|
330
|
+
: {}),
|
|
216
331
|
});
|
|
217
332
|
if (options.json) {
|
|
218
333
|
output.stdout(`${JSON.stringify({ ok: true, command: 'host', action: 'bundle', ...exported })}\n`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type InitChoices } from '../../schemas/init.js';
|
|
2
|
-
import { type InitContext } from '../../app/init.js';
|
|
2
|
+
import { type InitContext, type InitPathObservation, type InitPlanBundle } from '../../app/init.js';
|
|
3
3
|
import type { CliOutput } from '../output.js';
|
|
4
4
|
export interface SelectOption {
|
|
5
5
|
readonly value: string;
|
|
@@ -10,7 +10,7 @@ export interface WizardUi {
|
|
|
10
10
|
intro(message: string): void;
|
|
11
11
|
outro(message: string): void;
|
|
12
12
|
note(message: string, title: string): void;
|
|
13
|
-
text(message: string, initialValue?: string): Promise<string | symbol>;
|
|
13
|
+
text(message: string, initialValue?: string, validate?: (value: string) => string | undefined): Promise<string | symbol>;
|
|
14
14
|
select(message: string, options: readonly SelectOption[], initialValue?: string): Promise<string | symbol>;
|
|
15
15
|
multiselect(message: string, options: readonly SelectOption[], initialValues?: readonly string[]): Promise<readonly string[] | symbol>;
|
|
16
16
|
confirm(message: string, initialValue?: boolean): Promise<boolean | symbol>;
|
|
@@ -21,7 +21,12 @@ export declare const clackWizardUi: WizardUi;
|
|
|
21
21
|
* UI-only selection collection. All validation and plan generation remains in
|
|
22
22
|
* the app service; cancelling this function never writes to the workspace.
|
|
23
23
|
*/
|
|
24
|
-
export declare function collectInitChoices(context: InitContext, ui: WizardUi
|
|
24
|
+
export declare function collectInitChoices(context: InitContext, ui: WizardUi, options?: {
|
|
25
|
+
readonly reconfigure?: boolean;
|
|
26
|
+
readonly draft?: InitChoices;
|
|
27
|
+
readonly reviewOnly?: boolean;
|
|
28
|
+
readonly pathObservations?: readonly InitPathObservation[];
|
|
29
|
+
}): Promise<InitChoices | null>;
|
|
25
30
|
export interface InitCommandOptions {
|
|
26
31
|
readonly cwd: string;
|
|
27
32
|
readonly configPath: string | null;
|
|
@@ -39,6 +44,18 @@ export interface InitCommandOptions {
|
|
|
39
44
|
/** Rebuilds workspace.json from the selections even when a valid config exists. */
|
|
40
45
|
readonly reconfigure?: boolean;
|
|
41
46
|
}
|
|
47
|
+
export interface InitRuntimeOperationDescription {
|
|
48
|
+
readonly mode: 'default-self' | 'tarball' | 'version' | 'disabled';
|
|
49
|
+
readonly runtimeRequested: boolean;
|
|
50
|
+
readonly targetVersion: string;
|
|
51
|
+
readonly source: string | null;
|
|
52
|
+
readonly runtimeRoot: string | null;
|
|
53
|
+
readonly machineBindingPath: string;
|
|
54
|
+
readonly previewLines: readonly string[];
|
|
55
|
+
readonly confirmationMessage: string;
|
|
56
|
+
}
|
|
57
|
+
/** Describes the runtime work this invocation would perform without touching it. */
|
|
58
|
+
export declare function describeInitRuntimeOperation(options: InitCommandOptions, bundle: InitPlanBundle, dataDir?: string): InitRuntimeOperationDescription;
|
|
42
59
|
export interface InitCommandDeps {
|
|
43
60
|
readonly ui?: WizardUi;
|
|
44
61
|
readonly interactive?: boolean;
|