@lunora/config 1.0.0-alpha.60 → 1.0.0-alpha.61

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/dist/index.d.mts CHANGED
@@ -409,6 +409,10 @@ interface InferredBindings {
409
409
  usesScheduler: boolean;
410
410
  /** `@lunora/storage` is imported (R2 bucket binding name is user-defined). */
411
411
  usesStorage: boolean;
412
+ /** `@lunora/x402/charge` is imported — the charge rail settles USDC to a recipient address (a public `[vars]` entry, user-named; hint-only). */
413
+ usesX402Charge: boolean;
414
+ /** `@lunora/x402/pay` is imported — the agent-wallet pay rail signs from a Secrets Store binding paired with a spend policy (ActionCtx-only; hint-only). */
415
+ usesX402Pay: boolean;
412
416
  /** Workflows declared in `lunora/workflows.ts` (exported or not — see {@link InferredWorkflow.exported}). */
413
417
  workflows: InferredWorkflow[];
414
418
  }
package/dist/index.d.ts CHANGED
@@ -409,6 +409,10 @@ interface InferredBindings {
409
409
  usesScheduler: boolean;
410
410
  /** `@lunora/storage` is imported (R2 bucket binding name is user-defined). */
411
411
  usesStorage: boolean;
412
+ /** `@lunora/x402/charge` is imported — the charge rail settles USDC to a recipient address (a public `[vars]` entry, user-named; hint-only). */
413
+ usesX402Charge: boolean;
414
+ /** `@lunora/x402/pay` is imported — the agent-wallet pay rail signs from a Secrets Store binding paired with a spend policy (ActionCtx-only; hint-only). */
415
+ usesX402Pay: boolean;
412
416
  /** Workflows declared in `lunora/workflows.ts` (exported or not — see {@link InferredWorkflow.exported}). */
413
417
  workflows: InferredWorkflow[];
414
418
  }
package/dist/index.mjs CHANGED
@@ -5,14 +5,14 @@ export { streamContainerLogs } from './packem_shared/streamContainerLogs-BZ4cOZw
5
5
  export { detectFramework, readProjectDependencyNames } from './packem_shared/detectFramework-U08038Yp.mjs';
6
6
  export { DEV_DAEMON_ENV, DEV_HANDOFF_ENV, DEV_LOG_FILE, DEV_LOG_FILE_ENV, DEV_STATE_DIR, DEV_STATE_FILE, claimDevServerState, clearDevServerState, isProcessAlive, isRecordedProcessCurrent, readDevServerState, readLiveDevServerState, updateDevServerState, writeDevServerState } from './packem_shared/DEV_DAEMON_ENV-FIEtW7Fz.mjs';
7
7
  export { DEV_VARS_EXAMPLE_FILE, DEV_VARS_FILE, DEV_VARS_KEY_PATTERN, parseDevVariableEntries } from './packem_shared/DEV_VARS_EXAMPLE_FILE-dJPNTEnK.mjs';
8
- export { inferLunoraBindings, packageNamesFromBindings } from './packem_shared/inferLunoraBindings-ByMwG-gH.mjs';
8
+ export { inferLunoraBindings, packageNamesFromBindings } from './packem_shared/inferLunoraBindings-BadOK1UZ.mjs';
9
9
  export { LINKED_PROJECT_DIR, LINKED_PROJECT_FILE, readLinkedProject, writeLinkedProject } from './packem_shared/LINKED_PROJECT_DIR-CXwXzV_C.mjs';
10
10
  export { LUNORA_EVENT_SOURCE, formatLunoraEvent } from './packem_shared/LUNORA_EVENT_SOURCE-D2fDeGB6.mjs';
11
11
  export { default as LunoraReporter } from './packem_shared/LunoraReporter-Ci-bDCK9.mjs';
12
12
  export { PACKAGE_SECRETS_REGISTRY, secretsForPackages } from './packem_shared/PACKAGE_SECRETS_REGISTRY-BeRSvrl5.mjs';
13
13
  export { LUNORA_CONFIG_FILE, interpretRemote, readProjectRemotePreference } from './packem_shared/LUNORA_CONFIG_FILE-CtcIcB5-.mjs';
14
14
  export { createConfirm, isInteractive, promptMultiSelect, promptSelect, promptYesNo } from './packem_shared/createConfirm-fvpdgJ9s.mjs';
15
- export { reconcileWranglerBindings } from './packem_shared/reconcileWranglerBindings-Cruwwx1M.mjs';
15
+ export { reconcileWranglerBindings } from './packem_shared/reconcileWranglerBindings-BZdPBnpZ.mjs';
16
16
  export { reconcileWranglerCompatibilityDate } from './packem_shared/reconcileWranglerCompatibilityDate-CYY0rVnJ.mjs';
17
17
  export { REMOTE_ELIGIBLE_KEYS, injectRemoteFlags, isRemoteEnvEnabled, materializeRemoteWranglerConfig, planRemoteBindings, resolveRemoteEnabled } from './packem_shared/REMOTE_ELIGIBLE_KEYS-BC7_e9Bz.mjs';
18
18
  export { buildPackageSecretsBlock, ensureDevVariables, ensureDevVarsExample, fillDevSecrets, generateSecretValue, isMintableSecretKey, isPlaceholderValue, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, requiredSecrets } from './packem_shared/buildPackageSecretsBlock-BDXX0mKG.mjs';
