@homeflare/alchemy 0.38.0 → 0.39.0

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 (165) hide show
  1. package/README.md +22 -0
  2. package/dist/forgejo/index.js +4 -2
  3. package/dist/forgejo/index.js.map +3 -3
  4. package/dist/forgejo/team-member.d.ts +25 -0
  5. package/dist/forgejo/team-member.d.ts.map +1 -1
  6. package/dist/proxmox/generated/constraints/index.d.ts +1 -1
  7. package/dist/proxmox/generated/constraints/index.d.ts.map +1 -1
  8. package/dist/proxmox/generated/constraints/pve-access.d.ts +1 -1
  9. package/dist/proxmox/generated/constraints/pve-cluster-backup.d.ts +1 -1
  10. package/dist/proxmox/generated/constraints/pve-cluster-ceph.d.ts +1 -1
  11. package/dist/proxmox/generated/constraints/pve-cluster-firewall.d.ts +1 -1
  12. package/dist/proxmox/generated/constraints/pve-cluster-ha.d.ts +1 -1
  13. package/dist/proxmox/generated/constraints/pve-cluster-metrics.d.ts +1 -1
  14. package/dist/proxmox/generated/constraints/pve-cluster-notifications.d.ts +1 -1
  15. package/dist/proxmox/generated/constraints/pve-cluster-replication.d.ts +1 -1
  16. package/dist/proxmox/generated/constraints/pve-cluster-sdn.d.ts +1 -1
  17. package/dist/proxmox/generated/constraints/pve-nodes-ceph.d.ts +1 -1
  18. package/dist/proxmox/generated/constraints/pve-nodes-disks.d.ts +1 -1
  19. package/dist/proxmox/generated/constraints/pve-nodes-lxc.d.ts +1 -1
  20. package/dist/proxmox/generated/constraints/pve-nodes-network.d.ts +1 -1
  21. package/dist/proxmox/generated/constraints/pve-nodes-qemu.d.ts +1 -1
  22. package/dist/proxmox/generated/constraints/pve-nodes-storage.d.ts +23 -0
  23. package/dist/proxmox/generated/constraints/pve-nodes-storage.d.ts.map +1 -0
  24. package/dist/proxmox/generated/constraints/pve-pools.d.ts +1 -1
  25. package/dist/proxmox/generated/constraints/pve-storage.d.ts +1 -1
  26. package/dist/proxmox/index.d.ts +14 -3
  27. package/dist/proxmox/index.d.ts.map +1 -1
  28. package/dist/proxmox/index.js +565 -133
  29. package/dist/proxmox/index.js.map +33 -23
  30. package/dist/proxmox/qemu-form.d.ts +27 -18
  31. package/dist/proxmox/qemu-form.d.ts.map +1 -1
  32. package/dist/proxmox/qemu-judge.d.ts +30 -0
  33. package/dist/proxmox/qemu-judge.d.ts.map +1 -0
  34. package/dist/proxmox/qemu-lifecycle.d.ts +16 -2
  35. package/dist/proxmox/qemu-lifecycle.d.ts.map +1 -1
  36. package/dist/proxmox/qemu-net.d.ts +9 -0
  37. package/dist/proxmox/qemu-net.d.ts.map +1 -0
  38. package/dist/proxmox/qemu-props.d.ts +112 -0
  39. package/dist/proxmox/qemu-props.d.ts.map +1 -0
  40. package/dist/proxmox/qemu-volume.d.ts +17 -0
  41. package/dist/proxmox/qemu-volume.d.ts.map +1 -0
  42. package/dist/proxmox/qemu.d.ts +14 -27
  43. package/dist/proxmox/qemu.d.ts.map +1 -1
  44. package/dist/proxmox/storage-download-errors.d.ts +5 -0
  45. package/dist/proxmox/storage-download-errors.d.ts.map +1 -0
  46. package/dist/proxmox/storage-download-identity.d.ts +27 -0
  47. package/dist/proxmox/storage-download-identity.d.ts.map +1 -0
  48. package/dist/proxmox/storage-download-lifecycle.d.ts +97 -0
  49. package/dist/proxmox/storage-download-lifecycle.d.ts.map +1 -0
  50. package/dist/proxmox/storage-download-props.d.ts +36 -0
  51. package/dist/proxmox/storage-download-props.d.ts.map +1 -0
  52. package/dist/proxmox/storage-download-task.d.ts +17 -0
  53. package/dist/proxmox/storage-download-task.d.ts.map +1 -0
  54. package/dist/proxmox/storage-download.d.ts +44 -0
  55. package/dist/proxmox/storage-download.d.ts.map +1 -0
  56. package/dist/telemetry/fake-collector.d.ts +36 -0
  57. package/dist/telemetry/fake-collector.d.ts.map +1 -0
  58. package/dist/telemetry/index.d.ts +11 -0
  59. package/dist/telemetry/index.d.ts.map +1 -0
  60. package/dist/telemetry/index.js +223 -0
  61. package/dist/telemetry/index.js.map +12 -0
  62. package/dist/telemetry/layer.d.ts +86 -0
  63. package/dist/telemetry/layer.d.ts.map +1 -0
  64. package/dist/telemetry/redact-serialization.d.ts +21 -0
  65. package/dist/telemetry/redact-serialization.d.ts.map +1 -0
  66. package/dist/telemetry/redact.d.ts +46 -0
  67. package/dist/telemetry/redact.d.ts.map +1 -0
  68. package/dist/unifi/drift.d.ts +27 -0
  69. package/dist/unifi/drift.d.ts.map +1 -0
  70. package/dist/unifi/fake-unifi.d.ts +5 -1
  71. package/dist/unifi/fake-unifi.d.ts.map +1 -1
  72. package/dist/unifi/firewall-zone-form.d.ts +6 -0
  73. package/dist/unifi/firewall-zone-form.d.ts.map +1 -1
  74. package/dist/unifi/firewall-zone.d.ts +1 -1
  75. package/dist/unifi/firewall-zone.d.ts.map +1 -1
  76. package/dist/unifi/index.d.ts +4 -3
  77. package/dist/unifi/index.d.ts.map +1 -1
  78. package/dist/unifi/index.js +138 -58
  79. package/dist/unifi/index.js.map +10 -8
  80. package/dist/unifi/network-drift.d.ts +26 -0
  81. package/dist/unifi/network-drift.d.ts.map +1 -0
  82. package/dist/unifi/network-form.d.ts +40 -7
  83. package/dist/unifi/network-form.d.ts.map +1 -1
  84. package/dist/unifi/network.d.ts +1 -0
  85. package/dist/unifi/network.d.ts.map +1 -1
  86. package/dist/unifi/paginate.d.ts +36 -0
  87. package/dist/unifi/paginate.d.ts.map +1 -0
  88. package/dist/unifi/resource.d.ts +36 -1
  89. package/dist/unifi/resource.d.ts.map +1 -1
  90. package/docs/telemetry-spike.md +94 -0
  91. package/docs/telemetry.md +109 -0
  92. package/docs/unifi.md +56 -0
  93. package/package.json +6 -2
  94. package/src/forgejo/team-member.test.ts +14 -0
  95. package/src/forgejo/team-member.ts +28 -1
  96. package/src/proxmox/constraints-required.test.ts +1 -0
  97. package/src/proxmox/generated/constraints/index.ts +3 -1
  98. package/src/proxmox/generated/constraints/pve-access.ts +1 -1
  99. package/src/proxmox/generated/constraints/pve-cluster-backup.ts +1 -1
  100. package/src/proxmox/generated/constraints/pve-cluster-ceph.ts +1 -1
  101. package/src/proxmox/generated/constraints/pve-cluster-firewall.ts +1 -1
  102. package/src/proxmox/generated/constraints/pve-cluster-ha.ts +1 -1
  103. package/src/proxmox/generated/constraints/pve-cluster-metrics.ts +1 -1
  104. package/src/proxmox/generated/constraints/pve-cluster-notifications.ts +1 -1
  105. package/src/proxmox/generated/constraints/pve-cluster-replication.ts +1 -1
  106. package/src/proxmox/generated/constraints/pve-cluster-sdn.ts +1 -1
  107. package/src/proxmox/generated/constraints/pve-nodes-ceph.ts +1 -1
  108. package/src/proxmox/generated/constraints/pve-nodes-disks.ts +1 -1
  109. package/src/proxmox/generated/constraints/pve-nodes-lxc.ts +1 -1
  110. package/src/proxmox/generated/constraints/pve-nodes-network.ts +1 -1
  111. package/src/proxmox/generated/constraints/pve-nodes-qemu.ts +1 -1
  112. package/src/proxmox/generated/constraints/pve-nodes-storage.ts +30 -0
  113. package/src/proxmox/generated/constraints/pve-pools.ts +1 -1
  114. package/src/proxmox/generated/constraints/pve-storage.ts +1 -1
  115. package/src/proxmox/index.test.ts +11 -6
  116. package/src/proxmox/index.ts +19 -3
  117. package/src/proxmox/qemu-form.ts +49 -13
  118. package/src/proxmox/qemu-identity.test.ts +30 -0
  119. package/src/proxmox/qemu-judge.test.ts +65 -0
  120. package/src/proxmox/qemu-judge.ts +84 -0
  121. package/src/proxmox/qemu-lifecycle.test.ts +78 -19
  122. package/src/proxmox/qemu-lifecycle.ts +131 -32
  123. package/src/proxmox/qemu-net.test.ts +48 -0
  124. package/src/proxmox/qemu-net.ts +78 -0
  125. package/src/proxmox/qemu-ownership.test.ts +44 -0
  126. package/src/proxmox/qemu-props.test.ts +87 -0
  127. package/src/proxmox/qemu-props.ts +157 -0
  128. package/src/proxmox/qemu-volume.test.ts +80 -0
  129. package/src/proxmox/qemu-volume.ts +121 -0
  130. package/src/proxmox/qemu.ts +15 -29
  131. package/src/proxmox/storage-download-errors.ts +7 -0
  132. package/src/proxmox/storage-download-identity.test.ts +54 -0
  133. package/src/proxmox/storage-download-identity.ts +50 -0
  134. package/src/proxmox/storage-download-lifecycle.ts +226 -0
  135. package/src/proxmox/storage-download-ownership.test.ts +50 -0
  136. package/src/proxmox/storage-download-props.ts +38 -0
  137. package/src/proxmox/storage-download-task.ts +72 -0
  138. package/src/proxmox/storage-download.test.ts +216 -0
  139. package/src/proxmox/storage-download.ts +58 -0
  140. package/src/telemetry/fake-collector.ts +59 -0
  141. package/src/telemetry/http-client-sealing.test.ts +82 -0
  142. package/src/telemetry/index.ts +10 -0
  143. package/src/telemetry/layer.test.ts +204 -0
  144. package/src/telemetry/layer.ts +152 -0
  145. package/src/telemetry/redact-serialization.ts +178 -0
  146. package/src/telemetry/redact.test.ts +124 -0
  147. package/src/telemetry/redact.ts +147 -0
  148. package/src/unifi/drift.test.ts +78 -0
  149. package/src/unifi/drift.ts +56 -0
  150. package/src/unifi/errors-and-secrets.test.ts +127 -0
  151. package/src/unifi/fake-unifi.ts +5 -1
  152. package/src/unifi/firewall-zone-form.ts +31 -2
  153. package/src/unifi/firewall-zone.test.ts +21 -1
  154. package/src/unifi/firewall-zone.ts +1 -1
  155. package/src/unifi/get-only-guard.test.ts +165 -0
  156. package/src/unifi/index.ts +15 -1
  157. package/src/unifi/network-drift.test.ts +207 -0
  158. package/src/unifi/network-drift.ts +80 -0
  159. package/src/unifi/network-form.ts +11 -39
  160. package/src/unifi/network.test.ts +7 -82
  161. package/src/unifi/network.ts +6 -6
  162. package/src/unifi/paginate.test.ts +228 -0
  163. package/src/unifi/paginate.ts +129 -0
  164. package/src/unifi/resource.ts +73 -3
  165. package/src/unifi/write-op-reference.test.ts +236 -0
