@cat-factory/app 0.247.0 → 0.248.0
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/app/components/environments/EnvironmentSetupWizard.vue +1 -1
- package/app/components/environments/steps/JourneyStepNav.vue +1 -1
- package/app/components/layout/BoardToolbar.vue +1 -1
- package/app/components/layout/CommandBar.vue +1 -1
- package/app/components/layout/SideBar.vue +2 -2
- package/app/components/merge/MergeEffortChips.vue +1 -1
- package/app/components/panels/InspectorPanel.vue +1 -1
- package/app/components/panels/ResultWindowShell.vue +2 -2
- package/app/components/panels/StepResultViewHost.vue +1 -1
- package/app/components/panels/inspector/TaskRunSettings.vue +1 -1
- package/app/components/settings/MergeClassRulesEditor.vue +1 -1
- package/app/modular/agent-kinds.ts +1 -1
- package/app/modular/journeys/environmentSetup.logic.ts +1 -1
- package/app/modular/journeys/environmentSetup.ts +1 -1
- package/app/modular/journeys/persistence.ts +1 -1
- package/app/modular/nav-contributions.ts +1 -1
- package/app/modular/panels/inspector.logic.ts +1 -1
- package/app/modular/registry.ts +1 -1
- package/app/modular/result-views.ts +1 -1
- package/app/modular/slots.ts +1 -1
- package/app/plugins/modular.client.ts +1 -1
- package/app/stores/agents.ts +1 -1
- package/app/stores/environmentWizard.ts +1 -1
- package/app/stores/publicApiKeys.spec.ts +1 -0
- package/app/utils/modular.ts +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
// The environment setup wizard shell (shared-stacks slice 7; converted to a
|
|
3
3
|
// modular-vue journey in slice 3 of the modular-vue adoption —
|
|
4
|
-
// docs/
|
|
4
|
+
// backend/docs/adr/0049-modular-vue-adoption.md).
|
|
5
5
|
//
|
|
6
6
|
// This component is now purely the MODAL + STEPPER CHROME. The step sequence,
|
|
7
7
|
// forward/back navigation, and resume are owned by the `environment-setup`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
// Shared footer chrome for a modular-vue journey step (slice 3 of the modular-vue
|
|
3
|
-
// adoption — docs/
|
|
3
|
+
// adoption — backend/docs/adr/0049-modular-vue-adoption.md). Renders the Back control
|
|
4
4
|
// (wired to the host-provided `goBack`, present only when the current entry
|
|
5
5
|
// declared `allowBack` and there's a prior step) plus a `primary` slot for the
|
|
6
6
|
// step's own advance affordance, so gating stays local to each step.
|
|
@@ -5,7 +5,7 @@ import IconButton from '~/components/common/IconButton.vue'
|
|
|
5
5
|
|
|
6
6
|
const ui = useUiStore()
|
|
7
7
|
const board = useBoardStore()
|
|
8
|
-
// Toolbar contributions from the shared nav manifest (docs/
|
|
8
|
+
// Toolbar contributions from the shared nav manifest (backend/docs/adr/0049-modular-vue-adoption.md,
|
|
9
9
|
// slice 1). First-party contributes none — this is the reactive extension point a consumer
|
|
10
10
|
// deployment uses to add a board-toolbar action via `registerAppModule`, gated + rendered like
|
|
11
11
|
// the sidebar/command entries with zero edits here.
|
|
@@ -26,7 +26,7 @@ const library = useFragmentLibraryStore()
|
|
|
26
26
|
const access = useWorkspaceAccess()
|
|
27
27
|
|
|
28
28
|
// The static destination catalog + its RBAC/availability gating now comes from
|
|
29
|
-
// the shared nav manifest (docs/
|
|
29
|
+
// the shared nav manifest (backend/docs/adr/0049-modular-vue-adoption.md, slice 1),
|
|
30
30
|
// rendered here as command entries. The DYNAMIC per-connection commands below
|
|
31
31
|
// (github/slack/doc/task connect + import) stay local to the palette — they vary
|
|
32
32
|
// per live connection, so they are not part of the static manifest this slice.
|
|
@@ -31,7 +31,7 @@ const providerConnections = useProviderConnectionsStore()
|
|
|
31
31
|
const ui = useUiStore()
|
|
32
32
|
|
|
33
33
|
// The nav catalog + its reactive RBAC/availability gating now lives in the shared
|
|
34
|
-
// modular-vue manifest (docs/
|
|
34
|
+
// modular-vue manifest (backend/docs/adr/0049-modular-vue-adoption.md, slice 1): every
|
|
35
35
|
// destination is declared once in `nav-contributions.ts`, gated by `navSlotFilter`
|
|
36
36
|
// over a reactive `gates` service, and rendered here (and in CommandBar / BoardToolbar)
|
|
37
37
|
// from `useReactiveSlots`. Sections + items appear/disappear reactively as a permission
|
|
@@ -230,7 +230,7 @@ watch(
|
|
|
230
230
|
</button>
|
|
231
231
|
|
|
232
232
|
<!-- Sections + items come from the shared nav manifest, already gated by the
|
|
233
|
-
reactive slotFilter (docs/
|
|
233
|
+
reactive slotFilter (backend/docs/adr/0049-modular-vue-adoption.md, slice 1) — which
|
|
234
234
|
also drops the `advanced` items in basic interface mode. An empty section is
|
|
235
235
|
dropped upstream, so there is no per-section `v-if` here.
|
|
236
236
|
In the rail the section HEADERS go (they'd wrap to nothing at 3.5rem) but the
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
// Tagging is never mandatory: the parent can always act without a selection, and an untagged
|
|
7
7
|
// merge records a null tag. This component only chooses; the parent performs the action.
|
|
8
8
|
//
|
|
9
|
-
// See docs/
|
|
9
|
+
// See backend/docs/adr/0046-merge-track-record.md.
|
|
10
10
|
import { computed } from 'vue'
|
|
11
11
|
import { REVIEW_EFFORTS } from '@cat-factory/contracts'
|
|
12
12
|
import type { ChangeClass, MergeClassRollup, ReviewEffort } from '~/types/merge'
|
|
@@ -524,7 +524,7 @@ const showOriginalDescription = ref(false)
|
|
|
524
524
|
`Block | null` is rejected at compile time. `unknown` is the real
|
|
525
525
|
runtime contract; `as any` is the minimal unblock until the binding
|
|
526
526
|
types the prop explicitly (filed upstream — see the slice-4 residuals
|
|
527
|
-
in docs/
|
|
527
|
+
in backend/docs/adr/0049-modular-vue-adoption.md). -->
|
|
528
528
|
<PanelsOutlet
|
|
529
529
|
:group="inspectorPanels"
|
|
530
530
|
:subject="(block ?? null) as any"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
// Shared modal shell for the agent-run result windows (slice 5 of the modular-vue
|
|
3
|
-
// adoption — docs/
|
|
4
|
-
// docs/
|
|
3
|
+
// adoption — backend/docs/adr/0049-modular-vue-adoption.md; progress in
|
|
4
|
+
// backend/docs/adr/0049-modular-vue-adoption.md).
|
|
5
5
|
//
|
|
6
6
|
// Every result window (the merger verdict, the tester report, the requirements-review
|
|
7
7
|
// loop, the gates, …) used to hand-roll the SAME modal chrome — `<Teleport>`, a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
// Universal dedicated-result-view host (slice 2 of the modular-vue adoption —
|
|
3
|
-
// docs/
|
|
3
|
+
// backend/docs/adr/0049-modular-vue-adoption.md). An agent archetype can declare a
|
|
4
4
|
// `resultView` id (see `~/utils/catalog`); when a step of that kind is opened,
|
|
5
5
|
// `ui.resultView` is set and this host mounts the matching registered window
|
|
6
6
|
// instead of the generic `AgentStepDetail` prose panel.
|
|
@@ -195,7 +195,7 @@ function setResolveOnMerge(value: WritebackOverride | null) {
|
|
|
195
195
|
board.updateBlock(props.block.id, { trackerResolveOnMerge: value })
|
|
196
196
|
}
|
|
197
197
|
// Only consulted for runs started through the public API — a task started here keeps its in-app
|
|
198
|
-
// clarification window regardless (docs/
|
|
198
|
+
// clarification window regardless (backend/docs/adr/0047-headless-clarification-loop.md).
|
|
199
199
|
function setQuestionsOnPark(value: WritebackOverride | null) {
|
|
200
200
|
board.updateBlock(props.block.id, { trackerQuestionsOnPark: value })
|
|
201
201
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
// `unknown` is deliberately not listed: no rule may ever match it (an unclassifiable diff must
|
|
8
8
|
// fall back to the score ceilings), so offering one would be a lie. See
|
|
9
|
-
// docs/
|
|
9
|
+
// backend/docs/adr/0046-merge-track-record.md.
|
|
10
10
|
import { computed } from 'vue'
|
|
11
11
|
import { autoMergeShare, frictionlessShare, RULEABLE_CHANGE_CLASSES } from '@cat-factory/contracts'
|
|
12
12
|
import type { MergeClassRule, MergeClassRules } from '~/types/merge'
|
|
@@ -2,7 +2,7 @@ import type { AgentArchetype, CustomAgentKind } from '~/types/domain'
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Custom agent-kind projection (slice 2 of the modular-vue adoption —
|
|
5
|
-
* docs/
|
|
5
|
+
* backend/docs/adr/0049-modular-vue-adoption.md).
|
|
6
6
|
*
|
|
7
7
|
* A deployment's BACKEND-registered agent kinds arrive in the workspace snapshot as
|
|
8
8
|
* `customAgentKinds` (wire data), folded into the shared per-workspace capability manifest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Pure navigation logic for the environment-setup journey (slice 3 of the
|
|
3
|
-
* modular-vue adoption — docs/
|
|
3
|
+
* modular-vue adoption — backend/docs/adr/0049-modular-vue-adoption.md).
|
|
4
4
|
*
|
|
5
5
|
* The journey owns only the WIZARD NAVIGATION — the ordered steps
|
|
6
6
|
* (pick → review → preflight → save), the forward transitions, and the
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* The environment-setup journey — the slice-3 pilot of the modular-vue adoption
|
|
21
|
-
* (docs/
|
|
21
|
+
* (backend/docs/adr/0049-modular-vue-adoption.md). It replaces the wizard's hand-rolled
|
|
22
22
|
* `STEP_ORDER` + `step` ref + `goToStep` navigation (in `stores/environmentWizard.ts`)
|
|
23
23
|
* with a typed, back/rewind-capable, resumable journey; the per-step data + async
|
|
24
24
|
* actions stay in that Pinia store, driven by the step components below.
|
|
@@ -5,7 +5,7 @@ import { createPiniaJourneyPersistence } from '@modular-vue/journeys'
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Pinia-backed journey persistence (slice 3 of the modular-vue adoption —
|
|
8
|
-
* docs/
|
|
8
|
+
* backend/docs/adr/0049-modular-vue-adoption.md).
|
|
9
9
|
*
|
|
10
10
|
* A journey's `persistence` adapter is what makes `runtime.start()` mean
|
|
11
11
|
* RESUME: it probes `keyFor(input)` for an in-flight serialized instance and
|
|
@@ -10,7 +10,7 @@ export type { AppSlots } from './slots'
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* The single nav/command catalog for the layer (slice 1 of the modular-vue
|
|
13
|
-
* adoption — docs/
|
|
13
|
+
* adoption — backend/docs/adr/0049-modular-vue-adoption.md).
|
|
14
14
|
*
|
|
15
15
|
* Every destination is declared ONCE here as data and rendered three ways —
|
|
16
16
|
* `SideBar`, `CommandBar`, `BoardToolbar` — instead of each shell hand-rolling
|
|
@@ -3,7 +3,7 @@ import type { Block } from '~/types/domain'
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Pure definition of the block-inspector panel group (slice 4 of the modular-vue
|
|
6
|
-
* adoption — docs/
|
|
6
|
+
* adoption — backend/docs/adr/0049-modular-vue-adoption.md).
|
|
7
7
|
*
|
|
8
8
|
* The inspector used to be a 631-line `v-if` fan in `InspectorPanel.vue` that
|
|
9
9
|
* switched its body on the selected block's `level` (frame/module/task/epic/
|
package/app/modular/registry.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { AppSlots } from '~/modular/slots'
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* modular-vue registry for the `@cat-factory/app` layer (slice 0 of the
|
|
11
|
-
* modular-vue adoption — docs/
|
|
11
|
+
* modular-vue adoption — backend/docs/adr/0049-modular-vue-adoption.md).
|
|
12
12
|
*
|
|
13
13
|
* This is the frontend analogue of the backend's public registries
|
|
14
14
|
* (`registerAgentKind`, `registerGate`): a single registry into which the layer
|
|
@@ -25,7 +25,7 @@ import type { ResultViewContribution } from './slots'
|
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* The first-party result-view registry (slice 2 of the modular-vue adoption —
|
|
28
|
-
* docs/
|
|
28
|
+
* backend/docs/adr/0049-modular-vue-adoption.md).
|
|
29
29
|
*
|
|
30
30
|
* Every built-in dedicated result window is contributed as a `ComponentEntry`
|
|
31
31
|
* to the `resultViews` slot instead of living in a hardcoded `Record` in
|
package/app/modular/slots.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type { WorkspaceMetadataFieldDefinition } from './workspace-metadata'
|
|
|
10
10
|
* The layer's aggregated slot map — the single home for every slot key the
|
|
11
11
|
* first-party modules (and consumer deployments) contribute to. Grows one key
|
|
12
12
|
* per converted seam as the modular-vue adoption proceeds
|
|
13
|
-
* (docs/
|
|
13
|
+
* (backend/docs/adr/0049-modular-vue-adoption.md):
|
|
14
14
|
*
|
|
15
15
|
* - `nav` (slice 1) — the nav/command catalog, rendered by the three shells.
|
|
16
16
|
* - `resultViews` (slice 2) — the id → dedicated result-window registry
|
|
@@ -20,7 +20,7 @@ import type { Block, CustomAgentKind, CustomTaskType } from '~/types/domain'
|
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
22
|
* Wire the modular-vue registry into the Nuxt app (slice 0 of the modular-vue
|
|
23
|
-
* adoption — docs/
|
|
23
|
+
* adoption — backend/docs/adr/0049-modular-vue-adoption.md).
|
|
24
24
|
*
|
|
25
25
|
* `enforce: 'post'` is load-bearing for the consumer-contribution seam. Nuxt
|
|
26
26
|
* loads layer plugins before the consuming app's plugins within the same enforce
|
package/app/stores/agents.ts
CHANGED
|
@@ -16,7 +16,7 @@ import type { AgentArchetype, AgentKind, AgentKindVariant, CustomAgentKind } fro
|
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* The agent palette catalog (slice 2 of the modular-vue adoption —
|
|
19
|
-
* docs/
|
|
19
|
+
* backend/docs/adr/0049-modular-vue-adoption.md).
|
|
20
20
|
*
|
|
21
21
|
* Reactive union of three sources, none of which mutates the frozen built-in
|
|
22
22
|
* {@link AGENT_BY_KIND} const any more:
|
|
@@ -33,7 +33,7 @@ import { createSaveActions } from '~/stores/environmentWizard/save'
|
|
|
33
33
|
// compose provider keys purely on the saved recipe (the build-flag rule). Mirrors the other infra
|
|
34
34
|
// stores' idiom; the flow state is a singleton so the wizard's step children share it.
|
|
35
35
|
//
|
|
36
|
-
// Since slice 3 of the modular-vue adoption (docs/
|
|
36
|
+
// Since slice 3 of the modular-vue adoption (backend/docs/adr/0049-modular-vue-adoption.md) the wizard's
|
|
37
37
|
// step NAVIGATION lives in a modular-vue journey (`app/modular/journeys/environmentSetup.ts`), NOT
|
|
38
38
|
// here — this store no longer holds a `step` / `STEP_ORDER` / `goToStep`. It is purely the per-frame
|
|
39
39
|
// data+action layer the journey's step components drive; `beginForFrame` seeds it when a step first
|
package/app/utils/modular.ts
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* ergonomics as the layer's auto-imported stores and composables.
|
|
7
7
|
*
|
|
8
8
|
* See `app/modular/registry.ts` for the seam itself and
|
|
9
|
-
* docs/
|
|
9
|
+
* backend/docs/adr/0049-modular-vue-adoption.md for the adoption plan.
|
|
10
10
|
*/
|
|
11
11
|
export { registerAppModule } from '~/modular/registry'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.248.0",
|
|
4
4
|
"description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"valibot": "^1.4.2",
|
|
41
41
|
"vue": "3.5.40",
|
|
42
42
|
"wretch": "^3.0.9",
|
|
43
|
-
"@cat-factory/contracts": "0.
|
|
43
|
+
"@cat-factory/contracts": "0.270.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@toad-contracts/testing": "0.3.2",
|