everything-dev 2.0.0-rc.7 → 2.0.0-rc.9

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.
Files changed (142) hide show
  1. package/dist/api/auth-middleware.cjs +14 -1
  2. package/dist/api/auth-middleware.cjs.map +1 -1
  3. package/dist/api/auth-middleware.d.cts +9 -0
  4. package/dist/api/auth-middleware.d.mts +9 -0
  5. package/dist/api/auth-middleware.mjs +14 -1
  6. package/dist/api/auth-middleware.mjs.map +1 -1
  7. package/dist/apps/upload/src/client.cjs +7 -1
  8. package/dist/apps/upload/src/client.cjs.map +1 -1
  9. package/dist/apps/upload/src/client.mjs +7 -1
  10. package/dist/apps/upload/src/client.mjs.map +1 -1
  11. package/dist/auth-login.cjs +24 -1
  12. package/dist/auth-login.cjs.map +1 -1
  13. package/dist/auth-login.mjs +24 -1
  14. package/dist/auth-login.mjs.map +1 -1
  15. package/dist/auth-session.cjs +4 -2
  16. package/dist/auth-session.cjs.map +1 -1
  17. package/dist/auth-session.mjs +4 -2
  18. package/dist/auth-session.mjs.map +1 -1
  19. package/dist/cdn-deploy.cjs +11 -7
  20. package/dist/cdn-deploy.cjs.map +1 -1
  21. package/dist/cdn-deploy.mjs +11 -7
  22. package/dist/cdn-deploy.mjs.map +1 -1
  23. package/dist/cli/import.cjs +1140 -0
  24. package/dist/cli/import.cjs.map +1 -0
  25. package/dist/cli/import.mjs +1126 -0
  26. package/dist/cli/import.mjs.map +1 -0
  27. package/dist/cli/init.cjs +33 -14
  28. package/dist/cli/init.cjs.map +1 -1
  29. package/dist/cli/init.d.cts +8 -2
  30. package/dist/cli/init.d.mts +8 -2
  31. package/dist/cli/init.mjs +33 -15
  32. package/dist/cli/init.mjs.map +1 -1
  33. package/dist/cli.cjs +59 -3
  34. package/dist/cli.cjs.map +1 -1
  35. package/dist/cli.mjs +59 -3
  36. package/dist/cli.mjs.map +1 -1
  37. package/dist/commands/import.cjs +49 -0
  38. package/dist/commands/import.cjs.map +1 -0
  39. package/dist/commands/import.mjs +46 -0
  40. package/dist/commands/import.mjs.map +1 -0
  41. package/dist/commands/keys.cjs +25 -4
  42. package/dist/commands/keys.cjs.map +1 -1
  43. package/dist/commands/keys.mjs +25 -4
  44. package/dist/commands/keys.mjs.map +1 -1
  45. package/dist/config.d.cts +1 -0
  46. package/dist/config.d.mts +1 -0
  47. package/dist/contract.cjs +89 -0
  48. package/dist/contract.cjs.map +1 -1
  49. package/dist/contract.d.cts +190 -1
  50. package/dist/contract.d.mts +190 -1
  51. package/dist/contract.meta.cjs +17 -1
  52. package/dist/contract.meta.cjs.map +1 -1
  53. package/dist/contract.meta.d.cts +27 -1
  54. package/dist/contract.meta.d.mts +27 -1
  55. package/dist/contract.meta.mjs +17 -1
  56. package/dist/contract.meta.mjs.map +1 -1
  57. package/dist/contract.mjs +84 -1
  58. package/dist/contract.mjs.map +1 -1
  59. package/dist/custody-signer.cjs +70 -0
  60. package/dist/custody-signer.cjs.map +1 -0
  61. package/dist/custody-signer.mjs +68 -0
  62. package/dist/custody-signer.mjs.map +1 -0
  63. package/dist/db/core.cjs +22 -4
  64. package/dist/db/core.cjs.map +1 -1
  65. package/dist/db/core.mjs +22 -4
  66. package/dist/db/core.mjs.map +1 -1
  67. package/dist/descriptor/schema.cjs +8 -5
  68. package/dist/descriptor/schema.cjs.map +1 -1
  69. package/dist/descriptor/schema.d.cts +1 -0
  70. package/dist/descriptor/schema.d.mts +1 -0
  71. package/dist/descriptor/schema.mjs +8 -5
  72. package/dist/descriptor/schema.mjs.map +1 -1
  73. package/dist/descriptor/serialize.cjs +1 -1
  74. package/dist/descriptor/serialize.cjs.map +1 -1
  75. package/dist/descriptor/serialize.mjs +1 -1
  76. package/dist/descriptor/serialize.mjs.map +1 -1
  77. package/dist/http-client.cjs +14 -4
  78. package/dist/http-client.cjs.map +1 -1
  79. package/dist/http-client.mjs +14 -4
  80. package/dist/http-client.mjs.map +1 -1
  81. package/dist/index.cjs +6 -0
  82. package/dist/index.d.cts +2 -2
  83. package/dist/index.d.mts +2 -2
  84. package/dist/index.mjs +2 -2
  85. package/dist/infra/planner.cjs +6 -2
  86. package/dist/infra/planner.cjs.map +1 -1
  87. package/dist/infra/planner.mjs +6 -2
  88. package/dist/infra/planner.mjs.map +1 -1
  89. package/dist/outlayer-login.cjs +54 -0
  90. package/dist/outlayer-login.cjs.map +1 -0
  91. package/dist/outlayer-login.mjs +54 -0
  92. package/dist/outlayer-login.mjs.map +1 -0
  93. package/dist/plugin.cjs +2 -0
  94. package/dist/plugin.cjs.map +1 -1
  95. package/dist/plugin.d.cts +74 -0
  96. package/dist/plugin.d.mts +74 -0
  97. package/dist/plugin.mjs +2 -0
  98. package/dist/plugin.mjs.map +1 -1
  99. package/dist/publish.cjs +145 -22
  100. package/dist/publish.cjs.map +1 -1
  101. package/dist/publish.mjs +147 -24
  102. package/dist/publish.mjs.map +1 -1
  103. package/dist/source-archive.cjs +51 -0
  104. package/dist/source-archive.cjs.map +1 -0
  105. package/dist/source-archive.mjs +50 -0
  106. package/dist/source-archive.mjs.map +1 -0
  107. package/dist/storage-upload.cjs +6 -1
  108. package/dist/storage-upload.cjs.map +1 -1
  109. package/dist/storage-upload.mjs +6 -1
  110. package/dist/storage-upload.mjs.map +1 -1
  111. package/dist/types.cjs +5 -1
  112. package/dist/types.cjs.map +1 -1
  113. package/dist/types.d.cts +2 -0
  114. package/dist/types.d.mts +2 -0
  115. package/dist/types.mjs +5 -1
  116. package/dist/types.mjs.map +1 -1
  117. package/dist/ui/auth.d.cts +217 -123
  118. package/dist/ui/auth.d.mts +217 -123
  119. package/dist/ui/router-client.cjs +2 -1
  120. package/dist/ui/router-client.cjs.map +1 -1
  121. package/dist/ui/router-client.mjs +2 -1
  122. package/dist/ui/router-client.mjs.map +1 -1
  123. package/dist/utils/workspace-subtree.cjs +37 -0
  124. package/dist/utils/workspace-subtree.cjs.map +1 -0
  125. package/dist/utils/workspace-subtree.mjs +36 -0
  126. package/dist/utils/workspace-subtree.mjs.map +1 -0
  127. package/dist/version-manifest-deploy.cjs +4 -2
  128. package/dist/version-manifest-deploy.cjs.map +1 -1
  129. package/dist/version-manifest-deploy.mjs +4 -2
  130. package/dist/version-manifest-deploy.mjs.map +1 -1
  131. package/dist/version-manifest-resolve.cjs +2 -1
  132. package/dist/version-manifest-resolve.cjs.map +1 -1
  133. package/dist/version-manifest-resolve.d.cts +3 -0
  134. package/dist/version-manifest-resolve.d.mts +3 -0
  135. package/dist/version-manifest-resolve.mjs +2 -1
  136. package/dist/version-manifest-resolve.mjs.map +1 -1
  137. package/package.json +11 -10
  138. package/skills/api-and-auth/SKILL.md +12 -9
  139. package/skills/api-and-auth/references/middleware.md +38 -0
  140. package/skills/cli-reference/SKILL.md +38 -6
  141. package/skills/init-upgrade/SKILL.md +76 -3
  142. package/skills/talk-to-the-app/SKILL.md +32 -5
