@lunora/config 1.0.0-alpha.56 → 1.0.0-alpha.58

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
@@ -717,6 +717,21 @@ interface ReconcileBindingsResult {
717
717
  * config already satisfies the inferred needs.
718
718
  */
719
719
  declare const reconcileWranglerBindings: (projectRoot: string, inferred: InferredBindings) => ReconcileBindingsResult;
720
+ interface ReconcileCompatibilityDateResult {
721
+ /** `true` when `wrangler.jsonc` was rewritten. */
722
+ changed: boolean;
723
+ /** The new date value, or the existing one when unchanged. */
724
+ date: string | undefined;
725
+ /** Human-readable reason when reconciliation was skipped. */
726
+ reason?: string;
727
+ /** Resolved wrangler path, or `undefined` when none was found. */
728
+ wranglerPath?: string;
729
+ }
730
+ /**
731
+ * Reconcile the `compatibility_date` in `wrangler.jsonc` when Workers Cache
732
+ * is enabled but the date is below the minimum required.
733
+ */
734
+ declare const reconcileWranglerCompatibilityDate: (projectRoot: string) => ReconcileCompatibilityDateResult;
720
735
  /**
721
736
  * The wrangler config sections Lunora can safely flip to remote mode in dev,
722
737
  * each with the human label used in logs and the structural `shape` the entry
@@ -1341,6 +1356,9 @@ interface WranglerConfig {
1341
1356
  browser?: {
1342
1357
  binding?: string;
1343
1358
  };
1359
+ cache?: {
1360
+ enabled?: boolean;
1361
+ } | null;
1344
1362
  compatibility_date?: string;
1345
1363
  compatibility_flags?: ReadonlyArray<string>;
1346
1364
  containers?: ReadonlyArray<WranglerContainerEntry | null | undefined>;
@@ -1355,6 +1373,12 @@ interface WranglerConfig {
1355
1373
  durable_objects?: {
1356
1374
  bindings?: ReadonlyArray<WranglerDurableObjectBinding>;
1357
1375
  };
1376
+ exports?: Record<string, {
1377
+ cache?: {
1378
+ enabled?: boolean;
1379
+ } | null;
1380
+ type?: string;
1381
+ } | null> | null;
1358
1382
  flagship?: ReadonlyArray<{
1359
1383
  app_id?: string;
1360
1384
  binding?: string;
@@ -1466,4 +1490,4 @@ interface WranglerProjectValidationResult {
1466
1490
  * `{ problems, wranglerPath }` shape plus the structured `report`.
1467
1491
  */
1468
1492
  declare const validateWranglerProject: (options: WranglerProjectValidationOptions) => WranglerProjectValidationResult;
1469
- export { ACCENT, AGENT_MODE_ENV, AGENT_RULES_DIR, AGENT_RULES_HINT, AGENT_RULES_HINT_ENV, type AddIndexEdit, type AddOptionalColumnEdit, type AddTableEdit, type AdditiveEdit, type AgentDetection, type AgentRulesStatus, type ApplyEditResult, type ApplyFailureReason, type AugmentPlan, BADGES, BADGE_COLUMN_WIDTH, type BadgeName, type BadgeSpec, type ClaimDevServerStateResult, type ContainerLogLevel, type ContainerLogLine, type ContainerLogSource, type ContainerLogStreamHandle, type ContainerLogStreamOptions, DEV_DAEMON_ENV, DEV_HANDOFF_ENV, DEV_LOG_FILE, DEV_LOG_FILE_ENV, DEV_STATE_DIR, DEV_STATE_FILE, DEV_VARS_EXAMPLE_FILE, DEV_VARS_FILE, DEV_VARS_KEY_PATTERN, type DestructiveEdit, type DetectedFramework, type DevSecretsFillPlan, type DevServerMode, type DevServerState, type DiscoverContainerInfoResult, type DiscoverSchemaInfoResult, type DiscoverWorkflowInfoResult, type DockerLike, type EnsureDevVariablesDeps, type EnsureDevVariablesResult, type EnsureDevVariablesStatus, type ExportGap, type FillDevSecretsResult, type FrameworkClass, type FrameworkDetection, type InferOptions, type InferredBindings, type InferredContainer, type InferredWorkflow, LINKED_PROJECT_DIR, LINKED_PROJECT_FILE, LUNA_ART, LUNA_BUNNY, LUNA_NAME, LUNA_SIGNOFF, LUNORA_CONFIG_FILE, LUNORA_EVENT_SOURCE, LUNORA_SKILL_NAMES, type LevelBadgeName, type LinkedProject, type LunoraFormattedLine, type LunoraLineLevel, type LunoraProjectConfig, LunoraReporter, type MaterializeOptions, type MaterializeResult, type MultiSelectOption, PACKAGE_SECRETS_REGISTRY, type ParseSchemaResult, REMOTE_ELIGIBLE_KEYS, REQUIRED_COMPATIBILITY_DATE, REQUIRED_FLAG, ROOT_SKILL_NAME, type ReadWranglerResult, type ReconcileBindingsResult, type RemoteBindingPlan, type RemoteEnableInputs, type RemotePreference, type RemoteWranglerShape, STEP_BADGE_NAMES, type ScaffoldPlan, type SchemaColumn, type SchemaEdit, type SchemaIndex, type SchemaInfo, type SchemaTable, type SecretEntry, type SelectOption, type StepBadgeName, type TailConsumer, WRANGLER_FILES, type WranglerConfig, type WranglerContainerEntry, type WranglerProjectValidationOptions, type WranglerProjectValidationResult, type WranglerValidationReport, type WranglerWorkflowEntry, applyAdditiveEdit, badgeLead, badgeWidth, buildPackageSecretsBlock, claimAgentRulesHint, claimDevServerState, classifyEdit, clearDevServerState, collectWranglerSecretVariables, createConfirm, detectAgentRules, detectAiAgent, detectFramework, discoverContainerInfo, discoverSchemaInfo, discoverWorkflowInfo, ensureDevVariables, ensureDevVariablesExample as ensureDevVarsExample, fillDevSecrets, findWranglerFile, formatLunoraEvent, generateSecretValue, inferLunoraBindings, injectRemoteFlags, interpretRemote, isInteractive, isMintableSecretKey, isPlaceholderValue, isProcessAlive, isRecordedProcessCurrent, isRemoteEnvEnabled, materializeRemoteWranglerConfig, packageNamesFromBindings, padBadge, paintAnswer, paintBadge, parseDevVariableEntries, parseSchema, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, planRemoteBindings, promptMultiSelect, promptSelect, promptYesNo, readDevServerState, readLinkedProject, readLiveDevServerState, readProjectDependencyNames, readProjectRemotePreference, readWranglerJsonc, reconcileWranglerBindings, requiredSecrets, resolveRemoteEnabled, scanWranglerVariablesForSecrets, secretsForPackages, streamContainerLogs, updateDevServerState, validateWrangler, validateWranglerConfig, validateWranglerProject, withTailConsumer, writeDevServerState, writeLinkedProject };
1493
+ export { ACCENT, AGENT_MODE_ENV, AGENT_RULES_DIR, AGENT_RULES_HINT, AGENT_RULES_HINT_ENV, type AddIndexEdit, type AddOptionalColumnEdit, type AddTableEdit, type AdditiveEdit, type AgentDetection, type AgentRulesStatus, type ApplyEditResult, type ApplyFailureReason, type AugmentPlan, BADGES, BADGE_COLUMN_WIDTH, type BadgeName, type BadgeSpec, type ClaimDevServerStateResult, type ContainerLogLevel, type ContainerLogLine, type ContainerLogSource, type ContainerLogStreamHandle, type ContainerLogStreamOptions, DEV_DAEMON_ENV, DEV_HANDOFF_ENV, DEV_LOG_FILE, DEV_LOG_FILE_ENV, DEV_STATE_DIR, DEV_STATE_FILE, DEV_VARS_EXAMPLE_FILE, DEV_VARS_FILE, DEV_VARS_KEY_PATTERN, type DestructiveEdit, type DetectedFramework, type DevSecretsFillPlan, type DevServerMode, type DevServerState, type DiscoverContainerInfoResult, type DiscoverSchemaInfoResult, type DiscoverWorkflowInfoResult, type DockerLike, type EnsureDevVariablesDeps, type EnsureDevVariablesResult, type EnsureDevVariablesStatus, type ExportGap, type FillDevSecretsResult, type FrameworkClass, type FrameworkDetection, type InferOptions, type InferredBindings, type InferredContainer, type InferredWorkflow, LINKED_PROJECT_DIR, LINKED_PROJECT_FILE, LUNA_ART, LUNA_BUNNY, LUNA_NAME, LUNA_SIGNOFF, LUNORA_CONFIG_FILE, LUNORA_EVENT_SOURCE, LUNORA_SKILL_NAMES, type LevelBadgeName, type LinkedProject, type LunoraFormattedLine, type LunoraLineLevel, type LunoraProjectConfig, LunoraReporter, type MaterializeOptions, type MaterializeResult, type MultiSelectOption, PACKAGE_SECRETS_REGISTRY, type ParseSchemaResult, REMOTE_ELIGIBLE_KEYS, REQUIRED_COMPATIBILITY_DATE, REQUIRED_FLAG, ROOT_SKILL_NAME, type ReadWranglerResult, type ReconcileBindingsResult, type ReconcileCompatibilityDateResult, type RemoteBindingPlan, type RemoteEnableInputs, type RemotePreference, type RemoteWranglerShape, STEP_BADGE_NAMES, type ScaffoldPlan, type SchemaColumn, type SchemaEdit, type SchemaIndex, type SchemaInfo, type SchemaTable, type SecretEntry, type SelectOption, type StepBadgeName, type TailConsumer, WRANGLER_FILES, type WranglerConfig, type WranglerContainerEntry, type WranglerProjectValidationOptions, type WranglerProjectValidationResult, type WranglerValidationReport, type WranglerWorkflowEntry, applyAdditiveEdit, badgeLead, badgeWidth, buildPackageSecretsBlock, claimAgentRulesHint, claimDevServerState, classifyEdit, clearDevServerState, collectWranglerSecretVariables, createConfirm, detectAgentRules, detectAiAgent, detectFramework, discoverContainerInfo, discoverSchemaInfo, discoverWorkflowInfo, ensureDevVariables, ensureDevVariablesExample as ensureDevVarsExample, fillDevSecrets, findWranglerFile, formatLunoraEvent, generateSecretValue, inferLunoraBindings, injectRemoteFlags, interpretRemote, isInteractive, isMintableSecretKey, isPlaceholderValue, isProcessAlive, isRecordedProcessCurrent, isRemoteEnvEnabled, materializeRemoteWranglerConfig, packageNamesFromBindings, padBadge, paintAnswer, paintBadge, parseDevVariableEntries, parseSchema, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, planRemoteBindings, promptMultiSelect, promptSelect, promptYesNo, readDevServerState, readLinkedProject, readLiveDevServerState, readProjectDependencyNames, readProjectRemotePreference, readWranglerJsonc, reconcileWranglerBindings, reconcileWranglerCompatibilityDate, requiredSecrets, resolveRemoteEnabled, scanWranglerVariablesForSecrets, secretsForPackages, streamContainerLogs, updateDevServerState, validateWrangler, validateWranglerConfig, validateWranglerProject, withTailConsumer, writeDevServerState, writeLinkedProject };
package/dist/index.d.ts CHANGED
@@ -717,6 +717,21 @@ interface ReconcileBindingsResult {
717
717
  * config already satisfies the inferred needs.
718
718
  */
719
719
  declare const reconcileWranglerBindings: (projectRoot: string, inferred: InferredBindings) => ReconcileBindingsResult;
720
+ interface ReconcileCompatibilityDateResult {
721
+ /** `true` when `wrangler.jsonc` was rewritten. */
722
+ changed: boolean;
723
+ /** The new date value, or the existing one when unchanged. */
724
+ date: string | undefined;
725
+ /** Human-readable reason when reconciliation was skipped. */
726
+ reason?: string;
727
+ /** Resolved wrangler path, or `undefined` when none was found. */
728
+ wranglerPath?: string;
729
+ }
730
+ /**
731
+ * Reconcile the `compatibility_date` in `wrangler.jsonc` when Workers Cache
732
+ * is enabled but the date is below the minimum required.
733
+ */
734
+ declare const reconcileWranglerCompatibilityDate: (projectRoot: string) => ReconcileCompatibilityDateResult;
720
735
  /**
721
736
  * The wrangler config sections Lunora can safely flip to remote mode in dev,
722
737
  * each with the human label used in logs and the structural `shape` the entry
@@ -1341,6 +1356,9 @@ interface WranglerConfig {
1341
1356
  browser?: {
1342
1357
  binding?: string;
1343
1358
  };
1359
+ cache?: {
1360
+ enabled?: boolean;
1361
+ } | null;
1344
1362
  compatibility_date?: string;
1345
1363
  compatibility_flags?: ReadonlyArray<string>;
1346
1364
  containers?: ReadonlyArray<WranglerContainerEntry | null | undefined>;
@@ -1355,6 +1373,12 @@ interface WranglerConfig {
1355
1373
  durable_objects?: {
1356
1374
  bindings?: ReadonlyArray<WranglerDurableObjectBinding>;
1357
1375
  };
1376
+ exports?: Record<string, {
1377
+ cache?: {
1378
+ enabled?: boolean;
1379
+ } | null;
1380
+ type?: string;
1381
+ } | null> | null;
1358
1382
  flagship?: ReadonlyArray<{
1359
1383
  app_id?: string;
1360
1384
  binding?: string;
@@ -1466,4 +1490,4 @@ interface WranglerProjectValidationResult {
1466
1490
  * `{ problems, wranglerPath }` shape plus the structured `report`.
1467
1491
  */
1468
1492
  declare const validateWranglerProject: (options: WranglerProjectValidationOptions) => WranglerProjectValidationResult;
1469
- export { ACCENT, AGENT_MODE_ENV, AGENT_RULES_DIR, AGENT_RULES_HINT, AGENT_RULES_HINT_ENV, type AddIndexEdit, type AddOptionalColumnEdit, type AddTableEdit, type AdditiveEdit, type AgentDetection, type AgentRulesStatus, type ApplyEditResult, type ApplyFailureReason, type AugmentPlan, BADGES, BADGE_COLUMN_WIDTH, type BadgeName, type BadgeSpec, type ClaimDevServerStateResult, type ContainerLogLevel, type ContainerLogLine, type ContainerLogSource, type ContainerLogStreamHandle, type ContainerLogStreamOptions, DEV_DAEMON_ENV, DEV_HANDOFF_ENV, DEV_LOG_FILE, DEV_LOG_FILE_ENV, DEV_STATE_DIR, DEV_STATE_FILE, DEV_VARS_EXAMPLE_FILE, DEV_VARS_FILE, DEV_VARS_KEY_PATTERN, type DestructiveEdit, type DetectedFramework, type DevSecretsFillPlan, type DevServerMode, type DevServerState, type DiscoverContainerInfoResult, type DiscoverSchemaInfoResult, type DiscoverWorkflowInfoResult, type DockerLike, type EnsureDevVariablesDeps, type EnsureDevVariablesResult, type EnsureDevVariablesStatus, type ExportGap, type FillDevSecretsResult, type FrameworkClass, type FrameworkDetection, type InferOptions, type InferredBindings, type InferredContainer, type InferredWorkflow, LINKED_PROJECT_DIR, LINKED_PROJECT_FILE, LUNA_ART, LUNA_BUNNY, LUNA_NAME, LUNA_SIGNOFF, LUNORA_CONFIG_FILE, LUNORA_EVENT_SOURCE, LUNORA_SKILL_NAMES, type LevelBadgeName, type LinkedProject, type LunoraFormattedLine, type LunoraLineLevel, type LunoraProjectConfig, LunoraReporter, type MaterializeOptions, type MaterializeResult, type MultiSelectOption, PACKAGE_SECRETS_REGISTRY, type ParseSchemaResult, REMOTE_ELIGIBLE_KEYS, REQUIRED_COMPATIBILITY_DATE, REQUIRED_FLAG, ROOT_SKILL_NAME, type ReadWranglerResult, type ReconcileBindingsResult, type RemoteBindingPlan, type RemoteEnableInputs, type RemotePreference, type RemoteWranglerShape, STEP_BADGE_NAMES, type ScaffoldPlan, type SchemaColumn, type SchemaEdit, type SchemaIndex, type SchemaInfo, type SchemaTable, type SecretEntry, type SelectOption, type StepBadgeName, type TailConsumer, WRANGLER_FILES, type WranglerConfig, type WranglerContainerEntry, type WranglerProjectValidationOptions, type WranglerProjectValidationResult, type WranglerValidationReport, type WranglerWorkflowEntry, applyAdditiveEdit, badgeLead, badgeWidth, buildPackageSecretsBlock, claimAgentRulesHint, claimDevServerState, classifyEdit, clearDevServerState, collectWranglerSecretVariables, createConfirm, detectAgentRules, detectAiAgent, detectFramework, discoverContainerInfo, discoverSchemaInfo, discoverWorkflowInfo, ensureDevVariables, ensureDevVariablesExample as ensureDevVarsExample, fillDevSecrets, findWranglerFile, formatLunoraEvent, generateSecretValue, inferLunoraBindings, injectRemoteFlags, interpretRemote, isInteractive, isMintableSecretKey, isPlaceholderValue, isProcessAlive, isRecordedProcessCurrent, isRemoteEnvEnabled, materializeRemoteWranglerConfig, packageNamesFromBindings, padBadge, paintAnswer, paintBadge, parseDevVariableEntries, parseSchema, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, planRemoteBindings, promptMultiSelect, promptSelect, promptYesNo, readDevServerState, readLinkedProject, readLiveDevServerState, readProjectDependencyNames, readProjectRemotePreference, readWranglerJsonc, reconcileWranglerBindings, requiredSecrets, resolveRemoteEnabled, scanWranglerVariablesForSecrets, secretsForPackages, streamContainerLogs, updateDevServerState, validateWrangler, validateWranglerConfig, validateWranglerProject, withTailConsumer, writeDevServerState, writeLinkedProject };
1493
+ export { ACCENT, AGENT_MODE_ENV, AGENT_RULES_DIR, AGENT_RULES_HINT, AGENT_RULES_HINT_ENV, type AddIndexEdit, type AddOptionalColumnEdit, type AddTableEdit, type AdditiveEdit, type AgentDetection, type AgentRulesStatus, type ApplyEditResult, type ApplyFailureReason, type AugmentPlan, BADGES, BADGE_COLUMN_WIDTH, type BadgeName, type BadgeSpec, type ClaimDevServerStateResult, type ContainerLogLevel, type ContainerLogLine, type ContainerLogSource, type ContainerLogStreamHandle, type ContainerLogStreamOptions, DEV_DAEMON_ENV, DEV_HANDOFF_ENV, DEV_LOG_FILE, DEV_LOG_FILE_ENV, DEV_STATE_DIR, DEV_STATE_FILE, DEV_VARS_EXAMPLE_FILE, DEV_VARS_FILE, DEV_VARS_KEY_PATTERN, type DestructiveEdit, type DetectedFramework, type DevSecretsFillPlan, type DevServerMode, type DevServerState, type DiscoverContainerInfoResult, type DiscoverSchemaInfoResult, type DiscoverWorkflowInfoResult, type DockerLike, type EnsureDevVariablesDeps, type EnsureDevVariablesResult, type EnsureDevVariablesStatus, type ExportGap, type FillDevSecretsResult, type FrameworkClass, type FrameworkDetection, type InferOptions, type InferredBindings, type InferredContainer, type InferredWorkflow, LINKED_PROJECT_DIR, LINKED_PROJECT_FILE, LUNA_ART, LUNA_BUNNY, LUNA_NAME, LUNA_SIGNOFF, LUNORA_CONFIG_FILE, LUNORA_EVENT_SOURCE, LUNORA_SKILL_NAMES, type LevelBadgeName, type LinkedProject, type LunoraFormattedLine, type LunoraLineLevel, type LunoraProjectConfig, LunoraReporter, type MaterializeOptions, type MaterializeResult, type MultiSelectOption, PACKAGE_SECRETS_REGISTRY, type ParseSchemaResult, REMOTE_ELIGIBLE_KEYS, REQUIRED_COMPATIBILITY_DATE, REQUIRED_FLAG, ROOT_SKILL_NAME, type ReadWranglerResult, type ReconcileBindingsResult, type ReconcileCompatibilityDateResult, type RemoteBindingPlan, type RemoteEnableInputs, type RemotePreference, type RemoteWranglerShape, STEP_BADGE_NAMES, type ScaffoldPlan, type SchemaColumn, type SchemaEdit, type SchemaIndex, type SchemaInfo, type SchemaTable, type SecretEntry, type SelectOption, type StepBadgeName, type TailConsumer, WRANGLER_FILES, type WranglerConfig, type WranglerContainerEntry, type WranglerProjectValidationOptions, type WranglerProjectValidationResult, type WranglerValidationReport, type WranglerWorkflowEntry, applyAdditiveEdit, badgeLead, badgeWidth, buildPackageSecretsBlock, claimAgentRulesHint, claimDevServerState, classifyEdit, clearDevServerState, collectWranglerSecretVariables, createConfirm, detectAgentRules, detectAiAgent, detectFramework, discoverContainerInfo, discoverSchemaInfo, discoverWorkflowInfo, ensureDevVariables, ensureDevVariablesExample as ensureDevVarsExample, fillDevSecrets, findWranglerFile, formatLunoraEvent, generateSecretValue, inferLunoraBindings, injectRemoteFlags, interpretRemote, isInteractive, isMintableSecretKey, isPlaceholderValue, isProcessAlive, isRecordedProcessCurrent, isRemoteEnvEnabled, materializeRemoteWranglerConfig, packageNamesFromBindings, padBadge, paintAnswer, paintBadge, parseDevVariableEntries, parseSchema, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, planRemoteBindings, promptMultiSelect, promptSelect, promptYesNo, readDevServerState, readLinkedProject, readLiveDevServerState, readProjectDependencyNames, readProjectRemotePreference, readWranglerJsonc, reconcileWranglerBindings, reconcileWranglerCompatibilityDate, requiredSecrets, resolveRemoteEnabled, scanWranglerVariablesForSecrets, secretsForPackages, streamContainerLogs, updateDevServerState, validateWrangler, validateWranglerConfig, validateWranglerProject, withTailConsumer, writeDevServerState, writeLinkedProject };
package/dist/index.mjs CHANGED
@@ -9,12 +9,13 @@ export { inferLunoraBindings, packageNamesFromBindings } from './packem_shared/i
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
- export { PACKAGE_SECRETS_REGISTRY, secretsForPackages } from './packem_shared/PACKAGE_SECRETS_REGISTRY-B8t_SdoZ.mjs';
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
15
  export { reconcileWranglerBindings } from './packem_shared/reconcileWranglerBindings-Cruwwx1M.mjs';
16
+ export { reconcileWranglerCompatibilityDate } from './packem_shared/reconcileWranglerCompatibilityDate-CYY0rVnJ.mjs';
16
17
  export { REMOTE_ELIGIBLE_KEYS, injectRemoteFlags, isRemoteEnvEnabled, materializeRemoteWranglerConfig, planRemoteBindings, resolveRemoteEnabled } from './packem_shared/REMOTE_ELIGIBLE_KEYS-BC7_e9Bz.mjs';
17
- export { buildPackageSecretsBlock, ensureDevVariables, ensureDevVarsExample, fillDevSecrets, generateSecretValue, isMintableSecretKey, isPlaceholderValue, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, requiredSecrets } from './packem_shared/buildPackageSecretsBlock-B8iSX1Zo.mjs';
18
+ export { buildPackageSecretsBlock, ensureDevVariables, ensureDevVarsExample, fillDevSecrets, generateSecretValue, isMintableSecretKey, isPlaceholderValue, planDevSecretsFill, planDevVariablesAugment, planDevVariablesScaffold, requiredSecrets } from './packem_shared/buildPackageSecretsBlock-BDXX0mKG.mjs';
18
19
  export { applyAdditiveEdit, classifyEdit } from './packem_shared/applyAdditiveEdit-C-snTFEV.mjs';
19
20
  export { parseSchema } from './packem_shared/parseSchema-DSeyktvG.mjs';
20
21
  export { classifyPolicyEdit, scaffoldPolicyFile, wireRlsIntoProcedure } from './packem_shared/classifyPolicyEdit-BHeAqF8P.mjs';
@@ -22,5 +23,5 @@ export { discoverSchemaInfo } from './packem_shared/discoverSchemaInfo-BB-CKlTK.
22
23
  export { ACCENT, BADGES, BADGE_COLUMN_WIDTH, LUNA_ART, LUNA_BUNNY, LUNA_NAME, LUNA_SIGNOFF, STEP_BADGE_NAMES, badgeLead, badgeWidth, padBadge, paintAnswer, paintBadge } from './packem_shared/ACCENT-DW1XJn8i.mjs';
23
24
  export { discoverWorkflowInfo } from './packem_shared/discoverWorkflowInfo-CedvR0mn.mjs';
24
25
  export { WRANGLER_FILES, findWranglerFile, readWranglerJsonc } from './packem_shared/WRANGLER_FILES-DwSuC-Kn.mjs';
25
- export { collectWranglerSecretVariables, scanWranglerVariablesForSecrets } from './packem_shared/collectWranglerSecretVariables-CoSGg_7B.mjs';
26
- export { REQUIRED_COMPATIBILITY_DATE, REQUIRED_FLAG, validateWrangler, validateWranglerConfig, validateWranglerProject, withTailConsumer } from './packem_shared/REQUIRED_COMPATIBILITY_DATE-2YYyWJUq.mjs';
26
+ export { collectWranglerSecretVariables, scanWranglerVariablesForSecrets } from './packem_shared/collectWranglerSecretVariables-Red5H-4V.mjs';
27
+ export { REQUIRED_COMPATIBILITY_DATE, REQUIRED_FLAG, validateWrangler, validateWranglerConfig, validateWranglerProject, withTailConsumer } from './packem_shared/REQUIRED_COMPATIBILITY_DATE-DYYxY_If.mjs';
@@ -53,6 +53,42 @@ const PACKAGE_SECRETS_REGISTRY = {
53
53
  docsUrl: "https://lunora.sh/docs/packages/payment#polar",
54
54
  key: "POLAR_WEBHOOK_SECRET",
55
55
  placeholderValue: "<your-polar-webhook-secret>"
56
+ },
57
+ {
58
+ description: "Autumn secret key (am_sk_…) for the Autumn payment adapter. Obtain at https://app.useautumn.com/dev",
59
+ docsUrl: "https://lunora.sh/docs/packages/payment#autumn",
60
+ key: "AUTUMN_SECRET_KEY",
61
+ placeholderValue: "<your-autumn-secret-key>"
62
+ },
63
+ {
64
+ description: "Autumn webhook signing secret for verifying Standard Webhooks event payloads. Obtain from your Autumn dashboard webhook settings.",
65
+ docsUrl: "https://lunora.sh/docs/packages/payment#autumn",
66
+ key: "AUTUMN_WEBHOOK_SECRET",
67
+ placeholderValue: "<your-autumn-webhook-secret>"
68
+ },
69
+ {
70
+ description: "Dodo Payments API key (bearer token) for the Dodo Payments adapter. Obtain at https://app.dodopayments.com/developer/api-keys",
71
+ docsUrl: "https://lunora.sh/docs/packages/payment#dodo-payments",
72
+ key: "DODO_PAYMENTS_API_KEY",
73
+ placeholderValue: "<your-dodo-payments-api-key>"
74
+ },
75
+ {
76
+ description: "Dodo Payments webhook signing secret (whsec_…) for verifying event payloads. Obtain at https://app.dodopayments.com/developer/webhooks",
77
+ docsUrl: "https://lunora.sh/docs/packages/payment#dodo-payments",
78
+ key: "DODO_PAYMENTS_WEBHOOK_KEY",
79
+ placeholderValue: "<your-dodo-payments-webhook-secret>"
80
+ },
81
+ {
82
+ description: "Creem API key for the Creem payment adapter. Obtain at https://www.creem.io/dashboard/developers",
83
+ docsUrl: "https://lunora.sh/docs/packages/payment#creem",
84
+ key: "CREEM_API_KEY",
85
+ placeholderValue: "<your-creem-api-key>"
86
+ },
87
+ {
88
+ description: "Creem webhook signing secret for verifying the creem-signature header. Obtain from your Creem dashboard webhook settings.",
89
+ docsUrl: "https://lunora.sh/docs/packages/payment#creem",
90
+ key: "CREEM_WEBHOOK_SECRET",
91
+ placeholderValue: "<your-creem-webhook-secret>"
56
92
  }
57
93
  ]
58
94
  };