package/README.md CHANGED
@@ -351,6 +351,28 @@ checks you name required. ⛔ Auto-merge with nothing required merges **immediat
351
351
  `bunx --bun hf-adopt-verify --config alchemy.run.ts --stage live`: Alchemy's planner, no writes,
352
352
  each row's own diff, exit 0 only when all are no-ops. [docs/adopt-verify.md](./docs/adopt-verify.md)
353
353
 
354
+ ## Telemetry — `@homeflare/alchemy/telemetry`
355
+
356
+ `telemetryLayer` builds an OTLP tracing/logging/metrics `Layer` for a stack's own `providers` —
357
+ off unless you give it real endpoints, no default collector anywhere in it.
358
+
359
+ ```ts
360
+ import { telemetryLayer } from '@homeflare/alchemy/telemetry';
361
+
362
+ export const providers = Layer.mergeAll(
363
+ myProviders(),
364
+ telemetryLayer({
365
+ endpoints: { traces: 'http://<your-collector>/v1/traces' },
366
+ serviceName: 'my-stack',
367
+ }),
368
+ );
369
+ ```
370
+
371
+ Every span — a provider's own, `HttpClient`'s, and alchemy's own plan/apply engine — is redacted
372
+ before export: every header dropped, every query string stripped, a denylisted host or path segment
373
+ blanked. Options, the redaction policy and what a spike measured actually arriving at a collector:
374
+ [docs/telemetry.md](./docs/telemetry.md) · [docs/telemetry-spike.md](./docs/telemetry-spike.md).
375
+
354
376
  ## Credentials
