@nocobase/app-plugin-foundation 0.1.0-beta.4 → 0.1.0-beta.6

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.
Files changed (132) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +38 -4
  3. package/dist/client/business-modules.d.ts.map +1 -1
  4. package/dist/client/business-modules.js +11 -0
  5. package/dist/client/business-modules.js.map +1 -1
  6. package/dist/client/components/foundation-page.d.ts.map +1 -1
  7. package/dist/client/components/foundation-page.js +39 -58
  8. package/dist/client/components/foundation-page.js.map +1 -1
  9. package/dist/client/components/module-matrix.d.ts.map +1 -1
  10. package/dist/client/components/module-matrix.js +3 -1
  11. package/dist/client/components/module-matrix.js.map +1 -1
  12. package/dist/client/components/ui/skeleton.d.ts +3 -0
  13. package/dist/client/components/ui/skeleton.d.ts.map +1 -0
  14. package/dist/client/components/ui/skeleton.js +7 -0
  15. package/dist/client/components/ui/skeleton.js.map +1 -0
  16. package/dist/client/locales/de-DE.d.ts.map +1 -1
  17. package/dist/client/locales/de-DE.js +23 -10
  18. package/dist/client/locales/de-DE.js.map +1 -1
  19. package/dist/client/locales/en-US.d.ts +13 -0
  20. package/dist/client/locales/en-US.d.ts.map +1 -1
  21. package/dist/client/locales/en-US.js +23 -10
  22. package/dist/client/locales/en-US.js.map +1 -1
  23. package/dist/client/locales/es-ES.d.ts.map +1 -1
  24. package/dist/client/locales/es-ES.js +24 -11
  25. package/dist/client/locales/es-ES.js.map +1 -1
  26. package/dist/client/locales/fr-FR.d.ts.map +1 -1
  27. package/dist/client/locales/fr-FR.js +24 -11
  28. package/dist/client/locales/fr-FR.js.map +1 -1
  29. package/dist/client/locales/id-ID.d.ts.map +1 -1
  30. package/dist/client/locales/id-ID.js +23 -10
  31. package/dist/client/locales/id-ID.js.map +1 -1
  32. package/dist/client/locales/ja-JP.d.ts.map +1 -1
  33. package/dist/client/locales/ja-JP.js +23 -10
  34. package/dist/client/locales/ja-JP.js.map +1 -1
  35. package/dist/client/locales/pt-BR.d.ts.map +1 -1
  36. package/dist/client/locales/pt-BR.js +24 -11
  37. package/dist/client/locales/pt-BR.js.map +1 -1
  38. package/dist/client/locales/vi-VN.d.ts.map +1 -1
  39. package/dist/client/locales/vi-VN.js +23 -10
  40. package/dist/client/locales/vi-VN.js.map +1 -1
  41. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  42. package/dist/client/locales/zh-CN.js +23 -10
  43. package/dist/client/locales/zh-CN.js.map +1 -1
  44. package/dist/client/locales/zh-TW.d.ts.map +1 -1
  45. package/dist/client/locales/zh-TW.js +23 -10
  46. package/dist/client/locales/zh-TW.js.map +1 -1
  47. package/dist/server/api-contracts.d.ts +14 -0
  48. package/dist/server/api-contracts.d.ts.map +1 -0
  49. package/dist/server/api-contracts.js +184 -0
  50. package/dist/server/api-contracts.js.map +1 -0
  51. package/dist/server/api-evidence-schema.d.ts +5 -0
  52. package/dist/server/api-evidence-schema.d.ts.map +1 -0
  53. package/dist/server/api-evidence-schema.js +24 -0
  54. package/dist/server/api-evidence-schema.js.map +1 -0
  55. package/dist/server/api-evidence.d.ts +2 -0
  56. package/dist/server/api-evidence.d.ts.map +1 -1
  57. package/dist/server/api-evidence.js +33 -15
  58. package/dist/server/api-evidence.js.map +1 -1
  59. package/dist/server/capabilities/data.d.ts.map +1 -1
  60. package/dist/server/capabilities/data.js +99 -14
  61. package/dist/server/capabilities/data.js.map +1 -1
  62. package/dist/server/capabilities/intelligence.d.ts.map +1 -1
  63. package/dist/server/capabilities/intelligence.js +86 -20
  64. package/dist/server/capabilities/intelligence.js.map +1 -1
  65. package/dist/server/capabilities/messaging.d.ts.map +1 -1
  66. package/dist/server/capabilities/messaging.js +43 -9
  67. package/dist/server/capabilities/messaging.js.map +1 -1
  68. package/dist/server/capabilities/people.d.ts.map +1 -1
  69. package/dist/server/capabilities/people.js +50 -17
  70. package/dist/server/capabilities/people.js.map +1 -1
  71. package/dist/server/capabilities/platform.d.ts.map +1 -1
  72. package/dist/server/capabilities/platform.js +19 -8
  73. package/dist/server/capabilities/platform.js.map +1 -1
  74. package/dist/server/capabilities/processes.d.ts.map +1 -1
  75. package/dist/server/capabilities/processes.js +58 -25
  76. package/dist/server/capabilities/processes.js.map +1 -1
  77. package/dist/server/capabilities/types.d.ts +2 -0
  78. package/dist/server/capabilities/types.d.ts.map +1 -1
  79. package/dist/server/capabilities/types.js.map +1 -1
  80. package/dist/server/endpoint-chain.d.ts.map +1 -1
  81. package/dist/server/endpoint-chain.js +4 -1
  82. package/dist/server/endpoint-chain.js.map +1 -1
  83. package/dist/server/inventory.d.ts +2 -0
  84. package/dist/server/inventory.d.ts.map +1 -1
  85. package/dist/server/inventory.js +8 -1
  86. package/dist/server/inventory.js.map +1 -1
  87. package/dist/server/module-manifest.d.ts.map +1 -1
  88. package/dist/server/module-manifest.js +2 -0
  89. package/dist/server/module-manifest.js.map +1 -1
  90. package/dist/server/module-source-cache.d.ts +10 -0
  91. package/dist/server/module-source-cache.d.ts.map +1 -0
  92. package/dist/server/module-source-cache.js +100 -0
  93. package/dist/server/module-source-cache.js.map +1 -0
  94. package/dist/server/module-sources.d.ts +5 -1
  95. package/dist/server/module-sources.d.ts.map +1 -1
  96. package/dist/server/module-sources.js +71 -55
  97. package/dist/server/module-sources.js.map +1 -1
  98. package/dist/server/reliable-history.d.ts +8 -0
  99. package/dist/server/reliable-history.d.ts.map +1 -0
  100. package/dist/server/reliable-history.js +93 -0
  101. package/dist/server/reliable-history.js.map +1 -0
  102. package/dist/server/route-evidence.d.ts +27 -0
  103. package/dist/server/route-evidence.d.ts.map +1 -0
  104. package/dist/server/route-evidence.js +478 -0
  105. package/dist/server/route-evidence.js.map +1 -0
  106. package/dist/server/routes/index.js +1 -1
  107. package/dist/server/routes/index.js.map +1 -1
  108. package/dist/server/routes/schemas.d.ts.map +1 -1
  109. package/dist/server/routes/schemas.js +15 -1
  110. package/dist/server/routes/schemas.js.map +1 -1
  111. package/dist/server/services/foundation.d.ts +6 -0
  112. package/dist/server/services/foundation.d.ts.map +1 -1
  113. package/dist/server/services/foundation.js +113 -14
  114. package/dist/server/services/foundation.js.map +1 -1
  115. package/dist/server/source-aliases.d.ts +5 -0
  116. package/dist/server/source-aliases.d.ts.map +1 -0
  117. package/dist/server/source-aliases.js +130 -0
  118. package/dist/server/source-aliases.js.map +1 -0
  119. package/dist/server/source-evidence.d.ts +4 -1
  120. package/dist/server/source-evidence.d.ts.map +1 -1
  121. package/dist/server/source-evidence.js +24 -4
  122. package/dist/server/source-evidence.js.map +1 -1
  123. package/dist/server/static-values.d.ts +1 -0
  124. package/dist/server/static-values.d.ts.map +1 -1
  125. package/dist/server/static-values.js +3 -0
  126. package/dist/server/static-values.js.map +1 -1
  127. package/dist/shared/foundation.d.ts +26 -1
  128. package/dist/shared/foundation.d.ts.map +1 -1
  129. package/dist/shared/foundation.js +6 -0
  130. package/dist/shared/foundation.js.map +1 -1
  131. package/package.json +2 -2
  132. package/skills/nocobase-app-plugin-foundation/SKILL.md +33 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @nocobase/app-plugin-foundation
