@narumitw/pi-sync 0.50.0 → 0.50.2
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 +5 -4
- package/dist/chunks/attention-widget-Z7G3SYYJ.ts +9 -0
- package/dist/chunks/attention-widget-Z7G3SYYJ.ts.map +7 -0
- package/dist/chunks/{chunk-YKJHPTGO.ts → chunk-4CHTZMEO.ts} +2 -2
- package/dist/chunks/{chunk-6UHKGALE.ts → chunk-5B3FXBLE.ts} +51 -17
- package/dist/chunks/chunk-5B3FXBLE.ts.map +7 -0
- package/dist/chunks/{chunk-JSYMGJQQ.ts → chunk-CCSN3F47.ts} +4 -4
- package/dist/chunks/{chunk-GWMHAQG4.ts → chunk-ETTRJDNP.ts} +2 -2
- package/dist/chunks/{chunk-X5OM6GXT.ts → chunk-G4RNQQZS.ts} +2 -2
- package/dist/chunks/{chunk-AXXS2BPA.ts → chunk-IJ6FJFA5.ts} +2 -2
- package/dist/chunks/{chunk-OUHGBFYF.ts → chunk-KW7YQEZN.ts} +4 -4
- package/dist/chunks/{chunk-XBX4HBLG.ts → chunk-SZWBGPID.ts} +5 -5
- package/dist/chunks/{chunk-L7TBO32M.ts → chunk-T2B5IU74.ts} +3 -3
- package/dist/chunks/{git-backend-OQW46G2X.ts → git-backend-GMVS4PD4.ts} +8 -8
- package/dist/chunks/{manager-result-dispatcher-U23ODD32.ts → manager-result-dispatcher-FKIBM3GO.ts} +4 -4
- package/dist/chunks/{manager-ui-ABATHC36.ts → manager-ui-5KLKVMRC.ts} +18 -18
- package/dist/chunks/{remote-selection-ui-ZE3TY67S.ts → remote-selection-ui-D7RBRJNL.ts} +3 -3
- package/dist/chunks/{s3-backend-3P33LQHU.ts → s3-backend-66O4FGBH.ts} +6 -6
- package/dist/chunks/{setup-wizard-VB3VDOV5.ts → setup-wizard-IUB6ESEU.ts} +3 -3
- package/dist/chunks/{sync-inspection-FEP4L5TR.ts → sync-inspection-CST2KL65.ts} +5 -5
- package/dist/chunks/{sync-operations-ONJ27QRL.ts → sync-operations-LBX3GKCM.ts} +23 -23
- package/dist/index.ts +20 -20
- package/dist/index.ts.map +2 -2
- package/package.json +1 -1
- package/src/commands/command-handler.ts +2 -2
- package/src/sync/startup-check.ts +1 -1
- package/src/ui/attention-widget.ts +1 -0
- package/src/ui/sync-attention.ts +65 -23
- package/dist/chunks/chunk-6UHKGALE.ts.map +0 -7
- /package/dist/chunks/{chunk-YKJHPTGO.ts.map → chunk-4CHTZMEO.ts.map} +0 -0
- /package/dist/chunks/{chunk-JSYMGJQQ.ts.map → chunk-CCSN3F47.ts.map} +0 -0
- /package/dist/chunks/{chunk-GWMHAQG4.ts.map → chunk-ETTRJDNP.ts.map} +0 -0
- /package/dist/chunks/{chunk-X5OM6GXT.ts.map → chunk-G4RNQQZS.ts.map} +0 -0
- /package/dist/chunks/{chunk-AXXS2BPA.ts.map → chunk-IJ6FJFA5.ts.map} +0 -0
- /package/dist/chunks/{chunk-OUHGBFYF.ts.map → chunk-KW7YQEZN.ts.map} +0 -0
- /package/dist/chunks/{chunk-XBX4HBLG.ts.map → chunk-SZWBGPID.ts.map} +0 -0
- /package/dist/chunks/{chunk-L7TBO32M.ts.map → chunk-T2B5IU74.ts.map} +0 -0
- /package/dist/chunks/{git-backend-OQW46G2X.ts.map → git-backend-GMVS4PD4.ts.map} +0 -0
- /package/dist/chunks/{manager-result-dispatcher-U23ODD32.ts.map → manager-result-dispatcher-FKIBM3GO.ts.map} +0 -0
- /package/dist/chunks/{manager-ui-ABATHC36.ts.map → manager-ui-5KLKVMRC.ts.map} +0 -0
- /package/dist/chunks/{remote-selection-ui-ZE3TY67S.ts.map → remote-selection-ui-D7RBRJNL.ts.map} +0 -0
- /package/dist/chunks/{s3-backend-3P33LQHU.ts.map → s3-backend-66O4FGBH.ts.map} +0 -0
- /package/dist/chunks/{setup-wizard-VB3VDOV5.ts.map → setup-wizard-IUB6ESEU.ts.map} +0 -0
- /package/dist/chunks/{sync-inspection-FEP4L5TR.ts.map → sync-inspection-CST2KL65.ts.map} +0 -0
- /package/dist/chunks/{sync-operations-ONJ27QRL.ts.map → sync-operations-LBX3GKCM.ts.map} +0 -0
package/README.md
CHANGED
|
@@ -131,14 +131,15 @@ Then choose one reviewed direction:
|
|
|
131
131
|
Cancelling a preparation or confirmation returns to conflict resolution with no side effects.
|
|
132
132
|
Back returns to the sync manager, and Ctrl+C closes the complete flow.
|
|
133
133
|
|
|
134
|
-
Startup checks never open a dialog.
|
|
134
|
+
Startup checks never open a dialog. With a sync baseline and no content-list mismatch, ordinary one-sided changes appear only as **local changes pending** or **remote changes pending** in status. A persistent widget above the editor is reserved for both sides changing, first sync with an existing remote snapshot, a differing content list (including order-only differences), or a missing remote snapshot despite an existing baseline. Both sides changing is a reason to review, not a confirmed file conflict.
|
|
135
|
+
No selected content and first sync with an empty remote stay quiet outside `/sync`, which provides setup or initialization guidance. Legacy remote metadata without an authoritative content list does not independently trigger a widget; the baseline and change conditions still apply. An included-content mismatch puts **Review synced content (recommended)** in the manager, where a fresh review verifies the remote snapshot before offering changes.
|
|
135
136
|
Check results are advisory observations against the last sync baseline, not proof of a file conflict or current equality. Opening the manager uses local information and shows when the check completed; it does not contact remote storage. Transfer actions recheck current content.
|
|
136
|
-
Attention stays in memory and is invalidated by relevant settings/state changes or a foreground transfer's commit boundary, and cleared on session replacement or shutdown. Cancelling a review or a failure before commit preserves a still-valid
|
|
137
|
+
The widget has no expiry timer. Attention stays in memory and is invalidated by relevant settings/state changes or a foreground transfer's commit boundary, and cleared on session replacement or shutdown. A newer observation replaces the presentation, clearing the widget when only status or no reminder is needed. Cancelling a review or a failure before commit preserves a still-valid observation and its appropriate presentation.
|
|
137
138
|
|
|
138
139
|
Interactive TUI `/sync sync`, `/sync pull`, and `/sync push` routes without `--yes` open the same review flow when they detect the mismatch.
|
|
139
140
|
Explicit `--yes` routes remain non-interactive and report exact remote-only, device-only, or order-only guidance while leaving visible attention for later review.
|
|
140
141
|
Shutdown automatic sync never opens a dialog because Pi is exiting.
|
|
141
|
-
RPC startup
|
|
142
|
+
RPC startup checks use status for one-sided changes and nonblocking warning notifications for review conditions; included-content review remains read-only.
|
|
142
143
|
Print and JSON modes do not support `/sync` because UI output is not observable there.
|
|
143
144
|
|
|
144
145
|
## ⚙️ Settings
|
|
@@ -149,7 +150,7 @@ Missing settings stay unconfigured without creating files or locks.
|
|
|
149
150
|
|
|
150
151
|
### Background startup checks
|
|
151
152
|
|
|
152
|
-
With **Automatic sync** enabled, session startup schedules a background check instead of waiting for a transfer. Pi remains usable while Git, WebDAV, R2, or S3 checks local hashes and remote metadata.
|
|
153
|
+
With **Automatic sync** enabled, session startup schedules a background check instead of waiting for a transfer. Pi remains usable while Git, WebDAV, R2, or S3 checks local hashes and remote metadata. Results follow the [status and review classifications](#resolve-conflicts-in-the-manager); check failures provide `/sync` guidance without opening a dialog. Use **Sync now** to start a reviewed transfer, or `/sync status` to retry a check. Foreground `/sync` cancels and drains the background check before starting.
|
|
153
154
|
|
|
154
155
|
Checks run once per session start, including `/reload`, new, resumed, and forked sessions, in TUI and RPC only. Print/JSON skip startup checks. There is no polling or automatic check retry loop. The overall deadline is 30 seconds, followed by underlying cleanup where needed; Git process termination and temporary-ref cleanup can take additional time. Git checks can still fetch objects and update the extension's private bare cache, but never push, apply managed files, update the sync baseline, or reload Pi.
|
|
155
156
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// @generated by scripts/build-runtime.mjs; do not edit.
|
|
2
|
+
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
|
+
|
|
4
|
+
// src/ui/attention-widget.ts
|
|
5
|
+
import { EditorStatusWidget } from "@narumitw/pi-tui-kit";
|
|
6
|
+
export {
|
|
7
|
+
EditorStatusWidget
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=attention-widget-Z7G3SYYJ.ts.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
} from "./chunk-HUDQATCL.ts";
|
|
6
6
|
import {
|
|
7
7
|
createSyncBackend
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-T2B5IU74.ts";
|
|
9
9
|
import {
|
|
10
10
|
safeTerminalText
|
|
11
11
|
} from "./chunk-LTBWGSBV.ts";
|
|
@@ -620,4 +620,4 @@ export {
|
|
|
620
620
|
runCancellableOperation,
|
|
621
621
|
showRemoteSelectionReview
|
|
622
622
|
};
|
|
623
|
-
//# sourceMappingURL=chunk-
|
|
623
|
+
//# sourceMappingURL=chunk-4CHTZMEO.ts.map
|
|
@@ -22,22 +22,26 @@ function syncAttentionMatchesConfig(attention, config) {
|
|
|
22
22
|
function createSyncAttentionController() {
|
|
23
23
|
let state;
|
|
24
24
|
let observation;
|
|
25
|
+
let generation = 0;
|
|
25
26
|
return {
|
|
26
27
|
observe(value) {
|
|
28
|
+
generation++;
|
|
27
29
|
observation = value;
|
|
28
30
|
},
|
|
29
31
|
observation() {
|
|
30
32
|
return observation;
|
|
31
33
|
},
|
|
32
34
|
clearObservation() {
|
|
35
|
+
generation++;
|
|
33
36
|
observation = void 0;
|
|
34
37
|
},
|
|
35
38
|
notifyObservation(ctx) {
|
|
36
|
-
if (observation && observationNeedsAttention(observation)) {
|
|
39
|
+
if (ctx.hasUI && observation && observationNeedsAttention(observation)) {
|
|
37
40
|
ctx.ui.notify(observationLines(observation).join("\n"), "warning");
|
|
38
41
|
}
|
|
39
42
|
},
|
|
40
43
|
set(decision, origin) {
|
|
44
|
+
generation++;
|
|
41
45
|
state = { decision, origin, offered: false };
|
|
42
46
|
},
|
|
43
47
|
current() {
|
|
@@ -49,35 +53,56 @@ function createSyncAttentionController() {
|
|
|
49
53
|
return true;
|
|
50
54
|
},
|
|
51
55
|
clear(ctx) {
|
|
56
|
+
generation++;
|
|
52
57
|
state = void 0;
|
|
53
58
|
clearAttentionPresentation(ctx);
|
|
54
59
|
},
|
|
55
60
|
reset(ctx) {
|
|
61
|
+
generation++;
|
|
56
62
|
state = void 0;
|
|
57
63
|
observation = void 0;
|
|
58
64
|
clearAttentionPresentation(ctx);
|
|
59
65
|
},
|
|
60
|
-
publish(ctx) {
|
|
61
|
-
|
|
66
|
+
async publish(ctx, signal) {
|
|
67
|
+
const currentGeneration = ++generation;
|
|
68
|
+
if (signal?.aborted || !ctx.hasUI) return;
|
|
69
|
+
const classification = observation ? classifyObservation(observation) : "none";
|
|
70
|
+
if (!state && (classification === "none" || classification === "guidance")) {
|
|
62
71
|
clearAttentionPresentation(ctx);
|
|
63
72
|
return;
|
|
64
73
|
}
|
|
74
|
+
if (!state && classification === "status") {
|
|
75
|
+
ctx.ui.setWidget(WIDGET_KEY, void 0);
|
|
76
|
+
ctx.ui.setStatus(
|
|
77
|
+
STATUS_KEY,
|
|
78
|
+
observation?.inspection.remoteChanged ? "remote changes pending" : "local changes pending"
|
|
79
|
+
);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
65
82
|
const presentation = state ? attentionPresentation(state.decision) : {
|
|
66
83
|
status: "changes to review",
|
|
67
84
|
lines: observationLines(observation)
|
|
68
85
|
};
|
|
86
|
+
if (ctx.mode !== "tui") {
|
|
87
|
+
ctx.ui.setWidget(WIDGET_KEY, void 0);
|
|
88
|
+
ctx.ui.setStatus(STATUS_KEY, presentation.status);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const { EditorStatusWidget } = await import("./attention-widget-Z7G3SYYJ.ts").catch((error) => {
|
|
92
|
+
if (generation === currentGeneration && !signal?.aborted) clearAttentionPresentation(ctx);
|
|
93
|
+
throw error;
|
|
94
|
+
});
|
|
95
|
+
if (generation !== currentGeneration || signal?.aborted) return;
|
|
69
96
|
ctx.ui.setStatus(STATUS_KEY, presentation.status);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
(line, index) => truncateToWidth(theme.fg(index === 0 ? "warning" : "muted", line),
|
|
76
|
-
)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
}));
|
|
97
|
+
ctx.ui.setWidget(
|
|
98
|
+
WIDGET_KEY,
|
|
99
|
+
(_tui, theme) => new EditorStatusWidget({
|
|
100
|
+
theme,
|
|
101
|
+
renderBody: (width) => presentation.lines.map(
|
|
102
|
+
(line, index) => width === 0 ? "" : truncateToWidth(theme.fg(index === 0 ? "warning" : "muted", line), width, "\u2026")
|
|
103
|
+
)
|
|
104
|
+
})
|
|
105
|
+
);
|
|
81
106
|
}
|
|
82
107
|
};
|
|
83
108
|
}
|
|
@@ -109,9 +134,17 @@ function observationSummary(observation) {
|
|
|
109
134
|
return "Legacy remote has no authoritative content list";
|
|
110
135
|
return "No changes detected since last sync";
|
|
111
136
|
}
|
|
112
|
-
function
|
|
137
|
+
function classifyObservation(observation) {
|
|
113
138
|
const result = observation.inspection;
|
|
114
|
-
|
|
139
|
+
if (result.emptyInclude) return "guidance";
|
|
140
|
+
if (result.selectionState?.kind === "different") return "review";
|
|
141
|
+
if (result.firstSync) return result.head ? "review" : "guidance";
|
|
142
|
+
if (!result.head || result.localChanged && result.remoteChanged) return "review";
|
|
143
|
+
if (result.localChanged || result.remoteChanged) return "status";
|
|
144
|
+
return "none";
|
|
145
|
+
}
|
|
146
|
+
function observationNeedsAttention(observation) {
|
|
147
|
+
return classifyObservation(observation) === "review";
|
|
115
148
|
}
|
|
116
149
|
function observationLines(observation) {
|
|
117
150
|
return [
|
|
@@ -121,6 +154,7 @@ function observationLines(observation) {
|
|
|
121
154
|
];
|
|
122
155
|
}
|
|
123
156
|
function clearAttentionPresentation(ctx) {
|
|
157
|
+
if (!ctx.hasUI) return;
|
|
124
158
|
ctx.ui.setStatus(STATUS_KEY, void 0);
|
|
125
159
|
ctx.ui.setWidget(WIDGET_KEY, void 0);
|
|
126
160
|
}
|
|
@@ -131,4 +165,4 @@ export {
|
|
|
131
165
|
observationMatchesConfig,
|
|
132
166
|
observationSummary
|
|
133
167
|
};
|
|
134
|
-
//# sourceMappingURL=chunk-
|
|
168
|
+
//# sourceMappingURL=chunk-5B3FXBLE.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ui/sync-attention.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ExtensionContext } from \"@earendil-works/pi-coding-agent\";\nimport { truncateToWidth } from \"@earendil-works/pi-tui\";\nimport { syncCheckConfigFingerprint, syncConfigReviewFingerprint } from \"../settings/config.js\";\nimport type { AnySyncConfig } from \"../settings/settings-types.js\";\nimport type { StartupObservation } from \"../sync/sync-inspection.js\";\nimport {\n\tcompareSyncInclude,\n\ttype RemoteSelectionDecision,\n\tsameSyncInclude,\n} from \"../sync/sync-policy.js\";\nimport { safeTerminalText } from \"./terminal-text.js\";\n\nconst STATUS_KEY = \"sync\";\nconst WIDGET_KEY = \"sync:attention\";\n\nexport type SyncAttentionOrigin = \"sync\" | \"pull\" | \"push\";\n\nexport interface SyncAttentionState {\n\tdecision: RemoteSelectionDecision;\n\torigin: SyncAttentionOrigin;\n\toffered: boolean;\n}\n\nexport function syncAttentionMatchesConfig(attention: SyncAttentionState, config: AnySyncConfig) {\n\treturn (\n\t\tattention.decision.setupName === config.setupName &&\n\t\tattention.decision.configIdentity === syncConfigReviewFingerprint(config) &&\n\t\tsameSyncInclude(attention.decision.localInclude, config.include)\n\t);\n}\n\nexport interface SyncAttentionController {\n\tobserve(observation: StartupObservation): void;\n\tobservation(): StartupObservation | undefined;\n\tclearObservation(): void;\n\tnotifyObservation(ctx: ExtensionContext): void;\n\tset(decision: RemoteSelectionDecision, origin: SyncAttentionOrigin): void;\n\tcurrent(): SyncAttentionState | undefined;\n\tmarkOffered(): boolean;\n\tclear(ctx: ExtensionContext): void;\n\treset(ctx: ExtensionContext): void;\n\tpublish(ctx: ExtensionContext, signal?: AbortSignal): Promise<void>;\n}\n\nexport function createSyncAttentionController(): SyncAttentionController {\n\tlet state: SyncAttentionState | undefined;\n\tlet observation: StartupObservation | undefined;\n\tlet generation = 0;\n\n\treturn {\n\t\tobserve(value) {\n\t\t\tgeneration++;\n\t\t\tobservation = value;\n\t\t},\n\t\tobservation() {\n\t\t\treturn observation;\n\t\t},\n\t\tclearObservation() {\n\t\t\tgeneration++;\n\t\t\tobservation = undefined;\n\t\t},\n\t\tnotifyObservation(ctx) {\n\t\t\tif (ctx.hasUI && observation && observationNeedsAttention(observation)) {\n\t\t\t\tctx.ui.notify(observationLines(observation).join(\"\\n\"), \"warning\");\n\t\t\t}\n\t\t},\n\t\tset(decision, origin) {\n\t\t\tgeneration++;\n\t\t\tstate = { decision, origin, offered: false };\n\t\t},\n\t\tcurrent() {\n\t\t\treturn state;\n\t\t},\n\t\tmarkOffered() {\n\t\t\tif (!state || state.offered) return false;\n\t\t\tstate = { ...state, offered: true };\n\t\t\treturn true;\n\t\t},\n\t\tclear(ctx) {\n\t\t\tgeneration++;\n\t\t\tstate = undefined;\n\t\t\tclearAttentionPresentation(ctx);\n\t\t},\n\t\treset(ctx) {\n\t\t\tgeneration++;\n\t\t\tstate = undefined;\n\t\t\tobservation = undefined;\n\t\t\tclearAttentionPresentation(ctx);\n\t\t},\n\t\tasync publish(ctx, signal) {\n\t\t\tconst currentGeneration = ++generation;\n\t\t\tif (signal?.aborted || !ctx.hasUI) return;\n\t\t\tconst classification = observation ? classifyObservation(observation) : \"none\";\n\t\t\tif (!state && (classification === \"none\" || classification === \"guidance\")) {\n\t\t\t\tclearAttentionPresentation(ctx);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!state && classification === \"status\") {\n\t\t\t\tctx.ui.setWidget(WIDGET_KEY, undefined);\n\t\t\t\tctx.ui.setStatus(\n\t\t\t\t\tSTATUS_KEY,\n\t\t\t\t\tobservation?.inspection.remoteChanged\n\t\t\t\t\t\t? \"remote changes pending\"\n\t\t\t\t\t\t: \"local changes pending\",\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst presentation = state\n\t\t\t\t? attentionPresentation(state.decision)\n\t\t\t\t: {\n\t\t\t\t\t\tstatus: \"changes to review\",\n\t\t\t\t\t\tlines: observationLines(observation as StartupObservation),\n\t\t\t\t\t};\n\t\t\tif (ctx.mode !== \"tui\") {\n\t\t\t\tctx.ui.setWidget(WIDGET_KEY, undefined);\n\t\t\t\tctx.ui.setStatus(STATUS_KEY, presentation.status);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep Kit outside the eager startup graph; module loading owns no cancellable resources.\n\t\t\tconst { EditorStatusWidget } = await import(\"./attention-widget.js\").catch((error) => {\n\t\t\t\tif (generation === currentGeneration && !signal?.aborted) clearAttentionPresentation(ctx);\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t\tif (generation !== currentGeneration || signal?.aborted) return;\n\t\t\tctx.ui.setStatus(STATUS_KEY, presentation.status);\n\t\t\tctx.ui.setWidget(\n\t\t\t\tWIDGET_KEY,\n\t\t\t\t(_tui, theme) =>\n\t\t\t\t\tnew EditorStatusWidget({\n\t\t\t\t\t\ttheme,\n\t\t\t\t\t\trenderBody: (width) =>\n\t\t\t\t\t\t\tpresentation.lines.map((line, index) =>\n\t\t\t\t\t\t\t\twidth === 0\n\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t: truncateToWidth(theme.fg(index === 0 ? \"warning\" : \"muted\", line), width, \"\u2026\"),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t);\n\t\t},\n\t};\n}\n\nfunction attentionPresentation(decision: RemoteSelectionDecision) {\n\tconst setupName = safeTerminalText(decision.setupName);\n\tconst comparison = compareSyncInclude(decision.localInclude, decision.remoteInclude);\n\tconst difference =\n\t\tcomparison.remoteOnly.length === 0 && comparison.localOnly.length === 0\n\t\t\t? \"Only list order differs\"\n\t\t\t: `Remote ${comparison.remoteOnly.length} \u00B7 Device ${comparison.localOnly.length}`;\n\treturn {\n\t\tstatus: \"review needed\",\n\t\tlines: [`Pi Sync needs review \u00B7 ${setupName}`, difference, \"No changes \u00B7 Run /sync to review\"],\n\t};\n}\n\nexport function observationMatchesConfig(observation: StartupObservation, config: AnySyncConfig) {\n\treturn observation.configIdentity === syncCheckConfigFingerprint(config);\n}\n\nexport function observationSummary(observation: StartupObservation) {\n\tconst result = observation.inspection;\n\tif (result.emptyInclude) return \"No included content selected\";\n\tif (result.selectionState?.kind === \"different\")\n\t\treturn \"Synced-content list differs; review needed\";\n\tif (result.firstSync)\n\t\treturn result.head\n\t\t\t? \"No sync baseline; review remote and local content\"\n\t\t\t: \"Remote empty; no sync baseline\";\n\tif (!result.head) return \"Remote snapshot missing; review needed\";\n\tif (result.localChanged && result.remoteChanged)\n\t\treturn \"Local and remote changed since last sync; review needed\";\n\tif (result.remoteChanged) return \"Remote changed since last sync\";\n\tif (result.localChanged) return \"Local content changed since last sync\";\n\tif (result.selectionState?.kind === \"legacy\")\n\t\treturn \"Legacy remote has no authoritative content list\";\n\treturn \"No changes detected since last sync\";\n}\n\nexport type ObservationClassification = \"none\" | \"guidance\" | \"status\" | \"review\";\n\n/** Presentation only: never discard an observation or authorize a transfer here. */\nexport function classifyObservation(observation: StartupObservation): ObservationClassification {\n\tconst result = observation.inspection;\n\t// Sync now exits before reading remote content when nothing is selected.\n\tif (result.emptyInclude) return \"guidance\";\n\t// Ordering is part of the existing transfer policy, not merely display order.\n\tif (result.selectionState?.kind === \"different\") return \"review\";\n\tif (result.firstSync) return result.head ? \"review\" : \"guidance\";\n\tif (!result.head || (result.localChanged && result.remoteChanged)) return \"review\";\n\tif (result.localChanged || result.remoteChanged) return \"status\";\n\t// Legacy metadata alone requires no scope confirmation in transfer operations.\n\treturn \"none\";\n}\n\nexport function observationNeedsAttention(observation: StartupObservation) {\n\treturn classifyObservation(observation) === \"review\";\n}\n\nfunction observationLines(observation: StartupObservation) {\n\treturn [\n\t\t`Pi Sync check \u00B7 ${safeTerminalText(observation.setupName)}`,\n\t\tobservationSummary(observation),\n\t\t\"No startup transfer \u00B7 Run /sync to review\",\n\t];\n}\n\nfunction clearAttentionPresentation(ctx: ExtensionContext) {\n\tif (!ctx.hasUI) return;\n\tctx.ui.setStatus(STATUS_KEY, undefined);\n\tctx.ui.setWidget(WIDGET_KEY, undefined);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @generated by scripts/build-runtime.mjs; do not edit.
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
|
-
import {
|
|
4
|
-
stateDir
|
|
5
|
-
} from "./chunk-ZI5MXMEX.ts";
|
|
6
3
|
import {
|
|
7
4
|
backendIdentityCoordinates
|
|
8
5
|
} from "./chunk-6LP3MCR2.ts";
|
|
6
|
+
import {
|
|
7
|
+
stateDir
|
|
8
|
+
} from "./chunk-ZI5MXMEX.ts";
|
|
9
9
|
import {
|
|
10
10
|
readJsonIfExists,
|
|
11
11
|
writeJson
|
|
@@ -48,4 +48,4 @@ export {
|
|
|
48
48
|
lockPath,
|
|
49
49
|
ensureStateDir
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-CCSN3F47.ts.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {
|
|
4
4
|
ensureStateDir,
|
|
5
5
|
lockPath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-CCSN3F47.ts";
|
|
7
7
|
import {
|
|
8
8
|
LOCKFILE_FS_ADAPTER,
|
|
9
9
|
LOCK_GUARD_STALE_MS,
|
|
@@ -256,4 +256,4 @@ export {
|
|
|
256
256
|
isStaleLock,
|
|
257
257
|
unlock
|
|
258
258
|
};
|
|
259
|
-
//# sourceMappingURL=chunk-
|
|
259
|
+
//# sourceMappingURL=chunk-ETTRJDNP.ts.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {
|
|
4
4
|
runCancellableOperation,
|
|
5
5
|
showRemoteSelectionReview
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4CHTZMEO.ts";
|
|
7
7
|
import {
|
|
8
8
|
safeTerminalText
|
|
9
9
|
} from "./chunk-LTBWGSBV.ts";
|
|
@@ -212,4 +212,4 @@ async function dispatchManagerResult(ctx, initialResult, origin, runRoute, signa
|
|
|
212
212
|
export {
|
|
213
213
|
dispatchManagerResult
|
|
214
214
|
};
|
|
215
|
-
//# sourceMappingURL=chunk-
|
|
215
|
+
//# sourceMappingURL=chunk-G4RNQQZS.ts.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
3
|
import {
|
|
4
4
|
withLock
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ETTRJDNP.ts";
|
|
6
6
|
import {
|
|
7
7
|
stateDir
|
|
8
8
|
} from "./chunk-ZI5MXMEX.ts";
|
|
@@ -200,4 +200,4 @@ export {
|
|
|
200
200
|
recoverSnapshotTransactionsOnStartup,
|
|
201
201
|
recoverPendingSnapshotTransactions
|
|
202
202
|
};
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
203
|
+
//# sourceMappingURL=chunk-IJ6FJFA5.ts.map
|
|
@@ -6,9 +6,6 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
setSyncSetupCompletions
|
|
8
8
|
} from "./chunk-CHH26D4F.ts";
|
|
9
|
-
import {
|
|
10
|
-
syncErrorGuidance
|
|
11
|
-
} from "./chunk-CPEHGXJV.ts";
|
|
12
9
|
import {
|
|
13
10
|
safeTerminalText
|
|
14
11
|
} from "./chunk-LTBWGSBV.ts";
|
|
@@ -40,6 +37,9 @@ import {
|
|
|
40
37
|
normalizeGitDirectory,
|
|
41
38
|
normalizeGitRemote
|
|
42
39
|
} from "./chunk-TEN2ZBJV.ts";
|
|
40
|
+
import {
|
|
41
|
+
syncErrorGuidance
|
|
42
|
+
} from "./chunk-CPEHGXJV.ts";
|
|
43
43
|
import {
|
|
44
44
|
errorMessage
|
|
45
45
|
} from "./chunk-2B2ELUF5.ts";
|
|
@@ -1252,4 +1252,4 @@ export {
|
|
|
1252
1252
|
showAddWebDavStorageProfile,
|
|
1253
1253
|
showEditWebDavStorageProfile
|
|
1254
1254
|
};
|
|
1255
|
-
//# sourceMappingURL=chunk-
|
|
1255
|
+
//# sourceMappingURL=chunk-KW7YQEZN.ts.map
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// @generated by scripts/build-runtime.mjs; do not edit.
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
|
+
import {
|
|
4
|
+
createSyncBackend
|
|
5
|
+
} from "./chunk-T2B5IU74.ts";
|
|
3
6
|
import {
|
|
4
7
|
hasLocalChanges,
|
|
5
8
|
remoteChangedSinceState
|
|
@@ -10,10 +13,7 @@ import {
|
|
|
10
13
|
import {
|
|
11
14
|
readStateForConfig,
|
|
12
15
|
syncStateFingerprint
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import {
|
|
15
|
-
createSyncBackend
|
|
16
|
-
} from "./chunk-L7TBO32M.ts";
|
|
16
|
+
} from "./chunk-CCSN3F47.ts";
|
|
17
17
|
import {
|
|
18
18
|
createSnapshot
|
|
19
19
|
} from "./chunk-OEX4ABY6.ts";
|
|
@@ -54,4 +54,4 @@ async function inspectSync(config, options, signal, factory = createSyncBackend)
|
|
|
54
54
|
export {
|
|
55
55
|
inspectSync
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
57
|
+
//# sourceMappingURL=chunk-SZWBGPID.ts.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
var createSyncBackend = async (config) => {
|
|
6
6
|
switch (config.backend.type) {
|
|
7
7
|
case "s3": {
|
|
8
|
-
const { S3SyncBackend } = await import("./s3-backend-
|
|
8
|
+
const { S3SyncBackend } = await import("./s3-backend-66O4FGBH.ts");
|
|
9
9
|
return new S3SyncBackend(config.backend);
|
|
10
10
|
}
|
|
11
11
|
case "webdav": {
|
|
@@ -13,7 +13,7 @@ var createSyncBackend = async (config) => {
|
|
|
13
13
|
return new WebDavSyncBackend(config.backend);
|
|
14
14
|
}
|
|
15
15
|
case "git": {
|
|
16
|
-
const { GitSyncBackend } = await import("./git-backend-
|
|
16
|
+
const { GitSyncBackend } = await import("./git-backend-GMVS4PD4.ts");
|
|
17
17
|
return new GitSyncBackend(config.backend);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -22,4 +22,4 @@ var createSyncBackend = async (config) => {
|
|
|
22
22
|
export {
|
|
23
23
|
createSyncBackend
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-T2B5IU74.ts.map
|
|
@@ -3,13 +3,6 @@
|
|
|
3
3
|
import {
|
|
4
4
|
stateDir
|
|
5
5
|
} from "./chunk-ZI5MXMEX.ts";
|
|
6
|
-
import {
|
|
7
|
-
SyncBackendConflictError,
|
|
8
|
-
SyncBackendPublicationOutcomeUnknownError
|
|
9
|
-
} from "./chunk-D5X27LCA.ts";
|
|
10
|
-
import {
|
|
11
|
-
syncErrorGuidance
|
|
12
|
-
} from "./chunk-CPEHGXJV.ts";
|
|
13
6
|
import {
|
|
14
7
|
normalizeGitBranch,
|
|
15
8
|
normalizeGitDirectory,
|
|
@@ -17,6 +10,13 @@ import {
|
|
|
17
10
|
normalizeGitRemoteIdentity,
|
|
18
11
|
validateGitNamespace
|
|
19
12
|
} from "./chunk-TEN2ZBJV.ts";
|
|
13
|
+
import {
|
|
14
|
+
SyncBackendConflictError,
|
|
15
|
+
SyncBackendPublicationOutcomeUnknownError
|
|
16
|
+
} from "./chunk-D5X27LCA.ts";
|
|
17
|
+
import {
|
|
18
|
+
syncErrorGuidance
|
|
19
|
+
} from "./chunk-CPEHGXJV.ts";
|
|
20
20
|
import "./chunk-2B2ELUF5.ts";
|
|
21
21
|
import {
|
|
22
22
|
portableSnapshotSelection,
|
|
@@ -1126,4 +1126,4 @@ export {
|
|
|
1126
1126
|
gitBackendIdentity,
|
|
1127
1127
|
isSupportedGitVersion
|
|
1128
1128
|
};
|
|
1129
|
-
//# sourceMappingURL=git-backend-
|
|
1129
|
+
//# sourceMappingURL=git-backend-GMVS4PD4.ts.map
|
package/dist/chunks/{manager-result-dispatcher-U23ODD32.ts → manager-result-dispatcher-FKIBM3GO.ts}
RENAMED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
3
|
import {
|
|
4
4
|
dispatchManagerResult
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-G4RNQQZS.ts";
|
|
6
|
+
import "./chunk-4CHTZMEO.ts";
|
|
7
7
|
import "./chunk-HUDQATCL.ts";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-T2B5IU74.ts";
|
|
9
9
|
import "./chunk-LTBWGSBV.ts";
|
|
10
10
|
import "./chunk-LCRI3ABW.ts";
|
|
11
11
|
import "./chunk-C7XY5NF5.ts";
|
|
@@ -19,4 +19,4 @@ import "./chunk-JAAKLL6M.ts";
|
|
|
19
19
|
export {
|
|
20
20
|
dispatchManagerResult
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=manager-result-dispatcher-
|
|
22
|
+
//# sourceMappingURL=manager-result-dispatcher-FKIBM3GO.ts.map
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
3
|
import {
|
|
4
4
|
dispatchManagerResult
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-G4RNQQZS.ts";
|
|
6
|
+
import {
|
|
7
|
+
runCancellableOperation
|
|
8
|
+
} from "./chunk-4CHTZMEO.ts";
|
|
6
9
|
import {
|
|
7
10
|
SETUP_SWITCH_ACTION_OPTIONS,
|
|
8
11
|
saveOnSwitch,
|
|
@@ -10,20 +13,22 @@ import {
|
|
|
10
13
|
setupSwitchActionLabel,
|
|
11
14
|
useSyncSetup
|
|
12
15
|
} from "./chunk-SL64RLXR.ts";
|
|
16
|
+
import "./chunk-HUDQATCL.ts";
|
|
17
|
+
import "./chunk-T2B5IU74.ts";
|
|
13
18
|
import {
|
|
14
19
|
observationMatchesConfig,
|
|
15
20
|
observationSummary,
|
|
16
21
|
syncAttentionMatchesConfig
|
|
17
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-5B3FXBLE.ts";
|
|
18
23
|
import {
|
|
19
24
|
inspectLock,
|
|
20
25
|
isLockGuardHeld,
|
|
21
26
|
isStaleLock
|
|
22
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-ETTRJDNP.ts";
|
|
23
28
|
import {
|
|
24
29
|
readStateForConfig,
|
|
25
30
|
syncStateFingerprint
|
|
26
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-CCSN3F47.ts";
|
|
27
32
|
import {
|
|
28
33
|
AUTOMATIC_SYNC_DESCRIPTION,
|
|
29
34
|
applyS3CredentialUpdate,
|
|
@@ -44,20 +49,11 @@ import {
|
|
|
44
49
|
showEditS3Target,
|
|
45
50
|
showEditWebDavStorageProfile,
|
|
46
51
|
showEditWebDavTarget
|
|
47
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-KW7YQEZN.ts";
|
|
48
53
|
import {
|
|
49
54
|
automaticSyncSummary
|
|
50
55
|
} from "./chunk-Z4DQF6L3.ts";
|
|
51
56
|
import "./chunk-CHH26D4F.ts";
|
|
52
|
-
import "./chunk-ZI5MXMEX.ts";
|
|
53
|
-
import {
|
|
54
|
-
syncErrorGuidance
|
|
55
|
-
} from "./chunk-CPEHGXJV.ts";
|
|
56
|
-
import {
|
|
57
|
-
runCancellableOperation
|
|
58
|
-
} from "./chunk-YKJHPTGO.ts";
|
|
59
|
-
import "./chunk-HUDQATCL.ts";
|
|
60
|
-
import "./chunk-L7TBO32M.ts";
|
|
61
57
|
import {
|
|
62
58
|
safeTerminalText
|
|
63
59
|
} from "./chunk-LTBWGSBV.ts";
|
|
@@ -82,7 +78,11 @@ import {
|
|
|
82
78
|
updateLocalConfig
|
|
83
79
|
} from "./chunk-C7XY5NF5.ts";
|
|
84
80
|
import "./chunk-6LP3MCR2.ts";
|
|
81
|
+
import "./chunk-ZI5MXMEX.ts";
|
|
85
82
|
import "./chunk-TEN2ZBJV.ts";
|
|
83
|
+
import {
|
|
84
|
+
syncErrorGuidance
|
|
85
|
+
} from "./chunk-CPEHGXJV.ts";
|
|
86
86
|
import {
|
|
87
87
|
errorMessage
|
|
88
88
|
} from "./chunk-2B2ELUF5.ts";
|
|
@@ -164,7 +164,7 @@ function blockedSyncMenuItem(label, manager) {
|
|
|
164
164
|
};
|
|
165
165
|
}
|
|
166
166
|
async function showManagerAttention(ctx, attention, runRoute, signal, onSelectionResolved) {
|
|
167
|
-
const { showRemoteSelectionReview } = await import("./remote-selection-ui-
|
|
167
|
+
const { showRemoteSelectionReview } = await import("./remote-selection-ui-D7RBRJNL.ts");
|
|
168
168
|
if (signal?.aborted) return "close";
|
|
169
169
|
const review = await showRemoteSelectionReview(
|
|
170
170
|
ctx,
|
|
@@ -767,7 +767,7 @@ async function showSyncSettings(ctx, runRoute, signal) {
|
|
|
767
767
|
},
|
|
768
768
|
"remote-include": async ({ signal: actionSignal }) => {
|
|
769
769
|
const reviewSignal = signal ? AbortSignal.any([signal, actionSignal]) : actionSignal;
|
|
770
|
-
const { showRemoteSelectionReview } = await import("./remote-selection-ui-
|
|
770
|
+
const { showRemoteSelectionReview } = await import("./remote-selection-ui-D7RBRJNL.ts");
|
|
771
771
|
if (reviewSignal.aborted) return { kind: "rejected" };
|
|
772
772
|
const review = await showRemoteSelectionReview(ctx, setupName, reviewSignal, void 0, {
|
|
773
773
|
origin: "settings",
|
|
@@ -1452,7 +1452,7 @@ async function showSyncManager(ctx, runRoute, sessionSignal, options = {}) {
|
|
|
1452
1452
|
if (!attention) {
|
|
1453
1453
|
const observation = options.getObservation?.();
|
|
1454
1454
|
if (!observation) return { kind: "stay" };
|
|
1455
|
-
const { showRemoteSelectionReview } = await import("./remote-selection-ui-
|
|
1455
|
+
const { showRemoteSelectionReview } = await import("./remote-selection-ui-D7RBRJNL.ts");
|
|
1456
1456
|
if (sessionSignal?.aborted) return { kind: "close" };
|
|
1457
1457
|
const config = await loadConfig();
|
|
1458
1458
|
if (sessionSignal?.aborted) return { kind: "close" };
|
|
@@ -1677,4 +1677,4 @@ function syncMainMenuItem(label) {
|
|
|
1677
1677
|
export {
|
|
1678
1678
|
showSyncManager
|
|
1679
1679
|
};
|
|
1680
|
-
//# sourceMappingURL=manager-ui-
|
|
1680
|
+
//# sourceMappingURL=manager-ui-5KLKVMRC.ts.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
3
|
import {
|
|
4
4
|
showRemoteSelectionReview
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4CHTZMEO.ts";
|
|
6
6
|
import "./chunk-HUDQATCL.ts";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-T2B5IU74.ts";
|
|
8
8
|
import "./chunk-LTBWGSBV.ts";
|
|
9
9
|
import "./chunk-LCRI3ABW.ts";
|
|
10
10
|
import "./chunk-C7XY5NF5.ts";
|
|
@@ -18,4 +18,4 @@ import "./chunk-JAAKLL6M.ts";
|
|
|
18
18
|
export {
|
|
19
19
|
showRemoteSelectionReview
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=remote-selection-ui-
|
|
21
|
+
//# sourceMappingURL=remote-selection-ui-D7RBRJNL.ts.map
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
// @generated by scripts/build-runtime.mjs; do not edit.
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
|
+
import {
|
|
4
|
+
sessionTokenWarnings
|
|
5
|
+
} from "./chunk-C7XY5NF5.ts";
|
|
6
|
+
import "./chunk-6LP3MCR2.ts";
|
|
3
7
|
import {
|
|
4
8
|
decodeSnapshot,
|
|
5
9
|
encodeSnapshot
|
|
6
10
|
} from "./chunk-Q2TUM5X6.ts";
|
|
11
|
+
import "./chunk-TEN2ZBJV.ts";
|
|
7
12
|
import {
|
|
8
13
|
SyncBackendConflictError,
|
|
9
14
|
SyncBackendPublicationOutcomeUnknownError
|
|
@@ -11,11 +16,6 @@ import {
|
|
|
11
16
|
import {
|
|
12
17
|
syncErrorGuidance
|
|
13
18
|
} from "./chunk-CPEHGXJV.ts";
|
|
14
|
-
import {
|
|
15
|
-
sessionTokenWarnings
|
|
16
|
-
} from "./chunk-C7XY5NF5.ts";
|
|
17
|
-
import "./chunk-6LP3MCR2.ts";
|
|
18
|
-
import "./chunk-TEN2ZBJV.ts";
|
|
19
19
|
import "./chunk-2B2ELUF5.ts";
|
|
20
20
|
import {
|
|
21
21
|
encodeKey,
|
|
@@ -755,4 +755,4 @@ export {
|
|
|
755
755
|
snapshotKey,
|
|
756
756
|
storageRoot
|
|
757
757
|
};
|
|
758
|
-
//# sourceMappingURL=s3-backend-
|
|
758
|
+
//# sourceMappingURL=s3-backend-66O4FGBH.ts.map
|
|
@@ -5,10 +5,9 @@ import {
|
|
|
5
5
|
showGitSetup,
|
|
6
6
|
showS3Setup,
|
|
7
7
|
showWebDavSetup
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KW7YQEZN.ts";
|
|
9
9
|
import "./chunk-Z4DQF6L3.ts";
|
|
10
10
|
import "./chunk-CHH26D4F.ts";
|
|
11
|
-
import "./chunk-CPEHGXJV.ts";
|
|
12
11
|
import {
|
|
13
12
|
safeTerminalText
|
|
14
13
|
} from "./chunk-LTBWGSBV.ts";
|
|
@@ -19,6 +18,7 @@ import {
|
|
|
19
18
|
} from "./chunk-C7XY5NF5.ts";
|
|
20
19
|
import "./chunk-6LP3MCR2.ts";
|
|
21
20
|
import "./chunk-TEN2ZBJV.ts";
|
|
21
|
+
import "./chunk-CPEHGXJV.ts";
|
|
22
22
|
import {
|
|
23
23
|
errorMessage
|
|
24
24
|
} from "./chunk-2B2ELUF5.ts";
|
|
@@ -86,4 +86,4 @@ async function showSetupWizard(ctx, signal) {
|
|
|
86
86
|
export {
|
|
87
87
|
showSetupWizard
|
|
88
88
|
};
|
|
89
|
-
//# sourceMappingURL=setup-wizard-
|
|
89
|
+
//# sourceMappingURL=setup-wizard-IUB6ESEU.ts.map
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// @ts-nocheck -- generated JavaScript uses a .ts extension for Pi's Jiti loader.
|
|
3
3
|
import {
|
|
4
4
|
inspectSync
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SZWBGPID.ts";
|
|
6
|
+
import "./chunk-T2B5IU74.ts";
|
|
6
7
|
import "./chunk-AUSDLD6F.ts";
|
|
7
8
|
import "./chunk-NJFUIVYL.ts";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-ZI5MXMEX.ts";
|
|
10
|
-
import "./chunk-L7TBO32M.ts";
|
|
9
|
+
import "./chunk-CCSN3F47.ts";
|
|
11
10
|
import "./chunk-6LP3MCR2.ts";
|
|
11
|
+
import "./chunk-ZI5MXMEX.ts";
|
|
12
12
|
import "./chunk-TEN2ZBJV.ts";
|
|
13
13
|
import "./chunk-OEX4ABY6.ts";
|
|
14
14
|
import "./chunk-THMF4BVL.ts";
|
|
@@ -17,4 +17,4 @@ import "./chunk-JAAKLL6M.ts";
|
|
|
17
17
|
export {
|
|
18
18
|
inspectSync
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=sync-inspection-
|
|
20
|
+
//# sourceMappingURL=sync-inspection-CST2KL65.ts.map
|