355
377
 
356
378
  ⛔ **Mint a short-lived, scoped token** — never a long-lived one, never a Global API Key. How each
@@ -371,7 +371,9 @@ import * as Provider7 from "alchemy/Provider";
371
371
  import * as organization5 from "@distilled.cloud/forgejo/organization";
372
372
  import * as Data2 from "effect/Data";
373
373
  import * as Effect8 from "effect/Effect";
374
- var ForgejoTeamMember = Resource7("Forgejo.TeamMember");
374
+ var ForgejoTeamMember = Resource7("Forgejo.TeamMember", {
375
+ defaultRemovalPolicy: "retain"
376
+ });
375
377
 
376
378
  class ForgejoTeamNotFoundError extends Data2.TaggedError("ForgejoTeamNotFoundError") {
377
379
  }
@@ -411,5 +413,5 @@ export {
411
413
  ForgejoTeamMemberProvider
412
414
  };
413
415
 
414
- //# debugId=D0F244891AADE98C64756E2164756E21
416
+ //# debugId=6A88B7970CFE610264756E2164756E21
415
417
  //# sourceMappingURL=index.js.map
@@ -12,9 +12,9 @@
12
12
  "/**\n * `Forgejo.RepoWebhook` — one repository webhook under `/repos/{owner}/{repo}/hooks`.\n *\n * ★ READ OFF `<estate>/mcp-servers/docs/api/upstream/forgejo.json`: create is POST collection; read/update/delete\n * use numeric hook id at `/repos/{owner}/{repo}/hooks/{id}`. Now `repository.repoCreateHook` /\n * `repoListHooks` / `repoEditHook` / `repoDeleteHook`. `fetchLive` lists and matches on `url` —\n * see repo-webhook-form.ts for why name was never the real match key.\n *\n * ⚠️ `Hook.url` IS A REQUIRED STRING IN THE PACKAGE'S SCHEMA — the `config.url` fallback the\n * hand-rolled client carried (`stringRecord(live['config'])['url']`) is gone; a response\n * without `url` now fails the operation's decode.\n *\n * ⛔ NO WEBHOOK `secret` IN PROPS OR ATTRIBUTES. Optional HMAC material is env-only at write time\n * (`FORGEJO_HOOK_SECRET_*` — see repo-webhook-form.ts). `hookConfigPublic` strips `secret` on read.\n *\n * ⛔ TOKEN NEEDS `write:repository` TO CREATE OR PATCH — list/get needs `read:repository`.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as repository from '@distilled.cloud/forgejo/repository';\nimport * as Effect from 'effect/Effect';\nimport { hookConfigForm } from './repo-webhook-form.ts';\nimport { type ForgejoRequirements, type ForgejoSpec, forgejoHandlers } from './resource.ts';\nimport { hookConfigPublic, stringArray } from './values.ts';\n\nexport type RepoWebhookType =\n | 'dingtalk'\n | 'discord'\n | 'feishu'\n | 'forgejo'\n | 'gitea'\n | 'gogs'\n | 'msteams'\n | 'packagist'\n | 'slack'\n | 'telegram'\n | 'wechatwork';\n\nexport interface RepoWebhookProps {\n owner: string;\n repo: string;\n /** Stable locate key on this side only — Forgejo hooks have no `name` field (see the form file). */\n name: string;\n type: RepoWebhookType;\n url: string;\n events: string[];\n contentType?: 'json' | 'form';\n active?: boolean;\n branchFilter?: string;\n authorizationHeader?: string;\n}\n\nexport interface RepoWebhookAttributes {\n owner: string;\n repo: string;\n name: string;\n hookId: number;\n type: RepoWebhookType;\n url: string;\n contentType: string;\n events: string[];\n active: boolean;\n branchFilter: string;\n authorizationHeader: string;\n}\n\nexport interface ForgejoRepoWebhook extends Resource<\n 'Forgejo.RepoWebhook',\n RepoWebhookProps,\n RepoWebhookAttributes,\n never,\n ForgejoRequirements\n> {}\n\nexport const ForgejoRepoWebhook = Resource<ForgejoRepoWebhook>('Forgejo.RepoWebhook');\n\n/** ★ EXPORTED for direct testing with an explicit fake `Credentials` layer — see repository.ts. */\nexport const spec: ForgejoSpec<\n RepoWebhookProps,\n repository.Hook,\n RepoWebhookAttributes,\n | repository.RepoCreateHookError\n | repository.RepoEditHookError\n | repository.RepoDeleteHookError\n | repository.RepoListHooksError\n> = {\n attributes: (live, props) => {\n const config = hookConfigPublic(live.config);\n return {\n active: live.active ?? true,\n authorizationHeader: live.authorization_header ?? '',\n branchFilter: live.branch_filter ?? '',\n contentType: config['content_type'] ?? live.content_type ?? 'json',\n events: stringArray(live.events ?? []),\n hookId: live.id,\n name: props.name,\n owner: props.owner,\n repo: props.repo,\n type: live.type as RepoWebhookType,\n url: live.url,\n };\n },\n create: (props) =>\n repository.repoCreateHook({\n active: props.active ?? true,\n ...(props.authorizationHeader === undefined\n ? {}\n : { authorization_header: props.authorizationHeader }),\n ...(props.branchFilter === undefined ? {} : { branch_filter: props.branchFilter }),\n config: hookConfigForm(props, true),\n events: props.events,\n owner: props.owner,\n repo: props.repo,\n type: props.type,\n }),\n destroy: (props, live) =>\n repository.repoDeleteHook({ owner: props.owner, repo: props.repo, id: live.id }),\n fetchLive: (props) =>\n repository.repoListHooks({ owner: props.owner, repo: props.repo, limit: 200 }).pipe(\n Effect.map((rows) => rows.find((row) => row.url === props.url)),\n Effect.catchTag('NotFound', () => Effect.succeed(undefined)),\n ),\n matches: (attributes, props) =>\n attributes.type === props.type &&\n attributes.url === props.url &&\n attributes.active === (props.active ?? true) &&\n attributes.contentType === (props.contentType ?? 'json') &&\n attributes.branchFilter === (props.branchFilter ?? '') &&\n attributes.authorizationHeader === (props.authorizationHeader ?? '') &&\n stringArray(props.events).join('\\0') === attributes.events.join('\\0'),\n update: (props, live) =>\n repository.repoEditHook({\n active: props.active ?? true,\n ...(props.authorizationHeader === undefined\n ? {}\n : { authorization_header: props.authorizationHeader }),\n ...(props.branchFilter === undefined ? {} : { branch_filter: props.branchFilter }),\n config: hookConfigForm(props, false),\n events: props.events,\n id: live.id,\n owner: props.owner,\n repo: props.repo,\n }),\n};\n\nexport const handlers = forgejoHandlers(spec);\n\nexport const ForgejoRepoWebhookProvider = () =>\n Provider.effect(ForgejoRepoWebhook, Effect.succeed(ForgejoRepoWebhook.Provider.of(handlers)));\n",
