@owlmeans/viable-common 0.0.43 → 0.0.45
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 +3 -3
- package/agent-meta/manifest.json +2 -2
- package/agent-meta/skills/agent-presentation/SKILL.md +4 -4
- package/agent-meta/skills/viable-common/SKILL.md +59 -36
- package/build/agent/consts.d.ts +58 -0
- package/build/agent/consts.d.ts.map +1 -0
- package/build/agent/consts.js +63 -0
- package/build/agent/consts.js.map +1 -0
- package/build/agent/consts.local.d.ts +21 -0
- package/build/agent/consts.local.d.ts.map +1 -0
- package/build/agent/consts.local.js +44 -0
- package/build/agent/consts.local.js.map +1 -0
- package/build/agent/index.d.ts +2 -0
- package/build/agent/index.d.ts.map +1 -1
- package/build/agent/index.js +1 -0
- package/build/agent/index.js.map +1 -1
- package/build/agent/presentation/types.d.ts +21 -0
- package/build/agent/presentation/types.d.ts.map +1 -0
- package/build/agent/presentation/types.js.map +1 -0
- package/build/agent/presentation.d.ts +12 -94
- package/build/agent/presentation.d.ts.map +1 -1
- package/build/agent/presentation.js +218 -299
- package/build/agent/presentation.js.map +1 -1
- package/build/agent/types.d.ts +30 -0
- package/build/agent/types.d.ts.map +1 -1
- package/build/agent/types.local.d.ts +4 -0
- package/build/agent/types.local.d.ts.map +1 -0
- package/build/agent/types.local.js +2 -0
- package/build/agent/types.local.js.map +1 -0
- package/build/areas/consts.d.ts +5 -0
- package/build/areas/consts.d.ts.map +1 -1
- package/build/areas/consts.js +4 -0
- package/build/areas/consts.js.map +1 -1
- package/build/areas/index.d.ts +1 -0
- package/build/areas/index.d.ts.map +1 -1
- package/build/areas/index.js.map +1 -1
- package/build/areas/tenancy/types.d.ts +23 -0
- package/build/areas/tenancy/types.d.ts.map +1 -0
- package/build/areas/tenancy/types.js +2 -0
- package/build/areas/tenancy/types.js.map +1 -0
- package/build/areas/tenancy.d.ts +6 -50
- package/build/areas/tenancy.d.ts.map +1 -1
- package/build/areas/tenancy.js +21 -31
- package/build/areas/tenancy.js.map +1 -1
- package/build/areas/types.d.ts +32 -0
- package/build/areas/types.d.ts.map +1 -1
- package/build/ba/connecting/types.d.ts +45 -0
- package/build/ba/connecting/types.d.ts.map +1 -0
- package/build/ba/connecting/types.js +2 -0
- package/build/ba/connecting/types.js.map +1 -0
- package/build/ba/connecting.d.ts +4 -0
- package/build/ba/connecting.d.ts.map +1 -0
- package/build/ba/connecting.js +47 -0
- package/build/ba/connecting.js.map +1 -0
- package/build/ba/helpers.d.ts +4 -39
- package/build/ba/helpers.d.ts.map +1 -1
- package/build/ba/helpers.js +5 -79
- package/build/ba/helpers.js.map +1 -1
- package/build/ba/index.d.ts +2 -0
- package/build/ba/index.d.ts.map +1 -1
- package/build/ba/index.js +1 -0
- package/build/ba/index.js.map +1 -1
- package/build/ba/types.d.ts +1 -1
- package/build/ba/types.d.ts.map +1 -1
- package/build/blueprint/consts.d.ts +41 -0
- package/build/blueprint/consts.d.ts.map +1 -1
- package/build/blueprint/consts.js +51 -0
- package/build/blueprint/consts.js.map +1 -1
- package/build/blueprint/consts.local.d.ts +2 -0
- package/build/blueprint/consts.local.d.ts.map +1 -0
- package/build/blueprint/consts.local.js +3 -0
- package/build/blueprint/consts.local.js.map +1 -0
- package/build/blueprint/index.d.ts +1 -0
- package/build/blueprint/index.d.ts.map +1 -1
- package/build/blueprint/index.js +1 -0
- package/build/blueprint/index.js.map +1 -1
- package/build/blueprint/types.d.ts +3 -52
- package/build/blueprint/types.d.ts.map +1 -1
- package/build/blueprint/types.js +1 -65
- package/build/blueprint/types.js.map +1 -1
- package/build/blueprint/utils.d.ts +11 -0
- package/build/blueprint/utils.d.ts.map +1 -0
- package/build/blueprint/utils.js +16 -0
- package/build/blueprint/utils.js.map +1 -0
- package/build/branding.d.ts +0 -8
- package/build/branding.d.ts.map +1 -1
- package/build/branding.js +0 -16
- package/build/branding.js.map +1 -1
- package/build/connect/branding/types.d.ts +28 -0
- package/build/connect/branding/types.d.ts.map +1 -0
- package/build/connect/branding/types.js +2 -0
- package/build/connect/branding/types.js.map +1 -0
- package/build/connect/consts.d.ts +2 -10
- package/build/connect/consts.d.ts.map +1 -1
- package/build/connect/consts.js +2 -23
- package/build/connect/consts.js.map +1 -1
- package/build/connect/conversion/types.d.ts +93 -0
- package/build/connect/conversion/types.d.ts.map +1 -0
- package/build/connect/conversion/types.js +2 -0
- package/build/connect/conversion/types.js.map +1 -0
- package/build/connect/entrypoints/types.d.ts +30 -0
- package/build/connect/entrypoints/types.d.ts.map +1 -0
- package/build/connect/entrypoints/types.js +2 -0
- package/build/connect/entrypoints/types.js.map +1 -0
- package/build/connect/entrypoints.d.ts +61 -92
- package/build/connect/entrypoints.d.ts.map +1 -1
- package/build/connect/entrypoints.js +5 -2
- package/build/connect/entrypoints.js.map +1 -1
- package/build/connect/errors/types.d.ts +20 -0
- package/build/connect/errors/types.d.ts.map +1 -0
- package/build/connect/errors/types.js +2 -0
- package/build/connect/errors/types.js.map +1 -0
- package/build/connect/errors.d.ts +32 -0
- package/build/connect/errors.d.ts.map +1 -1
- package/build/connect/errors.js +65 -0
- package/build/connect/errors.js.map +1 -1
- package/build/connect/index.d.ts +13 -2
- package/build/connect/index.d.ts.map +1 -1
- package/build/connect/index.js +1 -0
- package/build/connect/index.js.map +1 -1
- package/build/connect/kit/types.d.ts +52 -0
- package/build/connect/kit/types.d.ts.map +1 -0
- package/build/connect/kit/types.js +2 -0
- package/build/connect/{types.js.map → kit/types.js.map} +1 -1
- package/build/connect/model-tier/types.d.ts +16 -0
- package/build/connect/model-tier/types.d.ts.map +1 -0
- package/build/connect/model-tier/types.js +2 -0
- package/build/connect/model-tier/types.js.map +1 -0
- package/build/connect/model-tier.d.ts +4 -0
- package/build/connect/model-tier.d.ts.map +1 -0
- package/build/connect/model-tier.js +21 -0
- package/build/connect/model-tier.js.map +1 -0
- package/build/connect/{ops.d.ts → ops/types.d.ts} +13 -4
- package/build/connect/ops/types.d.ts.map +1 -0
- package/build/connect/ops/types.js +2 -0
- package/build/connect/ops/types.js.map +1 -0
- package/build/connect/pipeline/types.d.ts +39 -0
- package/build/connect/pipeline/types.d.ts.map +1 -0
- package/build/connect/pipeline/types.js +2 -0
- package/build/connect/pipeline/types.js.map +1 -0
- package/build/connect/project/types.d.ts +127 -0
- package/build/connect/project/types.d.ts.map +1 -0
- package/build/connect/project/types.js +2 -0
- package/build/connect/project/types.js.map +1 -0
- package/build/connect/references/types.d.ts +157 -0
- package/build/connect/references/types.d.ts.map +1 -0
- package/build/connect/references/types.js +2 -0
- package/build/connect/references/types.js.map +1 -0
- package/build/connect/references/types.local.d.ts +5 -0
- package/build/connect/references/types.local.d.ts.map +1 -0
- package/build/connect/references/types.local.js +2 -0
- package/build/connect/references/types.local.js.map +1 -0
- package/build/connect/references.d.ts +1 -153
- package/build/connect/references.d.ts.map +1 -1
- package/build/connect/references.js.map +1 -1
- package/build/connect/schemas.d.ts +9 -5
- package/build/connect/schemas.d.ts.map +1 -1
- package/build/connect/schemas.js +10 -3
- package/build/connect/schemas.js.map +1 -1
- package/build/connect/session/types.d.ts +73 -0
- package/build/connect/session/types.d.ts.map +1 -0
- package/build/connect/session/types.js +2 -0
- package/build/connect/session/types.js.map +1 -0
- package/build/connect/settings/types.d.ts +48 -0
- package/build/connect/settings/types.d.ts.map +1 -0
- package/build/connect/settings/types.js +2 -0
- package/build/connect/settings/types.js.map +1 -0
- package/build/consts.d.ts +8 -0
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +16 -0
- package/build/consts.js.map +1 -1
- package/build/convert/analysis/types.d.ts +93 -0
- package/build/convert/analysis/types.d.ts.map +1 -0
- package/build/convert/analysis/types.js +2 -0
- package/build/convert/analysis/types.js.map +1 -0
- package/build/convert/census/consts.local.d.ts +55 -0
- package/build/convert/census/consts.local.d.ts.map +1 -0
- package/build/convert/census/consts.local.js +104 -0
- package/build/convert/census/consts.local.js.map +1 -0
- package/build/convert/census/types.d.ts +176 -0
- package/build/convert/census/types.d.ts.map +1 -0
- package/build/convert/census/types.js +2 -0
- package/build/convert/census/types.js.map +1 -0
- package/build/convert/census.d.ts +4 -0
- package/build/convert/census.d.ts.map +1 -0
- package/build/convert/census.js +83 -0
- package/build/convert/census.js.map +1 -0
- package/build/convert/consts.d.ts +4 -12
- package/build/convert/consts.d.ts.map +1 -1
- package/build/convert/consts.js +4 -3
- package/build/convert/consts.js.map +1 -1
- package/build/convert/detection/types.d.ts +67 -0
- package/build/convert/detection/types.d.ts.map +1 -0
- package/build/convert/detection/types.js +2 -0
- package/build/convert/detection/types.js.map +1 -0
- package/build/convert/docs/types.d.ts +129 -0
- package/build/convert/docs/types.d.ts.map +1 -0
- package/build/convert/docs/types.js +2 -0
- package/build/convert/docs/types.js.map +1 -0
- package/build/convert/docs.d.ts +4 -0
- package/build/convert/docs.d.ts.map +1 -0
- package/build/convert/docs.js +9 -0
- package/build/convert/docs.js.map +1 -0
- package/build/convert/estimate/types.d.ts +77 -0
- package/build/convert/estimate/types.d.ts.map +1 -0
- package/build/convert/estimate/types.js +2 -0
- package/build/convert/estimate/types.js.map +1 -0
- package/build/convert/estimate.d.ts +11 -0
- package/build/convert/estimate.d.ts.map +1 -0
- package/build/convert/estimate.js +18 -0
- package/build/convert/estimate.js.map +1 -0
- package/build/convert/helpers.d.ts +14 -78
- package/build/convert/helpers.d.ts.map +1 -1
- package/build/convert/helpers.js +27 -300
- package/build/convert/helpers.js.map +1 -1
- package/build/convert/index.d.ts +15 -0
- package/build/convert/index.d.ts.map +1 -1
- package/build/convert/index.js +6 -0
- package/build/convert/index.js.map +1 -1
- package/build/convert/origin/types.d.ts +41 -0
- package/build/convert/origin/types.d.ts.map +1 -0
- package/build/convert/origin/types.js +2 -0
- package/build/convert/origin/types.js.map +1 -0
- package/build/convert/origin.d.ts +4 -0
- package/build/convert/origin.d.ts.map +1 -0
- package/build/convert/origin.js +25 -0
- package/build/convert/origin.js.map +1 -0
- package/build/convert/record/types.d.ts +98 -0
- package/build/convert/record/types.d.ts.map +1 -0
- package/build/convert/record/types.js +2 -0
- package/build/convert/record/types.js.map +1 -0
- package/build/convert/schemas.d.ts +7 -6
- package/build/convert/schemas.d.ts.map +1 -1
- package/build/convert/schemas.js +1 -5
- package/build/convert/schemas.js.map +1 -1
- package/build/convert/stage/types.d.ts +27 -0
- package/build/convert/stage/types.d.ts.map +1 -0
- package/build/convert/stage/types.js +2 -0
- package/build/convert/stage/types.js.map +1 -0
- package/build/convert/stage.d.ts +4 -0
- package/build/convert/stage.d.ts.map +1 -0
- package/build/convert/stage.js +25 -0
- package/build/convert/stage.js.map +1 -0
- package/build/convert/taxonomy/types.d.ts +71 -0
- package/build/convert/taxonomy/types.d.ts.map +1 -0
- package/build/convert/taxonomy/types.js +2 -0
- package/build/convert/taxonomy/types.js.map +1 -0
- package/build/convert/types.d.ts +1 -648
- package/build/convert/types.d.ts.map +1 -1
- package/build/convert/utils.d.ts +5 -0
- package/build/convert/utils.d.ts.map +1 -0
- package/build/convert/utils.js +6 -0
- package/build/convert/utils.js.map +1 -0
- package/build/design/consts.d.ts +37 -0
- package/build/design/consts.d.ts.map +1 -1
- package/build/design/consts.js +44 -8
- package/build/design/consts.js.map +1 -1
- package/build/design/helpers.d.ts +9 -49
- package/build/design/helpers.d.ts.map +1 -1
- package/build/design/helpers.js +17 -224
- package/build/design/helpers.js.map +1 -1
- package/build/design/index.d.ts +3 -0
- package/build/design/index.d.ts.map +1 -1
- package/build/design/index.js +1 -0
- package/build/design/index.js.map +1 -1
- package/build/design/runtime/types.d.ts +16 -0
- package/build/design/runtime/types.d.ts.map +1 -0
- package/build/design/runtime/types.js +2 -0
- package/build/design/runtime/types.js.map +1 -0
- package/build/design/runtime.d.ts +8 -105
- package/build/design/runtime.d.ts.map +1 -1
- package/build/design/runtime.js +13 -48
- package/build/design/runtime.js.map +1 -1
- package/build/design/schemas.d.ts +1 -9
- package/build/design/schemas.d.ts.map +1 -1
- package/build/design/schemas.js +1 -1
- package/build/design/schemas.js.map +1 -1
- package/build/design/story/types.d.ts +67 -0
- package/build/design/story/types.d.ts.map +1 -0
- package/build/design/story/types.js +2 -0
- package/build/design/story/types.js.map +1 -0
- package/build/design/story.d.ts +4 -0
- package/build/design/story.d.ts.map +1 -0
- package/build/design/story.js +184 -0
- package/build/design/story.js.map +1 -0
- package/build/design/types.d.ts +75 -1
- package/build/design/types.d.ts.map +1 -1
- package/build/dev/schemas.d.ts.map +1 -1
- package/build/dev/schemas.js.map +1 -1
- package/build/dev/types.local.d.ts +5 -0
- package/build/dev/types.local.d.ts.map +1 -0
- package/build/dev/types.local.js +2 -0
- package/build/dev/types.local.js.map +1 -0
- package/build/integrity/consts.d.ts +0 -117
- package/build/integrity/consts.d.ts.map +1 -1
- package/build/integrity/consts.js +0 -281
- package/build/integrity/consts.js.map +1 -1
- package/build/integrity/consts.local.d.ts +5 -0
- package/build/integrity/consts.local.d.ts.map +1 -0
- package/build/integrity/consts.local.js +5 -0
- package/build/integrity/consts.local.js.map +1 -0
- package/build/integrity/index.d.ts +5 -0
- package/build/integrity/index.d.ts.map +1 -1
- package/build/integrity/index.js +3 -0
- package/build/integrity/index.js.map +1 -1
- package/build/integrity/layout/consts.d.ts +59 -0
- package/build/integrity/layout/consts.d.ts.map +1 -0
- package/build/integrity/layout/consts.js +66 -0
- package/build/integrity/layout/consts.js.map +1 -0
- package/build/integrity/layout/consts.local.d.ts +18 -0
- package/build/integrity/layout/consts.local.d.ts.map +1 -0
- package/build/integrity/layout/consts.local.js +176 -0
- package/build/integrity/layout/consts.local.js.map +1 -0
- package/build/integrity/layout/types.d.ts +35 -0
- package/build/integrity/layout/types.d.ts.map +1 -0
- package/build/integrity/layout/types.js +2 -0
- package/build/integrity/layout/types.js.map +1 -0
- package/build/integrity/layout.d.ts +4 -0
- package/build/integrity/layout.d.ts.map +1 -0
- package/build/integrity/layout.js +25 -0
- package/build/integrity/layout.js.map +1 -0
- package/build/integrity/types.d.ts +36 -2
- package/build/integrity/types.d.ts.map +1 -1
- package/build/integrity/utils.d.ts +13 -0
- package/build/integrity/utils.d.ts.map +1 -0
- package/build/integrity/utils.js +12 -0
- package/build/integrity/utils.js.map +1 -0
- package/build/integrity/verify/types.d.ts +26 -0
- package/build/integrity/verify/types.d.ts.map +1 -0
- package/build/integrity/verify/types.js +2 -0
- package/build/integrity/verify/types.js.map +1 -0
- package/build/integrity/verify.d.ts +5 -19
- package/build/integrity/verify.d.ts.map +1 -1
- package/build/integrity/verify.js +165 -175
- package/build/integrity/verify.js.map +1 -1
- package/build/intent/consts.d.ts +16 -0
- package/build/intent/consts.d.ts.map +1 -1
- package/build/intent/consts.js +63 -0
- package/build/intent/consts.js.map +1 -1
- package/build/intent/entrypoints.d.ts +2 -12
- package/build/intent/entrypoints.d.ts.map +1 -1
- package/build/intent/entrypoints.js.map +1 -1
- package/build/intent/index.d.ts +0 -1
- package/build/intent/index.d.ts.map +1 -1
- package/build/intent/index.js +0 -1
- package/build/intent/index.js.map +1 -1
- package/build/intent/types.d.ts +13 -0
- package/build/intent/types.d.ts.map +1 -1
- package/build/metadata/consts.d.ts +33 -0
- package/build/metadata/consts.d.ts.map +1 -1
- package/build/metadata/consts.js +37 -0
- package/build/metadata/consts.js.map +1 -1
- package/build/metadata/types.d.ts +1 -33
- package/build/metadata/types.d.ts.map +1 -1
- package/build/metadata/types.js +1 -38
- package/build/metadata/types.js.map +1 -1
- package/build/moderation/index.d.ts +2 -0
- package/build/moderation/index.d.ts.map +1 -1
- package/build/moderation/index.js +1 -0
- package/build/moderation/index.js.map +1 -1
- package/build/moderation/utils.d.ts +3 -15
- package/build/moderation/utils.d.ts.map +1 -1
- package/build/moderation/utils.js +5 -30
- package/build/moderation/utils.js.map +1 -1
- package/build/moderation/verdict/types.d.ts +24 -0
- package/build/moderation/verdict/types.d.ts.map +1 -0
- package/build/moderation/verdict/types.js +2 -0
- package/build/moderation/verdict/types.js.map +1 -0
- package/build/moderation/verdict.d.ts +4 -0
- package/build/moderation/verdict.d.ts.map +1 -0
- package/build/moderation/verdict.js +21 -0
- package/build/moderation/verdict.js.map +1 -0
- package/build/planning/card/types.d.ts +42 -0
- package/build/planning/card/types.d.ts.map +1 -0
- package/build/planning/card/types.js +2 -0
- package/build/planning/card/types.js.map +1 -0
- package/build/planning/card.d.ts +4 -0
- package/build/planning/card.d.ts.map +1 -0
- package/build/planning/card.js +51 -0
- package/build/planning/card.js.map +1 -0
- package/build/planning/consts.d.ts +13 -1
- package/build/planning/consts.d.ts.map +1 -1
- package/build/planning/consts.js +13 -0
- package/build/planning/consts.js.map +1 -1
- package/build/planning/helpers.d.ts +11 -37
- package/build/planning/helpers.d.ts.map +1 -1
- package/build/planning/helpers.js +24 -103
- package/build/planning/helpers.js.map +1 -1
- package/build/planning/index.d.ts +5 -1
- package/build/planning/index.d.ts.map +1 -1
- package/build/planning/index.js +2 -1
- package/build/planning/index.js.map +1 -1
- package/build/planning/landing/types.d.ts +16 -0
- package/build/planning/landing/types.d.ts.map +1 -0
- package/build/planning/landing/types.js +2 -0
- package/build/planning/landing/types.js.map +1 -0
- package/build/planning/landing.d.ts +5 -22
- package/build/planning/landing.d.ts.map +1 -1
- package/build/planning/landing.js +21 -35
- package/build/planning/landing.js.map +1 -1
- package/build/planning/schemas.d.ts +33 -0
- package/build/planning/schemas.d.ts.map +1 -1
- package/build/planning/schemas.js +173 -4
- package/build/planning/schemas.js.map +1 -1
- package/build/planning/spec/types.d.ts +22 -0
- package/build/planning/spec/types.d.ts.map +1 -0
- package/build/planning/spec/types.js +2 -0
- package/build/planning/spec/types.js.map +1 -0
- package/build/planning/spec.d.ts +4 -0
- package/build/planning/spec.d.ts.map +1 -0
- package/build/planning/spec.js +30 -0
- package/build/planning/spec.js.map +1 -0
- package/build/planning/types.d.ts +6 -5
- package/build/planning/types.d.ts.map +1 -1
- package/build/preview/consts.d.ts +3 -1
- package/build/preview/consts.d.ts.map +1 -1
- package/build/preview/consts.js +2 -0
- package/build/preview/consts.js.map +1 -1
- package/build/preview/types.d.ts +17 -2
- package/build/preview/types.d.ts.map +1 -1
- package/build/scaffold/consts.d.ts +40 -1
- package/build/scaffold/consts.d.ts.map +1 -1
- package/build/scaffold/consts.js +52 -0
- package/build/scaffold/consts.js.map +1 -1
- package/build/scaffold/helpers.d.ts +5 -30
- package/build/scaffold/helpers.d.ts.map +1 -1
- package/build/scaffold/helpers.js +9 -53
- package/build/scaffold/helpers.js.map +1 -1
- package/build/scaffold/index.d.ts +4 -0
- package/build/scaffold/index.d.ts.map +1 -1
- package/build/scaffold/index.js +2 -0
- package/build/scaffold/index.js.map +1 -1
- package/build/scaffold/landing/types.d.ts +48 -0
- package/build/scaffold/landing/types.d.ts.map +1 -0
- package/build/scaffold/landing/types.js +2 -0
- package/build/scaffold/landing/types.js.map +1 -0
- package/build/scaffold/landing.d.ts +4 -0
- package/build/scaffold/landing.d.ts.map +1 -0
- package/build/scaffold/landing.js +95 -0
- package/build/scaffold/landing.js.map +1 -0
- package/build/scaffold/schemas.d.ts +3 -2
- package/build/scaffold/schemas.d.ts.map +1 -1
- package/build/scaffold/schemas.js +177 -7
- package/build/scaffold/schemas.js.map +1 -1
- package/build/scaffold/share/types.d.ts +35 -0
- package/build/scaffold/share/types.d.ts.map +1 -0
- package/build/scaffold/share/types.js +2 -0
- package/build/scaffold/share/types.js.map +1 -0
- package/build/scaffold/share.d.ts +4 -0
- package/build/scaffold/share.d.ts.map +1 -0
- package/build/scaffold/share.js +42 -0
- package/build/scaffold/share.js.map +1 -0
- package/build/scaffold/types.d.ts +114 -2
- package/build/scaffold/types.d.ts.map +1 -1
- package/build/skills/consts.d.ts +42 -0
- package/build/skills/consts.d.ts.map +1 -1
- package/build/skills/consts.js +43 -0
- package/build/skills/consts.js.map +1 -1
- package/build/skills/index.d.ts +0 -1
- package/build/skills/index.d.ts.map +1 -1
- package/build/skills/index.js +0 -1
- package/build/skills/index.js.map +1 -1
- package/build/slot/command/types.d.ts +21 -0
- package/build/slot/command/types.d.ts.map +1 -0
- package/build/slot/command/types.js +2 -0
- package/build/slot/command/types.js.map +1 -0
- package/build/slot/command.d.ts +4 -0
- package/build/slot/command.d.ts.map +1 -0
- package/build/slot/command.js +31 -0
- package/build/slot/command.js.map +1 -0
- package/build/slot/consts.d.ts +7 -13
- package/build/slot/consts.d.ts.map +1 -1
- package/build/slot/consts.js +10 -36
- package/build/slot/consts.js.map +1 -1
- package/build/slot/helpers.d.ts +3 -22
- package/build/slot/helpers.d.ts.map +1 -1
- package/build/slot/helpers.js +5 -26
- package/build/slot/helpers.js.map +1 -1
- package/build/slot/index.d.ts +6 -0
- package/build/slot/index.d.ts.map +1 -1
- package/build/slot/index.js +3 -0
- package/build/slot/index.js.map +1 -1
- package/build/slot/layout/types.d.ts +17 -0
- package/build/slot/layout/types.d.ts.map +1 -0
- package/build/slot/layout/types.js +2 -0
- package/build/slot/layout/types.js.map +1 -0
- package/build/slot/layout.d.ts +5 -66
- package/build/slot/layout.d.ts.map +1 -1
- package/build/slot/layout.js +13 -27
- package/build/slot/layout.js.map +1 -1
- package/build/slot/origin/types.d.ts +23 -0
- package/build/slot/origin/types.d.ts.map +1 -0
- package/build/slot/origin/types.js +2 -0
- package/build/slot/origin/types.js.map +1 -0
- package/build/slot/origin.d.ts +4 -0
- package/build/slot/origin.d.ts.map +1 -0
- package/build/slot/origin.js +15 -0
- package/build/slot/origin.js.map +1 -0
- package/build/slot/types.d.ts +55 -1
- package/build/slot/types.d.ts.map +1 -1
- package/build/slot/utils.d.ts +6 -0
- package/build/slot/utils.d.ts.map +1 -0
- package/build/slot/utils.js +6 -0
- package/build/slot/utils.js.map +1 -0
- package/build/topology/card/types.d.ts +21 -0
- package/build/topology/card/types.d.ts.map +1 -0
- package/build/topology/card/types.js +2 -0
- package/build/topology/card/types.js.map +1 -0
- package/build/topology/card.d.ts +7 -19
- package/build/topology/card.d.ts.map +1 -1
- package/build/topology/card.js +84 -89
- package/build/topology/card.js.map +1 -1
- package/build/topology/consts.local.d.ts +4 -0
- package/build/topology/consts.local.d.ts.map +1 -0
- package/build/topology/consts.local.js +4 -0
- package/build/topology/consts.local.js.map +1 -0
- package/build/topology/helpers.d.ts +7 -33
- package/build/topology/helpers.d.ts.map +1 -1
- package/build/topology/helpers.js +15 -111
- package/build/topology/helpers.js.map +1 -1
- package/build/topology/index.d.ts +3 -0
- package/build/topology/index.d.ts.map +1 -1
- package/build/topology/index.js +1 -0
- package/build/topology/index.js.map +1 -1
- package/build/topology/resolve/types.d.ts +47 -0
- package/build/topology/resolve/types.d.ts.map +1 -0
- package/build/topology/resolve/types.js +2 -0
- package/build/topology/resolve/types.js.map +1 -0
- package/build/topology/resolve.d.ts +4 -0
- package/build/topology/resolve.d.ts.map +1 -0
- package/build/topology/resolve.js +89 -0
- package/build/topology/resolve.js.map +1 -0
- package/build/topology/types.d.ts +5 -0
- package/build/topology/types.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/agent/consts.local.ts +47 -0
- package/src/agent/consts.ts +61 -0
- package/src/agent/index.ts +2 -0
- package/src/agent/presentation/types.ts +21 -0
- package/src/agent/presentation.ts +200 -309
- package/src/agent/types.local.ts +3 -0
- package/src/agent/types.ts +40 -0
- package/src/areas/consts.ts +7 -0
- package/src/areas/index.ts +1 -0
- package/src/areas/tenancy/types.ts +23 -0
- package/src/areas/tenancy.ts +26 -61
- package/src/areas/types.ts +31 -0
- package/src/ba/connecting/types.ts +45 -0
- package/src/ba/connecting.ts +64 -0
- package/src/ba/helpers.ts +8 -92
- package/src/ba/index.ts +2 -0
- package/src/ba/types.ts +1 -1
- package/src/blueprint/consts.local.ts +3 -0
- package/src/blueprint/consts.ts +52 -0
- package/src/blueprint/index.ts +1 -0
- package/src/blueprint/types.ts +4 -74
- package/src/blueprint/utils.ts +20 -0
- package/src/branding.ts +0 -17
- package/src/connect/branding/types.ts +29 -0
- package/src/connect/consts.ts +3 -22
- package/src/connect/conversion/types.ts +96 -0
- package/src/connect/entrypoints/types.ts +25 -0
- package/src/connect/entrypoints.ts +18 -35
- package/src/connect/errors/types.ts +22 -0
- package/src/connect/errors.ts +75 -0
- package/src/connect/index.ts +13 -2
- package/src/connect/kit/types.ts +56 -0
- package/src/connect/model-tier/types.ts +16 -0
- package/src/connect/model-tier.ts +22 -0
- package/src/connect/{ops.ts → ops/types.ts} +13 -3
- package/src/connect/pipeline/types.ts +41 -0
- package/src/connect/project/types.ts +127 -0
- package/src/connect/references/types.local.ts +5 -0
- package/src/connect/references/types.ts +73 -0
- package/src/connect/references.ts +15 -75
- package/src/connect/schemas.ts +19 -12
- package/src/connect/session/types.ts +81 -0
- package/src/connect/settings/types.ts +52 -0
- package/src/consts.ts +17 -0
- package/src/convert/analysis/types.ts +89 -0
- package/src/convert/census/consts.local.ts +120 -0
- package/src/convert/census/types.ts +181 -0
- package/src/convert/census.ts +95 -0
- package/src/convert/consts.ts +5 -14
- package/src/convert/detection/types.ts +74 -0
- package/src/convert/docs/types.ts +151 -0
- package/src/convert/docs.ts +15 -0
- package/src/convert/estimate/types.ts +75 -0
- package/src/convert/estimate.ts +19 -0
- package/src/convert/helpers.ts +29 -328
- package/src/convert/index.ts +15 -0
- package/src/convert/origin/types.ts +43 -0
- package/src/convert/origin.ts +33 -0
- package/src/convert/record/types.ts +105 -0
- package/src/convert/schemas.ts +13 -12
- package/src/convert/stage/types.ts +27 -0
- package/src/convert/stage.ts +31 -0
- package/src/convert/taxonomy/types.ts +74 -0
- package/src/convert/types.ts +5 -703
- package/src/convert/utils.ts +7 -0
- package/src/design/consts.ts +48 -0
- package/src/design/helpers.ts +20 -245
- package/src/design/index.ts +3 -0
- package/src/design/runtime/types.ts +14 -0
- package/src/design/runtime.ts +18 -116
- package/src/design/schemas.ts +2 -10
- package/src/design/story/types.ts +67 -0
- package/src/design/story.ts +221 -0
- package/src/design/types.ts +81 -1
- package/src/dev/schemas.ts +1 -3
- package/src/dev/types.local.ts +4 -0
- package/src/integrity/consts.local.ts +5 -0
- package/src/integrity/consts.ts +0 -348
- package/src/integrity/index.ts +5 -0
- package/src/integrity/layout/consts.local.ts +188 -0
- package/src/integrity/layout/consts.ts +79 -0
- package/src/integrity/layout/types.ts +35 -0
- package/src/integrity/layout.ts +39 -0
- package/src/integrity/types.ts +37 -2
- package/src/integrity/utils.ts +21 -0
- package/src/integrity/verify/types.ts +26 -0
- package/src/integrity/verify.ts +178 -184
- package/src/intent/consts.ts +67 -0
- package/src/intent/entrypoints.ts +2 -3
- package/src/intent/index.ts +0 -1
- package/src/intent/types.ts +10 -0
- package/src/metadata/consts.ts +37 -0
- package/src/metadata/types.ts +1 -37
- package/src/moderation/index.ts +2 -0
- package/src/moderation/utils.ts +7 -30
- package/src/moderation/verdict/types.ts +22 -0
- package/src/moderation/verdict.ts +28 -0
- package/src/planning/card/types.ts +44 -0
- package/src/planning/card.ts +77 -0
- package/src/planning/consts.ts +15 -2
- package/src/planning/helpers.ts +28 -116
- package/src/planning/index.ts +5 -1
- package/src/planning/landing/types.ts +15 -0
- package/src/planning/landing.ts +28 -38
- package/src/planning/schemas.ts +191 -4
- package/src/planning/spec/types.ts +22 -0
- package/src/planning/spec.ts +41 -0
- package/src/planning/types.ts +6 -6
- package/src/preview/consts.ts +2 -0
- package/src/preview/types.ts +19 -0
- package/src/scaffold/consts.ts +65 -1
- package/src/scaffold/helpers.ts +14 -80
- package/src/scaffold/index.ts +4 -0
- package/src/scaffold/landing/types.ts +48 -0
- package/src/scaffold/landing.ts +120 -0
- package/src/scaffold/schemas.ts +183 -7
- package/src/scaffold/share/types.ts +35 -0
- package/src/scaffold/share.ts +60 -0
- package/src/scaffold/types.ts +123 -1
- package/src/skills/consts.ts +46 -0
- package/src/skills/index.ts +0 -1
- package/src/slot/command/types.ts +21 -0
- package/src/slot/command.ts +38 -0
- package/src/slot/consts.ts +11 -40
- package/src/slot/helpers.ts +6 -31
- package/src/slot/index.ts +6 -0
- package/src/slot/layout/types.ts +17 -0
- package/src/slot/layout.ts +19 -77
- package/src/slot/origin/types.ts +23 -0
- package/src/slot/origin.ts +20 -0
- package/src/slot/types.ts +58 -1
- package/src/slot/utils.ts +10 -0
- package/src/topology/card/types.ts +21 -0
- package/src/topology/card.ts +85 -90
- package/src/topology/consts.local.ts +6 -0
- package/src/topology/helpers.ts +20 -125
- package/src/topology/index.ts +3 -0
- package/src/topology/resolve/types.ts +47 -0
- package/src/topology/resolve.ts +118 -0
- package/src/topology/types.ts +6 -0
- package/tests/blueprint.spec.ts +1 -2
- package/tests/branding.spec.ts +2 -2
- package/tests/connect-convert.spec.ts +21 -1
- package/tests/connect-errors.spec.ts +34 -1
- package/tests/convert.spec.ts +51 -52
- package/tests/design.spec.ts +13 -16
- package/tests/error-status.spec.ts +7 -1
- package/tests/planning.spec.ts +58 -75
- package/tests/presentation.spec.ts +21 -23
- package/tests/scaffold.spec.ts +286 -6
- package/tests/tenancy.spec.ts +21 -21
- package/build/connect/ops.d.ts.map +0 -1
- package/build/connect/ops.js +0 -2
- package/build/connect/ops.js.map +0 -1
- package/build/connect/types.d.ts +0 -437
- package/build/connect/types.d.ts.map +0 -1
- package/build/intent/flow.d.ts +0 -17
- package/build/intent/flow.d.ts.map +0 -1
- package/build/intent/flow.js +0 -65
- package/build/intent/flow.js.map +0 -1
- package/build/planning/flows.d.ts +0 -34
- package/build/planning/flows.d.ts.map +0 -1
- package/build/planning/flows.js +0 -174
- package/build/planning/flows.js.map +0 -1
- package/build/skills/roles.d.ts +0 -43
- package/build/skills/roles.d.ts.map +0 -1
- package/build/skills/roles.js +0 -44
- package/build/skills/roles.js.map +0 -1
- package/src/connect/types.ts +0 -466
- package/src/intent/flow.ts +0 -67
- package/src/planning/flows.ts +0 -204
- package/src/skills/roles.ts +0 -46
- /package/build/{connect → agent/presentation}/types.js +0 -0
package/src/topology/card.ts
CHANGED
|
@@ -1,106 +1,101 @@
|
|
|
1
1
|
import { SubProject } from '../slot/consts.js'
|
|
2
2
|
import { TOPOLOGY_VERSION } from './consts.js'
|
|
3
|
-
import {
|
|
4
|
-
import type { TargetPackageDescriptor, TargetPackageKind, TopologyDescriptor } from './types.js'
|
|
3
|
+
import { topologyHelper } from './resolve.js'
|
|
4
|
+
import type { TargetPackageDescriptor, TargetPackageKind, TopologyDescriptor, TopologyMeta } from './types.js'
|
|
5
|
+
import { KINDS, ROLES } from './consts.local.js'
|
|
6
|
+
import type { TopologyCardHelper } from './card/types.js'
|
|
5
7
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
updatedAt: string
|
|
10
|
-
}
|
|
8
|
+
export const createTopologyCardHelper = (): TopologyCardHelper => {
|
|
9
|
+
const asStrings = (value: unknown): string[] =>
|
|
10
|
+
Array.isArray(value) ? value.filter((item): item is string => typeof item === 'string') : []
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Read a package descriptor out of whatever the file held.
|
|
14
|
+
*
|
|
15
|
+
* Everything is narrowed rather than trusted: the file is on the target's volume, where a person,
|
|
16
|
+
* a GitHub pull or a previous platform version may have written it. A descriptor that cannot be
|
|
17
|
+
* narrowed is DROPPED, never repaired — a package with no name or no recognisable role would
|
|
18
|
+
* otherwise resolve a path somewhere real and wrong.
|
|
19
|
+
*/
|
|
20
|
+
const parsePackage = (value: unknown): TargetPackageDescriptor | null => {
|
|
21
|
+
if (value == null || typeof value !== 'object') return null
|
|
22
|
+
const raw = value as Record<string, unknown>
|
|
23
|
+
const name = typeof raw.name === 'string' ? raw.name.trim() : ''
|
|
24
|
+
if (name === '' || name.includes('/') || name.startsWith('.')) return null
|
|
25
|
+
const roles = asStrings(raw.roles).filter((role): role is SubProject => ROLES.has(role))
|
|
26
|
+
if (roles.length === 0) return null
|
|
27
|
+
const kind = KINDS.has(raw.kind as TargetPackageKind) ? raw.kind as TargetPackageKind : 'bundle'
|
|
28
|
+
const areas = asStrings(raw.areas)
|
|
29
|
+
const queues = asStrings(raw.queues)
|
|
14
30
|
|
|
15
|
-
|
|
16
|
-
|
|
31
|
+
return {
|
|
32
|
+
name,
|
|
33
|
+
roles,
|
|
34
|
+
kind,
|
|
35
|
+
dependsOn: asStrings(raw.dependsOn),
|
|
36
|
+
...(areas.length > 0 ? { areas: areas as TargetPackageDescriptor['areas'] } : {}),
|
|
37
|
+
...(queues.length > 0 ? { queues } : {}),
|
|
38
|
+
}
|
|
39
|
+
}
|
|
17
40
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const parsePackage = (value: unknown): TargetPackageDescriptor | null => {
|
|
27
|
-
if (value == null || typeof value !== 'object') return null
|
|
28
|
-
const raw = value as Record<string, unknown>
|
|
29
|
-
const name = typeof raw.name === 'string' ? raw.name.trim() : ''
|
|
30
|
-
if (name === '' || name.includes('/') || name.startsWith('.')) return null
|
|
31
|
-
const roles = asStrings(raw.roles).filter((role): role is SubProject => ROLES.has(role))
|
|
32
|
-
if (roles.length === 0) return null
|
|
33
|
-
const kind = KINDS.has(raw.kind as TargetPackageKind) ? raw.kind as TargetPackageKind : 'bundle'
|
|
34
|
-
const areas = asStrings(raw.areas)
|
|
35
|
-
const queues = asStrings(raw.queues)
|
|
41
|
+
const parseTopologyMeta = (data: unknown): TopologyDescriptor | null => {
|
|
42
|
+
if (data == null || typeof data !== 'object') return null
|
|
43
|
+
const raw = data as Record<string, unknown>
|
|
44
|
+
if (typeof raw.dir !== 'string' || raw.dir.trim() === '') return null
|
|
45
|
+
const packages = Array.isArray(raw.packages)
|
|
46
|
+
? raw.packages.map(parsePackage).filter((pkg): pkg is TargetPackageDescriptor => pkg != null)
|
|
47
|
+
: []
|
|
48
|
+
if (packages.length === 0) return null
|
|
36
49
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
...(areas.length > 0 ? { areas: areas as TargetPackageDescriptor['areas'] } : {}),
|
|
43
|
-
...(queues.length > 0 ? { queues } : {}),
|
|
50
|
+
return {
|
|
51
|
+
id: typeof raw.id === 'string' && raw.id !== '' ? raw.id : 'recorded',
|
|
52
|
+
dir: raw.dir.trim(),
|
|
53
|
+
packages,
|
|
54
|
+
}
|
|
44
55
|
}
|
|
45
|
-
}
|
|
46
56
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
const topologyMeta = (topology: TopologyDescriptor): TopologyMeta => ({
|
|
58
|
+
...topology,
|
|
59
|
+
packages: topologyHelper.orderPackages(topology.packages),
|
|
60
|
+
version: TOPOLOGY_VERSION,
|
|
61
|
+
updatedAt: new Date().toISOString(),
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
const renderTopologyCard = (topology: TopologyDescriptor): string => {
|
|
65
|
+
const ordered = topologyHelper.orderPackages(topology.packages)
|
|
66
|
+
const rows = ordered.map(pkg => {
|
|
67
|
+
const deps = pkg.dependsOn.length > 0 ? pkg.dependsOn.join(', ') : '—'
|
|
68
|
+
const extra = [
|
|
69
|
+
...(pkg.areas != null ? [`areas: ${pkg.areas.join(', ')}`] : []),
|
|
70
|
+
...(pkg.queues != null ? [`queues: ${pkg.queues.join(', ')}`] : []),
|
|
71
|
+
].join('; ')
|
|
62
72
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
return `| \`${topology.dir}/${pkg.name}\` | ${pkg.roles.join(', ')} | ${pkg.kind} | ${deps} | ${extra === '' ? '—' : extra} |`
|
|
74
|
+
})
|
|
75
|
+
|
|
76
|
+
return [
|
|
77
|
+
'# Topology',
|
|
78
|
+
'',
|
|
79
|
+
'Which packages this project has, what each one is, and which compile against which.',
|
|
80
|
+
'Built in the order of the table — a `library` must be built before anything importing it.',
|
|
81
|
+
'',
|
|
82
|
+
'| Package | Roles | Kind | Depends on | Notes |',
|
|
83
|
+
'|---|---|---|---|---|',
|
|
84
|
+
...rows,
|
|
85
|
+
'',
|
|
86
|
+
].join('\n')
|
|
67
87
|
}
|
|
88
|
+
|
|
89
|
+
return { parseTopologyMeta, topologyMeta, renderTopologyCard }
|
|
68
90
|
}
|
|
69
91
|
|
|
70
|
-
export const
|
|
71
|
-
...topology,
|
|
72
|
-
packages: orderPackages(topology.packages),
|
|
73
|
-
version: TOPOLOGY_VERSION,
|
|
74
|
-
updatedAt: new Date().toISOString(),
|
|
75
|
-
})
|
|
92
|
+
export const topologyCardHelper = createTopologyCardHelper()
|
|
76
93
|
|
|
77
|
-
/**
|
|
78
|
-
|
|
79
|
-
*
|
|
80
|
-
* Rendered from the descriptor rather than maintained beside it, for the same reason the layout
|
|
81
|
-
* tables are: a card that disagrees with the frontmatter teaches the wrong tree.
|
|
82
|
-
*/
|
|
83
|
-
export const renderTopologyCard = (topology: TopologyDescriptor): string => {
|
|
84
|
-
const ordered = orderPackages(topology.packages)
|
|
85
|
-
const rows = ordered.map(pkg => {
|
|
86
|
-
const deps = pkg.dependsOn.length > 0 ? pkg.dependsOn.join(', ') : '—'
|
|
87
|
-
const extra = [
|
|
88
|
-
...(pkg.areas != null ? [`areas: ${pkg.areas.join(', ')}`] : []),
|
|
89
|
-
...(pkg.queues != null ? [`queues: ${pkg.queues.join(', ')}`] : []),
|
|
90
|
-
].join('; ')
|
|
94
|
+
/** @deprecated compat:factory-refactor — use `topologyCardHelper.parseTopologyMeta(…)` */
|
|
95
|
+
export const parseTopologyMeta = (data: unknown): TopologyDescriptor | null => topologyCardHelper.parseTopologyMeta(data)
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
/** @deprecated compat:factory-refactor — use `topologyCardHelper.topologyMeta(…)` */
|
|
98
|
+
export const topologyMeta = (topology: TopologyDescriptor): TopologyMeta => topologyCardHelper.topologyMeta(topology)
|
|
94
99
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
'',
|
|
98
|
-
'Which packages this project has, what each one is, and which compile against which.',
|
|
99
|
-
'Built in the order of the table — a `library` must be built before anything importing it.',
|
|
100
|
-
'',
|
|
101
|
-
'| Package | Roles | Kind | Depends on | Notes |',
|
|
102
|
-
'|---|---|---|---|---|',
|
|
103
|
-
...rows,
|
|
104
|
-
'',
|
|
105
|
-
].join('\n')
|
|
106
|
-
}
|
|
100
|
+
/** @deprecated compat:factory-refactor — use `topologyCardHelper.renderTopologyCard(…)` */
|
|
101
|
+
export const renderTopologyCard = (topology: TopologyDescriptor): string => topologyCardHelper.renderTopologyCard(topology)
|
package/src/topology/helpers.ts
CHANGED
|
@@ -1,138 +1,33 @@
|
|
|
1
|
-
import { TargetLayout } from '../integrity/consts.js'
|
|
2
1
|
import type { ProjectArea } from '../areas/consts.js'
|
|
3
2
|
import type { SubProject } from '../slot/consts.js'
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
6
|
-
ResolvedTopology, TargetPackageDescriptor, TopologyDescriptor,
|
|
7
|
-
} from './types.js'
|
|
3
|
+
import { topologyHelper } from './resolve.js'
|
|
4
|
+
import type { ResolvedTopology, TargetPackageDescriptor, TopologyDescriptor } from './types.js'
|
|
8
5
|
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
* Kahn's algorithm, with two deliberate tolerances. An edge to a package the topology does not
|
|
13
|
-
* hold is DROPPED rather than fatal — a project may declare a dependency on something a pull has
|
|
14
|
-
* not brought in yet, and refusing to order the tree would take the whole build down over one
|
|
15
|
-
* name. A cycle leaves its members unvisited, and they are appended in declaration order: a cycle
|
|
16
|
-
* cannot be built correctly in any order, so the useful behaviour is to build it in the order
|
|
17
|
-
* somebody wrote rather than to throw.
|
|
18
|
-
*/
|
|
19
|
-
export const orderPackages = (packages: TargetPackageDescriptor[]): TargetPackageDescriptor[] => {
|
|
20
|
-
const known = new Set(packages.map(pkg => pkg.name))
|
|
21
|
-
const index = new Map(packages.map((pkg, at) => [pkg.name, at]))
|
|
22
|
-
const pending = new Map(packages.map(pkg => [
|
|
23
|
-
pkg.name, pkg.dependsOn.filter(dep => known.has(dep) && dep !== pkg.name).length,
|
|
24
|
-
]))
|
|
25
|
-
const dependents = new Map<string, string[]>()
|
|
26
|
-
for (const pkg of packages) {
|
|
27
|
-
for (const dep of pkg.dependsOn) {
|
|
28
|
-
if (!known.has(dep) || dep === pkg.name) continue
|
|
29
|
-
dependents.set(dep, [...dependents.get(dep) ?? [], pkg.name])
|
|
30
|
-
}
|
|
31
|
-
}
|
|
6
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.orderPackages(…)` */
|
|
7
|
+
export const orderPackages = (packages: TargetPackageDescriptor[]): TargetPackageDescriptor[] =>
|
|
8
|
+
topologyHelper.orderPackages(packages)
|
|
32
9
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// correct builds; only one is the same list every time and the same list a person wrote, and
|
|
37
|
-
// this order is compared against the shipped layout tables by a test.
|
|
38
|
-
const ready = packages.filter(pkg => pending.get(pkg.name) === 0).map(pkg => pkg.name)
|
|
39
|
-
const take = (): string | undefined => {
|
|
40
|
-
if (ready.length === 0) return undefined
|
|
41
|
-
let at = 0
|
|
42
|
-
for (let i = 1; i < ready.length; i++) {
|
|
43
|
-
if ((index.get(ready[i]) ?? 0) < (index.get(ready[at]) ?? 0)) at = i
|
|
44
|
-
}
|
|
10
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.resolveTopology(…)` */
|
|
11
|
+
export const resolveTopology = (topology: TopologyDescriptor): ResolvedTopology =>
|
|
12
|
+
topologyHelper.resolveTopology(topology)
|
|
45
13
|
|
|
46
|
-
|
|
47
|
-
|
|
14
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.packageForRole(…)` */
|
|
15
|
+
export const packageForRole = (topology: ResolvedTopology, role: SubProject): TargetPackageDescriptor | null =>
|
|
16
|
+
topologyHelper.packageForRole(topology, role)
|
|
48
17
|
|
|
49
|
-
|
|
50
|
-
const pkg = byName.get(name)
|
|
51
|
-
if (pkg == null) continue
|
|
52
|
-
out.push(pkg)
|
|
53
|
-
for (const next of dependents.get(name) ?? []) {
|
|
54
|
-
const left = (pending.get(next) ?? 0) - 1
|
|
55
|
-
pending.set(next, left)
|
|
56
|
-
if (left === 0) ready.push(next)
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const seen = new Set(out.map(pkg => pkg.name))
|
|
61
|
-
|
|
62
|
-
return [...out, ...packages.filter(pkg => !seen.has(pkg.name))]
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** Resolve the derived halves — build order, library order and the role index. */
|
|
66
|
-
export const resolveTopology = (topology: TopologyDescriptor): ResolvedTopology => {
|
|
67
|
-
const ordered = orderPackages(topology.packages)
|
|
68
|
-
const byRole: Partial<Record<SubProject, TargetPackageDescriptor[]>> = {}
|
|
69
|
-
for (const pkg of ordered) {
|
|
70
|
-
for (const role of pkg.roles) {
|
|
71
|
-
byRole[role] = [...byRole[role] ?? [], pkg]
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
...topology,
|
|
77
|
-
packages: ordered,
|
|
78
|
-
build: ordered.map(pkg => pkg.name),
|
|
79
|
-
libraries: ordered.filter(pkg => pkg.kind === 'library').map(pkg => pkg.name),
|
|
80
|
-
byRole,
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/** The default topology for a layout already decided. */
|
|
85
|
-
export const topologyOf = (layout: TargetLayout): TopologyDescriptor =>
|
|
86
|
-
LAYOUT_TOPOLOGIES[layout] ?? DEFAULT_TOPOLOGY
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* The directory a role names, or `null` when this topology has no package for it.
|
|
90
|
-
*
|
|
91
|
-
* `null` rather than the role's own name: a command aimed at a package the tree does not have must
|
|
92
|
-
* fail where it is issued. Answering with a plausible directory runs it somewhere real and wrong,
|
|
93
|
-
* which is how a type check once ran against the shared package instead of the one under repair.
|
|
94
|
-
*/
|
|
95
|
-
export const packageForRole = (
|
|
96
|
-
topology: ResolvedTopology, role: SubProject
|
|
97
|
-
): TargetPackageDescriptor | null => topology.byRole[role]?.[0] ?? null
|
|
98
|
-
|
|
99
|
-
/** Every package holding a role — more than one only where a topology splits that role. */
|
|
100
|
-
export const packagesForRole = (
|
|
101
|
-
topology: ResolvedTopology, role: SubProject
|
|
102
|
-
): TargetPackageDescriptor[] => topology.byRole[role] ?? []
|
|
103
|
-
|
|
104
|
-
/** The package serving an area, for a topology that splits the browser app across several. */
|
|
18
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.packageForArea(…)` */
|
|
105
19
|
export const packageForArea = (
|
|
106
20
|
topology: ResolvedTopology, role: SubProject, area: ProjectArea
|
|
107
|
-
): TargetPackageDescriptor | null =>
|
|
108
|
-
const candidates = packagesForRole(topology, role)
|
|
109
|
-
return candidates.find(pkg => pkg.areas?.includes(area) === true)
|
|
110
|
-
?? candidates.find(pkg => pkg.areas == null)
|
|
111
|
-
?? candidates[0]
|
|
112
|
-
?? null
|
|
113
|
-
}
|
|
21
|
+
): TargetPackageDescriptor | null => topologyHelper.packageForArea(topology, role, area)
|
|
114
22
|
|
|
115
|
-
/**
|
|
23
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.packageDir(…)` */
|
|
116
24
|
export const packageDir = (topology: TopologyDescriptor, pkg: TargetPackageDescriptor): string =>
|
|
117
|
-
|
|
25
|
+
topologyHelper.packageDir(topology, pkg)
|
|
118
26
|
|
|
119
|
-
/**
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* This is the ADOPTION path: a package that arrived with a GitHub pull is classified once and
|
|
123
|
-
* recorded here, so the next run addresses the tree that exists rather than re-deriving one that
|
|
124
|
-
* does not. Replacing by name rather than appending keeps a re-classification idempotent.
|
|
125
|
-
*/
|
|
126
|
-
export const withPackage = (
|
|
127
|
-
topology: TopologyDescriptor, pkg: TargetPackageDescriptor
|
|
128
|
-
): TopologyDescriptor => ({
|
|
129
|
-
...topology,
|
|
130
|
-
packages: topology.packages.some(known => known.name === pkg.name)
|
|
131
|
-
? topology.packages.map(known => known.name === pkg.name ? pkg : known)
|
|
132
|
-
: [...topology.packages, pkg],
|
|
133
|
-
})
|
|
27
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.withPackage(…)` */
|
|
28
|
+
export const withPackage = (topology: TopologyDescriptor, pkg: TargetPackageDescriptor): TopologyDescriptor =>
|
|
29
|
+
topologyHelper.withPackage(topology, pkg)
|
|
134
30
|
|
|
135
|
-
/**
|
|
31
|
+
/** @deprecated compat:factory-refactor — use `topologyHelper.sameTopology(…)` */
|
|
136
32
|
export const sameTopology = (a: TopologyDescriptor, b: TopologyDescriptor): boolean =>
|
|
137
|
-
|
|
138
|
-
&& a.dir === b.dir
|
|
33
|
+
topologyHelper.sameTopology(a, b)
|
package/src/topology/index.ts
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ProjectArea } from '../../areas/consts.js'
|
|
2
|
+
import type { TargetLayout } from '../../integrity/consts.js'
|
|
3
|
+
import type { SubProject } from '../../slot/consts.js'
|
|
4
|
+
import type { ResolvedTopology, TargetPackageDescriptor, TopologyDescriptor } from '../types.js'
|
|
5
|
+
|
|
6
|
+
/** A target's package arrangement: build order, the role index, and where each package lives. */
|
|
7
|
+
export interface TopologyHelper {
|
|
8
|
+
/**
|
|
9
|
+
* Order the packages so that nothing is built before what it compiles against.
|
|
10
|
+
*
|
|
11
|
+
* Kahn's algorithm, with two deliberate tolerances. An edge to a package the topology does not
|
|
12
|
+
* hold is DROPPED rather than fatal — a project may declare a dependency on something a pull has
|
|
13
|
+
* not brought in yet, and refusing to order the tree would take the whole build down over one
|
|
14
|
+
* name. A cycle leaves its members unvisited, and they are appended in declaration order: a cycle
|
|
15
|
+
* cannot be built correctly in any order, so the useful behaviour is to build it in the order
|
|
16
|
+
* somebody wrote rather than to throw.
|
|
17
|
+
*/
|
|
18
|
+
orderPackages: (packages: TargetPackageDescriptor[]) => TargetPackageDescriptor[]
|
|
19
|
+
/** Resolve the derived halves — build order, library order and the role index. */
|
|
20
|
+
resolveTopology: (topology: TopologyDescriptor) => ResolvedTopology
|
|
21
|
+
/** The default topology for a layout already decided. */
|
|
22
|
+
topologyOf: (layout: TargetLayout) => TopologyDescriptor
|
|
23
|
+
/**
|
|
24
|
+
* The directory a role names, or `null` when this topology has no package for it.
|
|
25
|
+
*
|
|
26
|
+
* `null` rather than the role's own name: a command aimed at a package the tree does not have must
|
|
27
|
+
* fail where it is issued. Answering with a plausible directory runs it somewhere real and wrong,
|
|
28
|
+
* which is how a type check once ran against the shared package instead of the one under repair.
|
|
29
|
+
*/
|
|
30
|
+
packageForRole: (topology: ResolvedTopology, role: SubProject) => TargetPackageDescriptor | null
|
|
31
|
+
/** Every package holding a role — more than one only where a topology splits that role. */
|
|
32
|
+
packagesForRole: (topology: ResolvedTopology, role: SubProject) => TargetPackageDescriptor[]
|
|
33
|
+
/** The package serving an area, for a topology that splits the browser app across several. */
|
|
34
|
+
packageForArea: (topology: ResolvedTopology, role: SubProject, area: ProjectArea) => TargetPackageDescriptor | null
|
|
35
|
+
/** `<dir>/<package>` — the only place a topology directory is composed. */
|
|
36
|
+
packageDir: (topology: TopologyDescriptor, pkg: TargetPackageDescriptor) => string
|
|
37
|
+
/**
|
|
38
|
+
* Merge a package into a topology, by name.
|
|
39
|
+
*
|
|
40
|
+
* This is the ADOPTION path: a package that arrived with a GitHub pull is classified once and
|
|
41
|
+
* recorded here, so the next run addresses the tree that exists rather than re-deriving one that
|
|
42
|
+
* does not. Replacing by name rather than appending keeps a re-classification idempotent.
|
|
43
|
+
*/
|
|
44
|
+
withPackage: (topology: TopologyDescriptor, pkg: TargetPackageDescriptor) => TopologyDescriptor
|
|
45
|
+
/** Whether two topologies describe the same arrangement — used to skip a needless rewrite. */
|
|
46
|
+
sameTopology: (a: TopologyDescriptor, b: TopologyDescriptor) => boolean
|
|
47
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { TargetLayout } from '../integrity/consts.js'
|
|
2
|
+
import type { ProjectArea } from '../areas/consts.js'
|
|
3
|
+
import type { SubProject } from '../slot/consts.js'
|
|
4
|
+
import { LAYOUT_TOPOLOGIES, DEFAULT_TOPOLOGY } from './consts.js'
|
|
5
|
+
import type {
|
|
6
|
+
ResolvedTopology, TargetPackageDescriptor, TopologyDescriptor,
|
|
7
|
+
} from './types.js'
|
|
8
|
+
import type { TopologyHelper } from './resolve/types.js'
|
|
9
|
+
|
|
10
|
+
export const createTopologyHelper = (): TopologyHelper => {
|
|
11
|
+
const orderPackages = (packages: TargetPackageDescriptor[]): TargetPackageDescriptor[] => {
|
|
12
|
+
const known = new Set(packages.map(pkg => pkg.name))
|
|
13
|
+
const index = new Map(packages.map((pkg, at) => [pkg.name, at]))
|
|
14
|
+
const pending = new Map(packages.map(pkg => [
|
|
15
|
+
pkg.name, pkg.dependsOn.filter(dep => known.has(dep) && dep !== pkg.name).length,
|
|
16
|
+
]))
|
|
17
|
+
const dependents = new Map<string, string[]>()
|
|
18
|
+
for (const pkg of packages) {
|
|
19
|
+
for (const dep of pkg.dependsOn) {
|
|
20
|
+
if (!known.has(dep) || dep === pkg.name) continue
|
|
21
|
+
dependents.set(dep, [...dependents.get(dep) ?? [], pkg.name])
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const byName = new Map(packages.map(pkg => [pkg.name, pkg]))
|
|
26
|
+
const out: TargetPackageDescriptor[] = []
|
|
27
|
+
// Ready packages are taken in DECLARATION order, not in the order they became ready. Both are
|
|
28
|
+
// correct builds; only one is the same list every time and the same list a person wrote, and
|
|
29
|
+
// this order is compared against the shipped layout tables by a test.
|
|
30
|
+
const ready = packages.filter(pkg => pending.get(pkg.name) === 0).map(pkg => pkg.name)
|
|
31
|
+
const take = (): string | undefined => {
|
|
32
|
+
if (ready.length === 0) return undefined
|
|
33
|
+
let at = 0
|
|
34
|
+
for (let i = 1; i < ready.length; i++) {
|
|
35
|
+
if ((index.get(ready[i]) ?? 0) < (index.get(ready[at]) ?? 0)) at = i
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return ready.splice(at, 1)[0]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
for (let name = take(); name != null; name = take()) {
|
|
42
|
+
const pkg = byName.get(name)
|
|
43
|
+
if (pkg == null) continue
|
|
44
|
+
out.push(pkg)
|
|
45
|
+
for (const next of dependents.get(name) ?? []) {
|
|
46
|
+
const left = (pending.get(next) ?? 0) - 1
|
|
47
|
+
pending.set(next, left)
|
|
48
|
+
if (left === 0) ready.push(next)
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const seen = new Set(out.map(pkg => pkg.name))
|
|
53
|
+
|
|
54
|
+
return [...out, ...packages.filter(pkg => !seen.has(pkg.name))]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const resolveTopology = (topology: TopologyDescriptor): ResolvedTopology => {
|
|
58
|
+
const ordered = orderPackages(topology.packages)
|
|
59
|
+
const byRole: Partial<Record<SubProject, TargetPackageDescriptor[]>> = {}
|
|
60
|
+
for (const pkg of ordered) {
|
|
61
|
+
for (const role of pkg.roles) {
|
|
62
|
+
byRole[role] = [...byRole[role] ?? [], pkg]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return {
|
|
67
|
+
...topology,
|
|
68
|
+
packages: ordered,
|
|
69
|
+
build: ordered.map(pkg => pkg.name),
|
|
70
|
+
libraries: ordered.filter(pkg => pkg.kind === 'library').map(pkg => pkg.name),
|
|
71
|
+
byRole,
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const topologyOf = (layout: TargetLayout): TopologyDescriptor =>
|
|
76
|
+
LAYOUT_TOPOLOGIES[layout] ?? DEFAULT_TOPOLOGY
|
|
77
|
+
|
|
78
|
+
const packageForRole = (
|
|
79
|
+
topology: ResolvedTopology, role: SubProject
|
|
80
|
+
): TargetPackageDescriptor | null => topology.byRole[role]?.[0] ?? null
|
|
81
|
+
|
|
82
|
+
const packagesForRole = (
|
|
83
|
+
topology: ResolvedTopology, role: SubProject
|
|
84
|
+
): TargetPackageDescriptor[] => topology.byRole[role] ?? []
|
|
85
|
+
|
|
86
|
+
const packageForArea = (
|
|
87
|
+
topology: ResolvedTopology, role: SubProject, area: ProjectArea
|
|
88
|
+
): TargetPackageDescriptor | null => {
|
|
89
|
+
const candidates = packagesForRole(topology, role)
|
|
90
|
+
return candidates.find(pkg => pkg.areas?.includes(area) === true)
|
|
91
|
+
?? candidates.find(pkg => pkg.areas == null)
|
|
92
|
+
?? candidates[0]
|
|
93
|
+
?? null
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const packageDir = (topology: TopologyDescriptor, pkg: TargetPackageDescriptor): string =>
|
|
97
|
+
`${topology.dir}/${pkg.name}`
|
|
98
|
+
|
|
99
|
+
const withPackage = (
|
|
100
|
+
topology: TopologyDescriptor, pkg: TargetPackageDescriptor
|
|
101
|
+
): TopologyDescriptor => ({
|
|
102
|
+
...topology,
|
|
103
|
+
packages: topology.packages.some(known => known.name === pkg.name)
|
|
104
|
+
? topology.packages.map(known => known.name === pkg.name ? pkg : known)
|
|
105
|
+
: [...topology.packages, pkg],
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
const sameTopology = (a: TopologyDescriptor, b: TopologyDescriptor): boolean =>
|
|
109
|
+
JSON.stringify(orderPackages(a.packages)) === JSON.stringify(orderPackages(b.packages))
|
|
110
|
+
&& a.dir === b.dir
|
|
111
|
+
|
|
112
|
+
return {
|
|
113
|
+
orderPackages, resolveTopology, topologyOf, packageForRole, packagesForRole, packageForArea, packageDir,
|
|
114
|
+
withPackage, sameTopology,
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export const topologyHelper = createTopologyHelper()
|
package/src/topology/types.ts
CHANGED
|
@@ -84,3 +84,9 @@ export interface ResolvedTopology extends TopologyDescriptor {
|
|
|
84
84
|
/** Role → the packages holding it, in topology order. */
|
|
85
85
|
byRole: Partial<Record<SubProject, TargetPackageDescriptor[]>>
|
|
86
86
|
}
|
|
87
|
+
|
|
88
|
+
/** What `.agents/memory/topology.md` carries in its frontmatter. */
|
|
89
|
+
export interface TopologyMeta extends TopologyDescriptor {
|
|
90
|
+
version: number
|
|
91
|
+
updatedAt: string
|
|
92
|
+
}
|
package/tests/blueprint.spec.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { describe, expect, test } from 'bun:test'
|
|
2
2
|
import { landingGatePreferenceOf, LandingGatePreference } from '../src/blueprint/index.js'
|
|
3
3
|
import type { Blueprint } from '../src/blueprint/index.js'
|
|
4
|
-
import { ViableSkill } from '../src/skills/consts.js'
|
|
5
|
-
import { ViablePersona } from '../src/skills/roles.js'
|
|
4
|
+
import { ViablePersona, ViableSkill } from '../src/skills/consts.js'
|
|
6
5
|
|
|
7
6
|
/** Just enough of a blueprint to read a preference from — the shape a test builds. */
|
|
8
7
|
const base = (extra: Partial<Blueprint> = {}): Blueprint => ({
|
package/tests/branding.spec.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { describe, expect, it } from 'bun:test'
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { metadataConfigs, metadataLists } from '../src/consts.js'
|
|
3
|
+
import { brandingEnv } from '../src/branding.js'
|
|
4
|
+
import { BRANDING_ENV_KEYS, metadataConfigs, metadataLists } from '../src/consts.js'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* `BRANDING_CREDIT` is the one key whose ABSENCE means something different from an explicit
|
|
@@ -8,7 +8,7 @@ import { connectProtocols } from '../src/connect/entrypoints.js'
|
|
|
8
8
|
import { connectRef } from '../src/connect/references.js'
|
|
9
9
|
import {
|
|
10
10
|
ConnectCapabilitiesSchema, ConnectConvertCreateBodySchema, ConnectConvertProceedBodySchema,
|
|
11
|
-
ConnectInquiryParamsSchema, ConnectPipelineResumeBodySchema, InquiryAnswerSchema
|
|
11
|
+
ConnectConvertStartBodySchema, ConnectInquiryParamsSchema, ConnectPipelineResumeBodySchema, InquiryAnswerSchema
|
|
12
12
|
} from '../src/connect/schemas.js'
|
|
13
13
|
import { ConnectExecutor } from '../src/connect/consts.js'
|
|
14
14
|
import { InquiryKind } from '@owlmeans/llm-common'
|
|
@@ -39,6 +39,7 @@ describe('viable-common - the conversion additions to the connector contract', (
|
|
|
39
39
|
['InquiryAnswerSchema', InquiryAnswerSchema],
|
|
40
40
|
['ConnectInquiryParamsSchema', ConnectInquiryParamsSchema],
|
|
41
41
|
['ConnectConvertCreateBodySchema', ConnectConvertCreateBodySchema],
|
|
42
|
+
['ConnectConvertStartBodySchema', ConnectConvertStartBodySchema],
|
|
42
43
|
['ConnectConvertProceedBodySchema', ConnectConvertProceedBodySchema],
|
|
43
44
|
['ConnectPipelineResumeBodySchema', ConnectPipelineResumeBodySchema],
|
|
44
45
|
['ConnectCapabilitiesSchema', ConnectCapabilitiesSchema],
|
|
@@ -81,6 +82,25 @@ describe('viable-common - the conversion additions to the connector contract', (
|
|
|
81
82
|
expect(proceed({ decision: 'teleport' })).toBe(false)
|
|
82
83
|
})
|
|
83
84
|
|
|
85
|
+
test('start and proceed carry the person\'s confirmation, and nothing else new', () => {
|
|
86
|
+
const ajv = compiler()
|
|
87
|
+
const start = ajv.compile(ConnectConvertStartBodySchema as never)
|
|
88
|
+
const proceed = ajv.compile(ConnectConvertProceedBodySchema as never)
|
|
89
|
+
|
|
90
|
+
expect(start({})).toBe(true)
|
|
91
|
+
expect(start({ confirm: true })).toBe(true)
|
|
92
|
+
// An unset optional serialised as `null` is "not confirmed", never a refused body.
|
|
93
|
+
expect(start({ confirm: null })).toBe(true)
|
|
94
|
+
expect(start({ confirm: 'yes' })).toBe(false)
|
|
95
|
+
expect(start({ restart: true })).toBe(false)
|
|
96
|
+
expect(proceed({ decision: ConversionDecision.Implement, confirm: true })).toBe(true)
|
|
97
|
+
expect(proceed({ decision: ConversionDecision.Implement, confirm: 1 })).toBe(false)
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
test('the start declares its body, so a confirmation reaches the handler', () => {
|
|
101
|
+
expect(entrypointOf(connect.convert.start).contract?.requestSchemas.body).toEqual(ConnectConvertStartBodySchema as never)
|
|
102
|
+
})
|
|
103
|
+
|
|
84
104
|
test('capabilities accept an executor kind this platform has never heard of', () => {
|
|
85
105
|
// The SDK and the platform ship separately: a connector built against a newer package must not
|
|
86
106
|
// be refused a session because it advertises one more capability than this platform knows.
|