@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.
@@ -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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md). Renders the Back control
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/initiatives/modular-vue-adoption.md,
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/initiatives/modular-vue-adoption.md, slice 1),
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/initiatives/modular-vue-adoption.md, slice 1): every
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/initiatives/modular-vue-adoption.md, slice 1) — which
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/initiatives/merge-track-record.md.
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/initiatives/modular-vue-slice4-upstream-zones.md). -->
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/initiatives/modular-vue-adoption.md; progress in
4
- // docs/initiatives/modular-vue-slice5-progress.md).
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/initiatives/modular-vue-adoption.md). An agent archetype can declare a
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/initiatives/headless-clarification-loop.md).
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/initiatives/merge-track-record.md.
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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md). It replaces the wizard's hand-rolled
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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md).
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/
@@ -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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md).
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
@@ -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/initiatives/modular-vue-adoption.md):
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/initiatives/modular-vue-adoption.md).
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
@@ -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/initiatives/modular-vue-adoption.md).
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/initiatives/modular-vue-adoption.md) the wizard's
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
@@ -13,6 +13,7 @@ function key(over: Partial<PublicApiKey> = {}): PublicApiKey {
13
13
  scope: 'write',
14
14
  createdByUserId: null,
15
15
  createdByKeyId: null,
16
+ externalIdentity: null,
16
17
  createdAt: 1,
17
18
  lastUsedAt: null,
18
19
  revokedAt: null,
@@ -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/initiatives/modular-vue-adoption.md for the adoption plan.
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.247.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.269.0"
43
+ "@cat-factory/contracts": "0.270.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",