create-principles-disciple 1.145.32 → 1.145.34
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/_release/product-identity.json +1 -1
- package/codex-adapter/dist/ingestion/ingestion.js +3 -1
- package/codex-adapter/package.json +1 -1
- package/console/dist/server/models/ActivationsConsoleModel.d.ts +19 -2
- package/console/dist/server/models/ActivationsConsoleModel.js +124 -10
- package/console/dist/server/models/OwnerDecisionConsoleModel.d.ts +3 -1
- package/console/dist/server/models/OwnerDecisionConsoleModel.js +6 -2
- package/console/dist/server/routes/activations.js +7 -2
- package/console/dist/server/routes/owner-decisions.js +1 -1
- package/core/dist/runtime-v2/activation/index.d.ts +6 -0
- package/core/dist/runtime-v2/activation/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/index.js +3 -0
- package/core/dist/runtime-v2/activation/index.js.map +1 -1
- package/core/dist/runtime-v2/activation/openclaw-promotion-checks.d.ts +75 -0
- package/core/dist/runtime-v2/activation/openclaw-promotion-checks.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/openclaw-promotion-checks.js +131 -37
- package/core/dist/runtime-v2/activation/openclaw-promotion-checks.js.map +1 -1
- package/core/dist/runtime-v2/activation/production-gate-deps.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/production-gate-deps.js +7 -3
- package/core/dist/runtime-v2/activation/production-gate-deps.js.map +1 -1
- package/core/dist/runtime-v2/activation/recovery-composition.d.ts +54 -0
- package/core/dist/runtime-v2/activation/recovery-composition.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/recovery-composition.js +129 -0
- package/core/dist/runtime-v2/activation/recovery-composition.js.map +1 -0
- package/core/dist/runtime-v2/activation/recovery-control-surfaces.d.ts +62 -0
- package/core/dist/runtime-v2/activation/recovery-control-surfaces.d.ts.map +1 -0
- package/core/dist/runtime-v2/activation/recovery-control-surfaces.js +84 -0
- package/core/dist/runtime-v2/activation/recovery-control-surfaces.js.map +1 -0
- package/core/dist/runtime-v2/activation/rulecode-shadow-summary.d.ts +13 -1
- package/core/dist/runtime-v2/activation/rulecode-shadow-summary.d.ts.map +1 -1
- package/core/dist/runtime-v2/activation/rulecode-shadow-summary.js +24 -1
- package/core/dist/runtime-v2/activation/rulecode-shadow-summary.js.map +1 -1
- package/core/dist/runtime-v2/index.d.ts +2 -2
- package/core/dist/runtime-v2/index.d.ts.map +1 -1
- package/core/dist/runtime-v2/index.js +1 -1
- package/core/dist/runtime-v2/index.js.map +1 -1
- package/core/dist/runtime-v2/trajectory-schema.d.ts.map +1 -1
- package/core/dist/runtime-v2/trajectory-schema.js +12 -1
- package/core/dist/runtime-v2/trajectory-schema.js.map +1 -1
- package/core/dist/runtime-v2/types/event-types.d.ts +10 -0
- package/core/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/core/dist/runtime-v2/types/event-types.js +1 -0
- package/core/dist/runtime-v2/types/event-types.js.map +1 -1
- package/core/package.json +1 -1
- package/dist/installer.d.ts.map +1 -1
- package/dist/installer.js +111 -46
- package/dist/installer.js.map +1 -1
- package/host-runtime/dist/cli-recovery-probe.d.ts +30 -0
- package/host-runtime/dist/cli-recovery-probe.js +169 -0
- package/host-runtime/dist/governance-signal-admission.js +22 -5
- package/host-runtime/dist/host-liveness-contract.d.ts +51 -28
- package/host-runtime/dist/host-liveness-contract.js +143 -46
- package/host-runtime/dist/index.d.ts +2 -0
- package/host-runtime/dist/index.js +2 -0
- package/host-runtime/dist/production-pain-evidence.d.ts +2 -0
- package/host-runtime/dist/production-pain-evidence.js +46 -8
- package/host-runtime/dist/production-rulehost-gate.js +24 -6
- package/host-runtime/dist/workbuddy-rule-context-provider.d.ts +33 -0
- package/host-runtime/dist/workbuddy-rule-context-provider.js +126 -0
- package/host-runtime/dist/workspace-behavior-evidence.d.ts +22 -5
- package/host-runtime/dist/workspace-behavior-evidence.js +41 -11
- package/host-runtime/package.json +1 -1
- package/package.json +2 -2
- package/pd-cli/dist/commands/recovery-reachability-probe.d.ts +25 -0
- package/pd-cli/dist/commands/recovery-reachability-probe.d.ts.map +1 -0
- package/pd-cli/dist/commands/recovery-reachability-probe.js +50 -0
- package/pd-cli/dist/commands/recovery-reachability-probe.js.map +1 -0
- package/pd-cli/dist/commands/runtime-activation.d.ts +10 -1
- package/pd-cli/dist/commands/runtime-activation.d.ts.map +1 -1
- package/pd-cli/dist/commands/runtime-activation.js +81 -3
- package/pd-cli/dist/commands/runtime-activation.js.map +1 -1
- package/pd-cli/package.json +1 -1
- package/plugin/dist/bundle.js +385 -385
- package/plugin/dist/governance-audit.js +1 -1
- package/plugin/dist/openclaw.plugin.json +1 -1
- package/plugin/dist/rulehost-evidence.js +1 -1
- package/plugin/openclaw.plugin.json +1 -1
- package/plugin/package.json +1 -1
- package/release-manager/dist/installer.d.ts.map +1 -1
- package/release-manager/dist/installer.js +111 -46
- package/release-manager/dist/installer.js.map +1 -1
- package/release-manager/package.json +2 -2
- package/workbuddy-adapter/dist/codec/input-decoder.d.ts +14 -11
- package/workbuddy-adapter/dist/codec/input-decoder.js +28 -14
- package/workbuddy-adapter/dist/pd-hook.js +31 -12
- package/workbuddy-adapter/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2602,55 +2602,91 @@ function openBrowserForOnboarding(url) {
|
|
|
2602
2602
|
return { opened: false, reason: err instanceof Error ? err.message : String(err) };
|
|
2603
2603
|
}
|
|
2604
2604
|
}
|
|
2605
|
-
|
|
2606
|
-
* Probe /api/health on a single port. Reuses the http module already imported.
|
|
2607
|
-
*/
|
|
2608
|
-
function probeAutolaunchHealth(port, timeoutMs = 1500) {
|
|
2605
|
+
function requestConsoleHealth(port, token, timeoutMs) {
|
|
2609
2606
|
return new Promise((resolve) => {
|
|
2610
|
-
const req = http.get(`http://127.0.0.1:${port}/api/health`, (res) => {
|
|
2611
|
-
if (res.statusCode !== 200) {
|
|
2612
|
-
resolve(false);
|
|
2613
|
-
return;
|
|
2614
|
-
}
|
|
2607
|
+
const req = http.get(`http://127.0.0.1:${port}/api/health`, { headers: token ? { Authorization: `Bearer ${token}` } : {} }, (res) => {
|
|
2615
2608
|
const chunks = [];
|
|
2616
2609
|
res.on('data', (c) => chunks.push(c));
|
|
2617
2610
|
res.on('end', () => {
|
|
2611
|
+
let payload;
|
|
2618
2612
|
try {
|
|
2619
|
-
|
|
2620
|
-
// P1-B: verify a PD-specific field inside body.data, not just the generic
|
|
2621
|
-
// { success: true } envelope that ANY service could return. PD Console's
|
|
2622
|
-
// /api/health responds via sendSuccess -> { success: true, data: {...} } where
|
|
2623
|
-
// data.overall is one of 'healthy' | 'degraded' | 'error' (HealthCheckModel).
|
|
2624
|
-
// The previous top-level `body.healthy` branch was dead code (PD Console never
|
|
2625
|
-
// returns it) and `body.success === true` alone matched any generic service.
|
|
2626
|
-
// rc-5-object-hasown-not-in: use Object.hasOwn, not `in`, for untrusted keys.
|
|
2627
|
-
const isPdConsole = (() => {
|
|
2628
|
-
if (typeof body !== 'object' || body === null)
|
|
2629
|
-
return false;
|
|
2630
|
-
if (!Object.hasOwn(body, 'success') || Reflect.get(body, 'success') !== true)
|
|
2631
|
-
return false;
|
|
2632
|
-
if (!Object.hasOwn(body, 'data'))
|
|
2633
|
-
return false;
|
|
2634
|
-
const data = Reflect.get(body, 'data');
|
|
2635
|
-
if (typeof data !== 'object' || data === null)
|
|
2636
|
-
return false;
|
|
2637
|
-
// data.overall is the PD-specific discriminative field.
|
|
2638
|
-
if (!Object.hasOwn(data, 'overall'))
|
|
2639
|
-
return false;
|
|
2640
|
-
const overall = Reflect.get(data, 'overall');
|
|
2641
|
-
return overall === 'healthy' || overall === 'degraded' || overall === 'error';
|
|
2642
|
-
})();
|
|
2643
|
-
resolve(isPdConsole);
|
|
2613
|
+
payload = JSON.parse(Buffer.concat(chunks).toString());
|
|
2644
2614
|
}
|
|
2645
2615
|
catch {
|
|
2646
|
-
|
|
2616
|
+
payload = undefined;
|
|
2647
2617
|
}
|
|
2618
|
+
resolve({ status: res.statusCode ?? 0, payload });
|
|
2648
2619
|
});
|
|
2649
2620
|
});
|
|
2650
|
-
req.on('error', () => resolve(
|
|
2651
|
-
req.setTimeout(timeoutMs, () => { req.destroy(); resolve(
|
|
2621
|
+
req.on('error', () => resolve(null));
|
|
2622
|
+
req.setTimeout(timeoutMs, () => { req.destroy(); resolve(null); });
|
|
2652
2623
|
});
|
|
2653
2624
|
}
|
|
2625
|
+
/**
|
|
2626
|
+
* PD Console health shape, bound to the posture we launched (rc-5: Object.hasOwn
|
|
2627
|
+
* for untrusted keys).
|
|
2628
|
+
*
|
|
2629
|
+
* P1-B: `data.overall` is the PD-specific discriminative field — the generic
|
|
2630
|
+
* { success: true } envelope alone matches any service. PRI-1054 review P2:
|
|
2631
|
+
* `data.authenticationMode` must equal the launched posture, because that is the
|
|
2632
|
+
* same fact `pd console open` refuses on (`console_authentication_mode_mismatch`).
|
|
2633
|
+
* Without it the installer certified ANY healthy PD console on 3100..3119 as
|
|
2634
|
+
* "the console I just launched", including a pre-existing no-auth one that
|
|
2635
|
+
* `pd console open` had already refused to adopt.
|
|
2636
|
+
*/
|
|
2637
|
+
function isLaunchedConsoleHealth(payload, expectedMode) {
|
|
2638
|
+
if (typeof payload !== 'object' || payload === null)
|
|
2639
|
+
return false;
|
|
2640
|
+
if (!Object.hasOwn(payload, 'success') || Reflect.get(payload, 'success') !== true)
|
|
2641
|
+
return false;
|
|
2642
|
+
if (!Object.hasOwn(payload, 'data'))
|
|
2643
|
+
return false;
|
|
2644
|
+
const data = Reflect.get(payload, 'data');
|
|
2645
|
+
if (typeof data !== 'object' || data === null)
|
|
2646
|
+
return false;
|
|
2647
|
+
if (!Object.hasOwn(data, 'overall'))
|
|
2648
|
+
return false;
|
|
2649
|
+
const overall = Reflect.get(data, 'overall');
|
|
2650
|
+
if (overall !== 'healthy' && overall !== 'degraded' && overall !== 'error')
|
|
2651
|
+
return false;
|
|
2652
|
+
if (!Object.hasOwn(data, 'authenticationMode'))
|
|
2653
|
+
return false;
|
|
2654
|
+
return Reflect.get(data, 'authenticationMode') === expectedMode;
|
|
2655
|
+
}
|
|
2656
|
+
/** sendUnauthorized's envelope — the only responder worth offering the token to. */
|
|
2657
|
+
function isConsoleUnauthorizedEnvelope(payload) {
|
|
2658
|
+
if (typeof payload !== 'object' || payload === null)
|
|
2659
|
+
return false;
|
|
2660
|
+
return Object.hasOwn(payload, 'success') && Reflect.get(payload, 'success') === false
|
|
2661
|
+
&& Object.hasOwn(payload, 'error') && Reflect.get(payload, 'error') === 'unauthorized';
|
|
2662
|
+
}
|
|
2663
|
+
/**
|
|
2664
|
+
* Is the console READY on this port — meaning the one launched in `posture`?
|
|
2665
|
+
*
|
|
2666
|
+
* Two-phase on purpose:
|
|
2667
|
+
* 1. bare GET first: a bearer credential must never be sprayed at up to
|
|
2668
|
+
* CONSOLE_AUTOLAUNCH_PORT_SCAN_LIMIT unidentified local ports;
|
|
2669
|
+
* 2. the token is attached only to a responder that answered 401 with the
|
|
2670
|
+
* console's own error envelope, and 200 is accepted only when
|
|
2671
|
+
* `authenticationMode` matches the launched posture.
|
|
2672
|
+
* An authenticated console answers 401 to a bare probe, so phase 1 alone cannot
|
|
2673
|
+
* distinguish it — phase 2 is the proof that the responder accepts THIS token.
|
|
2674
|
+
*/
|
|
2675
|
+
async function probeAutolaunchHealth(port, posture, timeoutMs = 1500) {
|
|
2676
|
+
const expectedMode = posture.authenticated ? 'authenticated' : 'no_auth';
|
|
2677
|
+
const bare = await requestConsoleHealth(port, undefined, timeoutMs);
|
|
2678
|
+
if (bare === null)
|
|
2679
|
+
return false;
|
|
2680
|
+
if (bare.status === 200)
|
|
2681
|
+
return isLaunchedConsoleHealth(bare.payload, expectedMode);
|
|
2682
|
+
if (bare.status !== 401 || !posture.authenticated)
|
|
2683
|
+
return false;
|
|
2684
|
+
if (!isConsoleUnauthorizedEnvelope(bare.payload))
|
|
2685
|
+
return false;
|
|
2686
|
+
const authorized = await requestConsoleHealth(port, posture.token, timeoutMs);
|
|
2687
|
+
return authorized !== null && authorized.status === 200
|
|
2688
|
+
&& isLaunchedConsoleHealth(authorized.payload, expectedMode);
|
|
2689
|
+
}
|
|
2654
2690
|
/**
|
|
2655
2691
|
* Task 8: Auto-launch the PD Console at the end of a successful install by
|
|
2656
2692
|
* reusing `pd console open` (handleConsoleOpen). Spawns it detached so the
|
|
@@ -2671,28 +2707,57 @@ function probeAutolaunchHealth(port, timeoutMs = 1500) {
|
|
|
2671
2707
|
export function resolveConsoleWorkspaceDir(host, projectWorkspaceDir, homeDir) {
|
|
2672
2708
|
return host === 'workbuddy' ? getWorkbuddyWorkspaceDir(homeDir) : projectWorkspaceDir;
|
|
2673
2709
|
}
|
|
2710
|
+
/**
|
|
2711
|
+
* PRI-1054: the authentication posture to auto-launch the console in.
|
|
2712
|
+
*
|
|
2713
|
+
* The update chain must NOT invent a posture: PD Companion asks for an
|
|
2714
|
+
* authenticated console whenever PD_CONSOLE_TOKEN is in its environment, and it
|
|
2715
|
+
* restores that token from its own encrypted state on every launch. Hardcoding
|
|
2716
|
+
* `--no-auth` here therefore swapped a healthy authenticated console for a
|
|
2717
|
+
* no-auth one on every release, and the next Companion start aborted with
|
|
2718
|
+
* `console_authentication_mode_mismatch` — i.e. configuring a token made every
|
|
2719
|
+
* later release brick the desktop app.
|
|
2720
|
+
*
|
|
2721
|
+
* Inheriting this process's own PD_CONSOLE_TOKEN keeps the machine's posture
|
|
2722
|
+
* unchanged, because `pd console open` reads the same variable (console.ts
|
|
2723
|
+
* resolves `opts.token ?? process.env.PD_CONSOLE_TOKEN` and only skips auth for
|
|
2724
|
+
* `--no-auth`). No new authority: the variable stays the single declaration.
|
|
2725
|
+
*/
|
|
2726
|
+
function readConsoleAuthPosture(env = process.env) {
|
|
2727
|
+
const token = env.PD_CONSOLE_TOKEN?.trim();
|
|
2728
|
+
return token ? { authenticated: true, token } : { authenticated: false };
|
|
2729
|
+
}
|
|
2674
2730
|
async function autoLaunchConsole(workspaceDir) {
|
|
2731
|
+
const posture = readConsoleAuthPosture();
|
|
2732
|
+
const noAuthFlag = posture.authenticated ? '' : ' --no-auth';
|
|
2733
|
+
// The instruction the Owner may follow by hand — it must carry the same
|
|
2734
|
+
// posture as the launch, or following it re-creates the collision.
|
|
2735
|
+
const manualOpenCommand = `pd console open --workspace "${workspaceDir}"${noAuthFlag}`;
|
|
2675
2736
|
// Test/smoke seam (mirrors PD_SKIP_GLOBAL_SHIM): isolated installs (release
|
|
2676
2737
|
// smoke, upgrade gate) must not spawn a detached console that holds the
|
|
2677
2738
|
// installed files open or pops a browser.
|
|
2678
2739
|
if (process.env.PD_SKIP_CONSOLE_AUTOLAUNCH === '1' || process.env.PD_SKIP_CONSOLE_AUTOLAUNCH === 'true') {
|
|
2679
2740
|
logger.info('Skipping console auto-launch (PD_SKIP_CONSOLE_AUTOLAUNCH set).');
|
|
2680
|
-
return {};
|
|
2741
|
+
return { manualOpenCommand };
|
|
2681
2742
|
}
|
|
2682
2743
|
const pdCliEntry = path.join(getInstalledPdCliDir(), 'dist', 'index.js');
|
|
2683
2744
|
if (!existsSync(pdCliEntry)) {
|
|
2684
|
-
return { fallbackAction:
|
|
2745
|
+
return { manualOpenCommand, fallbackAction: `${manualOpenCommand} (auto-launch skipped: pd CLI entry not found)` };
|
|
2685
2746
|
}
|
|
2686
2747
|
// Spawn `pd console open` detached — reuses handleConsoleOpen (port detection,
|
|
2687
2748
|
// reuse, health). --no-browser because we open /welcome ourselves.
|
|
2688
|
-
const
|
|
2749
|
+
const launchArgs = [pdCliEntry, 'console', 'open', '--workspace', workspaceDir, '--no-browser'];
|
|
2750
|
+
if (!posture.authenticated)
|
|
2751
|
+
launchArgs.push('--no-auth');
|
|
2752
|
+
const child = spawn(process.execPath, launchArgs, { detached: true, stdio: 'ignore', shell: false });
|
|
2689
2753
|
child.unref();
|
|
2690
|
-
// Wait for the console to become ready (bounded poll on
|
|
2754
|
+
// Wait for the console to become ready (bounded poll on
|
|
2755
|
+
// CONSOLE_AUTOLAUNCH_BASE_PORT..+CONSOLE_AUTOLAUNCH_PORT_SCAN_LIMIT-1).
|
|
2691
2756
|
const deadline = Date.now() + CONSOLE_AUTOLAUNCH_READY_TIMEOUT_MS;
|
|
2692
2757
|
while (Date.now() < deadline) {
|
|
2693
2758
|
for (let i = 0; i < CONSOLE_AUTOLAUNCH_PORT_SCAN_LIMIT; i++) {
|
|
2694
2759
|
const port = CONSOLE_AUTOLAUNCH_BASE_PORT + i;
|
|
2695
|
-
if (await probeAutolaunchHealth(port)) {
|
|
2760
|
+
if (await probeAutolaunchHealth(port, posture)) {
|
|
2696
2761
|
// HashRouter: client-side routes live under /#/ — server only serves /,
|
|
2697
2762
|
// anything else (incl. /welcome) is treated as an API path and returns
|
|
2698
2763
|
// 404 not_found. Must open /#/welcome so the browser loads index.html
|
|
@@ -2701,15 +2766,15 @@ async function autoLaunchConsole(workspaceDir) {
|
|
|
2701
2766
|
const browserResult = openBrowserForOnboarding(consoleUrl);
|
|
2702
2767
|
if (!browserResult.opened) {
|
|
2703
2768
|
// EP-03: browser failed but console is up — surface the URL + reason.
|
|
2704
|
-
return { consoleUrl, fallbackAction: `Console ready at ${consoleUrl} (browser auto-open failed: ${browserResult.reason ?? 'unknown'} — open the URL manually)` };
|
|
2769
|
+
return { consoleUrl, manualOpenCommand, fallbackAction: `Console ready at ${consoleUrl} (browser auto-open failed: ${browserResult.reason ?? 'unknown'} — open the URL manually)` };
|
|
2705
2770
|
}
|
|
2706
|
-
return { consoleUrl };
|
|
2771
|
+
return { consoleUrl, manualOpenCommand };
|
|
2707
2772
|
}
|
|
2708
2773
|
}
|
|
2709
2774
|
await new Promise((r) => setTimeout(r, CONSOLE_AUTOLAUNCH_POLL_INTERVAL_MS));
|
|
2710
2775
|
}
|
|
2711
2776
|
// EP-03: console did not become ready — provide manual launch instruction.
|
|
2712
|
-
return { fallbackAction:
|
|
2777
|
+
return { manualOpenCommand, fallbackAction: `${manualOpenCommand} (auto-launch did not become ready in time; run manually)` };
|
|
2713
2778
|
}
|
|
2714
2779
|
async function copyCoreTemplates(opts) {
|
|
2715
2780
|
let count = 0;
|
|
@@ -3672,7 +3737,7 @@ transaction) {
|
|
|
3672
3737
|
}
|
|
3673
3738
|
else {
|
|
3674
3739
|
// EP-03: auto-launch did not succeed — keep manual start instruction.
|
|
3675
|
-
nextActions.push(
|
|
3740
|
+
nextActions.push(`${launchResult.manualOpenCommand} (listens on 127.0.0.1 only)`);
|
|
3676
3741
|
}
|
|
3677
3742
|
}
|
|
3678
3743
|
if (launchResult.fallbackAction) {
|