2
2
 
3
+ ## 0.1.0-beta.6
4
+
5
+ ### Patch Changes
6
+
7
+ - b51bc80: Reuse validated compiled page associations within each application instance while refreshing dynamic evidence normally. Show a lightweight initial collecting placeholder, retain known counts during refresh, and group the Examples Foundation menu with system management.
8
+ - b51bc80: Preserve proven normal-success API dependencies with explicit database and framework middleware conditions in Foundation details and source-free builds. Retain unknown and terminating path barriers, and cover the Examples Articles build and request rejection behavior.
9
+ - b51bc80: Verify resolved import provenance before applying framework success-path contracts, keeping local overrides and unresolved local aliases from creating false capability associations.
10
+ - b51bc80: Keep reliable Foundation observations with their original dates when reads fail, show pending information instead of unsupported negative conclusions, and distinguish partial file statistics from complete totals. Use the top Refresh button for capability updates and retain page retry when the initial overview request fails.
11
+
12
+ ## 0.1.0-beta.5
13
+
14
+ ### Patch Changes
15
+
16
+ - 7085345: Recognize explicitly declared package-local TypeScript path aliases and finite local route constructors when collecting page capability associations. Keep unresolved aliases and unsupported route computation incomplete, preserve package boundaries and source limits, and retain the existing build artifact format.
17
+ - Updated dependencies [756f3df]
18
+ - @nocobase/app-plugin-authentication@2.0.0-beta.14
19
+
3
20
  ## 0.1.0-beta.4
4
21
 
5
22
  ### Patch Changes
package/README.md CHANGED
@@ -32,10 +32,20 @@ The rules every capability follows:
32
32
  - An installed package proves nothing: a capability is in use only when the application is wired to it, such as a lifecycle store, an enabled schedule, a connected mailbox or a configured channel.
33
33
  - Zero uses is not "not used": a lifecycle no record has moved through yet is in use.
34
34
  - Business record totals are counted only on explicit request (`?countRecords=true` or the Count business records button). Ordinary loads and refreshes retain the last successful total with its independent collection time, and never silently replace a failed count with zero. Records are counted only in the application's own Collections. The Collections NocoBase packages keep are listed in `server/catalog.ts`; a package that adds one under a new name must be added there, or its records count as the application's. Views are not counted, so no row is counted twice.
35
- - A capability whose evidence cannot be read has no status rather than a guessed one, and a count that could only be read in part is marked as a lower bound. No driver error reaches the response.
35
+ - A capability whose evidence cannot be read shows “Information pending update”; use the top Refresh button to collect again. Capability details have no separate retry button. If the initial page request fails before any overview is available, the page keeps its Try again button until collection succeeds. Confirmed active configuration survives optional statistics failures; unreadable subparts have a null status rather than a missing-configuration claim. Negative conclusions require successful current reads. No driver error reaches the response.
36
36
  - Accepted notification deliveries are accepted by the provider, which is not the same as received.
37
37
 
38
- AI and agents are in use when a model service is enabled or a Runner is registered. Native OnlineAgent sessions and model gateway calls use model services directly and do not require an `agAgents` record; persisted Agent definitions are optional evidence, not a prerequisite. Enabled services establish configuration before the first call, while old usage records alone do not prove current configuration. Unreadable configuration leaves the status unconfirmed unless another execution path is confirmed active; unknown subparts are omitted and their metrics remain unavailable. Collection and usage reads remain read-only and never call a model provider or expose credentials.
38
+ AI and agents are in use when a model service is enabled or a Runner is registered. Native OnlineAgent sessions and model gateway calls use model services directly and do not require an `agAgents` record; persisted Agent definitions are optional evidence, not a prerequisite. Enabled services establish configuration before the first call, while old usage records alone do not prove current configuration. Unreadable execution paths keep pending subparts, or retain reliable active evidence and metrics with their original dates. A successful zero invalidates that path's earlier active evidence, including during subsequent failures. Without another confirmed or retained active path, the status remains pending. Collection and usage reads remain read-only and never call a model provider or expose credentials.
39
+
40
+ ### Reliable results and file statistics
41
+
42
+ The application service retains previously confirmed active statuses, subpart statuses and complete metrics in memory. A retained observation carries its original `checkedAt`, displayed as “Last confirmed”; the overview's `checkedAt` labels the latest check, not the age of its historical values. Current successful observations replace history, including real zero values. An earlier unused or needs-setup state is never substituted for an unreadable current status. Counts and capacities may retain a reliable historical zero with its original date. Facts are established by the current collector; file Collection facts retain their original date when complete discovery is unavailable. Technical source notes stay in expandable details, without raw errors.
43
+
44
+ Collectors publish completed evidence while their existing reads run. If an optional statistic reaches the collection deadline, an already confirmed mailbox, lifecycle store, permission grant, knowledge document or file table remains visible. Completed file counts remain partial until every candidate and aggregate is known. Expired collectors cannot publish late updates; in-flight queries still hold their original shared read slots until they settle.
45
+
46
+ File discovery completeness and aggregation completeness are independent. If a candidate table definition is unavailable, known file counts, capacities and table counts are partial even when their queries succeed. Without a complete historical result they read “Counted …” with “Some data is pending update”; with no reliable portion the value is unavailable. A previously complete metric is preferred to a new partial statistic and explicitly dated. Fully identified empty tables and a complete catalog containing no file tables report exact zero.
47
+
48
+ History belongs to one application service and its default connection identity. A changed application identity, catalog (including physical table names), provider registration or ownership context, relevant configuration context, or a changed readable definition invalidates history before reuse. Definitions already read by collectors supply this check; it adds no database reads. This is conservative invalidation: unrelated catalog or configuration changes may discard other retained observations as well. Unavailable definitions do not establish a change. All history disappears on process restart and is independent across server processes; there is no persistent cache, background refresh, migration or automatic retry. Existing authentication and unrestricted authorization checks precede every response, and the browser hides cached internals after `401` or `403`.
39
49
 
40
50
  ## What it does not do yet
41
51
 
@@ -100,18 +110,42 @@ The data-modeling overview returns at most five Collection names plus the full c
100
110
 
101
111
  Known catalog totals remain visible when schema inspection or explicit row counting exceeds its deadline; unavailable fields are not reported as zero. Row counts are retained in the service process, invalidated when the catalog table names change, and require a new explicit count after a process restart. The overview still inspects the default connection catalog and supported schema definitions; it is not constant-time in the number of Collections. Matrix icon headers provide localized tooltips on hover and keyboard focus, including inactive capabilities.
102
112
 
103
- Each Collection definition is inspected independently. A missing definition (including a Collection removed after the catalog was listed) or a failed definition read makes the data-modeling result partial while retaining confirmed table/view totals and the catalog preview. Field and relation totals include only readable definitions and carry `complete: false`; when none can be read, both values are `null`. A present empty definition still reports an exact zero. Refresh retries definition reads, and schema failures retain the last successful business record count and its original collection time. Responses contain only sanitized source issue codes, never driver errors or connection details.
113
+ Each Collection definition is inspected independently. A missing definition (including a Collection removed after the catalog was listed) or a failed definition read makes the data-modeling result partial while retaining confirmed table/view totals and the catalog preview. Without retained complete metrics, field and relation totals include only readable definitions and carry `complete: false`; when none can be read, both values are `null`. Previously complete metrics keep their original dates. A present empty definition still reports an exact zero. Refresh retries definition reads, and schema failures retain the last successful business record count and its original collection time. Responses contain only sanitized source issue codes, never driver errors or connection details.
104
114
 
