primitive-admin 1.1.0-alpha.9 → 1.1.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.
- package/README.md +523 -109
- package/assets/skill/skills/primitive-platform/SKILL.md +289 -0
- package/dist/bin/primitive.d.ts +2 -0
- package/dist/bin/primitive.js +372 -21
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/admins.d.ts +2 -0
- package/dist/src/commands/admins.js +136 -30
- package/dist/src/commands/admins.js.map +1 -1
- package/dist/src/commands/analytics.d.ts +2 -0
- package/dist/src/commands/analytics.js +713 -55
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps.d.ts +2 -0
- package/dist/src/commands/apps.js +65 -100
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth-sessions.d.ts +7 -0
- package/dist/src/commands/auth-sessions.js +144 -0
- package/dist/src/commands/auth-sessions.js.map +1 -0
- package/dist/src/commands/auth.d.ts +2 -0
- package/dist/src/commands/auth.js +238 -108
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/blob-buckets.d.ts +2 -0
- package/dist/src/commands/blob-buckets.js +331 -0
- package/dist/src/commands/blob-buckets.js.map +1 -0
- package/dist/src/commands/catalog.d.ts +2 -0
- package/dist/src/commands/catalog.js +63 -48
- package/dist/src/commands/catalog.js.map +1 -1
- package/dist/src/commands/collection-type-configs.d.ts +2 -0
- package/dist/src/commands/collection-type-configs.js +85 -0
- package/dist/src/commands/collection-type-configs.js.map +1 -0
- package/dist/src/commands/collections.d.ts +2 -0
- package/dist/src/commands/collections.js +1282 -0
- package/dist/src/commands/collections.js.map +1 -0
- package/dist/src/commands/comparisons.d.ts +2 -0
- package/dist/src/commands/comparisons.js +6 -6
- package/dist/src/commands/comparisons.js.map +1 -1
- package/dist/src/commands/config.d.ts +46 -0
- package/dist/src/commands/config.js +465 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/connections.d.ts +2 -0
- package/dist/src/commands/connections.js +99 -0
- package/dist/src/commands/connections.js.map +1 -0
- package/dist/src/commands/cron-triggers.d.ts +2 -0
- package/dist/src/commands/cron-triggers.js +266 -0
- package/dist/src/commands/cron-triggers.js.map +1 -0
- package/dist/src/commands/database-type-configs.d.ts +2 -0
- package/dist/src/commands/database-type-configs.js +164 -0
- package/dist/src/commands/database-type-configs.js.map +1 -0
- package/dist/src/commands/database-types.d.ts +2 -0
- package/dist/src/commands/database-types.js +471 -0
- package/dist/src/commands/database-types.js.map +1 -0
- package/dist/src/commands/databases.d.ts +65 -0
- package/dist/src/commands/databases.js +1887 -243
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/documents.d.ts +60 -0
- package/dist/src/commands/documents.js +2888 -22
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/email-templates.d.ts +2 -0
- package/dist/src/commands/email-templates.js +175 -0
- package/dist/src/commands/email-templates.js.map +1 -0
- package/dist/src/commands/env.d.ts +23 -0
- package/dist/src/commands/env.js +395 -0
- package/dist/src/commands/env.js.map +1 -0
- package/dist/src/commands/feature-flags.d.ts +14 -0
- package/dist/src/commands/feature-flags.js +117 -0
- package/dist/src/commands/feature-flags.js.map +1 -0
- package/dist/src/commands/functions.d.ts +20 -0
- package/dist/src/commands/functions.js +1630 -0
- package/dist/src/commands/functions.js.map +1 -0
- package/dist/src/commands/group-type-configs.d.ts +2 -0
- package/dist/src/commands/group-type-configs.js +87 -0
- package/dist/src/commands/group-type-configs.js.map +1 -0
- package/dist/src/commands/groups.d.ts +2 -0
- package/dist/src/commands/groups.js +65 -113
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.d.ts +223 -0
- package/dist/src/commands/guides.js +627 -69
- package/dist/src/commands/guides.js.map +1 -1
- package/dist/src/commands/init.d.ts +37 -0
- package/dist/src/commands/init.js +1693 -208
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.d.ts +2 -0
- package/dist/src/commands/integrations.js +428 -187
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/llm.d.ts +2 -0
- package/dist/src/commands/llm.js +4 -2
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/locks.d.ts +8 -0
- package/dist/src/commands/locks.js +175 -0
- package/dist/src/commands/locks.js.map +1 -0
- package/dist/src/commands/metadata-category-configs.d.ts +12 -0
- package/dist/src/commands/metadata-category-configs.js +113 -0
- package/dist/src/commands/metadata-category-configs.js.map +1 -0
- package/dist/src/commands/metadata.d.ts +2 -0
- package/dist/src/commands/metadata.js +288 -0
- package/dist/src/commands/metadata.js.map +1 -0
- package/dist/src/commands/prompts.d.ts +2 -0
- package/dist/src/commands/prompts.js +322 -634
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/rule-sets.d.ts +3 -0
- package/dist/src/commands/rule-sets.js +139 -148
- package/dist/src/commands/rule-sets.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +30 -0
- package/dist/src/commands/scripts.js +688 -0
- package/dist/src/commands/scripts.js.map +1 -0
- package/dist/src/commands/secrets.d.ts +2 -0
- package/dist/src/commands/secrets.js +109 -0
- package/dist/src/commands/secrets.js.map +1 -0
- package/dist/src/commands/sessions.d.ts +2 -0
- package/dist/src/commands/sessions.js +76 -0
- package/dist/src/commands/sessions.js.map +1 -0
- package/dist/src/commands/skill.d.ts +2 -0
- package/dist/src/commands/skill.js +29 -0
- package/dist/src/commands/skill.js.map +1 -0
- package/dist/src/commands/sync-app-settings.d.ts +158 -0
- package/dist/src/commands/sync-app-settings.js +328 -0
- package/dist/src/commands/sync-app-settings.js.map +1 -0
- package/dist/src/commands/sync.d.ts +2670 -0
- package/dist/src/commands/sync.js +17144 -834
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.d.ts +2 -0
- package/dist/src/commands/tokens.js +132 -22
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.d.ts +2 -0
- package/dist/src/commands/users.js +542 -24
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/vars.d.ts +8 -0
- package/dist/src/commands/vars.js +97 -0
- package/dist/src/commands/vars.js.map +1 -0
- package/dist/src/commands/waitlist.d.ts +2 -0
- package/dist/src/commands/waitlist.js +12 -11
- package/dist/src/commands/waitlist.js.map +1 -1
- package/dist/src/commands/webhooks.d.ts +31 -0
- package/dist/src/commands/webhooks.js +633 -0
- package/dist/src/commands/webhooks.js.map +1 -0
- package/dist/src/commands/workflows.d.ts +88 -0
- package/dist/src/commands/workflows.js +1568 -742
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/access-rule-display.d.ts +21 -0
- package/dist/src/lib/access-rule-display.js +34 -0
- package/dist/src/lib/access-rule-display.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +2550 -0
- package/dist/src/lib/api-client.js +2503 -160
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
- package/dist/src/lib/app-settings-descriptor.js +583 -0
- package/dist/src/lib/app-settings-descriptor.js.map +1 -0
- package/dist/src/lib/auth-flow.d.ts +8 -0
- package/dist/src/lib/batch.d.ts +26 -0
- package/dist/src/lib/batch.js +32 -0
- package/dist/src/lib/batch.js.map +1 -0
- package/dist/src/lib/block-layout.d.ts +160 -0
- package/dist/src/lib/block-layout.js +451 -0
- package/dist/src/lib/block-layout.js.map +1 -0
- package/dist/src/lib/block-selector.d.ts +58 -0
- package/dist/src/lib/block-selector.js +92 -0
- package/dist/src/lib/block-selector.js.map +1 -0
- package/dist/src/lib/canonical-json.d.ts +12 -0
- package/dist/src/lib/canonical-json.js +35 -0
- package/dist/src/lib/canonical-json.js.map +1 -0
- package/dist/src/lib/channel.d.ts +30 -0
- package/dist/src/lib/channel.js +68 -0
- package/dist/src/lib/channel.js.map +1 -0
- package/dist/src/lib/cli-manifest.d.ts +68 -0
- package/dist/src/lib/cli-manifest.js +71 -0
- package/dist/src/lib/cli-manifest.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +101 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js +191 -0
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
- package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
- package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +38 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +46 -0
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
- package/dist/src/lib/collection-export.d.ts +184 -0
- package/dist/src/lib/collection-export.js +252 -0
- package/dist/src/lib/collection-export.js.map +1 -0
- package/dist/src/lib/config-json-field.d.ts +28 -0
- package/dist/src/lib/config-json-field.js +56 -0
- package/dist/src/lib/config-json-field.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.d.ts +127 -0
- package/dist/src/lib/config-object-descriptor.js +740 -0
- package/dist/src/lib/config-object-descriptor.js.map +1 -0
- package/dist/src/lib/config-payload.d.ts +92 -0
- package/dist/src/lib/config-payload.js +161 -0
- package/dist/src/lib/config-payload.js.map +1 -0
- package/dist/src/lib/config-surface.d.ts +141 -0
- package/dist/src/lib/config-surface.js +368 -0
- package/dist/src/lib/config-surface.js.map +1 -0
- package/dist/src/lib/config-toml.d.ts +10 -0
- package/dist/src/lib/config-toml.js +42 -0
- package/dist/src/lib/config-toml.js.map +1 -0
- package/dist/src/lib/config.d.ts +71 -0
- package/dist/src/lib/config.js +71 -68
- package/dist/src/lib/config.js.map +1 -1
- package/dist/src/lib/confirm-prompt.d.ts +83 -0
- package/dist/src/lib/confirm-prompt.js +110 -0
- package/dist/src/lib/confirm-prompt.js.map +1 -0
- package/dist/src/lib/constants.d.ts +11 -0
- package/dist/src/lib/constants.js +12 -0
- package/dist/src/lib/constants.js.map +1 -0
- package/dist/src/lib/crash-handlers.d.ts +20 -0
- package/dist/src/lib/crash-handlers.js +49 -0
- package/dist/src/lib/crash-handlers.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +104 -0
- package/dist/src/lib/credentials-store.js +336 -0
- package/dist/src/lib/credentials-store.js.map +1 -0
- package/dist/src/lib/csv.d.ts +47 -0
- package/dist/src/lib/csv.js +172 -0
- package/dist/src/lib/csv.js.map +1 -0
- package/dist/src/lib/data-input.d.ts +23 -0
- package/dist/src/lib/data-input.js +50 -0
- package/dist/src/lib/data-input.js.map +1 -0
- package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
- package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
- package/dist/src/lib/db-codegen/dbNaming.js +180 -0
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
- package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
- package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js +525 -0
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
- package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
- package/dist/src/lib/deprecation.d.ts +22 -0
- package/dist/src/lib/deprecation.js +43 -0
- package/dist/src/lib/deprecation.js.map +1 -0
- package/dist/src/lib/document-export-permissions.d.ts +30 -0
- package/dist/src/lib/document-export-permissions.js +54 -0
- package/dist/src/lib/document-export-permissions.js.map +1 -0
- package/dist/src/lib/document-ingest-artifact.d.ts +120 -0
- package/dist/src/lib/document-ingest-artifact.js +505 -0
- package/dist/src/lib/document-ingest-artifact.js.map +1 -0
- package/dist/src/lib/document-ingest-input.d.ts +51 -0
- package/dist/src/lib/document-ingest-input.js +132 -0
- package/dist/src/lib/document-ingest-input.js.map +1 -0
- package/dist/src/lib/document-ingest-rows.d.ts +137 -0
- package/dist/src/lib/document-ingest-rows.js +181 -0
- package/dist/src/lib/document-ingest-rows.js.map +1 -0
- package/dist/src/lib/document-ingest.d.ts +101 -0
- package/dist/src/lib/document-ingest.js +384 -0
- package/dist/src/lib/document-ingest.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +258 -0
- package/dist/src/lib/env-resolver-core.js +447 -0
- package/dist/src/lib/env-resolver-core.js.map +1 -0
- package/dist/src/lib/env-resolver.d.ts +99 -0
- package/dist/src/lib/env-resolver.js +153 -0
- package/dist/src/lib/env-resolver.js.map +1 -0
- package/dist/src/lib/fetch.d.ts +5 -0
- package/dist/src/lib/function-bundle.d.ts +147 -0
- package/dist/src/lib/function-bundle.js +341 -0
- package/dist/src/lib/function-bundle.js.map +1 -0
- package/dist/src/lib/function-collect.d.ts +123 -0
- package/dist/src/lib/function-collect.js +610 -0
- package/dist/src/lib/function-collect.js.map +1 -0
- package/dist/src/lib/function-db-types.d.ts +202 -0
- package/dist/src/lib/function-db-types.js +870 -0
- package/dist/src/lib/function-db-types.js.map +1 -0
- package/dist/src/lib/function-document-types.d.ts +144 -0
- package/dist/src/lib/function-document-types.js +370 -0
- package/dist/src/lib/function-document-types.js.map +1 -0
- package/dist/src/lib/function-grants-preflight.d.ts +64 -0
- package/dist/src/lib/function-grants-preflight.js +105 -0
- package/dist/src/lib/function-grants-preflight.js.map +1 -0
- package/dist/src/lib/function-log-lines.d.ts +76 -0
- package/dist/src/lib/function-log-lines.js +160 -0
- package/dist/src/lib/function-log-lines.js.map +1 -0
- package/dist/src/lib/function-log-row.d.ts +29 -0
- package/dist/src/lib/function-log-row.js +73 -0
- package/dist/src/lib/function-log-row.js.map +1 -0
- package/dist/src/lib/function-log-tail.d.ts +132 -0
- package/dist/src/lib/function-log-tail.js +262 -0
- package/dist/src/lib/function-log-tail.js.map +1 -0
- package/dist/src/lib/function-run.d.ts +289 -0
- package/dist/src/lib/function-run.js +389 -0
- package/dist/src/lib/function-run.js.map +1 -0
- package/dist/src/lib/function-schema-codegen.d.ts +143 -0
- package/dist/src/lib/function-schema-codegen.js +420 -0
- package/dist/src/lib/function-schema-codegen.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +459 -0
- package/dist/src/lib/function-sync.js +1258 -0
- package/dist/src/lib/function-sync.js.map +1 -0
- package/dist/src/lib/function-trigger-listing.d.ts +27 -0
- package/dist/src/lib/function-trigger-listing.js +70 -0
- package/dist/src/lib/function-trigger-listing.js.map +1 -0
- package/dist/src/lib/function-typecheck.d.ts +86 -0
- package/dist/src/lib/function-typecheck.js +370 -0
- package/dist/src/lib/function-typecheck.js.map +1 -0
- package/dist/src/lib/function-versions.d.ts +122 -0
- package/dist/src/lib/function-versions.js +182 -0
- package/dist/src/lib/function-versions.js.map +1 -0
- package/dist/src/lib/generated-allowlist.d.ts +28 -0
- package/dist/src/lib/generated-allowlist.js +281 -0
- package/dist/src/lib/generated-allowlist.js.map +1 -0
- package/dist/src/lib/generated-config-surfaces.d.ts +2936 -0
- package/dist/src/lib/generated-config-surfaces.js +10569 -0
- package/dist/src/lib/generated-config-surfaces.js.map +1 -0
- package/dist/src/lib/generated-sdk-types.d.ts +12 -0
- package/dist/src/lib/generated-sdk-types.js +13 -0
- package/dist/src/lib/generated-sdk-types.js.map +1 -0
- package/dist/src/lib/generated-template-lint.d.ts +212 -0
- package/dist/src/lib/generated-template-lint.js +624 -0
- package/dist/src/lib/generated-template-lint.js.map +1 -0
- package/dist/src/lib/init-adopt.d.ts +16 -0
- package/dist/src/lib/init-adopt.js +34 -0
- package/dist/src/lib/init-adopt.js.map +1 -0
- package/dist/src/lib/init-assets.d.ts +39 -0
- package/dist/src/lib/init-assets.js +97 -0
- package/dist/src/lib/init-assets.js.map +1 -0
- package/dist/src/lib/init-client-platforms.d.ts +14 -0
- package/dist/src/lib/init-client-platforms.js +71 -0
- package/dist/src/lib/init-client-platforms.js.map +1 -0
- package/dist/src/lib/init-config.d.ts +98 -0
- package/dist/src/lib/init-config.js +186 -0
- package/dist/src/lib/init-config.js.map +1 -0
- package/dist/src/lib/init-email-redirect-uris.d.ts +37 -0
- package/dist/src/lib/init-email-redirect-uris.js +46 -0
- package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
- package/dist/src/lib/init-ios-links.d.ts +91 -0
- package/dist/src/lib/init-ios-links.js +219 -0
- package/dist/src/lib/init-ios-links.js.map +1 -0
- package/dist/src/lib/init-plan.d.ts +80 -0
- package/dist/src/lib/init-plan.js +95 -0
- package/dist/src/lib/init-plan.js.map +1 -0
- package/dist/src/lib/init-production-env.d.ts +48 -0
- package/dist/src/lib/init-production-env.js +59 -0
- package/dist/src/lib/init-production-env.js.map +1 -0
- package/dist/src/lib/init-schema.d.ts +74 -0
- package/dist/src/lib/init-schema.js +358 -0
- package/dist/src/lib/init-schema.js.map +1 -0
- package/dist/src/lib/init-xcode.d.ts +34 -0
- package/dist/src/lib/init-xcode.js +138 -0
- package/dist/src/lib/init-xcode.js.map +1 -0
- package/dist/src/lib/integration-request-config.d.ts +30 -0
- package/dist/src/lib/integration-request-config.js +145 -0
- package/dist/src/lib/integration-request-config.js.map +1 -0
- package/dist/src/lib/integration-selector.d.ts +42 -0
- package/dist/src/lib/integration-selector.js +46 -0
- package/dist/src/lib/integration-selector.js.map +1 -0
- package/dist/src/lib/ios-app-id.d.ts +34 -0
- package/dist/src/lib/ios-app-id.js +69 -0
- package/dist/src/lib/ios-app-id.js.map +1 -0
- package/dist/src/lib/list-options.d.ts +68 -0
- package/dist/src/lib/list-options.js +89 -0
- package/dist/src/lib/list-options.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +55 -0
- package/dist/src/lib/local-state.js +167 -0
- package/dist/src/lib/local-state.js.map +1 -0
- package/dist/src/lib/local-test-cases.d.ts +63 -0
- package/dist/src/lib/local-test-cases.js +136 -0
- package/dist/src/lib/local-test-cases.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +715 -0
- package/dist/src/lib/log-inspection.js +816 -0
- package/dist/src/lib/log-inspection.js.map +1 -0
- package/dist/src/lib/logout-admin-session.d.ts +33 -0
- package/dist/src/lib/logout-admin-session.js +70 -0
- package/dist/src/lib/logout-admin-session.js.map +1 -0
- package/dist/src/lib/migration-nag.d.ts +49 -0
- package/dist/src/lib/migration-nag.js +163 -0
- package/dist/src/lib/migration-nag.js.map +1 -0
- package/dist/src/lib/object-status-filter.d.ts +22 -0
- package/dist/src/lib/object-status-filter.js +45 -0
- package/dist/src/lib/object-status-filter.js.map +1 -0
- package/dist/src/lib/output.d.ts +124 -0
- package/dist/src/lib/output.js +219 -8
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/package-manager.d.ts +140 -0
- package/dist/src/lib/package-manager.js +305 -0
- package/dist/src/lib/package-manager.js.map +1 -0
- package/dist/src/lib/paginate.d.ts +98 -0
- package/dist/src/lib/paginate.js +112 -0
- package/dist/src/lib/paginate.js.map +1 -0
- package/dist/src/lib/platform-owned.d.ts +63 -0
- package/dist/src/lib/platform-owned.js +85 -0
- package/dist/src/lib/platform-owned.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +122 -0
- package/dist/src/lib/project-config.js +244 -0
- package/dist/src/lib/project-config.js.map +1 -0
- package/dist/src/lib/prompt-cost-format.d.ts +11 -0
- package/dist/src/lib/prompt-cost-format.js +41 -0
- package/dist/src/lib/prompt-cost-format.js.map +1 -0
- package/dist/src/lib/prompt-schema-codegen.d.ts +147 -0
- package/dist/src/lib/prompt-schema-codegen.js +462 -0
- package/dist/src/lib/prompt-schema-codegen.js.map +1 -0
- package/dist/src/lib/query-operators.d.ts +43 -0
- package/dist/src/lib/query-operators.js +80 -0
- package/dist/src/lib/query-operators.js.map +1 -0
- package/dist/src/lib/record-filter.d.ts +18 -0
- package/dist/src/lib/record-filter.js +55 -0
- package/dist/src/lib/record-filter.js.map +1 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +73 -0
- package/dist/src/lib/refresh-admin-credentials.js +123 -0
- package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
- package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
- package/dist/src/lib/resolve-init-dev-port.js +55 -0
- package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
- package/dist/src/lib/resolve-init-server.d.ts +64 -0
- package/dist/src/lib/resolve-init-server.js +77 -0
- package/dist/src/lib/resolve-init-server.js.map +1 -0
- package/dist/src/lib/resolve-owner.d.ts +19 -0
- package/dist/src/lib/resolve-owner.js +20 -0
- package/dist/src/lib/resolve-owner.js.map +1 -0
- package/dist/src/lib/resolve-platform.d.ts +74 -0
- package/dist/src/lib/resolve-platform.js +105 -0
- package/dist/src/lib/resolve-platform.js.map +1 -0
- package/dist/src/lib/run-status.d.ts +19 -0
- package/dist/src/lib/run-status.generated.d.ts +39 -0
- package/dist/src/lib/run-status.generated.js +66 -0
- package/dist/src/lib/run-status.generated.js.map +1 -0
- package/dist/src/lib/run-status.js +19 -0
- package/dist/src/lib/run-status.js.map +1 -0
- package/dist/src/lib/server-text-normalization.d.ts +51 -0
- package/dist/src/lib/server-text-normalization.js +90 -0
- package/dist/src/lib/server-text-normalization.js.map +1 -0
- package/dist/src/lib/server-url.d.ts +22 -0
- package/dist/src/lib/server-url.js +33 -0
- package/dist/src/lib/server-url.js.map +1 -0
- package/dist/src/lib/signing-secret-status.d.ts +81 -0
- package/dist/src/lib/signing-secret-status.js +116 -0
- package/dist/src/lib/signing-secret-status.js.map +1 -0
- package/dist/src/lib/skill-installer.d.ts +71 -0
- package/dist/src/lib/skill-installer.js +441 -0
- package/dist/src/lib/skill-installer.js.map +1 -0
- package/dist/src/lib/snapshot-audit-source.d.ts +45 -0
- package/dist/src/lib/snapshot-audit-source.js +58 -0
- package/dist/src/lib/snapshot-audit-source.js.map +1 -0
- package/dist/src/lib/snapshot-audit-store.d.ts +52 -0
- package/dist/src/lib/snapshot-audit-store.js +196 -0
- package/dist/src/lib/snapshot-audit-store.js.map +1 -0
- package/dist/src/lib/snapshot-audit.d.ts +207 -0
- package/dist/src/lib/snapshot-audit.js +431 -0
- package/dist/src/lib/snapshot-audit.js.map +1 -0
- package/dist/src/lib/snapshot-build-rows.d.ts +60 -0
- package/dist/src/lib/snapshot-build-rows.js +87 -0
- package/dist/src/lib/snapshot-build-rows.js.map +1 -0
- package/dist/src/lib/snapshot-build.d.ts +50 -0
- package/dist/src/lib/snapshot-build.js +111 -0
- package/dist/src/lib/snapshot-build.js.map +1 -0
- package/dist/src/lib/snapshot-manifest-layout.d.ts +61 -0
- package/dist/src/lib/snapshot-manifest-layout.js +70 -0
- package/dist/src/lib/snapshot-manifest-layout.js.map +1 -0
- package/dist/src/lib/snapshots.d.ts +98 -0
- package/dist/src/lib/snapshots.js +294 -0
- package/dist/src/lib/snapshots.js.map +1 -0
- package/dist/src/lib/step-run-table.d.ts +43 -0
- package/dist/src/lib/step-run-table.js +129 -0
- package/dist/src/lib/step-run-table.js.map +1 -0
- package/dist/src/lib/storage-pending-retry.d.ts +26 -0
- package/dist/src/lib/storage-pending-retry.js +42 -0
- package/dist/src/lib/storage-pending-retry.js.map +1 -0
- package/dist/src/lib/swift-codegen/agentGenerator.d.ts +42 -0
- package/dist/src/lib/swift-codegen/agentGenerator.js +118 -0
- package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/banners.d.ts +24 -0
- package/dist/src/lib/swift-codegen/banners.js +25 -0
- package/dist/src/lib/swift-codegen/banners.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js +926 -0
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
- package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
- package/dist/src/lib/swift-codegen/functionGenerator.d.ts +139 -0
- package/dist/src/lib/swift-codegen/functionGenerator.js +462 -0
- package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -0
- package/dist/src/lib/swift-codegen/generator.d.ts +100 -0
- package/dist/src/lib/swift-codegen/generator.js +457 -0
- package/dist/src/lib/swift-codegen/generator.js.map +1 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +87 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js +661 -0
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
- package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
- package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
- package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
- package/dist/src/lib/sync-dir-selector.d.ts +21 -0
- package/dist/src/lib/sync-dir-selector.js +30 -0
- package/dist/src/lib/sync-dir-selector.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +128 -0
- package/dist/src/lib/sync-paths.js +195 -0
- package/dist/src/lib/sync-paths.js.map +1 -0
- package/dist/src/lib/sync-resource-types.d.ts +563 -0
- package/dist/src/lib/sync-resource-types.js +1073 -0
- package/dist/src/lib/sync-resource-types.js.map +1 -0
- package/dist/src/lib/sync-selectors.d.ts +138 -0
- package/dist/src/lib/sync-selectors.js +289 -0
- package/dist/src/lib/sync-selectors.js.map +1 -0
- package/dist/src/lib/template.d.ts +170 -0
- package/dist/src/lib/template.js +484 -68
- package/dist/src/lib/template.js.map +1 -1
- package/dist/src/lib/test-case-file-names.d.ts +40 -0
- package/dist/src/lib/test-case-file-names.js +91 -0
- package/dist/src/lib/test-case-file-names.js.map +1 -0
- package/dist/src/lib/test-case-keys.d.ts +29 -0
- package/dist/src/lib/test-case-keys.js +55 -0
- package/dist/src/lib/test-case-keys.js.map +1 -0
- package/dist/src/lib/test-case-variables.d.ts +29 -0
- package/dist/src/lib/test-case-variables.js +71 -0
- package/dist/src/lib/test-case-variables.js.map +1 -0
- package/dist/src/lib/token-inject.d.ts +56 -0
- package/dist/src/lib/token-inject.js +204 -0
- package/dist/src/lib/token-inject.js.map +1 -0
- package/dist/src/lib/toml-database-config.d.ts +123 -0
- package/dist/src/lib/toml-database-config.js +544 -0
- package/dist/src/lib/toml-database-config.js.map +1 -0
- package/dist/src/lib/toml-metadata-config.d.ts +151 -0
- package/dist/src/lib/toml-metadata-config.js +476 -0
- package/dist/src/lib/toml-metadata-config.js.map +1 -0
- package/dist/src/lib/toml-native-form.d.ts +46 -0
- package/dist/src/lib/toml-native-form.js +78 -0
- package/dist/src/lib/toml-native-form.js.map +1 -0
- package/dist/src/lib/toml-params-validator.d.ts +129 -0
- package/dist/src/lib/toml-params-validator.js +298 -0
- package/dist/src/lib/toml-params-validator.js.map +1 -0
- package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
- package/dist/src/lib/toml-scalar-edit.js +283 -0
- package/dist/src/lib/toml-scalar-edit.js.map +1 -0
- package/dist/src/lib/user-selector.d.ts +24 -0
- package/dist/src/lib/user-selector.js +33 -0
- package/dist/src/lib/user-selector.js.map +1 -0
- package/dist/src/lib/version-check.d.ts +35 -0
- package/dist/src/lib/version-check.js +241 -0
- package/dist/src/lib/version-check.js.map +1 -0
- package/dist/src/lib/watch.d.ts +121 -0
- package/dist/src/lib/watch.js +169 -0
- package/dist/src/lib/watch.js.map +1 -0
- package/dist/src/lib/web-url.d.ts +40 -0
- package/dist/src/lib/web-url.js +76 -0
- package/dist/src/lib/web-url.js.map +1 -0
- package/dist/src/lib/webhook-deliver.d.ts +209 -0
- package/dist/src/lib/webhook-deliver.js +519 -0
- package/dist/src/lib/webhook-deliver.js.map +1 -0
- package/dist/src/lib/workflow-apply.d.ts +110 -0
- package/dist/src/lib/workflow-apply.js +164 -0
- package/dist/src/lib/workflow-apply.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
- package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +96 -0
- package/dist/src/lib/workflow-codegen/generator.js +361 -0
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +94 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js +76 -0
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
- package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
- package/dist/src/lib/workflow-codegen/naming.js +81 -0
- package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +80 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js +303 -0
- package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
- package/dist/src/lib/workflow-config-apply.d.ts +70 -0
- package/dist/src/lib/workflow-config-apply.js +137 -0
- package/dist/src/lib/workflow-config-apply.js.map +1 -0
- package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
- package/dist/src/lib/workflow-config-sidecar.js +96 -0
- package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
- package/dist/src/lib/workflow-defaults.d.ts +29 -0
- package/dist/src/lib/workflow-defaults.js +41 -0
- package/dist/src/lib/workflow-defaults.js.map +1 -0
- package/dist/src/lib/workflow-fragments.d.ts +64 -0
- package/dist/src/lib/workflow-fragments.js +342 -0
- package/dist/src/lib/workflow-fragments.js.map +1 -0
- package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
- package/dist/src/lib/workflow-include-preserve.js +286 -0
- package/dist/src/lib/workflow-include-preserve.js.map +1 -0
- package/dist/src/lib/workflow-payload.d.ts +98 -0
- package/dist/src/lib/workflow-payload.js +178 -0
- package/dist/src/lib/workflow-payload.js.map +1 -0
- package/dist/src/lib/workflow-toml-validator.d.ts +211 -0
- package/dist/src/lib/workflow-toml-validator.js +770 -0
- package/dist/src/lib/workflow-toml-validator.js.map +1 -0
- package/dist/src/lib/workflow-usage.d.ts +196 -0
- package/dist/src/lib/workflow-usage.js +310 -0
- package/dist/src/lib/workflow-usage.js.map +1 -0
- package/dist/src/types/index.d.ts +591 -0
- package/dist/src/validators.d.ts +65 -0
- package/dist/src/validators.js +64 -0
- package/dist/src/validators.js.map +1 -0
- package/package.json +34 -9
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The step table — one renderer, two commands.
|
|
3
|
+
*
|
|
4
|
+
* Extracted in #3348, when `functions runs steps` joined `workflows runs
|
|
5
|
+
* steps`. A durable function run's steps are the SAME rows in the same
|
|
6
|
+
* envelope, and the issue's ask is that they read "in the same shape a DSL
|
|
7
|
+
* workflow run's steps come back in": two hand-kept tables would have made that
|
|
8
|
+
* a resemblance, and this makes it the same code.
|
|
9
|
+
*
|
|
10
|
+
* `annotateStepGaps` (#1367) and `stepRunDisplayDurationMs` (#2771) moved here
|
|
11
|
+
* with it and are re-exported from `commands/workflows.ts`, which is where they
|
|
12
|
+
* were first exported for testability.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* #2771 — how long a step row has been going.
|
|
16
|
+
*
|
|
17
|
+
* A step that is still executing is persisted with status `running` and a
|
|
18
|
+
* `durationMs` of 0 (the column is required; the real value is written when the
|
|
19
|
+
* step ends). Printing that 0 hides the one number that matters while a run is
|
|
20
|
+
* in flight — how long the current step has been stuck — so a running row is
|
|
21
|
+
* measured from its `startedAt` instead. Finished rows keep their stored
|
|
22
|
+
* duration.
|
|
23
|
+
*/
|
|
24
|
+
export declare function stepRunDisplayDurationMs(step: any, now?: number): number | null;
|
|
25
|
+
/**
|
|
26
|
+
* #1367 — annotate step-run rows with the inter-step gap: the wall-clock time
|
|
27
|
+
* between the previous step's `endedAt` and this step's `startedAt`. Sorts by
|
|
28
|
+
* `startedAt` when every row has a parseable one (tie-break `stepIndex`),
|
|
29
|
+
* otherwise by `stepIndex` for the whole list — the ordering mode must be
|
|
30
|
+
* chosen once for all rows, not per pair: a per-pair timestamp-vs-index
|
|
31
|
+
* fallback is not transitive when some rows lack a timestamp (A<B by index,
|
|
32
|
+
* B<C by index, C<A by time), and a non-transitive comparator leaves
|
|
33
|
+
* Array.prototype.sort free to return an arbitrary order, computing gaps
|
|
34
|
+
* against the wrong predecessor. The first step has no predecessor, so its
|
|
35
|
+
* `gapMs` is `null`. A gap is only meaningful when both adjacent timestamps
|
|
36
|
+
* parse and the gap is positive. When the immediate predecessor lacks a valid
|
|
37
|
+
* `endedAt`, the gap is left `null` rather than measured from an older,
|
|
38
|
+
* non-adjacent step — otherwise a later step could raise a false stall
|
|
39
|
+
* warning against a step it does not actually follow.
|
|
40
|
+
*/
|
|
41
|
+
export declare function annotateStepGaps(steps: any[]): any[];
|
|
42
|
+
/** The step table both `runs steps` verbs print. */
|
|
43
|
+
export declare function renderStepRunTable(items: any[]): string;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The step table — one renderer, two commands.
|
|
3
|
+
*
|
|
4
|
+
* Extracted in #3348, when `functions runs steps` joined `workflows runs
|
|
5
|
+
* steps`. A durable function run's steps are the SAME rows in the same
|
|
6
|
+
* envelope, and the issue's ask is that they read "in the same shape a DSL
|
|
7
|
+
* workflow run's steps come back in": two hand-kept tables would have made that
|
|
8
|
+
* a resemblance, and this makes it the same code.
|
|
9
|
+
*
|
|
10
|
+
* `annotateStepGaps` (#1367) and `stepRunDisplayDurationMs` (#2771) moved here
|
|
11
|
+
* with it and are re-exported from `commands/workflows.ts`, which is where they
|
|
12
|
+
* were first exported for testability.
|
|
13
|
+
*/
|
|
14
|
+
import chalk from "chalk";
|
|
15
|
+
import { formatTable, formatDuration } from "./output.js";
|
|
16
|
+
/**
|
|
17
|
+
* #2771 — how long a step row has been going.
|
|
18
|
+
*
|
|
19
|
+
* A step that is still executing is persisted with status `running` and a
|
|
20
|
+
* `durationMs` of 0 (the column is required; the real value is written when the
|
|
21
|
+
* step ends). Printing that 0 hides the one number that matters while a run is
|
|
22
|
+
* in flight — how long the current step has been stuck — so a running row is
|
|
23
|
+
* measured from its `startedAt` instead. Finished rows keep their stored
|
|
24
|
+
* duration.
|
|
25
|
+
*/
|
|
26
|
+
export function stepRunDisplayDurationMs(step, now = Date.now()) {
|
|
27
|
+
const stored = typeof step?.durationMs === "number" ? step.durationMs : null;
|
|
28
|
+
if (step?.status !== "running")
|
|
29
|
+
return stored;
|
|
30
|
+
const started = step?.startedAt ? new Date(step.startedAt).getTime() : NaN;
|
|
31
|
+
if (Number.isNaN(started))
|
|
32
|
+
return stored;
|
|
33
|
+
return Math.max(0, now - started);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* #1367 — annotate step-run rows with the inter-step gap: the wall-clock time
|
|
37
|
+
* between the previous step's `endedAt` and this step's `startedAt`. Sorts by
|
|
38
|
+
* `startedAt` when every row has a parseable one (tie-break `stepIndex`),
|
|
39
|
+
* otherwise by `stepIndex` for the whole list — the ordering mode must be
|
|
40
|
+
* chosen once for all rows, not per pair: a per-pair timestamp-vs-index
|
|
41
|
+
* fallback is not transitive when some rows lack a timestamp (A<B by index,
|
|
42
|
+
* B<C by index, C<A by time), and a non-transitive comparator leaves
|
|
43
|
+
* Array.prototype.sort free to return an arbitrary order, computing gaps
|
|
44
|
+
* against the wrong predecessor. The first step has no predecessor, so its
|
|
45
|
+
* `gapMs` is `null`. A gap is only meaningful when both adjacent timestamps
|
|
46
|
+
* parse and the gap is positive. When the immediate predecessor lacks a valid
|
|
47
|
+
* `endedAt`, the gap is left `null` rather than measured from an older,
|
|
48
|
+
* non-adjacent step — otherwise a later step could raise a false stall
|
|
49
|
+
* warning against a step it does not actually follow.
|
|
50
|
+
*/
|
|
51
|
+
export function annotateStepGaps(steps) {
|
|
52
|
+
const rows = [...(steps || [])];
|
|
53
|
+
const allTimed = rows.every((r) => r?.startedAt && !Number.isNaN(new Date(r.startedAt).getTime()));
|
|
54
|
+
rows.sort((a, b) => {
|
|
55
|
+
if (allTimed) {
|
|
56
|
+
const sa = new Date(a.startedAt).getTime();
|
|
57
|
+
const sb = new Date(b.startedAt).getTime();
|
|
58
|
+
if (sa !== sb)
|
|
59
|
+
return sa - sb;
|
|
60
|
+
}
|
|
61
|
+
return (a?.stepIndex ?? 0) - (b?.stepIndex ?? 0);
|
|
62
|
+
});
|
|
63
|
+
let prevEnded = null;
|
|
64
|
+
for (const row of rows) {
|
|
65
|
+
const started = row?.startedAt ? new Date(row.startedAt).getTime() : NaN;
|
|
66
|
+
if (prevEnded != null && !Number.isNaN(started)) {
|
|
67
|
+
const gap = started - prevEnded;
|
|
68
|
+
row.gapMs = gap > 0 ? gap : 0;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
row.gapMs = null;
|
|
72
|
+
}
|
|
73
|
+
// Only genuinely adjacent steps yield a gap: if this step lacks a valid
|
|
74
|
+
// `endedAt`, clear the predecessor so the NEXT step's gap is left null
|
|
75
|
+
// instead of being measured from a non-adjacent earlier step.
|
|
76
|
+
const ended = row?.endedAt ? new Date(row.endedAt).getTime() : NaN;
|
|
77
|
+
prevEnded = Number.isNaN(ended) ? null : ended;
|
|
78
|
+
}
|
|
79
|
+
return rows;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* #1367 — inter-step gap: idle time between one step ending and the next
|
|
83
|
+
* starting. Only surfaced above a 1s threshold so normal back-to-back steps
|
|
84
|
+
* stay quiet; a large gap flags a mid-run stall.
|
|
85
|
+
*/
|
|
86
|
+
const STEP_GAP_THRESHOLD_MS = 1000;
|
|
87
|
+
/** The step table both `runs steps` verbs print. */
|
|
88
|
+
export function renderStepRunTable(items) {
|
|
89
|
+
// #2771 — an in-flight run also returns the step executing right now (status
|
|
90
|
+
// `running`, duration not written yet). Show its elapsed time so a step stuck
|
|
91
|
+
// retrying is visible as such.
|
|
92
|
+
const rows = annotateStepGaps(items).map((row) => ({
|
|
93
|
+
...row,
|
|
94
|
+
displayDurationMs: stepRunDisplayDurationMs(row),
|
|
95
|
+
}));
|
|
96
|
+
return formatTable(rows, [
|
|
97
|
+
{ header: "STEP", key: "stepId" },
|
|
98
|
+
{ header: "KIND", key: "stepKind" },
|
|
99
|
+
{
|
|
100
|
+
header: "STATUS",
|
|
101
|
+
key: "status",
|
|
102
|
+
format: (v) => v === "completed" ? chalk.green(v) :
|
|
103
|
+
v === "failed" ? chalk.red(v) :
|
|
104
|
+
v === "skipped" ? chalk.gray(v) :
|
|
105
|
+
v === "error_captured" ? chalk.yellow(v) :
|
|
106
|
+
// #2771 — the step executing right now.
|
|
107
|
+
v === "running" ? chalk.cyan(v) : v,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
header: "GAP",
|
|
111
|
+
key: "gapMs",
|
|
112
|
+
format: (v) => typeof v === "number" && v >= STEP_GAP_THRESHOLD_MS
|
|
113
|
+
? chalk.yellow(formatDuration(v))
|
|
114
|
+
: chalk.dim("-"),
|
|
115
|
+
},
|
|
116
|
+
{ header: "DURATION", key: "displayDurationMs", format: formatDuration },
|
|
117
|
+
{
|
|
118
|
+
header: "TOKENS",
|
|
119
|
+
key: "totalTokens",
|
|
120
|
+
format: (v) => v ? String(v).replace(/\B(?=(\d{3})+(?!\d))/g, ",") : "-",
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
header: "ERROR",
|
|
124
|
+
key: "error",
|
|
125
|
+
format: (v) => v ? (v.length > 60 ? v.slice(0, 57) + "..." : v) : "",
|
|
126
|
+
},
|
|
127
|
+
]);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=step-run-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-run-table.js","sourceRoot":"","sources":["../../../src/lib/step-run-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #3835 — ask again when the server could not confirm its OWN write.
|
|
3
|
+
*
|
|
4
|
+
* A create whose row dynamo-bao wrote but could not read back, and whose
|
|
5
|
+
* consistent confirm read could not vouch for it either, is answered
|
|
6
|
+
* `503 STORAGE_CONSISTENCY_PENDING` (`src/services/readback-confirm.ts`): the
|
|
7
|
+
* write may well have landed, and nothing about the request was wrong. A push
|
|
8
|
+
* that records that as "could not be applied" exits 1 over a change that is
|
|
9
|
+
* very likely on the server already.
|
|
10
|
+
*
|
|
11
|
+
* Only that typed code is retried — a client that retries on it must not also
|
|
12
|
+
* retry on everything else a 503 covers — and only a bounded number of times,
|
|
13
|
+
* after which the transient itself is what the caller reports.
|
|
14
|
+
*/
|
|
15
|
+
/** The code the server's read-back transient carries. */
|
|
16
|
+
export declare const STORAGE_CONSISTENCY_PENDING = "STORAGE_CONSISTENCY_PENDING";
|
|
17
|
+
export declare function isStorageConsistencyPending(err: unknown): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Run `fn`, and run it again while it fails with the storage-consistency
|
|
20
|
+
* transient. Any other failure — including the 409 a retried create meets when
|
|
21
|
+
* its first attempt's row holds the key — is thrown to the caller unchanged.
|
|
22
|
+
*/
|
|
23
|
+
export declare function retryOnStoragePending<T>(fn: () => Promise<T>, opts?: {
|
|
24
|
+
attempts?: number;
|
|
25
|
+
sleep?: (ms: number) => Promise<void>;
|
|
26
|
+
}): Promise<T>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #3835 — ask again when the server could not confirm its OWN write.
|
|
3
|
+
*
|
|
4
|
+
* A create whose row dynamo-bao wrote but could not read back, and whose
|
|
5
|
+
* consistent confirm read could not vouch for it either, is answered
|
|
6
|
+
* `503 STORAGE_CONSISTENCY_PENDING` (`src/services/readback-confirm.ts`): the
|
|
7
|
+
* write may well have landed, and nothing about the request was wrong. A push
|
|
8
|
+
* that records that as "could not be applied" exits 1 over a change that is
|
|
9
|
+
* very likely on the server already.
|
|
10
|
+
*
|
|
11
|
+
* Only that typed code is retried — a client that retries on it must not also
|
|
12
|
+
* retry on everything else a 503 covers — and only a bounded number of times,
|
|
13
|
+
* after which the transient itself is what the caller reports.
|
|
14
|
+
*/
|
|
15
|
+
import { ApiError } from "./api-client.js";
|
|
16
|
+
/** The code the server's read-back transient carries. */
|
|
17
|
+
export const STORAGE_CONSISTENCY_PENDING = "STORAGE_CONSISTENCY_PENDING";
|
|
18
|
+
const DEFAULT_ATTEMPTS = 3;
|
|
19
|
+
const BASE_DELAY_MS = 250;
|
|
20
|
+
export function isStorageConsistencyPending(err) {
|
|
21
|
+
return err instanceof ApiError && err.code === STORAGE_CONSISTENCY_PENDING;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Run `fn`, and run it again while it fails with the storage-consistency
|
|
25
|
+
* transient. Any other failure — including the 409 a retried create meets when
|
|
26
|
+
* its first attempt's row holds the key — is thrown to the caller unchanged.
|
|
27
|
+
*/
|
|
28
|
+
export async function retryOnStoragePending(fn, opts = {}) {
|
|
29
|
+
const attempts = Math.max(1, opts.attempts ?? DEFAULT_ATTEMPTS);
|
|
30
|
+
const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
31
|
+
for (let attempt = 1;; attempt++) {
|
|
32
|
+
try {
|
|
33
|
+
return await fn();
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
if (attempt >= attempts || !isStorageConsistencyPending(err))
|
|
37
|
+
throw err;
|
|
38
|
+
await sleep(BASE_DELAY_MS * 2 ** (attempt - 1));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=storage-pending-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-pending-retry.js","sourceRoot":"","sources":["../../../src/lib/storage-pending-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,yDAAyD;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,OAAO,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,2BAA2B,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAoB,EACpB,OAAqE,EAAE;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;IAChE,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,IAAI,QAAQ,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YACxE,MAAM,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Swift half of an agent prompt's client-side types — #3798.
|
|
3
|
+
*
|
|
4
|
+
* `functions codegen --lang swift` writes one `<key>.agent.generated.swift`
|
|
5
|
+
* per `kind = "agent"` prompt, beside the function invokers, carrying:
|
|
6
|
+
*
|
|
7
|
+
* - `<Key>AgentVariables` — the session's variables, from `[prompt].inputSchema`;
|
|
8
|
+
* - `<Key>Tool<Name>Input` / `<Key>Tool<Name>Output` for every CLIENT tool
|
|
9
|
+
* (a server tool's schemas are its function's, typed in that function's
|
|
10
|
+
* own file);
|
|
11
|
+
* - `<Key>Event<Name>` for every event kind; and
|
|
12
|
+
* - `<Key>Agent`, a namespace enum with the key a session is created with
|
|
13
|
+
* and the declared client-tool and event names.
|
|
14
|
+
*
|
|
15
|
+
* ── Nothing about the agent is re-derived here ───────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* Names, schemas and the declaration's defaults all come from
|
|
18
|
+
* `describePromptSchema` — the IR the TypeScript artifact reads, itself read
|
|
19
|
+
* through `normalizeAgentDeclaration` — so the two clients can never disagree
|
|
20
|
+
* about what an agent's contract is. Only Swift rendering, through the shared
|
|
21
|
+
* `renderSwiftRootType`, happens in this file.
|
|
22
|
+
*
|
|
23
|
+
* Written in the functions run's own `writeOrCheckGeneratedFiles` call
|
|
24
|
+
* (`generateFunctionSwiftTypes`), which owns both banners: a removed agent's
|
|
25
|
+
* file is swept, `--check` reports a stale one, and a file another generator
|
|
26
|
+
* stamped is never overwritten.
|
|
27
|
+
*/
|
|
28
|
+
import { type PromptSchemaSource } from "../prompt-schema-codegen.js";
|
|
29
|
+
import { AGENT_SWIFT_BANNER_PREFIX } from "./banners.js";
|
|
30
|
+
export { AGENT_SWIFT_BANNER_PREFIX };
|
|
31
|
+
/** The file an agent prompt's Swift types are written to: `<key>.agent.generated.swift`. */
|
|
32
|
+
export declare const AGENT_SWIFT_FILE_SUFFIX = ".agent.generated.swift";
|
|
33
|
+
/**
|
|
34
|
+
* Render the full `<key>.agent.generated.swift` content for one agent prompt.
|
|
35
|
+
* Pure — exported so tests can assert on the string directly. Throws a
|
|
36
|
+
* `SwiftCodegenError` naming the file for a prompt that is not an agent.
|
|
37
|
+
*/
|
|
38
|
+
export declare function renderAgentSwiftFile(source: PromptSchemaSource): {
|
|
39
|
+
key: string;
|
|
40
|
+
content: string;
|
|
41
|
+
symbols: string[];
|
|
42
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Swift half of an agent prompt's client-side types — #3798.
|
|
3
|
+
*
|
|
4
|
+
* `functions codegen --lang swift` writes one `<key>.agent.generated.swift`
|
|
5
|
+
* per `kind = "agent"` prompt, beside the function invokers, carrying:
|
|
6
|
+
*
|
|
7
|
+
* - `<Key>AgentVariables` — the session's variables, from `[prompt].inputSchema`;
|
|
8
|
+
* - `<Key>Tool<Name>Input` / `<Key>Tool<Name>Output` for every CLIENT tool
|
|
9
|
+
* (a server tool's schemas are its function's, typed in that function's
|
|
10
|
+
* own file);
|
|
11
|
+
* - `<Key>Event<Name>` for every event kind; and
|
|
12
|
+
* - `<Key>Agent`, a namespace enum with the key a session is created with
|
|
13
|
+
* and the declared client-tool and event names.
|
|
14
|
+
*
|
|
15
|
+
* ── Nothing about the agent is re-derived here ───────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* Names, schemas and the declaration's defaults all come from
|
|
18
|
+
* `describePromptSchema` — the IR the TypeScript artifact reads, itself read
|
|
19
|
+
* through `normalizeAgentDeclaration` — so the two clients can never disagree
|
|
20
|
+
* about what an agent's contract is. Only Swift rendering, through the shared
|
|
21
|
+
* `renderSwiftRootType`, happens in this file.
|
|
22
|
+
*
|
|
23
|
+
* Written in the functions run's own `writeOrCheckGeneratedFiles` call
|
|
24
|
+
* (`generateFunctionSwiftTypes`), which owns both banners: a removed agent's
|
|
25
|
+
* file is swept, `--check` reports a stale one, and a file another generator
|
|
26
|
+
* stamped is never overwritten.
|
|
27
|
+
*/
|
|
28
|
+
import { fingerprintToml } from "../db-codegen/dbFingerprint.js";
|
|
29
|
+
import { describePromptSchema, } from "../prompt-schema-codegen.js";
|
|
30
|
+
import { renderSwiftRootType, SwiftCodegenError } from "./schemaToSwift.js";
|
|
31
|
+
import { swiftKeyLiteral } from "./generator.js";
|
|
32
|
+
import { AGENT_SWIFT_BANNER_PREFIX } from "./banners.js";
|
|
33
|
+
import { parseTopLevelSwiftSymbols } from "./siblingSymbols.js";
|
|
34
|
+
export { AGENT_SWIFT_BANNER_PREFIX };
|
|
35
|
+
/** The file an agent prompt's Swift types are written to: `<key>.agent.generated.swift`. */
|
|
36
|
+
export const AGENT_SWIFT_FILE_SUFFIX = ".agent.generated.swift";
|
|
37
|
+
const INDENT = " ";
|
|
38
|
+
/** A Swift array literal of the declared names, in declaration order. */
|
|
39
|
+
function nameList(names) {
|
|
40
|
+
return `[${names.map(swiftKeyLiteral).join(", ")}]`;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Render the full `<key>.agent.generated.swift` content for one agent prompt.
|
|
44
|
+
* Pure — exported so tests can assert on the string directly. Throws a
|
|
45
|
+
* `SwiftCodegenError` naming the file for a prompt that is not an agent.
|
|
46
|
+
*/
|
|
47
|
+
export function renderAgentSwiftFile(source) {
|
|
48
|
+
const prompt = describePromptSchema(source);
|
|
49
|
+
const agent = prompt.agent;
|
|
50
|
+
if (!agent) {
|
|
51
|
+
throw new SwiftCodegenError(`swift agent codegen: ${prompt.fileLabel} is not a kind = "agent" prompt`, { sourceFile: prompt.fileLabel });
|
|
52
|
+
}
|
|
53
|
+
const sourceFile = prompt.fileLabel;
|
|
54
|
+
const rendered = [
|
|
55
|
+
{
|
|
56
|
+
path: "inputSchema",
|
|
57
|
+
decl: renderSwiftRootType(agent.variablesTypeName, agent.inputSchema, { sourceFile }),
|
|
58
|
+
},
|
|
59
|
+
...agent.clientTools.flatMap((tool) => [
|
|
60
|
+
{
|
|
61
|
+
path: `tools.${tool.name}.inputSchema`,
|
|
62
|
+
decl: renderSwiftRootType(tool.input.typeName, tool.input.schema, { sourceFile }),
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
path: `tools.${tool.name}.outputSchema`,
|
|
66
|
+
decl: renderSwiftRootType(tool.output.typeName, tool.output.schema, { sourceFile }),
|
|
67
|
+
},
|
|
68
|
+
]),
|
|
69
|
+
...agent.events.map((event) => ({
|
|
70
|
+
path: `events.${event.name}.schema`,
|
|
71
|
+
decl: renderSwiftRootType(event.typeName, event.schema, { sourceFile }),
|
|
72
|
+
})),
|
|
73
|
+
];
|
|
74
|
+
// CSO-3798-002 — a schema's helper types are top-level too (an array of
|
|
75
|
+
// objects under `data` declares `<Key>EventDataItem`), so two of one agent's
|
|
76
|
+
// schemas can declare the same symbol. The run-scoped registry only compares
|
|
77
|
+
// owners, so the file is checked against itself here, naming both paths.
|
|
78
|
+
const symbolPath = new Map();
|
|
79
|
+
for (const { path, decl } of rendered) {
|
|
80
|
+
for (const symbol of new Set(parseTopLevelSwiftSymbols(decl))) {
|
|
81
|
+
const other = symbolPath.get(symbol);
|
|
82
|
+
if (other !== undefined) {
|
|
83
|
+
throw new SwiftCodegenError(`swift agent codegen: ${sourceFile}: \`${other}\` and \`${path}\` both ` +
|
|
84
|
+
`produce Swift symbol "${symbol}", which would be declared twice in ` +
|
|
85
|
+
`one file — rename one so the two differ after Swift normalization`, { sourceFile });
|
|
86
|
+
}
|
|
87
|
+
symbolPath.set(symbol, path);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const decls = rendered.map((entry) => entry.decl);
|
|
91
|
+
const namespace = [
|
|
92
|
+
`/// The \`${prompt.key}\` agent: the key a session is created with, and the`,
|
|
93
|
+
`/// client tools and event kinds it declares.`,
|
|
94
|
+
`public enum ${prompt.typeBaseName}Agent {`,
|
|
95
|
+
`${INDENT}public static let key = ${swiftKeyLiteral(prompt.key)}`,
|
|
96
|
+
`${INDENT}public static let clientToolNames: [String] = ${nameList(agent.clientTools.map((tool) => tool.name))}`,
|
|
97
|
+
`${INDENT}public static let eventNames: [String] = ${nameList(agent.events.map((event) => event.name))}`,
|
|
98
|
+
`}`,
|
|
99
|
+
].join("\n");
|
|
100
|
+
const banner = [
|
|
101
|
+
`${AGENT_SWIFT_BANNER_PREFIX}${sourceFile.replace(/^prompts\//, "")} — DO NOT EDIT.`,
|
|
102
|
+
"// Run `primitive functions codegen --lang swift` to regenerate.",
|
|
103
|
+
`// fingerprint: ${fingerprintToml(source.tomlContent)}`,
|
|
104
|
+
].join("\n");
|
|
105
|
+
// `JsBaoClient` for `JSONValue`, which an open schema renders to — the
|
|
106
|
+
// import the function invokers carry too.
|
|
107
|
+
const imports = ["import Foundation", "import JsBaoClient"].join("\n");
|
|
108
|
+
const content = [banner, imports, ...decls, namespace].join("\n\n") + "\n";
|
|
109
|
+
return {
|
|
110
|
+
key: prompt.key,
|
|
111
|
+
content,
|
|
112
|
+
// Read back off the rendered source, as the function emitter does
|
|
113
|
+
// (CR3344-001), so a nested helper type a schema declares is in the
|
|
114
|
+
// run-scoped registry too.
|
|
115
|
+
symbols: parseTopLevelSwiftSymbols(content),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=agentGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/agentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ownership banners the CLI's Swift generators stamp and guard against.
|
|
3
|
+
*
|
|
4
|
+
* Three generators now write `.generated.swift` files that may share one
|
|
5
|
+
* output directory — workflows, database types and (since #3344) server
|
|
6
|
+
* functions. Each one sweeps only the files carrying its OWN banner and
|
|
7
|
+
* refuses to overwrite a file carrying another's, so each has to name the
|
|
8
|
+
* other two. The functions banner lives here, with no imports of its own, so
|
|
9
|
+
* `generator.ts` and `dbGenerator.ts` can both name it without deepening the
|
|
10
|
+
* import cycle those two already have.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Banner prefix stamped at the top of every `functions codegen --lang swift`
|
|
14
|
+
* file. Distinct from the workflow and database prefixes (and from the Swift
|
|
15
|
+
* model codegen's `// Generated by swift-bao-codegen` header), so a shared
|
|
16
|
+
* output directory stays safe in every direction.
|
|
17
|
+
*/
|
|
18
|
+
export declare const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM functions/";
|
|
19
|
+
/**
|
|
20
|
+
* Banner prefix of an agent prompt's `<key>.agent.generated.swift` (#3798),
|
|
21
|
+
* written by the same `functions codegen --lang swift` run as the function
|
|
22
|
+
* invokers but from `prompts/`, so the two are told apart by content too.
|
|
23
|
+
*/
|
|
24
|
+
export declare const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ownership banners the CLI's Swift generators stamp and guard against.
|
|
3
|
+
*
|
|
4
|
+
* Three generators now write `.generated.swift` files that may share one
|
|
5
|
+
* output directory — workflows, database types and (since #3344) server
|
|
6
|
+
* functions. Each one sweeps only the files carrying its OWN banner and
|
|
7
|
+
* refuses to overwrite a file carrying another's, so each has to name the
|
|
8
|
+
* other two. The functions banner lives here, with no imports of its own, so
|
|
9
|
+
* `generator.ts` and `dbGenerator.ts` can both name it without deepening the
|
|
10
|
+
* import cycle those two already have.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Banner prefix stamped at the top of every `functions codegen --lang swift`
|
|
14
|
+
* file. Distinct from the workflow and database prefixes (and from the Swift
|
|
15
|
+
* model codegen's `// Generated by swift-bao-codegen` header), so a shared
|
|
16
|
+
* output directory stays safe in every direction.
|
|
17
|
+
*/
|
|
18
|
+
export const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM functions/";
|
|
19
|
+
/**
|
|
20
|
+
* Banner prefix of an agent prompt's `<key>.agent.generated.swift` (#3798),
|
|
21
|
+
* written by the same `functions codegen --lang swift` run as the function
|
|
22
|
+
* invokers but from `prompts/`, so the two are told apart by content too.
|
|
23
|
+
*/
|
|
24
|
+
export const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
|
|
25
|
+
//# sourceMappingURL=banners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `databases codegen --lang swift` orchestrator (issue #1547, Phase 4).
|
|
3
|
+
*
|
|
4
|
+
* The Swift counterpart of `db-codegen/dbGenerator.ts`. Reads the SAME synced
|
|
5
|
+
* `database-type-configs/*.toml` and emits ONE `<type>.generated.swift` per database
|
|
6
|
+
* type. Each file carries the type's record structs (read shape), per-op params
|
|
7
|
+
* structs (write shape), per-op result typealiases, and a typed `<Type>Ops`
|
|
8
|
+
* factory over the additive generic `executeOperation` overload on
|
|
9
|
+
* `DatabasesAPI` (the only published SDK surface for this generator).
|
|
10
|
+
*
|
|
11
|
+
* Design decisions realized (issue #1547):
|
|
12
|
+
* - Operation + record metadata (which ops exist, their params, their result
|
|
13
|
+
* descriptor, and per-model fields) is read from the SHARED `describeDbType`
|
|
14
|
+
* IR — the SAME source the TS renderer (`db-codegen/dbGenerator.ts`) reads.
|
|
15
|
+
* The Swift renderer reconstructs none of it (binding item 5), so the two
|
|
16
|
+
* clients can never disagree on a type's surface.
|
|
17
|
+
* - The generic result envelopes (`DBQueryResult<T>`, `DBMutationResult`, …)
|
|
18
|
+
* live in the JsBaoClient SDK, NOT emitted per file — a Swift package
|
|
19
|
+
* compiles all generated files into one module, so a per-file copy would
|
|
20
|
+
* collide. Generated files reference the SDK envelopes (mirrors how Phase 3
|
|
21
|
+
* put the workflow result envelopes in the SDK).
|
|
22
|
+
* - Swift has no analog of TS `Pick<M, …>` / `Partial<M>`, so a query op with
|
|
23
|
+
* a `pick`/`partial` projection types its rows as the open `JSONValue`
|
|
24
|
+
* rather than a narrowed record (the same Fork-4 "no clean analog →
|
|
25
|
+
* JSONValue" fallback the emitter uses for un-descended schema nodes). A
|
|
26
|
+
* `full` projection over a known record types as `DBQueryResult<Record>`.
|
|
27
|
+
* - Disk lifecycle (write / `--check` / orphan cleanup) delegates to the
|
|
28
|
+
* shared `writeOrCheckGeneratedFiles`, scoped by an ownership BANNER
|
|
29
|
+
* distinct from both the workflow Swift banner and the model codegen's, so
|
|
30
|
+
* a shared Swift output dir stays safe.
|
|
31
|
+
*/
|
|
32
|
+
import { type WriteOrCheckResult } from "../codegen-shared/generatedFiles.js";
|
|
33
|
+
import { type DbCodegenInput } from "../db-codegen/dbTypeIR.js";
|
|
34
|
+
/**
|
|
35
|
+
* Banner prefix stamped on every CLI-emitted database `.generated.swift` file.
|
|
36
|
+
* Distinct from both the workflow Swift banner (`// AUTO-GENERATED FROM
|
|
37
|
+
* workflows/`) and the model codegen's (`// Generated by swift-bao-codegen`),
|
|
38
|
+
* so none of the three generators' stale-sweeps ever deletes another's files
|
|
39
|
+
* when they share an output dir.
|
|
40
|
+
*/
|
|
41
|
+
export declare const DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-type-configs/";
|
|
42
|
+
/**
|
|
43
|
+
* The banner this generator stamped before issue #2760 renamed the source
|
|
44
|
+
* directory. RECOGNITION ONLY — nothing emits it.
|
|
45
|
+
*
|
|
46
|
+
* Ownership everywhere is `contents.startsWith(banner)`, so without this a file
|
|
47
|
+
* generated before the rename would match neither the db banner nor the
|
|
48
|
+
* workflow one: it would survive the db stale sweep as a stranger, stay
|
|
49
|
+
* invisible to the sibling-symbol scans, and be silently overwritten by
|
|
50
|
+
* `workflows codegen --lang swift` on a name collision instead of refused.
|
|
51
|
+
*/
|
|
52
|
+
export declare const LEGACY_DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-types/";
|
|
53
|
+
/** Both spellings, for every ownership check this generator performs. */
|
|
54
|
+
export declare const DB_SWIFT_BANNER_PREFIXES: string[];
|
|
55
|
+
export interface GenerateDbSwiftTypesOptions {
|
|
56
|
+
inputs: DbCodegenInput[];
|
|
57
|
+
/** Directory where the `<type>.generated.swift` files are written. */
|
|
58
|
+
outputDir: string;
|
|
59
|
+
/** `--check`: compare against disk, do not write. */
|
|
60
|
+
check?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Set when the run was filtered to a single database type. `inputs` is then a
|
|
63
|
+
* PARTIAL view, so orphan cleanup / stale detection is scoped to the filtered
|
|
64
|
+
* file. Mirrors the TS generator's `singleType`.
|
|
65
|
+
*/
|
|
66
|
+
singleType?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/** Swift record struct type name for a model (shared naming + Swift sanitize). */
|
|
69
|
+
export declare function dbRecordSwiftTypeName(modelName: string, className: string | undefined): string;
|
|
70
|
+
/**
|
|
71
|
+
* Namespace `enum` name for a database type (issue #1687). Every symbol a type
|
|
72
|
+
* emits is nested under `public enum <Type>` (`securities-ref` →
|
|
73
|
+
* `SecuritiesRef`), so two DB types can never collide on a shared op symbol.
|
|
74
|
+
* Reuses the same `structTypeName` sanitizer (keyword suffixing + digit-leading
|
|
75
|
+
* `_` guard) the old `<Type>Ops` derivation used, so the namespace name is a
|
|
76
|
+
* legal Swift type identifier.
|
|
77
|
+
*/
|
|
78
|
+
export declare function dbNamespaceName(databaseType: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Validate that a database type's derived namespace enum name is safe to emit,
|
|
81
|
+
* and return it. Throws a named `SwiftCodegenError` (with a rename hint) for
|
|
82
|
+
* the whole class of unsafe names a server-accepted database type can produce
|
|
83
|
+
* (#1687):
|
|
84
|
+
*
|
|
85
|
+
* 1. **Degenerate `_`** — a type with no retained identifier characters
|
|
86
|
+
* (empty after sanitize, or separator/emoji/punctuation-only, e.g. `--`,
|
|
87
|
+
* `🎉`) normalizes to `_` via `structTypeName`. Swift reserves `_` as the
|
|
88
|
+
* wildcard and rejects `public enum _` (Codex [P2]).
|
|
89
|
+
* 2. **Stdlib/SDK shadowing** — a name in `RESERVED_NAMESPACE_NAMES` shadows
|
|
90
|
+
* a type the generated body references unqualified (Codex [P1]).
|
|
91
|
+
*
|
|
92
|
+
* Leading-digit residue (`123` → `_123`) and Swift reserved words (`self` →
|
|
93
|
+
* `Self_`, `any` → `Any_`) are already lifted into legal, non-shadowing
|
|
94
|
+
* identifiers by `structTypeName` (digit-leading `_` guard + keyword suffix),
|
|
95
|
+
* so they need no rejection here — only names that survive that sanitizer as
|
|
96
|
+
* `_` or as a real type identifier remain unsafe. The two in-run / retained-
|
|
97
|
+
* sibling namespace-NAME collision guards (two database types whose names
|
|
98
|
+
* normalize to the SAME enum) live in `generateDbSwiftTypes`; this check
|
|
99
|
+
* covers the single-type unsafe-name class.
|
|
100
|
+
*/
|
|
101
|
+
export declare function assertSafeNamespaceName(databaseType: string, sourceFile: string): string;
|
|
102
|
+
/**
|
|
103
|
+
* Render the full `<type>.generated.swift` content for one database-type TOML.
|
|
104
|
+
* Pure — exported so tests can assert on the string directly. Throws on a Swift
|
|
105
|
+
* record type-name collision between two models (mirrors the TS collision guard).
|
|
106
|
+
*/
|
|
107
|
+
export declare function renderDbTypeSwiftFile(input: DbCodegenInput): string;
|
|
108
|
+
/**
|
|
109
|
+
* Run Swift database codegen end-to-end. One `<type>.generated.swift` per
|
|
110
|
+
* database type; delegates the disk lifecycle to the shared writer/checker with
|
|
111
|
+
* banner-scoped ownership so a shared Swift output dir stays safe.
|
|
112
|
+
*/
|
|
113
|
+
export declare function generateDbSwiftTypes(options: GenerateDbSwiftTypesOptions): Promise<WriteOrCheckResult>;
|