@@ -69,7 +69,13 @@ const CAPABILITY_SOURCES = {
69
69
  // for the hint message.
70
70
  usesPipelines: { pattern: CTX_PIPELINES_PATTERN, source: "@lunora/bindings/pipelines" },
71
71
  usesScheduler: { pattern: /\bfrom\s+["']@lunora\/scheduler["']/, source: "@lunora/scheduler" },
72
- usesStorage: { pattern: /\bfrom\s+["']@lunora\/storage["']/, source: "@lunora/storage" }
72
+ usesStorage: { pattern: /\bfrom\s+["']@lunora\/storage["']/, source: "@lunora/storage" },
73
+ // x402 rails are opt-in add-on subpaths (not part of the `lunorash` umbrella),
74
+ // so they key off the exact `@lunora/x402/{charge,pay}` specifiers. Neither
75
+ // implies a `.dev.vars` secret: the charge recipient is a user-named `[vars]`
76
+ // entry and the pay wallet key is a Secrets Store binding — both hint-only.
77
+ usesX402Charge: { pattern: /\bfrom\s+["']@lunora\/x402\/charge["']/, source: "@lunora/x402/charge" },
78
+ usesX402Pay: { pattern: /\bfrom\s+["']@lunora\/x402\/pay["']/, source: "@lunora/x402/pay" }
73
79
  };
74
80
  const CAPABILITY_FLAGS = Object.keys(CAPABILITY_SOURCES);
75
81
  const PAYMENT_PROVIDER_SECRETS = "STRIPE_SECRET_KEY + STRIPE_WEBHOOK_SECRET (Stripe) or POLAR_ACCESS_TOKEN + POLAR_WEBHOOK_SECRET (Polar)";
@@ -291,6 +297,14 @@ const describeCapabilitySignals = (capabilities, exported) => {
291
297
  [
292
298
  capabilities.usesPipelines,
293
299
  "hint: ctx.pipelines is used; run 'wrangler pipelines create <name>' and add a 'pipelines' binding ({ binding, pipeline }) — the pipeline resource can't be auto-provisioned"
300
+ ],
301
+ [
302
+ capabilities.usesX402Charge,
303
+ "hint: @lunora/x402/charge is imported; set the recipient wallet address as a [vars] entry (the var name is yours to choose) and pass it to the charge config — the x402 facilitator settles USDC to that address"
304
+ ],
305
+ [
306
+ capabilities.usesX402Pay,
307
+ "hint: @lunora/x402/pay is imported (ActionCtx-only, spends real funds); add a secrets_store_secrets[] binding for the agent wallet key (name it to match signer.secretName) and pair the pay rail with a spend policy — ctx.secrets reads a Secrets Store binding, not .dev.vars, so the key can't be auto-provisioned"
294
308
  ]
295
309
  ];
296
310
  return rules.filter(([active]) => active).map(([, signal]) => signal);
@@ -41,6 +41,19 @@ const collectHintBindingWarnings = (inferred, parsed) => {
41
41
  ];
42
42
  return rules.filter(([active]) => active).map(([, warning]) => warning);
43
43
  };
44
+ const collectX402Warnings = (inferred) => {
45
+ const rules = [
46
+ [
47
+ inferred.usesX402Charge,
48
+ "@lunora/x402/charge is used; set the recipient wallet address as a [vars] entry (the var name is your choice) and pass it to the charge config — the x402 facilitator settles USDC to that address."
49
+ ],
50
+ [
51
+ inferred.usesX402Pay,
52
+ "@lunora/x402/pay is used (ActionCtx-only, spends real funds); add a secrets_store_secrets[] binding holding the agent wallet key (binding name == signer.secretName) and pair the pay rail with a spend policy — ctx.secrets reads a Secrets Store binding, not .dev.vars."
53
+ ]
54
+ ];
55
+ return rules.filter(([active]) => active).map(([, warning]) => warning);
56
+ };
44
57
  const collectWarnings = (inferred, parsed) => {
45
58
  const exported = new Set(inferred.durableObjects.map((object) => object.className));
46
59
  const warnings = [];
@@ -81,7 +94,7 @@ const collectWarnings = (inferred, parsed) => {
81
94
  "@lunora/payment is used; set the provider secrets in .dev.vars — STRIPE_SECRET_KEY + STRIPE_WEBHOOK_SECRET (Stripe) or POLAR_ACCESS_TOKEN + POLAR_WEBHOOK_SECRET (Polar)."
82
95
  );
83
96
  }
84
- warnings.push(...collectHintBindingWarnings(inferred, parsed));
97
+ warnings.push(...collectX402Warnings(inferred), ...collectHintBindingWarnings(inferred, parsed));
85
98
  return warnings;
86
99
  };
87
100
  const applyModify = (text, path, value) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/config",
3
- "version": "1.0.0-alpha.60",
3
+ "version": "1.0.0-alpha.61",
4
4
  "description": "Internal shared CLI + Vite config layer for Lunora: wrangler.jsonc validation, binding inference, and .dev.vars scaffolding",
5
5
  "keywords": [
6
6
  "bindings",
@@ -50,10 +50,10 @@
50
50
  "access": "public"
51
51
  },
52
52
  "dependencies": {
53
- "@lunora/codegen": "1.0.0-alpha.38",
53
+ "@lunora/codegen": "1.0.0-alpha.39",
54
54
  "@lunora/container": "1.0.0-alpha.8",
55
55
  "@lunora/errors": "1.0.0-alpha.3",
56
- "@lunora/seed": "1.0.0-alpha.20",
56
+ "@lunora/seed": "1.0.0-alpha.21",
57
57
  "@visulima/colorize": "2.0.0",
58
58
  "@visulima/find-ai-runner": "1.0.0",
59
59
  "dockerode": "^5.0.1",
@@ -62,7 +62,7 @@
62
62
  "ts-morph": "^28.0.0"
63
63
  },
64
64
  "peerDependencies": {
65
- "@lunora/studio": "1.0.0-alpha.45"
65
+ "@lunora/studio": "1.0.0-alpha.46"
66
66
  },
67
67
  "peerDependenciesMeta": {
68
68
  "@lunora/studio": {