105
115
  Static module discovery uses the same conventional entry resolution for applications and registered plugins in source and published packages: `client/routes`, `server/routes/index` or `server/routes`, and `server/providers/index`, `server/providers` or `server/service-provider`, with a `dist/` fallback for each entry. Source entries take precedence in a checkout. Compiled local service dependencies still contribute only through a matched endpoint and selected service method. A recognized page request whose backend entry or local dependencies cannot be read marks its route and aggregate analysis incomplete; a page without backend requests does not require a backend entry. The existing package realpath and scan limits apply to both layouts.
106
116
 
107
117
  Collection evidence uses at most five compact name tags and the total count on the overview. The full catalog opens in a temporary dialog with a bounded scrolling body and fixed pagination controls; opening it does not expand the capability card. Search is debounced by 250 ms and waits for IME composition to finish; Enter applies it immediately. Collection titles and logical names are listed without opening a schema inspector. Closing returns focus to its trigger. Loading, empty search, recoverable failure and denied-access states remain inside the dialog.
108
118
 
119
+ ## Static association reuse and waiting feedback
120
+
121
+ Each application service retains at most one compiled association result for 60 seconds. Every new collection validates the files read and the directories used for resolution, including missing alternatives and inherited local alias declarations; changes to application identity, plugin registrations, versions, roots, files or build manifests discard the result. Unreadable evidence is retried on the next collection, without automatic retry requests. TypeScript/TSX source checkouts continue parsing on collection. Entries are bounded to 4,096 filesystem paths, one MB each of path text, registration identity and serialized result; no source text or AST is retained. Oversized or unstable snapshots are not cached. Files beyond the existing parser size limit stay unknown; their metadata remains validated so a smaller replacement is analyzed. Each cache hit costs one metadata check per tracked path; the normal 30-second overview cache needs no additional check. Restarting the service discards this independent in-memory entry.
122
+
123
+ This reuse affects static dependencies only. Dynamic statistics, reliable history, observation dates, read limits, timeouts and unrestricted authorization keep their existing behavior. There are no additional business queries, writes, warm-up jobs or refresh requests. Cold analysis still takes time. The initial page shows an accessible collecting placeholder with no invented counts; Refresh keeps existing content and dates until the next result, and confirmed counts do not animate from zero again.
124
+
109
125
  ### Overlapping API routes
110
126
 
111
127
  API associations follow proven Hono registration order, including fluent calls, local registration helpers, ordered API exports and nested mount snapshots. Each matching handler contributes separately. A handler that does not use its `next` parameter ends the chain; a direct unconditional `next()` or `await next()` allows the next matching handler to contribute. Method-specific routes, `all` and `use` middleware retain their chain boundaries. Reached handlers still supply static integration references, including conditional work inside them; these references do not claim that every dependency executes on every request.
112
128
 
113
129
  Conditional forwarding, opaque middleware factories, uncertain registration paths or order, and request paths that cannot distinguish fixed siblings remain conservative. Keep the proven prefix and other page, access and request evidence, omit downstream contributions whose reachability is unproven, and mark the analysis incomplete. Blank matrix cells remain “not identified”. This is bounded package-local analysis, not a general control-flow interpreter; it never executes application business code.
114
130
 
115
- To apply a correction to an existing deployment, update the consuming application's Foundation dependency, rebuild the application to regenerate `dist/server/foundation-modules.json`, and deploy that build. The artifact format remains compatible and can be read without business source files. Refreshing an old artifact alone cannot apply the correction; do not hand-edit it.
131
+ To apply a correction to an existing deployment, update the consuming application's Foundation dependency, rebuild the application to regenerate `dist/server/foundation-modules.json`, and deploy that build. The updated runtime reads earlier version-1 artifacts and can read the rebuilt evidence without business source files. Update the runtime and CLI together before rebuilding. Refreshing an old artifact alone cannot apply the correction; do not hand-edit it.
116
132
 
117
133
  Registration tracing stops at direct returns and loop exits. A possible exit in unsupported control flow makes later registrations uncertain, instead of treating the remaining statements or loop iterations as unconditional. Class definitions do not execute instance fields or methods; static initializers remain module initialization, and recognized instance construction stays conservative. Only terminal wildcards establish a certain wildcard match. A fixed suffix can disprove a nonterminal wildcard match; other suffix patterns remain incomplete and cannot contribute certain associations.
