larkin 0.2.80 → 0.2.82

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.
@@ -612,7 +612,7 @@ export async function main() {
612
612
  };
613
613
  stageBuiltinPiProvider(CFG_DIR, id, { ...raw, apiKey: setupApiKey });
614
614
  temporaryAgentChoiceFile = path.join(CFG_DIR, `.setup-agent-choice-${process.pid}-${Date.now()}.json`);
615
- fs.writeFileSync(temporaryAgentChoiceFile, `${JSON.stringify({ ...raw, authCompleted: true, readinessCompleted: true })}\n`, { mode: 0o600, flag: "wx" });
615
+ fs.writeFileSync(temporaryAgentChoiceFile, `${JSON.stringify({ ...raw, runtime: "pi", authCompleted: true, readinessCompleted: true })}\n`, { mode: 0o600, flag: "wx" });
616
616
  say(`[setup 2/5] ✓ 内置 Pi provider 已配置(${presetId}${setupBaseUrl ? " / custom" : ""})`);
617
617
  }
618
618
  else if (piDistributionFlag === "external" && (setupProvider || setupApiKey || setupBaseUrl)) {
@@ -1,5 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { isWindows } from "../platform/secure-metadata.mjs";
3
4
  import { callbackCapability, documentCommentReplyCapability, documentCommentSubscriptionCapability, } from "../platform/callback-capability.mjs";
4
5
  const BOT_CREDENTIAL_FIELDS = new Set(["appId", "appSecret", "tenant", "ownerOpenId", "createdAt", "updatedAt", "capabilities"]);
5
6
  function validDocumentCommentCapability(value) {
@@ -50,7 +51,8 @@ export function validCredentialRecord(value, appId) {
50
51
  return true;
51
52
  }
52
53
  function isOwnedWithExactMode(stat, mode) {
53
- return (typeof process.getuid !== "function" || stat.uid === process.getuid()) && (stat.mode & 0o777) === mode;
54
+ return (typeof process.getuid !== "function" || stat.uid === process.getuid())
55
+ && (isWindows || (stat.mode & 0o777) === mode);
54
56
  }
55
57
  export function assertSecureBotsDirectory(botsDir) {
56
58
  const stat = fs.lstatSync(botsDir);
@@ -6,6 +6,7 @@ import fs from "node:fs";
6
6
  import path from "node:path";
7
7
  import readline from "node:readline";
8
8
  import { fileURLToPath } from "node:url";
9
+ import { isWindows } from "../platform/secure-metadata.mjs";
9
10
  import { TargetRootLayout } from "../platform/root-layout.mjs";
10
11
  import { planSingleRootBinding } from "./setup-binding.mjs";
11
12
  import { discoverPiModelCatalog } from "../runtime/pi-model-catalog.mjs";
@@ -126,7 +127,7 @@ function readSetupSelection(fileArg) {
126
127
  const stat = fs.lstatSync(file);
127
128
  if (!stat.isFile() || stat.isSymbolicLink()
128
129
  || (typeof process.getuid === "function" && stat.uid !== process.getuid())
129
- || (stat.mode & 0o777) !== 0o600)
130
+ || (!isWindows && (stat.mode & 0o777) !== 0o600))
130
131
  die("setup Agent 选择文件必须是当前用户拥有的 0600 普通文件");
131
132
  const bytes = fs.readFileSync(file, "utf8");
132
133
  fs.unlinkSync(file);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "larkin",
3
- "version": "0.2.80",
3
+ "version": "0.2.82",
4
4
  "private": false,
5
5
  "larkinPackageRole": "npm-published",
6
6
  "files": [