13
13
  "/**\n * `config` bodies for `Forgejo.RepoWebhook` — split to keep repo-webhook.ts under the line cap.\n *\n * ⛔ `config.secret` IS NEVER A PROP. When present it is read from `FORGEJO_HOOK_SECRET_*` at\n * create/update time only (see hookSecretEnvKey in values.ts). Alchemy attributes are Postgres\n * plaintext — a webhook HMAC secret must not be stored there.\n *\n * ⛔ NO `name` FIELD ON EITHER SIDE. `@distilled.cloud/forgejo`'s `RepoCreateHookRequest` and\n * `Hook` (the create input and the read/list output) have no `name` property — verified against\n * the package's schema. The hand-rolled client sent `name: props.name` on create anyway; Gitea's\n * JSON decoder silently dropped it, so `locate` never actually matched by name either (its\n * `row['name']` read was always `undefined` on an untyped response) — matching was always by\n * URL in practice. `props.name`/`RepoWebhookAttributes.name` stay as this family's own stable\n * key; nothing on the wire carries it.\n */\nimport type { RepoWebhookProps } from './repo-webhook.ts';\nimport { hookSecretEnvKey } from './values.ts';\n\nexport const hookConfigForm = (props: RepoWebhookProps, includeSecret: boolean) => {\n const config: Record<string, string> = {\n content_type: props.contentType ?? 'json',\n url: props.url,\n };\n if (includeSecret) {\n const key = hookSecretEnvKey(props.owner, props.repo, props.name);\n const secret = process.env[key]?.trim();\n if (secret !== undefined && secret !== '') config['secret'] = secret;\n }\n return config;\n};\n",
14
14
  "/**\n * `Forgejo.Repository` — an organization-owned git repository.\n *\n * ★ MEASURED 2026-09-13 against the live daemon (`GET /api/v1/repos/<org>/<repo>`):\n * responses are flat JSON with `private`, `has_issues`, `default_branch`, etc. Create is\n * `POST /orgs/{org}/repos`; read/update/delete use `/repos/{owner}/{repo}`. Now called through\n * `@distilled.cloud/forgejo`'s `organization.createOrgRepo` / `repository.{getRepo,editRepo,\n * deleteRepo}` instead of the retired hand-rolled client (resource.ts).\n *\n * ⛔ `CreateOrgRepoRequest` HAS NO `has_issues` / `has_wiki` / `has_projects`. Verified against\n * the package's typed schema: Forgejo's own `POST /orgs/{org}/repos` never accepted them either\n * (the hand-rolled client sent them anyway; Gitea's JSON decoder silently drops unknown keys,\n * so they were always ignored on create). `editRepo`'s schema does carry them, and\n * `updateForm`/`matches` below still converge them on the first non-create reconcile — the same\n * two-step behaviour the old client had, now provable at the type level instead of by reading\n * Gitea's source.\n *\n * ⛔ `defaultRemovalPolicy: 'retain'` — history, issues and packages in a repo are irreplaceable.\n * Opt into deletion with `.pipe(RemovalPolicy.destroy())`; `delete` below is fully implemented.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as organization from '@distilled.cloud/forgejo/organization';\nimport * as repository from '@distilled.cloud/forgejo/repository';\nimport * as Effect from 'effect/Effect';\nimport { type ForgejoRequirements, type ForgejoSpec, forgejoHandlers } from './resource.ts';\n\nexport interface RepositoryProps {\n /** Organization login — the owner segment in `<org>/<repo>`. */\n org: string;\n /** Repository name. Changing it is a replace, not an update. */\n name: string;\n description?: string;\n private?: boolean;\n hasIssues?: boolean;\n hasWiki?: boolean;\n hasProjects?: boolean;\n /** Only applied when the repository already has at least one branch. */\n defaultBranch?: string;\n /** Create an initial commit with a README when the repository is new. */\n autoInit?: boolean;\n}\n\nexport interface RepositoryAttributes {\n org: string;\n name: string;\n repoId: number;\n description: string;\n private: boolean;\n hasIssues: boolean;\n hasWiki: boolean;\n hasProjects: boolean;\n defaultBranch: string;\n empty: boolean;\n}\n\nexport interface ForgejoRepository extends Resource<\n 'Forgejo.Repository',\n RepositoryProps,\n RepositoryAttributes,\n never,\n ForgejoRequirements\n> {}\n\nexport const ForgejoRepository = Resource<ForgejoRepository>('Forgejo.Repository', {\n defaultRemovalPolicy: 'retain',\n});\n\nconst editForm = (props: RepositoryProps) => ({\n ...(props.defaultBranch === undefined ? {} : { default_branch: props.defaultBranch }),\n ...(props.description === undefined ? {} : { description: props.description }),\n ...(props.hasIssues === undefined ? {} : { has_issues: props.hasIssues }),\n ...(props.hasProjects === undefined ? {} : { has_projects: props.hasProjects }),\n ...(props.hasWiki === undefined ? {} : { has_wiki: props.hasWiki }),\n ...(props.private === undefined ? {} : { private: props.private }),\n});\n\n/**\n * ★ EXPORTED, NOT JUST PASSED INLINE TO `forgejoHandlers` BELOW — so a test can call\n * `spec.fetchLive` / `spec.attributes` directly (repository.test.ts does), against an explicit\n * fake `Credentials` layer, without touching `forgejoHandlers`'s baked-in `CredentialsFromEnv`.\n * That layer resolves `FORGEJO_URL` / `FORGEJO_TOKEN` through Effect's `Config`, whose default\n * provider snapshots `process.env` once — a test-time `process.env` mutation is invisible to it,\n * so the only way to run this exact production code against a fake server is to call it with an\n * explicit `Credentials` layer, bypassing the env read entirely.\n */\nexport const spec: ForgejoSpec<\n RepositoryProps,\n repository.Repository,\n RepositoryAttributes,\n | organization.CreateOrgRepoError\n | repository.GetRepoError\n | repository.EditRepoError\n | repository.DeleteRepoError\n> = {\n attributes: (live, props) => ({\n defaultBranch: live.default_branch,\n description: live.description ?? '',\n empty: live.empty ?? false,\n hasIssues: live.has_issues ?? true,\n hasProjects: live.has_projects ?? true,\n hasWiki: live.has_wiki ?? true,\n name: props.name,\n org: props.org,\n private: live.private ?? true,\n repoId: live.id,\n }),\n create: (props) =>\n organization.createOrgRepo({\n auto_init: props.autoInit ?? false,\n description: props.description ?? '',\n name: props.name,\n org: props.org,\n private: props.private ?? true,\n }),\n destroy: (props) => repository.deleteRepo({ owner: props.org, repo: props.name }),\n fetchLive: (props) =>\n repository\n .getRepo({ owner: props.org, repo: props.name })\n .pipe(Effect.catchTag('NotFound', () => Effect.succeed(undefined))),\n /**\n * ⛔ AN UNDECLARED FIELD IS NEITHER COMPARED NOR SENT — the rule every other family in this\n * estate follows (storage.ts, backup-job.ts, and all four Pbs.* families say it in those\n * words). Declaring a repo you only wanted to rename leaves its description and feature\n * toggles alone; dropping a line no longer resets a field.\n *\n * ⚠️ `private` IS THE ONE WORTH DECLARING ANYWAY ON EVERY REPO. Leaving it undeclared means\n * Alchemy will not notice a repository being made public. That is the correct trade for a\n * generic family — undeclared is unmanaged, not assumed — but it is a real gap, so say it\n * explicitly in each declaration rather than relying on a default that no longer exists.\n */\n matches: (attributes, props) =>\n (props.description === undefined || attributes.description === props.description) &&\n (props.private === undefined || attributes.private === props.private) &&\n (props.hasIssues === undefined || attributes.hasIssues === props.hasIssues) &&\n (props.hasWiki === undefined || attributes.hasWiki === props.hasWiki) &&\n (props.hasProjects === undefined || attributes.hasProjects === props.hasProjects) &&\n (props.defaultBranch === undefined || attributes.defaultBranch === props.defaultBranch),\n update: (props) =>\n repository.editRepo({ owner: props.org, repo: props.name, ...editForm(props) }),\n};\n\nexport const handlers = forgejoHandlers(spec);\n\nexport const ForgejoRepositoryProvider = () =>\n Provider.effect(ForgejoRepository, Effect.succeed(ForgejoRepository.Provider.of(handlers)));\n",