134
+
135
+ ### Proven normal-success API paths
136
+
137
+ The matrix also includes dependencies proven on a normal successful request. This is a limited contract-based analysis: an inline `defineApiRoutes` callback may have one `!app.container.has(databaseManagerToken)` early return followed by a final return of the same router/child mount and literal prefix. Only the database-available side contributes this evidence, with its condition retained. Here availability means the database manager token is registered, not that a connectivity probe succeeded. Before the guard, only local router construction and the framework error adapter are supported. Arbitrary setup, conditions and additional exits remain uncertain. A service constructor alone never establishes a dependency; the matched handler must reference its database work.
138
+
139
+ Named value imports identify the supported framework middleware only when the existing resolver confirms an external import. A resolved local override or a matching local alias declaration whose target cannot be confirmed never inherits the external framework contract; ordinary local analysis and unknown-path barriers still apply. This provenance check also covers router factories, constructors, error adapters and service tokens. The supported middleware are: authentication resolved from `authenticationToken` with `required()` and no custom options, `bodyLimit`, `describeRoute`, and two-argument `apiValidator` with a literal supported target. The normal-success conditions are database availability, accepted authentication, an accepted body size and successful input validation. Rejection callbacks do not supply downstream success dependencies. Unknown middleware, earlier terminating handlers, dead registrations and method/path mismatches remain barriers. `defineRootRoutes` contributions belong outside `/api`; unknown contribution factories are still barriers.
140
+
141
+ `moduleSources.routes[].apiEvidence` records the request method and matched API route pattern, providers and symbolic condition sources. An empty condition list distinguishes a proven unconditional prefix; conditional references still appear in `apiProviders` and are explained as successful API requests in the matrix details. These are integration references, not execution counts or a promise that rejected requests access the database. The API schema and version-1 build artifact both carry this additive metadata; older artifacts without it remain readable. Rebuild the application with the updated plugin to preserve conditions in source-free deployments. Static cache validation, dynamic collection, timestamps and unrestricted access keep their existing behavior; no new queries, requests or background work are added.
142
+
143
+ ### Declared local aliases and finite route constructors
144
+
145
+ Static discovery reads package-local `tsconfig.json` JSONC `compilerOptions.paths`, including exact keys and single-wildcard keys with one target, relative to the declaring configuration when no explicit `baseUrl` is inherited or declared. A parent configuration without `baseUrl` does not change the directory for a child configuration’s own paths. Relative package-local configuration inheritance is limited to eight files; each configuration is limited to 512 KB. Explicit mappings in a configuration with an external preset are usable, but external presets are never loaded and their inherited mappings are unavailable. Package imports (`#...`) and relative imports retain their existing behavior. Each application and registered plugin uses its own configuration; `@/` is never implicitly mapped to `client`, and ordinary npm scopes remain external packages. Vite configurations and configuration plugins are never executed or inferred.
146
+
147
+ Missing, duplicate, conflicting, multi-target, cyclic, unsupported or escaping declarations remain unresolved. An unresolved `@/` or declared local alias marks referenced page analysis incomplete rather than becoming a provider. Mappings cannot traverse `node_modules` or escape the owning package through relative paths or symlinks. Supported mappings have at most 128 keys and one wildcard per key/target; source reads retain the 400-file and 512 KB-per-file limits. Backend declarations are read before lazy page graphs share the remaining source budget, so a large page graph cannot consume the entire budget before backend discovery begins.
148
+
149
+ Local route constructors may return literal objects or arrays through object parameters, destructuring/defaults, loader aliases, literal template names, nested children and finite literal `map`/`find` operations or `Object.entries` tabs. Invocation bindings keep names and loaders paired across calls and files. Only direct returns and side-effect-free constant declarations are accepted in block bodies. Child route arrays and objects may be referenced through local constants, parameters and properties; unknown child routes or returned values mark aggregate discovery incomplete while preserving proven routes. Explicitly unknown arguments never fall back to omitted-argument defaults. Unknown conditions, opaque calls, computed properties, getters, asynchronous/generator constructors, spreads, mutation, loops, recursion and larger computations retain independent proven routes and mark aggregate discovery incomplete. Constructors and component loaders are never invoked. Evaluation has a 32-level/value bound and a 100,000-visit budget per declaration file. This remains a static integration inventory; unsupported DomainConfig/service wiring and source limits can leave cells unidentified even when route names are recovered.
150
+
151
+ Rebuild the consuming application after updating the plugin to regenerate `dist/server/foundation-modules.json`. Its format is unchanged, repeated generation preserves bytes and modification time, and a source-free deployment can read the validated artifact. Refreshing an old artifact alone does not apply the correction.
@@ -1 +1 @@
1
- {"version":3,"file":"business-modules.d.ts","sourceRoot":"","sources":["../../client/business-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EACV,wBAAwB,EAExB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,yBAAyB,CAAC;AAIjC,iHAAiH;AACjH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,wBAAwB,EAAE,EAC3C,SAAS,EAAE,2BAA2B,GAAG,SAAS,EAClD,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,SAAS,wBAAwB,EAAE,CA2FrC"}
1
+ {"version":3,"file":"business-modules.d.ts","sourceRoot":"","sources":["../../client/business-modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EACV,wBAAwB,EAExB,uBAAuB,EACvB,2BAA2B,EAE5B,MAAM,yBAAyB,CAAC;AAIjC,iHAAiH;AACjH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,wBAAwB,EAAE,EAC3C,SAAS,EAAE,2BAA2B,GAAG,SAAS,EAClD,OAAO,EAAE,uBAAuB,GAAG,SAAS,EAC5C,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,SAAS,wBAAwB,EAAE,CA4GrC"}
@@ -25,6 +25,7 @@ export function businessModules(routes, inventory, sources, capabilities) {
25
25
  const link = links.get(key) ?? {
26
26
  evidence: new Set(),
27
27
  providers: new Set(),
28
+ apiEvidence: [],
28
29
  };
29
30
  link.evidence.add(evidence);
30
31
  if (provider)
@@ -62,6 +63,15 @@ export function businessModules(routes, inventory, sources, capabilities) {
62
63
  provider(name, 'source');
63
64
  for (const name of source?.apiProviders ?? [])
64
65
  provider(name, 'apiSource');
66
+ for (const link of links.values())
67
+ for (const evidence of source?.apiEvidence ?? []) {
68
+ const names = evidence.providers.filter((name) => link.providers.has(name));
69
+ if (!names.length)
70
+ continue;
71
+ const item = { ...evidence, providers: names };
72
+ if (!link.apiEvidence.some((entry) => JSON.stringify(entry) === JSON.stringify(item)))
73
+ link.apiEvidence.push(item);
74
+ }
65
75
  for (const name of source?.collections ?? [])
66
76
  collections.add(name);
67
77
  }
@@ -74,6 +84,7 @@ export function businessModules(routes, inventory, sources, capabilities) {
74
84
  capability,
75
85
  evidence: [...link.evidence],
76
86
  providers: [...link.providers].sort(),
87
+ ...(link.apiEvidence.length ? { apiEvidence: link.apiEvidence } : {}),
77
88
  ...(capability === 'dataModeling' && collections.size
78
89
  ? { collections: [...collections].sort() }
79
90
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"business-modules.js","sourceRoot":"","sources":["../../client/business-modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"business-modules.js","sourceRoot":"","sources":["../../client/business-modules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"foundation-page.d.ts","sourceRoot":"","sources":["../../../client/components/foundation-page.tsx"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAEf,OAAO,EAKL,KAAK,kBAAkB,EAGxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoDzD,wBAAgB,cAAc,IAAI,YAAY,CA4D7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,kHAAkH;AAClH,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EAAE,cAAc,EACxB,UAAkB,EAClB,SAAS,EACT,cAAc,EACd,eAAoB,EACpB,gBAAqB,GACtB,EAAE,2BAA2B,GAAG,YAAY,CA2M5C;AAwgBD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"foundation-page.d.ts","sourceRoot":"","sources":["../../../client/components/foundation-page.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAKL,KAAK,kBAAkB,EAGxB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAezD,wBAAgB,cAAc,IAAI,YAAY,CA8E7C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CACnE;AAED,kHAAkH;AAClH,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EAAE,cAAc,EACxB,UAAkB,EAClB,SAAS,EACT,cAAc,EACd,eAAoB,EACpB,gBAAqB,GACtB,EAAE,2BAA2B,GAAG,YAAY,CAuM5C;AAyjBD,eAAe,cAAc,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useClientApplication } from '@nocobase/app-client';
3
3
  import { cn } from 'cn';
4
- import { Layers, Package, Plug, RefreshCw, TriangleAlert } from 'lucide-react';
5
- import { useCallback, useEffect, useMemo, useState, } from 'react';
4
+ import { Layers, Package, Plug, RefreshCw } from 'lucide-react';
5
+ import { useCallback, useMemo, useState } from 'react';
6
6
  import { FOUNDATION_HIGHLIGHTS, } from '../../shared/foundation.js';
7
7
  import { withAvailableCapabilities } from '../../shared/available-capabilities.js';
8
8
  import { businessModules } from '../business-modules.js';
9
9
  import { Button } from './ui/button.js';
10
+ import { Skeleton } from './ui/skeleton.js';
10
11
  import { ModuleMatrix } from './module-matrix.js';
11
12
  import { CollectionsBrowser } from './collections-browser.js';
12
13
  import { useFoundationTranslation } from './foundation-translation.js';
@@ -14,44 +15,11 @@ import { useFoundationOverview } from '../api.js';
14
15
  import { clientProviderNames, withClientProviders, } from '../provider-inventory.js';
15
16
  import { CAPABILITY_ICONS } from './capability-icons.js';
16
17
  import { formatFactParams, formatMetricValue, formatTime } from './format.js';
17
- /** How long each capability takes to light up. */
18
- const LIGHT_STEP_MS = 140;
19
- function prefersReducedMotion() {
20
- return (typeof window !== 'undefined' &&
21
- typeof window.matchMedia === 'function' &&
22
- window.matchMedia('(prefers-reduced-motion: reduce)').matches);
23
- }
24
- /**
25
- * Lights the active capabilities one after another when an overview arrives. With reduced motion everything is lit
26
- * at once.
27
- */
28
- function useLighting(activeCount, runKey) {
29
- const reduced = prefersReducedMotion();
30
- const [state, setState] = useState({ runKey, step: 0 });
31
- // A new result lights up from the start again: adjusting state while rendering, as React recommends over an effect.
32
- if (state.runKey !== runKey)
33
- setState({ runKey, step: 0 });
34
- useEffect(() => {
35
- if (reduced || activeCount === 0)
36
- return undefined;
37
- let step = 0;
38
- const timer = setInterval(() => {
39
- step += 1;
40
- setState((current) => ({ ...current, step }));
41
- if (step >= activeCount)
42
- clearInterval(timer);
43
- }, LIGHT_STEP_MS);
44
- return () => clearInterval(timer);
45
- }, [activeCount, runKey, reduced]);
46
- return {
47
- lit: reduced ? activeCount : Math.min(state.step, activeCount),
48
- };
49
- }
50
18
  export function FoundationPage() {
51
19
  const { t } = useFoundationTranslation();
52
20
  const app = useClientApplication();
53
21
  const { overview, error, loading, refresh, countRecords } = useFoundationOverview();
54
- return (_jsxs("div", { className: 'mx-auto flex w-full max-w-7xl flex-col gap-4 p-4 md:p-6', children: [_jsxs("header", { className: 'flex flex-col gap-1', children: [_jsx("h1", { className: 'font-heading text-2xl font-semibold', children: t('page.title') }), _jsx("p", { className: 'max-w-3xl text-sm text-muted-foreground', children: t('page.description') })] }), overview && error !== 'forbidden' ? (_jsxs(_Fragment, { children: [error === 'failed' ? (_jsx("p", { role: 'alert', className: 'rounded-lg border border-amber-500/30 bg-amber-500/5 px-4 py-3 text-sm text-foreground', children: t('page.refreshFailed') })) : null, _jsx(FoundationOverviewView, { overview: overview, clientProviders: clientProviderNames(app), registeredRoutes: app.runtime.routes, refreshing: loading, onRefresh: refresh, onCountRecords: countRecords })] })) : error ? (_jsxs("div", { role: 'alert', className: 'flex flex-col items-start gap-3 rounded-lg border bg-card p-6 text-sm', children: [_jsx("p", { children: t(error === 'forbidden' ? 'page.forbidden' : 'page.loadFailed') }), error === 'failed' ? (_jsx("button", { type: 'button', onClick: refresh, className: 'rounded-md border border-input px-3 py-1.5 hover:bg-hover', children: t('page.retry') })) : null] })) : (_jsx("p", { className: 'rounded-lg border bg-card p-6 text-sm text-muted-foreground', children: t('page.loading') }))] }));
22
+ return (_jsxs("div", { className: 'mx-auto flex w-full max-w-7xl flex-col gap-4 p-4 md:p-6', children: [_jsxs("header", { className: 'flex flex-col gap-1', children: [_jsx("h1", { className: 'font-heading text-2xl font-semibold', children: t('page.title') }), _jsx("p", { className: 'max-w-3xl text-sm text-muted-foreground', children: t('page.description') })] }), overview && error !== 'forbidden' ? (_jsxs(_Fragment, { children: [error === 'failed' ? (_jsx("p", { role: 'alert', className: 'rounded-lg border px-4 py-3 text-sm text-muted-foreground', children: t('page.refreshFailed') })) : null, _jsx(FoundationOverviewView, { overview: overview, clientProviders: clientProviderNames(app), registeredRoutes: app.runtime.routes, refreshing: loading, onRefresh: refresh, onCountRecords: countRecords })] })) : error ? (_jsxs("div", { role: 'alert', className: 'flex flex-col items-start gap-3 rounded-lg border bg-card p-6 text-sm', children: [_jsx("p", { children: t(error === 'forbidden' ? 'page.forbidden' : 'page.loadFailed') }), error === 'failed' ? (_jsx("button", { type: 'button', onClick: refresh, className: 'rounded-md border border-input px-3 py-1.5 hover:bg-hover', children: t('page.retry') })) : null] })) : (_jsxs("section", { "aria-busy": 'true', "aria-label": t('page.loading'), className: 'flex flex-col gap-4 rounded-lg border bg-card p-6', children: [_jsx("p", { role: 'status', className: 'text-sm text-muted-foreground', children: t('page.loading') }), _jsxs("div", { "aria-hidden": 'true', className: 'flex flex-col gap-4', children: [_jsx(Skeleton, { className: 'h-8 w-48 motion-reduce:animate-none' }), _jsx(Skeleton, { className: 'h-24 w-full motion-reduce:animate-none' }), _jsx("div", { className: 'grid grid-cols-2 gap-4 md:grid-cols-4', children: Array.from({ length: 4 }, (_, index) => (_jsx(Skeleton, { className: 'h-16 motion-reduce:animate-none' }, index))) })] })] }))] }));
55
23
  }
56
24
  /** The band, the key numbers and the selected capability's details, for a page that loads the overview itself. */
57
25
  export function FoundationOverviewView({ overview: serverOverview, refreshing = false, onRefresh, onCountRecords, clientProviders = [], registeredRoutes = [], }) {
@@ -66,7 +34,7 @@ export function FoundationOverviewView({ overview: serverOverview, refreshing =
66
34
  };
67
35
  }, [serverOverview, clientProviders]);
68
36
  const active = useMemo(() => overview.capabilities.filter((entry) => entry.status === 'active'), [overview]);
69
- const { lit } = useLighting(active.length, overview.checkedAt);
37
+ const lit = active.length;
70
38
  const [selected, setSelected] = useState(() => active[0]?.key ?? overview.capabilities[0]?.key ?? 'dataModeling');
71
39
  const counts = useMemo(() => countStatuses(overview), [overview]);
72
40
  const modules = useMemo(() => businessModules(registeredRoutes, overview.inventory, overview.moduleSources, overview.capabilities.map((entry) => entry.key)), [registeredRoutes, overview]);
@@ -89,7 +57,7 @@ export function FoundationOverviewView({ overview: serverOverview, refreshing =
89
57
  active: Math.min(lit, active.length),
90
58
  total: overview.capabilities.length,
91
59
  }) }), _jsx("p", { className: 'text-sm text-muted-foreground', children: t('page.scoreCaption') })] }), _jsx("div", { className: 'flex gap-2', children: onRefresh ? (_jsxs("button", { type: 'button', onClick: onRefresh, disabled: refreshing, className: 'inline-flex items-center gap-1.5 rounded-md border border-input bg-background px-2.5 py-1.5 text-sm hover:bg-hover disabled:opacity-60', children: [_jsx(RefreshCw, { className: cn('size-3.5', refreshing && 'motion-safe:animate-spin'), "aria-hidden": true }), t(refreshing ? 'page.refreshing' : 'page.refresh')] })) : null })] })] }), _jsx(CapabilityBand, { capabilities: overview.capabilities, active: active, lit: lit, selected: selected, onSelect: select, focusKeys: focusKeys }), modules.length ? (_jsxs("div", { "aria-label": t('matrix.modules'), className: 'flex flex-wrap items-center gap-2 border-t px-4 py-3 md:px-5', children: [_jsx("span", { className: 'mr-1 text-xs text-muted-foreground', children: t('matrix.modules') }), modules.map((module) => (_jsxs(Button, { variant: 'outline', size: 'xs', "aria-pressed": module.id === focusedModule, className: cn('h-7! rounded-full! border-border bg-card px-3 text-sm font-normal shadow-none', module.id === focusedModule &&
92
- 'border-primary/40 bg-primary/10 text-primary'), onMouseEnter: () => setFocusedModule(module.id), onMouseLeave: () => setFocusedModule(null), onFocus: () => setFocusedModule(module.id), onBlur: () => setFocusedModule(null), onClick: () => setFocusedModule(module.id), children: [text(module.title), ' ', _jsx("span", { className: 'tabular-nums text-muted-foreground', children: module.links.length })] }, module.id)))] })) : null, _jsxs("div", { className: 'flex flex-wrap items-center justify-between gap-x-6 gap-y-2 border-t px-4 py-3 text-xs text-muted-foreground md:px-5', children: [_jsxs("ul", { className: 'flex flex-wrap gap-x-4 gap-y-1', children: [_jsx(LegendItem, { status: 'active', label: t('status.legendActive', { count: counts.active }) }), _jsx(LegendItem, { status: 'needsSetup', label: t('status.legendNeedsSetup', { count: counts.needsSetup }) }), _jsx(LegendItem, { status: 'unused', label: t('status.legendUnused', { count: counts.unused }) }), counts.undetermined > 0 ? (_jsxs("li", { className: 'flex items-center gap-1.5 text-foreground', children: [_jsx(TriangleAlert, { className: 'size-3.5 text-destructive', "aria-hidden": true }), t('page.undetermined', { count: counts.undetermined })] })) : null] }), _jsx("span", { children: t('page.updatedAt', {
60
+ 'border-primary/40 bg-primary/10 text-primary'), onMouseEnter: () => setFocusedModule(module.id), onMouseLeave: () => setFocusedModule(null), onFocus: () => setFocusedModule(module.id), onBlur: () => setFocusedModule(null), onClick: () => setFocusedModule(module.id), children: [text(module.title), ' ', _jsx("span", { className: 'tabular-nums text-muted-foreground', children: module.links.length })] }, module.id)))] })) : null, _jsxs("div", { className: 'flex flex-wrap items-center justify-between gap-x-6 gap-y-2 border-t px-4 py-3 text-xs text-muted-foreground md:px-5', children: [_jsxs("ul", { className: 'flex flex-wrap gap-x-4 gap-y-1', children: [_jsx(LegendItem, { status: 'active', label: t('status.legendActive', { count: counts.active }) }), _jsx(LegendItem, { status: 'needsSetup', label: t('status.legendNeedsSetup', { count: counts.needsSetup }) }), _jsx(LegendItem, { status: 'unused', label: t('status.legendUnused', { count: counts.unused }) }), counts.undetermined > 0 ? (_jsx("li", { className: 'flex items-center gap-1.5 text-muted-foreground', children: t('page.undetermined', { count: counts.undetermined }) })) : null] }), _jsx("span", { children: t('page.updatedAt', {
93
61
  time: formatTime(overview.checkedAt, locale),
94
62
  }) })] })] }), _jsx(Highlights, { overview: overview, onSelect: select }), selectedCapability ? (_jsx(CapabilityDetail, { capability: selectedCapability, inventory: overview.inventory, counting: refreshing, onCountRecords: onCountRecords, recordCountCheckedAt: overview.recordCountCheckedAt, modules: modules.filter((module) => module.links.some((link) => link.capability === selectedCapability.key)) })) : null, _jsx(ModuleMatrix, { modules: modules, capabilities: overview.capabilities, onSelect: setSelected, onFocusModule: setFocusedModule })] }));