@@ -1 +1 @@
1
- {"version":3,"file":"contract.meta.mjs","names":[],"sources":["../src/contract.meta.ts"],"sourcesContent":["export type CliCommandMeta = {\n commandPath?: string[];\n summary: string;\n description?: string;\n examples?: string[];\n interactive?: boolean;\n longRunning?: boolean;\n fields?: Record<string, { positional?: boolean; description?: string }>;\n};\n\nexport const cliCommandMeta = {\n dev: {\n commandPath: [\"dev\"],\n summary: \"Start a development session\",\n interactive: true,\n longRunning: true,\n fields: {\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to force remote (e.g. --remote-plugins auth,registry)\",\n },\n logLevel: {\n description:\n \"Log tail level: error, warn (default), info, or debug (overrides BOS_LOG_LEVEL; the file always gets everything)\",\n },\n },\n },\n start: {\n commandPath: [\"start\"],\n summary: \"Start the production host\",\n interactive: false,\n longRunning: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n configPath: {\n description:\n \"Boot from a local bos config file — skips FastKV resolution and SRI integrity verification\",\n },\n },\n },\n build: {\n commandPath: [\"build\"],\n summary: \"Build selected workspaces\",\n interactive: false,\n fields: {\n packages: { positional: true, description: \"Comma-separated package list\" },\n },\n },\n config: {\n commandPath: [\"config\"],\n summary: \"Print the loaded BOS configuration\",\n interactive: false,\n fields: {\n full: { description: \"Print the fully resolved configuration\" },\n },\n },\n registryUse: {\n commandPath: [\"registry\", \"use\"],\n summary:\n \"Compose app.ui/app.host/app.api/plugins.<key> sections from a published runtime into bos.config.json\",\n interactive: false,\n fields: {\n from: {\n positional: true,\n description:\n \"Published runtime (account/gateway or bos:// URL), e.g. v1.citynode.near/citynode.app\",\n },\n sections: {\n description: \"Comma-separated sections to compose, e.g. app.ui,plugins.apps\",\n },\n dryRun: { description: \"Preview the merged config without writing\" },\n },\n },\n pluginAdd: {\n commandPath: [\"plugin\", \"add\"],\n summary: \"Add a plugin attachment\",\n interactive: false,\n fields: {\n source: {\n positional: true,\n description: \"Plugin source (local:path, bos://account/domain, or URL)\",\n },\n as: { description: \"Plugin alias\" },\n production: { description: \"Production URL override\" },\n },\n },\n pluginRemove: {\n commandPath: [\"plugin\", \"remove\"],\n summary: \"Remove a plugin attachment\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n pluginList: {\n commandPath: [\"plugin\", \"list\"],\n summary: \"List configured plugins\",\n interactive: false,\n },\n pluginPublish: {\n commandPath: [\"plugin\", \"publish\"],\n summary: \"Publish a single plugin\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n publish: {\n commandPath: [\"publish\"],\n summary:\n \"Publish the current workspace configuration (no build — use bos deploy for the full train)\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview what would be published without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n rollback: {\n commandPath: [\"rollback\"],\n summary: \"Republish an earlier config snapshot from the registry publish history\",\n interactive: true,\n fields: {\n version: { description: \"Block height (or timestamp) of the snapshot from the listing\" },\n previous: { description: \"Roll back to the write immediately before the current one\" },\n force: {\n description:\n \"Allow pre-Phase-A snapshots without verifiable manifest pins (their bytes were overwritten in place)\",\n },\n limit: { description: \"Listing depth (1-200, default 20)\" },\n dryRun: { description: \"Preview the rollback without publishing\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n deploy: {\n commandPath: [\"deploy\"],\n summary:\n \"Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → post-publish smoke (optional) → Railway (image-backed, no build)\",\n interactive: false,\n fields: {\n env: { description: \"Environment: production or staging\" },\n build: { description: \"Build and deploy workspaces before publish (default: true)\" },\n dryRun: { description: \"Preview what would be deployed without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n service: { description: \"Override Railway service name from config\" },\n imageDigest: {\n description:\n \"Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest\",\n },\n smoke: {\n description:\n \"Gate the Railway promotion on a post-publish boot smoke of the runtime image — a red smoke rolls the config back\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n smoke: {\n commandPath: [\"smoke\"],\n summary:\n \"Boot a runtime image the way production boots (identity-driven, published config) and assert the boot surface: /health, SSR, OpenAPI spec, in-image mf check\",\n interactive: false,\n fields: {\n image: { description: \"Runtime image ref to boot (required)\" },\n port: { description: \"Host port to publish the container on (default: 3000)\" },\n keep: { description: \"Keep the container after the run (debugging)\" },\n account: { description: \"Registry identity — defaults to the resolved session config\" },\n },\n },\n login: {\n commandPath: [\"login\"],\n summary:\n \"Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)\",\n interactive: true,\n fields: {\n key: { description: \"Also mint and export a scoped publish key for headless/CI use\" },\n site: { description: \"Override site URL hosting the CLI login page\" },\n device: { description: \"Device label recorded on the credential (default: hostname)\" },\n expiresIn: { description: \"Session lifetime in seconds (default: 90 days)\" },\n env: { description: \"Environment: production (default) or staging\" },\n },\n },\n logout: {\n commandPath: [\"logout\"],\n summary: \"Revoke the stored CLI session and delete the exported publish key\",\n interactive: false,\n },\n keyPublish: {\n commandPath: [\"key\", \"generate\"],\n summary: \"Generate a publish access key\",\n interactive: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n allowance: { description: \"NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)\" },\n removeOldKeys: {\n description:\n \"Remove existing publish key(s) without prompting (default: ask on a TTY, yes when non-interactive)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n init: {\n commandPath: [\"init\"],\n summary: \"Scaffold a new project by extending a deployed app or template\",\n interactive: true,\n fields: {\n domain: {\n positional: true,\n description: \"New project domain (e.g. myapp.everything.dev)\",\n },\n extends: {\n description: \"Parent to extend from (e.g. bos://account/gateway or account/gateway)\",\n },\n account: { description: \"New project NEAR account (auto-derived from extends)\" },\n directory: { description: \"Target directory (auto-derived from domain)\" },\n source: { description: \"Local source dir (skips GitHub download)\" },\n plugins: {\n description: \"Comma-separated plugin keys to include (requires --overrides=plugins)\",\n },\n overrides: {\n description: \"Comma-separated sections to customize locally: ui,api,host,plugins\",\n },\n level: {\n description:\n \"Starter complexity: simple (public shell) or advanced (adds dashboard, orgs, admin)\",\n },\n noInteractive: { description: \"Skip prompts, use flags only\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n sync: {\n commandPath: [\"sync\"],\n summary: \"Sync template files from parent project\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview changes without writing files\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n upgrade: {\n commandPath: [\"upgrade\"],\n summary: \"Upgrade framework packages and sync template files\",\n interactive: true,\n fields: {\n dryRun: { description: \"Preview changes without writing\" },\n noInstall: { description: \"Skip pnpm install\" },\n noSync: { description: \"Only upgrade packages, skip template sync\" },\n },\n },\n typesGen: {\n commandPath: [\"types\", \"gen\"],\n summary: \"Generate type definitions from configured API and plugin contracts\",\n interactive: false,\n fields: {\n env: { description: \"Environment: development (default) or production\" },\n dryRun: { description: \"Preview what would be fetched without writing files\" },\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to fetch contract types remotely (e.g. --remote-plugins auth,registry)\",\n },\n },\n },\n typecheck: {\n commandPath: [\"typecheck\"],\n summary: \"Run TypeScript type checking across all local workspaces\",\n interactive: false,\n fields: {\n packages: {\n positional: true,\n description: \"Comma-separated workspace list (default: all)\",\n },\n },\n },\n mfCheck: {\n commandPath: [\"mf\", \"check\"],\n summary:\n \"Verify Module Federation runtime compatibility across published host + plugin bundles\",\n interactive: false,\n },\n dbStudio: {\n commandPath: [\"db\", \"studio\"],\n summary: \"Open Drizzle Studio for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name (default: api)\",\n },\n },\n },\n dbDoctor: {\n commandPath: [\"db\", \"doctor\"],\n summary: \"Diagnose migration health for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n },\n },\n dbRepair: {\n commandPath: [\"db\", \"repair\"],\n summary: \"Reset migration history and reapply migrations for a plugin\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n mode: {\n description: \"Repair mode: history-reset (default) or recreate (not yet supported)\",\n },\n yes: {\n description: \"Skip confirmation prompt\",\n },\n },\n },\n status: {\n commandPath: [\"status\"],\n summary: \"Show project health, versions, and update availability\",\n interactive: false,\n },\n ps: {\n commandPath: [\"ps\"],\n summary: \"List tracked development processes\",\n interactive: false,\n },\n logs: {\n commandPath: [\"logs\"],\n summary: \"Read dev session logs (.bos/logs/dev-latest.log)\",\n interactive: false,\n fields: {\n service: {\n description: \"Filter by service name (e.g. host, api, auth, ui, plugin:votes)\",\n },\n tail: { description: \"Show only the last N lines\" },\n follow: { description: \"Stream the log as lines are appended\" },\n },\n },\n kill: {\n commandPath: [\"kill\"],\n summary: \"Stop tracked development processes\",\n interactive: false,\n fields: {\n configDir: { description: \"Kill processes owned by a config directory (defaults to cwd)\" },\n signal: { description: \"Signal: SIGTERM (default) or SIGKILL\" },\n all: { description: \"Kill processes across all config directories\" },\n },\n },\n infraExport: {\n commandPath: [\"infra\", \"export\"],\n summary: \"Emit the resolved CI infra plan (env + services) for the current runtime\",\n interactive: false,\n fields: {\n target: { description: \"Export target: ci (default) or local\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n configDir: { description: \"Override config directory\" },\n },\n },\n} as const satisfies Record<string, CliCommandMeta>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"contract.meta.mjs","names":[],"sources":["../src/contract.meta.ts"],"sourcesContent":["export type CliCommandMeta = {\n commandPath?: string[];\n summary: string;\n description?: string;\n examples?: string[];\n interactive?: boolean;\n longRunning?: boolean;\n fields?: Record<string, { positional?: boolean; description?: string }>;\n};\n\nexport const cliCommandMeta = {\n dev: {\n commandPath: [\"dev\"],\n summary: \"Start a development session\",\n interactive: true,\n longRunning: true,\n fields: {\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to force remote (e.g. --remote-plugins auth,registry)\",\n },\n logLevel: {\n description:\n \"Log tail level: error, warn (default), info, or debug (overrides BOS_LOG_LEVEL; the file always gets everything)\",\n },\n },\n },\n start: {\n commandPath: [\"start\"],\n summary: \"Start the production host\",\n interactive: false,\n longRunning: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n configPath: {\n description:\n \"Boot from a local bos config file — skips FastKV resolution and SRI integrity verification\",\n },\n },\n },\n build: {\n commandPath: [\"build\"],\n summary: \"Build selected workspaces\",\n interactive: false,\n fields: {\n packages: { positional: true, description: \"Comma-separated package list\" },\n },\n },\n config: {\n commandPath: [\"config\"],\n summary: \"Print the loaded BOS configuration\",\n interactive: false,\n fields: {\n full: { description: \"Print the fully resolved configuration\" },\n },\n },\n registryUse: {\n commandPath: [\"registry\", \"use\"],\n summary:\n \"Compose app.ui/app.host/app.api/plugins.<key> sections from a published runtime into bos.config.json\",\n interactive: false,\n fields: {\n from: {\n positional: true,\n description:\n \"Published runtime (account/gateway or bos:// URL), e.g. v1.citynode.near/citynode.app\",\n },\n sections: {\n description: \"Comma-separated sections to compose, e.g. app.ui,plugins.apps\",\n },\n dryRun: { description: \"Preview the merged config without writing\" },\n },\n },\n pluginAdd: {\n commandPath: [\"plugin\", \"add\"],\n summary: \"Add a plugin attachment\",\n interactive: false,\n fields: {\n source: {\n positional: true,\n description: \"Plugin source (local:path, bos://account/domain, or URL)\",\n },\n as: { description: \"Plugin alias\" },\n production: { description: \"Production URL override\" },\n },\n },\n pluginRemove: {\n commandPath: [\"plugin\", \"remove\"],\n summary: \"Remove a plugin attachment\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n pluginList: {\n commandPath: [\"plugin\", \"list\"],\n summary: \"List configured plugins\",\n interactive: false,\n },\n pluginPublish: {\n commandPath: [\"plugin\", \"publish\"],\n summary: \"Publish a single plugin\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n publish: {\n commandPath: [\"publish\"],\n summary:\n \"Publish the current workspace configuration (no build — use bos deploy for the full train)\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview what would be published without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n rollback: {\n commandPath: [\"rollback\"],\n summary: \"Republish an earlier config snapshot from the registry publish history\",\n interactive: true,\n fields: {\n version: { description: \"Block height (or timestamp) of the snapshot from the listing\" },\n previous: { description: \"Roll back to the write immediately before the current one\" },\n force: {\n description:\n \"Allow pre-Phase-A snapshots without verifiable manifest pins (their bytes were overwritten in place)\",\n },\n limit: { description: \"Listing depth (1-200, default 20)\" },\n dryRun: { description: \"Preview the rollback without publishing\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n deploy: {\n commandPath: [\"deploy\"],\n summary:\n \"Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → post-publish smoke (optional) → Railway (image-backed, no build)\",\n interactive: false,\n fields: {\n env: { description: \"Environment: production or staging\" },\n build: { description: \"Build and deploy workspaces before publish (default: true)\" },\n dryRun: { description: \"Preview what would be deployed without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n service: { description: \"Override Railway service name from config\" },\n imageDigest: {\n description:\n \"Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest\",\n },\n smoke: {\n description:\n \"Gate the Railway promotion on a post-publish boot smoke of the runtime image — a red smoke rolls the config back\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n smoke: {\n commandPath: [\"smoke\"],\n summary:\n \"Boot a runtime image the way production boots (identity-driven, published config) and assert the boot surface: /health, SSR, OpenAPI spec, in-image mf check\",\n interactive: false,\n fields: {\n image: { description: \"Runtime image ref to boot (required)\" },\n port: { description: \"Host port to publish the container on (default: 3000)\" },\n keep: { description: \"Keep the container after the run (debugging)\" },\n account: { description: \"Registry identity — defaults to the resolved session config\" },\n },\n },\n login: {\n commandPath: [\"login\"],\n summary:\n \"Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)\",\n interactive: true,\n fields: {\n key: { description: \"Also mint and export a scoped publish key for headless/CI use\" },\n custody: { description: \"Also register an OutLayer custody wallet for custody publishes\" },\n site: { description: \"Override site URL hosting the CLI login page\" },\n device: { description: \"Device label recorded on the credential (default: hostname)\" },\n expiresIn: { description: \"Session lifetime in seconds (default: 90 days)\" },\n env: { description: \"Environment: production (default) or staging\" },\n },\n },\n logout: {\n commandPath: [\"logout\"],\n summary: \"Revoke the stored CLI session and delete the exported publish key\",\n interactive: false,\n },\n keyPublish: {\n commandPath: [\"key\", \"generate\"],\n summary: \"Generate a publish access key\",\n interactive: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n allowance: { description: \"NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)\" },\n removeOldKeys: {\n description:\n \"Remove existing publish key(s) without prompting (default: ask on a TTY, defaulting to keep; keep when non-interactive — pass --remove-old-keys to remove)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n init: {\n commandPath: [\"init\"],\n summary: \"Scaffold a new project by extending a deployed app or template\",\n interactive: true,\n fields: {\n domain: {\n positional: true,\n description: \"New project domain (e.g. myapp.everything.dev)\",\n },\n extends: {\n description: \"Parent to extend from (e.g. bos://account/gateway or account/gateway)\",\n },\n account: { description: \"New project NEAR account (auto-derived from extends)\" },\n directory: { description: \"Target directory (auto-derived from domain)\" },\n source: { description: \"Local source dir (skips GitHub download)\" },\n plugins: {\n description: \"Comma-separated plugin keys to include (requires --overrides=plugins)\",\n },\n overrides: {\n description: \"Comma-separated sections to customize locally: ui,api,host,plugins\",\n },\n level: {\n description:\n \"Starter complexity: simple (public shell) or advanced (adds dashboard, orgs, admin)\",\n },\n noInteractive: { description: \"Skip prompts, use flags only\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n sync: {\n commandPath: [\"sync\"],\n summary: \"Sync template files from parent project\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview changes without writing files\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n import: {\n commandPath: [\"import\"],\n summary: \"Import a workspace subtree from an upstream repo without cloning\",\n interactive: true,\n fields: {\n workspace: { positional: true, description: \"Workspace subtree path (e.g. plugins/auth)\" },\n from: {\n description:\n \"Upstream source: bos://<account>/<gateway>, <owner>/<repo>[@<ref>], GitHub URL, or local directory — defaults to the authored config's extends chain\",\n },\n yes: { description: \"Apply upstream over conflicting files without prompting\" },\n dryRun: { description: \"Preview classification and report without writing files\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n upgrade: {\n commandPath: [\"upgrade\"],\n summary: \"Upgrade framework packages and sync template files\",\n interactive: true,\n fields: {\n dryRun: { description: \"Preview changes without writing\" },\n noInstall: { description: \"Skip pnpm install\" },\n noSync: { description: \"Only upgrade packages, skip template sync\" },\n },\n },\n typesGen: {\n commandPath: [\"types\", \"gen\"],\n summary: \"Generate type definitions from configured API and plugin contracts\",\n interactive: false,\n fields: {\n env: { description: \"Environment: development (default) or production\" },\n dryRun: { description: \"Preview what would be fetched without writing files\" },\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to fetch contract types remotely (e.g. --remote-plugins auth,registry)\",\n },\n },\n },\n typecheck: {\n commandPath: [\"typecheck\"],\n summary: \"Run TypeScript type checking across all local workspaces\",\n interactive: false,\n fields: {\n packages: {\n positional: true,\n description: \"Comma-separated workspace list (default: all)\",\n },\n },\n },\n mfCheck: {\n commandPath: [\"mf\", \"check\"],\n summary:\n \"Verify Module Federation runtime compatibility across published host + plugin bundles\",\n interactive: false,\n },\n dbStudio: {\n commandPath: [\"db\", \"studio\"],\n summary: \"Open Drizzle Studio for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name (default: api)\",\n },\n },\n },\n dbDoctor: {\n commandPath: [\"db\", \"doctor\"],\n summary: \"Diagnose migration health for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n },\n },\n dbRepair: {\n commandPath: [\"db\", \"repair\"],\n summary: \"Reset migration history and reapply migrations for a plugin\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n mode: {\n description: \"Repair mode: history-reset (default) or recreate (not yet supported)\",\n },\n yes: {\n description: \"Skip confirmation prompt\",\n },\n },\n },\n status: {\n commandPath: [\"status\"],\n summary: \"Show project health, versions, and update availability\",\n interactive: false,\n },\n ps: {\n commandPath: [\"ps\"],\n summary: \"List tracked development processes\",\n interactive: false,\n },\n logs: {\n commandPath: [\"logs\"],\n summary: \"Read dev session logs (.bos/logs/dev-latest.log)\",\n interactive: false,\n fields: {\n service: {\n description: \"Filter by service name (e.g. host, api, auth, ui, plugin:votes)\",\n },\n tail: { description: \"Show only the last N lines\" },\n follow: { description: \"Stream the log as lines are appended\" },\n },\n },\n kill: {\n commandPath: [\"kill\"],\n summary: \"Stop tracked development processes\",\n interactive: false,\n fields: {\n configDir: { description: \"Kill processes owned by a config directory (defaults to cwd)\" },\n signal: { description: \"Signal: SIGTERM (default) or SIGKILL\" },\n all: { description: \"Kill processes across all config directories\" },\n },\n },\n infraExport: {\n commandPath: [\"infra\", \"export\"],\n summary: \"Emit the resolved CI infra plan (env + services) for the current runtime\",\n interactive: false,\n fields: {\n target: { description: \"Export target: ci (default) or local\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n configDir: { description: \"Override config directory\" },\n },\n },\n} as const satisfies Record<string, CliCommandMeta>;\n"],"mappings":";AAUA,MAAa,iBAAiB;CAC5B,KAAK;EACH,aAAa,CAAC,KAAK;EACnB,SAAS;EACT,aAAa;EACb,aAAa;EACb,QAAQ;GACN,eAAe,EACb,aACE,mFACJ;GACA,UAAU,EACR,aACE,mHACJ;EACF;CACF;CACA,OAAO;EACL,aAAa,CAAC,OAAO;EACrB,SAAS;EACT,aAAa;EACb,aAAa;EACb,QAAQ;GACN,KAAK,EAAE,aAAa,qCAAqC;GACzD,UAAU,EACR,aACE,uGACJ;GACA,YAAY,EACV,aACE,6FACJ;EACF;CACF;CACA,OAAO;EACL,aAAa,CAAC,OAAO;EACrB,SAAS;EACT,aAAa;EACb,QAAQ,EACN,UAAU;GAAE,YAAY;GAAM,aAAa;EAA+B,EAC5E;CACF;CACA,QAAQ;EACN,aAAa,CAAC,QAAQ;EACtB,SAAS;EACT,aAAa;EACb,QAAQ,EACN,MAAM,EAAE,aAAa,yCAAyC,EAChE;CACF;CACA,aAAa;EACX,aAAa,CAAC,YAAY,KAAK;EAC/B,SACE;EACF,aAAa;EACb,QAAQ;GACN,MAAM;IACJ,YAAY;IACZ,aACE;GACJ;GACA,UAAU,EACR,aAAa,gEACf;GACA,QAAQ,EAAE,aAAa,4CAA4C;EACrE;CACF;CACA,WAAW;EACT,aAAa,CAAC,UAAU,KAAK;EAC7B,SAAS;EACT,aAAa;EACb,QAAQ;GACN,QAAQ;IACN,YAAY;IACZ,aAAa;GACf;GACA,IAAI,EAAE,aAAa,eAAe;GAClC,YAAY,EAAE,aAAa,0BAA0B;EACvD;CACF;CACA,cAAc;EACZ,aAAa,CAAC,UAAU,QAAQ;EAChC,SAAS;EACT,aAAa;EACb,QAAQ,EAAE,KAAK;GAAE,YAAY;GAAM,aAAa;EAAa,EAAE;CACjE;CACA,YAAY;EACV,aAAa,CAAC,UAAU,MAAM;EAC9B,SAAS;EACT,aAAa;CACf;CACA,eAAe;EACb,aAAa,CAAC,UAAU,SAAS;EACjC,SAAS;EACT,aAAa;EACb,QAAQ,EAAE,KAAK;GAAE,YAAY;GAAM,aAAa;EAAa,EAAE;CACjE;CACA,SAAS;EACP,aAAa,CAAC,SAAS;EACvB,SACE;EACF,aAAa;EACb,QAAQ;GACN,QAAQ,EAAE,aAAa,kDAAkD;GACzE,SAAS,EAAE,aAAa,kDAAkD;GAC1E,KAAK,EAAE,aAAa,qCAAqC;GACzD,SAAS,EAAE,aAAa,mCAAmC;GAC3D,QAAQ,EACN,aACE,8GACJ;GACA,UAAU,EACR,aACE,uGACJ;EACF;CACF;CACA,UAAU;EACR,aAAa,CAAC,UAAU;EACxB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,SAAS,EAAE,aAAa,+DAA+D;GACvF,UAAU,EAAE,aAAa,4DAA4D;GACrF,OAAO,EACL,aACE,uGACJ;GACA,OAAO,EAAE,aAAa,oCAAoC;GAC1D,QAAQ,EAAE,aAAa,0CAA0C;GACjE,KAAK,EAAE,aAAa,qCAAqC;GACzD,SAAS,EAAE,aAAa,mCAAmC;GAC3D,QAAQ,EACN,aACE,8GACJ;GACA,UAAU,EACR,aACE,uGACJ;EACF;CACF;CACA,QAAQ;EACN,aAAa,CAAC,QAAQ;EACtB,SACE;EACF,aAAa;EACb,QAAQ;GACN,KAAK,EAAE,aAAa,qCAAqC;GACzD,OAAO,EAAE,aAAa,6DAA6D;GACnF,QAAQ,EAAE,aAAa,iDAAiD;GACxE,SAAS,EAAE,aAAa,kDAAkD;GAC1E,SAAS,EAAE,aAAa,4CAA4C;GACpE,aAAa,EACX,aACE,+GACJ;GACA,OAAO,EACL,aACE,mHACJ;GACA,UAAU,EACR,aACE,uGACJ;EACF;CACF;CACA,OAAO;EACL,aAAa,CAAC,OAAO;EACrB,SACE;EACF,aAAa;EACb,QAAQ;GACN,OAAO,EAAE,aAAa,uCAAuC;GAC7D,MAAM,EAAE,aAAa,wDAAwD;GAC7E,MAAM,EAAE,aAAa,+CAA+C;GACpE,SAAS,EAAE,aAAa,8DAA8D;EACxF;CACF;CACA,OAAO;EACL,aAAa,CAAC,OAAO;EACrB,SACE;EACF,aAAa;EACb,QAAQ;GACN,KAAK,EAAE,aAAa,gEAAgE;GACpF,SAAS,EAAE,aAAa,iEAAiE;GACzF,MAAM,EAAE,aAAa,+CAA+C;GACpE,QAAQ,EAAE,aAAa,8DAA8D;GACrF,WAAW,EAAE,aAAa,iDAAiD;GAC3E,KAAK,EAAE,aAAa,+CAA+C;EACrE;CACF;CACA,QAAQ;EACN,aAAa,CAAC,QAAQ;EACtB,SAAS;EACT,aAAa;CACf;CACA,YAAY;EACV,aAAa,CAAC,OAAO,UAAU;EAC/B,SAAS;EACT,aAAa;EACb,QAAQ;GACN,KAAK,EAAE,aAAa,qCAAqC;GACzD,WAAW,EAAE,aAAa,4DAA4D;GACtF,eAAe,EACb,aACE,6JACJ;GACA,UAAU,EACR,aACE,uGACJ;EACF;CACF;CACA,MAAM;EACJ,aAAa,CAAC,MAAM;EACpB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,QAAQ;IACN,YAAY;IACZ,aAAa;GACf;GACA,SAAS,EACP,aAAa,wEACf;GACA,SAAS,EAAE,aAAa,uDAAuD;GAC/E,WAAW,EAAE,aAAa,8CAA8C;GACxE,QAAQ,EAAE,aAAa,2CAA2C;GAClE,SAAS,EACP,aAAa,wEACf;GACA,WAAW,EACT,aAAa,qEACf;GACA,OAAO,EACL,aACE,sFACJ;GACA,eAAe,EAAE,aAAa,+BAA+B;GAC7D,WAAW,EAAE,aAAa,oBAAoB;EAChD;CACF;CACA,MAAM;EACJ,aAAa,CAAC,MAAM;EACpB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,QAAQ,EAAE,aAAa,wCAAwC;GAC/D,WAAW,EAAE,aAAa,oBAAoB;EAChD;CACF;CACA,QAAQ;EACN,aAAa,CAAC,QAAQ;EACtB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,WAAW;IAAE,YAAY;IAAM,aAAa;GAA6C;GACzF,MAAM,EACJ,aACE,uJACJ;GACA,KAAK,EAAE,aAAa,0DAA0D;GAC9E,QAAQ,EAAE,aAAa,0DAA0D;GACjF,WAAW,EAAE,aAAa,oBAAoB;EAChD;CACF;CACA,SAAS;EACP,aAAa,CAAC,SAAS;EACvB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,QAAQ,EAAE,aAAa,kCAAkC;GACzD,WAAW,EAAE,aAAa,oBAAoB;GAC9C,QAAQ,EAAE,aAAa,4CAA4C;EACrE;CACF;CACA,UAAU;EACR,aAAa,CAAC,SAAS,KAAK;EAC5B,SAAS;EACT,aAAa;EACb,QAAQ;GACN,KAAK,EAAE,aAAa,mDAAmD;GACvE,QAAQ,EAAE,aAAa,sDAAsD;GAC7E,eAAe,EACb,aACE,oGACJ;EACF;CACF;CACA,WAAW;EACT,aAAa,CAAC,WAAW;EACzB,SAAS;EACT,aAAa;EACb,QAAQ,EACN,UAAU;GACR,YAAY;GACZ,aAAa;EACf,EACF;CACF;CACA,SAAS;EACP,aAAa,CAAC,MAAM,OAAO;EAC3B,SACE;EACF,aAAa;CACf;CACA,UAAU;EACR,aAAa,CAAC,MAAM,QAAQ;EAC5B,SAAS;EACT,QAAQ,EACN,QAAQ;GACN,YAAY;GACZ,aAAa;EACf,EACF;CACF;CACA,UAAU;EACR,aAAa,CAAC,MAAM,QAAQ;EAC5B,SAAS;EACT,QAAQ,EACN,QAAQ;GACN,YAAY;GACZ,aAAa;EACf,EACF;CACF;CACA,UAAU;EACR,aAAa,CAAC,MAAM,QAAQ;EAC5B,SAAS;EACT,QAAQ;GACN,QAAQ;IACN,YAAY;IACZ,aAAa;GACf;GACA,MAAM,EACJ,aAAa,uEACf;GACA,KAAK,EACH,aAAa,2BACf;EACF;CACF;CACA,QAAQ;EACN,aAAa,CAAC,QAAQ;EACtB,SAAS;EACT,aAAa;CACf;CACA,IAAI;EACF,aAAa,CAAC,IAAI;EAClB,SAAS;EACT,aAAa;CACf;CACA,MAAM;EACJ,aAAa,CAAC,MAAM;EACpB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,SAAS,EACP,aAAa,kEACf;GACA,MAAM,EAAE,aAAa,6BAA6B;GAClD,QAAQ,EAAE,aAAa,uCAAuC;EAChE;CACF;CACA,MAAM;EACJ,aAAa,CAAC,MAAM;EACpB,SAAS;EACT,aAAa;EACb,QAAQ;GACN,WAAW,EAAE,aAAa,+DAA+D;GACzF,QAAQ,EAAE,aAAa,uCAAuC;GAC9D,KAAK,EAAE,aAAa,+CAA+C;EACrE;CACF;CACA,aAAa;EACX,aAAa,CAAC,SAAS,QAAQ;EAC/B,SAAS;EACT,aAAa;EACb,QAAQ;GACN,QAAQ,EAAE,aAAa,uCAAuC;GAC9D,SAAS,EAAE,aAAa,mCAAmC;GAC3D,WAAW,EAAE,aAAa,4BAA4B;EACxD;CACF;AACF"}
package/dist/contract.mjs CHANGED
@@ -295,6 +295,7 @@ const OverrideSectionSchema = z$1.enum([
295
295
  const DEFAULT_LOGIN_EXPIRES_IN_SECONDS = 7776e3;
296
296
  const LoginOptionsSchema = z$1.object({
297
297
  key: z$1.boolean().default(false),
298
+ custody: z$1.boolean().default(false),
298
299
  site: z$1.string().optional(),
299
300
  expiresIn: z$1.number().int().positive().default(DEFAULT_LOGIN_EXPIRES_IN_SECONDS),
300
301
  device: z$1.string().optional(),
@@ -313,6 +314,21 @@ const LoginResultSchema = z$1.object({
313
314
  contract: z$1.string(),
314
315
  exportedTo: z$1.string()
315
316
  }).nullish(),
317
+ custodyWallet: z$1.object({
318
+ walletId: z$1.string(),
319
+ nearAccountId: z$1.string(),
320
+ network: z$1.enum(["mainnet", "testnet"]),
321
+ handoffUrl: z$1.string().nullish()
322
+ }).nullish(),
323
+ outlayerCli: z$1.object({
324
+ status: z$1.enum([
325
+ "linked",
326
+ "cli-missing",
327
+ "error"
328
+ ]),
329
+ network: z$1.enum(["mainnet", "testnet"]),
330
+ detail: z$1.string().nullish()
331
+ }).nullish(),
316
332
  warning: z$1.string().nullish(),
317
333
  error: z$1.string().optional()
318
334
  });
@@ -380,6 +396,68 @@ const SyncResultSchema = z$1.object({
380
396
  backupDir: z$1.string().optional(),
381
397
  error: z$1.string().optional()
382
398
  });
399
+ const ImportOptionsSchema = z$1.object({
400
+ workspace: z$1.string(),
401
+ /** omitted → resolve the upstream from the authored config's extends chain */
402
+ from: z$1.string().optional(),
403
+ yes: z$1.boolean().default(false),
404
+ dryRun: z$1.boolean().default(false),
405
+ noInstall: z$1.boolean().default(false),
406
+ json: z$1.boolean().default(false)
407
+ });
408
+ const ImportRouteDeltaSchema = z$1.object({
409
+ oursOnly: z$1.array(z$1.string()),
410
+ theirsOnly: z$1.array(z$1.string())
411
+ });
412
+ const ImportMigrationCollisionSchema = z$1.object({
413
+ kind: z$1.literal("tag-mismatch"),
414
+ idx: z$1.number(),
415
+ localTag: z$1.string().optional(),
416
+ upstreamTag: z$1.string().optional(),
417
+ message: z$1.string()
418
+ });
419
+ const ImportMigrationAppendSchema = z$1.object({
420
+ idx: z$1.number(),
421
+ fromTag: z$1.string(),
422
+ toTag: z$1.string()
423
+ });
424
+ const ImportMigrationReconciliationSchema = z$1.object({
425
+ /** local journal tags kept verbatim (already applied, never renumbered) */
426
+ kept: z$1.array(z$1.string()),
427
+ /** upstream migrations renumbered and appended after the local tail */
428
+ appended: z$1.array(ImportMigrationAppendSchema),
429
+ /** upstream migrations matched to local entries by SQL content hash */
430
+ contentMatched: z$1.array(z$1.string())
431
+ });
432
+ const ImportResultSchema = z$1.object({
433
+ status: z$1.enum([
434
+ "imported",
435
+ "dry-run",
436
+ "conflicts",
437
+ "error"
438
+ ]),
439
+ workspace: z$1.string(),
440
+ from: z$1.string(),
441
+ ref: z$1.string(),
442
+ resolvedSha: z$1.string().optional(),
443
+ /** the dereferenced upstream repository when the source was chain-resolved */
444
+ sourceRepository: z$1.string().optional(),
445
+ /** resolution notes (e.g. HEAD fallback when no git sha is pinned) */
446
+ warnings: z$1.array(z$1.string()).default([]),
447
+ added: z$1.array(z$1.string()),
448
+ updated: z$1.array(z$1.string()),
449
+ unchanged: z$1.array(z$1.string()).default([]),
450
+ preservedLocal: z$1.array(z$1.string()).default([]),
451
+ merged: z$1.array(z$1.string()).default([]),
452
+ conflicts: z$1.array(z$1.string()).default([]),
453
+ heldBackMigrations: z$1.array(z$1.string()).default([]),
454
+ routeDelta: ImportRouteDeltaSchema.optional(),
455
+ migrationCollisions: z$1.array(ImportMigrationCollisionSchema).default([]),
456
+ migrationReconciliation: ImportMigrationReconciliationSchema.optional(),
457
+ backupDir: z$1.string().optional(),
458
+ reportPath: z$1.string().optional(),
459
+ error: z$1.string().optional()
460
+ });
383
461
  const UpgradeOptionsSchema = z$1.object({
384
462
  dryRun: z$1.boolean().default(false),
385
463
  noInstall: z$1.boolean().default(false),
@@ -618,6 +696,7 @@ const commandOptionSchemas = {
618
696
  logout: LogoutOptionsSchema,
619
697
  init: InitOptionsSchema,
620
698
  sync: SyncOptionsSchema,
699
+ import: ImportOptionsSchema,
621
700
  upgrade: UpgradeOptionsSchema,
622
701
  typecheck: TypecheckOptionsSchema,
623
702
  mfCheck: MfCheckOptionsSchema,
@@ -701,6 +780,10 @@ const bosContract = oc.router({
701
780
  method: "POST",
702
781
  path: "/sync"
703
782
  }).input(SyncOptionsSchema).output(SyncResultSchema),
783
+ import: oc.route({
784
+ method: "POST",
785
+ path: "/import"
786
+ }).input(ImportOptionsSchema).output(ImportResultSchema),
704
787
  upgrade: oc.route({
705
788
  method: "POST",
706
789
  path: "/upgrade"
@@ -752,5 +835,5 @@ const bosContract = oc.router({
752
835
  });
753
836
 
754
837
  //#endregion
755
- export { BuildOptionsSchema, BuildResultSchema, ConfigOptionsSchema, ConfigResultSchema, DbDoctorOptionsSchema, DbDoctorResultSchema, DbRepairOptionsSchema, DbRepairResultSchema, DbStudioOptionsSchema, DbStudioResultSchema, DeployManifestListEntrySchema, DeployOptionsSchema, DeployResultSchema, DeployedVersionStatusSchema, DevOptionsSchema, DevResultSchema, InfraExportOptionsSchema, InfraExportResultSchema, InfraExportServiceSchema, InitOptionsSchema, InitResultSchema, KeyPublishOptionsSchema, KeyPublishResultSchema, KillOptionsSchema, KillResultSchema, LoginOptionsSchema, LoginResultSchema, LogoutOptionsSchema, LogoutResultSchema, LogsOptionsSchema, LogsResultSchema, MfCheckOptionsSchema, MfCheckRemoteResultSchema, MfCheckResultSchema, OverrideSectionSchema, PhaseTimingSchema, PidEntrySchema, PluginAddOptionsSchema, PluginAddResultSchema, PluginListResultSchema, PluginPublishOptionsSchema, PluginPublishResultSchema, PluginRemoveOptionsSchema, PluginRemoveResultSchema, ProcessRoleSchema, PsResultSchema, PublishOptionsSchema, PublishResultSchema, RegistryUseOptionsSchema, RegistryUseResultSchema, RollbackHistoryEntrySchema, RollbackOptionsSchema, RollbackResultSchema, RollbackSlotCheckSchema, RuntimeOverrideTargetBaseSchema, RuntimeOverrideTargetSchema, SmokeOptionsSchema, SmokeResultSchema, StartOptionsSchema, StartResultSchema, StatusResultSchema, SyncOptionsSchema, SyncResultSchema, TypecheckOptionsSchema, TypecheckResultSchema, TypecheckWorkspaceResultSchema, TypesGenOptionsSchema, TypesGenResultSchema, UpgradeOptionsSchema, UpgradeResultSchema, WorkspaceDeployResultSchema, bosContract, commandOptionSchemas };
838
+ export { BuildOptionsSchema, BuildResultSchema, ConfigOptionsSchema, ConfigResultSchema, DbDoctorOptionsSchema, DbDoctorResultSchema, DbRepairOptionsSchema, DbRepairResultSchema, DbStudioOptionsSchema, DbStudioResultSchema, DeployManifestListEntrySchema, DeployOptionsSchema, DeployResultSchema, DeployedVersionStatusSchema, DevOptionsSchema, DevResultSchema, ImportMigrationAppendSchema, ImportMigrationCollisionSchema, ImportMigrationReconciliationSchema, ImportOptionsSchema, ImportResultSchema, ImportRouteDeltaSchema, InfraExportOptionsSchema, InfraExportResultSchema, InfraExportServiceSchema, InitOptionsSchema, InitResultSchema, KeyPublishOptionsSchema, KeyPublishResultSchema, KillOptionsSchema, KillResultSchema, LoginOptionsSchema, LoginResultSchema, LogoutOptionsSchema, LogoutResultSchema, LogsOptionsSchema, LogsResultSchema, MfCheckOptionsSchema, MfCheckRemoteResultSchema, MfCheckResultSchema, OverrideSectionSchema, PhaseTimingSchema, PidEntrySchema, PluginAddOptionsSchema, PluginAddResultSchema, PluginListResultSchema, PluginPublishOptionsSchema, PluginPublishResultSchema, PluginRemoveOptionsSchema, PluginRemoveResultSchema, ProcessRoleSchema, PsResultSchema, PublishOptionsSchema, PublishResultSchema, RegistryUseOptionsSchema, RegistryUseResultSchema, RollbackHistoryEntrySchema, RollbackOptionsSchema, RollbackResultSchema, RollbackSlotCheckSchema, RuntimeOverrideTargetBaseSchema, RuntimeOverrideTargetSchema, SmokeOptionsSchema, SmokeResultSchema, StartOptionsSchema, StartResultSchema, StatusResultSchema, SyncOptionsSchema, SyncResultSchema, TypecheckOptionsSchema, TypecheckResultSchema, TypecheckWorkspaceResultSchema, TypesGenOptionsSchema, TypesGenResultSchema, UpgradeOptionsSchema, UpgradeResultSchema, WorkspaceDeployResultSchema, bosContract, commandOptionSchemas };
756
839
  //# sourceMappingURL=contract.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.mjs","names":["z"],"sources":["../src/contract.ts"],"sourcesContent":["import \"@orpc/openapi/extensions/route\";\nimport * as z from \"zod\";\nimport type { DevSessionData, StartSummary } from \"./dev-session-data\";\nimport { isValidImageDigest } from \"./image-deploy\";\nimport { oc } from \"./sdk\";\nimport {\n BosConfigInputSchema,\n BosConfigSchema,\n SourceModeSchema,\n StarterLevelSchema,\n} from \"./types\";\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n remotePlugins: z.array(z.string()).optional(),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n apiPort: z.number().optional(),\n uiPort: z.number().optional(),\n authPort: z.number().optional(),\n pluginPortStart: z.number().optional(),\n interactive: z.boolean().optional(),\n logLevel: z.enum([\"error\", \"warn\", \"info\", \"debug\"]).optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n timings: z.array(PhaseTimingSchema).optional(),\n session: z.custom<DevSessionData>().optional(),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n configPath: z.string().optional(),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n session: z.custom<DevSessionData>().optional(),\n summary: z.custom<StartSummary>().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n force: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n error: z.string().optional(),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const RegistryUseOptionsSchema = z.object({\n from: z.string().describe(\"Published runtime to compose from (account/gateway or bos:// URL)\"),\n sections: z\n .array(z.string())\n .min(1)\n .describe(\"Sections to compose: app.ui, app.host, app.api, app.auth, plugins.<key>\"),\n dryRun: z.boolean().default(false),\n});\n\nexport const RegistryUseResultSchema = z.object({\n status: z.enum([\"updated\", \"dry-run\", \"error\"]),\n from: z.string(),\n applied: z.array(z.string()),\n configPath: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n production: z.string().optional(),\n version: z.string().optional(),\n fingerprint: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const WorkspaceDeployResultSchema = z.object({\n key: z.string(),\n kind: z.enum([\"app\", \"plugin\"]),\n success: z.boolean(),\n error: z.string().optional(),\n durationMs: z.number().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackOptionsSchema = z.object({\n listOnly: z.boolean().default(false),\n version: z.string().optional(),\n previous: z.boolean().default(false),\n force: z.boolean().default(false),\n limit: z.number().int().min(1).max(200).default(20),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackHistoryEntrySchema = z.object({\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n summary: z.string(),\n});\n\nexport const RollbackSlotCheckSchema = z.object({\n slot: z.string(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const RollbackResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n history: z.array(RollbackHistoryEntrySchema).optional(),\n verification: z.array(RollbackSlotCheckSchema).optional(),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const DeployOptionsSchema = z.object({\n statusList: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n build: z.boolean().default(true),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n service: z.string().optional(),\n registry: z.string().optional(),\n imageDigest: z\n .string()\n .optional()\n .refine((digest) => digest === undefined || isValidImageDigest(digest), {\n message: \"image digest must be sha256:<64 hex characters>\",\n })\n .describe(\n \"Digest (sha256:…) of a pre-pushed runtime image — skips the image build/push leg and pins Railway to this digest\",\n ),\n fullUpload: z\n .boolean()\n .default(false)\n .describe(\n \"Re-upload every dist file instead of diffing unchanged files against the previous deploy\",\n ),\n smoke: z\n .boolean()\n .default(false)\n .describe(\n \"After publish, boot the runtime image against the just-published config and gate the Railway promotion on it — a red smoke rolls the config back to the previous snapshot\",\n ),\n});\n\nexport const DeployManifestListEntrySchema = z.object({\n key: z.string(),\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n publishedAt: z.string().optional(),\n});\n\nexport const DeployResultSchema = z.object({\n status: z.enum([\"deployed\", \"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n history: z.array(DeployManifestListEntrySchema).optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n image: z.string().optional(),\n service: z.string().optional(),\n error: z.string().optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const SmokeOptionsSchema = z.object({\n image: z\n .string()\n .optional()\n .describe(\"Runtime image ref to boot — required unless defaulted by the deploy train\"),\n port: z.number().int().default(3000),\n keep: z.boolean().default(false),\n account: z\n .string()\n .optional()\n .describe(\"Registry identity — defaults to the resolved session config\"),\n gateway: z.string().optional(),\n apiDatabaseUrl: z.string().optional(),\n authDatabaseUrl: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const SmokeResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n image: z.string().optional(),\n summary: z.string().optional(),\n diagnosis: z.string().optional(),\n error: z.string().optional(),\n});\n\nfunction parseNearAmount(value: string): number {\n const cleaned = value.replace(/[\\s_,]/g, \"\");\n const match = cleaned.match(/^(\\d+(?:\\.\\d+)?)near$/i);\n if (!match) return NaN;\n return Number.parseFloat(match[1]!);\n}\n\nconst MIN_PUBLISH_ALLOWANCE_NEAR = 0.3;\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z\n .string()\n .default(\"1NEAR\")\n .refine(\n (val) => {\n const amount = parseNearAmount(val);\n return !Number.isNaN(amount) && amount >= MIN_PUBLISH_ALLOWANCE_NEAR;\n },\n {\n message: `Allowance must be at least ${MIN_PUBLISH_ALLOWANCE_NEAR} NEAR to cover the transaction cost`,\n },\n ),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n removeOldKeys: z.boolean().optional(),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n env: z.enum([\"production\", \"staging\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nconst DEFAULT_LOGIN_EXPIRES_IN_SECONDS = 90 * 24 * 60 * 60;\n\nexport const LoginOptionsSchema = z.object({\n key: z.boolean().default(false),\n site: z.string().optional(),\n expiresIn: z.number().int().positive().default(DEFAULT_LOGIN_EXPIRES_IN_SECONDS),\n device: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const LoginResultSchema = z.object({\n status: z.enum([\"logged-in\", \"error\"]),\n siteUrl: z.string(),\n accountId: z.string().nullish(),\n expiresAt: z.string().nullish(),\n loginUrl: z.string().nullish(),\n publishKey: z\n .object({\n publicKey: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n exportedTo: z.string(),\n })\n .nullish(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const LogoutOptionsSchema = z.object({\n configDir: z.string().optional(),\n});\n\nexport const LogoutResultSchema = z.object({\n status: z.enum([\"logged-out\", \"error\"]),\n revokedApiKey: z.boolean(),\n removedPublishKey: z.boolean(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n level: StarterLevelSchema.optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n json: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n conflicted: z.array(z.string()).default([]),\n /** retired stub files deleted silently (unmodified) — ADR 0023 migration */\n retired: z.array(z.string()).optional(),\n /** retired stub files that were hand-modified — backed up, then deleted */\n retiredConflicted: z.array(z.string()).optional(),\n /** where the retired hand-modified copies were backed up */\n retiredBackupDir: z.string().optional(),\n backupDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n json: z.boolean().default(false),\n migrationsOnly: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DeployedVersionStatusSchema = z.object({\n publishedFingerprint: z.string(),\n servedFingerprint: z.string().optional(),\n inSync: z.boolean(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n deployedVersion: DeployedVersionStatusSchema.optional(),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n isLinked: z.boolean().optional(),\n specifier: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n remotePlugins: z.array(z.string()).optional(),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const DbStudioOptionsSchema = z.object({\n plugin: z.string().default(\"api\"),\n});\n\nexport const DbStudioResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n source: z.enum([\"local\", \"remote\"]),\n section: z.string(),\n databaseSecret: z.string().optional(),\n databaseUrl: z.string().optional(),\n workspaceDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbDoctorOptionsSchema = z.object({\n plugin: z.string(),\n});\n\nexport const DbDoctorResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n slug: z.string(),\n journalTable: z.string(),\n journalSchema: z.string(),\n diagnosis: z.string(),\n localMigrationCount: z.number(),\n appliedHashCount: z.number(),\n expectedTables: z.array(z.string()),\n missingTables: z.array(z.string()),\n workspaceDir: z.string().optional(),\n dbSecret: z.string().optional(),\n dbUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbRepairOptionsSchema = z.object({\n plugin: z.string(),\n mode: z.enum([\"history-reset\", \"recreate\"]).default(\"history-reset\"),\n yes: z.boolean().optional(),\n});\n\nexport const DbRepairResultSchema = z.object({\n status: z.enum([\"repaired\", \"refused\", \"error\"]),\n message: z.string(),\n diagnosis: z.any(),\n error: z.string().optional(),\n});\n\nexport const ProcessRoleSchema = z.enum([\"standalone\", \"workspace-parent\", \"workspace-child\"]);\n\nexport const PidEntrySchema = z.object({\n pid: z.number(),\n configDir: z.string(),\n parentPid: z.number().optional(),\n role: ProcessRoleSchema,\n ports: z\n .object({\n host: z.number().optional(),\n api: z.number().optional(),\n ui: z.number().optional(),\n auth: z.number().optional(),\n })\n .default({}),\n budget: z\n .object({\n min: z.number(),\n max: z.number(),\n })\n .optional(),\n startedAt: z.number(),\n description: z.string(),\n});\n\nexport const PsResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n entries: z.array(PidEntrySchema),\n error: z.string().optional(),\n});\n\nexport const LogsOptionsSchema = z.object({\n service: z.string().optional(),\n tail: z.number().int().positive().max(100_000).optional(),\n follow: z.boolean().optional(),\n});\n\nexport const LogsResultSchema = z.object({\n logFile: z.string(),\n lines: z.array(z.string()),\n});\n\nexport const KillOptionsSchema = z.object({\n configDir: z.string().optional(),\n signal: z.enum([\"SIGTERM\", \"SIGKILL\"]).default(\"SIGTERM\"),\n all: z.boolean().default(false),\n});\n\nexport const KillResultSchema = z.object({\n status: z.enum([\"killed\", \"error\"]),\n killed: z.array(z.object({ pid: z.number(), configDir: z.string() })),\n skipped: z.array(z.object({ pid: z.number(), reason: z.string() })),\n error: z.string().optional(),\n});\n\nexport const TypecheckOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n});\n\nexport const TypecheckWorkspaceResultSchema = z.object({\n workspace: z.string(),\n passed: z.boolean(),\n output: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const TypecheckResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n checked: z.array(z.string()),\n skipped: z.array(z.string()),\n results: z.array(TypecheckWorkspaceResultSchema),\n error: z.string().optional(),\n});\n\nexport const InfraExportServiceSchema = z.object({\n key: z.string(),\n image: z.string(),\n env: z.record(z.string(), z.string()).default({}),\n ports: z.array(z.string()),\n healthcheck: z\n .object({\n test: z.array(z.string()),\n interval: z.string(),\n timeout: z.string(),\n retries: z.number(),\n })\n .optional(),\n volumes: z.array(z.string()).default([]),\n});\n\nexport const InfraExportOptionsSchema = z.object({\n target: z.enum([\"ci\", \"local\"]).default(\"ci\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n configDir: z.string().optional(),\n});\n\nexport const InfraExportResultSchema = z.object({\n env: z.record(z.string(), z.string()),\n services: z.array(InfraExportServiceSchema),\n generatedAt: z.string(),\n project: z.string(),\n account: z.string(),\n gateway: z.string(),\n});\n\nexport const MfCheckOptionsSchema = z.object({\n timeoutMs: z.number().default(15_000),\n});\n\nexport const MfCheckRemoteResultSchema = z.object({\n role: z.string(),\n url: z.string(),\n reachable: z.boolean(),\n pluginVersion: z.string().nullable(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const MfCheckResultSchema = z.object({\n status: z.enum([\"ok\", \"fail\"]),\n hostVersion: z.string().nullable(),\n hostReachable: z.boolean(),\n hostReason: z.string().optional(),\n remotes: z.array(MfCheckRemoteResultSchema),\n});\n\nexport const commandOptionSchemas = {\n dev: DevOptionsSchema,\n start: StartOptionsSchema,\n build: BuildOptionsSchema,\n config: ConfigOptionsSchema,\n registryUse: RegistryUseOptionsSchema,\n pluginAdd: PluginAddOptionsSchema,\n pluginRemove: PluginRemoveOptionsSchema,\n pluginPublish: PluginPublishOptionsSchema,\n publish: PublishOptionsSchema,\n rollback: RollbackOptionsSchema,\n deploy: DeployOptionsSchema,\n smoke: SmokeOptionsSchema,\n keyPublish: KeyPublishOptionsSchema,\n login: LoginOptionsSchema,\n logout: LogoutOptionsSchema,\n init: InitOptionsSchema,\n sync: SyncOptionsSchema,\n upgrade: UpgradeOptionsSchema,\n typecheck: TypecheckOptionsSchema,\n mfCheck: MfCheckOptionsSchema,\n infraExport: InfraExportOptionsSchema,\n dbStudio: DbStudioOptionsSchema,\n dbDoctor: DbDoctorOptionsSchema,\n dbRepair: DbRepairOptionsSchema,\n logs: LogsOptionsSchema,\n kill: KillOptionsSchema,\n} satisfies Partial<Record<keyof typeof bosContract, z.ZodType>>;\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n registryUse: oc\n .route({ method: \"POST\", path: \"/registry/use\" })\n .input(RegistryUseOptionsSchema)\n .output(RegistryUseResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n rollback: oc\n .route({ method: \"POST\", path: \"/rollback\" })\n .input(RollbackOptionsSchema)\n .output(RollbackResultSchema),\n deploy: oc\n .route({ method: \"POST\", path: \"/deploy\" })\n .input(DeployOptionsSchema)\n .output(DeployResultSchema),\n smoke: oc\n .route({ method: \"POST\", path: \"/smoke\" })\n .input(SmokeOptionsSchema)\n .output(SmokeResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n login: oc\n .route({ method: \"POST\", path: \"/login\" })\n .input(LoginOptionsSchema)\n .output(LoginResultSchema),\n logout: oc\n .route({ method: \"POST\", path: \"/logout\" })\n .input(LogoutOptionsSchema)\n .output(LogoutResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n dbStudio: oc\n .route({ method: \"POST\", path: \"/db/studio\" })\n .input(DbStudioOptionsSchema)\n .output(DbStudioResultSchema),\n dbDoctor: oc\n .route({ method: \"POST\", path: \"/db/doctor\" })\n .input(DbDoctorOptionsSchema)\n .output(DbDoctorResultSchema),\n dbRepair: oc\n .route({ method: \"POST\", path: \"/db/repair\" })\n .input(DbRepairOptionsSchema)\n .output(DbRepairResultSchema),\n ps: oc.route({ method: \"GET\", path: \"/ps\" }).output(PsResultSchema),\n logs: oc\n .route({ method: \"GET\", path: \"/logs\" })\n .input(LogsOptionsSchema)\n .output(LogsResultSchema),\n kill: oc\n .route({ method: \"POST\", path: \"/kill\" })\n .input(KillOptionsSchema)\n .output(KillResultSchema),\n typecheck: oc\n .route({ method: \"POST\", path: \"/typecheck\" })\n .input(TypecheckOptionsSchema)\n .output(TypecheckResultSchema),\n mfCheck: oc\n .route({ method: \"POST\", path: \"/mf/check\" })\n .input(MfCheckOptionsSchema)\n .output(MfCheckResultSchema),\n infraExport: oc\n .route({ method: \"POST\", path: \"/infra/export\" })\n .input(InfraExportOptionsSchema)\n .output(InfraExportResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type WorkspaceDeployResult = z.infer<typeof WorkspaceDeployResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type PublishResult = z.infer<typeof PublishResultSchema>;\nexport type DeployOptions = z.infer<typeof DeployOptionsSchema>;\nexport type DeployResult = z.infer<typeof DeployResultSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type LoginOptions = z.infer<typeof LoginOptionsSchema>;\nexport type LoginResult = z.infer<typeof LoginResultSchema>;\nexport type LogoutOptions = z.infer<typeof LogoutOptionsSchema>;\nexport type LogoutResult = z.infer<typeof LogoutResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type DbStudioOptions = z.infer<typeof DbStudioOptionsSchema>;\nexport type DbStudioResult = z.infer<typeof DbStudioResultSchema>;\nexport type DbDoctorOptions = z.infer<typeof DbDoctorOptionsSchema>;\nexport type DbDoctorResult = z.infer<typeof DbDoctorResultSchema>;\nexport type DbRepairOptions = z.infer<typeof DbRepairOptionsSchema>;\nexport type DbRepairResult = z.infer<typeof DbRepairResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\nexport type ProcessRole = z.infer<typeof ProcessRoleSchema>;\nexport type PidEntry = z.infer<typeof PidEntrySchema>;\nexport type PsResult = z.infer<typeof PsResultSchema>;\nexport type LogsOptions = z.infer<typeof LogsOptionsSchema>;\nexport type LogsResult = z.infer<typeof LogsResultSchema>;\nexport type KillOptions = z.infer<typeof KillOptionsSchema>;\nexport type KillResult = z.infer<typeof KillResultSchema>;\nexport type TypecheckOptions = z.infer<typeof TypecheckOptionsSchema>;\nexport type TypecheckResult = z.infer<typeof TypecheckResultSchema>;\nexport type TypecheckWorkspaceResult = z.infer<typeof TypecheckWorkspaceResultSchema>;\nexport type InfraExportOptions = z.infer<typeof InfraExportOptionsSchema>;\nexport type MfCheckOptions = z.infer<typeof MfCheckOptionsSchema>;\nexport type MfCheckResult = z.infer<typeof MfCheckResultSchema>;\nexport type InfraExportResult = z.infer<typeof InfraExportResultSchema>;\nexport type InfraExportService = z.infer<typeof InfraExportServiceSchema>;\n"],"mappings":";;;;;;;AAYA,MAAa,oBAAoBA,IAAE,OAAO;CACxC,MAAMA,IAAE,OAAO;CACf,YAAYA,IAAE,OAAO;AACvB,CAAC;AAED,MAAa,mBAAmBA,IAAE,OAAO;CACvC,MAAM,iBAAiB,QAAQ,OAAO;CACtC,IAAI,iBAAiB,QAAQ,OAAO;CACpC,KAAK,iBAAiB,QAAQ,OAAO;CACrC,MAAM,iBAAiB,QAAQ,OAAO;CACtC,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC5C,OAAOA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAChC,KAAKA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAC9B,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,iBAAiBA,IAAE,OAAO,CAAC,CAAC,SAAS;CACrC,aAAaA,IAAE,QAAQ,CAAC,CAAC,SAAS;CAClC,UAAUA,IAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;CAAO,CAAC,CAAC,CAAC,SAAS;AAChE,CAAC;AAED,MAAa,kBAAkBA,IAAE,OAAO;CACtC,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,aAAaA,IAAE,OAAO;CACtB,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC7B,SAASA,IAAE,MAAM,iBAAiB,CAAC,CAAC,SAAS;CAC7C,SAASA,IAAE,OAAuB,CAAC,CAAC,SAAS;AAC/C,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,aAAaA,IAAE,QAAQ,CAAC,CAAC,SAAS;CAClC,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;AAClC,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,KAAKA,IAAE,OAAO;CACd,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAASA,IAAE,OAAuB,CAAC,CAAC,SAAS;CAC7C,SAASA,IAAE,OAAqB,CAAC,CAAC,SAAS;AAC7C,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,UAAUA,IACP,OAAO,CAAC,CACR,QAAQ,KAAK,CAAC,CACd,SACC,yGACF;CACF,OAAOA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AAClC,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;CACzB,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;AACxC,CAAC;AAED,MAAa,sBAAsBA,IAAE,OAAO,EAC1C,MAAMA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK,EACjC,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,QAAQA,IAAE,MAAM,CAAC,sBAAsB,eAAe,CAAC,CAAC,CAAC,SAAS;CAClE,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC5B,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,MAAMA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AACjC,CAAC;AAED,MAAa,2BAA2BA,IAAE,OAAO;CAC/C,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS,mEAAmE;CAC7F,UAAUA,IACP,MAAMA,IAAE,OAAO,CAAC,CAAC,CACjB,IAAI,CAAC,CAAC,CACN,SAAS,yEAAyE;CACrF,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AACnC,CAAC;AAED,MAAa,0BAA0BA,IAAE,OAAO;CAC9C,QAAQA,IAAE,KAAK;EAAC;EAAW;EAAW;CAAO,CAAC;CAC9C,MAAMA,IAAE,OAAO;CACf,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,yBAAyBA,IAAE,OAAO;CAC7C,QAAQA,IAAE,OAAO;CACjB,IAAIA,IAAE,OAAO,CAAC,CAAC,SAAS;CACxB,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;AAClC,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO;CAC5C,QAAQA,IAAE,KAAK,CAAC,SAAS,OAAO,CAAC;CACjC,KAAKA,IAAE,OAAO;CACd,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,4BAA4BA,IAAE,OAAO,EAChD,KAAKA,IAAE,OAAO,EAChB,CAAC;AAED,MAAa,2BAA2BA,IAAE,OAAO;CAC/C,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,KAAKA,IAAE,OAAO;CACd,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,yBAAyBA,IAAE,OAAO;CAC7C,QAAQA,IAAE,KAAK,CAAC,UAAU,OAAO,CAAC;CAClC,SAASA,IAAE,MACTA,IAAE,OAAO;EACP,KAAKA,IAAE,OAAO;EACd,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;EACjC,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;EAChC,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC/B,QAAQA,IAAE,KAAK,CAAC,SAAS,QAAQ,CAAC;EAClC,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC/B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC7B,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,CAAC,CACH;CACA,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,6BAA6BA,IAAE,OAAO,EACjD,KAAKA,IAAE,OAAO,EAChB,CAAC;AAED,MAAa,4BAA4BA,IAAE,OAAO;CAChD,QAAQA,IAAE,KAAK,CAAC,aAAa,OAAO,CAAC;CACrC,KAAKA,IAAE,OAAO;CACd,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,8BAA8BA,IAAE,OAAO;CAClD,KAAKA,IAAE,OAAO;CACd,MAAMA,IAAE,KAAK,CAAC,OAAO,QAAQ,CAAC;CAC9B,SAASA,IAAE,QAAQ;CACnB,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;AAClC,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,SAASA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAClC,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS;CACjD,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO;CAC5C,UAAUA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACnC,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,UAAUA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACnC,OAAOA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAChC,OAAOA,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE;CAClD,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,SAASA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAClC,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS;CACjD,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC;AAED,MAAa,6BAA6BA,IAAE,OAAO;CACjD,aAAaA,IAAE,OAAO;CACtB,gBAAgBA,IAAE,OAAO;CACzB,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,SAASA,IAAE,OAAO;AACpB,CAAC;AAED,MAAa,0BAA0BA,IAAE,OAAO;CAC9C,MAAMA,IAAE,OAAO;CACf,IAAIA,IAAE,QAAQ;CACd,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC9B,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,KAAK;EAAC;EAAa;EAAS;EAAW;CAAM,CAAC;CACxD,aAAaA,IAAE,OAAO;CACtB,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAASA,IAAE,MAAM,0BAA0B,CAAC,CAAC,SAAS;CACtD,cAAcA,IAAE,MAAM,uBAAuB,CAAC,CAAC,SAAS;AAC1D,CAAC;AAED,MAAa,sBAAsBA,IAAE,OAAO;CAC1C,QAAQA,IAAE,KAAK;EAAC;EAAa;EAAS;CAAS,CAAC;CAChD,aAAaA,IAAE,OAAO;CACtB,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACpD,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACpC,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACtC,eAAeA,IAAE,MAAM,2BAA2B,CAAC,CAAC,SAAS;AAC/D,CAAC;AAED,MAAa,sBAAsBA,IAAE,OAAO;CAC1C,YAAYA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACrC,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,OAAOA,IAAE,QAAQ,CAAC,CAAC,QAAQ,IAAI;CAC/B,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,SAASA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAClC,UAAUA,IACP,OAAO,CAAC,CACR,QAAQ,KAAK,CAAC,CACd,SACC,yGACF;CACF,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS;CACjD,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,aAAaA,IACV,OAAO,CAAC,CACR,SAAS,CAAC,CACV,QAAQ,WAAW,WAAW,UAAa,mBAAmB,MAAM,GAAG,EACtE,SAAS,kDACX,CAAC,CAAC,CACD,SACC,kHACF;CACF,YAAYA,IACT,QAAQ,CAAC,CACT,QAAQ,KAAK,CAAC,CACd,SACC,0FACF;CACF,OAAOA,IACJ,QAAQ,CAAC,CACT,QAAQ,KAAK,CAAC,CACd,SACC,2KACF;AACJ,CAAC;AAED,MAAa,gCAAgCA,IAAE,OAAO;CACpD,KAAKA,IAAE,OAAO;CACd,aAAaA,IAAE,OAAO;CACtB,gBAAgBA,IAAE,OAAO;CACzB,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;AACnC,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,QAAQA,IAAE,KAAK;EAAC;EAAY;EAAa;EAAS;EAAW;CAAM,CAAC;CACpE,aAAaA,IAAE,OAAO;CACtB,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,UAAUA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACpD,SAASA,IAAE,MAAM,6BAA6B,CAAC,CAAC,SAAS;CACzD,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACpC,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACtC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,eAAeA,IAAE,MAAM,2BAA2B,CAAC,CAAC,SAAS;AAC/D,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,OAAOA,IACJ,OAAO,CAAC,CACR,SAAS,CAAC,CACV,SAAS,2EAA2E;CACvF,MAAMA,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAI;CACnC,MAAMA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAC/B,SAASA,IACN,OAAO,CAAC,CACR,SAAS,CAAC,CACV,SAAS,6DAA6D;CACzE,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,gBAAgBA,IAAE,OAAO,CAAC,CAAC,SAAS;CACpC,iBAAiBA,IAAE,OAAO,CAAC,CAAC,SAAS;CACrC,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,QAAQA,IAAE,KAAK,CAAC,MAAM,OAAO,CAAC;CAC9B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,SAAS,gBAAgB,OAAuB;CAE9C,MAAM,QADU,MAAM,QAAQ,WAAW,EACrB,CAAC,CAAC,MAAM,wBAAwB;CACpD,IAAI,CAAC,OAAO,OAAO;CACnB,OAAO,OAAO,WAAW,MAAM,EAAG;AACpC;AAEA,MAAM,6BAA6B;AAEnC,MAAa,0BAA0BA,IAAE,OAAO;CAC9C,WAAWA,IACR,OAAO,CAAC,CACR,QAAQ,OAAO,CAAC,CAChB,QACE,QAAQ;EACP,MAAM,SAAS,gBAAgB,GAAG;EAClC,OAAO,CAAC,OAAO,MAAM,MAAM,KAAK,UAAU;CAC5C,GACA,EACE,SAAS,8BAA8B,2BAA2B,qCACpE,CACF;CACF,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,eAAeA,IAAE,QAAQ,CAAC,CAAC,SAAS;AACtC,CAAC;AAED,MAAa,yBAAyBA,IAAE,OAAO;CAC7C,QAAQA,IAAE,KAAK,CAAC,aAAa,OAAO,CAAC;CACrC,SAASA,IAAE,OAAO;CAClB,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC;CACtC,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC;CACrC,UAAUA,IAAE,OAAO;CACnB,WAAWA,IAAE,OAAO;CACpB,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC;CACjC,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,wBAAwBA,IAAE,KAAK;CAAC;CAAM;CAAO;CAAQ;AAAS,CAAC;AAE5E,MAAM,mCAAmC;AAEzC,MAAa,qBAAqBA,IAAE,OAAO;CACzC,KAAKA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAC9B,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,WAAWA,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,gCAAgC;CAC/E,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,KAAKA,IAAE,KAAK,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,QAAQ,YAAY;CAC3D,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;AAChC,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,QAAQA,IAAE,KAAK,CAAC,aAAa,OAAO,CAAC;CACrC,SAASA,IAAE,OAAO;CAClB,WAAWA,IAAE,OAAO,CAAC,CAAC,QAAQ;CAC9B,WAAWA,IAAE,OAAO,CAAC,CAAC,QAAQ;CAC9B,UAAUA,IAAE,OAAO,CAAC,CAAC,QAAQ;CAC7B,YAAYA,IACT,OAAO;EACN,WAAWA,IAAE,OAAO;EACpB,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC;EACtC,UAAUA,IAAE,OAAO;EACnB,YAAYA,IAAE,OAAO;CACvB,CAAC,CAAC,CACD,QAAQ;CACX,SAASA,IAAE,OAAO,CAAC,CAAC,QAAQ;CAC5B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,sBAAsBA,IAAE,OAAO,EAC1C,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS,EACjC,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,QAAQA,IAAE,KAAK,CAAC,cAAc,OAAO,CAAC;CACtC,eAAeA,IAAE,QAAQ;CACzB,mBAAmBA,IAAE,QAAQ;CAC7B,SAASA,IAAE,OAAO,CAAC,CAAC,QAAQ;CAC5B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,kCAAkCA,IAAE,KAAK;CAAC;CAAM;CAAO;AAAS,CAAC;AAE9E,MAAa,8BAA8BA,IAAE,MAAM,CACjD,iCACAA,IAAE,OAAO,CAAC,CAAC,MAAM,6BAA6B,CAChD,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACtC,WAAWA,IAAE,MAAM,qBAAqB,CAAC,CAAC,SAAS;CACnD,OAAO,mBAAmB,SAAS;CACnC,eAAeA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACxC,WAAWA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AACtC,CAAC;AAED,MAAa,mBAAmBA,IAAE,OAAO;CACvC,QAAQA,IAAE,KAAK,CAAC,eAAe,OAAO,CAAC;CACvC,WAAWA,IAAE,OAAO;CACpB,YAAYA,IAAE,OAAO;CACrB,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,SAASA,IAAE,OAAO;CAClB,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACtC,WAAWA,IAAE,MAAM,qBAAqB,CAAC,CAAC,SAAS;CACnD,aAAaA,IAAE,OAAO;CACtB,SAASA,IAAE,MAAM,iBAAiB,CAAC,CAAC,SAAS;CAC7C,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,WAAWA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACpC,MAAMA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AACjC,CAAC;AAED,MAAa,mBAAmBA,IAAE,OAAO;CACvC,QAAQA,IAAE,KAAK;EAAC;EAAU;EAAW;CAAO,CAAC;CAC7C,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;CACzB,YAAYA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;;CAE1C,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;;CAEtC,mBAAmBA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;;CAEhD,kBAAkBA,IAAE,OAAO,CAAC,CAAC,SAAS;CACtC,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,WAAWA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACpC,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,MAAMA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CAC/B,gBAAgBA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AAC3C,CAAC;AAED,MAAa,sBAAsBA,IAAE,OAAO;CAC1C,QAAQA,IAAE,KAAK;EAAC;EAAY;EAAW;CAAO,CAAC;CAC/C,UAAUA,IAAE,MACVA,IAAE,OAAO;EACP,MAAMA,IAAE,OAAO;EACf,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC1B,IAAIA,IAAE,OAAO;CACf,CAAC,CACH;CACA,MAAM,iBAAiB,SAAS;CAChC,UAAUA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CACvC,kBAAkBA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC/C,iBAAiBA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC9C,SAASA,IAAE,MAAM,iBAAiB,CAAC,CAAC,SAAS;CAC7C,cAAcA,IAAE,OAAO,CAAC,CAAC,SAAS;CAClC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,8BAA8BA,IAAE,OAAO;CAClD,sBAAsBA,IAAE,OAAO;CAC/B,mBAAmBA,IAAE,OAAO,CAAC,CAAC,SAAS;CACvC,QAAQA,IAAE,QAAQ;CAClB,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,qBAAqBA,IAAE,OAAO;CACzC,QAAQA,IAAE,KAAK,CAAC,MAAM,OAAO,CAAC;CAC9B,iBAAiB,4BAA4B,SAAS;CACtD,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,UAAUA,IAAE,MACVA,IAAE,OAAO;EACP,MAAMA,IAAE,OAAO;EACf,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC/B,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC5B,UAAUA,IAAE,QAAQ,CAAC,CAAC,SAAS;EAC/B,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,CAAC,CACH;CACA,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,SAASA,IAAE,KAAK;EAAC;EAAS;EAAW;CAAc,CAAC;CACpD,iBAAiBA,IAAE,QAAQ,CAAC,CAAC,SAAS;CACtC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO;CAC5C,KAAKA,IAAE,KAAK,CAAC,eAAe,YAAY,CAAC,CAAC,CAAC,SAAS;CACpD,QAAQA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;CACjC,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,SAAS;AAC9C,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,WAAWA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC7B,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,QAAQA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC1B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO,EAC5C,QAAQA,IAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,EAClC,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,QAAQA,IAAE,OAAO;CACjB,QAAQA,IAAE,KAAK,CAAC,SAAS,QAAQ,CAAC;CAClC,SAASA,IAAE,OAAO;CAClB,gBAAgBA,IAAE,OAAO,CAAC,CAAC,SAAS;CACpC,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,cAAcA,IAAE,OAAO,CAAC,CAAC,SAAS;CAClC,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO,EAC5C,QAAQA,IAAE,OAAO,EACnB,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,QAAQA,IAAE,OAAO;CACjB,MAAMA,IAAE,OAAO;CACf,cAAcA,IAAE,OAAO;CACvB,eAAeA,IAAE,OAAO;CACxB,WAAWA,IAAE,OAAO;CACpB,qBAAqBA,IAAE,OAAO;CAC9B,kBAAkBA,IAAE,OAAO;CAC3B,gBAAgBA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAClC,eAAeA,IAAE,MAAMA,IAAE,OAAO,CAAC;CACjC,cAAcA,IAAE,OAAO,CAAC,CAAC,SAAS;CAClC,UAAUA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO;CAC5C,QAAQA,IAAE,OAAO;CACjB,MAAMA,IAAE,KAAK,CAAC,iBAAiB,UAAU,CAAC,CAAC,CAAC,QAAQ,eAAe;CACnE,KAAKA,IAAE,QAAQ,CAAC,CAAC,SAAS;AAC5B,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO;CAC3C,QAAQA,IAAE,KAAK;EAAC;EAAY;EAAW;CAAO,CAAC;CAC/C,SAASA,IAAE,OAAO;CAClB,WAAWA,IAAE,IAAI;CACjB,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,oBAAoBA,IAAE,KAAK;CAAC;CAAc;CAAoB;AAAiB,CAAC;AAE7F,MAAa,iBAAiBA,IAAE,OAAO;CACrC,KAAKA,IAAE,OAAO;CACd,WAAWA,IAAE,OAAO;CACpB,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,MAAM;CACN,OAAOA,IACJ,OAAO;EACN,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;EAC1B,KAAKA,IAAE,OAAO,CAAC,CAAC,SAAS;EACzB,IAAIA,IAAE,OAAO,CAAC,CAAC,SAAS;EACxB,MAAMA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,CAAC,CAAC,CACD,QAAQ,CAAC,CAAC;CACb,QAAQA,IACL,OAAO;EACN,KAAKA,IAAE,OAAO;EACd,KAAKA,IAAE,OAAO;CAChB,CAAC,CAAC,CACD,SAAS;CACZ,WAAWA,IAAE,OAAO;CACpB,aAAaA,IAAE,OAAO;AACxB,CAAC;AAED,MAAa,iBAAiBA,IAAE,OAAO;CACrC,QAAQA,IAAE,KAAK,CAAC,MAAM,OAAO,CAAC;CAC9B,SAASA,IAAE,MAAM,cAAc;CAC/B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,SAASA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,MAAMA,IAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAO,CAAC,CAAC,SAAS;CACxD,QAAQA,IAAE,QAAQ,CAAC,CAAC,SAAS;AAC/B,CAAC;AAED,MAAa,mBAAmBA,IAAE,OAAO;CACvC,SAASA,IAAE,OAAO;CAClB,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;AAC3B,CAAC;AAED,MAAa,oBAAoBA,IAAE,OAAO;CACxC,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC/B,QAAQA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS;CACxD,KAAKA,IAAE,QAAQ,CAAC,CAAC,QAAQ,KAAK;AAChC,CAAC;AAED,MAAa,mBAAmBA,IAAE,OAAO;CACvC,QAAQA,IAAE,KAAK,CAAC,UAAU,OAAO,CAAC;CAClC,QAAQA,IAAE,MAAMA,IAAE,OAAO;EAAE,KAAKA,IAAE,OAAO;EAAG,WAAWA,IAAE,OAAO;CAAE,CAAC,CAAC;CACpE,SAASA,IAAE,MAAMA,IAAE,OAAO;EAAE,KAAKA,IAAE,OAAO;EAAG,QAAQA,IAAE,OAAO;CAAE,CAAC,CAAC;CAClE,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,yBAAyBA,IAAE,OAAO,EAC7C,UAAUA,IAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,EACpC,CAAC;AAED,MAAa,iCAAiCA,IAAE,OAAO;CACrD,WAAWA,IAAE,OAAO;CACpB,QAAQA,IAAE,QAAQ;CAClB,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;CAC5B,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,wBAAwBA,IAAE,OAAO;CAC5C,QAAQA,IAAE,KAAK,CAAC,WAAW,OAAO,CAAC;CACnC,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC;CAC3B,SAASA,IAAE,MAAM,8BAA8B;CAC/C,OAAOA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC7B,CAAC;AAED,MAAa,2BAA2BA,IAAE,OAAO;CAC/C,KAAKA,IAAE,OAAO;CACd,OAAOA,IAAE,OAAO;CAChB,KAAKA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAChD,OAAOA,IAAE,MAAMA,IAAE,OAAO,CAAC;CACzB,aAAaA,IACV,OAAO;EACN,MAAMA,IAAE,MAAMA,IAAE,OAAO,CAAC;EACxB,UAAUA,IAAE,OAAO;EACnB,SAASA,IAAE,OAAO;EAClB,SAASA,IAAE,OAAO;CACpB,CAAC,CAAC,CACD,SAAS;CACZ,SAASA,IAAE,MAAMA,IAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAa,2BAA2BA,IAAE,OAAO;CAC/C,QAAQA,IAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI;CAC5C,SAASA,IAAE,KAAK,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS;CACjD,WAAWA,IAAE,OAAO,CAAC,CAAC,SAAS;AACjC,CAAC;AAED,MAAa,0BAA0BA,IAAE,OAAO;CAC9C,KAAKA,IAAE,OAAOA,IAAE,OAAO,GAAGA,IAAE,OAAO,CAAC;CACpC,UAAUA,IAAE,MAAM,wBAAwB;CAC1C,aAAaA,IAAE,OAAO;CACtB,SAASA,IAAE,OAAO;CAClB,SAASA,IAAE,OAAO;CAClB,SAASA,IAAE,OAAO;AACpB,CAAC;AAED,MAAa,uBAAuBA,IAAE,OAAO,EAC3C,WAAWA,IAAE,OAAO,CAAC,CAAC,QAAQ,IAAM,EACtC,CAAC;AAED,MAAa,4BAA4BA,IAAE,OAAO;CAChD,MAAMA,IAAE,OAAO;CACf,KAAKA,IAAE,OAAO;CACd,WAAWA,IAAE,QAAQ;CACrB,eAAeA,IAAE,OAAO,CAAC,CAAC,SAAS;CACnC,IAAIA,IAAE,QAAQ;CACd,QAAQA,IAAE,OAAO,CAAC,CAAC,SAAS;AAC9B,CAAC;AAED,MAAa,sBAAsBA,IAAE,OAAO;CAC1C,QAAQA,IAAE,KAAK,CAAC,MAAM,MAAM,CAAC;CAC7B,aAAaA,IAAE,OAAO,CAAC,CAAC,SAAS;CACjC,eAAeA,IAAE,QAAQ;CACzB,YAAYA,IAAE,OAAO,CAAC,CAAC,SAAS;CAChC,SAASA,IAAE,MAAM,yBAAyB;AAC5C,CAAC;AAED,MAAa,uBAAuB;CAClC,KAAK;CACL,OAAO;CACP,OAAO;CACP,QAAQ;CACR,aAAa;CACb,WAAW;CACX,cAAc;CACd,eAAe;CACf,SAAS;CACT,UAAU;CACV,QAAQ;CACR,OAAO;CACP,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,MAAM;CACN,MAAM;CACN,SAAS;CACT,WAAW;CACX,SAAS;CACT,aAAa;CACb,UAAU;CACV,UAAU;CACV,UAAU;CACV,MAAM;CACN,MAAM;AACR;AAEA,MAAa,cAAc,GAAG,OAAO;CACnC,KAAK,GAAG,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAO,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,OAAO,eAAe;CAC9F,OAAO,GACJ,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAS,CAAC,CAAC,CACzC,MAAM,kBAAkB,CAAC,CACzB,OAAO,iBAAiB;CAC3B,OAAO,GACJ,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAS,CAAC,CAAC,CACzC,MAAM,kBAAkB,CAAC,CACzB,OAAO,iBAAiB;CAC3B,QAAQ,GACL,MAAM;EAAE,QAAQ;EAAO,MAAM;CAAU,CAAC,CAAC,CACzC,MAAM,mBAAmB,CAAC,CAC1B,OAAO,kBAAkB;CAC5B,aAAa,GACV,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAgB,CAAC,CAAC,CAChD,MAAM,wBAAwB,CAAC,CAC/B,OAAO,uBAAuB;CACjC,WAAW,GACR,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAc,CAAC,CAAC,CAC9C,MAAM,sBAAsB,CAAC,CAC7B,OAAO,qBAAqB;CAC/B,cAAc,GACX,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAiB,CAAC,CAAC,CACjD,MAAM,yBAAyB,CAAC,CAChC,OAAO,wBAAwB;CAClC,YAAY,GAAG,MAAM;EAAE,QAAQ;EAAO,MAAM;CAAe,CAAC,CAAC,CAAC,OAAO,sBAAsB;CAC3F,eAAe,GACZ,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAkB,CAAC,CAAC,CAClD,MAAM,0BAA0B,CAAC,CACjC,OAAO,yBAAyB;CACnC,SAAS,GACN,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAW,CAAC,CAAC,CAC3C,MAAM,oBAAoB,CAAC,CAC3B,OAAO,mBAAmB;CAC7B,UAAU,GACP,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAY,CAAC,CAAC,CAC5C,MAAM,qBAAqB,CAAC,CAC5B,OAAO,oBAAoB;CAC9B,QAAQ,GACL,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAU,CAAC,CAAC,CAC1C,MAAM,mBAAmB,CAAC,CAC1B,OAAO,kBAAkB;CAC5B,OAAO,GACJ,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAS,CAAC,CAAC,CACzC,MAAM,kBAAkB,CAAC,CACzB,OAAO,iBAAiB;CAC3B,YAAY,GACT,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAe,CAAC,CAAC,CAC/C,MAAM,uBAAuB,CAAC,CAC9B,OAAO,sBAAsB;CAChC,OAAO,GACJ,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAS,CAAC,CAAC,CACzC,MAAM,kBAAkB,CAAC,CACzB,OAAO,iBAAiB;CAC3B,QAAQ,GACL,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAU,CAAC,CAAC,CAC1C,MAAM,mBAAmB,CAAC,CAC1B,OAAO,kBAAkB;CAC5B,MAAM,GACH,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAQ,CAAC,CAAC,CACxC,MAAM,iBAAiB,CAAC,CACxB,OAAO,gBAAgB;CAC1B,MAAM,GACH,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAQ,CAAC,CAAC,CACxC,MAAM,iBAAiB,CAAC,CACxB,OAAO,gBAAgB;CAC1B,SAAS,GACN,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAW,CAAC,CAAC,CAC3C,MAAM,oBAAoB,CAAC,CAC3B,OAAO,mBAAmB;CAC7B,QAAQ,GAAG,MAAM;EAAE,QAAQ;EAAO,MAAM;CAAU,CAAC,CAAC,CAAC,OAAO,kBAAkB;CAC9E,UAAU,GACP,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAa,CAAC,CAAC,CAC7C,MAAM,qBAAqB,CAAC,CAC5B,OAAO,oBAAoB;CAC9B,UAAU,GACP,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAa,CAAC,CAAC,CAC7C,MAAM,qBAAqB,CAAC,CAC5B,OAAO,oBAAoB;CAC9B,UAAU,GACP,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAa,CAAC,CAAC,CAC7C,MAAM,qBAAqB,CAAC,CAC5B,OAAO,oBAAoB;CAC9B,UAAU,GACP,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAa,CAAC,CAAC,CAC7C,MAAM,qBAAqB,CAAC,CAC5B,OAAO,oBAAoB;CAC9B,IAAI,GAAG,MAAM;EAAE,QAAQ;EAAO,MAAM;CAAM,CAAC,CAAC,CAAC,OAAO,cAAc;CAClE,MAAM,GACH,MAAM;EAAE,QAAQ;EAAO,MAAM;CAAQ,CAAC,CAAC,CACvC,MAAM,iBAAiB,CAAC,CACxB,OAAO,gBAAgB;CAC1B,MAAM,GACH,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAQ,CAAC,CAAC,CACxC,MAAM,iBAAiB,CAAC,CACxB,OAAO,gBAAgB;CAC1B,WAAW,GACR,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAa,CAAC,CAAC,CAC7C,MAAM,sBAAsB,CAAC,CAC7B,OAAO,qBAAqB;CAC/B,SAAS,GACN,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAY,CAAC,CAAC,CAC5C,MAAM,oBAAoB,CAAC,CAC3B,OAAO,mBAAmB;CAC7B,aAAa,GACV,MAAM;EAAE,QAAQ;EAAQ,MAAM;CAAgB,CAAC,CAAC,CAChD,MAAM,wBAAwB,CAAC,CAC/B,OAAO,uBAAuB;AACnC,CAAC"}
1
+ {"version":3,"file":"contract.mjs","names":["z"],"sources":["../src/contract.ts"],"sourcesContent":["import \"@orpc/openapi/extensions/route\";\nimport * as z from \"zod\";\nimport type { DevSessionData, StartSummary } from \"./dev-session-data\";\nimport { isValidImageDigest } from \"./image-deploy\";\nimport { oc } from \"./sdk\";\nimport {\n BosConfigInputSchema,\n BosConfigSchema,\n SourceModeSchema,\n StarterLevelSchema,\n} from \"./types\";\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n remotePlugins: z.array(z.string()).optional(),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n apiPort: z.number().optional(),\n uiPort: z.number().optional(),\n authPort: z.number().optional(),\n pluginPortStart: z.number().optional(),\n interactive: z.boolean().optional(),\n logLevel: z.enum([\"error\", \"warn\", \"info\", \"debug\"]).optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n timings: z.array(PhaseTimingSchema).optional(),\n session: z.custom<DevSessionData>().optional(),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n configPath: z.string().optional(),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n session: z.custom<DevSessionData>().optional(),\n summary: z.custom<StartSummary>().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n force: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n error: z.string().optional(),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const RegistryUseOptionsSchema = z.object({\n from: z.string().describe(\"Published runtime to compose from (account/gateway or bos:// URL)\"),\n sections: z\n .array(z.string())\n .min(1)\n .describe(\"Sections to compose: app.ui, app.host, app.api, app.auth, plugins.<key>\"),\n dryRun: z.boolean().default(false),\n});\n\nexport const RegistryUseResultSchema = z.object({\n status: z.enum([\"updated\", \"dry-run\", \"error\"]),\n from: z.string(),\n applied: z.array(z.string()),\n configPath: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n production: z.string().optional(),\n version: z.string().optional(),\n fingerprint: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const WorkspaceDeployResultSchema = z.object({\n key: z.string(),\n kind: z.enum([\"app\", \"plugin\"]),\n success: z.boolean(),\n error: z.string().optional(),\n durationMs: z.number().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackOptionsSchema = z.object({\n listOnly: z.boolean().default(false),\n version: z.string().optional(),\n previous: z.boolean().default(false),\n force: z.boolean().default(false),\n limit: z.number().int().min(1).max(200).default(20),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackHistoryEntrySchema = z.object({\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n summary: z.string(),\n});\n\nexport const RollbackSlotCheckSchema = z.object({\n slot: z.string(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const RollbackResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n history: z.array(RollbackHistoryEntrySchema).optional(),\n verification: z.array(RollbackSlotCheckSchema).optional(),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const DeployOptionsSchema = z.object({\n statusList: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n build: z.boolean().default(true),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n service: z.string().optional(),\n registry: z.string().optional(),\n imageDigest: z\n .string()\n .optional()\n .refine((digest) => digest === undefined || isValidImageDigest(digest), {\n message: \"image digest must be sha256:<64 hex characters>\",\n })\n .describe(\n \"Digest (sha256:…) of a pre-pushed runtime image — skips the image build/push leg and pins Railway to this digest\",\n ),\n fullUpload: z\n .boolean()\n .default(false)\n .describe(\n \"Re-upload every dist file instead of diffing unchanged files against the previous deploy\",\n ),\n smoke: z\n .boolean()\n .default(false)\n .describe(\n \"After publish, boot the runtime image against the just-published config and gate the Railway promotion on it — a red smoke rolls the config back to the previous snapshot\",\n ),\n});\n\nexport const DeployManifestListEntrySchema = z.object({\n key: z.string(),\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n publishedAt: z.string().optional(),\n});\n\nexport const DeployResultSchema = z.object({\n status: z.enum([\"deployed\", \"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n history: z.array(DeployManifestListEntrySchema).optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n image: z.string().optional(),\n service: z.string().optional(),\n error: z.string().optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const SmokeOptionsSchema = z.object({\n image: z\n .string()\n .optional()\n .describe(\"Runtime image ref to boot — required unless defaulted by the deploy train\"),\n port: z.number().int().default(3000),\n keep: z.boolean().default(false),\n account: z\n .string()\n .optional()\n .describe(\"Registry identity — defaults to the resolved session config\"),\n gateway: z.string().optional(),\n apiDatabaseUrl: z.string().optional(),\n authDatabaseUrl: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const SmokeResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n image: z.string().optional(),\n summary: z.string().optional(),\n diagnosis: z.string().optional(),\n error: z.string().optional(),\n});\n\nfunction parseNearAmount(value: string): number {\n const cleaned = value.replace(/[\\s_,]/g, \"\");\n const match = cleaned.match(/^(\\d+(?:\\.\\d+)?)near$/i);\n if (!match) return NaN;\n return Number.parseFloat(match[1]!);\n}\n\nconst MIN_PUBLISH_ALLOWANCE_NEAR = 0.3;\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z\n .string()\n .default(\"1NEAR\")\n .refine(\n (val) => {\n const amount = parseNearAmount(val);\n return !Number.isNaN(amount) && amount >= MIN_PUBLISH_ALLOWANCE_NEAR;\n },\n {\n message: `Allowance must be at least ${MIN_PUBLISH_ALLOWANCE_NEAR} NEAR to cover the transaction cost`,\n },\n ),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n removeOldKeys: z.boolean().optional(),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n env: z.enum([\"production\", \"staging\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nconst DEFAULT_LOGIN_EXPIRES_IN_SECONDS = 90 * 24 * 60 * 60;\n\nexport const LoginOptionsSchema = z.object({\n key: z.boolean().default(false),\n custody: z.boolean().default(false),\n site: z.string().optional(),\n expiresIn: z.number().int().positive().default(DEFAULT_LOGIN_EXPIRES_IN_SECONDS),\n device: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const LoginResultSchema = z.object({\n status: z.enum([\"logged-in\", \"error\"]),\n siteUrl: z.string(),\n accountId: z.string().nullish(),\n expiresAt: z.string().nullish(),\n loginUrl: z.string().nullish(),\n publishKey: z\n .object({\n publicKey: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n exportedTo: z.string(),\n })\n .nullish(),\n custodyWallet: z\n .object({\n walletId: z.string(),\n nearAccountId: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n handoffUrl: z.string().nullish(),\n })\n .nullish(),\n outlayerCli: z\n .object({\n status: z.enum([\"linked\", \"cli-missing\", \"error\"]),\n network: z.enum([\"mainnet\", \"testnet\"]),\n detail: z.string().nullish(),\n })\n .nullish(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const LogoutOptionsSchema = z.object({\n configDir: z.string().optional(),\n});\n\nexport const LogoutResultSchema = z.object({\n status: z.enum([\"logged-out\", \"error\"]),\n revokedApiKey: z.boolean(),\n removedPublishKey: z.boolean(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n level: StarterLevelSchema.optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n json: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n conflicted: z.array(z.string()).default([]),\n /** retired stub files deleted silently (unmodified) — ADR 0023 migration */\n retired: z.array(z.string()).optional(),\n /** retired stub files that were hand-modified — backed up, then deleted */\n retiredConflicted: z.array(z.string()).optional(),\n /** where the retired hand-modified copies were backed up */\n retiredBackupDir: z.string().optional(),\n backupDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const ImportOptionsSchema = z.object({\n workspace: z.string(),\n /** omitted → resolve the upstream from the authored config's extends chain */\n from: z.string().optional(),\n yes: z.boolean().default(false),\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n json: z.boolean().default(false),\n});\n\nexport const ImportRouteDeltaSchema = z.object({\n oursOnly: z.array(z.string()),\n theirsOnly: z.array(z.string()),\n});\n\nexport const ImportMigrationCollisionSchema = z.object({\n kind: z.literal(\"tag-mismatch\"),\n idx: z.number(),\n localTag: z.string().optional(),\n upstreamTag: z.string().optional(),\n message: z.string(),\n});\n\nexport const ImportMigrationAppendSchema = z.object({\n idx: z.number(),\n fromTag: z.string(),\n toTag: z.string(),\n});\n\nexport const ImportMigrationReconciliationSchema = z.object({\n /** local journal tags kept verbatim (already applied, never renumbered) */\n kept: z.array(z.string()),\n /** upstream migrations renumbered and appended after the local tail */\n appended: z.array(ImportMigrationAppendSchema),\n /** upstream migrations matched to local entries by SQL content hash */\n contentMatched: z.array(z.string()),\n});\n\nexport const ImportResultSchema = z.object({\n status: z.enum([\"imported\", \"dry-run\", \"conflicts\", \"error\"]),\n workspace: z.string(),\n from: z.string(),\n ref: z.string(),\n resolvedSha: z.string().optional(),\n /** the dereferenced upstream repository when the source was chain-resolved */\n sourceRepository: z.string().optional(),\n /** resolution notes (e.g. HEAD fallback when no git sha is pinned) */\n warnings: z.array(z.string()).default([]),\n added: z.array(z.string()),\n updated: z.array(z.string()),\n unchanged: z.array(z.string()).default([]),\n preservedLocal: z.array(z.string()).default([]),\n merged: z.array(z.string()).default([]),\n conflicts: z.array(z.string()).default([]),\n heldBackMigrations: z.array(z.string()).default([]),\n routeDelta: ImportRouteDeltaSchema.optional(),\n migrationCollisions: z.array(ImportMigrationCollisionSchema).default([]),\n migrationReconciliation: ImportMigrationReconciliationSchema.optional(),\n backupDir: z.string().optional(),\n reportPath: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n json: z.boolean().default(false),\n migrationsOnly: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DeployedVersionStatusSchema = z.object({\n publishedFingerprint: z.string(),\n servedFingerprint: z.string().optional(),\n inSync: z.boolean(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n deployedVersion: DeployedVersionStatusSchema.optional(),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n isLinked: z.boolean().optional(),\n specifier: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n remotePlugins: z.array(z.string()).optional(),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const DbStudioOptionsSchema = z.object({\n plugin: z.string().default(\"api\"),\n});\n\nexport const DbStudioResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n source: z.enum([\"local\", \"remote\"]),\n section: z.string(),\n databaseSecret: z.string().optional(),\n databaseUrl: z.string().optional(),\n workspaceDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbDoctorOptionsSchema = z.object({\n plugin: z.string(),\n});\n\nexport const DbDoctorResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n slug: z.string(),\n journalTable: z.string(),\n journalSchema: z.string(),\n diagnosis: z.string(),\n localMigrationCount: z.number(),\n appliedHashCount: z.number(),\n expectedTables: z.array(z.string()),\n missingTables: z.array(z.string()),\n workspaceDir: z.string().optional(),\n dbSecret: z.string().optional(),\n dbUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbRepairOptionsSchema = z.object({\n plugin: z.string(),\n mode: z.enum([\"history-reset\", \"recreate\"]).default(\"history-reset\"),\n yes: z.boolean().optional(),\n});\n\nexport const DbRepairResultSchema = z.object({\n status: z.enum([\"repaired\", \"refused\", \"error\"]),\n message: z.string(),\n diagnosis: z.any(),\n error: z.string().optional(),\n});\n\nexport const ProcessRoleSchema = z.enum([\"standalone\", \"workspace-parent\", \"workspace-child\"]);\n\nexport const PidEntrySchema = z.object({\n pid: z.number(),\n configDir: z.string(),\n parentPid: z.number().optional(),\n role: ProcessRoleSchema,\n ports: z\n .object({\n host: z.number().optional(),\n api: z.number().optional(),\n ui: z.number().optional(),\n auth: z.number().optional(),\n })\n .default({}),\n budget: z\n .object({\n min: z.number(),\n max: z.number(),\n })\n .optional(),\n startedAt: z.number(),\n description: z.string(),\n});\n\nexport const PsResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n entries: z.array(PidEntrySchema),\n error: z.string().optional(),\n});\n\nexport const LogsOptionsSchema = z.object({\n service: z.string().optional(),\n tail: z.number().int().positive().max(100_000).optional(),\n follow: z.boolean().optional(),\n});\n\nexport const LogsResultSchema = z.object({\n logFile: z.string(),\n lines: z.array(z.string()),\n});\n\nexport const KillOptionsSchema = z.object({\n configDir: z.string().optional(),\n signal: z.enum([\"SIGTERM\", \"SIGKILL\"]).default(\"SIGTERM\"),\n all: z.boolean().default(false),\n});\n\nexport const KillResultSchema = z.object({\n status: z.enum([\"killed\", \"error\"]),\n killed: z.array(z.object({ pid: z.number(), configDir: z.string() })),\n skipped: z.array(z.object({ pid: z.number(), reason: z.string() })),\n error: z.string().optional(),\n});\n\nexport const TypecheckOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n});\n\nexport const TypecheckWorkspaceResultSchema = z.object({\n workspace: z.string(),\n passed: z.boolean(),\n output: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const TypecheckResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n checked: z.array(z.string()),\n skipped: z.array(z.string()),\n results: z.array(TypecheckWorkspaceResultSchema),\n error: z.string().optional(),\n});\n\nexport const InfraExportServiceSchema = z.object({\n key: z.string(),\n image: z.string(),\n env: z.record(z.string(), z.string()).default({}),\n ports: z.array(z.string()),\n healthcheck: z\n .object({\n test: z.array(z.string()),\n interval: z.string(),\n timeout: z.string(),\n retries: z.number(),\n })\n .optional(),\n volumes: z.array(z.string()).default([]),\n});\n\nexport const InfraExportOptionsSchema = z.object({\n target: z.enum([\"ci\", \"local\"]).default(\"ci\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n configDir: z.string().optional(),\n});\n\nexport const InfraExportResultSchema = z.object({\n env: z.record(z.string(), z.string()),\n services: z.array(InfraExportServiceSchema),\n generatedAt: z.string(),\n project: z.string(),\n account: z.string(),\n gateway: z.string(),\n});\n\nexport const MfCheckOptionsSchema = z.object({\n timeoutMs: z.number().default(15_000),\n});\n\nexport const MfCheckRemoteResultSchema = z.object({\n role: z.string(),\n url: z.string(),\n reachable: z.boolean(),\n pluginVersion: z.string().nullable(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const MfCheckResultSchema = z.object({\n status: z.enum([\"ok\", \"fail\"]),\n hostVersion: z.string().nullable(),\n hostReachable: z.boolean(),\n hostReason: z.string().optional(),\n remotes: z.array(MfCheckRemoteResultSchema),\n});\n\nexport const commandOptionSchemas = {\n dev: DevOptionsSchema,\n start: StartOptionsSchema,\n build: BuildOptionsSchema,\n config: ConfigOptionsSchema,\n registryUse: RegistryUseOptionsSchema,\n pluginAdd: PluginAddOptionsSchema,\n pluginRemove: PluginRemoveOptionsSchema,\n pluginPublish: PluginPublishOptionsSchema,\n publish: PublishOptionsSchema,\n rollback: RollbackOptionsSchema,\n deploy: DeployOptionsSchema,\n smoke: SmokeOptionsSchema,\n keyPublish: KeyPublishOptionsSchema,\n login: LoginOptionsSchema,\n logout: LogoutOptionsSchema,\n init: InitOptionsSchema,\n sync: SyncOptionsSchema,\n import: ImportOptionsSchema,\n upgrade: UpgradeOptionsSchema,\n typecheck: TypecheckOptionsSchema,\n mfCheck: MfCheckOptionsSchema,\n infraExport: InfraExportOptionsSchema,\n dbStudio: DbStudioOptionsSchema,\n dbDoctor: DbDoctorOptionsSchema,\n dbRepair: DbRepairOptionsSchema,\n logs: LogsOptionsSchema,\n kill: KillOptionsSchema,\n} satisfies Partial<Record<keyof typeof bosContract, z.ZodType>>;\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n registryUse: oc\n .route({ method: \"POST\", path: \"/registry/use\" })\n .input(RegistryUseOptionsSchema)\n .output(RegistryUseResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n rollback: oc\n .route({ method: \"POST\", path: \"/rollback\" })\n .input(RollbackOptionsSchema)\n .output(RollbackResultSchema),\n deploy: oc\n .route({ method: \"POST\", path: \"/deploy\" })\n .input(DeployOptionsSchema)\n .output(DeployResultSchema),\n smoke: oc\n .route({ method: \"POST\", path: \"/smoke\" })\n .input(SmokeOptionsSchema)\n .output(SmokeResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n login: oc\n .route({ method: \"POST\", path: \"/login\" })\n .input(LoginOptionsSchema)\n .output(LoginResultSchema),\n logout: oc\n .route({ method: \"POST\", path: \"/logout\" })\n .input(LogoutOptionsSchema)\n .output(LogoutResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n import: oc\n .route({ method: \"POST\", path: \"/import\" })\n .input(ImportOptionsSchema)\n .output(ImportResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n dbStudio: oc\n .route({ method: \"POST\", path: \"/db/studio\" })\n .input(DbStudioOptionsSchema)\n .output(DbStudioResultSchema),\n dbDoctor: oc\n .route({ method: \"POST\", path: \"/db/doctor\" })\n .input(DbDoctorOptionsSchema)\n .output(DbDoctorResultSchema),\n dbRepair: oc\n .route({ method: \"POST\", path: \"/db/repair\" })\n .input(DbRepairOptionsSchema)\n .output(DbRepairResultSchema),\n ps: oc.route({ method: \"GET\", path: \"/ps\" }).output(PsResultSchema),\n logs: oc\n .route({ method: \"GET\", path: \"/logs\" })\n .input(LogsOptionsSchema)\n .output(LogsResultSchema),\n kill: oc\n .route({ method: \"POST\", path: \"/kill\" })\n .input(KillOptionsSchema)\n .output(KillResultSchema),\n typecheck: oc\n .route({ method: \"POST\", path: \"/typecheck\" })\n .input(TypecheckOptionsSchema)\n .output(TypecheckResultSchema),\n mfCheck: oc\n .route({ method: \"POST\", path: \"/mf/check\" })\n .input(MfCheckOptionsSchema)\n .output(MfCheckResultSchema),\n infraExport: oc\n .route({ method: \"POST\", path: \"/infra/export\" })\n .input(InfraExportOptionsSchema)\n .output(InfraExportResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type WorkspaceDeployResult = z.infer<typeof WorkspaceDeployResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type PublishResult = z.infer<typeof PublishResultSchema>;\nexport type DeployOptions = z.infer<typeof DeployOptionsSchema>;\nexport type DeployResult = z.infer<typeof DeployResultSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type LoginOptions = z.infer<typeof LoginOptionsSchema>;\nexport type LoginResult = z.infer<typeof LoginResultSchema>;\nexport type LogoutOptions = z.infer<typeof LogoutOptionsSchema>;\nexport type LogoutResult = z.infer<typeof LogoutResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type ImportOptions = z.infer<typeof ImportOptionsSchema>;\nexport type ImportResult = z.infer<typeof ImportResultSchema>;\nexport type ImportRouteDelta = z.infer<typeof ImportRouteDeltaSchema>;\nexport type ImportMigrationCollision = z.infer<typeof ImportMigrationCollisionSchema>;\nexport type ImportMigrationAppend = z.infer<typeof ImportMigrationAppendSchema>;\nexport type ImportMigrationReconciliation = z.infer<typeof ImportMigrationReconciliationSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type DbStudioOptions = z.infer<typeof DbStudioOptionsSchema>;\nexport type DbStudioResult = z.infer<typeof DbStudioResultSchema>;\nexport type DbDoctorOptions = z.infer<typeof DbDoctorOptionsSchema>;\nexport type DbDoctorResult = z.infer<typeof DbDoctorResultSchema>;\nexport type DbRepairOptions = z.infer<typeof DbRepairOptionsSchema>;\nexport type DbRepairResult = z.infer<typeof DbRepairResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\nexport type ProcessRole = z.infer<typeof ProcessRoleSchema>;\nexport type PidEntry = z.infer<typeof PidEntrySchema>;\nexport type PsResult = z.infer<typeof PsResultSchema>;\nexport type LogsOptions = z.infer<typeof LogsOptionsSchema>;\nexport type LogsResult = z.infer<typeof LogsResultSchema>;\nexport type KillOptions = z.infer<typeof KillOptionsSchema>;\nexport type KillResult = z.infer<typeof KillResultSchema>;\nexport type TypecheckOptions = z.infer<typeof TypecheckOptionsSchema>;\nexport type TypecheckResult = z.infer<typeof TypecheckResultSchema>;\nexport type TypecheckWorkspaceResult = z.infer<typeof TypecheckWorkspaceResultSchema>;\nexport type InfraExportOptions = z.infer<typeof InfraExportOptionsSchema>;\nexport type MfCheckOptions = z.infer<typeof MfCheckOptionsSchema>;\nexport type MfCheckResult = z.infer<typeof MfCheckResultSchema>;\nexport type InfraExportResult = z.infer<typeof InfraExportResultSchema>;\nexport type InfraExportService = z.infer<typeof InfraExportServiceSchema>;\n"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ let _outlayer_sdk = require("@outlayer/sdk");
2
+
3
+ //#region src/custody-signer.ts
4
+ const PUBLISH_GAS = "30000000000000";
5
+ const MIN_GAS_BALANCE = "50000000000000000000000";
6
+ const OUTLAYER_HOSTS = {
7
+ mainnet: "https://api.outlayer.ai",
8
+ testnet: "https://testnet-api.outlayer.ai"
9
+ };
10
+ function custodyClient(custodyWallet) {
11
+ const network = custodyWallet.network;
12
+ return new _outlayer_sdk.OutlayerClient({
13
+ apiKey: custodyWallet.apiKey,
14
+ network,
15
+ baseUrl: OUTLAYER_HOSTS[network]
16
+ });
17
+ }
18
+ function custodyFundUrl(custodyWallet) {
19
+ return `https://app.outlayer.ai/wallet/fund?to=${custodyWallet.nearAccountId}&amount=0.05&token=near`;
20
+ }
21
+ async function ensureCustodyBalance(custodyWallet) {
22
+ const client = custodyClient(custodyWallet);
23
+ try {
24
+ const { balance } = await client.getBalance({ chain: "near" });
25
+ if (BigInt(balance) < BigInt(MIN_GAS_BALANCE)) throw new Error(`The custody wallet ${custodyWallet.nearAccountId} holds ${balance} yoctoNEAR on ${custodyWallet.network}, below the gas minimum. Fund it at ${custodyFundUrl(custodyWallet)}`);
26
+ } catch (error) {
27
+ throw custodyPublishError(error, custodyWallet);
28
+ }
29
+ }
30
+ async function submitRegistryWriteCustody(opts) {
31
+ const client = custodyClient(opts.custodyWallet);
32
+ try {
33
+ const result = await client.call({
34
+ receiver_id: opts.contract,
35
+ method_name: "__fastdata_kv",
36
+ args: opts.args,
37
+ gas: PUBLISH_GAS,
38
+ deposit: "0",
39
+ ...opts.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}
40
+ });
41
+ if (result.status === "failed" || result.status === "rejected") throw new Error(`The custody publish did not settle (status ${result.status}). Inspect request ${result.request_id} at the OutLayer dashboard.`);
42
+ if (result.status === "pending_approval") throw new Error(`The custody publish needs multisig approval (${result.approved ?? 0}/${result.required ?? "?"} so far). Approve it at the OutLayer dashboard, then re-run the deploy.`);
43
+ return {
44
+ success: true,
45
+ txHash: result.tx_hash ?? void 0
46
+ };
47
+ } catch (error) {
48
+ if ((error instanceof _outlayer_sdk.OutlayerError ? error.code : "") === "onchain_tx_failed") return { success: true };
49
+ throw custodyPublishError(error, opts.custodyWallet);
50
+ }
51
+ }
52
+ function custodyPublishError(error, custodyWallet) {
53
+ if (!(error instanceof _outlayer_sdk.OutlayerError)) return error;
54
+ const code = error.code;
55
+ const context = custodyWallet.handoffUrl ? ` Manage the wallet at ${custodyWallet.handoffUrl}.` : "";
56
+ if (error instanceof _outlayer_sdk.PolicyDeniedError) return /* @__PURE__ */ new Error(`The custody wallet policy refused the publish.${context}`);
57
+ if (error instanceof _outlayer_sdk.WalletFrozenError) return /* @__PURE__ */ new Error(`The custody wallet is frozen.${context}`);
58
+ if (code === "insufficient_balance" || code === "wallet_underfunded") {
59
+ const detail = error.message ? ` (${error.message})` : "";
60
+ return /* @__PURE__ */ new Error(`The custody wallet ran out of gas for the publish${detail}. Fund it at ${custodyFundUrl(custodyWallet)}`);
61
+ }
62
+ if (code === "invalid_api_key" || code === "missing_auth") return /* @__PURE__ */ new Error(`The stored custody wallet key was rejected. Re-run \`bos login --custody\` to re-register.`);
63
+ return /* @__PURE__ */ new Error(`Custody publish failed (${code}): ${error.message}`);
64
+ }
65
+
66
+ //#endregion
67
+ exports.custodyFundUrl = custodyFundUrl;
68
+ exports.ensureCustodyBalance = ensureCustodyBalance;
69
+ exports.submitRegistryWriteCustody = submitRegistryWriteCustody;
70
+ //# sourceMappingURL=custody-signer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custody-signer.cjs","names":["OutlayerClient","OutlayerError","PolicyDeniedError","WalletFrozenError"],"sources":["../src/custody-signer.ts"],"sourcesContent":["import { OutlayerClient, OutlayerError, PolicyDeniedError, WalletFrozenError } from \"@outlayer/sdk\";\nimport type { CustodyWalletRecord } from \"./auth-session\";\nimport type { RelayResult } from \"./delegate-signer\";\nimport type { NetworkId } from \"./fastkv\";\n\nconst PUBLISH_GAS = \"30000000000000\";\nconst MIN_GAS_BALANCE = \"50000000000000000000000\";\n\nconst OUTLAYER_HOSTS: Record<NetworkId, string> = {\n mainnet: \"https://api.outlayer.ai\",\n testnet: \"https://testnet-api.outlayer.ai\",\n};\n\nexport interface CustodySubmitOptions {\n contract: string;\n args: Record<string, string>;\n custodyWallet: CustodyWalletRecord;\n idempotencyKey?: string;\n}\n\nfunction custodyClient(custodyWallet: CustodyWalletRecord): OutlayerClient {\n const network = custodyWallet.network;\n return new OutlayerClient({\n apiKey: custodyWallet.apiKey,\n network,\n baseUrl: OUTLAYER_HOSTS[network],\n });\n}\n\nexport function custodyFundUrl(custodyWallet: CustodyWalletRecord): string {\n return `https://app.outlayer.ai/wallet/fund?to=${custodyWallet.nearAccountId}&amount=0.05&token=near`;\n}\n\nexport async function ensureCustodyBalance(custodyWallet: CustodyWalletRecord): Promise<void> {\n const client = custodyClient(custodyWallet);\n try {\n const { balance } = await client.getBalance({ chain: \"near\" });\n if (BigInt(balance) < BigInt(MIN_GAS_BALANCE)) {\n throw new Error(\n `The custody wallet ${custodyWallet.nearAccountId} holds ${balance} yoctoNEAR on ` +\n `${custodyWallet.network}, below the gas minimum. Fund it at ${custodyFundUrl(custodyWallet)}`,\n );\n }\n } catch (error) {\n throw custodyPublishError(error, custodyWallet);\n }\n}\n\nexport async function submitRegistryWriteCustody(opts: CustodySubmitOptions): Promise<RelayResult> {\n const client = custodyClient(opts.custodyWallet);\n try {\n const result = await client.call({\n receiver_id: opts.contract,\n method_name: \"__fastdata_kv\",\n args: opts.args,\n gas: PUBLISH_GAS,\n deposit: \"0\",\n ...(opts.idempotencyKey ? { idempotencyKey: opts.idempotencyKey } : {}),\n });\n if (result.status === \"failed\" || result.status === \"rejected\") {\n throw new Error(\n `The custody publish did not settle (status ${result.status}). Inspect request ${result.request_id} at the OutLayer dashboard.`,\n );\n }\n if (result.status === \"pending_approval\") {\n throw new Error(\n `The custody publish needs multisig approval (${result.approved ?? 0}/${result.required ?? \"?\"} so far). ` +\n \"Approve it at the OutLayer dashboard, then re-run the deploy.\",\n );\n }\n return { success: true, txHash: result.tx_hash ?? undefined };\n } catch (error) {\n const code: string = error instanceof OutlayerError ? error.code : \"\";\n if (code === \"onchain_tx_failed\") {\n return { success: true };\n }\n throw custodyPublishError(error, opts.custodyWallet);\n }\n}\n\nfunction custodyPublishError(error: unknown, custodyWallet: CustodyWalletRecord): unknown {\n if (!(error instanceof OutlayerError)) return error;\n const code: string = error.code;\n const context = custodyWallet.handoffUrl\n ? ` Manage the wallet at ${custodyWallet.handoffUrl}.`\n : \"\";\n if (error instanceof PolicyDeniedError) {\n return new Error(`The custody wallet policy refused the publish.${context}`);\n }\n if (error instanceof WalletFrozenError) {\n return new Error(`The custody wallet is frozen.${context}`);\n }\n if (code === \"insufficient_balance\" || code === \"wallet_underfunded\") {\n const detail = error.message ? ` (${error.message})` : \"\";\n return new Error(\n `The custody wallet ran out of gas for the publish${detail}. Fund it at ${custodyFundUrl(custodyWallet)}`,\n );\n }\n if (code === \"invalid_api_key\" || code === \"missing_auth\") {\n return new Error(\n `The stored custody wallet key was rejected. Re-run \\`bos login --custody\\` to re-register.`,\n );\n }\n return new Error(`Custody publish failed (${code}): ${error.message}`);\n}\n"],"mappings":";;;AAKA,MAAM,cAAc;AACpB,MAAM,kBAAkB;AAExB,MAAM,iBAA4C;CAChD,SAAS;CACT,SAAS;AACX;AASA,SAAS,cAAc,eAAoD;CACzE,MAAM,UAAU,cAAc;CAC9B,OAAO,IAAIA,6BAAe;EACxB,QAAQ,cAAc;EACtB;EACA,SAAS,eAAe;CAC1B,CAAC;AACH;AAEA,SAAgB,eAAe,eAA4C;CACzE,OAAO,0CAA0C,cAAc,cAAc;AAC/E;AAEA,eAAsB,qBAAqB,eAAmD;CAC5F,MAAM,SAAS,cAAc,aAAa;CAC1C,IAAI;EACF,MAAM,EAAE,YAAY,MAAM,OAAO,WAAW,EAAE,OAAO,OAAO,CAAC;EAC7D,IAAI,OAAO,OAAO,IAAI,OAAO,eAAe,GAC1C,MAAM,IAAI,MACR,sBAAsB,cAAc,cAAc,SAAS,QAAQ,gBAC9D,cAAc,QAAQ,sCAAsC,eAAe,aAAa,GAC/F;CAEJ,SAAS,OAAO;EACd,MAAM,oBAAoB,OAAO,aAAa;CAChD;AACF;AAEA,eAAsB,2BAA2B,MAAkD;CACjG,MAAM,SAAS,cAAc,KAAK,aAAa;CAC/C,IAAI;EACF,MAAM,SAAS,MAAM,OAAO,KAAK;GAC/B,aAAa,KAAK;GAClB,aAAa;GACb,MAAM,KAAK;GACX,KAAK;GACL,SAAS;GACT,GAAI,KAAK,iBAAiB,EAAE,gBAAgB,KAAK,eAAe,IAAI,CAAC;EACvE,CAAC;EACD,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,YAClD,MAAM,IAAI,MACR,8CAA8C,OAAO,OAAO,qBAAqB,OAAO,WAAW,4BACrG;EAEF,IAAI,OAAO,WAAW,oBACpB,MAAM,IAAI,MACR,gDAAgD,OAAO,YAAY,EAAE,GAAG,OAAO,YAAY,IAAI,wEAEjG;EAEF,OAAO;GAAE,SAAS;GAAM,QAAQ,OAAO,WAAW;EAAU;CAC9D,SAAS,OAAO;EAEd,KADqB,iBAAiBC,8BAAgB,MAAM,OAAO,QACtD,qBACX,OAAO,EAAE,SAAS,KAAK;EAEzB,MAAM,oBAAoB,OAAO,KAAK,aAAa;CACrD;AACF;AAEA,SAAS,oBAAoB,OAAgB,eAA6C;CACxF,IAAI,EAAE,iBAAiBA,8BAAgB,OAAO;CAC9C,MAAM,OAAe,MAAM;CAC3B,MAAM,UAAU,cAAc,aAC1B,yBAAyB,cAAc,WAAW,KAClD;CACJ,IAAI,iBAAiBC,iCACnB,uBAAO,IAAI,MAAM,iDAAiD,SAAS;CAE7E,IAAI,iBAAiBC,iCACnB,uBAAO,IAAI,MAAM,gCAAgC,SAAS;CAE5D,IAAI,SAAS,0BAA0B,SAAS,sBAAsB;EACpE,MAAM,SAAS,MAAM,UAAU,KAAK,MAAM,QAAQ,KAAK;EACvD,uBAAO,IAAI,MACT,oDAAoD,OAAO,eAAe,eAAe,aAAa,GACxG;CACF;CACA,IAAI,SAAS,qBAAqB,SAAS,gBACzC,uBAAO,IAAI,MACT,4FACF;CAEF,uBAAO,IAAI,MAAM,2BAA2B,KAAK,KAAK,MAAM,SAAS;AACvE"}