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,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The prompt declaration — #3330, project `server-functions` phase 4.
|
|
3
|
+
*
|
|
4
|
+
* A prompt's `[prompt.outputSchema]` already says what its answer looks like,
|
|
5
|
+
* and `config pull`/`push` already round-trip it. Until now nothing turned it
|
|
6
|
+
* into a type, so a function calling the prompt restated the shape by hand at
|
|
7
|
+
* the call site with nothing checking it — the same complaint the function
|
|
8
|
+
* input/output contract answered, one surface over.
|
|
9
|
+
*
|
|
10
|
+
* `functions/primitive-prompt-types.d.ts` is rendered from `prompts/*.toml`
|
|
11
|
+
* beside the other declarations and regenerated by `config push`,
|
|
12
|
+
* `config pull` and `primitive functions codegen`:
|
|
13
|
+
*
|
|
14
|
+
* - `<Key>PromptOutput` for every prompt that declares an `outputSchema`,
|
|
15
|
+
* through the SAME renderer `primitive-function-types.d.ts` uses, over the
|
|
16
|
+
* same vendored descriptor, so what compiles is what the route validates.
|
|
17
|
+
* - `PrimitivePromptSchemas`, keyed by prompt key, and the
|
|
18
|
+
* `declare module "primitive-functions"` augmentation — the
|
|
19
|
+
* `DatabaseSchemas`/`FunctionSchemas`/`DocumentSchemas` shape. Empty keeps
|
|
20
|
+
* `PromptKeys` open (`string`); a pushed tree narrows it, so an undeclared
|
|
21
|
+
* key is a compile error.
|
|
22
|
+
*
|
|
23
|
+
* A prompt that declares NO schema is `{}` under its key, not an entry with an
|
|
24
|
+
* `unknown` output. That is deliberate: `{}` does not extend `{ output: … }`,
|
|
25
|
+
* so the SDK's `PromptRunResult` falls to its open shape and `parsed` stays
|
|
26
|
+
* optional and `unknown` — and REMOVING a schema therefore turns a handler
|
|
27
|
+
* reading `parsed.field` into a compile error on the next push rather than a
|
|
28
|
+
* runtime `undefined`.
|
|
29
|
+
*
|
|
30
|
+
* ── The suffix ───────────────────────────────────────────────────────────
|
|
31
|
+
*
|
|
32
|
+
* `<Key>PromptOutput`, not `<Key>Output`. A function and the prompt it calls
|
|
33
|
+
* commonly share a key — the issue's own `categorize` — and `<Key>Output`
|
|
34
|
+
* already names the FUNCTION's output in the declaration beside this one.
|
|
35
|
+
*
|
|
36
|
+
* ── Identity is push's ───────────────────────────────────────────────────
|
|
37
|
+
*
|
|
38
|
+
* `config push` resolves a prompt file as
|
|
39
|
+
* `tomlData.prompt?.key || basename(file, ".toml")`, so `local.toml` carrying
|
|
40
|
+
* `key = "categorize"` is deployed as `categorize`. Reading the stem alone
|
|
41
|
+
* would type it under a key the platform never hears about, refuse the call
|
|
42
|
+
* the deployed prompt answers, and attach the schema to the wrong key. Same
|
|
43
|
+
* rule and same reason as `resolveFunctionKey` (CR3281-001) and
|
|
44
|
+
* `databaseTypeSources` (SO3182-003): the generator reads the key the platform
|
|
45
|
+
* will hear about, never the file name alone.
|
|
46
|
+
*
|
|
47
|
+
* ── Agents (#3798) ───────────────────────────────────────────────────────
|
|
48
|
+
*
|
|
49
|
+
* A `kind = "agent"` prompt is never run single-shot, so it has no `output`.
|
|
50
|
+
* Its entry is `{ agent: { variables; clientTools; events } }` instead —
|
|
51
|
+
* `<Key>AgentVariables` from `inputSchema` (the session's variables),
|
|
52
|
+
* `<Key>Tool<Name>Input`/`Output` for each CLIENT tool (a server tool's
|
|
53
|
+
* schemas are its function's, typed in the functions declaration) and
|
|
54
|
+
* `<Key>Event<Name>` for each event kind — and the SDK's `PromptKeys` excludes
|
|
55
|
+
* it, so `ctx.prompts.run("<agent>")` is a compile error. The same types go to
|
|
56
|
+
* the client side as `functions/generated/<key>.agent.generated.ts`
|
|
57
|
+
* (`renderAgentClientFiles`), which an app's web code imports. The
|
|
58
|
+
* declaration is read through `normalizeAgentDeclaration`, the one reader
|
|
59
|
+
* that applies an agent's defaults.
|
|
60
|
+
*/
|
|
61
|
+
import { type AgentSchema } from "./generated-config-surfaces.js";
|
|
62
|
+
/** The client-side artifact an agent prompt gets, beside the invokers (#3798). */
|
|
63
|
+
export declare const AGENT_CLIENT_FILE_SUFFIX = ".agent.generated.ts";
|
|
64
|
+
/** The regenerated declaration beside `primitive-function-types.d.ts`. */
|
|
65
|
+
export declare const PROMPT_TYPES_DECLARATION_FILE = "primitive-prompt-types.d.ts";
|
|
66
|
+
export interface PromptSchemaSource {
|
|
67
|
+
/**
|
|
68
|
+
* The file stem, which is the key push uses when the file declares none.
|
|
69
|
+
* An authored `[prompt] key` wins over it — see {@link resolvePromptKey}.
|
|
70
|
+
*/
|
|
71
|
+
key: string;
|
|
72
|
+
tomlPath: string;
|
|
73
|
+
tomlContent: string;
|
|
74
|
+
}
|
|
75
|
+
/** What the renderer needs from one `prompts/<key>.toml`. */
|
|
76
|
+
export interface PromptSchemaIR {
|
|
77
|
+
key: string;
|
|
78
|
+
/** The tree-relative file this came from, for a message an author acts on. */
|
|
79
|
+
fileLabel: string;
|
|
80
|
+
/** The declared `[prompt].outputSchema`, or undefined when there is none. */
|
|
81
|
+
outputSchema: unknown;
|
|
82
|
+
/** `<Key>` — the PascalCase base of the type name. */
|
|
83
|
+
typeBaseName: string;
|
|
84
|
+
/** `<Key>PromptOutput`. */
|
|
85
|
+
outputTypeName: string;
|
|
86
|
+
/** #3798 — the agent's typed contract; `null` for a chat or decisions prompt. */
|
|
87
|
+
agent: AgentTypesIR | null;
|
|
88
|
+
}
|
|
89
|
+
/** One named type an agent's contract declares: its name and its schema. */
|
|
90
|
+
export interface AgentNamedType {
|
|
91
|
+
/** The declared name — a tool or event name, as authored. */
|
|
92
|
+
name: string;
|
|
93
|
+
typeName: string;
|
|
94
|
+
schema: AgentSchema;
|
|
95
|
+
}
|
|
96
|
+
/** What an agent prompt contributes to the declarations (#3798). */
|
|
97
|
+
export interface AgentTypesIR {
|
|
98
|
+
/** `<Key>AgentVariables`, from `[prompt].inputSchema` (`unknown` when none). */
|
|
99
|
+
variablesTypeName: string;
|
|
100
|
+
inputSchema: unknown;
|
|
101
|
+
clientTools: Array<{
|
|
102
|
+
name: string;
|
|
103
|
+
input: AgentNamedType;
|
|
104
|
+
output: AgentNamedType;
|
|
105
|
+
}>;
|
|
106
|
+
events: AgentNamedType[];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Every `prompts/*.toml` in a tree, read once.
|
|
110
|
+
*
|
|
111
|
+
* `withFileTypes` rather than a name filter alone: a `prompts/<key>.tests/`
|
|
112
|
+
* sidecar directory and anything that is not a regular `.toml` file are not
|
|
113
|
+
* prompt sources, and a directory read as one fails in the parser with a
|
|
114
|
+
* message about TOML instead of being ignored.
|
|
115
|
+
*/
|
|
116
|
+
export declare function promptSchemaSources(configDir: string): PromptSchemaSource[];
|
|
117
|
+
/**
|
|
118
|
+
* Parse one file into the data the renderer needs.
|
|
119
|
+
*
|
|
120
|
+
* Throws a `FunctionSchemaCodegenError` naming the file for malformed TOML or
|
|
121
|
+
* malformed schema JSON — the honest "declares nothing" is for an ABSENT
|
|
122
|
+
* schema, never a broken one, because typing a broken schema as anything at
|
|
123
|
+
* all is a declaration that lies.
|
|
124
|
+
*/
|
|
125
|
+
export declare function describePromptSchema(source: PromptSchemaSource): PromptSchemaIR;
|
|
126
|
+
/**
|
|
127
|
+
* The declaration for a whole tree's prompts. Sorted by key so the bytes
|
|
128
|
+
* depend on the files and not on the order they were read in. The
|
|
129
|
+
* augmentation is emitted even for a tree with no prompt: an empty
|
|
130
|
+
* `PromptSchemas` keeps `PromptKeys` open (`string`), so nothing breaks.
|
|
131
|
+
*/
|
|
132
|
+
export declare function renderPromptSchemasDeclaration(sources: readonly PromptSchemaSource[]): string;
|
|
133
|
+
/** Whether a tree declares any agent prompt — the codegen gate (DSO-3798-005). */
|
|
134
|
+
export declare function treeDeclaresAgentPrompt(configDir: string): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* The client-side artifact of each agent prompt — #3798:
|
|
137
|
+
* `<key>.agent.generated.ts`, carrying the agent's variables, client-tool and
|
|
138
|
+
* event types, the `<Key>AgentClientTools` / `<Key>AgentEvents` maps an app's
|
|
139
|
+
* session view is typed by, and `<Key>Agent.key`. Written beside the function
|
|
140
|
+
* invokers and owned by the same plan, so the invoker sweep keeps it; a
|
|
141
|
+
* Prettier fixed point, like them (#1565).
|
|
142
|
+
*/
|
|
143
|
+
export declare function renderAgentClientFiles(sources: readonly PromptSchemaSource[]): Array<{
|
|
144
|
+
key: string;
|
|
145
|
+
fileName: string;
|
|
146
|
+
content: string;
|
|
147
|
+
}>;
|
|
@@ -0,0 +1,462 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The prompt declaration — #3330, project `server-functions` phase 4.
|
|
3
|
+
*
|
|
4
|
+
* A prompt's `[prompt.outputSchema]` already says what its answer looks like,
|
|
5
|
+
* and `config pull`/`push` already round-trip it. Until now nothing turned it
|
|
6
|
+
* into a type, so a function calling the prompt restated the shape by hand at
|
|
7
|
+
* the call site with nothing checking it — the same complaint the function
|
|
8
|
+
* input/output contract answered, one surface over.
|
|
9
|
+
*
|
|
10
|
+
* `functions/primitive-prompt-types.d.ts` is rendered from `prompts/*.toml`
|
|
11
|
+
* beside the other declarations and regenerated by `config push`,
|
|
12
|
+
* `config pull` and `primitive functions codegen`:
|
|
13
|
+
*
|
|
14
|
+
* - `<Key>PromptOutput` for every prompt that declares an `outputSchema`,
|
|
15
|
+
* through the SAME renderer `primitive-function-types.d.ts` uses, over the
|
|
16
|
+
* same vendored descriptor, so what compiles is what the route validates.
|
|
17
|
+
* - `PrimitivePromptSchemas`, keyed by prompt key, and the
|
|
18
|
+
* `declare module "primitive-functions"` augmentation — the
|
|
19
|
+
* `DatabaseSchemas`/`FunctionSchemas`/`DocumentSchemas` shape. Empty keeps
|
|
20
|
+
* `PromptKeys` open (`string`); a pushed tree narrows it, so an undeclared
|
|
21
|
+
* key is a compile error.
|
|
22
|
+
*
|
|
23
|
+
* A prompt that declares NO schema is `{}` under its key, not an entry with an
|
|
24
|
+
* `unknown` output. That is deliberate: `{}` does not extend `{ output: … }`,
|
|
25
|
+
* so the SDK's `PromptRunResult` falls to its open shape and `parsed` stays
|
|
26
|
+
* optional and `unknown` — and REMOVING a schema therefore turns a handler
|
|
27
|
+
* reading `parsed.field` into a compile error on the next push rather than a
|
|
28
|
+
* runtime `undefined`.
|
|
29
|
+
*
|
|
30
|
+
* ── The suffix ───────────────────────────────────────────────────────────
|
|
31
|
+
*
|
|
32
|
+
* `<Key>PromptOutput`, not `<Key>Output`. A function and the prompt it calls
|
|
33
|
+
* commonly share a key — the issue's own `categorize` — and `<Key>Output`
|
|
34
|
+
* already names the FUNCTION's output in the declaration beside this one.
|
|
35
|
+
*
|
|
36
|
+
* ── Identity is push's ───────────────────────────────────────────────────
|
|
37
|
+
*
|
|
38
|
+
* `config push` resolves a prompt file as
|
|
39
|
+
* `tomlData.prompt?.key || basename(file, ".toml")`, so `local.toml` carrying
|
|
40
|
+
* `key = "categorize"` is deployed as `categorize`. Reading the stem alone
|
|
41
|
+
* would type it under a key the platform never hears about, refuse the call
|
|
42
|
+
* the deployed prompt answers, and attach the schema to the wrong key. Same
|
|
43
|
+
* rule and same reason as `resolveFunctionKey` (CR3281-001) and
|
|
44
|
+
* `databaseTypeSources` (SO3182-003): the generator reads the key the platform
|
|
45
|
+
* will hear about, never the file name alone.
|
|
46
|
+
*
|
|
47
|
+
* ── Agents (#3798) ───────────────────────────────────────────────────────
|
|
48
|
+
*
|
|
49
|
+
* A `kind = "agent"` prompt is never run single-shot, so it has no `output`.
|
|
50
|
+
* Its entry is `{ agent: { variables; clientTools; events } }` instead —
|
|
51
|
+
* `<Key>AgentVariables` from `inputSchema` (the session's variables),
|
|
52
|
+
* `<Key>Tool<Name>Input`/`Output` for each CLIENT tool (a server tool's
|
|
53
|
+
* schemas are its function's, typed in the functions declaration) and
|
|
54
|
+
* `<Key>Event<Name>` for each event kind — and the SDK's `PromptKeys` excludes
|
|
55
|
+
* it, so `ctx.prompts.run("<agent>")` is a compile error. The same types go to
|
|
56
|
+
* the client side as `functions/generated/<key>.agent.generated.ts`
|
|
57
|
+
* (`renderAgentClientFiles`), which an app's web code imports. The
|
|
58
|
+
* declaration is read through `normalizeAgentDeclaration`, the one reader
|
|
59
|
+
* that applies an agent's defaults.
|
|
60
|
+
*/
|
|
61
|
+
import { existsSync, readdirSync, readFileSync } from "fs";
|
|
62
|
+
import { basename, join } from "path";
|
|
63
|
+
import { parseConfigToml } from "./config-toml.js";
|
|
64
|
+
import { safeJsonParse } from "./workflow-payload.js";
|
|
65
|
+
import { FunctionSchemaCodegenError, renderTypeDecl, } from "./function-schema-codegen.js";
|
|
66
|
+
import { workflowTypeBaseName } from "./workflow-codegen/naming.js";
|
|
67
|
+
import { tsStringLiteral } from "./codegen-shared/prettierStable.js";
|
|
68
|
+
import { fingerprintToml } from "./db-codegen/dbFingerprint.js";
|
|
69
|
+
import { normalizeAgentDeclaration, promptKindOf, resolveAgentDeclaration, } from "./generated-config-surfaces.js";
|
|
70
|
+
/** The client-side artifact an agent prompt gets, beside the invokers (#3798). */
|
|
71
|
+
export const AGENT_CLIENT_FILE_SUFFIX = ".agent.generated.ts";
|
|
72
|
+
/** The regenerated declaration beside `primitive-function-types.d.ts`. */
|
|
73
|
+
export const PROMPT_TYPES_DECLARATION_FILE = "primitive-prompt-types.d.ts";
|
|
74
|
+
/** The key push will identify this file by. */
|
|
75
|
+
function resolvePromptKey(source, table) {
|
|
76
|
+
return table?.key ? String(table.key) : source.key;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Every `prompts/*.toml` in a tree, read once.
|
|
80
|
+
*
|
|
81
|
+
* `withFileTypes` rather than a name filter alone: a `prompts/<key>.tests/`
|
|
82
|
+
* sidecar directory and anything that is not a regular `.toml` file are not
|
|
83
|
+
* prompt sources, and a directory read as one fails in the parser with a
|
|
84
|
+
* message about TOML instead of being ignored.
|
|
85
|
+
*/
|
|
86
|
+
export function promptSchemaSources(configDir) {
|
|
87
|
+
const dir = join(configDir, "prompts");
|
|
88
|
+
if (!existsSync(dir))
|
|
89
|
+
return [];
|
|
90
|
+
const sources = [];
|
|
91
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
92
|
+
if (!entry.isFile() || !entry.name.endsWith(".toml"))
|
|
93
|
+
continue;
|
|
94
|
+
const tomlPath = join(dir, entry.name);
|
|
95
|
+
let tomlContent;
|
|
96
|
+
try {
|
|
97
|
+
tomlContent = readFileSync(tomlPath, "utf-8");
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
sources.push({ key: basename(entry.name, ".toml"), tomlPath, tomlContent });
|
|
103
|
+
}
|
|
104
|
+
return sources;
|
|
105
|
+
}
|
|
106
|
+
/** The tree-relative spelling of a source, for a message an author acts on. */
|
|
107
|
+
function fileLabel(source) {
|
|
108
|
+
const at = source.tomlPath.lastIndexOf("/prompts/");
|
|
109
|
+
return at >= 0 ? source.tomlPath.slice(at + 1) : source.tomlPath;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Parse one file into the data the renderer needs.
|
|
113
|
+
*
|
|
114
|
+
* Throws a `FunctionSchemaCodegenError` naming the file for malformed TOML or
|
|
115
|
+
* malformed schema JSON — the honest "declares nothing" is for an ABSENT
|
|
116
|
+
* schema, never a broken one, because typing a broken schema as anything at
|
|
117
|
+
* all is a declaration that lies.
|
|
118
|
+
*/
|
|
119
|
+
export function describePromptSchema(source) {
|
|
120
|
+
let table;
|
|
121
|
+
try {
|
|
122
|
+
table = parseConfigToml(source.tomlContent)?.prompt ?? {};
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
throw new FunctionSchemaCodegenError(`${fileLabel(source)}: the file does not parse as TOML (${error?.message ?? error})`);
|
|
126
|
+
}
|
|
127
|
+
const key = resolvePromptKey(source, table);
|
|
128
|
+
let outputSchema;
|
|
129
|
+
try {
|
|
130
|
+
// An inline `[prompt.outputSchema]` table and a JSON string alike — the
|
|
131
|
+
// config surface accepts both, so the generator has to read both.
|
|
132
|
+
outputSchema = safeJsonParse(table.outputSchema);
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
throw new FunctionSchemaCodegenError(`${fileLabel(source)}: \`outputSchema\` is not valid JSON (${error?.message ?? error})`);
|
|
136
|
+
}
|
|
137
|
+
const typeBaseName = workflowTypeBaseName(key);
|
|
138
|
+
return {
|
|
139
|
+
key,
|
|
140
|
+
fileLabel: fileLabel(source),
|
|
141
|
+
outputSchema,
|
|
142
|
+
typeBaseName,
|
|
143
|
+
outputTypeName: `${typeBaseName}PromptOutput`,
|
|
144
|
+
agent: promptKindOf(table) === "agent"
|
|
145
|
+
? describeAgentTypes(fileLabel(source), typeBaseName, table)
|
|
146
|
+
: null,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* A declared name as a property key: bare when it is an identifier, quoted
|
|
151
|
+
* (the way Prettier quotes a string) when it carries a `-`.
|
|
152
|
+
*/
|
|
153
|
+
function propertyKey(name) {
|
|
154
|
+
return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name) ? name : tsStringLiteral(name);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* An agent prompt's contract, typed (#3798). The declaration is checked by the
|
|
158
|
+
* same rule push runs (its file-decidable half), so a malformed one fails here
|
|
159
|
+
* naming the file rather than typing something the platform refuses; two
|
|
160
|
+
* client tools (or two events) whose names sanitize to one identifier are
|
|
161
|
+
* refused naming both.
|
|
162
|
+
*/
|
|
163
|
+
function describeAgentTypes(label, typeBaseName, table) {
|
|
164
|
+
const resolution = resolveAgentDeclaration({ kind: "agent", agent: table.agent });
|
|
165
|
+
if (resolution.ok === false) {
|
|
166
|
+
throw new FunctionSchemaCodegenError(`${label}: ${resolution.refusals.map((r) => r.message).join("; ")}`);
|
|
167
|
+
}
|
|
168
|
+
let inputSchema;
|
|
169
|
+
try {
|
|
170
|
+
inputSchema = safeJsonParse(table.inputSchema);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
throw new FunctionSchemaCodegenError(`${label}: \`inputSchema\` is not valid JSON (${error?.message ?? error})`);
|
|
174
|
+
}
|
|
175
|
+
const declaration = normalizeAgentDeclaration(resolution.declaration);
|
|
176
|
+
const claimed = (what) => {
|
|
177
|
+
const byBase = new Map();
|
|
178
|
+
return (name) => {
|
|
179
|
+
const base = workflowTypeBaseName(name);
|
|
180
|
+
const other = byBase.get(base);
|
|
181
|
+
if (other !== undefined && other !== name) {
|
|
182
|
+
throw new FunctionSchemaCodegenError(`${label}: ${what} names '${other}' and '${name}' both name the ` +
|
|
183
|
+
`generated type \`${typeBaseName}${what === "tool" ? "Tool" : "Event"}${base}\` — ` +
|
|
184
|
+
"rename one so the two do not collide after sanitizing");
|
|
185
|
+
}
|
|
186
|
+
byBase.set(base, name);
|
|
187
|
+
return base;
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
const toolBase = claimed("tool");
|
|
191
|
+
const eventBase = claimed("event");
|
|
192
|
+
const clientTools = declaration.tools
|
|
193
|
+
.filter((tool) => tool.runs === "client")
|
|
194
|
+
.map((tool) => {
|
|
195
|
+
const base = `${typeBaseName}Tool${toolBase(tool.name)}`;
|
|
196
|
+
return {
|
|
197
|
+
name: tool.name,
|
|
198
|
+
input: {
|
|
199
|
+
name: tool.name,
|
|
200
|
+
typeName: `${base}Input`,
|
|
201
|
+
schema: tool.inputSchema,
|
|
202
|
+
},
|
|
203
|
+
output: {
|
|
204
|
+
name: tool.name,
|
|
205
|
+
typeName: `${base}Output`,
|
|
206
|
+
schema: tool.outputSchema,
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
const events = declaration.events.map((event) => ({
|
|
211
|
+
name: event.name,
|
|
212
|
+
typeName: `${typeBaseName}Event${eventBase(event.name)}`,
|
|
213
|
+
schema: event.schema,
|
|
214
|
+
}));
|
|
215
|
+
return {
|
|
216
|
+
variablesTypeName: `${typeBaseName}AgentVariables`,
|
|
217
|
+
inputSchema,
|
|
218
|
+
clientTools,
|
|
219
|
+
events,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/** Render one agent type, naming the file and the path when it cannot be. */
|
|
223
|
+
function renderAgentType(prompt, typeName, schema, path) {
|
|
224
|
+
try {
|
|
225
|
+
return renderTypeDecl(typeName, schema);
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
if (error instanceof FunctionSchemaCodegenError)
|
|
229
|
+
throw error;
|
|
230
|
+
throw new FunctionSchemaCodegenError(`${prompt.fileLabel}: \`${path}\` cannot be rendered as a TypeScript ` +
|
|
231
|
+
`type (${error?.message ?? error})`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** Every type declaration an agent contributes, in a fixed order. */
|
|
235
|
+
function renderAgentTypeDecls(prompt) {
|
|
236
|
+
const agent = prompt.agent;
|
|
237
|
+
return [
|
|
238
|
+
renderAgentType(prompt, agent.variablesTypeName, agent.inputSchema, "inputSchema"),
|
|
239
|
+
...agent.clientTools.flatMap((tool) => [
|
|
240
|
+
renderAgentType(prompt, tool.input.typeName, tool.input.schema, `tools.${tool.name}.inputSchema`),
|
|
241
|
+
renderAgentType(prompt, tool.output.typeName, tool.output.schema, `tools.${tool.name}.outputSchema`),
|
|
242
|
+
]),
|
|
243
|
+
...agent.events.map((event) => renderAgentType(prompt, event.typeName, event.schema, `events.${event.name}.schema`)),
|
|
244
|
+
];
|
|
245
|
+
}
|
|
246
|
+
/** The one-line `{ agent: … }` entry of `PrimitivePromptSchemas`. */
|
|
247
|
+
function agentSchemaEntry(prompt) {
|
|
248
|
+
const agent = prompt.agent;
|
|
249
|
+
const tools = agent.clientTools
|
|
250
|
+
.map((tool) => `${propertyKey(tool.name)}: { input: ${tool.input.typeName}; output: ${tool.output.typeName} }`)
|
|
251
|
+
.join("; ");
|
|
252
|
+
const events = agent.events
|
|
253
|
+
.map((event) => `${propertyKey(event.name)}: ${event.typeName}`)
|
|
254
|
+
.join("; ");
|
|
255
|
+
return (`{ agent: { variables: ${agent.variablesTypeName}; ` +
|
|
256
|
+
`clientTools: {${tools ? ` ${tools} ` : ""}}; ` +
|
|
257
|
+
`events: {${events ? ` ${events} ` : ""}} } }`);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Describe every source, sorted by key, refusing the two collisions that
|
|
261
|
+
* would silently render one prompt over another: two files resolving to one
|
|
262
|
+
* key (only reachable through an authored `[prompt] key`, since stems are
|
|
263
|
+
* unique), and two keys sanitizing to one identifier.
|
|
264
|
+
*/
|
|
265
|
+
function describeAll(sources) {
|
|
266
|
+
const described = sources.map((source) => ({
|
|
267
|
+
prompt: describePromptSchema(source),
|
|
268
|
+
source,
|
|
269
|
+
}));
|
|
270
|
+
described.sort((a, b) => a.prompt.key < b.prompt.key ? -1 : a.prompt.key > b.prompt.key ? 1 : 0);
|
|
271
|
+
const byKey = new Map();
|
|
272
|
+
for (const { prompt, source } of described) {
|
|
273
|
+
const other = byKey.get(prompt.key);
|
|
274
|
+
if (other !== undefined) {
|
|
275
|
+
throw new FunctionSchemaCodegenError(`${fileLabel(other)} and ${fileLabel(source)} both declare the prompt ` +
|
|
276
|
+
`key '${prompt.key}' — one file is one prompt, so rename or remove ` +
|
|
277
|
+
`one \`[prompt] key\``);
|
|
278
|
+
}
|
|
279
|
+
byKey.set(prompt.key, source);
|
|
280
|
+
}
|
|
281
|
+
const byBaseName = new Map();
|
|
282
|
+
for (const { prompt } of described) {
|
|
283
|
+
const other = byBaseName.get(prompt.typeBaseName);
|
|
284
|
+
if (other !== undefined && other !== prompt.key) {
|
|
285
|
+
throw new FunctionSchemaCodegenError(`prompt keys '${other}' and '${prompt.key}' both name the generated ` +
|
|
286
|
+
`type \`${prompt.outputTypeName}\` — rename one so the two do not ` +
|
|
287
|
+
`collide after sanitizing`);
|
|
288
|
+
}
|
|
289
|
+
byBaseName.set(prompt.typeBaseName, prompt.key);
|
|
290
|
+
}
|
|
291
|
+
// #3798 (CSO-3798-001) — an agent's types are named `<Key>Tool…`/`<Key>Event…`,
|
|
292
|
+
// so they can land on another prompt's name even when the two bases differ
|
|
293
|
+
// (event `prompt-output` of `advisor` and the output of `advisor-event`).
|
|
294
|
+
// Every declared name is registered, and a second claim is refused naming
|
|
295
|
+
// both sources rather than one silently redeclaring the other.
|
|
296
|
+
const byTypeName = new Map();
|
|
297
|
+
for (const { prompt } of described) {
|
|
298
|
+
for (const { typeName, path } of declaredTypeNames(prompt)) {
|
|
299
|
+
const where = `${prompt.fileLabel} (\`${path}\`)`;
|
|
300
|
+
const other = byTypeName.get(typeName);
|
|
301
|
+
if (other !== undefined) {
|
|
302
|
+
throw new FunctionSchemaCodegenError(`${other} and ${where} both declare the generated type ` +
|
|
303
|
+
`\`${typeName}\` — rename one so the two do not collide after sanitizing`);
|
|
304
|
+
}
|
|
305
|
+
byTypeName.set(typeName, where);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return described;
|
|
309
|
+
}
|
|
310
|
+
/** Every type name a prompt's declarations emit, with the schema it comes from. */
|
|
311
|
+
function declaredTypeNames(prompt) {
|
|
312
|
+
const agent = prompt.agent;
|
|
313
|
+
if (!agent) {
|
|
314
|
+
return prompt.outputSchema === undefined
|
|
315
|
+
? []
|
|
316
|
+
: [{ typeName: prompt.outputTypeName, path: "outputSchema" }];
|
|
317
|
+
}
|
|
318
|
+
return [
|
|
319
|
+
{ typeName: agent.variablesTypeName, path: "inputSchema" },
|
|
320
|
+
...agent.clientTools.flatMap((tool) => [
|
|
321
|
+
{ typeName: tool.input.typeName, path: `tools.${tool.name}.inputSchema` },
|
|
322
|
+
{ typeName: tool.output.typeName, path: `tools.${tool.name}.outputSchema` },
|
|
323
|
+
]),
|
|
324
|
+
...agent.events.map((event) => ({
|
|
325
|
+
typeName: event.typeName,
|
|
326
|
+
path: `events.${event.name}.schema`,
|
|
327
|
+
})),
|
|
328
|
+
];
|
|
329
|
+
}
|
|
330
|
+
const DECLARATION_HEADER = `// GENERATED by \`primitive config push\` from prompts/*.toml.
|
|
331
|
+
// DO NOT EDIT — your changes are overwritten on the next push.
|
|
332
|
+
//
|
|
333
|
+
// It types \`ctx.prompts.run("<key>")\`: a prompt that declares an
|
|
334
|
+
// \`[prompt.outputSchema]\` hands back \`parsed\` as \`<Key>PromptOutput\` on the
|
|
335
|
+
// success arm, and a key this tree does not declare is a compile error. A
|
|
336
|
+
// prompt that declares no output schema is \`{}\` here, so its \`parsed\` stays
|
|
337
|
+
// optional and \`unknown\`.
|
|
338
|
+
`;
|
|
339
|
+
/**
|
|
340
|
+
* The declaration for a whole tree's prompts. Sorted by key so the bytes
|
|
341
|
+
* depend on the files and not on the order they were read in. The
|
|
342
|
+
* augmentation is emitted even for a tree with no prompt: an empty
|
|
343
|
+
* `PromptSchemas` keeps `PromptKeys` open (`string`), so nothing breaks.
|
|
344
|
+
*/
|
|
345
|
+
export function renderPromptSchemasDeclaration(sources) {
|
|
346
|
+
const prompts = describeAll(sources).map((entry) => entry.prompt);
|
|
347
|
+
const lines = [DECLARATION_HEADER];
|
|
348
|
+
for (const prompt of prompts) {
|
|
349
|
+
if (prompt.agent) {
|
|
350
|
+
for (const decl of renderAgentTypeDecls(prompt)) {
|
|
351
|
+
lines.push(decl);
|
|
352
|
+
lines.push("");
|
|
353
|
+
}
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
if (prompt.outputSchema === undefined)
|
|
357
|
+
continue;
|
|
358
|
+
try {
|
|
359
|
+
lines.push(renderTypeDecl(prompt.outputTypeName, prompt.outputSchema));
|
|
360
|
+
}
|
|
361
|
+
catch (error) {
|
|
362
|
+
if (error instanceof FunctionSchemaCodegenError)
|
|
363
|
+
throw error;
|
|
364
|
+
throw new FunctionSchemaCodegenError(`${prompt.fileLabel}: \`outputSchema\` cannot be rendered as a ` +
|
|
365
|
+
`TypeScript type (${error?.message ?? error})`);
|
|
366
|
+
}
|
|
367
|
+
lines.push("");
|
|
368
|
+
}
|
|
369
|
+
if (prompts.length === 0) {
|
|
370
|
+
lines.push("export interface PrimitivePromptSchemas {}");
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
lines.push("export interface PrimitivePromptSchemas {");
|
|
374
|
+
for (const prompt of prompts) {
|
|
375
|
+
lines.push(prompt.agent
|
|
376
|
+
? ` ${JSON.stringify(prompt.key)}: ${agentSchemaEntry(prompt)};`
|
|
377
|
+
: prompt.outputSchema === undefined
|
|
378
|
+
? ` ${JSON.stringify(prompt.key)}: {};`
|
|
379
|
+
: ` ${JSON.stringify(prompt.key)}: { output: ${prompt.outputTypeName} };`);
|
|
380
|
+
}
|
|
381
|
+
lines.push("}");
|
|
382
|
+
}
|
|
383
|
+
lines.push("");
|
|
384
|
+
lines.push(`declare module "primitive-functions" {`);
|
|
385
|
+
lines.push(` interface PromptSchemas extends PrimitivePromptSchemas {}`);
|
|
386
|
+
lines.push(`}`);
|
|
387
|
+
lines.push("");
|
|
388
|
+
return lines.join("\n");
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Whether a source is an agent prompt, read leniently: a file that does not
|
|
392
|
+
* parse is not one here (the declaration renderer names the parse failure
|
|
393
|
+
* where it has always named it).
|
|
394
|
+
*/
|
|
395
|
+
function isAgentSource(source) {
|
|
396
|
+
try {
|
|
397
|
+
return promptKindOf(parseConfigToml(source.tomlContent)?.prompt) === "agent";
|
|
398
|
+
}
|
|
399
|
+
catch {
|
|
400
|
+
return false;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
/** Whether a tree declares any agent prompt — the codegen gate (DSO-3798-005). */
|
|
404
|
+
export function treeDeclaresAgentPrompt(configDir) {
|
|
405
|
+
return promptSchemaSources(configDir).some(isAgentSource);
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* The client-side artifact of each agent prompt — #3798:
|
|
409
|
+
* `<key>.agent.generated.ts`, carrying the agent's variables, client-tool and
|
|
410
|
+
* event types, the `<Key>AgentClientTools` / `<Key>AgentEvents` maps an app's
|
|
411
|
+
* session view is typed by, and `<Key>Agent.key`. Written beside the function
|
|
412
|
+
* invokers and owned by the same plan, so the invoker sweep keeps it; a
|
|
413
|
+
* Prettier fixed point, like them (#1565).
|
|
414
|
+
*/
|
|
415
|
+
export function renderAgentClientFiles(sources) {
|
|
416
|
+
const agents = describeAll(sources.filter(isAgentSource));
|
|
417
|
+
return agents.map(({ prompt, source }) => {
|
|
418
|
+
const agent = prompt.agent;
|
|
419
|
+
const base = prompt.typeBaseName;
|
|
420
|
+
const toolsMap = agent.clientTools.length === 0
|
|
421
|
+
? `export interface ${base}AgentClientTools {}`
|
|
422
|
+
: [
|
|
423
|
+
`export interface ${base}AgentClientTools {`,
|
|
424
|
+
...agent.clientTools.flatMap((tool) => [
|
|
425
|
+
` ${propertyKey(tool.name)}: {`,
|
|
426
|
+
` input: ${tool.input.typeName};`,
|
|
427
|
+
` output: ${tool.output.typeName};`,
|
|
428
|
+
` };`,
|
|
429
|
+
]),
|
|
430
|
+
`}`,
|
|
431
|
+
].join("\n");
|
|
432
|
+
const eventsMap = agent.events.length === 0
|
|
433
|
+
? `export interface ${base}AgentEvents {}`
|
|
434
|
+
: [
|
|
435
|
+
`export interface ${base}AgentEvents {`,
|
|
436
|
+
...agent.events.map((event) => ` ${propertyKey(event.name)}: ${event.typeName};`),
|
|
437
|
+
`}`,
|
|
438
|
+
].join("\n");
|
|
439
|
+
const blocks = [
|
|
440
|
+
[
|
|
441
|
+
`// AUTO-GENERATED FROM ${prompt.fileLabel} — DO NOT EDIT.`,
|
|
442
|
+
"// Run `primitive functions codegen` to regenerate.",
|
|
443
|
+
`// fingerprint: ${fingerprintToml(source.tomlContent)}`,
|
|
444
|
+
].join("\n"),
|
|
445
|
+
...renderAgentTypeDecls(prompt),
|
|
446
|
+
`/** The client tools a member of the \`${prompt.key}\` agent answers, by name. */\n${toolsMap}`,
|
|
447
|
+
`/** The event kinds the \`${prompt.key}\` agent records, by name. */\n${eventsMap}`,
|
|
448
|
+
[
|
|
449
|
+
`/** The \`${prompt.key}\` agent: the key a session is created with. */`,
|
|
450
|
+
`export const ${base}Agent = {`,
|
|
451
|
+
` key: ${tsStringLiteral(prompt.key)},`,
|
|
452
|
+
`} as const;`,
|
|
453
|
+
].join("\n"),
|
|
454
|
+
];
|
|
455
|
+
return {
|
|
456
|
+
key: prompt.key,
|
|
457
|
+
fileName: `${prompt.key}${AGENT_CLIENT_FILE_SUFFIX}`,
|
|
458
|
+
content: blocks.join("\n\n") + "\n",
|
|
459
|
+
};
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
//# sourceMappingURL=prompt-schema-codegen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-schema-codegen.js","sourceRoot":"","sources":["../../../src/lib/prompt-schema-codegen.ts"],"names":[],"mappings":"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"}
|