15
- "/**\n * `Forgejo.TeamMember` — one user in one organization team.\n *\n * ★ WHY IT EXISTS: forgejo-provision, the service account the Forgejo engine mints as, belongs to the\n * HomeFlare Owners team — Tim, 2026-09-14. Membership is what its tokens can reach; the role's\n * scopes only cap it (<estate>/openbao/src/forgejo-bootstrap.ts).\n *\n * ★ READ OFF THE LIVE 16.0.3 SWAGGER (127.0.0.1:3000/swagger.v1.json, 2026-09-14): GET, PUT and\n * DELETE `/teams/{id}/members/{username}` answer 200, 204 and 204, and 404 when absent. Now\n * `organization.orgListTeamMember` / `orgAddTeamMember` / `orgRemoveTeamMember`; the team is\n * still addressed by numeric id, found by name first via `orgListTeams` — the same seam as\n * org-team.ts.\n *\n * ⚠️ EXISTENCE IS THE WHOLE OBJECT. Nothing about a membership can be updated, so `matches` is\n * always true; a different team or user is a different resource id in alchemy.run.ts.\n *\n * ⚠️ THE TEAM ITSELF IS ONLY LOCATED HERE, NEVER MANAGED. A missing team fails the plan by name\n * instead of folding into \"absent\" — `ForgejoTeamNotFoundError` is this family's own domain\n * error, not one of the distilled SDK's typed HTTP errors, so the `catchTag('NotFound', ...)`\n * at the end of `fetchLive` below (see resource.ts's header for why every `fetchLive` folds its\n * own `NotFound` rather than one shared helper) never touches it. A PUT can add a member but\n * cannot create a team.\n *\n * ⛔ TOKEN NEEDS `write:organization` TO ADD OR REMOVE, and an identity allowed to manage the team.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as organization from '@distilled.cloud/forgejo/organization';\nimport * as Data from 'effect/Data';\nimport * as Effect from 'effect/Effect';\nimport { type ForgejoRequirements, type ForgejoSpec, forgejoHandlers } from './resource.ts';\n\nexport interface TeamMemberProps {\n org: string;\n /** Team name as Forgejo shows it, e.g. `Owners`. */\n team: string;\n username: string;\n}\n\nexport interface TeamMemberAttributes {\n org: string;\n team: string;\n teamId: number;\n username: string;\n}\n\nexport interface ForgejoTeamMember extends Resource<\n 'Forgejo.TeamMember',\n TeamMemberProps,\n TeamMemberAttributes,\n never,\n ForgejoRequirements\n> {}\n\nexport const ForgejoTeamMember = Resource<ForgejoTeamMember>('Forgejo.TeamMember');\n\nexport class ForgejoTeamNotFoundError extends Data.TaggedError('ForgejoTeamNotFoundError')<{\n readonly message: string;\n}> {}\n\ninterface TeamMemberLive {\n readonly teamId: number;\n readonly login: string;\n}\n\nconst teamIdOf = (props: TeamMemberProps) =>\n organization.orgListTeams({ org: props.org, limit: 200 }).pipe(\n Effect.flatMap((rows) => {\n const id = rows.find((row) => row.name === props.team)?.id;\n return id === undefined\n ? Effect.fail(\n new ForgejoTeamNotFoundError({\n message: `no team named ${props.team} in org ${props.org}`,\n }),\n )\n : Effect.succeed(id);\n }),\n );\n\n/** ★ EXPORTED for direct testing with an explicit fake `Credentials` layer — see repository.ts. */\nexport const spec: ForgejoSpec<\n TeamMemberProps,\n TeamMemberLive,\n TeamMemberAttributes,\n | organization.OrgAddTeamMemberError\n | organization.OrgRemoveTeamMemberError\n | organization.OrgListTeamMemberError\n | organization.OrgListTeamsError\n | ForgejoTeamNotFoundError\n> = {\n attributes: (live, props) => {\n if (live.login.toLowerCase() !== props.username.toLowerCase()) return undefined;\n return { org: props.org, team: props.team, teamId: live.teamId, username: props.username };\n },\n destroy: (props, live) =>\n organization.orgRemoveTeamMember({ id: live.teamId, username: props.username }),\n fetchLive: (props) =>\n Effect.gen(function* () {\n const teamId = yield* teamIdOf(props);\n const user = yield* organization.orgListTeamMember({ id: teamId, username: props.username });\n return { login: user.login, teamId };\n }).pipe(Effect.catchTag('NotFound', () => Effect.succeed(undefined))),\n matches: () => true,\n upsert: (props, before) =>\n before !== undefined\n ? Effect.void\n : Effect.flatMap(teamIdOf(props), (id) =>\n Effect.asVoid(organization.orgAddTeamMember({ id, username: props.username })),\n ),\n};\n\nexport const handlers = forgejoHandlers(spec);\n\nexport const ForgejoTeamMemberProvider = () =>\n Provider.effect(ForgejoTeamMember, Effect.succeed(ForgejoTeamMember.Provider.of(handlers)));\n"
15
+ "/**\n * `Forgejo.TeamMember` — one user in one organization team.\n *\n * ★ WHY IT EXISTS: forgejo-provision, the service account the Forgejo engine mints as, belongs to the\n * HomeFlare Owners team — Tim, 2026-09-14. Membership is what its tokens can reach; the role's\n * scopes only cap it (<estate>/openbao/src/forgejo-bootstrap.ts).\n *\n * ★ READ OFF THE LIVE 16.0.3 SWAGGER (127.0.0.1:3000/swagger.v1.json, 2026-09-14): GET, PUT and\n * DELETE `/teams/{id}/members/{username}` answer 200, 204 and 204, and 404 when absent. Now\n * `organization.orgListTeamMember` / `orgAddTeamMember` / `orgRemoveTeamMember`; the team is\n * still addressed by numeric id, found by name first via `orgListTeams` — the same seam as\n * org-team.ts.\n *\n * ⚠️ EXISTENCE IS THE WHOLE OBJECT. Nothing about a membership can be updated, so `matches` is\n * always true; a different team or user is a different resource id in alchemy.run.ts.\n *\n * ⚠️ THE TEAM ITSELF IS ONLY LOCATED HERE, NEVER MANAGED. A missing team fails the plan by name\n * instead of folding into \"absent\" — `ForgejoTeamNotFoundError` is this family's own domain\n * error, not one of the distilled SDK's typed HTTP errors, so the `catchTag('NotFound', ...)`\n * at the end of `fetchLive` below (see resource.ts's header for why every `fetchLive` folds its\n * own `NotFound` rather than one shared helper) never touches it. A PUT can add a member but\n * cannot create a team.\n *\n * ⛔ TOKEN NEEDS `write:organization` TO ADD OR REMOVE, and an identity allowed to manage the team.\n *\n * ⛔ `defaultRemovalPolicy: 'retain'` — FOUND 2026-09-25 by reading the source, not by measuring\n * anything (mini PR 82's red team, `homeflare-mini` 970e8be): before this, `ForgejoRepository`/\n * `ForgejoOrgLabel` defaulted to retain in the kit itself but this family did not, so alchemy's\n * own engine fallback (`destroy`) applied to it — every caller had to remember its own\n * `.pipe(RemovalPolicy.retain())`, the way mini's `src/forgejo/declare.ts` did for\n * `forgejo-provision`'s row. Dropping a `TeamMember` declaration — toggling a feature gate off,\n * renaming the resource id — must not silently call `organization.orgRemoveTeamMember` and\n * revoke a real membership; that is the same \"removal from the stack is not removal from\n * Forgejo\" posture `ForgejoOrgLabel` and `ForgejoBranchProtection` already take, this family\n * exists to attach a stack's identity to a team it never creates or destroys (`teamIdOf` below\n * only ever locates the team, never manages it), and the same trade-off alchemy's own\n * `GitHub.Collaborator` and `GitHub.TeamAccess` make for the identical reason — \"preventing\n * accidental lockout\" (`GitHub/Collaborator.ts:127`, `GitHub/TeamAccess.ts:145` in the pinned\n * alchemy source). The trade-off, stated plainly: removing a declaration no longer revokes\n * access on its own — the plan shows that row as `orphaned`, not `delete`. Opt into a real\n * revoke with `.pipe(RemovalPolicy.destroy())`; `destroy` below is fully implemented.\n *\n * ⚠️ THE DEFAULT ONLY PROTECTS A ROW ALREADY IN STATE ONCE THIS RELEASE IS DEPLOYED. Alchemy's\n * plan reads `removalPolicy` off the *persisted row* (`Plan.ts`'s delete-node builder), not off\n * this default; the default only reaches an existing row's state on a deploy where the resource\n * plans as a no-op (`Apply.ts`'s noop path rewrites it and logs \"removal policy destroy →\n * retain\"). A consumer that bumps to this release and drops a `TeamMember` declaration in the\n * SAME deploy still gets `delete`, not `orphaned` — see the changeset for the two-deploy shape\n * this implies for both adopting retain and opting back into destroy.\n */\nimport { Resource } from 'alchemy';\nimport * as Provider from 'alchemy/Provider';\nimport * as organization from '@distilled.cloud/forgejo/organization';\nimport * as Data from 'effect/Data';\nimport * as Effect from 'effect/Effect';\nimport { type ForgejoRequirements, type ForgejoSpec, forgejoHandlers } from './resource.ts';\n\nexport interface TeamMemberProps {\n org: string;\n /** Team name as Forgejo shows it, e.g. `Owners`. */\n team: string;\n username: string;\n}\n\nexport interface TeamMemberAttributes {\n org: string;\n team: string;\n teamId: number;\n username: string;\n}\n\nexport interface ForgejoTeamMember extends Resource<\n 'Forgejo.TeamMember',\n TeamMemberProps,\n TeamMemberAttributes,\n never,\n ForgejoRequirements\n> {}\n\nexport const ForgejoTeamMember = Resource<ForgejoTeamMember>('Forgejo.TeamMember', {\n defaultRemovalPolicy: 'retain',\n});\n\nexport class ForgejoTeamNotFoundError extends Data.TaggedError('ForgejoTeamNotFoundError')<{\n readonly message: string;\n}> {}\n\ninterface TeamMemberLive {\n readonly teamId: number;\n readonly login: string;\n}\n\nconst teamIdOf = (props: TeamMemberProps) =>\n organization.orgListTeams({ org: props.org, limit: 200 }).pipe(\n Effect.flatMap((rows) => {\n const id = rows.find((row) => row.name === props.team)?.id;\n return id === undefined\n ? Effect.fail(\n new ForgejoTeamNotFoundError({\n message: `no team named ${props.team} in org ${props.org}`,\n }),\n )\n : Effect.succeed(id);\n }),\n );\n\n/** ★ EXPORTED for direct testing with an explicit fake `Credentials` layer — see repository.ts. */\nexport const spec: ForgejoSpec<\n TeamMemberProps,\n TeamMemberLive,\n TeamMemberAttributes,\n | organization.OrgAddTeamMemberError\n | organization.OrgRemoveTeamMemberError\n | organization.OrgListTeamMemberError\n | organization.OrgListTeamsError\n | ForgejoTeamNotFoundError\n> = {\n attributes: (live, props) => {\n if (live.login.toLowerCase() !== props.username.toLowerCase()) return undefined;\n return { org: props.org, team: props.team, teamId: live.teamId, username: props.username };\n },\n destroy: (props, live) =>\n organization.orgRemoveTeamMember({ id: live.teamId, username: props.username }),\n fetchLive: (props) =>\n Effect.gen(function* () {\n const teamId = yield* teamIdOf(props);\n const user = yield* organization.orgListTeamMember({ id: teamId, username: props.username });\n return { login: user.login, teamId };\n }).pipe(Effect.catchTag('NotFound', () => Effect.succeed(undefined))),\n matches: () => true,\n upsert: (props, before) =>\n before !== undefined\n ? Effect.void\n : Effect.flatMap(teamIdOf(props), (id) =>\n Effect.asVoid(organization.orgAddTeamMember({ id, username: props.username })),\n ),\n};\n\nexport const handlers = forgejoHandlers(spec);\n\nexport const ForgejoTeamMemberProvider = () =>\n Provider.effect(ForgejoTeamMember, Effect.succeed(ForgejoTeamMember.Provider.of(handlers)));\n"
16
16
  ],
