@owlmeans/viable-common 0.0.44 → 0.0.46
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 +4 -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 -30
- 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 +2 -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/kit/types.js.map +1 -0
- 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/types.d.ts +198 -0
- 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/connect/types.d.ts +1 -198
- package/build/connect/types.d.ts.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/{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/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.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/flow.d.ts.map +1 -1
- package/build/intent/flow.js +2 -2
- package/build/intent/flow.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/legal/consts.d.ts +36 -0
- package/build/legal/consts.d.ts.map +1 -0
- package/build/legal/consts.js +16 -0
- package/build/legal/consts.js.map +1 -0
- package/build/legal/index.d.ts +3 -0
- package/build/legal/index.d.ts.map +1 -0
- package/build/legal/index.js +2 -0
- package/build/legal/index.js.map +1 -0
- package/build/legal/types.d.ts +10 -0
- package/build/legal/types.d.ts.map +1 -0
- package/build/legal/types.js +2 -0
- package/build/legal/types.js.map +1 -0
- 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/flows.d.ts +34 -0
- package/build/planning/flows.d.ts.map +1 -0
- package/build/planning/flows.js +174 -0
- package/build/planning/flows.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 +18 -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/index.ts +1 -0
- 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/legal/consts.ts +17 -0
- package/src/legal/index.ts +2 -0
- package/src/legal/types.ts +11 -0
- 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/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/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/{types.local.js → references/types.local.js} +0 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import type { DumpKind, EntropyClass, FileClass, SizeClass, WorkspaceKind } from '../consts.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The census's file classification: pure, deterministic derivations over the conversion
|
|
5
|
+
* vocabulary.
|
|
6
|
+
*
|
|
7
|
+
* Everything here answers the same way for the same input, in every runtime, forever — which is
|
|
8
|
+
* what makes the documents a conversion writes byte-stable across two runs, and therefore what
|
|
9
|
+
* makes the prompt cache prefix they are injected into actually hit. Nothing here reads a file,
|
|
10
|
+
* calls a model or looks at a clock.
|
|
11
|
+
*/
|
|
12
|
+
export interface CensusHelper {
|
|
13
|
+
/** Which {@link SizeClass} a byte count falls in. Boundaries are exclusive upper bounds. */
|
|
14
|
+
sizeClassOf: (bytes: number) => SizeClass
|
|
15
|
+
/**
|
|
16
|
+
* What one file of the origin is.
|
|
17
|
+
*
|
|
18
|
+
* Location outranks the tail wherever it says more — a `.ts` under `__tests__/` is a test, a
|
|
19
|
+
* `.json` under `seed/` is data — but only where it says more. The seed/dump rule therefore runs
|
|
20
|
+
* AFTER the extension table and applies only to {@link DATA_OVERRIDABLE}: asked first, it answered
|
|
21
|
+
* `Data` for every path merely containing the word (`tests/fixtures/user.ts`, `src/seedUsers.ts`,
|
|
22
|
+
* `src/exportReport.ts`), which is the census's source budget spent on the wrong files twice over.
|
|
23
|
+
*/
|
|
24
|
+
fileClassOf: (path: string, ext: string) => FileClass
|
|
25
|
+
/**
|
|
26
|
+
* The binary verdict a path already carries, or `null` for a file that has to be probed.
|
|
27
|
+
*
|
|
28
|
+
* The three executors that walk a tree — the library-local helper, the publisher and the connector
|
|
29
|
+
* SDK — must answer the same verdict for the same file, and a probe alone does not: a small `.ico`
|
|
30
|
+
* with no NUL in its first bytes reads as text, so a census run on a laptop and the same census
|
|
31
|
+
* run in the slot disagreed about the same repository. The tail is asked first and the probe only
|
|
32
|
+
* where the tail says nothing, which is also why the probe is affordable at census scale — the
|
|
33
|
+
* extensions above are the bulk of any repository.
|
|
34
|
+
*
|
|
35
|
+
* The extension is taken exactly the way `path.extname` takes it, because two of the three callers
|
|
36
|
+
* used to: the last dot of the last SEGMENT, and nothing for a name with no dot or for a dotfile.
|
|
37
|
+
*/
|
|
38
|
+
binaryByExtension: (path: string) => boolean | null
|
|
39
|
+
/**
|
|
40
|
+
* How usable a file's head is as evidence.
|
|
41
|
+
*
|
|
42
|
+
* The printable ratio over the sampled head, and nothing cleverer: the question is only whether a
|
|
43
|
+
* model can read it. A minified bundle is printable and useless, so a second rule catches the
|
|
44
|
+
* shape that gives it away — very long lines with almost no whitespace.
|
|
45
|
+
*/
|
|
46
|
+
entropyClassOf: (head: string) => EntropyClass
|
|
47
|
+
/** Whether a path names bulk data — an export, not the application's own data. */
|
|
48
|
+
isBulkPath: (path: string) => boolean
|
|
49
|
+
/** Whether a path names seed data — what the application needs in order to make sense. */
|
|
50
|
+
isSeedPath: (path: string) => boolean
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* {@link FileStat} is declared in `../../slot/types.js`, not here.
|
|
55
|
+
*
|
|
56
|
+
* It is the element of a `statTree` answer, and a slot command's result shape belongs to the slot
|
|
57
|
+
* vocabulary the publisher and the connector both implement. Redeclaring it beside the census that
|
|
58
|
+
* consumes it would give the root barrel two `FileStat`s and the two would drift the first time
|
|
59
|
+
* one end added a field.
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/** One file, as the census classified it. `read` says whether its head was actually opened. */
|
|
63
|
+
export interface FileCensusEntry {
|
|
64
|
+
path: string
|
|
65
|
+
bytes: number
|
|
66
|
+
ext: string
|
|
67
|
+
cls: FileClass
|
|
68
|
+
size: SizeClass
|
|
69
|
+
entropy?: EntropyClass
|
|
70
|
+
read: boolean
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** A package manifest found in the origin, and what it declares. */
|
|
74
|
+
export interface InventoryPackage {
|
|
75
|
+
name?: string
|
|
76
|
+
path: string
|
|
77
|
+
/** The manifest file itself, root-relative — `package.json`, `pom.xml`, `go.mod`, … */
|
|
78
|
+
manifest: string
|
|
79
|
+
/** `member` for a package a workspace root declares; otherwise the workspace kind it declares. */
|
|
80
|
+
kind: WorkspaceKind | 'member'
|
|
81
|
+
deps: string[]
|
|
82
|
+
scripts: Record<string, string>
|
|
83
|
+
/** Whether something in the tree actually reaches it. See {@link UnlinkedRef}. */
|
|
84
|
+
linked: boolean
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export interface WorkspaceMember {
|
|
88
|
+
name?: string
|
|
89
|
+
path: string
|
|
90
|
+
/** The manifest that declared this member. */
|
|
91
|
+
declaredBy: string
|
|
92
|
+
present: boolean
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface SubmoduleRef {
|
|
96
|
+
path: string
|
|
97
|
+
url?: string
|
|
98
|
+
present: boolean
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* A directory holding code that nothing in the workspace declares, or a declaration with nothing
|
|
103
|
+
* behind it.
|
|
104
|
+
*
|
|
105
|
+
* Reported rather than silently included: code the build never sees is code the origin does not
|
|
106
|
+
* run, and converting it produces stories for behaviour the application does not have.
|
|
107
|
+
*/
|
|
108
|
+
export interface UnlinkedRef {
|
|
109
|
+
path: string
|
|
110
|
+
reason: 'not-a-member' | 'missing-submodule' | 'declared-not-present'
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface WorkspaceReport {
|
|
114
|
+
kind: WorkspaceKind
|
|
115
|
+
globs: string[]
|
|
116
|
+
members: WorkspaceMember[]
|
|
117
|
+
submodules: SubmoduleRef[]
|
|
118
|
+
unlinked: UnlinkedRef[]
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** A data file the origin carries that is too large, or too generated, to become seed data. */
|
|
122
|
+
export interface DumpRecord {
|
|
123
|
+
path: string
|
|
124
|
+
kind: DumpKind
|
|
125
|
+
bytes: number
|
|
126
|
+
format: string
|
|
127
|
+
rows?: number
|
|
128
|
+
/** At most {@link DUMP_SAMPLE_LINES} lines, read from the head. Never the whole file. */
|
|
129
|
+
sample: string[]
|
|
130
|
+
columns?: string[]
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/** A small data file the code itself references — the data the application needs to make sense. */
|
|
134
|
+
export interface SeedRecord {
|
|
135
|
+
name: string
|
|
136
|
+
path: string
|
|
137
|
+
bytes: number
|
|
138
|
+
format: string
|
|
139
|
+
rows?: number
|
|
140
|
+
/** The source files that name it. The proof that it is seed rather than an export. */
|
|
141
|
+
referencedBy: string[]
|
|
142
|
+
carried: boolean
|
|
143
|
+
/** Where it was written in the target, once carried. */
|
|
144
|
+
target?: string
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export interface InventorySummary {
|
|
148
|
+
root: string
|
|
149
|
+
files: number
|
|
150
|
+
bytes: number
|
|
151
|
+
read: number
|
|
152
|
+
skipped: number
|
|
153
|
+
/** A census that hit {@link CENSUS_MAX_ENTRIES}. Everything downstream must say so. */
|
|
154
|
+
truncated: boolean
|
|
155
|
+
byClass: Record<FileClass, number>
|
|
156
|
+
bySize: Record<SizeClass, number>
|
|
157
|
+
extensions: { ext: string, files: number, bytes: number }[]
|
|
158
|
+
packages: InventoryPackage[]
|
|
159
|
+
workspace: WorkspaceReport
|
|
160
|
+
dumps: DumpRecord[]
|
|
161
|
+
seeds: SeedRecord[]
|
|
162
|
+
manifests: string[]
|
|
163
|
+
vcs: { git: boolean, submodules: number }
|
|
164
|
+
version: number
|
|
165
|
+
takenAt: string
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/** One data file, classified by the model where the path and the size alone were not enough. */
|
|
169
|
+
export interface SeedDetectionItem {
|
|
170
|
+
path: string
|
|
171
|
+
name: string
|
|
172
|
+
/** Whether it is data the application needs rather than an export of what it produced. */
|
|
173
|
+
seed: boolean
|
|
174
|
+
/** Whether it should be carried into the target. */
|
|
175
|
+
carry: boolean
|
|
176
|
+
reason: string
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export interface SeedDetection {
|
|
180
|
+
items: SeedDetectionItem[]
|
|
181
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { EntropyClass, FileClass, SizeClass, SIZE_CLASS_BOUNDS } from './consts.js'
|
|
2
|
+
import {
|
|
3
|
+
BINARY_EXTENSIONS, BULK_HINTS, DATA_AMBIGUOUS_EXT, DATA_OVERRIDABLE, EXT_CLASS, GENERATED_SEGMENTS, LOCK_NAMES,
|
|
4
|
+
MANIFEST_NAMES, SEED_HINTS, TEST_SEGMENTS, TEXT_EXTENSIONS
|
|
5
|
+
} from './census/consts.local.js'
|
|
6
|
+
import type { CensusHelper } from './census/types.js'
|
|
7
|
+
|
|
8
|
+
export const createCensusHelper = (): CensusHelper => {
|
|
9
|
+
const sizeClassOf = (bytes: number): SizeClass => {
|
|
10
|
+
if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Tiny]) return SizeClass.Tiny
|
|
11
|
+
if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Small]) return SizeClass.Small
|
|
12
|
+
if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Medium]) return SizeClass.Medium
|
|
13
|
+
if (bytes < SIZE_CLASS_BOUNDS[SizeClass.Large]) return SizeClass.Large
|
|
14
|
+
|
|
15
|
+
return SizeClass.Huge
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const segmentsOf = (path: string): string[] => path.split('/').filter(part => part !== '')
|
|
19
|
+
|
|
20
|
+
const hasSegment = (path: string, of: string[]): boolean =>
|
|
21
|
+
segmentsOf(path).some(part => of.includes(part.toLowerCase()))
|
|
22
|
+
|
|
23
|
+
const fileClassOf = (path: string, ext: string): FileClass => {
|
|
24
|
+
const lower = path.toLowerCase()
|
|
25
|
+
const base = segmentsOf(lower).pop() ?? lower
|
|
26
|
+
const tail = (ext.startsWith('.') ? ext.slice(1) : ext).toLowerCase()
|
|
27
|
+
|
|
28
|
+
if (LOCK_NAMES.includes(base)) return FileClass.Lock
|
|
29
|
+
if (hasSegment(lower, GENERATED_SEGMENTS)) return FileClass.Generated
|
|
30
|
+
if (MANIFEST_NAMES.includes(base)) return FileClass.Manifest
|
|
31
|
+
if (hasSegment(lower, TEST_SEGMENTS) || base.includes('.test.') || base.includes('.spec.')) {
|
|
32
|
+
return FileClass.Test
|
|
33
|
+
}
|
|
34
|
+
if (base.startsWith('.env')) return FileClass.Config
|
|
35
|
+
|
|
36
|
+
const byExt = EXT_CLASS[tail] ?? FileClass.Unknown
|
|
37
|
+
if (
|
|
38
|
+
(DATA_OVERRIDABLE.includes(byExt) || DATA_AMBIGUOUS_EXT.includes(tail))
|
|
39
|
+
&& (isSeedPath(lower) || isBulkPath(lower))
|
|
40
|
+
) {
|
|
41
|
+
return FileClass.Data
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return byExt
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const binaryByExtension = (path: string): boolean | null => {
|
|
48
|
+
const base = segmentsOf(path).pop() ?? path
|
|
49
|
+
const dot = base.lastIndexOf('.')
|
|
50
|
+
if (dot < 1) return null
|
|
51
|
+
const ext = base.slice(dot).toLowerCase()
|
|
52
|
+
|
|
53
|
+
return TEXT_EXTENSIONS.includes(ext) ? false : BINARY_EXTENSIONS.includes(ext) ? true : null
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const entropyClassOf = (head: string): EntropyClass => {
|
|
57
|
+
if (head.length < 1) return EntropyClass.Text
|
|
58
|
+
|
|
59
|
+
let printable = 0
|
|
60
|
+
let whitespace = 0
|
|
61
|
+
for (const char of head) {
|
|
62
|
+
const code = char.codePointAt(0) ?? 0
|
|
63
|
+
if (code === 9 || code === 10 || code === 13 || code === 32) {
|
|
64
|
+
++whitespace
|
|
65
|
+
++printable
|
|
66
|
+
} else if (code >= 32 && code !== 127) {
|
|
67
|
+
++printable
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const ratio = printable / head.length
|
|
72
|
+
if (ratio < 0.85) return EntropyClass.Opaque
|
|
73
|
+
// Prose, code and markup all break lines and indent. A body that does neither is minified,
|
|
74
|
+
// encoded or packed — printable, and not something a model can reason over.
|
|
75
|
+
if (whitespace / head.length < 0.05) return EntropyClass.Dense
|
|
76
|
+
|
|
77
|
+
return EntropyClass.Text
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const matchesHint = (path: string, hints: string[]): boolean => {
|
|
81
|
+
const lower = path.toLowerCase()
|
|
82
|
+
if (hasSegment(lower, hints)) return true
|
|
83
|
+
const base = segmentsOf(lower).pop() ?? lower
|
|
84
|
+
|
|
85
|
+
return hints.some(hint => base.includes(hint))
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const isBulkPath = (path: string): boolean => matchesHint(path, BULK_HINTS)
|
|
89
|
+
|
|
90
|
+
const isSeedPath = (path: string): boolean => matchesHint(path, SEED_HINTS)
|
|
91
|
+
|
|
92
|
+
return { sizeClassOf, fileClassOf, binaryByExtension, entropyClassOf, isBulkPath, isSeedPath }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export const censusHelper = createCensusHelper()
|
package/src/convert/consts.ts
CHANGED
|
@@ -656,3 +656,8 @@ export const CONVERSION_INQUIRY = {
|
|
|
656
656
|
areasMap: 'convert.areas.map',
|
|
657
657
|
originRelocate: 'convert.origin.relocate',
|
|
658
658
|
} as const
|
|
659
|
+
|
|
660
|
+
/** The reasons a convertibility verdict can carry, for a consumer building its own enum check. */
|
|
661
|
+
export const ConvertibilityReasonValues = Object.values(ConvertibilityReason)
|
|
662
|
+
export const ConvertibilityVerdictValues = Object.values(ConvertibilityVerdict)
|
|
663
|
+
export const EstimateSliceValues = Object.values(EstimateSlice)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { TargetLayout } from '../../integrity/consts.js'
|
|
2
|
+
import type {
|
|
3
|
+
ArchitectureCase, ConvertibilityReason, ConvertibilityVerdict, OriginShape, StackFamily, StackId
|
|
4
|
+
} from '../consts.js'
|
|
5
|
+
|
|
6
|
+
/** One piece of evidence for a stack, and how much it counts for. */
|
|
7
|
+
export interface StackSignal {
|
|
8
|
+
id: StackId
|
|
9
|
+
weight: number
|
|
10
|
+
evidence: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* What the pure detector concluded, before any model was asked.
|
|
15
|
+
*
|
|
16
|
+
* `confirmed` records whether the ONE model confirmation ran and agreed. `confirmedCase` is what
|
|
17
|
+
* that same call answered about the architecture — asked together because a model that has just
|
|
18
|
+
* read the manifests to name a framework has already read everything the case follows from, and
|
|
19
|
+
* two calls over the same evidence is twice the price for one answer.
|
|
20
|
+
*/
|
|
21
|
+
export interface StackDetection {
|
|
22
|
+
stack: StackId
|
|
23
|
+
family: StackFamily
|
|
24
|
+
alternative?: StackId
|
|
25
|
+
confidence: number
|
|
26
|
+
confirmed: boolean
|
|
27
|
+
confirmedCase?: ArchitectureCase
|
|
28
|
+
signals: StackSignal[]
|
|
29
|
+
runtime?: string
|
|
30
|
+
reason?: string
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** The ONE model confirmation of the detected stack, and the case it implies. */
|
|
34
|
+
export interface StackConfirmation {
|
|
35
|
+
stack: StackId
|
|
36
|
+
alternative?: StackId
|
|
37
|
+
case: ArchitectureCase
|
|
38
|
+
runtime?: string
|
|
39
|
+
confidence: number
|
|
40
|
+
reason: string
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* What the tree IS, as the integrity manifest sees it.
|
|
45
|
+
*
|
|
46
|
+
* `violations` is how far a tree is from being a Viable target: zero means it IS one and the
|
|
47
|
+
* conversion is a repair, a handful means somebody edited a generated project, and a large number
|
|
48
|
+
* means it is foreign code that happens to be TypeScript.
|
|
49
|
+
*/
|
|
50
|
+
export interface OriginShapeReport {
|
|
51
|
+
shape: OriginShape
|
|
52
|
+
layout?: TargetLayout
|
|
53
|
+
violations: number
|
|
54
|
+
evidence: string[]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface ArchitectureVerdict {
|
|
58
|
+
case: ArchitectureCase
|
|
59
|
+
confidence: number
|
|
60
|
+
reasons: string[]
|
|
61
|
+
/** Two cases fit equally well; the user is asked which. */
|
|
62
|
+
ambiguous: boolean
|
|
63
|
+
/** The origin has no user interface at all — a case the implementation stage must design one for. */
|
|
64
|
+
uiGap: boolean
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface ConvertibilityReport {
|
|
68
|
+
verdict: ConvertibilityVerdict
|
|
69
|
+
reasons: ConvertibilityReason[]
|
|
70
|
+
/** What makes the verdict `Refused`, phrased for a person. */
|
|
71
|
+
blockers: string[]
|
|
72
|
+
/** What makes it `Limited` — shown before the user pays for anything. */
|
|
73
|
+
notes: string[]
|
|
74
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { ProjectArea } from '../../areas/consts.js'
|
|
2
|
+
import type {
|
|
3
|
+
ArchitectureCase, ConversionStage, ConvertibilityVerdict, OriginKind, PurposeEvidenceSource, StackFamily, StackId
|
|
4
|
+
} from '../consts.js'
|
|
5
|
+
|
|
6
|
+
/** Where the per-story and per-seed conversion documents live in a target. */
|
|
7
|
+
export interface ConversionDocHelper {
|
|
8
|
+
/** The restored story document of one story code. */
|
|
9
|
+
conversionStoryDoc: (code: string) => string
|
|
10
|
+
/** The description document of one carried seed. */
|
|
11
|
+
conversionSeedDoc: (name: string) => string
|
|
12
|
+
/** The carried seed data file itself. */
|
|
13
|
+
conversionSeedData: (name: string, ext: string) => string
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface ConversionDocMeta {
|
|
17
|
+
version: number
|
|
18
|
+
stage: ConversionStage
|
|
19
|
+
updatedAt: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface ConversionIndexMeta extends ConversionDocMeta {
|
|
23
|
+
origin: string
|
|
24
|
+
originKind: OriginKind
|
|
25
|
+
stack: StackId
|
|
26
|
+
case: ArchitectureCase
|
|
27
|
+
verdict: ConvertibilityVerdict
|
|
28
|
+
purged: boolean
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface InventoryDocMeta extends ConversionDocMeta {
|
|
32
|
+
files: number
|
|
33
|
+
bytes: number
|
|
34
|
+
packages: number
|
|
35
|
+
dumps: number
|
|
36
|
+
seeds: number
|
|
37
|
+
truncated: boolean
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface StackDocMeta extends ConversionDocMeta {
|
|
41
|
+
stack: StackId
|
|
42
|
+
family: StackFamily
|
|
43
|
+
alternative?: StackId
|
|
44
|
+
confidence: number
|
|
45
|
+
confirmed: boolean
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface ArchitectureDocMeta extends ConversionDocMeta {
|
|
49
|
+
case: ArchitectureCase
|
|
50
|
+
confidence: number
|
|
51
|
+
ambiguous: boolean
|
|
52
|
+
uiGap: boolean
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export interface HarnessDocMeta extends ConversionDocMeta {
|
|
56
|
+
docs: number
|
|
57
|
+
hasReadme: boolean
|
|
58
|
+
hasAgents: boolean
|
|
59
|
+
openapi: boolean
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface TaxonomyDocMeta extends ConversionDocMeta {
|
|
63
|
+
case: ArchitectureCase
|
|
64
|
+
packages: number
|
|
65
|
+
counts: Record<string, number>
|
|
66
|
+
deviations: number
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface PurposeDocMeta extends ConversionDocMeta {
|
|
70
|
+
source: PurposeEvidenceSource
|
|
71
|
+
confidence: number
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export interface AnalysisDocMeta extends ConversionDocMeta {
|
|
75
|
+
name: string
|
|
76
|
+
language: string
|
|
77
|
+
entities: string[]
|
|
78
|
+
flowSteps: number
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface StoryListDocMeta extends ConversionDocMeta {
|
|
82
|
+
total: number
|
|
83
|
+
flow: number
|
|
84
|
+
connective: number
|
|
85
|
+
coverage: number
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface StoryProofDocMeta extends ConversionDocMeta {
|
|
89
|
+
code: string
|
|
90
|
+
area: ProjectArea
|
|
91
|
+
origin: string[]
|
|
92
|
+
complexity: number
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface EstimateDocMeta extends ConversionDocMeta {
|
|
96
|
+
stages: ConversionStage[]
|
|
97
|
+
inputTokens: number
|
|
98
|
+
outputTokens: number
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface AssumptionsDocMeta extends ConversionDocMeta {
|
|
102
|
+
count: number
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface InquiriesDocMeta extends ConversionDocMeta {
|
|
106
|
+
asked: number
|
|
107
|
+
answered: number
|
|
108
|
+
declined: number
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface DumpsDocMeta extends ConversionDocMeta {
|
|
112
|
+
dumps: number
|
|
113
|
+
bytes: number
|
|
114
|
+
sampled: number
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export interface SeedDocMeta extends ConversionDocMeta {
|
|
118
|
+
name: string
|
|
119
|
+
format: string
|
|
120
|
+
bytes: number
|
|
121
|
+
rows?: number
|
|
122
|
+
carried: boolean
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface AreasDocMeta extends ConversionDocMeta {
|
|
126
|
+
areas: ProjectArea[]
|
|
127
|
+
roles: number
|
|
128
|
+
permissions: number
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface StructureDocMeta extends ConversionDocMeta {
|
|
132
|
+
nodes: number
|
|
133
|
+
edges: number
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface OriginCardDocMeta extends ConversionDocMeta {
|
|
137
|
+
chars: number
|
|
138
|
+
stack: StackId
|
|
139
|
+
case: ArchitectureCase
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** The frontmatter of the target's own `.agents/memory/conversion.md` node. */
|
|
143
|
+
export interface ConversionMemoryMeta {
|
|
144
|
+
version: number
|
|
145
|
+
stage: ConversionStage
|
|
146
|
+
case: ArchitectureCase
|
|
147
|
+
stack: StackId
|
|
148
|
+
origin: string
|
|
149
|
+
purged: boolean
|
|
150
|
+
updatedAt: string
|
|
151
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CONVERSION_SEED_DATA_DIR, CONVERSION_SEED_DIR, CONVERSION_STORY_DIR } from './consts.js'
|
|
2
|
+
import type { ConversionDocHelper } from './docs/types.js'
|
|
3
|
+
|
|
4
|
+
export const createConversionDocHelper = (): ConversionDocHelper => {
|
|
5
|
+
const conversionStoryDoc = (code: string): string => `${CONVERSION_STORY_DIR}/${code}.md`
|
|
6
|
+
|
|
7
|
+
const conversionSeedDoc = (name: string): string => `${CONVERSION_SEED_DIR}/${name}.md`
|
|
8
|
+
|
|
9
|
+
const conversionSeedData = (name: string, ext: string): string =>
|
|
10
|
+
`${CONVERSION_SEED_DATA_DIR}/${name}.${ext}`
|
|
11
|
+
|
|
12
|
+
return { conversionStoryDoc, conversionSeedDoc, conversionSeedData }
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const conversionDocHelper = createConversionDocHelper()
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { ModelRole } from '../../execution/consts.js'
|
|
2
|
+
import type { ConversionStage, EstimateSlice } from '../consts.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* One row of a stage's role plan — what the estimator believes a step will spend.
|
|
6
|
+
*
|
|
7
|
+
* Data rather than a measurement: the plan says which slices of the origin a step reads, how many
|
|
8
|
+
* calls it makes and what it writes back, and the estimator projects tokens from the census. A
|
|
9
|
+
* step that is per-story is multiplied by the story count instead of run once.
|
|
10
|
+
*/
|
|
11
|
+
export interface RolePlanEntry {
|
|
12
|
+
step: string
|
|
13
|
+
role: ModelRole
|
|
14
|
+
slices: EstimateSlice[]
|
|
15
|
+
/** What share of the named slices this step actually reads. */
|
|
16
|
+
factor: number
|
|
17
|
+
calls: number
|
|
18
|
+
/** Fixed input tokens per call — the persona, the framing, the schema. */
|
|
19
|
+
overhead: number
|
|
20
|
+
/** Expected output tokens per call. */
|
|
21
|
+
output: number
|
|
22
|
+
perStory?: boolean
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface RoleEstimate {
|
|
26
|
+
role: ModelRole
|
|
27
|
+
calls: number
|
|
28
|
+
inputTokens: number
|
|
29
|
+
outputTokens: number
|
|
30
|
+
steps: string[]
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* What one stage is expected to cost, as the platform stores it on the conversion record.
|
|
35
|
+
*
|
|
36
|
+
* Priced on the agent, where the model presets and the run mode are: a DELEGATED conversion runs
|
|
37
|
+
* its model calls on the parent agent and costs the platform nothing, so `usd` is zero and
|
|
38
|
+
* `delegated` says why. `basis` is kept so a user can see what the number was projected from
|
|
39
|
+
* rather than being handed a figure with no provenance.
|
|
40
|
+
*/
|
|
41
|
+
export interface ConversionEstimate {
|
|
42
|
+
stage: ConversionStage
|
|
43
|
+
version: number
|
|
44
|
+
roles: RoleEstimate[]
|
|
45
|
+
inputTokens: number
|
|
46
|
+
outputTokens: number
|
|
47
|
+
usd: number
|
|
48
|
+
/** @deprecated Credits are USD at the reference rate now — read `usd`. Kept for records stored before the change. */
|
|
49
|
+
credits?: number
|
|
50
|
+
delegated: boolean
|
|
51
|
+
basis: {
|
|
52
|
+
files: number
|
|
53
|
+
bytes: number
|
|
54
|
+
storyCount?: number
|
|
55
|
+
sampleRatio: number
|
|
56
|
+
retryFactor: number
|
|
57
|
+
}
|
|
58
|
+
computedAt: string
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The per-story band shown before the implementation stage.
|
|
63
|
+
*
|
|
64
|
+
* A range, because a story's cost is set by how much code it turns out to need — which is exactly
|
|
65
|
+
* what nothing knows before it is written. Shown with the disclaimer that says so.
|
|
66
|
+
*/
|
|
67
|
+
export interface StoryEstimateBand {
|
|
68
|
+
minUsd: number
|
|
69
|
+
maxUsd: number
|
|
70
|
+
/** @deprecated Credits are USD at the reference rate now — read `minUsd`. Kept for records stored before the change. */
|
|
71
|
+
minCredits?: number
|
|
72
|
+
/** @deprecated Credits are USD at the reference rate now — read `maxUsd`. Kept for records stored before the change. */
|
|
73
|
+
maxCredits?: number
|
|
74
|
+
perStory: { code: string, complexity: number, minUsd: number, maxUsd: number }[]
|
|
75
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoryProof } from './analysis/types.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* How much work re-implementing a story is, as a multiplier on the per-story price band.
|
|
5
|
+
*
|
|
6
|
+
* Derived from what the extraction found, never asked of a model: a story backed by a handful of
|
|
7
|
+
* proofs and no algorithm is ordinary CRUD, one that carries described algorithms is business
|
|
8
|
+
* logic somebody has to reproduce. Two runs over the same extraction therefore price identically,
|
|
9
|
+
* which is the point — a band that moved between two viewings of the same screen would be noise.
|
|
10
|
+
*/
|
|
11
|
+
export const storyComplexity = (proof: Pick<StoryProof, 'proofs' | 'algorithms'>): number => {
|
|
12
|
+
const proofs = proof.proofs?.length ?? 0
|
|
13
|
+
const algorithms = proof.algorithms?.length ?? 0
|
|
14
|
+
|
|
15
|
+
if (algorithms > 1 || proofs > 8) return 2
|
|
16
|
+
if (algorithms > 0 || proofs > 3) return 1.5
|
|
17
|
+
|
|
18
|
+
return 1
|
|
19
|
+
}
|