95
63
  }
@@ -103,7 +71,7 @@ function LegendItem({ status, label, }) {
103
71
  return (_jsxs("li", { className: 'flex items-center gap-1.5', children: [_jsx("span", { "aria-hidden": true, className: cn('size-3 rounded-full border', status === 'active' && 'border-primary/40 bg-primary/15', status === 'needsSetup' && 'border-amber-500/50 bg-amber-500/15', status === 'unused' && 'border-border bg-background') }), label] }));
104
72
  }
105
73
  function CapabilityBand({ capabilities, active, lit, selected, onSelect, focusKeys, }) {
106
- const { t, text } = useFoundationTranslation();
74
+ const { t, text, locale } = useFoundationTranslation();
107
75
  const lighting = lit < active.length ? active[lit - 1]?.key : undefined;
108
76
  return (_jsx("ul", { className: 'grid grid-cols-3 border-t sm:grid-cols-5 lg:grid-cols-[repeat(auto-fit,minmax(88px,1fr))]', children: capabilities.map((capability) => {
109
77
  const Icon = CAPABILITY_ICONS[capability.key] ?? Plug;
@@ -127,13 +95,15 @@ function CapabilityBand({ capabilities, active, lit, selected, onSelect, focusKe
127
95
  const status = t(capability.reason === 'unrecognizedExtension'
128
96
  ? 'dynamic.pending'
129
97
  : `status.${capability.status ?? 'undetermined'}`);
130
- return (_jsx("li", { className: cn('-mb-px -mr-px border-b border-r transition-opacity', focusKeys && !focusKeys.has(capability.key) && 'opacity-25'), children: _jsxs("button", { type: 'button', onClick: () => onSelect(capability.key), "aria-pressed": capability.key === selected, "aria-label": `${name}: ${status}`, title: status, "data-status": capability.status ?? 'undetermined', className: cn('relative flex h-full min-h-20 w-full flex-col items-center justify-center gap-1.5 px-1 py-3 text-center text-xs transition-colors duration-300 motion-reduce:transition-none focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:text-sm', look === 'lighting' && 'bg-primary text-primary-foreground', look === 'lit' &&
98
+ const statusLabel = capability.checkedAt
99
+ ? `${status} · ${t('detail.retainedAt', { time: formatTime(capability.checkedAt, locale) })}`
100
+ : status;
101
+ return (_jsx("li", { className: cn('-mb-px -mr-px border-b border-r transition-opacity', focusKeys && !focusKeys.has(capability.key) && 'opacity-25'), children: _jsxs("button", { type: 'button', onClick: () => onSelect(capability.key), "aria-pressed": capability.key === selected, "aria-label": `${name}: ${statusLabel}`, title: statusLabel, "data-status": capability.status ?? 'undetermined', className: cn('relative flex h-full min-h-20 w-full flex-col items-center justify-center gap-1.5 px-1 py-3 text-center text-xs transition-colors duration-300 motion-reduce:transition-none focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset sm:text-sm', look === 'lighting' && 'bg-primary text-primary-foreground', look === 'lit' &&
131
102
  'bg-primary/10 text-primary hover:bg-primary/15', look === 'needsSetup' &&
132
103
  'bg-amber-500/10 text-amber-700 hover:bg-amber-500/15 dark:text-amber-400', look === 'off' &&
133
104
  'bg-card text-muted-foreground hover:bg-hover', look === 'undetermined' &&
134
- 'bg-card text-muted-foreground outline-1 -outline-offset-4 outline-dashed outline-destructive/40 hover:bg-hover', capability.key === selected &&
135
- 'z-10 ring-2 ring-inset ring-primary'), children: [_jsx(Icon, { className: 'size-5', "aria-hidden": true }), _jsx("span", { className: 'max-w-full break-words leading-tight', children: name }), capability.status === null &&
136
- capability.reason !== 'unrecognizedExtension' ? (_jsx(TriangleAlert, { className: 'absolute right-1.5 top-1.5 size-3.5 text-destructive', "aria-hidden": true })) : null] }) }, capability.key));
105
+ 'bg-card text-muted-foreground hover:bg-hover', capability.key === selected &&
106
+ 'z-10 ring-2 ring-inset ring-primary'), children: [_jsx(Icon, { className: 'size-5', "aria-hidden": true }), _jsx("span", { className: 'max-w-full break-words leading-tight', children: name }), capability.checkedAt ? (_jsx(RetainedAt, { at: capability.checkedAt, inheritColor: highlighted })) : null] }) }, capability.key));
137
107
  }) }));
138
108
  }
139
109
  function Highlights({ overview, onSelect, }) {
@@ -154,16 +124,17 @@ function Highlights({ overview, onSelect, }) {
154
124
  : t('page.unavailable')
155
125
  : metric && !metric.complete
156
126
  ? `≥ ${value}`
157
- : value }), _jsx("span", { className: 'text-sm text-muted-foreground', children: t(`metrics.${metricKey}`) }), _jsx("span", { className: 'text-sm text-primary', children: t(`capabilities.${key}.name`) })] }) }, `${key}.${metricKey}`));
127
+ : value }), _jsx("span", { className: 'text-sm text-muted-foreground', children: t(`metrics.${metricKey}`) }), _jsx("span", { className: 'text-sm text-primary', children: t(`capabilities.${key}.name`) }), metric?.checkedAt ? (_jsx(RetainedAt, { at: metric.checkedAt })) : null] }) }, `${key}.${metricKey}`));
158
128
  }) }) }));
