@earendil-works/pi-coding-agent 0.82.1 → 0.84.0
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/CHANGELOG.md +243 -0
- package/README.md +6 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +27 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +2 -2
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts +23 -0
- package/dist/cli/credential-print.d.ts.map +1 -0
- package/dist/cli/credential-print.js +117 -0
- package/dist/cli/credential-print.js.map +1 -0
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +130 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/pi.js +28 -0
- package/dist/cli/experimental/commands/pi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli/list-models.d.ts +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +2 -2
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +2 -2
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/remote-session.d.ts +53 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +340 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +3 -0
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -11
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +85 -76
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +15 -9
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +159 -38
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +43 -20
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +10 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +28 -3
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +10 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +5 -0
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/keybindings.d.ts +36 -4
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/model-config.d.ts +29 -5
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +4 -0
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts +5 -3
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +13 -10
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +4 -3
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +41 -10
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +30 -13
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +231 -73
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/models-store.d.ts +12 -7
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +83 -14
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager.d.ts +4 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +76 -42
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts +8 -0
- package/dist/core/pi-manifest.d.ts.map +1 -0
- package/dist/core/pi-manifest.js +25 -0
- package/dist/core/pi-manifest.js.map +1 -0
- package/dist/core/provider-composer.d.ts +4 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +36 -15
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +73 -67
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader.d.ts +15 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +64 -10
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +5 -5
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js +11 -8
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +3 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +12 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +40 -16
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/find.d.ts +3 -0
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +11 -18
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +11 -2
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +22 -8
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +57 -5
- package/dist/main.js.map +1 -1
- package/dist/modes/index.d.ts +1 -0
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +5 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +13 -4
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +7 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +75 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +20 -5
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +26 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +8 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +30 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +3 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +9 -2
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +33 -2
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +443 -144
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -0
- package/dist/modes/interactive/theme/light.json +1 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +10 -1
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +5 -1
- package/dist/modes/interactive/theme/theme.d.ts +2 -2
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +13 -3
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +28 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +12 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +12 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +5 -4
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +17 -3
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +11 -9
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/rpc-entry.d.ts.map +1 -1
- package/dist/rpc-entry.js +1 -0
- package/dist/rpc-entry.js.map +1 -1
- package/dist/utils/abort.d.ts +5 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +48 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/clipboard.d.ts +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +22 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/management-http.d.ts +23 -0
- package/dist/utils/management-http.d.ts.map +1 -0
- package/dist/utils/management-http.js +50 -0
- package/dist/utils/management-http.js.map +1 -0
- package/dist/utils/paths.d.ts +3 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +23 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts +19 -0
- package/dist/utils/tool-result-images.d.ts.map +1 -0
- package/dist/utils/tool-result-images.js +45 -0
- package/dist/utils/tool-result-images.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +4 -6
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +4 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +20 -2
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +2 -2
- package/docs/custom-provider.md +16 -8
- package/docs/extensions.md +30 -4
- package/docs/json.md +19 -14
- package/docs/keybindings.md +38 -10
- package/docs/models.md +24 -3
- package/docs/providers.md +2 -0
- package/docs/quickstart.md +2 -0
- package/docs/rpc.md +13 -11
- package/docs/sdk.md +21 -2
- package/docs/security.md +1 -1
- package/docs/session-format.md +2 -0
- package/docs/settings.md +4 -1
- package/docs/themes.md +5 -3
- package/docs/usage.md +7 -0
- package/examples/extensions/custom-compaction.ts +1 -16
- package/examples/extensions/custom-provider-anthropic/index.ts +10 -3
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/handoff.ts +2 -11
- package/examples/extensions/qna.ts +3 -7
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/summarize.ts +7 -18
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/rpc-extension-ui.ts +11 -2
- package/examples/sdk/02-custom-model.ts +1 -2
- package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
- package/examples/sdk/12-full-control.ts +3 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +70 -26
- package/package.json +14 -7
|
@@ -30,6 +30,7 @@ import { spawnProcess, spawnProcessSync } from "../utils/child-process.js";
|
|
|
30
30
|
import { parseGitUrl } from "../utils/git.js";
|
|
31
31
|
import { canonicalizePath, isLocalPath, markPathIgnoredByCloudSync, resolvePath } from "../utils/paths.js";
|
|
32
32
|
import { isStdoutTakenOver } from "./output-guard.js";
|
|
33
|
+
import { readPiManifest } from "./pi-manifest.js";
|
|
33
34
|
const NETWORK_TIMEOUT_MS = 10000;
|
|
34
35
|
const UPDATE_CHECK_CONCURRENCY = 4;
|
|
35
36
|
const GIT_UPDATE_CONCURRENCY = 4;
|
|
@@ -360,20 +361,10 @@ function collectAutoThemeEntries(dir) {
|
|
|
360
361
|
}
|
|
361
362
|
return entries;
|
|
362
363
|
}
|
|
363
|
-
function readPiManifestFile(packageJsonPath) {
|
|
364
|
-
try {
|
|
365
|
-
const content = readFileSync(packageJsonPath, "utf-8");
|
|
366
|
-
const pkg = JSON.parse(content);
|
|
367
|
-
return pkg.pi ?? null;
|
|
368
|
-
}
|
|
369
|
-
catch {
|
|
370
|
-
return null;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
364
|
function resolveExtensionEntries(dir) {
|
|
374
365
|
const packageJsonPath = join(dir, "package.json");
|
|
375
366
|
if (existsSync(packageJsonPath)) {
|
|
376
|
-
const manifest =
|
|
367
|
+
const manifest = readPiManifest(packageJsonPath);
|
|
377
368
|
if (manifest?.extensions?.length) {
|
|
378
369
|
const entries = [];
|
|
379
370
|
for (const extPath of manifest.extensions) {
|
|
@@ -1511,13 +1502,21 @@ export class DefaultPackageManager {
|
|
|
1511
1502
|
this.ensureGitIgnore(gitRoot);
|
|
1512
1503
|
}
|
|
1513
1504
|
mkdirSync(dirname(targetDir), { recursive: true });
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
await this.runCommand("git", ["
|
|
1505
|
+
rmSync(this.getGitUpdateMarkerPath(targetDir), { force: true });
|
|
1506
|
+
try {
|
|
1507
|
+
await this.runCommand("git", ["clone", source.repo, targetDir]);
|
|
1508
|
+
if (source.ref) {
|
|
1509
|
+
await this.runCommand("git", ["checkout", source.ref], { cwd: targetDir });
|
|
1510
|
+
}
|
|
1511
|
+
const packageJsonPath = join(targetDir, "package.json");
|
|
1512
|
+
if (existsSync(packageJsonPath)) {
|
|
1513
|
+
await this.runNpmCommand(this.getGitDependencyInstallArgs(), { cwd: targetDir });
|
|
1514
|
+
}
|
|
1517
1515
|
}
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1516
|
+
catch (error) {
|
|
1517
|
+
rmSync(targetDir, { recursive: true, force: true });
|
|
1518
|
+
this.pruneEmptyGitParents(targetDir, gitRoot);
|
|
1519
|
+
throw error;
|
|
1521
1520
|
}
|
|
1522
1521
|
}
|
|
1523
1522
|
async updateGit(source, scope) {
|
|
@@ -1533,6 +1532,53 @@ export class DefaultPackageManager {
|
|
|
1533
1532
|
const target = await this.getLocalGitUpdateTarget(targetDir);
|
|
1534
1533
|
await this.ensureGitRef(targetDir, target.fetchArgs, target.ref);
|
|
1535
1534
|
}
|
|
1535
|
+
hasMissingGitDependencies(targetDir) {
|
|
1536
|
+
const packageJsonPath = join(targetDir, "package.json");
|
|
1537
|
+
if (!existsSync(packageJsonPath))
|
|
1538
|
+
return false;
|
|
1539
|
+
try {
|
|
1540
|
+
const manifest = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
|
|
1541
|
+
if (!manifest.dependencies ||
|
|
1542
|
+
typeof manifest.dependencies !== "object" ||
|
|
1543
|
+
Array.isArray(manifest.dependencies)) {
|
|
1544
|
+
return false;
|
|
1545
|
+
}
|
|
1546
|
+
const nodeModulesDir = resolve(targetDir, "node_modules");
|
|
1547
|
+
return Object.keys(manifest.dependencies).some((name) => {
|
|
1548
|
+
const dependencyPath = resolve(nodeModulesDir, name);
|
|
1549
|
+
if (!dependencyPath.startsWith(`${nodeModulesDir}${sep}`))
|
|
1550
|
+
return false;
|
|
1551
|
+
return !existsSync(dependencyPath);
|
|
1552
|
+
});
|
|
1553
|
+
}
|
|
1554
|
+
catch {
|
|
1555
|
+
return false;
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
async repairMissingGitDependencies(targetDir) {
|
|
1559
|
+
if (!this.hasMissingGitDependencies(targetDir))
|
|
1560
|
+
return;
|
|
1561
|
+
await this.runNpmCommand(this.getGitDependencyInstallArgs(), { cwd: targetDir });
|
|
1562
|
+
}
|
|
1563
|
+
getGitUpdateMarkerPath(targetDir) {
|
|
1564
|
+
return join(dirname(targetDir), `.${basename(targetDir)}.pi-update-incomplete`);
|
|
1565
|
+
}
|
|
1566
|
+
async cleanAndInstallGitDependencies(targetDir, markerPath) {
|
|
1567
|
+
// Clean untracked files (extensions should be pristine). If this fails after
|
|
1568
|
+
// deleting dependencies, repair them so the existing extension still loads.
|
|
1569
|
+
try {
|
|
1570
|
+
await this.runCommand("git", ["clean", "-fdx"], { cwd: targetDir });
|
|
1571
|
+
}
|
|
1572
|
+
catch (error) {
|
|
1573
|
+
await this.repairMissingGitDependencies(targetDir).catch(() => { });
|
|
1574
|
+
throw error;
|
|
1575
|
+
}
|
|
1576
|
+
const packageJsonPath = join(targetDir, "package.json");
|
|
1577
|
+
if (existsSync(packageJsonPath)) {
|
|
1578
|
+
await this.runNpmCommand(this.getGitDependencyInstallArgs(), { cwd: targetDir });
|
|
1579
|
+
}
|
|
1580
|
+
rmSync(markerPath, { force: true });
|
|
1581
|
+
}
|
|
1536
1582
|
async ensureGitRef(targetDir, fetchArgs, ref) {
|
|
1537
1583
|
// Fetch only the ref we will reset to, avoiding unrelated branch/tag noise.
|
|
1538
1584
|
await this.runCommand("git", fetchArgs, { cwd: targetDir });
|
|
@@ -1545,16 +1591,19 @@ export class DefaultPackageManager {
|
|
|
1545
1591
|
cwd: targetDir,
|
|
1546
1592
|
timeoutMs: NETWORK_TIMEOUT_MS,
|
|
1547
1593
|
});
|
|
1594
|
+
const markerPath = this.getGitUpdateMarkerPath(targetDir);
|
|
1548
1595
|
if (localHead.trim() === targetHead.trim()) {
|
|
1596
|
+
if (existsSync(markerPath)) {
|
|
1597
|
+
await this.cleanAndInstallGitDependencies(targetDir, markerPath);
|
|
1598
|
+
}
|
|
1599
|
+
else {
|
|
1600
|
+
await this.repairMissingGitDependencies(targetDir);
|
|
1601
|
+
}
|
|
1549
1602
|
return;
|
|
1550
1603
|
}
|
|
1604
|
+
writeFileSync(markerPath, "", "utf-8");
|
|
1551
1605
|
await this.runCommand("git", ["reset", "--hard", commitRef], { cwd: targetDir });
|
|
1552
|
-
|
|
1553
|
-
await this.runCommand("git", ["clean", "-fdx"], { cwd: targetDir });
|
|
1554
|
-
const packageJsonPath = join(targetDir, "package.json");
|
|
1555
|
-
if (existsSync(packageJsonPath)) {
|
|
1556
|
-
await this.runNpmCommand(this.getGitDependencyInstallArgs(), { cwd: targetDir });
|
|
1557
|
-
}
|
|
1606
|
+
await this.cleanAndInstallGitDependencies(targetDir, markerPath);
|
|
1558
1607
|
}
|
|
1559
1608
|
async refreshTemporaryGitSource(source, sourceStr) {
|
|
1560
1609
|
if (isOfflineModeEnabled()) {
|
|
@@ -1571,9 +1620,8 @@ export class DefaultPackageManager {
|
|
|
1571
1620
|
}
|
|
1572
1621
|
async removeGit(source, scope) {
|
|
1573
1622
|
const targetDir = this.getGitInstallPath(source, scope);
|
|
1574
|
-
if (!existsSync(targetDir))
|
|
1575
|
-
return;
|
|
1576
1623
|
rmSync(targetDir, { recursive: true, force: true });
|
|
1624
|
+
rmSync(this.getGitUpdateMarkerPath(targetDir), { force: true });
|
|
1577
1625
|
this.pruneEmptyGitParents(targetDir, this.getGitInstallRoot(scope));
|
|
1578
1626
|
}
|
|
1579
1627
|
pruneEmptyGitParents(targetDir, installRoot) {
|
|
@@ -1754,7 +1802,7 @@ export class DefaultPackageManager {
|
|
|
1754
1802
|
}
|
|
1755
1803
|
return true;
|
|
1756
1804
|
}
|
|
1757
|
-
const manifest =
|
|
1805
|
+
const manifest = readPiManifest(join(packageRoot, "package.json"));
|
|
1758
1806
|
if (manifest) {
|
|
1759
1807
|
for (const resourceType of RESOURCE_TYPES) {
|
|
1760
1808
|
const entries = manifest[resourceType];
|
|
@@ -1777,7 +1825,7 @@ export class DefaultPackageManager {
|
|
|
1777
1825
|
return hasAnyDir;
|
|
1778
1826
|
}
|
|
1779
1827
|
collectDefaultResources(packageRoot, resourceType, target, metadata) {
|
|
1780
|
-
const manifest =
|
|
1828
|
+
const manifest = readPiManifest(join(packageRoot, "package.json"));
|
|
1781
1829
|
const entries = manifest?.[resourceType];
|
|
1782
1830
|
if (entries) {
|
|
1783
1831
|
this.addManifestEntries(entries, packageRoot, resourceType, target, metadata);
|
|
@@ -1824,7 +1872,7 @@ export class DefaultPackageManager {
|
|
|
1824
1872
|
* that pass the manifest's own patterns.
|
|
1825
1873
|
*/
|
|
1826
1874
|
collectManifestFiles(packageRoot, resourceType) {
|
|
1827
|
-
const manifest =
|
|
1875
|
+
const manifest = readPiManifest(join(packageRoot, "package.json"));
|
|
1828
1876
|
const entries = manifest?.[resourceType];
|
|
1829
1877
|
if (entries && entries.length > 0) {
|
|
1830
1878
|
const allFiles = this.collectFilesFromManifestEntries(entries, packageRoot, resourceType);
|
|
@@ -1839,20 +1887,6 @@ export class DefaultPackageManager {
|
|
|
1839
1887
|
const allFiles = collectResourceFiles(conventionDir, resourceType);
|
|
1840
1888
|
return { allFiles, enabledByManifest: new Set(allFiles) };
|
|
1841
1889
|
}
|
|
1842
|
-
readPiManifest(packageRoot) {
|
|
1843
|
-
const packageJsonPath = join(packageRoot, "package.json");
|
|
1844
|
-
if (!existsSync(packageJsonPath)) {
|
|
1845
|
-
return null;
|
|
1846
|
-
}
|
|
1847
|
-
try {
|
|
1848
|
-
const content = readFileSync(packageJsonPath, "utf-8");
|
|
1849
|
-
const pkg = JSON.parse(content);
|
|
1850
|
-
return pkg.pi ?? null;
|
|
1851
|
-
}
|
|
1852
|
-
catch {
|
|
1853
|
-
return null;
|
|
1854
|
-
}
|
|
1855
|
-
}
|
|
1856
1890
|
addManifestEntries(entries, root, resourceType, target, metadata) {
|
|
1857
1891
|
if (!entries)
|
|
1858
1892
|
return;
|