17
- "mappings": "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",
18
- "debugId": "D0F244891AADE98C64756E2164756E21",
17
+ "mappings": "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",
18
+ "debugId": "6A88B7970CFE610264756E2164756E21",
19
19
  "names": []
20
20
  }
@@ -22,6 +22,31 @@
22
22
  * cannot create a team.
23
23
  *
24
24
  * ⛔ TOKEN NEEDS `write:organization` TO ADD OR REMOVE, and an identity allowed to manage the team.
25
+ *
26
+ * ⛔ `defaultRemovalPolicy: 'retain'` — FOUND 2026-09-25 by reading the source, not by measuring
27
+ * anything (mini PR 82's red team, `homeflare-mini` 970e8be): before this, `ForgejoRepository`/
28
+ * `ForgejoOrgLabel` defaulted to retain in the kit itself but this family did not, so alchemy's
29
+ * own engine fallback (`destroy`) applied to it — every caller had to remember its own
30
+ * `.pipe(RemovalPolicy.retain())`, the way mini's `src/forgejo/declare.ts` did for
31
+ * `forgejo-provision`'s row. Dropping a `TeamMember` declaration — toggling a feature gate off,
32
+ * renaming the resource id — must not silently call `organization.orgRemoveTeamMember` and
33
+ * revoke a real membership; that is the same "removal from the stack is not removal from
34
+ * Forgejo" posture `ForgejoOrgLabel` and `ForgejoBranchProtection` already take, this family
35
+ * exists to attach a stack's identity to a team it never creates or destroys (`teamIdOf` below
36
+ * only ever locates the team, never manages it), and the same trade-off alchemy's own
37
+ * `GitHub.Collaborator` and `GitHub.TeamAccess` make for the identical reason — "preventing
38
+ * accidental lockout" (`GitHub/Collaborator.ts:127`, `GitHub/TeamAccess.ts:145` in the pinned
39
+ * alchemy source). The trade-off, stated plainly: removing a declaration no longer revokes
40
+ * access on its own — the plan shows that row as `orphaned`, not `delete`. Opt into a real
41
+ * revoke with `.pipe(RemovalPolicy.destroy())`; `destroy` below is fully implemented.
42
+ *
43
+ * ⚠️ THE DEFAULT ONLY PROTECTS A ROW ALREADY IN STATE ONCE THIS RELEASE IS DEPLOYED. Alchemy's
44
+ * plan reads `removalPolicy` off the *persisted row* (`Plan.ts`'s delete-node builder), not off
45
+ * this default; the default only reaches an existing row's state on a deploy where the resource
46
+ * plans as a no-op (`Apply.ts`'s noop path rewrites it and logs "removal policy destroy →
47
+ * retain"). A consumer that bumps to this release and drops a `TeamMember` declaration in the
48
+ * SAME deploy still gets `delete`, not `orphaned` — see the changeset for the two-deploy shape
49
+ * this implies for both adopting retain and opting back into destroy.
25
50
  */
26
51
  import { Resource } from 'alchemy';
27
52
  import * as Provider from 'alchemy/Provider';
@@ -1 +1 @@
1
- {"version":3,"file":"team-member.d.ts","sourceRoot":"","sources":["../../src/forgejo/team-member.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAmB,MAAM,eAAe,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CACjD,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,KAAK,EACL,mBAAmB,CACpB;CAAG;AAEJ,eAAO,MAAM,iBAAiB,oDAAoD,CAAC;;;;AAEnF,qBAAa,wBAAyB,SAAQ,8BAA6C;IACzF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAgBD,mGAAmG;AACnG,eAAO,MAAM,IAAI,EAAE,WAAW,CAC5B,eAAe,EACf,cAAc,EACd,oBAAoB,EAClB,YAAY,CAAC,qBAAqB,GAClC,YAAY,CAAC,wBAAwB,GACrC,YAAY,CAAC,sBAAsB,GACnC,YAAY,CAAC,iBAAiB,GAC9B,wBAAwB,CAqB3B,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAwB,CAAC;AAE9C,eAAO,MAAM,yBAAyB,uIACuD,CAAC"}
1
+ {"version":3,"file":"team-member.d.ts","sourceRoot":"","sources":["../../src/forgejo/team-member.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAC;AAEtE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAmB,MAAM,eAAe,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CACjD,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,KAAK,EACL,mBAAmB,CACpB;CAAG;AAEJ,eAAO,MAAM,iBAAiB,oDAE5B,CAAC;;;;AAEH,qBAAa,wBAAyB,SAAQ,8BAA6C;IACzF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;AAEL,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAgBD,mGAAmG;AACnG,eAAO,MAAM,IAAI,EAAE,WAAW,CAC5B,eAAe,EACf,cAAc,EACd,oBAAoB,EAClB,YAAY,CAAC,qBAAqB,GAClC,YAAY,CAAC,wBAAwB,GACrC,YAAY,CAAC,sBAAsB,GACnC,YAAY,CAAC,iBAAiB,GAC9B,wBAAwB,CAqB3B,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;CAAwB,CAAC;AAE9C,eAAO,MAAM,yBAAyB,uIACuD,CAAC"}
@@ -15,5 +15,5 @@ export declare const PROXMOX_CONSTRAINTS: Readonly<Record<string, EndpointConstr
15
15
  * ★ A DIGEST OF THE DATA, NOT OF THE FILE TEXT, so reformatting is not a stale generation while
16
16
  * changing a 128 to a 129 by hand is. `tests/schema-manifest.test.ts` recomputes it.
17
17
  */
18
- export declare const PROXMOX_CONSTRAINTS_DIGEST = "56eba80750ddb1d2";
18
+ export declare const PROXMOX_CONSTRAINTS_DIGEST = "8b6745a471839974";
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/proxmox/generated/constraints/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAmBhE,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAkB7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/proxmox/generated/constraints/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAoBhE,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAmB7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qBAAqB,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Generated pve-manager parameter constraints for `/nodes/{node}/storage` — DO NOT EDIT BY HAND.
3
+ *
4
+ * Run: bun codegen/constraints.ts
5
+ * Manifest entry: `pve-apidoc` — pve-manager 9.2.11/f6997e698c7933ea
6
+ * sha256 9def8f13611184ee, read on a PVE cluster node from
7
+ * /usr/share/pve-docs/api-viewer/apidoc.js
8
+ *
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
+ * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
+ * and therefore unchecked at plan time.
12
+ *
13
+ * ⚠️ A `patternSource` with no `pattern` beside it is a rule that could NOT be carried into a
14
+ * JavaScript RegExp faithfully (codegen/pattern.ts). It is recorded and NOT enforced.
15
+ * ⚠️ `pattern` IS NOT THE VENDOR'S SPELLING. For PVE it is anchored, because PVE applies
16
+ * `m/^$pattern$/` itself (JSONSchema.pm); for PBS it is the vendor's own, which already
17
+ * carries its anchors. `patternSource` is the spelling to quote at a human — param-rules.ts.
18
+ * ⚠️ `each: true` means the value rules describe every ELEMENT of a repeated key, because the
19
+ * parameter is an array and stated its limits on `items`.
20
+ */
21
+ import type { EndpointConstraints } from '../../constraints.ts';
22
+ export declare const PVE_NODES_STORAGE_CONSTRAINTS: Readonly<Record<string, EndpointConstraints>>;
23
+ //# sourceMappingURL=pve-nodes-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pve-nodes-storage.d.ts","sourceRoot":"","sources":["../../../../src/proxmox/generated/constraints/pve-nodes-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAOvF,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,7 +6,7 @@
6
6
  * sha256 9def8f13611184ee, read on a PVE cluster node from
7
7
  * /usr/share/pve-docs/api-viewer/apidoc.js
8
8
  *
9
- * 58 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
9
+ * 59 of this product's 258 POST/PUT endpoints are tabled across all areas: the ones
10
10
  * this package writes to, named in its own source. Every other vendor write endpoint is UNTABLED
11
11
  * and therefore unchecked at plan time.
12
12
  *
@@ -6,8 +6,18 @@
6
6
  * provider needs but a consumer should not depend on. An `export *` here would publish
7
7
  * every helper as API and make the next refactor a breaking change.
8
8
  * ★ Control-plane Resource constructors (Storage, SDN, access, HA, backup,
9
- * metrics, PBS) sit next to their Providers. NIC apply and QEMU stay
10
- * Provider-only so a stack cannot declare them by accident.
9
+ * metrics, PBS) sit next to their Providers. NIC apply stays Provider-only
10
+ * so a stack cannot declare it by accident.
11
+ * ★ `ProxmoxVm` JOINED THEM 2026-09-26, FOR TALOS. Its declared-keys model (qemu-props.ts) is
12
+ * what let it join safely: an undeclared field is unmanaged, so it is never sent and never
13
+ * compared — the fix for the "5-default PUT" a Provider-only `Proxmox.Vm` never exercised.
14
+ * `cipassword` and `machine` are typed `never` and refused if smuggled past the types
15
+ * (qemu-form.ts's `formRefusals`); `defaultRemovalPolicy: 'retain'` means dropping a
16
+ * declaration never destroys a guest's disks. Node-pinned semantics (qemu-read.ts's "A
17
+ * migration is not an update") are unchanged by the export.
18
+ * ★ `Proxmox.StorageDownload` JOINED 2026-09-26 TOO, ALONGSIDE IT: `download-url` (content
19
+ * `import`, checksum-pinned) as a CREATE-oriented family — no adoption, no update, a task-poll
20
+ * failure (a checksum mismatch included) refuses rather than reports success.
11
21
  * ★ `ProxmoxLxc` JOINED THEM 2026-09-21, AND IT WAS KEPT OFF UNTIL IT COULD NOT HURT A GUEST.
12
22
  * The provider-only version diffed four fields and would have planned a create over any read
13
23
  * failure. The Resource now adopts from the live config, refuses every change PVE cannot make
@@ -74,7 +84,8 @@ export { ProxmoxPool, ProxmoxPoolProvider } from './pool.ts';
74
84
  export { PROVISION_DEFAULTS, PROVISION_PRIVILEGES, type CoreProvisionNames, type ProvisionBaseline, type ProvisionComments, type ProvisionLane, type ProvisionNames, type ResolvedProvisionNames, provisionBaseline, } from './provision-baseline.ts';
75
85
  export { provisionBootstrap } from './provision-bootstrap.ts';
76
86
  export { type DeclareProvisionOptions, declareProvisionBaseline } from './provision-declare.ts';
77
- export { ProxmoxVmProvider } from './qemu.ts';
87
+ export { ProxmoxVm, ProxmoxVmProvider, type VmAttributes, type VmProps } from './qemu.ts';
88
+ export { ProxmoxStorageDownload, ProxmoxStorageDownloadProvider, type StorageDownloadAttributes, type StorageDownloadProps, } from './storage-download.ts';
78
89
  export { ProxmoxReplicationJobProvider } from './replication-job.ts';
79
90
  export { ProxmoxRole, ProxmoxRoleProvider } from './role.ts';
80
91
  export { ProxmoxSdnApply, ProxmoxSdnApplyProvider } from './sdn-apply.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxmox/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxmox/index.ts"],"names":[],"mappings":"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"}