159
129
  }
130
+ function RetainedAt({ at, inheritColor = false, }) {
131
+ const { t, locale } = useFoundationTranslation();
132
+ return (_jsx("span", { className: cn('block text-xs font-normal', inheritColor ? 'text-current opacity-80' : 'text-muted-foreground'), children: t('detail.retainedAt', { time: formatTime(at, locale) }) }));
133
+ }
160
134
  function StatusBadge({ status, pending = false, }) {
161
135
  const { t } = useFoundationTranslation();
162
136
  return (_jsx("span", { className: cn('rounded-md border px-1.5 py-0.5 text-xs font-medium', status === 'active' && 'border-primary/30 bg-primary/10 text-primary', status === 'needsSetup' &&
163
- 'border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-400', status === 'unused' && 'text-muted-foreground', status === null &&
164
- (pending
165
- ? 'border-border text-muted-foreground'
166
- : 'border-destructive/40 text-destructive')), children: t(pending ? 'dynamic.pending' : `status.${status ?? 'undetermined'}`) }));
137
+ 'border-amber-500/40 bg-amber-500/10 text-amber-700 dark:text-amber-400', status === 'unused' && 'text-muted-foreground', status === null && 'border-border text-muted-foreground'), children: t(pending ? 'dynamic.pending' : `status.${status ?? 'undetermined'}`) }));
167
138
  }
