@cat-factory/app 0.234.1 → 0.234.2
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 +8 -8
- package/app/docs/consumer-extensions.md +9 -6
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
The user-facing app, packaged as a **reusable Nuxt 4 layer**: a single-page app
|
|
4
4
|
that runs entirely in the browser and renders the architecture board, drives agent
|
|
5
5
|
pipelines, and reflects live execution. A deployment consumes it via
|
|
6
|
-
`extends: ['@cat-factory/app']` (see [`deploy/frontend`](
|
|
7
|
-
It talks to the [backend Worker](
|
|
6
|
+
`extends: ['@cat-factory/app']` (see [`deploy/frontend`](https://github.com/kibertoad/cat-factory/tree/main/deploy/frontend)).
|
|
7
|
+
It talks to the [backend Worker](https://github.com/kibertoad/cat-factory/blob/main/backend/README.md) over REST and a single
|
|
8
8
|
WebSocket, sharing wire types from
|
|
9
|
-
[`@cat-factory/contracts`](
|
|
9
|
+
[`@cat-factory/contracts`](https://github.com/kibertoad/cat-factory/tree/main/backend/packages/contracts).
|
|
10
10
|
|
|
11
11
|
The SPA source lives under `app/` (the Nuxt srcDir).
|
|
12
12
|
|
|
@@ -364,7 +364,7 @@ is SUPPRESSED rather than unmounted, because it holds the running tour's resolve
|
|
|
364
364
|
remount would re-resolve it against gates that may have flipped since the tour started.
|
|
365
365
|
|
|
366
366
|
The decisions behind this surface, and why each alternative was rejected, are recorded in
|
|
367
|
-
[ADR 0036](
|
|
367
|
+
[ADR 0036](https://github.com/kibertoad/cat-factory/blob/main/backend/docs/adr/0036-in-app-tutorials.md). This section is the authority on how
|
|
368
368
|
the thing WORKS.
|
|
369
369
|
|
|
370
370
|
A tour is **data, not components**: an ordered list of steps, each pointing at an on-screen
|
|
@@ -583,7 +583,7 @@ event left to restore it.
|
|
|
583
583
|
All user-facing SPA copy goes through `@nuxtjs/i18n`; never hard-code a display string. This
|
|
584
584
|
layer ships the base `en` locale, and a downstream deployment overrides by dropping its own files
|
|
585
585
|
(the per-layer deep-merge is the override seam, consumer wins key by key). Migration status:
|
|
586
|
-
[`docs/internal/localization.md`](
|
|
586
|
+
[`docs/internal/localization.md`](https://github.com/kibertoad/cat-factory/blob/main/docs/internal/localization.md).
|
|
587
587
|
|
|
588
588
|
- `i18n/locales/<locale>.json`: the catalogs (the v9+ `i18n/` convention, NOT `app/locales/`).
|
|
589
589
|
- `i18n/i18n.config.ts`: runtime vue-i18n behaviour only (fallback locale, the plural
|
|
@@ -688,7 +688,7 @@ auto-imported
|
|
|
688
688
|
(`ResultWindowShell`, the `StepRunMeta` run-metadata block, `useResultView`, …), and the
|
|
689
689
|
namespacing / degradation rules are in
|
|
690
690
|
[`app/docs/consumer-extensions.md`](./app/docs/consumer-extensions.md); a full worked
|
|
691
|
-
example ships in [`deploy/frontend`](
|
|
691
|
+
example ships in [`deploy/frontend`](https://github.com/kibertoad/cat-factory/tree/main/deploy/frontend) (the `acme:security` module).
|
|
692
692
|
|
|
693
693
|
## Key UI surfaces
|
|
694
694
|
|
|
@@ -795,5 +795,5 @@ pnpm lint # oxlint + oxfmt --check
|
|
|
795
795
|
```
|
|
796
796
|
|
|
797
797
|
> Building/deploying the static site is covered in the deployment docs: see the
|
|
798
|
-
> [top-level README → Deployment](
|
|
799
|
-
> [`deploy/frontend/README.md`](
|
|
798
|
+
> [top-level README → Deployment](https://github.com/kibertoad/cat-factory/blob/main/README.md#deployment) and
|
|
799
|
+
> [`deploy/frontend/README.md`](https://github.com/kibertoad/cat-factory/blob/main/deploy/frontend/README.md).
|
|
@@ -4,19 +4,19 @@ A deployment that consumes this layer (`extends: ['@cat-factory/app']`) can cont
|
|
|
4
4
|
its own **components** (result windows, navigation entries, inspector panels, agent-kind
|
|
5
5
|
palette data) **without forking the layer**. This is the frontend counterpart of the
|
|
6
6
|
backend's public registries (`registerAgentKind`, `registerGate`; see
|
|
7
|
-
[`backend/docs/custom-agents.md`](
|
|
7
|
+
[`backend/docs/custom-agents.md`](https://github.com/kibertoad/cat-factory/blob/main/backend/docs/custom-agents.md)). The governing
|
|
8
8
|
principle is the same: **zero host edits for a consumer extension**.
|
|
9
9
|
|
|
10
10
|
A worked, end-to-end example ships in the template deployment:
|
|
11
|
-
[`deploy/frontend/app/`](
|
|
11
|
+
[`deploy/frontend/app/`](https://github.com/kibertoad/cat-factory/tree/main/deploy/frontend/app) (the `acme:security` module): the
|
|
12
12
|
frontend analogue of the backend
|
|
13
|
-
[`@cat-factory/example-custom-agent`](
|
|
13
|
+
[`@cat-factory/example-custom-agent`](https://github.com/kibertoad/cat-factory/tree/main/backend/internal/example-custom-agent)
|
|
14
14
|
package. Read this guide alongside it.
|
|
15
15
|
|
|
16
16
|
> This is the **landed** surface (modular-vue adoption slices 1–5). The larger consumer
|
|
17
17
|
> extension programme (custom task types, generic interactive phases, overlays, consumer
|
|
18
18
|
> notification kinds, stream events, and the hardened public export surface) is tracked in
|
|
19
|
-
> [`docs/initiatives/frontend-extension-mechanism.md`](
|
|
19
|
+
> [`docs/initiatives/frontend-extension-mechanism.md`](https://github.com/kibertoad/cat-factory/blob/main/docs/initiatives/frontend-extension-mechanism.md).
|
|
20
20
|
|
|
21
21
|
## The one seam: `registerAppModule`
|
|
22
22
|
|
|
@@ -219,8 +219,11 @@ suite can address a row and the caption inside it.
|
|
|
219
219
|
Together, `fields` + `defaultFragmentIds` + `defaultPipelineId` are what turns a task type from a
|
|
220
220
|
badge into a **reusable operation**: a canned unit of work an org runs repeatedly with per-case
|
|
221
221
|
input, whose collected values reach every agent's prompt. See
|
|
222
|
-
[`backend/docs/reusable-operations.md`](
|
|
223
|
-
`org:introduce-api` worked example
|
|
222
|
+
[`backend/docs/reusable-operations.md`](https://github.com/kibertoad/cat-factory/blob/main/backend/docs/reusable-operations.md) and the
|
|
223
|
+
[`org:introduce-api` worked example](https://github.com/kibertoad/cat-factory/tree/main/backend/internal/example-custom-agent).
|
|
224
|
+
Both links are absolute on purpose: this page ships inside the `@cat-factory/app` tarball, so a
|
|
225
|
+
relative path out of it resolves only from a checkout, which is the one place its reader is not.
|
|
226
|
+
(`scripts/check-shipped-doc-links.mjs` fails CI on a shipped doc that grows one.)
|
|
224
227
|
|
|
225
228
|
The **same type can be delivered from the backend** instead of code-shipped: register it on the
|
|
226
229
|
deployment's app-owned `TaskTypeRegistry` and it arrives in the workspace snapshot's
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/app",
|
|
3
|
-
"version": "0.234.
|
|
3
|
+
"version": "0.234.2",
|
|
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.254.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@toad-contracts/testing": "0.3.2",
|