@topogram/cli 0.3.64 → 0.3.65
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/package.json +1 -1
- package/src/adoption/plan/index.js +703 -0
- package/src/adoption/plan.js +12 -703
- package/src/agent-ops/query-builders/auth.js +375 -0
- package/src/agent-ops/query-builders/change-risk/change-plan.js +123 -0
- package/src/agent-ops/query-builders/change-risk/import-plan.js +49 -0
- package/src/agent-ops/query-builders/change-risk/maintained.js +286 -0
- package/src/agent-ops/query-builders/change-risk/review-packets.js +123 -0
- package/src/agent-ops/query-builders/change-risk/risk.js +189 -0
- package/src/agent-ops/query-builders/change-risk.js +25 -0
- package/src/agent-ops/query-builders/common.js +149 -0
- package/src/agent-ops/query-builders/maintained-risk.js +539 -0
- package/src/agent-ops/query-builders/maintained-shared.js +120 -0
- package/src/agent-ops/query-builders/multi-agent.js +547 -0
- package/src/agent-ops/query-builders/projection-impacts.js +514 -0
- package/src/agent-ops/query-builders/work-packets.js +417 -0
- package/src/agent-ops/query-builders/workflow-context-shared.js +300 -0
- package/src/agent-ops/query-builders/workflow-context.js +398 -0
- package/src/agent-ops/query-builders/workflow-presets-core.js +676 -0
- package/src/agent-ops/query-builders/workflow-presets.js +341 -0
- package/src/agent-ops/query-builders.d.ts +26 -26
- package/src/agent-ops/query-builders.js +42 -5021
- package/src/catalog/constants.js +10 -0
- package/src/catalog/copy.js +60 -0
- package/src/catalog/diagnostics.js +15 -0
- package/src/catalog/entries.js +42 -0
- package/src/catalog/files.js +67 -0
- package/src/catalog/provenance.js +122 -0
- package/src/catalog/source.js +150 -0
- package/src/catalog/validation.js +252 -0
- package/src/catalog.d.ts +2 -0
- package/src/catalog.js +18 -746
- package/src/cli/commands/catalog/check.js +31 -0
- package/src/cli/commands/catalog/copy.js +59 -0
- package/src/cli/commands/catalog/doctor.js +248 -0
- package/src/cli/commands/catalog/help.js +21 -0
- package/src/cli/commands/catalog/list.js +52 -0
- package/src/cli/commands/catalog/runner.js +92 -0
- package/src/cli/commands/catalog/shared.js +17 -0
- package/src/cli/commands/catalog/show.js +134 -0
- package/src/cli/commands/catalog.js +30 -615
- package/src/cli/commands/generator-policy/package-info.js +162 -0
- package/src/cli/commands/generator-policy/payloads.js +372 -0
- package/src/cli/commands/generator-policy/printers.js +159 -0
- package/src/cli/commands/generator-policy/runner.js +81 -0
- package/src/cli/commands/generator-policy/shared.js +39 -0
- package/src/cli/commands/generator-policy.js +15 -783
- package/src/cli/commands/import/adopt.js +170 -0
- package/src/cli/commands/import/check.js +91 -0
- package/src/cli/commands/import/diff.js +84 -0
- package/src/cli/commands/import/help.js +47 -0
- package/src/cli/commands/import/paths.js +277 -0
- package/src/cli/commands/import/plan.js +284 -0
- package/src/cli/commands/import/refresh.js +470 -0
- package/src/cli/commands/import/status-history.js +196 -0
- package/src/cli/commands/import/workspace.js +230 -0
- package/src/cli/commands/import.js +33 -1732
- package/src/cli/commands/package/constants.js +17 -0
- package/src/cli/commands/package/doctor.js +240 -0
- package/src/cli/commands/package/help.js +27 -0
- package/src/cli/commands/package/lockfile.js +135 -0
- package/src/cli/commands/package/npm.js +97 -0
- package/src/cli/commands/package/reporting.js +35 -0
- package/src/cli/commands/package/runner.js +33 -0
- package/src/cli/commands/package/shared.js +9 -0
- package/src/cli/commands/package/update-cli.js +252 -0
- package/src/cli/commands/package/versions.js +35 -0
- package/src/cli/commands/package.js +29 -813
- package/src/cli/commands/query/change-plan.js +68 -0
- package/src/cli/commands/query/definitions.js +202 -0
- package/src/cli/commands/query/import-adopt.js +121 -0
- package/src/cli/commands/query/runner/artifacts.js +102 -0
- package/src/cli/commands/query/runner/boundaries.js +211 -0
- package/src/cli/commands/query/runner/change.js +182 -0
- package/src/cli/commands/query/runner/import-adopt.js +111 -0
- package/src/cli/commands/query/runner/index.js +31 -0
- package/src/cli/commands/query/runner/output.js +12 -0
- package/src/cli/commands/query/runner/workflow.js +241 -0
- package/src/cli/commands/query/runner.js +3 -0
- package/src/cli/commands/query/workflow-context.js +5 -0
- package/src/cli/commands/query/workspace.js +274 -0
- package/src/cli/commands/query.js +9 -1300
- package/src/cli/commands/template/baseline.js +100 -0
- package/src/cli/commands/template/check.js +466 -0
- package/src/cli/commands/template/constants.js +8 -0
- package/src/cli/commands/template/diagnostics.js +26 -0
- package/src/cli/commands/template/help.js +28 -0
- package/src/cli/commands/template/lifecycle.js +404 -0
- package/src/cli/commands/template/list-show.js +287 -0
- package/src/cli/commands/template/policy.js +422 -0
- package/src/cli/commands/template/shared.js +127 -0
- package/src/cli/commands/template/updates.js +352 -0
- package/src/cli/commands/template.js +41 -2143
- package/src/generator/api/contracts.js +497 -0
- package/src/generator/api/metadata.js +221 -0
- package/src/generator/api/openapi.js +559 -0
- package/src/generator/api/schema.js +124 -0
- package/src/generator/api/types.d.ts +98 -0
- package/src/generator/api.js +3 -1195
- package/src/generator/context/shared/domain-sdlc.js +282 -0
- package/src/generator/context/shared/maintained-boundary.js +665 -0
- package/src/generator/context/shared/metrics.js +85 -0
- package/src/generator/context/shared/primitives.js +64 -0
- package/src/generator/context/shared/relationships.js +453 -0
- package/src/generator/context/shared/summaries.js +263 -0
- package/src/generator/context/shared/types.d.ts +207 -0
- package/src/generator/context/shared.d.ts +42 -0
- package/src/generator/context/shared.js +80 -1390
- package/src/generator/context/slice/core.js +397 -0
- package/src/generator/context/slice/sdlc.js +417 -0
- package/src/generator/context/slice/ui-packets.js +183 -0
- package/src/generator/context/slice.js +2 -859
- package/src/generator/registry/index.js +507 -0
- package/src/generator/registry.js +18 -504
- package/src/generator/runtime/environment/index.js +666 -0
- package/src/generator/runtime/environment.js +4 -666
- package/src/generator/runtime/runtime-check/index.js +554 -0
- package/src/generator/runtime/runtime-check.js +4 -554
- package/src/generator/runtime/shared/index.js +572 -0
- package/src/generator/runtime/shared.js +19 -570
- package/src/generator/shared.d.ts +2 -0
- package/src/generator/surfaces/shared.d.ts +3 -0
- package/src/generator/widget-conformance/behavior-report.js +258 -0
- package/src/generator/widget-conformance/checks.js +371 -0
- package/src/generator/widget-conformance/projection-context.js +200 -0
- package/src/generator/widget-conformance/report.js +166 -0
- package/src/generator/widget-conformance/types.d.ts +121 -0
- package/src/generator/widget-conformance.js +3 -824
- package/src/import/core/context.d.ts +3 -0
- package/src/import/core/contracts.d.ts +1 -0
- package/src/import/core/registry.d.ts +4 -0
- package/src/import/core/runner/candidates.js +217 -0
- package/src/import/core/runner/options.js +22 -0
- package/src/import/core/runner/reports.js +50 -0
- package/src/import/core/runner/run.js +79 -0
- package/src/import/core/runner/tracks.js +150 -0
- package/src/import/core/runner/ui-drafts.js +337 -0
- package/src/import/core/runner.js +3 -698
- package/src/import/core/shared/api-routes.js +221 -0
- package/src/import/core/shared/candidates.js +97 -0
- package/src/import/core/shared/files.js +177 -0
- package/src/import/core/shared/next-app.js +389 -0
- package/src/import/core/shared/types.d.ts +51 -0
- package/src/import/core/shared/ui-routes.js +230 -0
- package/src/import/core/shared.js +60 -861
- package/src/new-project/constants.js +128 -0
- package/src/new-project/create.js +83 -0
- package/src/new-project/json.js +28 -0
- package/src/new-project/metadata.js +96 -0
- package/src/new-project/package-spec.js +161 -0
- package/src/new-project/project-files.js +348 -0
- package/src/new-project/template-policy.js +269 -0
- package/src/new-project/template-resolution.js +368 -0
- package/src/new-project/template-snapshots.js +430 -0
- package/src/new-project/template-updates.js +512 -0
- package/src/new-project/types.d.ts +83 -0
- package/src/new-project.js +6 -2277
- package/src/parser.d.ts +87 -1
- package/src/parser.js +118 -0
- package/src/policy/review-boundaries.d.ts +15 -0
- package/src/project-config/index.js +564 -0
- package/src/project-config.js +19 -561
- package/src/resolver/enrich/acceptance-criterion.js +2 -0
- package/src/resolver/enrich/bug.js +2 -0
- package/src/resolver/enrich/pitch.js +2 -0
- package/src/resolver/enrich/requirement.js +2 -0
- package/src/resolver/enrich/task.js +2 -0
- package/src/resolver/index.js +19 -2089
- package/src/resolver/normalize.js +384 -1
- package/src/resolver/plans.js +168 -0
- package/src/resolver/projections-api.js +494 -0
- package/src/resolver/projections-db.js +133 -0
- package/src/resolver/projections-ui.js +317 -0
- package/src/resolver/shapes.js +251 -0
- package/src/resolver/shared.js +278 -0
- package/src/resolver/widgets.js +132 -0
- package/src/template-trust/constants.js +62 -0
- package/src/template-trust/content.js +258 -0
- package/src/template-trust/diff.js +92 -0
- package/src/template-trust/policy.js +61 -0
- package/src/template-trust/record.js +90 -0
- package/src/template-trust/status.js +182 -0
- package/src/template-trust.js +24 -687
- package/src/text-helpers.d.ts +1 -0
- package/src/topogram-types.d.ts +69 -0
- package/src/validator/common.js +488 -0
- package/src/validator/data-model.js +237 -0
- package/src/validator/docs.js +167 -0
- package/src/validator/expressions.js +146 -1
- package/src/validator/index.d.ts +23 -0
- package/src/validator/index.js +32 -3585
- package/src/validator/kinds.d.ts +41 -0
- package/src/validator/kinds.js +2 -0
- package/src/validator/model-helpers.js +46 -0
- package/src/validator/per-kind/acceptance-criterion.js +5 -0
- package/src/validator/per-kind/bug.js +6 -0
- package/src/validator/per-kind/domain.js +15 -2
- package/src/validator/per-kind/pitch.js +7 -0
- package/src/validator/per-kind/requirement.js +5 -0
- package/src/validator/per-kind/task.js +7 -0
- package/src/validator/per-kind/widget.js +14 -0
- package/src/validator/projections/api-http-async.js +410 -0
- package/src/validator/projections/api-http-authz.js +88 -0
- package/src/validator/projections/api-http-core.js +205 -0
- package/src/validator/projections/api-http-policies.js +339 -0
- package/src/validator/projections/api-http-responses.js +233 -0
- package/src/validator/projections/api-http.js +44 -0
- package/src/validator/projections/db.js +353 -0
- package/src/validator/projections/generator-defaults.js +45 -0
- package/src/validator/projections/helpers.js +87 -0
- package/src/validator/projections/ui-helpers.js +214 -0
- package/src/validator/projections/ui-navigation.js +344 -0
- package/src/validator/projections/ui-structure.js +364 -0
- package/src/validator/projections/ui-widgets.js +493 -0
- package/src/validator/projections/ui.js +46 -0
- package/src/validator/registry.js +48 -1
- package/src/validator/utils.d.ts +20 -0
- package/src/validator/utils.js +115 -12
- package/src/widget-behavior.d.ts +1 -0
- package/src/workflows/import-app/api/collect.js +221 -0
- package/src/workflows/import-app/api/openapi.js +257 -0
- package/src/workflows/import-app/api/routes.js +327 -0
- package/src/workflows/import-app/api/sources.js +22 -0
- package/src/workflows/import-app/api.js +2 -797
- package/src/workflows/reconcile/adoption-plan/build.js +208 -0
- package/src/workflows/reconcile/adoption-plan/dependencies.js +75 -0
- package/src/workflows/reconcile/adoption-plan/outputs.js +143 -0
- package/src/workflows/reconcile/adoption-plan/paths.js +58 -0
- package/src/workflows/reconcile/adoption-plan/projection-patches.js +177 -0
- package/src/workflows/reconcile/adoption-plan/reasons.js +107 -0
- package/src/workflows/reconcile/adoption-plan.js +30 -740
- package/src/workflows/reconcile/auth/closures.js +115 -0
- package/src/workflows/reconcile/auth/formatters.js +142 -0
- package/src/workflows/reconcile/auth/inference.js +330 -0
- package/src/workflows/reconcile/auth/roles.js +122 -0
- package/src/workflows/reconcile/auth.js +35 -690
- package/src/workflows/reconcile/bundle-core/index.js +600 -0
- package/src/workflows/reconcile/bundle-core.js +12 -598
- package/src/workflows/reconcile/canonical-surface.js +1 -1
- package/src/workflows/reconcile/impacts/adoption-plan.js +192 -0
- package/src/workflows/reconcile/impacts/indexes.js +101 -0
- package/src/workflows/reconcile/impacts/patches.js +252 -0
- package/src/workflows/reconcile/impacts/reports.js +80 -0
- package/src/workflows/reconcile/impacts.js +14 -623
- package/src/workspace-docs.d.ts +29 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defaultOwnershipBoundary,
|
|
3
|
+
reviewBoundaryForCapability as reviewBoundaryForCapabilityPolicy,
|
|
4
|
+
reviewBoundaryForEntity as reviewBoundaryForEntityPolicy,
|
|
5
|
+
reviewBoundaryForJourneyDoc as reviewBoundaryForJourneyDocPolicy,
|
|
6
|
+
reviewBoundaryForProjection as reviewBoundaryForProjectionPolicy,
|
|
7
|
+
reviewBoundaryForWorkflowDoc as reviewBoundaryForWorkflowDocPolicy
|
|
8
|
+
} from "../../../policy/review-boundaries.js";
|
|
9
|
+
import { docIds, refIds, stableSortedStrings } from "./primitives.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @param {import("./types.d.ts").ContextField} field
|
|
13
|
+
* @returns {any}
|
|
14
|
+
*/
|
|
15
|
+
export function summarizeField(field) {
|
|
16
|
+
return {
|
|
17
|
+
name: field.name || null,
|
|
18
|
+
type: field.fieldType || null,
|
|
19
|
+
requiredness: field.requiredness || null,
|
|
20
|
+
defaultValue: field.defaultValue ?? null
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @param {import("./types.d.ts").ContextProjection} projection
|
|
26
|
+
* @returns {any}
|
|
27
|
+
*/
|
|
28
|
+
export function summarizeProjection(projection) {
|
|
29
|
+
return {
|
|
30
|
+
id: projection.id,
|
|
31
|
+
kind: projection.kind,
|
|
32
|
+
name: projection.name || projection.id,
|
|
33
|
+
description: projection.description || null,
|
|
34
|
+
type: projection.type || null,
|
|
35
|
+
realizes: refIds(projection.realizes),
|
|
36
|
+
outputs: stableSortedStrings(projection.outputs || []),
|
|
37
|
+
uiScreens: stableSortedStrings((projection.uiScreens || []).map(/** @param {any} screen */ (screen) => screen.id)),
|
|
38
|
+
widgetBindings: stableSortedStrings((projection.widgetBindings || []).map(/** @param {any} entry */ (entry) => entry.widget?.id).filter(Boolean)),
|
|
39
|
+
dbTables: stableSortedStrings((projection.dbTables || []).map(/** @param {any} table */ (table) => table.table || table.entity?.id)),
|
|
40
|
+
httpCapabilities: stableSortedStrings((projection.http || []).map(/** @param {any} entry */ (entry) => entry.capability?.id)),
|
|
41
|
+
reviewBoundary: reviewBoundaryForProjectionPolicy(projection),
|
|
42
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @param {import("./types.d.ts").ContextStatement} rule
|
|
48
|
+
* @returns {any}
|
|
49
|
+
*/
|
|
50
|
+
export function summarizeRule(rule) {
|
|
51
|
+
return {
|
|
52
|
+
id: rule.id,
|
|
53
|
+
kind: rule.kind,
|
|
54
|
+
name: rule.name || rule.id,
|
|
55
|
+
description: rule.description || null,
|
|
56
|
+
appliesTo: refIds(rule.appliesTo),
|
|
57
|
+
actors: refIds(rule.actors),
|
|
58
|
+
roles: refIds(rule.roles),
|
|
59
|
+
severity: rule.severity || null,
|
|
60
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @param {import("./types.d.ts").ContextStatement} verification
|
|
66
|
+
* @returns {any}
|
|
67
|
+
*/
|
|
68
|
+
export function summarizeVerification(verification) {
|
|
69
|
+
return {
|
|
70
|
+
id: verification.id,
|
|
71
|
+
kind: verification.kind,
|
|
72
|
+
name: verification.name || verification.id,
|
|
73
|
+
description: verification.description || null,
|
|
74
|
+
method: verification.method || null,
|
|
75
|
+
validates: refIds(verification.validates),
|
|
76
|
+
scenarios: stableSortedStrings(verification.scenarios || []),
|
|
77
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @param {import("./types.d.ts").ContextDoc} doc
|
|
83
|
+
* @returns {any}
|
|
84
|
+
*/
|
|
85
|
+
export function summarizeJourneyDoc(doc) {
|
|
86
|
+
return {
|
|
87
|
+
id: doc.id,
|
|
88
|
+
kind: doc.kind,
|
|
89
|
+
title: doc.title || doc.id,
|
|
90
|
+
summary: doc.summary || null,
|
|
91
|
+
relatedCapabilities: stableSortedStrings(doc.relatedCapabilities || []),
|
|
92
|
+
relatedWorkflows: stableSortedStrings(doc.relatedWorkflows || []),
|
|
93
|
+
relatedProjections: stableSortedStrings(doc.relatedProjections || []),
|
|
94
|
+
reviewRequired: Boolean(doc.reviewRequired),
|
|
95
|
+
reviewBoundary: doc.kind === "workflow" ? reviewBoundaryForWorkflowDocPolicy(doc) : reviewBoundaryForJourneyDocPolicy(doc),
|
|
96
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @param {import("./types.d.ts").ContextStatement} statement
|
|
102
|
+
* @returns {any}
|
|
103
|
+
*/
|
|
104
|
+
export function summarizeComponent(statement) {
|
|
105
|
+
return {
|
|
106
|
+
id: statement.id,
|
|
107
|
+
kind: statement.kind,
|
|
108
|
+
name: statement.name || statement.id,
|
|
109
|
+
description: statement.description || null,
|
|
110
|
+
category: statement.category || null,
|
|
111
|
+
version: statement.version || null,
|
|
112
|
+
status: statement.status || null,
|
|
113
|
+
props: (statement.props || []).map(/** @param {any} prop */ (prop) => ({
|
|
114
|
+
name: prop.name ?? null,
|
|
115
|
+
type: prop.fieldType ?? null,
|
|
116
|
+
requiredness: prop.requiredness ?? null,
|
|
117
|
+
defaultValue: prop.defaultValue ?? null
|
|
118
|
+
})),
|
|
119
|
+
events: (statement.events || []).map(/** @param {any} event */ (event) => ({
|
|
120
|
+
id: event.id ?? null,
|
|
121
|
+
shape: event.shape?.id ?? null
|
|
122
|
+
})),
|
|
123
|
+
slots: (statement.slots || []).map(/** @param {any} slot */ (slot) => ({
|
|
124
|
+
id: slot.id ?? null,
|
|
125
|
+
description: slot.description ?? null
|
|
126
|
+
})),
|
|
127
|
+
behavior: stableSortedStrings(statement.behavior || []),
|
|
128
|
+
behaviors: (statement.behaviors || []).map(/** @param {any} behavior */ (behavior) => ({
|
|
129
|
+
kind: behavior.kind || null,
|
|
130
|
+
directives: behavior.directives || {},
|
|
131
|
+
source: behavior.source || null
|
|
132
|
+
})),
|
|
133
|
+
patterns: stableSortedStrings(statement.patterns || []),
|
|
134
|
+
regions: stableSortedStrings(statement.regions || []),
|
|
135
|
+
approvals: stableSortedStrings(statement.approvals || []),
|
|
136
|
+
lookups: refIds(statement.lookups),
|
|
137
|
+
dependencies: refIds(statement.dependencies),
|
|
138
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @param {import("./types.d.ts").ContextStatement} statement
|
|
144
|
+
* @returns {any}
|
|
145
|
+
*/
|
|
146
|
+
export function summarizeStatement(statement) {
|
|
147
|
+
switch (statement.kind) {
|
|
148
|
+
case "entity":
|
|
149
|
+
return {
|
|
150
|
+
id: statement.id,
|
|
151
|
+
kind: statement.kind,
|
|
152
|
+
name: statement.name || statement.id,
|
|
153
|
+
description: statement.description || null,
|
|
154
|
+
fields: (statement.fields || []).map(summarizeField),
|
|
155
|
+
relations: (statement.relations || []).map(/** @param {any} relation */ (relation) => ({
|
|
156
|
+
type: relation.type || null,
|
|
157
|
+
sourceField: relation.sourceField || null,
|
|
158
|
+
target: relation.target?.id || null
|
|
159
|
+
})),
|
|
160
|
+
keys: stableSortedStrings((statement.keys || []).map(/** @param {any} key */ (key) => key.name)),
|
|
161
|
+
reviewBoundary: reviewBoundaryForEntityPolicy(statement),
|
|
162
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
163
|
+
};
|
|
164
|
+
case "widget":
|
|
165
|
+
return summarizeComponent(statement);
|
|
166
|
+
case "shape":
|
|
167
|
+
return {
|
|
168
|
+
id: statement.id,
|
|
169
|
+
kind: statement.kind,
|
|
170
|
+
name: statement.name || statement.id,
|
|
171
|
+
description: statement.description || null,
|
|
172
|
+
derivedFrom: refIds(statement.derivedFrom),
|
|
173
|
+
include: stableSortedStrings(statement.include || []),
|
|
174
|
+
exclude: stableSortedStrings(statement.exclude || []),
|
|
175
|
+
fields: (statement.projectedFields || statement.fields || []).map(summarizeField),
|
|
176
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
177
|
+
};
|
|
178
|
+
case "capability":
|
|
179
|
+
return {
|
|
180
|
+
id: statement.id,
|
|
181
|
+
kind: statement.kind,
|
|
182
|
+
name: statement.name || statement.id,
|
|
183
|
+
description: statement.description || null,
|
|
184
|
+
actors: refIds(statement.actors),
|
|
185
|
+
roles: refIds(statement.roles),
|
|
186
|
+
reads: refIds(statement.reads),
|
|
187
|
+
creates: refIds(statement.creates),
|
|
188
|
+
updates: refIds(statement.updates),
|
|
189
|
+
deletes: refIds(statement.deletes),
|
|
190
|
+
input: refIds(statement.input),
|
|
191
|
+
output: refIds(statement.output),
|
|
192
|
+
reviewBoundary: reviewBoundaryForCapabilityPolicy(statement),
|
|
193
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
194
|
+
};
|
|
195
|
+
case "rule":
|
|
196
|
+
return summarizeRule(statement);
|
|
197
|
+
case "projection":
|
|
198
|
+
return summarizeProjection(statement);
|
|
199
|
+
case "verification":
|
|
200
|
+
return summarizeVerification(statement);
|
|
201
|
+
case "enum":
|
|
202
|
+
return {
|
|
203
|
+
id: statement.id,
|
|
204
|
+
kind: statement.kind,
|
|
205
|
+
name: statement.name || statement.id,
|
|
206
|
+
values: stableSortedStrings(statement.values || []),
|
|
207
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
208
|
+
};
|
|
209
|
+
case "actor":
|
|
210
|
+
case "role":
|
|
211
|
+
return {
|
|
212
|
+
id: statement.id,
|
|
213
|
+
kind: statement.kind,
|
|
214
|
+
name: statement.name || statement.id,
|
|
215
|
+
description: statement.description || null,
|
|
216
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
217
|
+
};
|
|
218
|
+
default:
|
|
219
|
+
return {
|
|
220
|
+
id: statement.id,
|
|
221
|
+
kind: statement.kind,
|
|
222
|
+
name: statement.name || statement.id,
|
|
223
|
+
description: statement.description || null,
|
|
224
|
+
ownership_boundary: defaultOwnershipBoundary()
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* @param {import("./types.d.ts").ContextCapability} capability
|
|
231
|
+
* @returns {any}
|
|
232
|
+
*/
|
|
233
|
+
export function reviewBoundaryForCapability(capability) {
|
|
234
|
+
return reviewBoundaryForCapabilityPolicy(capability);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* @param {import("./types.d.ts").ContextProjection} projection
|
|
239
|
+
* @returns {any}
|
|
240
|
+
*/
|
|
241
|
+
export function reviewBoundaryForProjection(projection) {
|
|
242
|
+
return reviewBoundaryForProjectionPolicy(projection);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* @param {import("./types.d.ts").ContextEntity} entity
|
|
247
|
+
* @returns {any}
|
|
248
|
+
*/
|
|
249
|
+
export function reviewBoundaryForEntity(entity) {
|
|
250
|
+
return reviewBoundaryForEntityPolicy(entity);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* @param {import("./types.d.ts").ContextGraph} graph
|
|
255
|
+
* @returns {any}
|
|
256
|
+
*/
|
|
257
|
+
export function graphCounts(graph) {
|
|
258
|
+
return Object.fromEntries(
|
|
259
|
+
Object.entries(graph.byKind || {})
|
|
260
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
261
|
+
.map(([kind, statements]) => [kind, statements.length])
|
|
262
|
+
);
|
|
263
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
export type ContextReference = {
|
|
2
|
+
id?: string;
|
|
3
|
+
kind?: string;
|
|
4
|
+
target?: {
|
|
5
|
+
id?: string;
|
|
6
|
+
kind?: string;
|
|
7
|
+
};
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type ContextField = {
|
|
12
|
+
name?: string;
|
|
13
|
+
fieldType?: string;
|
|
14
|
+
requiredness?: string;
|
|
15
|
+
defaultValue?: unknown;
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type ContextProjection = ContextStatement & {
|
|
20
|
+
type?: string;
|
|
21
|
+
realizes?: ContextReference[];
|
|
22
|
+
outputs?: string[];
|
|
23
|
+
uiScreens?: any[];
|
|
24
|
+
uiRoutes?: any[];
|
|
25
|
+
uiScreenRegions?: any[];
|
|
26
|
+
uiCollections?: any[];
|
|
27
|
+
uiActions?: any[];
|
|
28
|
+
uiVisibility?: any[];
|
|
29
|
+
uiLookups?: any[];
|
|
30
|
+
uiDesign?: any[];
|
|
31
|
+
widgetBindings?: ContextWidgetUsage[];
|
|
32
|
+
dbTables?: any[];
|
|
33
|
+
dbColumns?: any[];
|
|
34
|
+
dbRelations?: any[];
|
|
35
|
+
http?: any[];
|
|
36
|
+
httpResponses?: any[];
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type ContextCapability = ContextStatement & {
|
|
40
|
+
actors?: ContextReference[];
|
|
41
|
+
roles?: ContextReference[];
|
|
42
|
+
reads?: ContextReference[];
|
|
43
|
+
creates?: ContextReference[];
|
|
44
|
+
updates?: ContextReference[];
|
|
45
|
+
deletes?: ContextReference[];
|
|
46
|
+
input?: ContextReference[];
|
|
47
|
+
output?: ContextReference[];
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type ContextEntity = ContextStatement & {
|
|
51
|
+
fields?: ContextField[];
|
|
52
|
+
relations?: any[];
|
|
53
|
+
keys?: any[];
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export type ContextShape = ContextStatement & {
|
|
57
|
+
derivedFrom?: ContextReference[];
|
|
58
|
+
include?: string[];
|
|
59
|
+
exclude?: string[];
|
|
60
|
+
fields?: ContextField[];
|
|
61
|
+
projectedFields?: ContextField[];
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export type ContextWidget = ContextStatement & {
|
|
65
|
+
category?: string;
|
|
66
|
+
version?: string;
|
|
67
|
+
status?: string;
|
|
68
|
+
widgetContract?: {
|
|
69
|
+
patterns?: string[];
|
|
70
|
+
regions?: string[];
|
|
71
|
+
behaviors?: any[];
|
|
72
|
+
[key: string]: any;
|
|
73
|
+
};
|
|
74
|
+
props?: ContextField[];
|
|
75
|
+
events?: any[];
|
|
76
|
+
slots?: any[];
|
|
77
|
+
behavior?: string[];
|
|
78
|
+
behaviors?: any[];
|
|
79
|
+
patterns?: string[];
|
|
80
|
+
regions?: string[];
|
|
81
|
+
approvals?: string[];
|
|
82
|
+
lookups?: ContextReference[];
|
|
83
|
+
dependencies?: ContextReference[];
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export type ContextWidgetUsage = {
|
|
87
|
+
widget?: ContextReference;
|
|
88
|
+
screenId?: string;
|
|
89
|
+
region?: string;
|
|
90
|
+
dataBindings?: any[];
|
|
91
|
+
eventBindings?: any[];
|
|
92
|
+
[key: string]: any;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export type ContextStatement = {
|
|
96
|
+
id: string;
|
|
97
|
+
kind?: string;
|
|
98
|
+
name?: string;
|
|
99
|
+
description?: string;
|
|
100
|
+
loc?: {
|
|
101
|
+
file?: string;
|
|
102
|
+
};
|
|
103
|
+
resolvedDomain?: {
|
|
104
|
+
id?: string;
|
|
105
|
+
};
|
|
106
|
+
[key: string]: any;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export type ContextDoc = {
|
|
110
|
+
id: string;
|
|
111
|
+
kind?: string;
|
|
112
|
+
title?: string;
|
|
113
|
+
loc?: {
|
|
114
|
+
file?: string;
|
|
115
|
+
};
|
|
116
|
+
metadata?: any;
|
|
117
|
+
relatedCapabilities?: string[];
|
|
118
|
+
relatedWorkflows?: string[];
|
|
119
|
+
[key: string]: any;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export type ContextGraph = {
|
|
123
|
+
root?: string;
|
|
124
|
+
workspaceRoot?: string;
|
|
125
|
+
repoRoot?: string;
|
|
126
|
+
statements: ContextStatement[];
|
|
127
|
+
docs: ContextDoc[];
|
|
128
|
+
byKind: Record<string, any[]>;
|
|
129
|
+
[key: string]: any;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
export type ContextSelectionOptions = {
|
|
133
|
+
capabilityId?: string | null;
|
|
134
|
+
workflowId?: string | null;
|
|
135
|
+
projectionId?: string | null;
|
|
136
|
+
widgetId?: string | null;
|
|
137
|
+
componentId?: string | null;
|
|
138
|
+
entityId?: string | null;
|
|
139
|
+
journeyId?: string | null;
|
|
140
|
+
surfaceId?: string | null;
|
|
141
|
+
domainId?: string | null;
|
|
142
|
+
pitchId?: string | null;
|
|
143
|
+
requirementId?: string | null;
|
|
144
|
+
acceptanceId?: string | null;
|
|
145
|
+
taskId?: string | null;
|
|
146
|
+
bugId?: string | null;
|
|
147
|
+
documentId?: string | null;
|
|
148
|
+
[key: string]: any;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
export type ContextSelection = {
|
|
152
|
+
kind: string;
|
|
153
|
+
id: string;
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export type VerificationTargets = {
|
|
157
|
+
verification_ids?: string[];
|
|
158
|
+
generated_checks?: string[];
|
|
159
|
+
maintained_app_checks?: string[];
|
|
160
|
+
rationale?: string | null;
|
|
161
|
+
[key: string]: any;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
export type MaintainedSeam = {
|
|
165
|
+
seam_id?: string;
|
|
166
|
+
label?: string;
|
|
167
|
+
maintained_modules?: string[];
|
|
168
|
+
emitted_dependencies?: string[];
|
|
169
|
+
[key: string]: any;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export type MaintainedOutput = {
|
|
173
|
+
output_id?: string;
|
|
174
|
+
label?: string;
|
|
175
|
+
kind?: string;
|
|
176
|
+
maintained_files_in_scope?: string[];
|
|
177
|
+
seams: MaintainedSeam[];
|
|
178
|
+
proof_stories: any[];
|
|
179
|
+
[key: string]: any;
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
export type MaintainedProofStory = {
|
|
183
|
+
classification?: string;
|
|
184
|
+
maintainedFiles?: string[];
|
|
185
|
+
emittedDependencies?: string[];
|
|
186
|
+
humanOwnedSeams?: string[];
|
|
187
|
+
seamFamilyId?: string | null;
|
|
188
|
+
seamFamilyLabel?: string | null;
|
|
189
|
+
relativePath?: string;
|
|
190
|
+
absolutePath?: string;
|
|
191
|
+
reviewBoundary?: any;
|
|
192
|
+
ownership_boundary?: any;
|
|
193
|
+
[key: string]: any;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export type MaintainedBoundaryOptions = {
|
|
197
|
+
proofStories?: MaintainedProofStory[];
|
|
198
|
+
verificationTargets?: VerificationTargets | null;
|
|
199
|
+
graph?: ContextGraph | null;
|
|
200
|
+
[key: string]: any;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
export type VerificationTargetOptions = {
|
|
204
|
+
rationale?: string | null;
|
|
205
|
+
includeMaintainedApp?: boolean;
|
|
206
|
+
[key: string]: any;
|
|
207
|
+
};
|
|
@@ -1,2 +1,44 @@
|
|
|
1
1
|
export function recommendedVerificationTargets(...args: any[]): any;
|
|
2
|
+
export function acceptanceCriterionById(...args: any[]): any;
|
|
3
|
+
export function bugById(...args: any[]): any;
|
|
4
|
+
export function buildDefaultWriteScope(...args: any[]): any;
|
|
5
|
+
export function documentById(...args: any[]): any;
|
|
6
|
+
export function domainById(...args: any[]): any;
|
|
7
|
+
export function ensureContextSelection(...args: any[]): any;
|
|
8
|
+
export function getJourneyDoc(...args: any[]): any;
|
|
9
|
+
export function getStatement(...args: any[]): any;
|
|
10
|
+
export function getWorkflowDoc(...args: any[]): any;
|
|
11
|
+
export function pitchById(...args: any[]): any;
|
|
12
|
+
export function relatedCapabilitiesForEntity(...args: any[]): any;
|
|
13
|
+
export function relatedCapabilitiesForProjection(...args: any[]): any;
|
|
14
|
+
export function relatedEntitiesForDomain(...args: any[]): any;
|
|
15
|
+
export function relatedEntitiesForProjection(...args: any[]): any;
|
|
16
|
+
export function relatedJourneysForCapability(...args: any[]): any;
|
|
17
|
+
export function relatedProjectionsForCapability(...args: any[]): any;
|
|
18
|
+
export function relatedProjectionsForDomain(...args: any[]): any;
|
|
19
|
+
export function relatedProjectionsForEntity(...args: any[]): any;
|
|
20
|
+
export function relatedProjectionsForWidget(...args: any[]): any;
|
|
21
|
+
export function relatedRulesForDomain(...args: any[]): any;
|
|
22
|
+
export function relatedRulesForTarget(...args: any[]): any;
|
|
23
|
+
export function relatedShapesForEntity(...args: any[]): any;
|
|
24
|
+
export function relatedShapesForProjection(...args: any[]): any;
|
|
25
|
+
export function relatedShapesForWidget(...args: any[]): any;
|
|
26
|
+
export function relatedVerificationsForDomain(...args: any[]): any;
|
|
27
|
+
export function relatedWidgetsForProjection(...args: any[]): any;
|
|
28
|
+
export function relatedWorkflowDocsForCapability(...args: any[]): any;
|
|
29
|
+
export function requirementById(...args: any[]): any;
|
|
30
|
+
export function summarizeAcceptanceCriterion(...args: any[]): any;
|
|
31
|
+
export function summarizeBug(...args: any[]): any;
|
|
32
|
+
export function summarizeById(...args: any[]): any;
|
|
33
|
+
export function summarizeDocsByIds(...args: any[]): any;
|
|
34
|
+
export function summarizeDocument(...args: any[]): any;
|
|
35
|
+
export function summarizeDomain(...args: any[]): any;
|
|
36
|
+
export function summarizePitch(...args: any[]): any;
|
|
37
|
+
export function summarizeProjection(...args: any[]): any;
|
|
38
|
+
export function summarizeRequirement(...args: any[]): any;
|
|
39
|
+
export function summarizeStatementsByIds(...args: any[]): any;
|
|
40
|
+
export function summarizeTask(...args: any[]): any;
|
|
41
|
+
export function taskById(...args: any[]): any;
|
|
42
|
+
export function verificationIdsForTarget(...args: any[]): any;
|
|
43
|
+
export function widgetById(...args: any[]): any;
|
|
2
44
|
export function buildLocalMaintainedBoundaryArtifact(...args: any[]): any;
|