168
139
  function CapabilityDetail({ capability, modules, inventory, counting, onCountRecords, recordCountCheckedAt, }) {
169
140
  const { t, word, text, locale } = useFoundationTranslation();
@@ -191,27 +162,37 @@ function CapabilityDetail({ capability, modules, inventory, counting, onCountRec
191
162
  const unreadable = capability.issues
192
163
  .filter((issue) => issue.code === 'SOURCE_UNREADABLE' && issue.source)
193
164
  .map((issue) => issue.source);
194
- return (_jsxs("section", { id: 'foundation-capability-detail', "aria-labelledby": 'foundation-capability-title', className: 'flex flex-col gap-5 rounded-xl border bg-card p-4 text-card-foreground md:p-5', children: [_jsxs("header", { className: 'flex flex-col gap-1', children: [_jsxs("h2", { id: 'foundation-capability-title', className: 'flex flex-wrap items-center gap-2 font-heading text-lg font-semibold', children: [_jsx(Icon, { className: 'size-5 text-primary', "aria-hidden": true }), capability.title ? text(capability.title) : t(`${base}.name`), ' ', _jsx(StatusBadge, { status: capability.status, pending: pending })] }), !pending || capability.description ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: pending ? capability.description : t(`${base}.tagline`) })) : null] }), pending ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('dynamic.pendingDescription') })) : null, capability.completeness !== 'complete' ? (_jsxs("div", { role: 'note', className: 'flex gap-2 rounded-lg border border-destructive/30 bg-destructive/5 p-3 text-sm', children: [_jsx(TriangleAlert, { className: 'mt-0.5 size-4 shrink-0 text-destructive', "aria-hidden": true }), _jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx("p", { children: t(capability.completeness === 'failed'
195
- ? 'detail.failed'
196
- : 'detail.partial') }), capability.issues.some((issue) => issue.code === 'COLLECTOR_TIMEOUT') ? (_jsx("p", { className: 'text-muted-foreground', children: t('detail.timeout') })) : null, unreadable.length > 0 ? (_jsx("p", { className: 'text-muted-foreground', children: t('detail.unreadable', {
197
- sources: new Intl.ListFormat(locale, {
198
- style: 'short',
199
- }).format(unreadable),
200
- }) })) : null] })] })) : null, _jsxs("div", { className: 'grid gap-5 lg:grid-cols-[minmax(0,3fr)_minmax(0,2fr)]', children: [_jsxs("div", { className: 'flex flex-col gap-4', children: [capability.facts.length > 0 || inUse || modules.length > 0 ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.inThisApp') }), modules.length > 0 ? (_jsx("ul", { "aria-label": t('detail.businessModules'), className: 'flex flex-wrap gap-1.5', children: modules.map((module) => (_jsx("li", { className: 'rounded-full border border-primary/15 bg-primary/5 px-2.5 py-1 text-xs text-primary', children: text(module.title) }, module.id))) })) : null, collectionSummary ? (_jsx(CollectionsBrowser, { summary: collectionSummary })) : null, otherFacts.length > 0 ? (_jsx("ul", { className: 'flex list-disc flex-col gap-1.5 pl-5 text-sm marker:text-primary', children: otherFacts.map((fact) => (_jsx("li", { children: word(`facts.${fact.code}`, formatFactParams(fact.params, locale, text)) }, fact.code))) })) : !collectionSummary ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('detail.noFacts') })) : null] })) : null, !inUse && !pending && capability.reason ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.whyNot') }), _jsx("p", { className: 'text-sm', children: word(`reasons.${capability.reason}`) })] })) : null, capability.parts.length > 0 ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.parts') }), _jsx("ul", { className: 'flex flex-col gap-1.5 text-sm', children: capability.parts.map((part) => (_jsxs("li", { className: 'flex flex-wrap items-center gap-2', children: [_jsx("span", { children: word(`parts.${part.key}`) }), _jsx(StatusBadge, { status: part.status }), part.reason && part.status !== 'active' ? (_jsx("span", { className: 'text-muted-foreground', children: word(`reasons.${part.reason}`) })) : null] }, part.key))) })] })) : null, !pending ? (_jsxs("div", { className: 'rounded-lg border border-dashed p-3', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t(inUse ? 'detail.withoutFoundation' : 'detail.onceInUse') }), _jsx("p", { className: 'mt-1 text-sm', children: t(inUse ? `${base}.without` : `${base}.onceInUse`) })] })) : null] }), _jsxs("div", { className: 'flex flex-col gap-4', children: [capability.metrics.length > 0 ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.liveData') }), _jsx("ul", { className: 'grid grid-cols-2 gap-2', children: capability.metrics.map((metric) => {
165
+ return (_jsxs("section", { id: 'foundation-capability-detail', "aria-labelledby": 'foundation-capability-title', className: 'flex flex-col gap-5 rounded-xl border bg-card p-4 text-card-foreground md:p-5', children: [_jsxs("header", { className: 'flex flex-col gap-1', children: [_jsxs("h2", { id: 'foundation-capability-title', className: 'flex flex-wrap items-center gap-2 font-heading text-lg font-semibold', children: [_jsx(Icon, { className: 'size-5 text-primary', "aria-hidden": true }), capability.title ? text(capability.title) : t(`${base}.name`), ' ', _jsx(StatusBadge, { status: capability.status, pending: pending })] }), capability.checkedAt ? _jsx(RetainedAt, { at: capability.checkedAt }) : null, !pending || capability.description ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: pending ? capability.description : t(`${base}.tagline`) })) : null] }), pending ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('dynamic.pendingDescription') })) : null, capability.completeness !== 'complete' ? (_jsx("div", { role: 'note', className: 'flex gap-2 rounded-lg border p-3 text-sm text-muted-foreground', children: _jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx("p", { children: t(capability.completeness === 'failed'
166
+ ? 'detail.failed'
167
+ : 'detail.partial') }), _jsxs("details", { children: [_jsx("summary", { children: t('detail.readNotes') }), capability.issues.some((issue) => issue.code === 'COLLECTOR_TIMEOUT') ? (_jsx("p", { className: 'text-muted-foreground', children: t('detail.timeout') })) : null, unreadable.length > 0 ? (_jsx("p", { className: 'text-muted-foreground', children: t('detail.unreadable', {
168
+ sources: new Intl.ListFormat(locale, {
169
+ style: 'short',
170
+ }).format(unreadable),
171
+ }) })) : null] }, capability.key)] }) })) : null, _jsxs("div", { className: 'grid gap-5 lg:grid-cols-[minmax(0,3fr)_minmax(0,2fr)]', children: [_jsxs("div", { className: 'flex flex-col gap-4', children: [capability.facts.length > 0 || inUse || modules.length > 0 ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.inThisApp') }), modules.length > 0 ? (_jsx("ul", { "aria-label": t('detail.businessModules'), className: 'flex flex-wrap gap-1.5', children: modules.map((module) => (_jsx("li", { className: 'rounded-full border border-primary/15 bg-primary/5 px-2.5 py-1 text-xs text-primary', children: text(module.title) }, module.id))) })) : null, collectionSummary ? (_jsx(CollectionsBrowser, { summary: collectionSummary })) : null, otherFacts.length > 0 ? (_jsx("ul", { className: 'flex list-disc flex-col gap-1.5 pl-5 text-sm marker:text-primary', children: otherFacts.map((fact) => (_jsxs("li", { children: [word(`facts.${fact.code}`, formatFactParams(fact.params, locale, text)), fact.checkedAt ? (_jsx(RetainedAt, { at: fact.checkedAt })) : null] }, fact.code))) })) : !collectionSummary ? (_jsx("p", { className: 'text-sm text-muted-foreground', children: t(capability.checkedAt
172
+ ? 'page.unavailable'
173
+ : 'detail.noFacts') })) : null] })) : null, !inUse && !pending && capability.reason ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.whyNot') }), _jsx("p", { className: 'text-sm', children: word(`reasons.${capability.reason}`) })] })) : null, capability.parts.length > 0 ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.parts') }), _jsx("ul", { className: 'flex flex-col gap-1.5 text-sm', children: capability.parts.map((part) => (_jsxs("li", { className: 'flex flex-wrap items-center gap-2', children: [_jsx("span", { children: word(`parts.${part.key}`) }), _jsx(StatusBadge, { status: part.status }), part.checkedAt ? _jsx(RetainedAt, { at: part.checkedAt }) : null, part.reason && part.status !== 'active' ? (_jsx("span", { className: 'text-muted-foreground', children: word(`reasons.${part.reason}`) })) : null] }, part.key))) })] })) : null, !pending && capability.status !== null ? (_jsxs("div", { className: 'rounded-lg border border-dashed p-3', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t(inUse ? 'detail.withoutFoundation' : 'detail.onceInUse') }), _jsx("p", { className: 'mt-1 text-sm', children: t(inUse ? `${base}.without` : `${base}.onceInUse`) })] })) : null] }), _jsxs("div", { className: 'flex flex-col gap-4', children: [capability.metrics.length > 0 ? (_jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.liveData') }), _jsx("ul", { className: 'grid grid-cols-2 gap-2', children: capability.metrics.map((metric) => {
201
174
  const value = formatMetricValue(metric, locale);
202
175
  return (_jsxs("li", { className: 'rounded-lg bg-muted p-3', children: [_jsx("p", { className: cn('font-heading text-xl font-semibold tabular-nums', value === undefined &&
203
176
  'text-sm font-normal text-muted-foreground'), title: !metric.complete && value !== undefined
204
- ? t('page.lowerBound')
177
+ ? t(capability.key === 'files'
178
+ ? 'page.partial'
179
+ : 'page.lowerBound')
205
180
  : undefined, children: value === undefined
206
181
  ? t('page.unavailable')
207
182
  : metric.complete
208
183
  ? value
209
- : `≥ ${value}` }), _jsx("p", { className: 'text-xs text-muted-foreground', children: word(`metrics.${metric.key}`) })] }, metric.key));
184
+ : capability.key === 'files'
185
+ ? t('page.counted', { value })
186
+ : `≥ ${value}` }), _jsx("p", { className: 'text-xs text-muted-foreground', children: word(`metrics.${metric.key}`) }), metric.checkedAt ? (_jsx(RetainedAt, { at: metric.checkedAt })) : !metric.complete &&
187
+ value !== undefined &&
188
+ capability.key === 'files' ? (_jsx("p", { className: 'text-xs text-muted-foreground', children: t('page.partial') })) : null] }, metric.key));
210
189
  }) }), capability.key === 'dataModeling' ? (_jsxs("div", { className: 'flex flex-col items-start gap-1', children: [onCountRecords ? (_jsx(Button, { variant: 'outline', size: 'sm', disabled: counting, onClick: onCountRecords, children: t(counting ? 'page.refreshing' : 'detail.countRecords') })) : null, _jsx("p", { className: 'text-xs text-muted-foreground', children: recordCountCheckedAt
211
190
  ? t('detail.recordsCountedAt', {
212
191
  time: formatTime(recordCountCheckedAt, locale),
213
192
  })
214
- : t('detail.recordsOnDemand') })] })) : null] })) : null, _jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.packages') }), packages.length > 0 ? (_jsx("ul", { className: 'flex flex-col gap-1 font-mono text-xs', children: packages.map((entry) => (_jsxs("li", { className: 'flex items-center justify-between gap-3', children: [_jsxs("span", { className: 'flex min-w-0 items-center gap-1.5', children: [_jsx(Package, { className: 'size-3.5 shrink-0 text-muted-foreground', "aria-hidden": true }), _jsx("span", { className: 'truncate', children: entry.name })] }), _jsx("span", { className: 'shrink-0 text-muted-foreground', children: entry.version ?? t('page.unavailable') })] }, entry.name))) })) : (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('detail.noPackages') }))] })] })] })] }));
193
+ : t('detail.recordsOnDemand') })] })) : null] })) : null, _jsxs("div", { className: 'flex flex-col gap-2', children: [_jsx("h3", { className: 'text-sm text-muted-foreground', children: t('detail.packages') }), packages.length > 0 ? (_jsx("ul", { className: 'flex flex-col gap-1 font-mono text-xs', children: packages.map((entry) => (_jsxs("li", { className: 'flex items-center justify-between gap-3', children: [_jsxs("span", { className: 'flex min-w-0 items-center gap-1.5', children: [_jsx(Package, { className: 'size-3.5 shrink-0 text-muted-foreground', "aria-hidden": true }), _jsx("span", { className: 'truncate', children: entry.name })] }), _jsx("span", { className: 'shrink-0 text-muted-foreground', children: entry.version ?? t('page.unavailable') })] }, entry.name))) })) : (_jsx("p", { className: 'text-sm text-muted-foreground', children: t(capability.completeness === 'failed'
194
+ ? 'page.unavailable'
195
+ : 'detail.noPackages') }))] })] })] })] }));
215
196
  }
