neon 8.13.0 → 8.13.1
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 +1 -1
- package/dist/_chunks/{checkout-BGvlLc43.js → checkout-CXIOydqZ.js} +3 -3
- package/dist/_chunks/{claim-DqzLXZMN.js → claim-DqAvAvDm.js} +1 -1
- package/dist/_chunks/{config-BnwcGpbq.js → config-BH_qRHiG.js} +1 -1
- package/dist/_chunks/{deploy-BCVcDR1O.js → deploy-D7B0Xfjg.js} +1 -1
- package/dist/_chunks/{dev-mrJKMt2R.js → dev-CSvxAecE.js} +3 -3
- package/dist/_chunks/{git-pN4kMH0d.js → git-H32TNt6M.js} +2 -2
- package/dist/_chunks/{link-DOM84hYj.js → link-BgtkOBws.js} +2 -2
- package/dist/_chunks/{status-DoNjIbKf.js → status-DV8Z2kw3.js} +1 -1
- package/dist/commands/checkout.js +1 -1
- package/dist/commands/claim.js +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/deploy.js +1 -1
- package/dist/commands/dev.js +1 -1
- package/dist/commands/env.js +1 -1
- package/dist/commands/functions_new.js +1 -1
- package/dist/commands/git.js +1 -1
- package/dist/commands/index.js +9 -9
- package/dist/commands/link.js +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/subscribe.js +1 -1
- package/dist/init/auth.js +1 -1
- package/dist/init/link.js +1 -1
- package/dist/init/run.js +3 -3
- package/dist/skills/freshness.js +61 -11
- package/dist/skills/run.js +4 -2
- package/package.json +3 -3
- package/dist/_chunks/{env-uVRY4xah.js → env-5HS5qQGd.js} +1 -1
package/README.md
CHANGED
|
@@ -955,7 +955,7 @@ The default mints an account-wide API key (or reuses the Bearer already configur
|
|
|
955
955
|
|
|
956
956
|
## Install Neon agent skills (`skills`)
|
|
957
957
|
|
|
958
|
-
`neon skills` installs Neon agent skills by running `npx skills add
|
|
958
|
+
`neon skills` installs Neon agent skills by running `npx skills@latest add`, so it always uses the latest skills CLI, even when an older one is installed globally. It does not call the Neon API. This command needs Node.js 22.20 or newer. The rest of the CLI supports Node.js 20.19 or newer.
|
|
959
959
|
|
|
960
960
|
```bash
|
|
961
961
|
# Interactive: this directory, then agents, then skills.
|
|
@@ -11,9 +11,9 @@ import { looksLikeBranchId } from "../utils/formats.js";
|
|
|
11
11
|
import { fillSingleProject, listAllProjectBranches } from "../utils/enrichers.js";
|
|
12
12
|
import { buildCheckoutEvent, readGitContext } from "../utils/git.js";
|
|
13
13
|
import { buildHookBranch, loadHookConfig, resolveHookEnv, runCheckoutAfterHook, runCheckoutBeforeHook, runCreateAfterHook, runCreateBeforeHook } from "../utils/hooks.js";
|
|
14
|
-
import { n as autoPullEnvAfterPin } from "./env-
|
|
15
|
-
import { a as applyPolicyOnCreate, f as envFlag, l as createBranchFromPolicyOnCheckout } from "./config-
|
|
16
|
-
import { i as handler$1 } from "./link-
|
|
14
|
+
import { n as autoPullEnvAfterPin } from "./env-5HS5qQGd.js";
|
|
15
|
+
import { a as applyPolicyOnCreate, f as envFlag, l as createBranchFromPolicyOnCheckout } from "./config-BH_qRHiG.js";
|
|
16
|
+
import { i as handler$1 } from "./link-BgtkOBws.js";
|
|
17
17
|
import chalk from "chalk";
|
|
18
18
|
import prompts from "prompts";
|
|
19
19
|
//#region src/commands/checkout.ts
|
|
@@ -12,7 +12,7 @@ import { projectConfigPath } from "../project.js";
|
|
|
12
12
|
import { resolveEnvFilePath } from "../env_file.js";
|
|
13
13
|
import { writer } from "../writer.js";
|
|
14
14
|
import { noPassthrough } from "../utils/flags.js";
|
|
15
|
-
import { c as pull } from "./env-
|
|
15
|
+
import { c as pull } from "./env-5HS5qQGd.js";
|
|
16
16
|
import { existsSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
|
|
17
17
|
import open from "open";
|
|
18
18
|
import prompts from "prompts";
|
|
@@ -23,7 +23,7 @@ import { readGitContext } from "../utils/git.js";
|
|
|
23
23
|
import { resolveHookEnv, runDeployAfterHook, runDeployBeforeHook } from "../utils/hooks.js";
|
|
24
24
|
import { pickServicesInteractively } from "../utils/service_picker.js";
|
|
25
25
|
import { zipBundle } from "../utils/zip.js";
|
|
26
|
-
import { n as autoPullEnvAfterPin } from "./env-
|
|
26
|
+
import { n as autoPullEnvAfterPin } from "./env-5HS5qQGd.js";
|
|
27
27
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
28
28
|
import { dirname, join, relative, resolve } from "node:path";
|
|
29
29
|
import chalk from "chalk";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { fillSingleProject } from "../utils/enrichers.js";
|
|
3
|
-
import { f as envFlag, i as applyFlags, p as envPullFlag, r as applyCmd } from "./config-
|
|
3
|
+
import { f as envFlag, i as applyFlags, p as envPullFlag, r as applyCmd } from "./config-BH_qRHiG.js";
|
|
4
4
|
import { DEPLOY_COMMANDS_EPILOGUE } from "../commands/deploy_help.js";
|
|
5
5
|
//#region src/commands/deploy.ts
|
|
6
6
|
var deploy_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -4,12 +4,12 @@ import { isClaimableEnvTarget } from "../claimable/state.js";
|
|
|
4
4
|
import { getCliName } from "../utils/cli_name.js";
|
|
5
5
|
import { defaultDevEnvFiles, readEnvFile, resolveEnvFilePath } from "../env_file.js";
|
|
6
6
|
import { l as functionBaseUrlKey } from "./env-BpP3Dqpe.js";
|
|
7
|
+
import { branchIdResolve } from "../utils/enrichers.js";
|
|
8
|
+
import { bundleEntry } from "../utils/esbuild.js";
|
|
7
9
|
import { a as resolveDevEnv } from "./env-BNm69Qh8.js";
|
|
10
|
+
import { f as envFlag } from "./config-BH_qRHiG.js";
|
|
8
11
|
import { findConfigFunctionBySource, resolveFunctionsFromConfig } from "../dev/functions.js";
|
|
9
12
|
import { resolveWatchInputs } from "../dev/inputs.js";
|
|
10
|
-
import { branchIdResolve } from "../utils/enrichers.js";
|
|
11
|
-
import { bundleEntry } from "../utils/esbuild.js";
|
|
12
|
-
import { f as envFlag } from "./config-BnwcGpbq.js";
|
|
13
13
|
import { existsSync, mkdirSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
14
14
|
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
15
15
|
import { fileURLToPath } from "node:url";
|
|
@@ -5,8 +5,8 @@ import { CONTEXT_FILE, contextBranch, gitBranchMap, gitBranchMapping, isUnfollow
|
|
|
5
5
|
import { writer } from "../writer.js";
|
|
6
6
|
import { neonSafeBranchName } from "../utils/branch_name.js";
|
|
7
7
|
import { currentGitBranch, gitPull, gitRepoRoot, hasUpstream, installPostCheckoutHook, isGitRepo, isManagedHook, localGitBranches, postCheckoutHookPath, readGitContext, removePostCheckoutHook } from "../utils/git.js";
|
|
8
|
-
import { o as quoteFlagValue } from "./link-
|
|
9
|
-
import { o as handler$1 } from "./checkout-
|
|
8
|
+
import { o as quoteFlagValue } from "./link-BgtkOBws.js";
|
|
9
|
+
import { o as handler$1 } from "./checkout-CXIOydqZ.js";
|
|
10
10
|
import { existsSync } from "node:fs";
|
|
11
11
|
import { join } from "node:path";
|
|
12
12
|
import chalk from "chalk";
|
|
@@ -13,8 +13,8 @@ import { writer } from "../writer.js";
|
|
|
13
13
|
import { createBranch, pickBranchInteractively } from "../utils/branch_picker.js";
|
|
14
14
|
import { looksLikeBranchId } from "../utils/formats.js";
|
|
15
15
|
import { listAllProjectBranches } from "../utils/enrichers.js";
|
|
16
|
-
import { n as autoPullEnvAfterPin } from "./env-
|
|
17
|
-
import { h as initCmd } from "./config-
|
|
16
|
+
import { n as autoPullEnvAfterPin } from "./env-5HS5qQGd.js";
|
|
17
|
+
import { h as initCmd } from "./config-BH_qRHiG.js";
|
|
18
18
|
import { formatLinkSummary } from "../commands/link_output.js";
|
|
19
19
|
import { r as REGIONS } from "./projects-BwI2Uo0z.js";
|
|
20
20
|
import prompts from "prompts";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
2
|
import { fillSingleProject } from "../utils/enrichers.js";
|
|
3
|
-
import { y as status } from "./config-
|
|
3
|
+
import { y as status } from "./config-BH_qRHiG.js";
|
|
4
4
|
//#region src/commands/status.ts
|
|
5
5
|
var status_exports = /* @__PURE__ */ __exportAll({
|
|
6
6
|
builder: () => builder,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as builder, r as command, i as describe, a as formatCheckoutPolicyFailure, o as handler } from "../_chunks/checkout-
|
|
1
|
+
export { t as builder, r as command, i as describe, a as formatCheckoutPolicyFailure, o as handler } from "../_chunks/checkout-CXIOydqZ.js";
|
package/dist/commands/claim.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as CLAIM_CREATE_FIELDS, n as CLAIM_LIST_FIELDS, r as aliases, i as builder, a as claimCreateFields, s as claimableCapabilities, c as command, l as create, u as describe, d as handler } from "../_chunks/claim-
|
|
1
|
+
export { t as CLAIM_CREATE_FIELDS, n as CLAIM_LIST_FIELDS, r as aliases, i as builder, a as claimCreateFields, s as claimableCapabilities, c as command, l as create, u as describe, d as handler } from "../_chunks/claim-DqAvAvDm.js";
|
package/dist/commands/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ConfigInstallFailed, n as addCmd, r as applyCmd, i as applyFlags, a as applyPolicyOnCreate, o as builder, s as command, l as createBranchFromPolicyOnCheckout, u as describe, d as ensureConfigPackages, f as envFlag, p as envPullFlag, m as handler, h as initCmd, g as installCommandFrom, _ as missingDependencies, v as planCmd, y as status } from "../_chunks/config-
|
|
1
|
+
export { t as ConfigInstallFailed, n as addCmd, r as applyCmd, i as applyFlags, a as applyPolicyOnCreate, o as builder, s as command, l as createBranchFromPolicyOnCheckout, u as describe, d as ensureConfigPackages, f as envFlag, p as envPullFlag, m as handler, h as initCmd, g as installCommandFrom, _ as missingDependencies, v as planCmd, y as status } from "../_chunks/config-BH_qRHiG.js";
|
package/dist/commands/deploy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as builder, n as command, i as describe, a as handler } from "../_chunks/deploy-
|
|
1
|
+
export { t as builder, n as command, i as describe, a as handler } from "../_chunks/deploy-D7B0Xfjg.js";
|
package/dist/commands/dev.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as builder, n as captureShellEnv, r as command, i as describe, a as devBundleDir, o as devEnvContext, c as diffUnits, l as formatEnvFiles, u as formatEnvSummary, d as handler, f as loadDevEnvFiles, p as localFunctionUrlEnv, m as planFunctionsToUnits, h as reportDevCredential, g as sourceFunctionUrlOverlay } from "../_chunks/dev-
|
|
1
|
+
export { t as builder, n as captureShellEnv, r as command, i as describe, a as devBundleDir, o as devEnvContext, c as diffUnits, l as formatEnvFiles, u as formatEnvSummary, d as handler, f as loadDevEnvFiles, p as localFunctionUrlEnv, m as planFunctionsToUnits, h as reportDevCredential, g as sourceFunctionUrlOverlay } from "../_chunks/dev-CSvxAecE.js";
|
package/dist/commands/env.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ENV_PULL_SKIPPED_HINT, n as autoPullEnvAfterPin, r as builder, i as command, a as describe, s as handler, c as pull } from "../_chunks/env-
|
|
1
|
+
export { t as ENV_PULL_SKIPPED_HINT, n as autoPullEnvAfterPin, r as builder, i as command, a as describe, s as handler, c as pull } from "../_chunks/env-5HS5qQGd.js";
|
|
@@ -8,7 +8,7 @@ import { writer } from "../writer.js";
|
|
|
8
8
|
import { formatInitDone, printInitDone } from "../init/chrome.js";
|
|
9
9
|
import { FUNCTION_SLUG_PATTERN, deriveFunctionSlug } from "../utils/function_slug.js";
|
|
10
10
|
import { displayPath } from "./env_output.js";
|
|
11
|
-
import { _ as missingDependencies, d as ensureConfigPackages, g as installCommandFrom } from "../_chunks/config-
|
|
11
|
+
import { _ as missingDependencies, d as ensureConfigPackages, g as installCommandFrom } from "../_chunks/config-BH_qRHiG.js";
|
|
12
12
|
import { recommendedOperations } from "../functions/registry.js";
|
|
13
13
|
import { collidingFiles, operationsFromFlags, planConfigRegistration, planEnvExample, planScaffold, writeScaffold } from "../functions/scaffold.js";
|
|
14
14
|
import { describeRegistrySource, openRegistry } from "../functions/source.js";
|
package/dist/commands/git.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as aliases, n as builder, r as cleanup, i as command, a as describe, s as handler, c as install, l as partitionBranchesToPrune, u as status, d as sync, f as uninstall } from "../_chunks/git-
|
|
1
|
+
export { t as aliases, n as builder, r as cleanup, i as command, a as describe, s as handler, c as install, l as partitionBranchesToPrune, u as status, d as sync, f as uninstall } from "../_chunks/git-H32TNt6M.js";
|
package/dist/commands/index.js
CHANGED
|
@@ -2,29 +2,29 @@ import { r as auth_exports } from "../_chunks/auth-CIUtXByB.js";
|
|
|
2
2
|
import { t as api_exports } from "../_chunks/api-GbEaBZJ5.js";
|
|
3
3
|
import { n as api_keys_exports } from "../_chunks/api_keys-CNnnugbQ.js";
|
|
4
4
|
import { n as ask_exports } from "../_chunks/ask-DVwy0eUL.js";
|
|
5
|
-
import { o as env_exports } from "../_chunks/env-
|
|
6
|
-
import { c as config_exports } from "../_chunks/config-
|
|
5
|
+
import { o as env_exports } from "../_chunks/env-5HS5qQGd.js";
|
|
6
|
+
import { c as config_exports } from "../_chunks/config-BH_qRHiG.js";
|
|
7
7
|
import { u as projects_exports } from "../_chunks/projects-BwI2Uo0z.js";
|
|
8
|
-
import { a as link_exports } from "../_chunks/link-
|
|
8
|
+
import { a as link_exports } from "../_chunks/link-BgtkOBws.js";
|
|
9
9
|
import { o as mcp_exports } from "../_chunks/mcp-Bo-7TKc7.js";
|
|
10
10
|
import { c as plugins_exports } from "../_chunks/plugins-DqD7BDO1.js";
|
|
11
11
|
import { l as skills_exports } from "../_chunks/skills-BP6pIm7O.js";
|
|
12
12
|
import { t as bootstrap_exports } from "../_chunks/bootstrap-wPZWa1sT.js";
|
|
13
13
|
import { r as branches_exports } from "../_chunks/branches-BNa1xX1L.js";
|
|
14
14
|
import { n as bucket_exports } from "../_chunks/bucket-BCdryTkD.js";
|
|
15
|
-
import { n as checkout_exports } from "../_chunks/checkout-
|
|
16
|
-
import { o as claim_exports } from "../_chunks/claim-
|
|
15
|
+
import { n as checkout_exports } from "../_chunks/checkout-CXIOydqZ.js";
|
|
16
|
+
import { o as claim_exports } from "../_chunks/claim-DqAvAvDm.js";
|
|
17
17
|
import { a as connection_string_exports } from "../_chunks/connection_string-DB4awPzZ.js";
|
|
18
18
|
import { a as credentials_exports } from "../_chunks/credentials-BSjE9fRR.js";
|
|
19
19
|
import { r as data_api_exports } from "../_chunks/data_api-Djxj5ZQD.js";
|
|
20
20
|
import { o as databases_exports } from "../_chunks/databases-Dok4wru7.js";
|
|
21
|
-
import { r as deploy_exports } from "../_chunks/deploy-
|
|
22
|
-
import { s as dev_exports } from "../_chunks/dev-
|
|
21
|
+
import { r as deploy_exports } from "../_chunks/deploy-D7B0Xfjg.js";
|
|
22
|
+
import { s as dev_exports } from "../_chunks/dev-CSvxAecE.js";
|
|
23
23
|
import { i as diff_exports } from "../_chunks/diff-DhxxbdQE.js";
|
|
24
24
|
import { c as docs_exports } from "../_chunks/docs-CrVybkTP.js";
|
|
25
25
|
import { o as feedback_exports } from "../_chunks/feedback-CMayyTa8.js";
|
|
26
26
|
import { o as functions_exports } from "../_chunks/functions-Q0zuvtnk.js";
|
|
27
|
-
import { o as git_exports } from "../_chunks/git-
|
|
27
|
+
import { o as git_exports } from "../_chunks/git-H32TNt6M.js";
|
|
28
28
|
import { a as init_exports } from "../_chunks/init-BkA6RilG.js";
|
|
29
29
|
import { o as inspect_exports } from "../_chunks/inspect-g0wekylj.js";
|
|
30
30
|
import { a as ip_allow_exports } from "../_chunks/ip_allow-5lLFvIuE.js";
|
|
@@ -39,7 +39,7 @@ import { s as realtime_exports } from "../_chunks/realtime-BRqIyGR-.js";
|
|
|
39
39
|
import { l as roles_exports } from "../_chunks/roles-B4w3YT_7.js";
|
|
40
40
|
import { a as set_context_exports } from "../_chunks/set_context-DbrwoImy.js";
|
|
41
41
|
import { s as snapshots_exports } from "../_chunks/snapshots-RJBzW8GM.js";
|
|
42
|
-
import { a as status_exports } from "../_chunks/status-
|
|
42
|
+
import { a as status_exports } from "../_chunks/status-DV8Z2kw3.js";
|
|
43
43
|
import { d as triggers_exports } from "../_chunks/triggers-BrRo1z4b.js";
|
|
44
44
|
import { s as user_exports } from "../_chunks/user-dlOGXbX9.js";
|
|
45
45
|
import { i as vpc_endpoints_exports } from "../_chunks/vpc_endpoints-CNb0YfMo.js";
|
package/dist/commands/link.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as builder, n as command, r as describe, i as handler, o as quoteFlagValue, s as runLink, c as shouldOfferConfigInit } from "../_chunks/link-
|
|
1
|
+
export { t as builder, n as command, r as describe, i as handler, o as quoteFlagValue, s as runLink, c as shouldOfferConfigInit } from "../_chunks/link-BgtkOBws.js";
|
package/dist/commands/status.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as builder, n as command, r as describe, i as handler } from "../_chunks/status-
|
|
1
|
+
export { t as builder, n as command, r as describe, i as handler } from "../_chunks/status-DV8Z2kw3.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { writer } from "../writer.js";
|
|
2
|
-
import { o as resolveNeonEnvVars } from "../_chunks/env-BNm69Qh8.js";
|
|
3
2
|
import { branchIdFromProps } from "../utils/enrichers.js";
|
|
3
|
+
import { o as resolveNeonEnvVars } from "../_chunks/env-BNm69Qh8.js";
|
|
4
4
|
import YAML from "yaml";
|
|
5
5
|
//#region src/commands/subscribe.ts
|
|
6
6
|
const builder = (argv) => argv.usage("$0 realtime subscribe \"<query>\" [options]").positional("query", {
|
package/dist/init/auth.js
CHANGED
|
@@ -4,7 +4,7 @@ import "../config.js";
|
|
|
4
4
|
import "../auth.js";
|
|
5
5
|
import { c as ensureAuth } from "../_chunks/auth-CIUtXByB.js";
|
|
6
6
|
import { recoverFrom401 } from "../auth_recovery.js";
|
|
7
|
-
import { c as pull } from "../_chunks/env-
|
|
7
|
+
import { c as pull } from "../_chunks/env-5HS5qQGd.js";
|
|
8
8
|
import { c as setupNeonMcp } from "../_chunks/mcp-Bo-7TKc7.js";
|
|
9
9
|
//#region src/init/auth.ts
|
|
10
10
|
const isUnauthorized = (error) => isNeonApiError(error) && error.status === 401;
|
package/dist/init/link.js
CHANGED
|
@@ -4,7 +4,7 @@ import "../config.js";
|
|
|
4
4
|
import "../auth.js";
|
|
5
5
|
import { c as ensureAuth } from "../_chunks/auth-CIUtXByB.js";
|
|
6
6
|
import { recoverFrom401 } from "../auth_recovery.js";
|
|
7
|
-
import { s as runLink } from "../_chunks/link-
|
|
7
|
+
import { s as runLink } from "../_chunks/link-BgtkOBws.js";
|
|
8
8
|
//#region src/init/link.ts
|
|
9
9
|
const isUnauthorized = (error) => isNeonApiError(error) && error.status === 401;
|
|
10
10
|
const authenticationFailed = () => /* @__PURE__ */ new Error("Authentication failed.");
|
package/dist/init/run.js
CHANGED
|
@@ -17,15 +17,15 @@ import { FALLBACK_SKILLS_AGENTS, assertNamedAgentTooling, funnelAgentSetup, plan
|
|
|
17
17
|
import { inferPackageManager, resolvePackageManager } from "../utils/package_manager.js";
|
|
18
18
|
import { CANCELLED_BODY, CLAIMABLE_ACCOUNT_FLAGS, CLAIMABLE_ALREADY_LINKED, CLAIMABLE_MCP_API_KEY, CLAIMABLE_NO_LINK, MCP_API_KEY_NEEDS_AUTH, MCP_SCOPED_NEEDS_PROJECT, NON_TTY_LINK_NEEDS_AUTH, NO_AGENTS_FALLBACK_STATUS, PROGRESS, PROJECT_PINNED_OFFLINE, claimableNext, claimableThenServicesNext, configInitNext, envPullFailedNext, existingConfigNext, installFailedNext, mcpAfterLinkNext, mcpConfigLocationSkipped, mcpConfigLocationUnavailable, mcpKeyFailedNext, namedAgentsUnavailable, newConfigNext, offlinePinNext, skippedLinkNext, unattendedUnauthedNext } from "./copy.js";
|
|
19
19
|
import { agentsRowValue, configRowValue, formatInitDone, headingForKind, printInitBanner, printInitDone, printInitProgress, projectRowValue, shouldPrintInitBanner } from "./chrome.js";
|
|
20
|
-
import { h as initCmd, t as ConfigInstallFailed } from "../_chunks/config-
|
|
21
|
-
import { o as quoteFlagValue, s as runLink } from "../_chunks/link-
|
|
20
|
+
import { h as initCmd, t as ConfigInstallFailed } from "../_chunks/config-BH_qRHiG.js";
|
|
21
|
+
import { o as quoteFlagValue, s as runLink } from "../_chunks/link-BgtkOBws.js";
|
|
22
22
|
import { runAuthenticatedLink } from "./link.js";
|
|
23
23
|
import { CannotMintApiKeyError } from "../mcp/mint.js";
|
|
24
24
|
import { pullInitEnv } from "./auth.js";
|
|
25
25
|
import { InitCancelled, raceSigint, restoreCursor } from "./cancelled.js";
|
|
26
26
|
import { pickAgentSetupInteractively, pickInitAgentsInteractively, pickInitConfigInteractively, pickInitMcpAuthInteractively, pickInitMcpConfigLocationInteractively, pickInitModeInteractively, pickInitPackageManagerInteractively, pickInitProjectSetupInteractively, pickInitServicesInteractively, pickInitSkillsInteractively } from "./wizard.js";
|
|
27
27
|
import { runToolingSteps } from "./tooling.js";
|
|
28
|
-
import { l as create } from "../_chunks/claim-
|
|
28
|
+
import { l as create } from "../_chunks/claim-DqAvAvDm.js";
|
|
29
29
|
import { INIT_CONFIG_SERVICES_CONFLICT, configPlanFromResolution, initEnvPullAfterConfig, resolveInitConfigChoice } from "./choices.js";
|
|
30
30
|
import { detectInitEnvironment } from "./detect.js";
|
|
31
31
|
import { createInitFunnel, emitInitStart, finishInitFunnel, initStartProperties } from "./funnel.js";
|
package/dist/skills/freshness.js
CHANGED
|
@@ -83,17 +83,23 @@ const folderKey = ({ source, folder }) => `${source}:${folder}`;
|
|
|
83
83
|
/** `undefined` when the remote side has not been fetched yet. */
|
|
84
84
|
const skillStatus = (skill, remote) => {
|
|
85
85
|
if (remote?.missing === true) return "not found upstream";
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
if (skill.hashKind === "tree") {
|
|
87
|
+
if (remote?.tree === void 0) return void 0;
|
|
88
|
+
return remote.tree === skill.hash ? "up to date" : "outdated";
|
|
89
|
+
}
|
|
90
|
+
if (remote?.content === void 0) return void 0;
|
|
91
|
+
if (skill.hash === remote.content) return "up to date";
|
|
92
|
+
if (remote.contentCrlf === void 0) return void 0;
|
|
93
|
+
return skill.hash === remote.contentCrlf ? "up to date" : "outdated";
|
|
89
94
|
};
|
|
90
95
|
const parseRemoteFolder = (value) => {
|
|
91
96
|
if (!isRecord(value)) return void 0;
|
|
92
|
-
const { tree, content, missing, pending } = value;
|
|
93
|
-
if (tree !== void 0 && typeof tree !== "string" || content !== void 0 && typeof content !== "string" || missing !== void 0 && missing !== true || pending !== void 0 && pending !== true) return;
|
|
97
|
+
const { tree, content, contentCrlf, missing, pending } = value;
|
|
98
|
+
if (tree !== void 0 && typeof tree !== "string" || content !== void 0 && typeof content !== "string" || contentCrlf !== void 0 && typeof contentCrlf !== "string" || missing !== void 0 && missing !== true || pending !== void 0 && pending !== true) return;
|
|
94
99
|
return {
|
|
95
100
|
...tree === void 0 ? {} : { tree },
|
|
96
101
|
...content === void 0 ? {} : { content },
|
|
102
|
+
...contentCrlf === void 0 ? {} : { contentCrlf },
|
|
97
103
|
...missing === void 0 ? {} : { missing },
|
|
98
104
|
...pending === void 0 ? {} : { pending }
|
|
99
105
|
};
|
|
@@ -137,6 +143,41 @@ const skillContentHash = (files) => {
|
|
|
137
143
|
}
|
|
138
144
|
return hash.digest("hex");
|
|
139
145
|
};
|
|
146
|
+
const LF = 10;
|
|
147
|
+
const CR = 13;
|
|
148
|
+
/** Control bytes Git counts as printable text: backspace, tab, form feed, escape. */
|
|
149
|
+
const PRINTABLE_CONTROLS = /* @__PURE__ */ new Set([
|
|
150
|
+
8,
|
|
151
|
+
9,
|
|
152
|
+
12,
|
|
153
|
+
27
|
|
154
|
+
]);
|
|
155
|
+
/**
|
|
156
|
+
* The bytes Git writes for a blob when `core.autocrlf=true`, the Git for Windows default. The
|
|
157
|
+
* skills CLI hashes that checkout, so a Windows install records a hash of these bytes. Mirrors
|
|
158
|
+
* Git's `convert.c`: a blob that has any CR, a NUL, or mostly non-printable bytes is written
|
|
159
|
+
* unchanged, and every LF in any other blob becomes CRLF.
|
|
160
|
+
*/
|
|
161
|
+
const autocrlfCheckout = (bytes) => {
|
|
162
|
+
let lf = 0;
|
|
163
|
+
let printable = 0;
|
|
164
|
+
let nonprintable = 0;
|
|
165
|
+
for (const byte of bytes) {
|
|
166
|
+
if (byte === CR || byte === 0) return bytes;
|
|
167
|
+
if (byte === LF) lf += 1;
|
|
168
|
+
else if (byte === 127 || byte < 32 && !PRINTABLE_CONTROLS.has(byte)) nonprintable += 1;
|
|
169
|
+
else printable += 1;
|
|
170
|
+
}
|
|
171
|
+
if (bytes[bytes.length - 1] === 26) nonprintable -= 1;
|
|
172
|
+
if (lf === 0 || printable >> 7 < nonprintable) return bytes;
|
|
173
|
+
const out = new Uint8Array(bytes.length + lf);
|
|
174
|
+
let at = 0;
|
|
175
|
+
for (const byte of bytes) {
|
|
176
|
+
if (byte === LF) out[at++] = CR;
|
|
177
|
+
out[at++] = byte;
|
|
178
|
+
}
|
|
179
|
+
return out;
|
|
180
|
+
};
|
|
140
181
|
const gitBlobSha = (bytes) => createHash("sha1").update(`blob ${bytes.byteLength}\0`).update(bytes).digest("hex");
|
|
141
182
|
const isTreeEntry = (value) => isRecord(value) && typeof value.path === "string" && typeof value.mode === "string" && typeof value.type === "string" && typeof value.sha === "string";
|
|
142
183
|
const githubHeaders = (env) => {
|
|
@@ -168,7 +209,7 @@ const folderFiles = (tree, folder) => tree.filter((entry) => {
|
|
|
168
209
|
const dirs = entry.path.slice(folder.length + 1).split("/").slice(0, -1);
|
|
169
210
|
return !dirs.includes(".git") && !dirs.includes("node_modules");
|
|
170
211
|
});
|
|
171
|
-
const
|
|
212
|
+
const fetchContentHashes = async (source, folder, tree) => {
|
|
172
213
|
const files = await Promise.all(folderFiles(tree, folder).map(async (entry) => {
|
|
173
214
|
const path = entry.path.split("/").map(encodeURIComponent).join("/");
|
|
174
215
|
const response = await fetch(`https://raw.githubusercontent.com/${source}/HEAD/${path}`, { signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
|
|
@@ -180,7 +221,13 @@ const fetchContentHash = async (source, folder, tree) => {
|
|
|
180
221
|
bytes
|
|
181
222
|
};
|
|
182
223
|
}));
|
|
183
|
-
return
|
|
224
|
+
return {
|
|
225
|
+
content: skillContentHash(files),
|
|
226
|
+
contentCrlf: skillContentHash(files.map((file) => ({
|
|
227
|
+
...file,
|
|
228
|
+
bytes: autocrlfCheckout(file.bytes)
|
|
229
|
+
})))
|
|
230
|
+
};
|
|
184
231
|
};
|
|
185
232
|
/**
|
|
186
233
|
* The folders to fetch: the given skills, plus every folder already in the cache so
|
|
@@ -232,11 +279,14 @@ const refreshSkillsCheckCache = async ({ cachePath, skills, env = process.env, n
|
|
|
232
279
|
continue;
|
|
233
280
|
}
|
|
234
281
|
const prior = previous[key];
|
|
235
|
-
let
|
|
236
|
-
|
|
282
|
+
let hashes = prior?.tree === node.sha && prior.content !== void 0 && prior.contentCrlf !== void 0 ? {
|
|
283
|
+
content: prior.content,
|
|
284
|
+
contentCrlf: prior.contentCrlf
|
|
285
|
+
} : void 0;
|
|
286
|
+
if (request.content && hashes === void 0) hashes = await fetchContentHashes(source, request.folder, tree);
|
|
237
287
|
folders[key] = {
|
|
238
288
|
tree: node.sha,
|
|
239
|
-
...
|
|
289
|
+
...hashes
|
|
240
290
|
};
|
|
241
291
|
}
|
|
242
292
|
}
|
|
@@ -394,4 +444,4 @@ const notifyIfSkillsOutdated = ({ configDir, cwd, now = Date.now() }) => {
|
|
|
394
444
|
}, "skills check cache")) spawnSkillsCheckWorker(cachePath, cwd);
|
|
395
445
|
};
|
|
396
446
|
//#endregion
|
|
397
|
-
export { formatSkillsNotice, globalLockPath, lockPath, neonSkillsUpdateCommand, notifyIfSkillsOutdated, parseSkillsCheckCache, parseSkillsLock, planSkillsCheck, projectLockPath, readLockedSkills, readSkillsTelemetry, refreshSkillsCheckCache, scopeLabel, skillContentHash, skillStatus, skillsCheckCachePath, skillsStatusRows, skillsTelemetry };
|
|
447
|
+
export { autocrlfCheckout, formatSkillsNotice, globalLockPath, lockPath, neonSkillsUpdateCommand, notifyIfSkillsOutdated, parseSkillsCheckCache, parseSkillsLock, planSkillsCheck, projectLockPath, readLockedSkills, readSkillsTelemetry, refreshSkillsCheckCache, scopeLabel, skillContentHash, skillStatus, skillsCheckCachePath, skillsStatusRows, skillsTelemetry };
|
package/dist/skills/run.js
CHANGED
|
@@ -37,11 +37,13 @@ const assertSkillsNode = (version = process.version) => {
|
|
|
37
37
|
if (nodeMeetsMinimum(version, "22.20.0")) return;
|
|
38
38
|
throw new Error(`neon skills needs Node.js ${SKILLS_MIN_NODE} or newer to run the skills CLI. This process is Node.js ${version.replace(/^v/, "")}. Upgrade Node.js, then retry.`);
|
|
39
39
|
};
|
|
40
|
+
/** A bare `skills` makes npx run any copy already installed globally or cached, however old. */
|
|
41
|
+
const SKILLS_PACKAGE = "skills@latest";
|
|
40
42
|
const skillsAddArgs = (options) => {
|
|
41
43
|
if (options.skills.length === 0) throw new Error("skills add needs at least one --skill.");
|
|
42
44
|
const args = [
|
|
43
45
|
"-y",
|
|
44
|
-
|
|
46
|
+
SKILLS_PACKAGE,
|
|
45
47
|
"add",
|
|
46
48
|
options.source
|
|
47
49
|
];
|
|
@@ -83,7 +85,7 @@ const skillsUpdateDetail = (output) => {
|
|
|
83
85
|
};
|
|
84
86
|
const skillsUpdateArgs = (options) => [
|
|
85
87
|
"-y",
|
|
86
|
-
|
|
88
|
+
SKILLS_PACKAGE,
|
|
87
89
|
"update",
|
|
88
90
|
options.global ? "-g" : "-p",
|
|
89
91
|
"-y"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neon",
|
|
3
|
-
"version": "8.13.
|
|
3
|
+
"version": "8.13.1",
|
|
4
4
|
"description": "CLI tool for Neon, the cloud backend primitives built around Lakebase Postgres",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"neon",
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"yaml": "^2.9.0",
|
|
73
73
|
"yargs": "17.7.2",
|
|
74
74
|
"yoctocolors": "^2.1.2",
|
|
75
|
+
"@neon/config": "1.9.5",
|
|
75
76
|
"@neon/config-runtime": "1.10.4",
|
|
76
77
|
"@neon/realtime": "0.1.2",
|
|
77
|
-
"@neon/config": "1.9.5",
|
|
78
78
|
"@neon/sdk": "7.6.0"
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
"vitest": "^3.0.9",
|
|
114
114
|
"@neon-internals/cli-core": "0.0.0",
|
|
115
115
|
"@neon-internals/env-core": "0.0.36",
|
|
116
|
-
"@neon/e2e-harness": "0.0.0",
|
|
117
116
|
"@neon/env": "1.6.6",
|
|
117
|
+
"@neon/e2e-harness": "0.0.0",
|
|
118
118
|
"@neon/functions": "0.11.0"
|
|
119
119
|
},
|
|
120
120
|
"publishConfig": {
|
|
@@ -7,9 +7,9 @@ import { deprecatedServiceMessage, parseServices, servicesFlagValue, servicesOpt
|
|
|
7
7
|
import { mergeEnvFile, readEnvFile, resolveEnvFilePath } from "../env_file.js";
|
|
8
8
|
import { t as NEON_ENV_VAR_KEYS, u as isFunctionBaseUrlKey } from "./env-BpP3Dqpe.js";
|
|
9
9
|
import { ENV_PULL_KEY_HELP, ENV_PULL_SERVICES, envKeysForSelection, envPullFlagValue, ownedEnvServiceKeys, parseEnvPullKeys } from "../env_services.js";
|
|
10
|
-
import { i as dropClaimableUnsupported, o as resolveNeonEnvVars } from "./env-BNm69Qh8.js";
|
|
11
10
|
import { fillSingleProject, resolveBranchRef } from "../utils/enrichers.js";
|
|
12
11
|
import { warnAiGateway } from "../utils/ai_gateway_notice.js";
|
|
12
|
+
import { i as dropClaimableUnsupported, o as resolveNeonEnvVars } from "./env-BNm69Qh8.js";
|
|
13
13
|
import { formatPulledEnv, pulledBranch } from "../commands/env_output.js";
|
|
14
14
|
import { existsSync } from "node:fs";
|
|
15
15
|
import chalk from "chalk";
|