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,420 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema-typed codegen for server functions — #3281, project
|
|
3
|
+
* `server-functions` phase 4.
|
|
4
|
+
*
|
|
5
|
+
* The intent's "Schema-typed codegen on every push": `<Key>Input` and
|
|
6
|
+
* `<Key>Output` from the declared schemas, a handler helper so function code
|
|
7
|
+
* is typed from the declaration, and a typed per-key invoker. Two artifacts,
|
|
8
|
+
* both rendered from the same `functions/<key>.toml` and both regenerated by
|
|
9
|
+
* `config push`, `config pull` and `primitive functions codegen`:
|
|
10
|
+
*
|
|
11
|
+
* - `functions/primitive-function-types.d.ts` — every key's input and
|
|
12
|
+
* output types, and a `FunctionSchemas` augmentation keyed by function
|
|
13
|
+
* key (the `DatabaseSchemas` shape `primitive-db-types.d.ts` uses), which
|
|
14
|
+
* is what types `defineFunction("<key>", handler)`: `input` is the
|
|
15
|
+
* declared input, the return is checked against the declared output, and
|
|
16
|
+
* a key the tree does not declare is a compile error.
|
|
17
|
+
* - `functions/generated/<key>.generated.ts` — the client invoker, the
|
|
18
|
+
* `workflows codegen` layout: imports only from `js-bao-wss-client`,
|
|
19
|
+
* exports the two types and a `<key>(client)` factory. Since #3482 EVERY
|
|
20
|
+
* function's invoker carries both verbs — `invoke`, `start`, `getStatus`,
|
|
21
|
+
* `waitFor`, `terminate` — because the config says nothing about how a
|
|
22
|
+
* function runs and the caller picks the runtime at each call. `waitFor`
|
|
23
|
+
* binds `<Key>Output`, so the completion path is typed too (D3281-SO-003).
|
|
24
|
+
*
|
|
25
|
+
* ── The same descriptor the platform validates with ──────────────────────
|
|
26
|
+
*
|
|
27
|
+
* Schemas are interpreted through the vendored descriptor `workflows codegen`
|
|
28
|
+
* already reads (`workflow-codegen/schemaToTs.ts`, a byte copy of the server's
|
|
29
|
+
* `schema-descriptor.ts`), so what compiles is what every invocation door
|
|
30
|
+
* accepts: `input` is a REQUIRED option iff the schema rejects `{}` (the
|
|
31
|
+
* client sends `rootInput` only when `input !== undefined`, and the server
|
|
32
|
+
* defaults an absent one to `{}`), an absent schema is `unknown`, and a
|
|
33
|
+
* malformed schema fails naming the file rather than typing something false.
|
|
34
|
+
*
|
|
35
|
+
* ── Identifiers ──────────────────────────────────────────────────────────
|
|
36
|
+
*
|
|
37
|
+
* Names come from the workflow naming helpers (PascalCase, the digit-leading
|
|
38
|
+
* and reserved-word rules), and the runtime call always passes the ORIGINAL
|
|
39
|
+
* key. Two keys that sanitize to one identifier would render one file over the
|
|
40
|
+
* other, so that is refused naming both.
|
|
41
|
+
*
|
|
42
|
+
* FORMATTING CONTRACT (#1565): the invoker is emitted as a fixed point of
|
|
43
|
+
* Prettier's default config through `codegen-shared/prettierStable.ts`, like
|
|
44
|
+
* the other two generators, because `--check` byte-compares.
|
|
45
|
+
*/
|
|
46
|
+
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
47
|
+
import { basename, join } from "path";
|
|
48
|
+
import { parseConfigToml } from "./config-toml.js";
|
|
49
|
+
import { safeJsonParse } from "./workflow-payload.js";
|
|
50
|
+
import { schemaRejectsEmptyObject, schemaToTypeNode, } from "./workflow-codegen/schemaToTs.js";
|
|
51
|
+
import { describeSchema } from "./workflow-codegen/generated-schema-descriptor.js";
|
|
52
|
+
import { workflowFactoryName, workflowTypeBaseName, } from "./workflow-codegen/naming.js";
|
|
53
|
+
import { fingerprintToml } from "./db-codegen/dbFingerprint.js";
|
|
54
|
+
import { isFunctionDeclarationFile } from "./function-document-types.js";
|
|
55
|
+
import { atom, generic, indent, intersection, objectType, printType, renderArrowCall, renderArrowProperty, renderParenList, renderTypeAlias, tsStringLiteral, union, } from "./codegen-shared/prettierStable.js";
|
|
56
|
+
/** The regenerated declaration beside `primitive-db-types.d.ts`. */
|
|
57
|
+
export const FUNCTION_TYPES_DECLARATION_FILE = "primitive-function-types.d.ts";
|
|
58
|
+
/** Where the per-key invokers go, under `functions/`, unless `-o` says otherwise. */
|
|
59
|
+
export const FUNCTION_INVOKERS_DIR = "generated";
|
|
60
|
+
/** Suffix identifying a generated invoker (shared with the other generators). */
|
|
61
|
+
export const GENERATED_FILE_SUFFIX = ".generated.ts";
|
|
62
|
+
/** The client package the invoker imports its types from. */
|
|
63
|
+
const CLIENT_PACKAGE = "js-bao-wss-client";
|
|
64
|
+
export class FunctionSchemaCodegenError extends Error {
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The key push will identify this file by, resolved exactly the way push
|
|
68
|
+
* resolves it (CR3281-001).
|
|
69
|
+
*
|
|
70
|
+
* Push reads `tomlData.function?.key || basename(file, ".toml")`, so a file
|
|
71
|
+
* named `local.toml` carrying `key = "remote"` is pushed, collected and
|
|
72
|
+
* key-checked as `remote`. Reading only the stem here would have generated a
|
|
73
|
+
* `remote`-less declaration and an invoker calling a function that does not
|
|
74
|
+
* exist, while the collect step compared the exported handler against
|
|
75
|
+
* `remote` — three spellings of one identity. The file stem stays the
|
|
76
|
+
* fallback, which is what a pulled tree always uses.
|
|
77
|
+
*
|
|
78
|
+
* Same rule, same reason as `databaseTypeSources` (SO3182-003): the generator
|
|
79
|
+
* reads the key the platform will hear about, never the file name alone.
|
|
80
|
+
*/
|
|
81
|
+
function resolveFunctionKey(source, table) {
|
|
82
|
+
return table?.key ? String(table.key) : source.key;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Every `functions/*.toml` in a tree, read once. The key is the one push
|
|
86
|
+
* uses: the file name (push takes the identity from it and attaches
|
|
87
|
+
* `functionKey` itself).
|
|
88
|
+
*/
|
|
89
|
+
export function functionSchemaSources(configDir) {
|
|
90
|
+
const dir = join(configDir, "functions");
|
|
91
|
+
if (!existsSync(dir))
|
|
92
|
+
return [];
|
|
93
|
+
const sources = [];
|
|
94
|
+
for (const file of readdirSync(dir).filter(isFunctionDeclarationFile)) {
|
|
95
|
+
const tomlPath = join(dir, file);
|
|
96
|
+
let tomlContent;
|
|
97
|
+
try {
|
|
98
|
+
tomlContent = readFileSync(tomlPath, "utf-8");
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
sources.push({ key: basename(file, ".toml"), tomlPath, tomlContent });
|
|
104
|
+
}
|
|
105
|
+
return sources;
|
|
106
|
+
}
|
|
107
|
+
/** The tree-relative spelling of a source, for a message an author acts on. */
|
|
108
|
+
function fileLabel(source) {
|
|
109
|
+
const at = source.tomlPath.lastIndexOf("/functions/");
|
|
110
|
+
return at >= 0 ? source.tomlPath.slice(at + 1) : source.tomlPath;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Parse one file into the data both renderers need. Throws a
|
|
114
|
+
* `FunctionSchemaCodegenError` naming the file for malformed schema JSON or an
|
|
115
|
+
* unresolvable mode — the honest `unknown` is for an ABSENT schema, never a
|
|
116
|
+
* broken one.
|
|
117
|
+
*/
|
|
118
|
+
export function describeFunctionSchemas(source) {
|
|
119
|
+
let table;
|
|
120
|
+
try {
|
|
121
|
+
table = parseConfigToml(source.tomlContent)?.function ?? {};
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
throw new FunctionSchemaCodegenError(`${fileLabel(source)}: the file does not parse as TOML (${error?.message ?? error})`);
|
|
125
|
+
}
|
|
126
|
+
// The key push identifies this file by — an authored `[function] key` when
|
|
127
|
+
// there is one, the file stem otherwise (CR3281-001).
|
|
128
|
+
const key = resolveFunctionKey(source, table);
|
|
129
|
+
const schema = (field) => {
|
|
130
|
+
try {
|
|
131
|
+
return safeJsonParse(table[field]);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
throw new FunctionSchemaCodegenError(`${fileLabel(source)}: \`${field}\` is not valid JSON (${error?.message ?? error})`);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const inputSchema = schema("inputSchema");
|
|
138
|
+
const outputSchema = schema("outputSchema");
|
|
139
|
+
const typeBaseName = workflowTypeBaseName(key);
|
|
140
|
+
return {
|
|
141
|
+
key,
|
|
142
|
+
fileLabel: fileLabel(source),
|
|
143
|
+
inputSchema,
|
|
144
|
+
outputSchema,
|
|
145
|
+
inputRequired: inputSchema !== undefined && schemaRejectsEmptyObject(inputSchema),
|
|
146
|
+
typeBaseName,
|
|
147
|
+
inputTypeName: `${typeBaseName}Input`,
|
|
148
|
+
outputTypeName: `${typeBaseName}Output`,
|
|
149
|
+
factoryName: workflowFactoryName(key),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Describe every source, sorted by key, refusing two files that resolve to one
|
|
154
|
+
* key. This is the LANGUAGE-NEUTRAL half of the set-level IR, shared with the
|
|
155
|
+
* Swift emitter (#3344): mode, schemas and requiredness come from here for
|
|
156
|
+
* both languages, so the two clients can never disagree about what a function
|
|
157
|
+
* exposes.
|
|
158
|
+
*
|
|
159
|
+
* The TypeScript base-name collision check deliberately stays out of it
|
|
160
|
+
* (`describeAll` below adds it): it is about the TS emitter's own
|
|
161
|
+
* `<Base>Input`/`<Base>Output` identifiers, and the Swift run has its own
|
|
162
|
+
* run-scoped symbol registry — which also covers the invoker struct and the
|
|
163
|
+
* factory function the TS check knows nothing about.
|
|
164
|
+
*/
|
|
165
|
+
export function describeFunctionSchemaSet(sources) {
|
|
166
|
+
const described = sources.map((source) => ({ fn: describeFunctionSchemas(source), source }));
|
|
167
|
+
described.sort((a, b) => (a.fn.key < b.fn.key ? -1 : a.fn.key > b.fn.key ? 1 : 0));
|
|
168
|
+
// Two files resolving to ONE key — only reachable through an authored
|
|
169
|
+
// `[function] key` (CR3281-001), since file stems are unique by
|
|
170
|
+
// construction. They would render one invoker over the other and push one
|
|
171
|
+
// function twice, so name both files rather than pick a winner.
|
|
172
|
+
const byKey = new Map();
|
|
173
|
+
for (const { fn, source } of described) {
|
|
174
|
+
const other = byKey.get(fn.key);
|
|
175
|
+
if (other !== undefined) {
|
|
176
|
+
throw new FunctionSchemaCodegenError(`${fileLabel(other)} and ${fileLabel(source)} both declare the function ` +
|
|
177
|
+
`key '${fn.key}' — one file is one function, so rename or remove one ` +
|
|
178
|
+
`\`[function] key\``);
|
|
179
|
+
}
|
|
180
|
+
byKey.set(fn.key, source);
|
|
181
|
+
}
|
|
182
|
+
return described;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* `describeFunctionSchemaSet` plus the TypeScript emitter's base-name
|
|
186
|
+
* collision check: two keys that sanitize to one identifier would render one
|
|
187
|
+
* `.generated.ts` over the other and one type name for two schemas.
|
|
188
|
+
*/
|
|
189
|
+
function describeAll(sources) {
|
|
190
|
+
const described = describeFunctionSchemaSet(sources);
|
|
191
|
+
const byBaseName = new Map();
|
|
192
|
+
for (const { fn } of described) {
|
|
193
|
+
const other = byBaseName.get(fn.typeBaseName);
|
|
194
|
+
if (other !== undefined && other !== fn.key) {
|
|
195
|
+
throw new FunctionSchemaCodegenError(`function keys '${other}' and '${fn.key}' both name the generated type ` +
|
|
196
|
+
`\`${fn.typeBaseName}Input\` — rename one so the two do not collide after sanitizing`);
|
|
197
|
+
}
|
|
198
|
+
byBaseName.set(fn.typeBaseName, fn.key);
|
|
199
|
+
}
|
|
200
|
+
return described;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* A top-level `<Name>Input`/`<Name>Output` declaration: an absent schema →
|
|
204
|
+
* `unknown`, a plain object → an `interface`, anything else (a `oneOf` above
|
|
205
|
+
* all, which begins with `{` too) → a `type` alias. Same decision as the
|
|
206
|
+
* workflow generator, through the shared descriptor rather than a heuristic.
|
|
207
|
+
*
|
|
208
|
+
* Exported for `prompt-schema-codegen.ts` (#3330): a prompt's
|
|
209
|
+
* `<Key>PromptOutput` is the same question about the same kind of schema, and
|
|
210
|
+
* a second copy of this would be the third spelling of one rule.
|
|
211
|
+
*/
|
|
212
|
+
export function renderTypeDecl(name, schema) {
|
|
213
|
+
if (schema === undefined)
|
|
214
|
+
return renderTypeAlias(name, atom("unknown"));
|
|
215
|
+
const node = schemaToTypeNode(schema);
|
|
216
|
+
if (node.kind === "block" && !describeSchema(schema).oneOf) {
|
|
217
|
+
return `export interface ${name} ${printType(node, 0, 0)}`;
|
|
218
|
+
}
|
|
219
|
+
return renderTypeAlias(name, node);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* `renderTypeDecl` for one declared field, with a failure that names the file
|
|
223
|
+
* and the field (CR3281-004).
|
|
224
|
+
*
|
|
225
|
+
* The shared renderer refuses a schema it cannot type — a `oneOf` of objects
|
|
226
|
+
* with no usable discriminator, above all — by throwing a plain `Error` that
|
|
227
|
+
* says "workflows codegen" and names neither. Push catches
|
|
228
|
+
* `FunctionSchemaCodegenError` per tree and lets the rest of it land, so an
|
|
229
|
+
* unconverted throw took the whole command down before a single healthy
|
|
230
|
+
* function was sent, over a file the author could not identify from the
|
|
231
|
+
* message.
|
|
232
|
+
*/
|
|
233
|
+
function renderDeclaredType(fn, field) {
|
|
234
|
+
const name = field === "inputSchema" ? fn.inputTypeName : fn.outputTypeName;
|
|
235
|
+
const schema = field === "inputSchema" ? fn.inputSchema : fn.outputSchema;
|
|
236
|
+
try {
|
|
237
|
+
return renderTypeDecl(name, schema);
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
if (error instanceof FunctionSchemaCodegenError)
|
|
241
|
+
throw error;
|
|
242
|
+
throw new FunctionSchemaCodegenError(`${fn.fileLabel}: \`${field}\` cannot be rendered as a TypeScript type ` +
|
|
243
|
+
`(${error?.message ?? error})`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
const DECLARATION_HEADER = `// GENERATED by \`primitive config push\` from functions/*.toml.
|
|
247
|
+
// DO NOT EDIT — your changes are overwritten on the next push.
|
|
248
|
+
//
|
|
249
|
+
// It gives \`defineFunction("<key>", handler)\` its types: \`input\` is the
|
|
250
|
+
// function's declared inputSchema and the return is checked against its
|
|
251
|
+
// declared outputSchema. A key this tree does not declare is a compile error.
|
|
252
|
+
// The client-side invokers are the \`generated/<key>.generated.ts\` files beside
|
|
253
|
+
// this one.
|
|
254
|
+
`;
|
|
255
|
+
/**
|
|
256
|
+
* The declaration for a whole tree's functions. Sorted by key so the bytes
|
|
257
|
+
* depend on the files and not on the order they were read in. The
|
|
258
|
+
* augmentation is emitted even when the tree has no function yet: an empty
|
|
259
|
+
* `FunctionSchemas` keeps `FunctionKeys` open (`string`), so nothing breaks.
|
|
260
|
+
*/
|
|
261
|
+
export function renderFunctionSchemasDeclaration(sources) {
|
|
262
|
+
const functions = describeAll(sources).map((entry) => entry.fn);
|
|
263
|
+
const lines = [DECLARATION_HEADER];
|
|
264
|
+
for (const fn of functions) {
|
|
265
|
+
lines.push(renderDeclaredType(fn, "inputSchema"));
|
|
266
|
+
lines.push("");
|
|
267
|
+
lines.push(renderDeclaredType(fn, "outputSchema"));
|
|
268
|
+
lines.push("");
|
|
269
|
+
}
|
|
270
|
+
if (functions.length === 0) {
|
|
271
|
+
lines.push("export interface PrimitiveFunctionSchemas {}");
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
lines.push("export interface PrimitiveFunctionSchemas {");
|
|
275
|
+
for (const fn of functions) {
|
|
276
|
+
lines.push(` ${JSON.stringify(fn.key)}: {`);
|
|
277
|
+
lines.push(` input: ${fn.inputTypeName};`);
|
|
278
|
+
lines.push(` output: ${fn.outputTypeName};`);
|
|
279
|
+
lines.push(` };`);
|
|
280
|
+
}
|
|
281
|
+
lines.push("}");
|
|
282
|
+
}
|
|
283
|
+
lines.push("");
|
|
284
|
+
lines.push(`declare module "primitive-functions" {`);
|
|
285
|
+
lines.push(` interface FunctionSchemas extends PrimitiveFunctionSchemas {}`);
|
|
286
|
+
lines.push(`}`);
|
|
287
|
+
lines.push("");
|
|
288
|
+
return lines.join("\n");
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* The invoker factory for one function — both verbs, typed (#3482).
|
|
292
|
+
*
|
|
293
|
+
* `invoke`/`start` take the key POSITIONALLY (`client.functions.<verb>(key,
|
|
294
|
+
* opts)`), so the key cannot ride in through `opts`; `terminate` addresses a
|
|
295
|
+
* run by a ref object, where the spread comes first and the pinned key last —
|
|
296
|
+
* a caller passing a ref variable carrying another key still terminates this
|
|
297
|
+
* function's run.
|
|
298
|
+
*/
|
|
299
|
+
function renderFactory(fn) {
|
|
300
|
+
const keyLiteral = tsStringLiteral(fn.key);
|
|
301
|
+
const inputMember = fn.inputRequired
|
|
302
|
+
? `input: ${fn.inputTypeName}`
|
|
303
|
+
: `input?: ${fn.inputTypeName}`;
|
|
304
|
+
const lines = [
|
|
305
|
+
renderParenList(`export function ${fn.factoryName}`, ["client: JsBaoClient"], " {", 0),
|
|
306
|
+
` return {`,
|
|
307
|
+
];
|
|
308
|
+
// `opts: { input: X } & Omit<<Options><X>, "input">` — always broken onto its
|
|
309
|
+
// own line: the shortest possible form is already wider than 80 columns.
|
|
310
|
+
const optsParam = (optionsTypeName) => {
|
|
311
|
+
const node = intersection([
|
|
312
|
+
objectType([inputMember]),
|
|
313
|
+
generic("Omit", [
|
|
314
|
+
generic(optionsTypeName, [atom(fn.inputTypeName)]),
|
|
315
|
+
union([atom(`"input"`)]),
|
|
316
|
+
]),
|
|
317
|
+
]);
|
|
318
|
+
const head = `${indent(3)}opts: `;
|
|
319
|
+
return `${head}${printType(node, head.length, 3, 1)},`;
|
|
320
|
+
};
|
|
321
|
+
const invocation = (method, typeArgs, optionsTypeName) => renderArrowCall({
|
|
322
|
+
head: [`${indent(2)}${method}: (`, optsParam(optionsTypeName), `${indent(2)}) =>`].join("\n"),
|
|
323
|
+
callee: generic(`client.functions.${method}`, typeArgs.map(atom)),
|
|
324
|
+
leadingArgs: [keyLiteral],
|
|
325
|
+
objectMembers: ["...opts"],
|
|
326
|
+
level: 3,
|
|
327
|
+
tail: ",",
|
|
328
|
+
});
|
|
329
|
+
// #3482 — EVERY function gets both verbs. The config says nothing about how
|
|
330
|
+
// a function runs, so there is no mode to emit a subset from: `invoke` runs
|
|
331
|
+
// it inside the request and `start` runs it as a task, and the caller picks.
|
|
332
|
+
lines.push(invocation("invoke", [fn.outputTypeName, fn.inputTypeName], "FunctionInvokeOptions"));
|
|
333
|
+
{
|
|
334
|
+
lines.push(invocation("start", [fn.inputTypeName], "FunctionStartOptions"));
|
|
335
|
+
lines.push(renderArrowProperty({
|
|
336
|
+
level: 2,
|
|
337
|
+
key: "getStatus",
|
|
338
|
+
params: ["runId: string"],
|
|
339
|
+
signatureTail: " =>",
|
|
340
|
+
callee: generic("client.functions.getStatus", [atom(fn.outputTypeName)]),
|
|
341
|
+
leadingArgs: ["runId"],
|
|
342
|
+
tail: ",",
|
|
343
|
+
}));
|
|
344
|
+
lines.push(renderArrowProperty({
|
|
345
|
+
level: 2,
|
|
346
|
+
key: "waitFor",
|
|
347
|
+
params: ["runId: string", "options?: FunctionWaitOptions"],
|
|
348
|
+
signatureTail: " =>",
|
|
349
|
+
callee: generic("client.functions.waitFor", [atom(fn.outputTypeName)]),
|
|
350
|
+
leadingArgs: ["runId", "options"],
|
|
351
|
+
tail: ",",
|
|
352
|
+
}));
|
|
353
|
+
lines.push(renderArrowProperty({
|
|
354
|
+
level: 2,
|
|
355
|
+
key: "terminate",
|
|
356
|
+
params: [`ref: Omit<FunctionRunRef, "functionKey">`],
|
|
357
|
+
signatureTail: " =>",
|
|
358
|
+
callee: generic("client.functions.terminate", [atom(fn.outputTypeName)]),
|
|
359
|
+
leadingArgs: [],
|
|
360
|
+
objectMembers: ["...ref", { key: "functionKey", value: keyLiteral }],
|
|
361
|
+
tail: ",",
|
|
362
|
+
}));
|
|
363
|
+
}
|
|
364
|
+
lines.push(` };`, `}`);
|
|
365
|
+
return lines.join("\n");
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* `import type { … } from "js-bao-wss-client"`, the way Prettier prints it:
|
|
369
|
+
* on one line when it fits, one specifier per line (trailing comma) when not.
|
|
370
|
+
*/
|
|
371
|
+
function renderImport(names) {
|
|
372
|
+
const inline = `import type { ${names.join(", ")} } from "${CLIENT_PACKAGE}";`;
|
|
373
|
+
if (inline.length <= 80)
|
|
374
|
+
return inline;
|
|
375
|
+
return `import type {\n${names.map((i) => ` ${i},`).join("\n")}\n} from "${CLIENT_PACKAGE}";`;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* The full `<key>.generated.ts` for one function. Pure — exported so tests
|
|
379
|
+
* can assert on the string directly.
|
|
380
|
+
*/
|
|
381
|
+
export function renderFunctionInvokerFile(source) {
|
|
382
|
+
const fn = describeFunctionSchemas(source);
|
|
383
|
+
const fingerprint = fingerprintToml(source.tomlContent);
|
|
384
|
+
// #3482 — every invoker carries both verb sets, so every file imports the
|
|
385
|
+
// same option types. Sorted, because that is how Prettier prints a specifier
|
|
386
|
+
// list and this file is a Prettier fixed point.
|
|
387
|
+
const imports = [
|
|
388
|
+
"FunctionInvokeOptions",
|
|
389
|
+
"FunctionRunRef",
|
|
390
|
+
"FunctionStartOptions",
|
|
391
|
+
"JsBaoClient",
|
|
392
|
+
"FunctionWaitOptions",
|
|
393
|
+
].sort();
|
|
394
|
+
const blocks = [
|
|
395
|
+
[
|
|
396
|
+
`// AUTO-GENERATED FROM ${fn.fileLabel} — DO NOT EDIT.`,
|
|
397
|
+
"// Run `primitive functions codegen` to regenerate.",
|
|
398
|
+
`// fingerprint: ${fingerprint}`,
|
|
399
|
+
].join("\n"),
|
|
400
|
+
renderImport(imports),
|
|
401
|
+
renderDeclaredType(fn, "inputSchema"),
|
|
402
|
+
renderDeclaredType(fn, "outputSchema"),
|
|
403
|
+
renderFactory(fn),
|
|
404
|
+
];
|
|
405
|
+
return { key: fn.key, content: blocks.join("\n\n") + "\n" };
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Every invoker for a tree, keyed by the file name the generator writes
|
|
409
|
+
* (`<key>.generated.ts`), with the identifier-collision refusal applied
|
|
410
|
+
* across the set.
|
|
411
|
+
*/
|
|
412
|
+
export function renderFunctionInvokers(sources) {
|
|
413
|
+
// `describeAll` is the collision check; the per-file render repeats the
|
|
414
|
+
// (cheap) parse rather than threading the IR through.
|
|
415
|
+
return describeAll(sources).map(({ fn, source }) => ({
|
|
416
|
+
fileName: `${fn.key}${GENERATED_FILE_SUFFIX}`,
|
|
417
|
+
content: renderFunctionInvokerFile(source).content,
|
|
418
|
+
}));
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=function-schema-codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-schema-codegen.js","sourceRoot":"","sources":["../../../src/lib/function-schema-codegen.ts"],"names":[],"mappings":"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"}
|