216
197
  export default FoundationPage;
217
198
  //# sourceMappingURL=foundation-page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundation-page.js","sourceRoot":"","sources":["../../../client/components/foundation-page.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"foundation-page.js","sourceRoot":"","sources":["../../../client/components/foundation-page.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module-matrix.d.ts","sourceRoot":"","sources":["../../../client/components/module-matrix.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAmBpC,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,EAAE;IACD,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACrD,GAAG,YAAY,CA+Pf"}
1
+ {"version":3,"file":"module-matrix.d.ts","sourceRoot":"","sources":["../../../client/components/module-matrix.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAmBpC,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,aAAa,GACd,EAAE;IACD,QAAQ,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACtD,QAAQ,CAAC,YAAY,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACrD,GAAG,YAAY,CA2Rf"}
@@ -52,7 +52,9 @@ export function ModuleMatrix({ modules, capabilities, onSelect, onFocusModule, }
52
52
  .map((evidence) => t(`matrix.evidence.${evidence}`))
53
53
  .join(' · ') }), link.providers.length ? (_jsx("p", { className: 'break-words font-mono text-xs text-muted-foreground', children: link.providers.join(' · ') })) : null, link.collections?.length ? (_jsx("p", { className: 'break-words text-xs text-muted-foreground', children: t('matrix.collections', {
54
54
  names: link.collections.join(', '),
55
- }) })) : null, selected.reason !== 'unrecognizedExtension' ? (_jsxs("div", { className: 'flex flex-col gap-1 border-t pt-3', children: [_jsx("h4", { className: 'font-medium', children: t('detail.withoutFoundation') }), _jsx("p", { className: 'leading-relaxed', children: t(`capabilities.${selected.key}.without`) })] })) : (_jsx("p", { children: t('dynamic.pendingDescription') }))] })) : null, _jsxs("p", { className: 'pt-1 text-xs leading-relaxed text-muted-foreground/80', children: [t('matrix.legend'), modules.some((item) => !item.complete)
55
+ }) })) : null, link.apiEvidence?.length ? (_jsx("ul", { className: 'flex flex-col gap-2 text-xs text-muted-foreground', children: link.apiEvidence.map((item) => (_jsxs("li", { className: 'flex flex-col gap-1', children: [_jsx("span", { children: t(item.conditions.length
56
+ ? 'matrix.successPath'
57
+ : 'matrix.apiPath', { method: item.method, path: item.path }) }), item.conditions.map((condition) => (_jsxs("span", { children: [t(`matrix.conditions.${condition.kind}`), ' · ', _jsx("span", { className: 'break-words font-mono', children: condition.source })] }, condition.kind + condition.source)))] }, JSON.stringify(item)))) })) : null, selected.reason !== 'unrecognizedExtension' ? (_jsxs("div", { className: 'flex flex-col gap-1 border-t pt-3', children: [_jsx("h4", { className: 'font-medium', children: t('detail.withoutFoundation') }), _jsx("p", { className: 'leading-relaxed', children: t(`capabilities.${selected.key}.without`) })] })) : (_jsx("p", { children: t('dynamic.pendingDescription') }))] })) : null, _jsxs("p", { className: 'pt-1 text-xs leading-relaxed text-muted-foreground/80', children: [t('matrix.legend'), modules.some((item) => !item.complete)
56
58
  ? ` ${t('matrix.partial')}`
57
59
  : ''] })] }))] }));
58
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module-matrix.js","sourceRoot":"","sources":["../../../client/components/module-matrix.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-matrix.js","sourceRoot":"","sources":["../../../client/components/module-matrix.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ declare function Skeleton({ className, ...props }: React.ComponentProps<'div'>): React.ReactElement;
2
+ export { Skeleton };
3
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../client/components/ui/skeleton.tsx"],"names":[],"mappings":"AAEA,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,YAAY,CAQlD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}