primitive-admin 1.2.0-alpha.1 → 1.2.0-alpha.10
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 +105 -134
- package/assets/skill/skills/primitive-platform/SKILL.md +37 -4
- package/dist/bin/primitive.js +30 -35
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/agent-sessions.d.ts +133 -0
- package/dist/src/commands/agent-sessions.js +792 -0
- package/dist/src/commands/agent-sessions.js.map +1 -0
- package/dist/src/commands/analytics.js +0 -148
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps-children.d.ts +54 -0
- package/dist/src/commands/apps-children.js +631 -0
- package/dist/src/commands/apps-children.js.map +1 -0
- package/dist/src/commands/apps.d.ts +6 -0
- package/dist/src/commands/apps.js +131 -9
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth-sessions.d.ts +3 -3
- package/dist/src/commands/auth-sessions.js +117 -23
- package/dist/src/commands/auth-sessions.js.map +1 -1
- package/dist/src/commands/auth.js +460 -36
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/collections.js +316 -256
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/config.d.ts +1 -1
- package/dist/src/commands/config.js +60 -28
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/connections.js +11 -12
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/database-type-configs.js +2 -76
- package/dist/src/commands/database-type-configs.js.map +1 -1
- package/dist/src/commands/databases.d.ts +9 -0
- package/dist/src/commands/databases.js +221 -457
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/db3-types.d.ts +15 -0
- package/dist/src/commands/db3-types.js +157 -0
- package/dist/src/commands/db3-types.js.map +1 -0
- package/dist/src/commands/db3.d.ts +12 -0
- package/dist/src/commands/db3.js +1052 -0
- package/dist/src/commands/db3.js.map +1 -0
- package/dist/src/commands/documents.d.ts +121 -2
- package/dist/src/commands/documents.js +1601 -1251
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/env.d.ts +9 -1
- package/dist/src/commands/env.js +164 -49
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/function-trigger-commands.d.ts +28 -0
- package/dist/src/commands/function-trigger-commands.js +341 -0
- package/dist/src/commands/function-trigger-commands.js.map +1 -0
- package/dist/src/commands/functions.js +297 -24
- package/dist/src/commands/functions.js.map +1 -1
- package/dist/src/commands/groups.js +150 -49
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.js +5 -5
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +23 -5
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +14 -8
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/metadata-category-configs.d.ts +2 -2
- package/dist/src/commands/metadata-category-configs.js +2 -2
- package/dist/src/commands/prompts.d.ts +7 -0
- package/dist/src/commands/prompts.js +48 -5
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +9 -17
- package/dist/src/commands/scripts.js +24 -479
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +36 -8
- package/dist/src/commands/sync-app-settings.js +109 -23
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +360 -610
- package/dist/src/commands/sync.js +3151 -6697
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +3 -3
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.js +77 -2
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +5 -83
- package/dist/src/commands/workflows.js +57 -2282
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/aggregate-output.d.ts +25 -0
- package/dist/src/lib/aggregate-output.js +53 -0
- package/dist/src/lib/aggregate-output.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +681 -551
- package/dist/src/lib/api-client.js +880 -814
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +47 -1
- package/dist/src/lib/app-settings-descriptor.js +114 -10
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/auth-fixtures.d.ts +44 -0
- package/dist/src/lib/auth-fixtures.js +61 -0
- package/dist/src/lib/auth-fixtures.js.map +1 -0
- package/dist/src/lib/auth-flow.d.ts +41 -1
- package/dist/src/lib/auth-flow.js +70 -16
- package/dist/src/lib/auth-flow.js.map +1 -1
- package/dist/src/lib/block-layout.d.ts +12 -23
- package/dist/src/lib/block-layout.js +26 -92
- package/dist/src/lib/block-layout.js.map +1 -1
- package/dist/src/lib/block-selector.d.ts +2 -2
- package/dist/src/lib/block-selector.js +2 -2
- package/dist/src/lib/child-apps-local.d.ts +164 -0
- package/dist/src/lib/child-apps-local.js +258 -0
- package/dist/src/lib/child-apps-local.js.map +1 -0
- package/dist/src/lib/ci-session-request.d.ts +22 -0
- package/dist/src/lib/ci-session-request.js +51 -0
- package/dist/src/lib/ci-session-request.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +10 -8
- package/dist/src/lib/codegen-shared/generatedFiles.js +21 -15
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.js +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +2 -2
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +2 -2
- package/dist/src/lib/collection-export.d.ts +76 -15
- package/dist/src/lib/collection-export.js +116 -23
- package/dist/src/lib/collection-export.js.map +1 -1
- package/dist/src/lib/collection-principal.d.ts +22 -0
- package/dist/src/lib/collection-principal.js +35 -0
- package/dist/src/lib/collection-principal.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.d.ts +3 -22
- package/dist/src/lib/config-object-descriptor.js +56 -290
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/config-payload.js +2 -3
- package/dist/src/lib/config-payload.js.map +1 -1
- package/dist/src/lib/config-surface.d.ts +5 -7
- package/dist/src/lib/config-surface.js +18 -40
- package/dist/src/lib/config-surface.js.map +1 -1
- package/dist/src/lib/connections-list.d.ts +10 -0
- package/dist/src/lib/connections-list.js +18 -0
- package/dist/src/lib/connections-list.js.map +1 -0
- package/dist/src/lib/credentials-home.d.ts +58 -0
- package/dist/src/lib/credentials-home.js +204 -0
- package/dist/src/lib/credentials-home.js.map +1 -0
- package/dist/src/lib/credentials-lock.d.ts +88 -0
- package/dist/src/lib/credentials-lock.js +302 -0
- package/dist/src/lib/credentials-lock.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +179 -24
- package/dist/src/lib/credentials-store.js +712 -77
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/csv.d.ts +8 -9
- package/dist/src/lib/csv.js +3 -4
- package/dist/src/lib/csv.js.map +1 -1
- package/dist/src/lib/custodian.d.ts +8 -0
- package/dist/src/lib/custodian.js +18 -0
- package/dist/src/lib/custodian.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +5 -16
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbNaming.d.ts +5 -13
- package/dist/src/lib/db-codegen/dbNaming.js +5 -17
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +7 -56
- package/dist/src/lib/db-codegen/dbTemplates.js +25 -125
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +2 -2
- package/dist/src/lib/db-codegen/dbTsTypes.js +2 -2
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +67 -2
- package/dist/src/lib/db-codegen/dbTypeIR.js +13 -2
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -1
- package/dist/src/lib/db3-export.d.ts +231 -0
- package/dist/src/lib/db3-export.js +510 -0
- package/dist/src/lib/db3-export.js.map +1 -0
- package/dist/src/lib/db3-index-output.d.ts +27 -0
- package/dist/src/lib/db3-index-output.js +49 -0
- package/dist/src/lib/db3-index-output.js.map +1 -0
- package/dist/src/lib/document-export-lookups.d.ts +31 -0
- package/dist/src/lib/document-export-lookups.js +53 -0
- package/dist/src/lib/document-export-lookups.js.map +1 -0
- package/dist/src/lib/document-export-permissions.d.ts +7 -5
- package/dist/src/lib/document-export-permissions.js +7 -5
- package/dist/src/lib/document-export-permissions.js.map +1 -1
- package/dist/src/lib/document-export-record-log.d.ts +57 -0
- package/dist/src/lib/document-export-record-log.js +215 -0
- package/dist/src/lib/document-export-record-log.js.map +1 -0
- package/dist/src/lib/document-ingest-artifact.d.ts +26 -2
- package/dist/src/lib/document-ingest-artifact.js +42 -8
- package/dist/src/lib/document-ingest-artifact.js.map +1 -1
- package/dist/src/lib/document-ingest-format2.d.ts +36 -0
- package/dist/src/lib/document-ingest-format2.js +78 -0
- package/dist/src/lib/document-ingest-format2.js.map +1 -0
- package/dist/src/lib/document-ingest-input.d.ts +9 -0
- package/dist/src/lib/document-ingest-input.js +28 -1
- package/dist/src/lib/document-ingest-input.js.map +1 -1
- package/dist/src/lib/document-ingest-rows.d.ts +16 -0
- package/dist/src/lib/document-ingest-rows.js +17 -0
- package/dist/src/lib/document-ingest-rows.js.map +1 -1
- package/dist/src/lib/document-ingest.d.ts +33 -1
- package/dist/src/lib/document-ingest.js +49 -0
- package/dist/src/lib/document-ingest.js.map +1 -1
- package/dist/src/lib/document-schema-rows.d.ts +42 -0
- package/dist/src/lib/document-schema-rows.js +53 -0
- package/dist/src/lib/document-schema-rows.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +70 -2
- package/dist/src/lib/env-resolver-core.js +137 -20
- package/dist/src/lib/env-resolver-core.js.map +1 -1
- package/dist/src/lib/env-resolver.d.ts +14 -2
- package/dist/src/lib/env-resolver.js +32 -10
- package/dist/src/lib/env-resolver.js.map +1 -1
- package/dist/src/lib/function-authorize-check.d.ts +142 -0
- package/dist/src/lib/function-authorize-check.js +310 -0
- package/dist/src/lib/function-authorize-check.js.map +1 -0
- package/dist/src/lib/function-authorize-view.d.ts +15 -0
- package/dist/src/lib/function-authorize-view.js +50 -0
- package/dist/src/lib/function-authorize-view.js.map +1 -0
- package/dist/src/lib/function-bundle.d.ts +38 -18
- package/dist/src/lib/function-bundle.js +96 -35
- package/dist/src/lib/function-bundle.js.map +1 -1
- package/dist/src/lib/function-collect.d.ts +75 -12
- package/dist/src/lib/function-collect.js +427 -12
- package/dist/src/lib/function-collect.js.map +1 -1
- package/dist/src/lib/function-db-types.d.ts +29 -0
- package/dist/src/lib/function-db-types.js +117 -7
- package/dist/src/lib/function-db-types.js.map +1 -1
- package/dist/src/lib/function-document-types.d.ts +5 -3
- package/dist/src/lib/function-document-types.js +10 -14
- package/dist/src/lib/function-document-types.js.map +1 -1
- package/dist/src/lib/function-lint.d.ts +34 -0
- package/dist/src/lib/function-lint.js +112 -0
- package/dist/src/lib/function-lint.js.map +1 -0
- package/dist/src/lib/function-log-row.js +21 -2
- package/dist/src/lib/function-log-row.js.map +1 -1
- package/dist/src/lib/function-run.d.ts +16 -21
- package/dist/src/lib/function-run.js +37 -30
- package/dist/src/lib/function-run.js.map +1 -1
- package/dist/src/lib/function-schema-codegen.d.ts +1 -1
- package/dist/src/lib/function-schema-codegen.js +5 -5
- package/dist/src/lib/function-schema-codegen.js.map +1 -1
- package/dist/src/lib/function-source-roots.d.ts +67 -0
- package/dist/src/lib/function-source-roots.js +148 -0
- package/dist/src/lib/function-source-roots.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +108 -22
- package/dist/src/lib/function-sync.js +127 -39
- package/dist/src/lib/function-sync.js.map +1 -1
- package/dist/src/lib/function-trigger-listing.d.ts +11 -6
- package/dist/src/lib/function-trigger-listing.js +32 -11
- package/dist/src/lib/function-trigger-listing.js.map +1 -1
- package/dist/src/lib/function-typecheck.d.ts +37 -2
- package/dist/src/lib/function-typecheck.js +210 -28
- package/dist/src/lib/function-typecheck.js.map +1 -1
- package/dist/src/lib/function-versions.d.ts +2 -0
- package/dist/src/lib/function-versions.js +1 -0
- package/dist/src/lib/function-versions.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +0 -20
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +703 -203
- package/dist/src/lib/generated-config-surfaces.js +2270 -2014
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/init-adopt.js +12 -3
- package/dist/src/lib/init-adopt.js.map +1 -1
- package/dist/src/lib/init-login-note.d.ts +13 -0
- package/dist/src/lib/init-login-note.js +22 -0
- package/dist/src/lib/init-login-note.js.map +1 -0
- package/dist/src/lib/json-value.d.ts +6 -0
- package/dist/src/lib/json-value.js +13 -0
- package/dist/src/lib/json-value.js.map +1 -0
- package/dist/src/lib/load-routes.d.ts +33 -0
- package/dist/src/lib/load-routes.js +35 -0
- package/dist/src/lib/load-routes.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +38 -7
- package/dist/src/lib/local-state.js +172 -49
- package/dist/src/lib/local-state.js.map +1 -1
- package/dist/src/lib/local-test-cases.d.ts +5 -2
- package/dist/src/lib/local-test-cases.js +7 -4
- package/dist/src/lib/local-test-cases.js.map +1 -1
- package/dist/src/lib/log-inspection.d.ts +42 -4
- package/dist/src/lib/log-inspection.js +37 -5
- package/dist/src/lib/log-inspection.js.map +1 -1
- package/dist/src/lib/login-exchange-check.d.ts +18 -0
- package/dist/src/lib/login-exchange-check.js +27 -0
- package/dist/src/lib/login-exchange-check.js.map +1 -0
- package/dist/src/lib/login-scope-lines.d.ts +25 -0
- package/dist/src/lib/login-scope-lines.js +45 -0
- package/dist/src/lib/login-scope-lines.js.map +1 -0
- package/dist/src/lib/logout-admin-session.d.ts +2 -1
- package/dist/src/lib/logout-admin-session.js +7 -1
- package/dist/src/lib/logout-admin-session.js.map +1 -1
- package/dist/src/lib/object-status-filter.d.ts +9 -1
- package/dist/src/lib/object-status-filter.js +9 -1
- package/dist/src/lib/object-status-filter.js.map +1 -1
- package/dist/src/lib/output.js +2 -0
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +0 -5
- package/dist/src/lib/paginate.js +0 -5
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/pin-refusal-hint.d.ts +12 -0
- package/dist/src/lib/pin-refusal-hint.js +35 -0
- package/dist/src/lib/pin-refusal-hint.js.map +1 -0
- package/dist/src/lib/primitive-env-plugin.d.ts +99 -0
- package/dist/src/lib/primitive-env-plugin.js +408 -0
- package/dist/src/lib/primitive-env-plugin.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +7 -0
- package/dist/src/lib/project-config.js +22 -1
- package/dist/src/lib/project-config.js.map +1 -1
- package/dist/src/lib/project-login-apps.d.ts +8 -0
- package/dist/src/lib/project-login-apps.js +27 -0
- package/dist/src/lib/project-login-apps.js.map +1 -0
- package/dist/src/lib/prompt-schema-codegen.d.ts +10 -3
- package/dist/src/lib/prompt-schema-codegen.js +52 -11
- package/dist/src/lib/prompt-schema-codegen.js.map +1 -1
- package/dist/src/lib/pull-write.d.ts +31 -0
- package/dist/src/lib/pull-write.js +49 -0
- package/dist/src/lib/pull-write.js.map +1 -0
- package/dist/src/lib/push-failure-report.d.ts +45 -0
- package/dist/src/lib/push-failure-report.js +57 -0
- package/dist/src/lib/push-failure-report.js.map +1 -0
- package/dist/src/lib/records-verbs.d.ts +69 -0
- package/dist/src/lib/records-verbs.js +40 -0
- package/dist/src/lib/records-verbs.js.map +1 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +7 -0
- package/dist/src/lib/refresh-admin-credentials.js +16 -4
- package/dist/src/lib/refresh-admin-credentials.js.map +1 -1
- package/dist/src/lib/root-import-decision.d.ts +65 -0
- package/dist/src/lib/root-import-decision.js +109 -0
- package/dist/src/lib/root-import-decision.js.map +1 -0
- package/dist/src/lib/run-status.d.ts +1 -1
- package/dist/src/lib/run-status.generated.d.ts +2 -2
- package/dist/src/lib/run-status.generated.js +3 -1
- package/dist/src/lib/run-status.generated.js.map +1 -1
- package/dist/src/lib/run-status.js +1 -1
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.d.ts +129 -0
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.js +269 -0
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/schema-codegen/naming.d.ts +35 -0
- package/dist/src/lib/schema-codegen/naming.js +83 -0
- package/dist/src/lib/schema-codegen/naming.js.map +1 -0
- package/dist/src/lib/schema-codegen/schemaToTs.d.ts +82 -0
- package/dist/src/lib/schema-codegen/schemaToTs.js +305 -0
- package/dist/src/lib/schema-codegen/schemaToTs.js.map +1 -0
- package/dist/src/lib/scope-request.d.ts +84 -0
- package/dist/src/lib/scope-request.js +235 -0
- package/dist/src/lib/scope-request.js.map +1 -0
- package/dist/src/lib/session-id.d.ts +9 -0
- package/dist/src/lib/session-id.js +28 -0
- package/dist/src/lib/session-id.js.map +1 -0
- package/dist/src/lib/snapshot-build-rows.d.ts +21 -0
- package/dist/src/lib/snapshot-build-rows.js +22 -0
- package/dist/src/lib/snapshot-build-rows.js.map +1 -1
- package/dist/src/lib/snapshot-build.js +8 -3
- package/dist/src/lib/snapshot-build.js.map +1 -1
- package/dist/src/lib/snapshots.d.ts +17 -1
- package/dist/src/lib/snapshots.js +50 -2
- package/dist/src/lib/snapshots.js.map +1 -1
- package/dist/src/lib/swift-codegen/agentGenerator.d.ts +6 -2
- package/dist/src/lib/swift-codegen/agentGenerator.js +57 -5
- package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/banners.d.ts +34 -7
- package/dist/src/lib/swift-codegen/banners.js +37 -7
- package/dist/src/lib/swift-codegen/banners.js.map +1 -1
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +4 -3
- package/dist/src/lib/swift-codegen/dbGenerator.js +14 -117
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/functionGenerator.d.ts +3 -3
- package/dist/src/lib/swift-codegen/functionGenerator.js +23 -18
- package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +5 -5
- package/dist/src/lib/swift-codegen/generator.js +35 -40
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +3 -3
- package/dist/src/lib/swift-codegen/schemaToSwift.js +4 -4
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -1
- package/dist/src/lib/swift-codegen/swiftKeys.d.ts +19 -0
- package/dist/src/lib/swift-codegen/swiftKeys.js +31 -0
- package/dist/src/lib/swift-codegen/swiftKeys.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +35 -0
- package/dist/src/lib/sync-paths.js +57 -5
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/sync-resource-types.d.ts +26 -26
- package/dist/src/lib/sync-resource-types.js +61 -189
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +5 -1
- package/dist/src/lib/sync-selectors.js +23 -13
- package/dist/src/lib/sync-selectors.js.map +1 -1
- package/dist/src/lib/test-case-file-names.d.ts +3 -5
- package/dist/src/lib/test-case-file-names.js +3 -5
- package/dist/src/lib/test-case-file-names.js.map +1 -1
- package/dist/src/lib/toml-database-config.d.ts +15 -75
- package/dist/src/lib/toml-database-config.js +17 -306
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/transient-retry.d.ts +43 -0
- package/dist/src/lib/transient-retry.js +94 -0
- package/dist/src/lib/transient-retry.js.map +1 -0
- package/dist/src/lib/vars-override.d.ts +105 -0
- package/dist/src/lib/vars-override.js +143 -0
- package/dist/src/lib/vars-override.js.map +1 -0
- package/dist/src/lib/webhook-capture.d.ts +43 -0
- package/dist/src/lib/webhook-capture.js +91 -0
- package/dist/src/lib/webhook-capture.js.map +1 -0
- package/dist/src/lib/webhook-deliver.d.ts +18 -20
- package/dist/src/lib/webhook-deliver.js +34 -89
- package/dist/src/lib/webhook-deliver.js.map +1 -1
- package/dist/src/lib/webhook-test-run.d.ts +32 -0
- package/dist/src/lib/webhook-test-run.js +108 -0
- package/dist/src/lib/webhook-test-run.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +7 -7
- package/dist/src/lib/workflow-codegen/generator.js +16 -23
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +6 -12
- package/dist/src/lib/workflow-codegen/invokerIR.js +4 -5
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +2 -0
- package/dist/src/lib/workflow-toml-validator.js +28 -1
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +30 -37
- package/dist/src/validators.d.ts +7 -55
- package/dist/src/validators.js +7 -53
- package/dist/src/validators.js.map +1 -1
- package/dist/src/vite.d.ts +17 -0
- package/dist/src/vite.js +18 -0
- package/dist/src/vite.js.map +1 -0
- package/package.json +20 -12
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The admin session a token belongs to: a JWT's `sid` claim, or the session
|
|
3
|
+
* segment of an opaque CI token (`primadm_<sessionId>_<secret>`, #3890).
|
|
4
|
+
* Read without verifying anything; the server is the judge of the token.
|
|
5
|
+
*/
|
|
6
|
+
const CI_TOKEN = /^primadm_([0-9A-HJKMNP-TV-Z]{26})_[A-Za-z0-9_-]{43}$/;
|
|
7
|
+
/** Whether `token` is an opaque CI token rather than a JWT. */
|
|
8
|
+
export function isCiToken(token) {
|
|
9
|
+
return typeof token === "string" && token.startsWith("primadm_");
|
|
10
|
+
}
|
|
11
|
+
/** The session id `token` names, or undefined when it names none. */
|
|
12
|
+
export function sessionIdOfToken(token) {
|
|
13
|
+
if (!token)
|
|
14
|
+
return undefined;
|
|
15
|
+
const ci = CI_TOKEN.exec(token);
|
|
16
|
+
if (ci)
|
|
17
|
+
return ci[1];
|
|
18
|
+
if (isCiToken(token))
|
|
19
|
+
return undefined;
|
|
20
|
+
try {
|
|
21
|
+
const payload = JSON.parse(Buffer.from(token.split(".")[1] ?? "", "base64url").toString("utf-8"));
|
|
22
|
+
return typeof payload?.sid === "string" && payload.sid ? payload.sid : undefined;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=session-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-id.js","sourceRoot":"","sources":["../../../src/lib/session-id.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,QAAQ,GAAG,sDAAsD,CAAC;AAExE,+DAA+D;AAC/D,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACnE,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtE,CAAC;QACF,OAAO,OAAO,OAAO,EAAE,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -58,3 +58,24 @@ export interface SnapshotBuildPayload {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
export declare function snapshotBuildRows(build: SnapshotBuildPayload): SnapshotBuildRow[];
|
|
61
|
+
/**
|
|
62
|
+
* The rows `documents snapshots get` and `build` print for a record-log
|
|
63
|
+
* (format 3) document's segment (#4310): where its export began (`B`), the
|
|
64
|
+
* log number its corrections were read at (`C`), and what it holds.
|
|
65
|
+
*/
|
|
66
|
+
export declare function segmentRows(segment: {
|
|
67
|
+
segmentId: string;
|
|
68
|
+
state: string;
|
|
69
|
+
lsn: number;
|
|
70
|
+
completedLsn: number | null;
|
|
71
|
+
rows: number;
|
|
72
|
+
chunks: number;
|
|
73
|
+
corrections: number | null;
|
|
74
|
+
bytes: number;
|
|
75
|
+
startedAt: number;
|
|
76
|
+
completedAt: number | null;
|
|
77
|
+
failure?: {
|
|
78
|
+
code: string;
|
|
79
|
+
reason: string;
|
|
80
|
+
} | null;
|
|
81
|
+
}): SnapshotBuildRow[];
|
|
@@ -84,4 +84,26 @@ export function snapshotBuildRows(build) {
|
|
|
84
84
|
}
|
|
85
85
|
return rows;
|
|
86
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* The rows `documents snapshots get` and `build` print for a record-log
|
|
89
|
+
* (format 3) document's segment (#4310): where its export began (`B`), the
|
|
90
|
+
* log number its corrections were read at (`C`), and what it holds.
|
|
91
|
+
*/
|
|
92
|
+
export function segmentRows(segment) {
|
|
93
|
+
const rows = [
|
|
94
|
+
["Segment", segment.segmentId],
|
|
95
|
+
["State", segment.state],
|
|
96
|
+
["Log number", segment.lsn],
|
|
97
|
+
["Completed at log number", segment.completedLsn ?? "—"],
|
|
98
|
+
["Rows", segment.rows],
|
|
99
|
+
["Chunks", segment.chunks],
|
|
100
|
+
["Corrections", segment.corrections ?? "—"],
|
|
101
|
+
["Bytes", segment.bytes],
|
|
102
|
+
["Started", formatDate(segment.startedAt)],
|
|
103
|
+
["Completed", segment.completedAt ? formatDate(segment.completedAt) : "—"],
|
|
104
|
+
];
|
|
105
|
+
if (segment.failure)
|
|
106
|
+
rows.push(["Failure", `${segment.failure.code} — ${segment.failure.reason}`]);
|
|
107
|
+
return rows;
|
|
108
|
+
}
|
|
87
109
|
//# sourceMappingURL=snapshot-build-rows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-build-rows.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build-rows.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshot-build-rows.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build-rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,8 +58,13 @@ export async function driveSnapshotBuild(options) {
|
|
|
58
58
|
onProgress?.("The open epoch carried nothing, so it was not sealed and no build was started.");
|
|
59
59
|
return { exitCode: 0, response, build: null };
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
// A record-log (format 3) document answers with the segment export it
|
|
62
|
+
// started (#4310); it is watched the same way, to `complete` or `failed`.
|
|
63
|
+
const segmentId = typeof response?.segmentId === "string" ? response.segmentId : null;
|
|
64
|
+
const buildId = String(segmentId ?? response?.buildId ?? "");
|
|
65
|
+
onProgress?.(segmentId
|
|
66
|
+
? `Segment ${segmentId} exporting from log number ${response?.lsn}.`
|
|
67
|
+
: `Sealed epoch ${response?.sealedEpoch}; build ${buildId}.`);
|
|
63
68
|
if (!wait || !buildId)
|
|
64
69
|
return { exitCode: 0, response, build: null };
|
|
65
70
|
const startedAt = now();
|
|
@@ -99,7 +104,7 @@ export async function driveSnapshotBuild(options) {
|
|
|
99
104
|
continue;
|
|
100
105
|
}
|
|
101
106
|
const verification = build?.verification;
|
|
102
|
-
if (verification?.state === "passed") {
|
|
107
|
+
if (segmentId ? build?.state === "complete" : verification?.state === "passed") {
|
|
103
108
|
return { exitCode: 0, response, build };
|
|
104
109
|
}
|
|
105
110
|
if (verification?.state === "failed" || build?.state === "failed") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-build.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmCH,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAG,OAAO,CAAC;AACvC,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B,mDAAmD;AACnD,SAAS,aAAa,CAAC,QAAa;IAClC,OAAO,QAAQ,EAAE,MAAM,KAAK,KAAK,CAAC;AACpC,CAAC;AAED,gFAAgF;AAChF,SAAS,aAAa,CAAC,KAAU;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,MAAM,KAAK,GAAG,CAAC;AACxB,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,KAAU;IAC7B,MAAM,MAAM,GAAG,KAAK,EAAE,YAAY,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC;IAC7F,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,8BAA8B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACnD,CAAC,CAAC,4BAA4B,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAkC;IAElC,MAAM,EACJ,MAAM,EACN,UAAU,EACV,IAAI,GAAG,KAAK,EACZ,SAAS,GAAG,IAAI,EAChB,MAAM,EACN,UAAU,GACX,GAAG,OAAO,CAAC;IACZ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAE1D,uEAAuE;IACvE,8DAA8D;IAC9D,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,UAAU,EAAE,CACV,gFAAgF,CACjF,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot-build.js","sourceRoot":"","sources":["../../../src/lib/snapshot-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,13 @@ export interface SnapshotInfo {
|
|
|
56
56
|
export declare function createSnapshot(syncDir: string, snapshotsRoot: string, opts?: {
|
|
57
57
|
auditId?: string;
|
|
58
58
|
now?: Date;
|
|
59
|
+
/**
|
|
60
|
+
* A machine-local environment's own baseline (#4117). Its tree is shared
|
|
61
|
+
* with a committed environment, so the tree's baseline files are that
|
|
62
|
+
* environment's: they are left out, and this file — when it exists — is
|
|
63
|
+
* carried as the snapshot's `.sync-state.json` instead.
|
|
64
|
+
*/
|
|
65
|
+
baselinePath?: string;
|
|
59
66
|
}): SnapshotResult | null;
|
|
60
67
|
/**
|
|
61
68
|
* List snapshots under `snapshotsRoot`, newest-first. Returns an empty array
|
|
@@ -89,7 +96,16 @@ export declare function resolveSnapshot(snapshotsRoot: string, id: string | unde
|
|
|
89
96
|
* only for the case where the snapshots root sat inside the directory being
|
|
90
97
|
* replaced.
|
|
91
98
|
*/
|
|
92
|
-
export declare function restoreSnapshot(snapshotPath: string, syncDir: string
|
|
99
|
+
export declare function restoreSnapshot(snapshotPath: string, syncDir: string, opts?: {
|
|
100
|
+
/**
|
|
101
|
+
* A machine-local environment's own baseline (#4117). The snapshot's
|
|
102
|
+
* `.sync-state.json` is restored HERE (and this file removed when the
|
|
103
|
+
* snapshot carries none), never into the shared tree; the tree's own
|
|
104
|
+
* baseline files — the committed environment's — come through the swap
|
|
105
|
+
* exactly as they are, present or absent.
|
|
106
|
+
*/
|
|
107
|
+
baselinePath?: string;
|
|
108
|
+
}): void;
|
|
93
109
|
/**
|
|
94
110
|
* Prune snapshots older than `retentionDays` from `snapshotsRoot`. Only the
|
|
95
111
|
* given slot is touched (cross-slot retention is independent — each slot has
|
|
@@ -24,6 +24,14 @@
|
|
|
24
24
|
*/
|
|
25
25
|
import { existsSync, readdirSync, statSync, writeFileSync, readFileSync, cpSync, rmSync, renameSync, mkdirSync, } from "fs";
|
|
26
26
|
import { join, dirname } from "path";
|
|
27
|
+
import { LEGACY_SYNC_STATE_FILENAME, SYNC_STATE_FILENAME } from "./sync-paths.js";
|
|
28
|
+
/**
|
|
29
|
+
* The two names a committed environment's baseline has in its tree: the
|
|
30
|
+
* current one and the pre-#3153 one still read (#3392).
|
|
31
|
+
*/
|
|
32
|
+
const TREE_BASELINE_NAMES = [SYNC_STATE_FILENAME, LEGACY_SYNC_STATE_FILENAME];
|
|
33
|
+
/** The name a snapshot carries its baseline under. */
|
|
34
|
+
const SNAPSHOT_BASELINE_NAME = SYNC_STATE_FILENAME;
|
|
27
35
|
/** Marker file written LAST inside a snapshot to prove it completed. */
|
|
28
36
|
export const SNAPSHOT_COMPLETE_MARKER = ".snapshot-complete";
|
|
29
37
|
/** Cross-link to the audit entry that produced the snapshot (Phase 2). */
|
|
@@ -86,7 +94,21 @@ export function createSnapshot(syncDir, snapshotsRoot, opts = {}) {
|
|
|
86
94
|
mkdirSync(snapshotsRoot, { recursive: true });
|
|
87
95
|
// Full recursive copy. `dereference: false` keeps symlinks from being
|
|
88
96
|
// silently followed (edge case: symlinks inside the sync tree).
|
|
89
|
-
|
|
97
|
+
const baselinePath = opts.baselinePath;
|
|
98
|
+
if (baselinePath === undefined) {
|
|
99
|
+
cpSync(syncDir, finalDest, { recursive: true, dereference: false });
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
const skipped = new Set(TREE_BASELINE_NAMES.map((name) => join(syncDir, name)));
|
|
103
|
+
cpSync(syncDir, finalDest, {
|
|
104
|
+
recursive: true,
|
|
105
|
+
dereference: false,
|
|
106
|
+
filter: (source) => !skipped.has(source),
|
|
107
|
+
});
|
|
108
|
+
if (existsSync(baselinePath)) {
|
|
109
|
+
cpSync(baselinePath, join(finalDest, SNAPSHOT_BASELINE_NAME));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
90
112
|
if (opts.auditId) {
|
|
91
113
|
writeFileSync(join(finalDest, SNAPSHOT_AUDIT_ID_MARKER), opts.auditId);
|
|
92
114
|
}
|
|
@@ -208,7 +230,7 @@ export function resolveSnapshot(snapshotsRoot, id, minPrefix = 8) {
|
|
|
208
230
|
* only for the case where the snapshots root sat inside the directory being
|
|
209
231
|
* replaced.
|
|
210
232
|
*/
|
|
211
|
-
export function restoreSnapshot(snapshotPath, syncDir) {
|
|
233
|
+
export function restoreSnapshot(snapshotPath, syncDir, opts = {}) {
|
|
212
234
|
if (!existsSync(snapshotPath)) {
|
|
213
235
|
throw new Error(`Snapshot not found: ${snapshotPath}`);
|
|
214
236
|
}
|
|
@@ -230,6 +252,23 @@ export function restoreSnapshot(snapshotPath, syncDir) {
|
|
|
230
252
|
rmSync(markerPath, { force: true });
|
|
231
253
|
}
|
|
232
254
|
}
|
|
255
|
+
// A machine-local environment's baseline is not part of the tree: set it
|
|
256
|
+
// aside, and carry the committed environment's baseline names across the
|
|
257
|
+
// swap exactly as the live tree holds them.
|
|
258
|
+
const baselinePath = opts.baselinePath;
|
|
259
|
+
let snapshotBaseline = null;
|
|
260
|
+
if (baselinePath !== undefined) {
|
|
261
|
+
const staged = join(stageDir, SNAPSHOT_BASELINE_NAME);
|
|
262
|
+
if (existsSync(staged))
|
|
263
|
+
snapshotBaseline = readFileSync(staged);
|
|
264
|
+
for (const name of TREE_BASELINE_NAMES) {
|
|
265
|
+
const live = join(syncDir, name);
|
|
266
|
+
const stagedName = join(stageDir, name);
|
|
267
|
+
rmSync(stagedName, { force: true });
|
|
268
|
+
if (existsSync(live))
|
|
269
|
+
cpSync(live, stagedName);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
233
272
|
// Atomic-ish swap: move the live dir aside, move staging into place, then
|
|
234
273
|
// delete the old dir. Same-filesystem renames are atomic.
|
|
235
274
|
if (existsSync(syncDir)) {
|
|
@@ -255,6 +294,15 @@ export function restoreSnapshot(snapshotPath, syncDir) {
|
|
|
255
294
|
if (existsSync(oldDir)) {
|
|
256
295
|
rmSync(oldDir, { recursive: true, force: true });
|
|
257
296
|
}
|
|
297
|
+
if (baselinePath !== undefined) {
|
|
298
|
+
if (snapshotBaseline) {
|
|
299
|
+
mkdirSync(dirname(baselinePath), { recursive: true });
|
|
300
|
+
writeFileSync(baselinePath, snapshotBaseline);
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
rmSync(baselinePath, { force: true });
|
|
304
|
+
}
|
|
305
|
+
}
|
|
258
306
|
}
|
|
259
307
|
finally {
|
|
260
308
|
// Clean up any leftover staging/old dirs on failure.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../../src/lib/snapshots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,MAAM,EACN,MAAM,EACN,UAAU,EACV,SAAS,GACV,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../../src/lib/snapshots.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,13 @@
|
|
|
8
8
|
* - `<Key>Tool<Name>Input` / `<Key>Tool<Name>Output` for every CLIENT tool
|
|
9
9
|
* (a server tool's schemas are its function's, typed in that function's
|
|
10
10
|
* own file);
|
|
11
|
-
* - `<Key>
|
|
11
|
+
* - `<Key>Presentation<Name>` for every presentation (`runs =
|
|
12
|
+
* "presentation"`, #4549), from its `inputSchema`;
|
|
13
|
+
* - `<Key>Event<Name>` for every event kind;
|
|
14
|
+
* - `<Key>AgentPresentation`, an enum with one case per presentation that
|
|
15
|
+
* decodes the client's `AgentPresentation` by name; and
|
|
12
16
|
* - `<Key>Agent`, a namespace enum with the key a session is created with
|
|
13
|
-
* and the declared client-tool and event names.
|
|
17
|
+
* and the declared client-tool, presentation and event names.
|
|
14
18
|
*
|
|
15
19
|
* ── Nothing about the agent is re-derived here ───────────────────────────
|
|
16
20
|
*
|
|
@@ -8,9 +8,13 @@
|
|
|
8
8
|
* - `<Key>Tool<Name>Input` / `<Key>Tool<Name>Output` for every CLIENT tool
|
|
9
9
|
* (a server tool's schemas are its function's, typed in that function's
|
|
10
10
|
* own file);
|
|
11
|
-
* - `<Key>
|
|
11
|
+
* - `<Key>Presentation<Name>` for every presentation (`runs =
|
|
12
|
+
* "presentation"`, #4549), from its `inputSchema`;
|
|
13
|
+
* - `<Key>Event<Name>` for every event kind;
|
|
14
|
+
* - `<Key>AgentPresentation`, an enum with one case per presentation that
|
|
15
|
+
* decodes the client's `AgentPresentation` by name; and
|
|
12
16
|
* - `<Key>Agent`, a namespace enum with the key a session is created with
|
|
13
|
-
* and the declared client-tool and event names.
|
|
17
|
+
* and the declared client-tool, presentation and event names.
|
|
14
18
|
*
|
|
15
19
|
* ── Nothing about the agent is re-derived here ───────────────────────────
|
|
16
20
|
*
|
|
@@ -28,7 +32,8 @@
|
|
|
28
32
|
import { fingerprintToml } from "../db-codegen/dbFingerprint.js";
|
|
29
33
|
import { describePromptSchema, } from "../prompt-schema-codegen.js";
|
|
30
34
|
import { renderSwiftRootType, SwiftCodegenError } from "./schemaToSwift.js";
|
|
31
|
-
import { swiftKeyLiteral } from "./
|
|
35
|
+
import { swiftKeyLiteral } from "./swiftKeys.js";
|
|
36
|
+
import { enumCaseNames } from "./swiftNaming.js";
|
|
32
37
|
import { AGENT_SWIFT_BANNER_PREFIX } from "./banners.js";
|
|
33
38
|
import { parseTopLevelSwiftSymbols } from "./siblingSymbols.js";
|
|
34
39
|
export { AGENT_SWIFT_BANNER_PREFIX };
|
|
@@ -39,6 +44,47 @@ const INDENT = " ";
|
|
|
39
44
|
function nameList(names) {
|
|
40
45
|
return `[${names.map(swiftKeyLiteral).join(", ")}]`;
|
|
41
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* `<Key>AgentPresentation`: one case per presentation carrying its typed
|
|
49
|
+
* input, and `init?(_:)`, which decodes a presentation the session view
|
|
50
|
+
* answers by its name — `nil` for another name or an input that does not
|
|
51
|
+
* decode. An agent with no presentation gets the enum with no case.
|
|
52
|
+
*
|
|
53
|
+
* The decode is a `do`/`catch`, not `try?`: an input schema that admits
|
|
54
|
+
* `null` types the case as an optional, and a decoded `nil` is a presentation
|
|
55
|
+
* the model sent, not a failure (CSO-4549-001).
|
|
56
|
+
*/
|
|
57
|
+
function presentationEnum(typeBaseName, key, presentations) {
|
|
58
|
+
// `_` is a legal agent name and `enumCaseIdentifier` keeps it, but a bare
|
|
59
|
+
// `_` is not a legal case name or member reference (CSO-4549-002).
|
|
60
|
+
const cases = enumCaseNames(presentations.map((presentation) => presentation.name)).map((named, index) => ({
|
|
61
|
+
...named,
|
|
62
|
+
name: named.name === "_" ? "`_`" : named.name,
|
|
63
|
+
typeName: presentations[index].typeName,
|
|
64
|
+
}));
|
|
65
|
+
const lines = [
|
|
66
|
+
`/// A presentation the \`${key}\` agent hands the client with its answer,`,
|
|
67
|
+
`/// typed by name: decode one of \`view.presentations(of:names:)\` with \`init?(_:)\`.`,
|
|
68
|
+
`public enum ${typeBaseName}AgentPresentation: Equatable, Sendable {`,
|
|
69
|
+
];
|
|
70
|
+
for (const { name, typeName } of cases)
|
|
71
|
+
lines.push(`${INDENT}case ${name}(${typeName})`);
|
|
72
|
+
if (cases.length > 0)
|
|
73
|
+
lines.push("");
|
|
74
|
+
lines.push(`${INDENT}/// The presentation's typed input; \`nil\` for a name this agent does not`, `${INDENT}/// declare, or an input its type does not decode.`, `${INDENT}public init?(_ presentation: AgentPresentation) {`);
|
|
75
|
+
if (cases.length === 0) {
|
|
76
|
+
lines.push(`${INDENT}${INDENT}return nil`);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
lines.push(`${INDENT}${INDENT}switch presentation.name {`);
|
|
80
|
+
for (const { name, raw, typeName } of cases) {
|
|
81
|
+
lines.push(`${INDENT}${INDENT}case ${swiftKeyLiteral(raw)}:`, `${INDENT}${INDENT}${INDENT}do { self = .${name}(try presentation.decode(${typeName}.self)) } catch { return nil }`);
|
|
82
|
+
}
|
|
83
|
+
lines.push(`${INDENT}${INDENT}default:`, `${INDENT}${INDENT}${INDENT}return nil`, `${INDENT}${INDENT}}`);
|
|
84
|
+
}
|
|
85
|
+
lines.push(`${INDENT}}`, `}`);
|
|
86
|
+
return lines.join("\n");
|
|
87
|
+
}
|
|
42
88
|
/**
|
|
43
89
|
* Render the full `<key>.agent.generated.swift` content for one agent prompt.
|
|
44
90
|
* Pure — exported so tests can assert on the string directly. Throws a
|
|
@@ -66,6 +112,10 @@ export function renderAgentSwiftFile(source) {
|
|
|
66
112
|
decl: renderSwiftRootType(tool.output.typeName, tool.output.schema, { sourceFile }),
|
|
67
113
|
},
|
|
68
114
|
]),
|
|
115
|
+
...agent.presentations.map((presentation) => ({
|
|
116
|
+
path: `tools.${presentation.name}.inputSchema`,
|
|
117
|
+
decl: renderSwiftRootType(presentation.typeName, presentation.schema, { sourceFile }),
|
|
118
|
+
})),
|
|
69
119
|
...agent.events.map((event) => ({
|
|
70
120
|
path: `events.${event.name}.schema`,
|
|
71
121
|
decl: renderSwiftRootType(event.typeName, event.schema, { sourceFile }),
|
|
@@ -88,12 +138,14 @@ export function renderAgentSwiftFile(source) {
|
|
|
88
138
|
}
|
|
89
139
|
}
|
|
90
140
|
const decls = rendered.map((entry) => entry.decl);
|
|
141
|
+
const presentations = presentationEnum(prompt.typeBaseName, prompt.key, agent.presentations);
|
|
91
142
|
const namespace = [
|
|
92
143
|
`/// The \`${prompt.key}\` agent: the key a session is created with, and the`,
|
|
93
|
-
`/// client tools and event kinds it declares.`,
|
|
144
|
+
`/// client tools, presentations and event kinds it declares.`,
|
|
94
145
|
`public enum ${prompt.typeBaseName}Agent {`,
|
|
95
146
|
`${INDENT}public static let key = ${swiftKeyLiteral(prompt.key)}`,
|
|
96
147
|
`${INDENT}public static let clientToolNames: [String] = ${nameList(agent.clientTools.map((tool) => tool.name))}`,
|
|
148
|
+
`${INDENT}public static let presentationNames: [String] = ${nameList(agent.presentations.map((presentation) => presentation.name))}`,
|
|
97
149
|
`${INDENT}public static let eventNames: [String] = ${nameList(agent.events.map((event) => event.name))}`,
|
|
98
150
|
`}`,
|
|
99
151
|
].join("\n");
|
|
@@ -105,7 +157,7 @@ export function renderAgentSwiftFile(source) {
|
|
|
105
157
|
// `JsBaoClient` for `JSONValue`, which an open schema renders to — the
|
|
106
158
|
// import the function invokers carry too.
|
|
107
159
|
const imports = ["import Foundation", "import JsBaoClient"].join("\n");
|
|
108
|
-
const content = [banner, imports, ...decls, namespace].join("\n\n") + "\n";
|
|
160
|
+
const content = [banner, imports, ...decls, presentations, namespace].join("\n\n") + "\n";
|
|
109
161
|
return {
|
|
110
162
|
key: prompt.key,
|
|
111
163
|
content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/agentGenerator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/agentGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ownership banners the CLI's Swift generators stamp and guard against.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* Two generators write `.generated.swift` files that may share one output
|
|
5
|
+
* directory — workflows and (since #3344) server functions. Each one sweeps
|
|
6
|
+
* only the files carrying its OWN banner and refuses to overwrite a file
|
|
7
|
+
* carrying the other's. The banners live here, with no imports of their own,
|
|
8
|
+
* so both generators can name them without an import cycle.
|
|
9
|
+
*
|
|
10
|
+
* A third generator, the database one, was retired with `primitive databases
|
|
11
|
+
* codegen` (#3189). Its banners stay RECOGNIZED: a database file left in an
|
|
12
|
+
* output directory belongs to no generator any more, so both surviving
|
|
13
|
+
* generators treat it as stale generated output to sweep — never as a file the
|
|
14
|
+
* author wrote, and never as another live generator's.
|
|
11
15
|
*/
|
|
12
16
|
/**
|
|
13
17
|
* Banner prefix stamped at the top of every `functions codegen --lang swift`
|
|
@@ -22,3 +26,26 @@ export declare const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM func
|
|
|
22
26
|
* invokers but from `prompts/`, so the two are told apart by content too.
|
|
23
27
|
*/
|
|
24
28
|
export declare const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
|
|
29
|
+
/**
|
|
30
|
+
* Banner prefix the retired database Swift generator stamped on every
|
|
31
|
+
* `.generated.swift` file it wrote. RECOGNITION ONLY since #3189 — nothing
|
|
32
|
+
* emits it. Distinct from the workflow and function banners and from the model
|
|
33
|
+
* codegen's (`// Generated by swift-bao-codegen`), so recognizing it claims no
|
|
34
|
+
* live generator's file.
|
|
35
|
+
*/
|
|
36
|
+
export declare const DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-type-configs/";
|
|
37
|
+
/**
|
|
38
|
+
* The banner the database generator stamped before issue #2760 renamed the
|
|
39
|
+
* source directory. RECOGNITION ONLY — nothing emits it.
|
|
40
|
+
*
|
|
41
|
+
* Ownership everywhere is `contents.startsWith(banner)`, so without this a file
|
|
42
|
+
* generated before the rename would match no banner at all and be left behind
|
|
43
|
+
* as if the author had written it.
|
|
44
|
+
*/
|
|
45
|
+
export declare const LEGACY_DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-types/";
|
|
46
|
+
/**
|
|
47
|
+
* Both spellings of the retired database banner. A surviving generator counts
|
|
48
|
+
* a file carrying either as its own STALE output: a full run deletes it, a
|
|
49
|
+
* `--check` reports it stale, and a run writing the same name replaces it.
|
|
50
|
+
*/
|
|
51
|
+
export declare const DB_SWIFT_BANNER_PREFIXES: string[];
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ownership banners the CLI's Swift generators stamp and guard against.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
4
|
+
* Two generators write `.generated.swift` files that may share one output
|
|
5
|
+
* directory — workflows and (since #3344) server functions. Each one sweeps
|
|
6
|
+
* only the files carrying its OWN banner and refuses to overwrite a file
|
|
7
|
+
* carrying the other's. The banners live here, with no imports of their own,
|
|
8
|
+
* so both generators can name them without an import cycle.
|
|
9
|
+
*
|
|
10
|
+
* A third generator, the database one, was retired with `primitive databases
|
|
11
|
+
* codegen` (#3189). Its banners stay RECOGNIZED: a database file left in an
|
|
12
|
+
* output directory belongs to no generator any more, so both surviving
|
|
13
|
+
* generators treat it as stale generated output to sweep — never as a file the
|
|
14
|
+
* author wrote, and never as another live generator's.
|
|
11
15
|
*/
|
|
12
16
|
/**
|
|
13
17
|
* Banner prefix stamped at the top of every `functions codegen --lang swift`
|
|
@@ -22,4 +26,30 @@ export const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM functions/";
|
|
|
22
26
|
* invokers but from `prompts/`, so the two are told apart by content too.
|
|
23
27
|
*/
|
|
24
28
|
export const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
|
|
29
|
+
/**
|
|
30
|
+
* Banner prefix the retired database Swift generator stamped on every
|
|
31
|
+
* `.generated.swift` file it wrote. RECOGNITION ONLY since #3189 — nothing
|
|
32
|
+
* emits it. Distinct from the workflow and function banners and from the model
|
|
33
|
+
* codegen's (`// Generated by swift-bao-codegen`), so recognizing it claims no
|
|
34
|
+
* live generator's file.
|
|
35
|
+
*/
|
|
36
|
+
export const DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-type-configs/";
|
|
37
|
+
/**
|
|
38
|
+
* The banner the database generator stamped before issue #2760 renamed the
|
|
39
|
+
* source directory. RECOGNITION ONLY — nothing emits it.
|
|
40
|
+
*
|
|
41
|
+
* Ownership everywhere is `contents.startsWith(banner)`, so without this a file
|
|
42
|
+
* generated before the rename would match no banner at all and be left behind
|
|
43
|
+
* as if the author had written it.
|
|
44
|
+
*/
|
|
45
|
+
export const LEGACY_DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-types/";
|
|
46
|
+
/**
|
|
47
|
+
* Both spellings of the retired database banner. A surviving generator counts
|
|
48
|
+
* a file carrying either as its own STALE output: a full run deletes it, a
|
|
49
|
+
* `--check` reports it stale, and a run writing the same name replaces it.
|
|
50
|
+
*/
|
|
51
|
+
export const DB_SWIFT_BANNER_PREFIXES = [
|
|
52
|
+
DB_SWIFT_BANNER_PREFIX,
|
|
53
|
+
LEGACY_DB_SWIFT_BANNER_PREFIX,
|
|
54
|
+
];
|
|
25
55
|
//# sourceMappingURL=banners.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAEtF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,wCAAwC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,sBAAsB;IACtB,6BAA6B;CAC9B,CAAC"}
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
* The Swift counterpart of `db-codegen/dbGenerator.ts`. Reads the SAME synced
|
|
5
5
|
* `database-type-configs/*.toml` and emits ONE `<type>.generated.swift` per database
|
|
6
6
|
* type. Each file carries the type's record structs (read shape), per-op params
|
|
7
|
-
* structs (write shape), per-op result typealiases, and a
|
|
8
|
-
*
|
|
9
|
-
* `DatabasesAPI
|
|
7
|
+
* structs (write shape), per-op result typealiases, and — for a type that
|
|
8
|
+
* registers subscriptions — a typed `Subscriptions` factory over the SDK's
|
|
9
|
+
* typed `DatabasesAPI.subscribe`. No `Ops` factory is emitted: the client door
|
|
10
|
+
* its methods called was retired (#3188).
|
|
10
11
|
*
|
|
11
12
|
* Design decisions realized (issue #1547):
|
|
12
13
|
* - Operation + record metadata (which ops exist, their params, their result
|