@owlmeans/viable-common 0.0.44 → 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 +40 -28
- package/build/agent/index.d.ts +1 -0
- package/build/agent/index.d.ts.map +1 -1
- 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 +10 -8
- package/build/agent/presentation.d.ts.map +1 -1
- package/build/agent/presentation.js +216 -195
- package/build/agent/presentation.js.map +1 -1
- package/build/agent/types.local.d.ts +3 -1
- package/build/agent/types.local.d.ts.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 +5 -14
- package/build/areas/tenancy.d.ts.map +1 -1
- package/build/areas/tenancy.js +20 -26
- package/build/areas/tenancy.js.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/blueprint/types.d.ts +1 -2
- package/build/blueprint/types.d.ts.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 -0
- package/build/connect/consts.d.ts.map +1 -1
- package/build/connect/consts.js +2 -0
- 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 +17 -11
- package/build/connect/entrypoints.d.ts.map +1 -1
- 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 +1 -1
- package/build/connect/errors.d.ts.map +1 -1
- package/build/connect/index.d.ts +13 -3
- package/build/connect/index.d.ts.map +1 -1
- package/build/connect/index.js +1 -1
- 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.map +1 -0
- package/build/connect/references.d.ts +1 -1
- package/build/connect/references.d.ts.map +1 -1
- package/build/connect/references.js.map +1 -1
- package/build/connect/schemas.d.ts +8 -5
- package/build/connect/schemas.d.ts.map +1 -1
- package/build/connect/schemas.js +1 -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/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/{consts.local.d.ts → census/consts.local.d.ts} +1 -1
- package/build/convert/census/consts.local.d.ts.map +1 -0
- package/build/convert/{consts.local.js → census/consts.local.js} +1 -1
- 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 -0
- package/build/convert/consts.d.ts.map +1 -1
- package/build/convert/consts.js +4 -0
- 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 -199
- package/build/convert/helpers.js.map +1 -1
- package/build/convert/index.d.ts +14 -0
- package/build/convert/index.d.ts.map +1 -1
- package/build/convert/index.js +5 -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 -657
- package/build/convert/types.d.ts.map +1 -1
- package/build/convert/utils.d.ts +2 -1
- package/build/convert/utils.d.ts.map +1 -1
- package/build/convert/utils.js +5 -4
- package/build/convert/utils.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 +6 -2
- package/build/design/runtime.d.ts.map +1 -1
- package/build/design/runtime.js +13 -5
- package/build/design/runtime.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/dev/types.local.d.ts +2 -1
- package/build/dev/types.local.d.ts.map +1 -1
- package/build/integrity/index.d.ts +4 -0
- package/build/integrity/index.d.ts.map +1 -1
- package/build/integrity/index.js +2 -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 +3 -1
- package/build/integrity/types.d.ts.map +1 -1
- package/build/integrity/utils.d.ts +6 -81
- package/build/integrity/utils.d.ts.map +1 -1
- package/build/integrity/utils.js +11 -279
- package/build/integrity/utils.js.map +1 -1
- 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 +164 -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 -11
- 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 -2
- package/build/intent/types.d.ts.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/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 -0
- package/build/planning/index.d.ts.map +1 -1
- package/build/planning/index.js +2 -0
- 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 -10
- package/build/planning/landing.d.ts.map +1 -1
- package/build/planning/landing.js +20 -22
- package/build/planning/landing.js.map +1 -1
- package/build/planning/schemas.d.ts +1 -5
- package/build/planning/schemas.d.ts.map +1 -1
- package/build/planning/schemas.js +3 -3
- 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 +4 -3
- package/build/planning/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 +4 -16
- package/build/scaffold/helpers.d.ts.map +1 -1
- package/build/scaffold/helpers.js +9 -64
- 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 +112 -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/helpers.d.ts +2 -16
- 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 +5 -0
- package/build/slot/index.d.ts.map +1 -1
- package/build/slot/index.js +2 -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 +4 -9
- package/build/slot/layout.d.ts.map +1 -1
- package/build/slot/layout.js +13 -15
- 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.map +1 -1
- package/build/slot/utils.d.ts +3 -15
- package/build/slot/utils.d.ts.map +1 -1
- package/build/slot/utils.js +5 -40
- package/build/slot/utils.js.map +1 -1
- 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 +6 -13
- package/build/topology/card.d.ts.map +1 -1
- package/build/topology/card.js +83 -86
- package/build/topology/card.js.map +1 -1
- 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/package.json +11 -11
- package/src/agent/index.ts +1 -0
- package/src/agent/presentation/types.ts +21 -0
- package/src/agent/presentation.ts +199 -165
- package/src/agent/types.local.ts +3 -1
- package/src/areas/index.ts +1 -0
- package/src/areas/tenancy/types.ts +23 -0
- package/src/areas/tenancy.ts +26 -25
- 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/blueprint/types.ts +2 -2
- package/src/connect/branding/types.ts +29 -0
- package/src/connect/consts.ts +3 -0
- package/src/connect/conversion/types.ts +96 -0
- package/src/connect/entrypoints/types.ts +25 -0
- package/src/connect/entrypoints.ts +13 -2
- package/src/connect/errors/types.ts +22 -0
- package/src/connect/errors.ts +1 -1
- package/src/connect/index.ts +13 -3
- 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 +13 -2
- package/src/connect/schemas.ts +9 -13
- package/src/connect/session/types.ts +81 -0
- package/src/connect/settings/types.ts +52 -0
- package/src/convert/analysis/types.ts +89 -0
- package/src/convert/{consts.local.ts → census/consts.local.ts} +1 -1
- package/src/convert/census/types.ts +181 -0
- package/src/convert/census.ts +95 -0
- package/src/convert/consts.ts +5 -0
- 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 -210
- package/src/convert/index.ts +14 -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 -709
- package/src/convert/utils.ts +5 -6
- 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 +22 -7
- package/src/design/story/types.ts +67 -0
- package/src/design/story.ts +221 -0
- package/src/dev/types.local.ts +1 -1
- package/src/integrity/index.ts +4 -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 +3 -1
- package/src/integrity/utils.ts +14 -313
- package/src/integrity/verify/types.ts +26 -0
- package/src/integrity/verify.ts +177 -181
- package/src/intent/consts.ts +67 -0
- package/src/intent/entrypoints.ts +2 -2
- package/src/intent/index.ts +0 -1
- package/src/intent/types.ts +9 -2
- 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/helpers.ts +28 -116
- package/src/planning/index.ts +5 -0
- package/src/planning/landing/types.ts +15 -0
- package/src/planning/landing.ts +27 -24
- package/src/planning/schemas.ts +3 -3
- package/src/planning/spec/types.ts +22 -0
- package/src/planning/spec.ts +41 -0
- package/src/planning/types.ts +4 -4
- package/src/scaffold/consts.ts +65 -1
- package/src/scaffold/helpers.ts +14 -77
- 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 +120 -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/helpers.ts +5 -25
- package/src/slot/index.ts +5 -0
- package/src/slot/layout/types.ts +17 -0
- package/src/slot/layout.ts +19 -16
- package/src/slot/origin/types.ts +23 -0
- package/src/slot/origin.ts +20 -0
- package/src/slot/types.ts +1 -0
- package/src/slot/utils.ts +8 -43
- package/src/topology/card/types.ts +21 -0
- package/src/topology/card.ts +84 -82
- 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/tests/blueprint.spec.ts +1 -2
- package/tests/connect-errors.spec.ts +1 -1
- package/tests/convert.spec.ts +50 -50
- package/tests/design.spec.ts +13 -16
- package/tests/planning.spec.ts +57 -59
- package/tests/presentation.spec.ts +20 -20
- 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 -650
- package/build/connect/types.d.ts.map +0 -1
- package/build/connect/types.local.d.ts +0 -4
- package/build/connect/types.local.d.ts.map +0 -1
- package/build/connect/types.local.js.map +0 -1
- package/build/connect/utils.d.ts +0 -12
- package/build/connect/utils.d.ts.map +0 -1
- package/build/connect/utils.js +0 -25
- package/build/connect/utils.js.map +0 -1
- package/build/convert/consts.local.d.ts.map +0 -1
- package/build/convert/consts.local.js.map +0 -1
- package/build/intent/consts.local.d.ts +0 -4
- package/build/intent/consts.local.d.ts.map +0 -1
- package/build/intent/consts.local.js +0 -3
- package/build/intent/consts.local.js.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/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.local.ts +0 -5
- package/src/connect/types.ts +0 -589
- package/src/connect/utils.ts +0 -23
- package/src/intent/consts.local.ts +0 -3
- package/src/intent/flow.ts +0 -66
- package/src/skills/roles.ts +0 -46
- /package/build/{connect → agent/presentation}/types.js +0 -0
- /package/build/connect/{types.local.js → references/types.local.js} +0 -0
package/src/scaffold/types.ts
CHANGED
|
@@ -198,6 +198,90 @@ export interface LandingGateAnswer {
|
|
|
198
198
|
note: string
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
/**
|
|
202
|
+
* A band of the landing page that the header menu can jump to — the `id` its section carries.
|
|
203
|
+
* A CLOSED set: each value is one stamped band, so a value nothing draws is a menu entry that
|
|
204
|
+
* scrolls nowhere. `LANDING_ANCHOR_BAND` maps each to its band.
|
|
205
|
+
*/
|
|
206
|
+
export type LandingAnchor = 'how' | 'features' | 'use-cases' | 'why' | 'approach' | 'community' | 'about'
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* The bands a landing page can carry, named in the house order `LANDING_BAND_ORDER` declares.
|
|
210
|
+
* `problem` is the problem-and-solution band. Which of them a page draws is `landingBandsOf`.
|
|
211
|
+
*/
|
|
212
|
+
export type LandingBand =
|
|
213
|
+
| 'hero' | 'steps' | 'features' | 'use-cases' | 'problem' | 'differentiator' | 'approach'
|
|
214
|
+
| 'testimonials' | 'about' | 'closing'
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* A button or link of the landing page that can open a user story — the place a {@link HomeLink}
|
|
218
|
+
* attaches to. Which of them a given page actually draws is `homeSlotsOf`.
|
|
219
|
+
*/
|
|
220
|
+
export type LandingSlot =
|
|
221
|
+
| 'hero.cta' | 'hero.secondary' | 'hero.browse'
|
|
222
|
+
| 'closing.primary' | 'closing.secondary' | 'closing.link.1' | 'closing.link.2'
|
|
223
|
+
| 'useCase.1' | 'useCase.2' | 'useCase.3' | 'useCase.4'
|
|
224
|
+
|
|
225
|
+
/** One entry of the guest header menu: a band to jump to and the word it is shown as. */
|
|
226
|
+
export interface LandingMenuEntry {
|
|
227
|
+
anchor: LandingAnchor
|
|
228
|
+
/** 1-2 words in the product's language. */
|
|
229
|
+
label: string
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** A home button that opens a user story instead of its default action. */
|
|
233
|
+
export interface HomeLink {
|
|
234
|
+
slot: LandingSlot
|
|
235
|
+
/** The story's CODE. */
|
|
236
|
+
story: string
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/** One use case of the landing page: who, doing what. */
|
|
240
|
+
export interface LandingUseCase {
|
|
241
|
+
/** Who this case is for, in a few words. */
|
|
242
|
+
audience: string
|
|
243
|
+
title: string
|
|
244
|
+
text: string
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* The bands added with the gated landing page carry a `basis`: a passage copied word for word from
|
|
249
|
+
* the person's own words, the specification or the vision. It is checked downstream, and a band
|
|
250
|
+
* whose basis is not found there is removed — the band exists only when its claim has a source.
|
|
251
|
+
*/
|
|
252
|
+
export interface LandingUseCases {
|
|
253
|
+
/** Two to four cases. */
|
|
254
|
+
cases: LandingUseCase[]
|
|
255
|
+
basis: string
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/** "Why us": what this product does differently, as a short usual-vs-ours contrast. */
|
|
259
|
+
export interface LandingDifferentiator {
|
|
260
|
+
title: string
|
|
261
|
+
text: string
|
|
262
|
+
/** Two to three rows, at most six words on each side. */
|
|
263
|
+
contrast: { usual: string, ours: string }[]
|
|
264
|
+
/** The heading over the `usual` column; absent falls back to the stamper's own. */
|
|
265
|
+
usualLabel?: string | null
|
|
266
|
+
/** The heading over the `ours` column; absent falls back to the stamper's own. */
|
|
267
|
+
oursLabel?: string | null
|
|
268
|
+
basis: string
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/** "How we work": the principles the product is run by, three to four. */
|
|
272
|
+
export interface LandingApproach {
|
|
273
|
+
title?: string | null
|
|
274
|
+
principles: { title: string, text: string }[]
|
|
275
|
+
basis: string
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** The about band: who is behind the product. */
|
|
279
|
+
export interface LandingAbout {
|
|
280
|
+
title: string
|
|
281
|
+
text: string
|
|
282
|
+
basis: string
|
|
283
|
+
}
|
|
284
|
+
|
|
201
285
|
/** The guest area's landing page — the product's public face. */
|
|
202
286
|
export interface GuestHomePlan {
|
|
203
287
|
hero: {
|
|
@@ -219,9 +303,21 @@ export interface GuestHomePlan {
|
|
|
219
303
|
solution: { title: string, text: string }
|
|
220
304
|
/** The bento tiles — four, each optionally anchored by a fragment of the product's interface. */
|
|
221
305
|
features: { title: string, text: string, fragment?: BentoFragment }[]
|
|
222
|
-
|
|
306
|
+
/**
|
|
307
|
+
* None or exactly two. Optional since the gated landing page: a plan stored before carries it,
|
|
308
|
+
* and a product whose end users do not choose it for themselves leaves it out.
|
|
309
|
+
*/
|
|
310
|
+
testimonials?: { quote: string, name: string, role: string }[] | null
|
|
223
311
|
/** "How it works" — three steps taken from the main flow. */
|
|
224
312
|
steps?: { title: string, text: string }[]
|
|
313
|
+
/** Who it is for, case by case. */
|
|
314
|
+
useCases?: LandingUseCases | null
|
|
315
|
+
/** "Why us". */
|
|
316
|
+
differentiator?: LandingDifferentiator | null
|
|
317
|
+
/** "How we work". */
|
|
318
|
+
approach?: LandingApproach | null
|
|
319
|
+
/** Who is behind the product. */
|
|
320
|
+
about?: LandingAbout | null
|
|
225
321
|
/** The small section labels and section headings; absent ones fall back to the stamper's own. */
|
|
226
322
|
labels?: {
|
|
227
323
|
steps?: string
|
|
@@ -232,7 +328,30 @@ export interface GuestHomePlan {
|
|
|
232
328
|
testimonialsTitle?: string
|
|
233
329
|
problem?: string
|
|
234
330
|
solution?: string
|
|
331
|
+
useCases?: string | null
|
|
332
|
+
useCasesTitle?: string | null
|
|
333
|
+
differentiator?: string | null
|
|
334
|
+
approach?: string | null
|
|
335
|
+
approachTitle?: string | null
|
|
336
|
+
about?: string | null
|
|
235
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* The guest header menu — two to four bands to jump to. Entries whose band the page does not
|
|
340
|
+
* draw are dropped; `landingMenuOf` is the one reading of it.
|
|
341
|
+
*/
|
|
342
|
+
menu?: LandingMenuEntry[] | null
|
|
343
|
+
/**
|
|
344
|
+
* Which home buttons open which user story. Absent or `null` means NOT DECIDED yet; `[]` means
|
|
345
|
+
* decided: none. A slot the page does not draw (`homeSlotsOf`) is ignored.
|
|
346
|
+
*/
|
|
347
|
+
links?: HomeLink[] | null
|
|
348
|
+
/**
|
|
349
|
+
* The story codes whose links were decided at DEVELOPMENT time, one per story asked — a decision
|
|
350
|
+
* of "no control" included. Absent (or `null`) on a plan whose links the planner decided: then
|
|
351
|
+
* {@link GuestHomePlan.links} speaks for every story of the plan. Written by code, never asked of
|
|
352
|
+
* the model.
|
|
353
|
+
*/
|
|
354
|
+
linksDecided?: string[] | null
|
|
236
355
|
/** The closing band: a headline, a lead, the two pills and two link cards. */
|
|
237
356
|
closing?: {
|
|
238
357
|
headline: string
|
package/src/skills/consts.ts
CHANGED
|
@@ -85,3 +85,49 @@ export enum ViableSkill {
|
|
|
85
85
|
LibrariesAi = 'libraries-ai',
|
|
86
86
|
LibrariesGame = 'libraries-game',
|
|
87
87
|
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Who the model is being asked to be.
|
|
91
|
+
*
|
|
92
|
+
* A persona is per HELPER, not per model role: `ModelRole` selects which model answers,
|
|
93
|
+
* this selects what it is told it does. Two helpers can share a model and need different
|
|
94
|
+
* personas, and the same persona can run on a cheap or an expensive model depending on
|
|
95
|
+
* the effort tier — keeping the two axes separate is what makes that possible.
|
|
96
|
+
*/
|
|
97
|
+
export enum ViablePersona {
|
|
98
|
+
BusinessAnalyst = 'business-analyst',
|
|
99
|
+
ProductNaming = 'product-naming',
|
|
100
|
+
/** Decides what KIND of product a prompt describes — which blueprint case builds it. */
|
|
101
|
+
ProductArchitect = 'product-architect',
|
|
102
|
+
UxDesigner = 'ux-designer',
|
|
103
|
+
VisualDesigner = 'visual-designer',
|
|
104
|
+
|
|
105
|
+
LayoutArchitect = 'layout-architect',
|
|
106
|
+
ComponentArchitect = 'component-architect',
|
|
107
|
+
StateArchitect = 'state-architect',
|
|
108
|
+
NavigationArchitect = 'navigation-architect',
|
|
109
|
+
DomainTypesArchitect = 'domain-types-architect',
|
|
110
|
+
AccessArchitect = 'access-architect',
|
|
111
|
+
ApiArchitect = 'api-architect',
|
|
112
|
+
DatalayerArchitect = 'datalayer-architect',
|
|
113
|
+
BackendDomainArchitect = 'backend-domain-architect',
|
|
114
|
+
|
|
115
|
+
CommonCoder = 'common-coder',
|
|
116
|
+
UiStateCoder = 'ui-state-coder',
|
|
117
|
+
UiViewCoder = 'ui-view-coder',
|
|
118
|
+
UiNavCoder = 'ui-nav-coder',
|
|
119
|
+
DatalayerCoder = 'datalayer-coder',
|
|
120
|
+
ApiCoder = 'api-coder',
|
|
121
|
+
BackendModelCoder = 'backend-model-coder',
|
|
122
|
+
/** Decides whether a story needs a queue, a worker or an agent — and usually decides it does not. */
|
|
123
|
+
RuntimeArchitect = 'runtime-architect',
|
|
124
|
+
/** Writes queue declarations, job processors and the application's own agents. */
|
|
125
|
+
WorkerCoder = 'worker-coder',
|
|
126
|
+
FreeFlightCoder = 'free-flight-coder',
|
|
127
|
+
|
|
128
|
+
Fixer = 'fixer',
|
|
129
|
+
Orchestrator = 'orchestrator',
|
|
130
|
+
SourceExtractor = 'source-extractor',
|
|
131
|
+
DeclarationLookup = 'declaration-lookup',
|
|
132
|
+
FixAgent = 'fix-agent',
|
|
133
|
+
}
|
package/src/skills/index.ts
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SlotCommandType } from '../consts.js'
|
|
2
|
+
|
|
3
|
+
/** The time bounds of one slot command: the caller's timeout and the executor's deadline. */
|
|
4
|
+
export interface SlotCommandHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Resolve the caller-side bound for one command.
|
|
7
|
+
*
|
|
8
|
+
* One function rather than three lookups at each call site: an asker that forgets the per-command
|
|
9
|
+
* table inherits twenty minutes for a fifteen-second command, which is the failure this table was
|
|
10
|
+
* added to stop.
|
|
11
|
+
*/
|
|
12
|
+
commandTimeout: (type: SlotCommandType, command: string, override?: number) => number
|
|
13
|
+
/**
|
|
14
|
+
* Resolve the executor-side deadline for one command.
|
|
15
|
+
*
|
|
16
|
+
* Per-command first, per-type second. It was per-type only, which is how a clone inherited the
|
|
17
|
+
* bound of a `git status` — the same shape as the shell table above, and added for the same
|
|
18
|
+
* reason.
|
|
19
|
+
*/
|
|
20
|
+
commandDeadline: (type: SlotCommandType, command: string) => number
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { COMMAND_DEADLINES, COMMAND_TIMEOUTS, DEFAULT_COMMAND_DEADLINE, DEFAULT_COMMAND_TIMEOUT, DEFAULT_FILE_COMMAND_DEADLINE, DEFAULT_GIT_COMMAND_DEADLINE, FILE_COMMAND_DEADLINES, FILE_COMMAND_TIMEOUTS, GIT_COMMAND_DEADLINES, GIT_COMMAND_TIMEOUTS, SHELL_COMMAND_TIMEOUTS, SlotCommandType, SlotFileCommand, SlotGitCommand } from './consts.js'
|
|
2
|
+
import type { SlotCommandHelper } from './command/types.js'
|
|
3
|
+
|
|
4
|
+
export const createSlotCommandHelper = (): SlotCommandHelper => {
|
|
5
|
+
/** The per-command caller bound for one command, or nothing where its type's default is right. */
|
|
6
|
+
const perCommandTimeout = (type: SlotCommandType, command: string): number | undefined => {
|
|
7
|
+
switch (type) {
|
|
8
|
+
case SlotCommandType.Shell: return SHELL_COMMAND_TIMEOUTS[command]
|
|
9
|
+
case SlotCommandType.Git: return GIT_COMMAND_TIMEOUTS[command as SlotGitCommand]
|
|
10
|
+
case SlotCommandType.Database: return COMMAND_TIMEOUTS[SlotCommandType.Database]
|
|
11
|
+
default: return FILE_COMMAND_TIMEOUTS[command as SlotFileCommand]
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const commandTimeout = (
|
|
16
|
+
type: SlotCommandType, command: string, override?: number
|
|
17
|
+
): number => override
|
|
18
|
+
?? perCommandTimeout(type, command)
|
|
19
|
+
?? COMMAND_TIMEOUTS[type]
|
|
20
|
+
?? DEFAULT_COMMAND_TIMEOUT
|
|
21
|
+
|
|
22
|
+
const commandDeadline = (type: SlotCommandType, command: string): number => {
|
|
23
|
+
switch (type) {
|
|
24
|
+
case SlotCommandType.Shell:
|
|
25
|
+
return COMMAND_DEADLINES[command] ?? DEFAULT_COMMAND_DEADLINE
|
|
26
|
+
case SlotCommandType.Git:
|
|
27
|
+
return GIT_COMMAND_DEADLINES[command as SlotGitCommand] ?? DEFAULT_GIT_COMMAND_DEADLINE
|
|
28
|
+
case SlotCommandType.Database:
|
|
29
|
+
return 30_000
|
|
30
|
+
default:
|
|
31
|
+
return FILE_COMMAND_DEADLINES[command as SlotFileCommand] ?? DEFAULT_FILE_COMMAND_DEADLINE
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return { commandTimeout, commandDeadline }
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const slotCommandHelper = createSlotCommandHelper()
|
package/src/slot/helpers.ts
CHANGED
|
@@ -1,29 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { slotOriginHelper } from './origin.js'
|
|
2
2
|
import type { AddressableSlot } from './types.js'
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
* Read back from the slot's stored `host`, never recomposed from a slug — a preview host is a
|
|
8
|
-
* CLAIMED resource with a certificate behind it, and the name a slot ended up with is not always
|
|
9
|
-
* the name its project would compose today. What this adds is the scheme, which is the one part
|
|
10
|
-
* that follows from the kind rather than from the record: a local target is a loopback address and
|
|
11
|
-
* therefore `http`, everything else is TLS-terminated at an edge and therefore `https`.
|
|
12
|
-
*/
|
|
13
|
-
export const slotOrigin = (slot: AddressableSlot): string => {
|
|
14
|
-
const host = slot.host ?? ''
|
|
15
|
-
if (host === '') return ''
|
|
16
|
-
if (host.startsWith('http://') || host.startsWith('https://')) return host
|
|
4
|
+
/** @deprecated compat:factory-refactor — use `slotOriginHelper.slotOrigin(…)` */
|
|
5
|
+
export const slotOrigin = (slot: AddressableSlot): string => slotOriginHelper.slotOrigin(slot)
|
|
17
6
|
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* The exact redirect URIs a target's OIDC client must carry for one origin.
|
|
23
|
-
*
|
|
24
|
-
* Exact, because a provider matches a redirect URI literally and refuses a wildcard — and both
|
|
25
|
-
* entries are needed: the callback the login round trip returns to, and the bare origin, which is
|
|
26
|
-
* where the application's own logout lands.
|
|
27
|
-
*/
|
|
7
|
+
/** @deprecated compat:factory-refactor — use `slotOriginHelper.targetRedirectUrisForOrigin(…)` */
|
|
28
8
|
export const targetRedirectUrisForOrigin = (origin: string, callbackPath: string): string[] =>
|
|
29
|
-
origin
|
|
9
|
+
slotOriginHelper.targetRedirectUrisForOrigin(origin, callbackPath)
|
package/src/slot/index.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export * from './consts.js'
|
|
2
|
+
export * from './command.js'
|
|
2
3
|
export * from './utils.js'
|
|
3
4
|
export * from './schemas.js'
|
|
4
5
|
export * from './layout.js'
|
|
6
|
+
export * from './origin.js'
|
|
5
7
|
export * from './helpers.js'
|
|
6
8
|
export type * from './types.js'
|
|
9
|
+
export type * from './command/types.js'
|
|
10
|
+
export type * from './layout/types.js'
|
|
11
|
+
export type * from './origin/types.js'
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TargetLayout } from '../../integrity/consts.js'
|
|
2
|
+
import type { SubProject } from '../consts.js'
|
|
3
|
+
import type { TargetPaths } from '../types.js'
|
|
4
|
+
|
|
5
|
+
/** Where a target's roles live, per layout — read off {@link LAYOUTS} and {@link ROLE_DIRS}. */
|
|
6
|
+
export interface SlotLayoutHelper {
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a wire-level role to the directory it names in a given layout.
|
|
9
|
+
*
|
|
10
|
+
* An unknown value — a role from a sender newer than this reader — falls back to the role's own
|
|
11
|
+
* name, which is the honest guess for a layout whose packages are named after their roles, and
|
|
12
|
+
* which fails visibly rather than resolving to some other package's directory.
|
|
13
|
+
*/
|
|
14
|
+
subprojectDirOf: (layout: TargetLayout, role: SubProject) => string
|
|
15
|
+
/** Where every role lives, for a layout already decided. */
|
|
16
|
+
pathsOf: (layout: TargetLayout) => TargetPaths
|
|
17
|
+
}
|
package/src/slot/layout.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { TargetLayout } from '../integrity/index.js'
|
|
2
|
-
import {
|
|
2
|
+
import { topologyHelper } from '../topology/resolve.js'
|
|
3
3
|
import { SubProject } from './consts.js'
|
|
4
4
|
import type { TargetPaths } from './types.js'
|
|
5
|
+
import type { SlotLayoutHelper } from './layout/types.js'
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Where every role lives, per layout — DERIVED from that layout's topology.
|
|
@@ -15,8 +16,8 @@ import type { TargetPaths } from './types.js'
|
|
|
15
16
|
* The VALUES are unchanged, and `topology.spec.ts` pins them against the tables they replaced.
|
|
16
17
|
*/
|
|
17
18
|
const pathsOfTopology = (layout: TargetLayout): TargetPaths => {
|
|
18
|
-
const topology = resolveTopology(topologyOf(layout))
|
|
19
|
-
const dirOf = (role: SubProject): string | undefined => packageForRole(topology, role)?.name
|
|
19
|
+
const topology = topologyHelper.resolveTopology(topologyHelper.topologyOf(layout))
|
|
20
|
+
const dirOf = (role: SubProject): string | undefined => topologyHelper.packageForRole(topology, role)?.name
|
|
20
21
|
|
|
21
22
|
return {
|
|
22
23
|
layout,
|
|
@@ -52,10 +53,10 @@ export const LAYOUTS: Record<TargetLayout, TargetPaths> = {
|
|
|
52
53
|
* so an unmapped role falls back to its own name here, which is that same visible failure.
|
|
53
54
|
*/
|
|
54
55
|
const roleDirsOfTopology = (layout: TargetLayout): Record<SubProject, string> => {
|
|
55
|
-
const topology = resolveTopology(topologyOf(layout))
|
|
56
|
+
const topology = topologyHelper.resolveTopology(topologyHelper.topologyOf(layout))
|
|
56
57
|
|
|
57
58
|
return Object.values(SubProject).reduce<Record<SubProject, string>>((dirs, role) => {
|
|
58
|
-
dirs[role] = packageForRole(topology, role)?.name ?? role
|
|
59
|
+
dirs[role] = topologyHelper.packageForRole(topology, role)?.name ?? role
|
|
59
60
|
|
|
60
61
|
return dirs
|
|
61
62
|
}, {} as Record<SubProject, string>)
|
|
@@ -66,15 +67,17 @@ export const ROLE_DIRS: Record<TargetLayout, Record<SubProject, string>> = {
|
|
|
66
67
|
[TargetLayout.V2]: roleDirsOfTopology(TargetLayout.V2),
|
|
67
68
|
}
|
|
68
69
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* which fails visibly rather than resolving to some other package's directory.
|
|
75
|
-
*/
|
|
76
|
-
export const subprojectDirOf = (layout: TargetLayout, role: SubProject): string =>
|
|
77
|
-
ROLE_DIRS[layout][role] ?? role
|
|
70
|
+
export const createSlotLayoutHelper = (): SlotLayoutHelper => {
|
|
71
|
+
const subprojectDirOf = (layout: TargetLayout, role: SubProject): string =>
|
|
72
|
+
ROLE_DIRS[layout][role] ?? role
|
|
73
|
+
|
|
74
|
+
const pathsOf = (layout: TargetLayout): TargetPaths => LAYOUTS[layout]
|
|
78
75
|
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
return { subprojectDirOf, pathsOf }
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export const slotLayoutHelper = createSlotLayoutHelper()
|
|
80
|
+
|
|
81
|
+
/** @deprecated compat:factory-refactor — use `slotLayoutHelper.subprojectDirOf(…)` */
|
|
82
|
+
export const subprojectDirOf = (layout: TargetLayout, role: SubProject): string =>
|
|
83
|
+
slotLayoutHelper.subprojectDirOf(layout, role)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AddressableSlot } from '../types.js'
|
|
2
|
+
|
|
3
|
+
/** Where a slot's application answers, and the redirect URIs its OIDC client needs there. */
|
|
4
|
+
export interface SlotOriginHelper {
|
|
5
|
+
/**
|
|
6
|
+
* The origin a slot's application answers at.
|
|
7
|
+
*
|
|
8
|
+
* Read back from the slot's stored `host`, never recomposed from a slug — a preview host is a
|
|
9
|
+
* CLAIMED resource with a certificate behind it, and the name a slot ended up with is not always
|
|
10
|
+
* the name its project would compose today. What this adds is the scheme, which is the one part
|
|
11
|
+
* that follows from the kind rather than from the record: a local target is a loopback address and
|
|
12
|
+
* therefore `http`, everything else is TLS-terminated at an edge and therefore `https`.
|
|
13
|
+
*/
|
|
14
|
+
slotOrigin: (slot: AddressableSlot) => string
|
|
15
|
+
/**
|
|
16
|
+
* The exact redirect URIs a target's OIDC client must carry for one origin.
|
|
17
|
+
*
|
|
18
|
+
* Exact, because a provider matches a redirect URI literally and refuses a wildcard — and both
|
|
19
|
+
* entries are needed: the callback the login round trip returns to, and the bare origin, which is
|
|
20
|
+
* where the application's own logout lands.
|
|
21
|
+
*/
|
|
22
|
+
targetRedirectUrisForOrigin: (origin: string, callbackPath: string) => string[]
|
|
23
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { WorkloadKind } from './consts.js'
|
|
2
|
+
import type { AddressableSlot } from './types.js'
|
|
3
|
+
import type { SlotOriginHelper } from './origin/types.js'
|
|
4
|
+
|
|
5
|
+
export const createSlotOriginHelper = (): SlotOriginHelper => {
|
|
6
|
+
const slotOrigin = (slot: AddressableSlot): string => {
|
|
7
|
+
const host = slot.host ?? ''
|
|
8
|
+
if (host === '') return ''
|
|
9
|
+
if (host.startsWith('http://') || host.startsWith('https://')) return host
|
|
10
|
+
|
|
11
|
+
return `${slot.kind === WorkloadKind.Local ? 'http' : 'https'}://${host}`
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const targetRedirectUrisForOrigin = (origin: string, callbackPath: string): string[] =>
|
|
15
|
+
origin === '' ? [] : [origin, `${origin}${callbackPath}`]
|
|
16
|
+
|
|
17
|
+
return { slotOrigin, targetRedirectUrisForOrigin }
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const slotOriginHelper = createSlotOriginHelper()
|
package/src/slot/types.ts
CHANGED
package/src/slot/utils.ts
CHANGED
|
@@ -1,45 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { slotCommandHelper } from './command.js'
|
|
2
|
+
import type { SlotCommandType } from './consts.js'
|
|
2
3
|
|
|
3
|
-
/**
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
case SlotCommandType.Shell: return SHELL_COMMAND_TIMEOUTS[command]
|
|
7
|
-
case SlotCommandType.Git: return GIT_COMMAND_TIMEOUTS[command as SlotGitCommand]
|
|
8
|
-
case SlotCommandType.Database: return COMMAND_TIMEOUTS[SlotCommandType.Database]
|
|
9
|
-
default: return FILE_COMMAND_TIMEOUTS[command as SlotFileCommand]
|
|
10
|
-
}
|
|
11
|
-
}
|
|
4
|
+
/** @deprecated compat:factory-refactor — use `slotCommandHelper.commandTimeout(…)` */
|
|
5
|
+
export const commandTimeout = (type: SlotCommandType, command: string, override?: number): number =>
|
|
6
|
+
slotCommandHelper.commandTimeout(type, command, override)
|
|
12
7
|
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* One function rather than three lookups at each call site: an asker that forgets the per-command
|
|
17
|
-
* table inherits twenty minutes for a fifteen-second command, which is the failure this table was
|
|
18
|
-
* added to stop.
|
|
19
|
-
*/
|
|
20
|
-
export const commandTimeout = (
|
|
21
|
-
type: SlotCommandType, command: string, override?: number
|
|
22
|
-
): number => override
|
|
23
|
-
?? perCommandTimeout(type, command)
|
|
24
|
-
?? COMMAND_TIMEOUTS[type]
|
|
25
|
-
?? DEFAULT_COMMAND_TIMEOUT
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Resolve the executor-side deadline for one command.
|
|
29
|
-
*
|
|
30
|
-
* Per-command first, per-type second. It was per-type only, which is how a clone inherited the
|
|
31
|
-
* bound of a `git status` — the same shape as the shell table above, and added for the same
|
|
32
|
-
* reason.
|
|
33
|
-
*/
|
|
34
|
-
export const commandDeadline = (type: SlotCommandType, command: string): number => {
|
|
35
|
-
switch (type) {
|
|
36
|
-
case SlotCommandType.Shell:
|
|
37
|
-
return COMMAND_DEADLINES[command] ?? DEFAULT_COMMAND_DEADLINE
|
|
38
|
-
case SlotCommandType.Git:
|
|
39
|
-
return GIT_COMMAND_DEADLINES[command as SlotGitCommand] ?? DEFAULT_GIT_COMMAND_DEADLINE
|
|
40
|
-
case SlotCommandType.Database:
|
|
41
|
-
return 30_000
|
|
42
|
-
default:
|
|
43
|
-
return FILE_COMMAND_DEADLINES[command as SlotFileCommand] ?? DEFAULT_FILE_COMMAND_DEADLINE
|
|
44
|
-
}
|
|
45
|
-
}
|
|
8
|
+
/** @deprecated compat:factory-refactor — use `slotCommandHelper.commandDeadline(…)` */
|
|
9
|
+
export const commandDeadline = (type: SlotCommandType, command: string): number =>
|
|
10
|
+
slotCommandHelper.commandDeadline(type, command)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TopologyDescriptor, TopologyMeta } from '../types.js'
|
|
2
|
+
|
|
3
|
+
/** The topology file `.agents/memory/topology.md`: its frontmatter, read and written, and its body. */
|
|
4
|
+
export interface TopologyCardHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Narrow a parsed frontmatter block into a topology, or answer `null`.
|
|
7
|
+
*
|
|
8
|
+
* `null` means "use the layout default", and every caller treats it that way. A topology file
|
|
9
|
+
* written by a platform version this one cannot read must not stop a project from building — the
|
|
10
|
+
* arrangement it describes is almost certainly still the default one.
|
|
11
|
+
*/
|
|
12
|
+
parseTopologyMeta: (data: unknown) => TopologyDescriptor | null
|
|
13
|
+
topologyMeta: (topology: TopologyDescriptor) => TopologyMeta
|
|
14
|
+
/**
|
|
15
|
+
* The body of `.agents/memory/topology.md` — what a model reads, and what a person reads.
|
|
16
|
+
*
|
|
17
|
+
* Rendered from the descriptor rather than maintained beside it, for the same reason the layout
|
|
18
|
+
* tables are: a card that disagrees with the frontmatter teaches the wrong tree.
|
|
19
|
+
*/
|
|
20
|
+
renderTopologyCard: (topology: TopologyDescriptor) => string
|
|
21
|
+
}
|