@@ -386,6 +386,45 @@ const validateObservability = (wrangler, errors) => {
386
386
  }
387
387
  }
388
388
  };
389
+ const validateCache = (wrangler, errors) => {
390
+ const { cache } = wrangler;
391
+ if (cache === void 0) {
392
+ return;
393
+ }
394
+ if (typeof cache !== "object" || cache === null || Array.isArray(cache)) {
395
+ errors.push('cache must be an object (e.g. { "enabled": true })');
396
+ return;
397
+ }
398
+ if (cache.enabled !== void 0 && typeof cache.enabled !== "boolean") {
399
+ errors.push("cache.enabled must be a boolean (true or false)");
400
+ }
401
+ };
402
+ const validateExports = (wrangler, errors) => {
403
+ const { exports } = wrangler;
404
+ if (exports === void 0) {
405
+ return;
406
+ }
407
+ if (typeof exports !== "object" || exports === null || Array.isArray(exports)) {
408
+ errors.push("exports must be an object keyed by entrypoint name");
409
+ return;
410
+ }
411
+ for (const [name, entry] of Object.entries(exports)) {
412
+ if (typeof entry !== "object" || entry === null) {
413
+ errors.push(`exports["${name}"] must be an object`);
414
+ continue;
415
+ }
416
+ if (entry.type !== void 0 && typeof entry.type !== "string") {
417
+ errors.push(`exports["${name}"].type must be a string`);
418
+ }
419
+ if (entry.cache !== void 0) {
420
+ if (typeof entry.cache !== "object" || entry.cache === null || Array.isArray(entry.cache)) {
421
+ errors.push(`exports["${name}"].cache must be an object`);
422
+ } else if (entry.cache.enabled !== void 0 && typeof entry.cache.enabled !== "boolean") {
423
+ errors.push(`exports["${name}"].cache.enabled must be a boolean`);
424
+ }
425
+ }
426
+ }
427
+ };
389
428
  const validateAssets = (wrangler, errors) => {
390
429
  const { assets } = wrangler;
391
430
  if (assets === void 0) {
@@ -468,6 +507,12 @@ const validateWranglerConfig = (wrangler, schema) => {
468
507
  } else if (compatibilityDate < REQUIRED_COMPATIBILITY_DATE) {
469
508
  errors.push(`compatibility_date must be >= "${REQUIRED_COMPATIBILITY_DATE}" (got "${compatibilityDate || "<missing>"}")`);
470
509
  }
510
+ const WORKERS_CACHE_MIN_DATE = "2026-05-01";
511
+ const cacheEnabled = typeof wrangler.cache === "object" && wrangler.cache !== null && wrangler.cache.enabled === true;
512
+ const exportsWithCache = typeof wrangler.exports === "object" && wrangler.exports !== null && Object.values(wrangler.exports).some((entry) => typeof entry === "object" && entry !== null && entry.cache?.enabled === true);
513
+ if ((cacheEnabled || exportsWithCache) && ISO_DATE_PATTERN.test(compatibilityDate) && compatibilityDate < WORKERS_CACHE_MIN_DATE) {
514
+ errors.push(`cache.enabled requires compatibility_date >= "${WORKERS_CACHE_MIN_DATE}" (got "${compatibilityDate || "<missing>"}")`);
515
+ }
471
516
  if (schema?.hasGlobalTable) {
472
517
  const d1Bindings = wrangler.d1_databases ?? [];
473
518
  const databaseBinding = d1Bindings.find((binding) => binding.binding === "DB");
@@ -497,6 +542,8 @@ const validateWranglerConfig = (wrangler, schema) => {
497
542
  validatePlacement(wrangler, errors);
498
543
  validateObservability(wrangler, errors);
499
544
  validateAssets(wrangler, errors);
545
+ validateCache(wrangler, errors);
546
+ validateExports(wrangler, errors);
500
547
  validateCorsVariables(wrangler, errors);
501
548
  return { errors, valid: errors.length === 0, warnings };
502
549
  };
@@ -3,7 +3,7 @@ import { existsSync, readFileSync, writeFileSync, renameSync, rmSync, statSync }
3
3
  import { join } from 'node:path';
4
4
  import { LunoraError } from '@lunora/errors';
5
5
  import { DEV_VARS_FILE, DEV_VARS_EXAMPLE_FILE, splitDevVariableLine, parseDevVariableEntries, DEV_VARS_NEWLINE, unquoteDevVariable } from './DEV_VARS_EXAMPLE_FILE-dJPNTEnK.mjs';
6
- import { CORE_SECRETS, PACKAGE_SECRETS_REGISTRY, secretsForPackages } from './PACKAGE_SECRETS_REGISTRY-B8t_SdoZ.mjs';
6
+ import { CORE_SECRETS, PACKAGE_SECRETS_REGISTRY, secretsForPackages } from './PACKAGE_SECRETS_REGISTRY-BeRSvrl5.mjs';
7
7
 
8
8
  const requiredSecrets = (packageNames) => [...CORE_SECRETS, ...secretsForPackages(packageNames)];
9
9
  const SECRET_BYTES = 32;
@@ -1,6 +1,6 @@
1
1
  import { relative } from 'node:path';
2
2
  import { secretKindOf, redact } from '@lunora/codegen';
3
- import { isPlaceholderValue } from './buildPackageSecretsBlock-B8iSX1Zo.mjs';
3
+ import { isPlaceholderValue } from './buildPackageSecretsBlock-BDXX0mKG.mjs';
4
4
  import { findWranglerFile, readWranglerJsonc } from './WRANGLER_FILES-DwSuC-Kn.mjs';
5
5
 
6
6
  const MIN_SECRET_NAMED_VALUE_LENGTH = 8;
@@ -0,0 +1,34 @@
1
+ import { writeFileSync } from 'node:fs';
2
+ import { modify, applyEdits } from 'jsonc-parser';
3
+ import { findWranglerFile, readWranglerJsonc } from './WRANGLER_FILES-DwSuC-Kn.mjs';
4
+
5
+ const WORKERS_CACHE_MIN_DATE = "2026-05-01";
6
+ const FORMATTING = { formattingOptions: { insertSpaces: true, tabSize: 4 } };
7
+ const reconcileWranglerCompatibilityDate = (projectRoot) => {
8
+ const wranglerPath = findWranglerFile(projectRoot);
9
+ if (!wranglerPath) {
10
+ return { changed: false, date: void 0, reason: "wrangler.jsonc not found" };
11
+ }
12
+ const { parsed, text } = readWranglerJsonc(wranglerPath);
13
+ if (parsed === void 0) {
14
+ return { changed: false, date: void 0, reason: `failed to parse ${wranglerPath} as JSONC`, wranglerPath };
15
+ }
16
+ const currentDate = parsed.compatibility_date ?? "";
17
+ const cacheEnabledTopLevel = typeof parsed.cache === "object" && parsed.cache !== null && parsed.cache.enabled === true;
18
+ const cacheEnabledInExports = typeof parsed.exports === "object" && parsed.exports !== null && Object.values(parsed.exports).some((entry) => typeof entry === "object" && entry !== null && entry.cache?.enabled === true);
19
+ const needsCacheDate = cacheEnabledTopLevel || cacheEnabledInExports;
20
+ if (!needsCacheDate) {
21
+ return { changed: false, date: currentDate || void 0, reason: "cache not enabled", wranglerPath };
22
+ }
23
+ if (currentDate >= WORKERS_CACHE_MIN_DATE) {
24
+ return { changed: false, date: currentDate, reason: `compatibility_date already >= ${WORKERS_CACHE_MIN_DATE}`, wranglerPath };
25
+ }
26
+ const edits = modify(text, ["compatibility_date"], WORKERS_CACHE_MIN_DATE, FORMATTING);
27
+ if (edits.length === 0) {
28
+ return { changed: false, date: currentDate || void 0, reason: "no structural edit produced", wranglerPath };
29
+ }
30
+ writeFileSync(wranglerPath, applyEdits(text, edits), "utf8");
31
+ return { changed: true, date: WORKERS_CACHE_MIN_DATE, wranglerPath };
32
+ };
33
+
34
+ export { reconcileWranglerCompatibilityDate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/config",
3
- "version": "1.0.0-alpha.56",
3
+ "version": "1.0.0-alpha.58",
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.34",
53
+ "@lunora/codegen": "1.0.0-alpha.36",
54
54
  "@lunora/container": "1.0.0-alpha.7",
55
55
  "@lunora/errors": "1.0.0-alpha.2",
56
- "@lunora/seed": "1.0.0-alpha.17",
56
+ "@lunora/seed": "1.0.0-alpha.18",
57
57
  "@visulima/colorize": "2.0.0-alpha.14",
58
58
  "@visulima/find-ai-runner": "1.0.0-alpha.9",
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.41"
65
+ "@lunora/studio": "1.0.0-alpha.43"
66
66
  },
67
67
  "peerDependenciesMeta": {
68
68
  "@lunora/studio": {