@jskit-ai/agent-docs 0.1.256 → 0.1.258

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 (230) hide show
  1. package/guide/agent/app-extras/assistant-conversation.md +88 -35
  2. package/guide/agent/app-extras/assistant.md +28 -28
  3. package/guide/agent/app-setup/authentication.md +36 -17
  4. package/guide/agent/app-setup/database-layer.md +116 -17
  5. package/guide/agent/app-setup/existing-application-migration.md +29 -25
  6. package/guide/agent/app-setup/multi-homing.md +94 -48
  7. package/guide/agent/app-setup/run-an-accounts-hub.md +6 -4
  8. package/guide/agent/framework/client-features.md +496 -0
  9. package/guide/agent/framework/crud-operations.md +5 -5
  10. package/guide/agent/framework/translation.md +4 -3
  11. package/guide/agent/framework/typed-features.md +1104 -0
  12. package/guide/agent/framework/ui-operations.md +2 -2
  13. package/guide/agent/index.md +6 -1
  14. package/package.json +1 -1
  15. package/patterns/feature-package/PATTERN.md +104 -10
  16. package/patterns/feature-package/example/booking-engine/package.json +9 -4
  17. package/patterns/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
  18. package/patterns/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
  19. package/patterns/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
  20. package/patterns/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
  21. package/patterns/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
  22. package/patterns/feature-package/example/booking-engine/src/server/types.js +12 -0
  23. package/patterns/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
  24. package/patterns/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
  25. package/patterns/feature-package/example/variations/availabilityEngineActions.js +26 -0
  26. package/patterns/feature-package/example/variations/customKnexRepository.js +32 -26
  27. package/patterns/feature-package/example/variations/invoiceRollupActions.js +26 -0
  28. package/patterns/feature-package/example/variations/orchestratorService.js +24 -19
  29. package/patterns/feature-package/example/variations/types.js +7 -0
  30. package/patterns/minimal-foundation/PATTERN.md +30 -1
  31. package/patterns/minimal-foundation/example/AGENTS.md +14 -0
  32. package/patterns/minimal-foundation/example/bin/develop.js +10 -5
  33. package/patterns/minimal-foundation/example/eslint.config.mjs +21 -2
  34. package/patterns/minimal-foundation/example/package.json +5 -4
  35. package/patterns/minimal-foundation/example/playwright.config.mjs +1 -1
  36. package/patterns/minimal-foundation/example/server/lib/envFile.js +19 -0
  37. package/patterns/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
  38. package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
  39. package/patterns/minimal-foundation/example/server.js +32 -29
  40. package/patterns/minimal-foundation/example/tests/server/smoke.test.js +2 -1
  41. package/patterns/shell-foundation/PATTERN.md +29 -0
  42. package/patterns/shell-foundation/example/AGENTS.md +14 -0
  43. package/patterns/shell-foundation/example/bin/develop.js +10 -5
  44. package/patterns/shell-foundation/example/eslint.config.mjs +21 -2
  45. package/patterns/shell-foundation/example/package.json +6 -5
  46. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  47. package/patterns/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
  48. package/patterns/shell-foundation/example/playwright.config.mjs +1 -1
  49. package/patterns/shell-foundation/example/server/lib/envFile.js +19 -0
  50. package/patterns/shell-foundation/example/server/lib/loggerOptions.js +15 -0
  51. package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
  52. package/patterns/shell-foundation/example/server.js +32 -29
  53. package/patterns/shell-foundation/example/tests/server/smoke.test.js +2 -1
  54. package/reference/autogen/KERNEL_MAP.md +14 -8
  55. package/reference/autogen/PATTERN_INDEX.md +37 -37
  56. package/reference/autogen/README.md +2 -0
  57. package/reference/autogen/packages/agent-docs.md +70 -26
  58. package/reference/autogen/packages/agent-runtime.md +129 -0
  59. package/reference/autogen/packages/agent.md +149 -0
  60. package/reference/autogen/packages/architecture-inspector.md +97 -44
  61. package/reference/autogen/packages/assistant-core.md +786 -292
  62. package/reference/autogen/packages/assistant-runtime.md +182 -57
  63. package/reference/autogen/packages/assistant-voice-sherpa.md +4 -0
  64. package/reference/autogen/packages/assistant-voice.md +54 -8
  65. package/reference/autogen/packages/auth-core.md +44 -13
  66. package/reference/autogen/packages/auth-provider-local-core.md +86 -34
  67. package/reference/autogen/packages/auth-provider-local-db-core.md +1 -2
  68. package/reference/autogen/packages/auth-provider-oidc-core.md +10 -4
  69. package/reference/autogen/packages/auth-provider-supabase-core.md +52 -66
  70. package/reference/autogen/packages/auth-web.md +19 -11
  71. package/reference/autogen/packages/connectors-catalog.md +71 -43
  72. package/reference/autogen/packages/connectors-core.md +42 -4
  73. package/reference/autogen/packages/console-core.md +27 -14
  74. package/reference/autogen/packages/crud-core.md +178 -170
  75. package/reference/autogen/packages/database-runtime-mysql.md +0 -2
  76. package/reference/autogen/packages/database-runtime-postgres.md +0 -2
  77. package/reference/autogen/packages/database-runtime.md +39 -10
  78. package/reference/autogen/packages/http-runtime.md +79 -57
  79. package/reference/autogen/packages/json-rest-api-core.md +11 -8
  80. package/reference/autogen/packages/kernel.md +144 -83
  81. package/reference/autogen/packages/oidc-issuer-core.md +49 -20
  82. package/reference/autogen/packages/payments-core.md +20 -3
  83. package/reference/autogen/packages/realtime.md +47 -22
  84. package/reference/autogen/packages/resource-core.md +1 -1
  85. package/reference/autogen/packages/resource-crud-core.md +64 -26
  86. package/reference/autogen/packages/rewarded-core.md +47 -36
  87. package/reference/autogen/packages/shell-web.md +7 -10
  88. package/reference/autogen/packages/storage-runtime.md +6 -2
  89. package/reference/autogen/packages/uploads-runtime.md +10 -2
  90. package/reference/autogen/packages/users-core.md +73 -71
  91. package/reference/autogen/packages/workspaces-core.md +121 -106
  92. package/reference/autogen/packages/workspaces-web.md +1 -2
  93. package/reference/autogen/tooling/config-eslint.md +302 -0
  94. package/reference/autogen/tooling/jskit-catalog.md +28 -18
  95. package/reference/autogen/tooling/jskit-release.md +35 -20
  96. package/reference/autogen/tooling/testUtils.md +3 -1
  97. package/skills/jskit/SKILL.md +3 -2
  98. package/skills/jskit/references/app-operations.md +1 -1
  99. package/skills/jskit/references/client-features.md +491 -0
  100. package/skills/jskit/references/crud-form-actions.md +1 -1
  101. package/skills/jskit/references/crud-operations.md +7 -7
  102. package/skills/jskit/references/existing-application-migration.md +31 -27
  103. package/skills/jskit/references/heuristics/INDEX.md +5 -1
  104. package/skills/jskit/references/heuristics/child-cruds.md +1 -1
  105. package/skills/jskit/references/heuristics/client-features.md +66 -0
  106. package/skills/jskit/references/heuristics/client-requests.md +1 -1
  107. package/skills/jskit/references/heuristics/crud-authoring.md +12 -2
  108. package/skills/jskit/references/heuristics/crud-links.md +1 -1
  109. package/skills/jskit/references/heuristics/crud-repository-mapping.md +3 -3
  110. package/skills/jskit/references/heuristics/filters.md +1 -1
  111. package/skills/jskit/references/heuristics/live-actions.md +1 -1
  112. package/skills/jskit/references/heuristics/page-redirects.md +1 -1
  113. package/skills/jskit/references/heuristics/page-scaffolding.md +1 -1
  114. package/skills/jskit/references/heuristics/placements.md +1 -1
  115. package/skills/jskit/references/heuristics/row-policies.md +1 -1
  116. package/skills/jskit/references/heuristics/server-search.md +1 -1
  117. package/skills/jskit/references/heuristics/surfaces.md +1 -1
  118. package/skills/jskit/references/heuristics/typed-features.md +100 -0
  119. package/skills/jskit/references/heuristics/ui-contract.md +1 -1
  120. package/skills/jskit/references/heuristics/ui-testing.md +4 -4
  121. package/skills/jskit/references/material-3.md +2 -2
  122. package/skills/jskit/references/multi-homing.md +96 -50
  123. package/skills/jskit/references/pattern-index.md +37 -37
  124. package/skills/jskit/references/patterns/app/minimal-foundation/PATTERN.md +30 -1
  125. package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +14 -0
  126. package/skills/jskit/references/patterns/app/minimal-foundation/example/bin/develop.js +10 -5
  127. package/skills/jskit/references/patterns/app/minimal-foundation/example/eslint.config.mjs +21 -2
  128. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +5 -4
  129. package/skills/jskit/references/patterns/app/minimal-foundation/example/playwright.config.mjs +1 -1
  130. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/envFile.js +19 -0
  131. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/loggerOptions.js +15 -0
  132. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +17 -17
  133. package/skills/jskit/references/patterns/app/minimal-foundation/example/server.js +32 -29
  134. package/skills/jskit/references/patterns/app/minimal-foundation/example/tests/server/smoke.test.js +2 -1
  135. package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +29 -0
  136. package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +14 -0
  137. package/skills/jskit/references/patterns/app/shell-foundation/example/bin/develop.js +10 -5
  138. package/skills/jskit/references/patterns/app/shell-foundation/example/eslint.config.mjs +21 -2
  139. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +6 -5
  140. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
  141. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/src/client/providers/MainClientProvider.js +1 -0
  142. package/skills/jskit/references/patterns/app/shell-foundation/example/playwright.config.mjs +1 -1
  143. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/envFile.js +19 -0
  144. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/loggerOptions.js +15 -0
  145. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +17 -17
  146. package/skills/jskit/references/patterns/app/shell-foundation/example/server.js +32 -29
  147. package/skills/jskit/references/patterns/app/shell-foundation/example/tests/server/smoke.test.js +2 -1
  148. package/skills/jskit/references/patterns/assistant/assistant-surface/example/src/ApplicationAiFeature.js +4 -2
  149. package/skills/jskit/references/patterns/auth/accounts-hub/PATTERN.md +2 -1
  150. package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
  151. package/skills/jskit/references/patterns/auth/accounts-hub/example/server/hubPaths.js +9 -3
  152. package/skills/jskit/references/patterns/auth/auth-surface/PATTERN.md +25 -12
  153. package/skills/jskit/references/patterns/auth/auth-surface/example/tools/preview-identity +7 -1
  154. package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
  155. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
  156. package/skills/jskit/references/patterns/connectors/ai-connections/PATTERN.md +16 -1
  157. package/skills/jskit/references/patterns/connectors/ai-connections/example/ai-model.js +12 -3
  158. package/skills/jskit/references/patterns/connectors/ai-connections/example/perplexity-answer.js +15 -4
  159. package/skills/jskit/references/patterns/connectors/api-key-connection/PATTERN.md +9 -1
  160. package/skills/jskit/references/patterns/connectors/api-key-connection/example/connections.js +5 -2
  161. package/skills/jskit/references/patterns/connectors/aws-storage-queries/PATTERN.md +13 -3
  162. package/skills/jskit/references/patterns/connectors/aws-storage-queries/example/s3-transfer.js +14 -3
  163. package/skills/jskit/references/patterns/connectors/calendar-cli/PATTERN.md +8 -0
  164. package/skills/jskit/references/patterns/connectors/calendar-cli/example/knexfile.js +1 -1
  165. package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
  166. package/skills/jskit/references/patterns/connectors/calendar-cli/example/scripts/calendar.js +8 -4
  167. package/skills/jskit/references/patterns/connectors/event-delivery/PATTERN.md +1 -1
  168. package/skills/jskit/references/patterns/connectors/firebase-messaging/PATTERN.md +10 -0
  169. package/skills/jskit/references/patterns/connectors/firebase-messaging/example/server/notifications.js +8 -0
  170. package/skills/jskit/references/patterns/connectors/google-ads-search/PATTERN.md +18 -7
  171. package/skills/jskit/references/patterns/connectors/google-ads-search/example/ads-setup.js +13 -5
  172. package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +1 -1
  173. package/skills/jskit/references/patterns/connectors/paddle-catalogue/PATTERN.md +11 -2
  174. package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +5 -2
  175. package/skills/jskit/references/patterns/connectors/public-image/PATTERN.md +10 -1
  176. package/skills/jskit/references/patterns/connectors/public-image/example/logo-url.js +4 -1
  177. package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +1 -1
  178. package/skills/jskit/references/patterns/connectors/source-scanning/PATTERN.md +13 -2
  179. package/skills/jskit/references/patterns/connectors/source-scanning/example/source-scanner.js +9 -0
  180. package/skills/jskit/references/patterns/crud/json-api-resource-package/PATTERN.md +102 -23
  181. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +3 -2
  182. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/src/server/types.js +5 -0
  183. package/skills/jskit/references/patterns/crud/resource-contract/PATTERN.md +54 -1
  184. package/skills/jskit/references/patterns/database/mysql-application/PATTERN.md +16 -5
  185. package/skills/jskit/references/patterns/database/mysql-application/example/knexfile.js +2 -2
  186. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
  187. package/skills/jskit/references/patterns/database/mysql-application/example/scripts/prepare-database.js +1 -1
  188. package/skills/jskit/references/patterns/database/postgres-application/PATTERN.md +16 -5
  189. package/skills/jskit/references/patterns/database/postgres-application/example/knexfile.js +2 -2
  190. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
  191. package/skills/jskit/references/patterns/database/postgres-application/example/scripts/prepare-database.js +1 -1
  192. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
  193. package/skills/jskit/references/patterns/rewards/google-rewarded/example/GoogleRewardedDeliveryProvider.js +1 -1
  194. package/skills/jskit/references/patterns/rewards/google-rewarded/example/googlePublisherTag.js +5 -11
  195. package/skills/jskit/references/patterns/server/feature-package/PATTERN.md +104 -10
  196. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +9 -4
  197. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineFeature.js +24 -0
  198. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingAvailability.js +10 -0
  199. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngine.js +29 -0
  200. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/bookingEngineActions.js +26 -0
  201. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/inputSchemas.js +1 -2
  202. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/types.js +12 -0
  203. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineFeature.js +19 -0
  204. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupFeature.js +23 -0
  205. package/skills/jskit/references/patterns/server/feature-package/example/variations/availabilityEngineActions.js +26 -0
  206. package/skills/jskit/references/patterns/server/feature-package/example/variations/customKnexRepository.js +32 -26
  207. package/skills/jskit/references/patterns/server/feature-package/example/variations/invoiceRollupActions.js +26 -0
  208. package/skills/jskit/references/patterns/server/feature-package/example/variations/orchestratorService.js +24 -19
  209. package/skills/jskit/references/patterns/server/feature-package/example/variations/types.js +7 -0
  210. package/skills/jskit/references/patterns/users/user-administration-server/PATTERN.md +16 -1
  211. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +3 -2
  212. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/src/server/types.js +5 -0
  213. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +4 -3
  214. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/UsersWorkspaceFeature.js +2 -9
  215. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/src/server/types.js +5 -0
  216. package/skills/jskit/references/patterns/workspaces/workspace-server/PATTERN.md +42 -17
  217. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/WorkspaceInvitationsFeature.js +27 -0
  218. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteEmail.js +11 -10
  219. package/skills/jskit/references/patterns/workspaces/workspace-server/example/packages/main/src/server/email/workspaceInviteMailer.js +27 -0
  220. package/skills/jskit/references/translation.md +5 -4
  221. package/skills/jskit/references/typed-features.md +1099 -0
  222. package/skills/jskit/references/ui-operations.md +3 -3
  223. package/patterns/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
  224. package/patterns/feature-package/example/booking-engine/src/server/actions.js +0 -24
  225. package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
  226. package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
  227. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/BookingEngineProvider.js +0 -33
  228. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +0 -24
  229. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +0 -31
  230. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +0 -36
@@ -32,17 +32,42 @@ Exports
32
32
  Exports
33
33
  - `baseConfig`
34
34
 
35
+ ### `clientFeatures.js`
36
+ Exports
37
+ - `clientFeaturesConfig(files, severity = "error")`
38
+ Local functions
39
+ - `clientFeaturesRules(severity)`
40
+ - `componentRules(severity)`
41
+
42
+ ### `formatter.js`
43
+ Exports
44
+ - `formatterConfig(files, { ignores = [] } = {})`
45
+
35
46
  ### `index.js`
36
47
  Exports
37
48
  - `baseConfig`
38
49
  - `nodeConfig`
39
50
  - `webConfig`
40
51
  - `vueConfig`
52
+ - `sizeLimitsConfig`
53
+ - `typedFeaturesConfig`
54
+ - `clientFeaturesConfig`
55
+ - `formatterConfig`
56
+ - `jskitPlugin`
41
57
 
42
58
  ### `node.js`
43
59
  Exports
44
60
  - `nodeConfig`
45
61
 
62
+ ### `typedFeatures.js`
63
+ Exports
64
+ - `sizeLimitRules(severity)`
65
+ - `sizeLimitsConfig(files, { ignores = [] } = {})`
66
+ - `typedFeaturesConfig(files, severity = "error")`
67
+ Local functions
68
+ - `typedFeaturesRules(severity)`
69
+ - `requireGlobs(name, files)`
70
+
46
71
  ### `vue.js`
47
72
  Exports
48
73
  - `vueConfig`
@@ -50,3 +75,280 @@ Exports
50
75
  ### `web.js`
51
76
  Exports
52
77
  - `webConfig`
78
+
79
+ ### plugin
80
+
81
+ ### `plugin/factoryResults.js`
82
+ Exports
83
+ - `CREATE_NAME`
84
+ - `FUNCTION_TYPES`
85
+ - `VUE_STATE_CALLS`
86
+ - `definedName(fn)`
87
+ - `definitionOf(sourceCode, identifier)`
88
+ - `enclosingFunction(sourceCode, node)`
89
+ - `holdsBehaviour(sourceCode, object)`
90
+ - `isInlineFunction(property)`
91
+ - `isVueStateCall(node)`
92
+ - `localFunction(sourceCode, identifier)`
93
+ - `makesVueState(sourceCode, fn)`
94
+ - `returnedFrom(sourceCode, node)`
95
+ - `returnsOnlyData(sourceCode, fn)`
96
+ Local functions
97
+ - `findVariable(scope, name)`
98
+ - `refersToFunction(sourceCode, property)`
99
+
100
+ ### `plugin/index.js`
101
+ Exports
102
+ - `jskitPlugin`
103
+
104
+ ### `plugin/packageSources.js`
105
+ Exports
106
+ - `clientSourceFiles(directory, files = [])`
107
+ - `createSourceMemo(read, unreadable)`
108
+ - `isGeneratedMirror(file)`
109
+ - `isServerOrSharedFile(file, packageDirectory)`
110
+ - `packageRootOf(file)`
111
+ - `packageSourceFiles(directory, files = [])`
112
+ - `toPosixPath(file)`
113
+ Local functions
114
+ - `isPackageDirectory(directory)`
115
+
116
+ ### `plugin/rules/actionCreator.js`
117
+ Exports
118
+ - `actionCreator`
119
+ Local functions
120
+ - `isCrudCustomAction(definition)`
121
+
122
+ ### `plugin/rules/actionExecuteShape.js`
123
+ Exports
124
+ - `actionExecuteShape`
125
+ Local functions
126
+ - `isPlainCallee(node)`
127
+ - `unwrapCall(node)`
128
+ - `shapeProblem(value)`
129
+
130
+ ### `plugin/rules/allowCommentForm.js`
131
+ Exports
132
+ - `allowCommentForm`
133
+ Local functions
134
+ - `holdsFunction(node)`
135
+ - `excusedNode(sourceCode, comment)`
136
+ - `allowLines(comment, opening = 2)`
137
+
138
+ ### `plugin/rules/appErrorCode.js`
139
+ Exports
140
+ - `appErrorCode`
141
+ Local functions
142
+ - `objectHasKey(node, name)`
143
+ - `hasSpread(node)`
144
+ - `setsOwnCode(classBody, sourceCode)`
145
+ - `parameterIndex(parameters, name)`
146
+ - `superCall(constructor)`
147
+ - `forwardsRest(target, superOptions)`
148
+ - `optionsIndex(parameters, superOptions)`
149
+ - `localErrorClasses(program, sourceCode)`
150
+ - `passesCode(node, { code, options })`
151
+ - `literalText(node)`
152
+
153
+ ### `plugin/rules/collaboratorProps.js`
154
+ Exports
155
+ - `collaboratorProps`
156
+ Local functions
157
+ - `declaredProps(node)`
158
+ - `unchain(node)`
159
+ - `calledProp(callee, propsBinding, inTemplate)`
160
+ - `optionText(sourceCode, prop, name)`
161
+
162
+ ### `plugin/rules/fixedResultShape.js`
163
+ Exports
164
+ - `fixedResultShape`
165
+ Local functions
166
+ - `calleeName(call)`
167
+ - `addsBehaviour(sourceCode, value)`
168
+ - `unwrapAwait(node)`
169
+ - `callbackFactoryCall(call)`
170
+ - `resultOwner(sourceCode, identifier)`
171
+
172
+ ### `plugin/rules/frozenFactoryResult.js`
173
+ Exports
174
+ - `frozenFactoryResult`
175
+
176
+ ### `plugin/rules/jsdocDescriptionInside.js`
177
+ Exports
178
+ - `jsdocDescriptionInside`
179
+ Local functions
180
+ - `startsItsLine(lines, comment)`
181
+
182
+ ### `plugin/rules/namedRepeatedType.js`
183
+ Exports
184
+ - `namedRepeatedType`
185
+ Local functions
186
+ - `balanced(text, start, open, close)`
187
+ - `repeatableTypes(type)`
188
+ - `moduleKey(specifier, directory)`
189
+ - `importedNames(text, directory)`
190
+ - `typeKey(text, file, imports)`
191
+ - `commentTypes(text)`
192
+
193
+ ### `plugin/rules/noDualShape.js`
194
+ Exports
195
+ - `noDualShape`
196
+ Local functions
197
+ - `unwrapChain(node)`
198
+ - `referenceText(sourceCode, node)`
199
+ - `dualShape(sourceCode, member, fallback)`
200
+
201
+ ### `plugin/rules/noDuplicateHelper.js`
202
+ Exports
203
+ - `noDuplicateHelper`
204
+ Local functions
205
+ - `topLevelFunctions(program)`
206
+ - `isNamedNoOp(fn)`
207
+ - `topLevelHelpers(program, text)`
208
+ - `comparisonRoot(file, packageDirectory)`
209
+ - `compareCopies(left, right)`
210
+
211
+ ### `plugin/rules/noEnvDefault.js`
212
+ Exports
213
+ - `noEnvDefault`
214
+ Local functions
215
+ - `isProcessEnv(node)`
216
+
217
+ ### `plugin/rules/noFactorySpread.js`
218
+ Exports
219
+ - `noFactorySpread`
220
+ Local functions
221
+ - `unwrap(node)`
222
+ - `factoryCall(sourceCode, argument)`
223
+ - `spreadFactory(sourceCode, argument, factoryName)`
224
+ - `returnedApi(sourceCode, object)`
225
+
226
+ ### `plugin/rules/noFrozenVueState.js`
227
+ Exports
228
+ - `noFrozenVueState`
229
+ Local functions
230
+ - `holdsVueState(sourceCode, value)`
231
+
232
+ ### `plugin/rules/noIdempotency.js`
233
+ Exports
234
+ - `noIdempotency`
235
+
236
+ ### `plugin/rules/noModuleRegistry.js`
237
+ Exports
238
+ - `noModuleRegistry`
239
+ Local functions
240
+ - `moduleBindings(program)`
241
+
242
+ ### `plugin/rules/noModuleState.js`
243
+ Exports
244
+ - `noModuleState`
245
+ Local functions
246
+ - `moduleDeclarations(program)`
247
+
248
+ ### `plugin/rules/noOptionalAfterDefault.js`
249
+ Exports
250
+ - `noOptionalAfterDefault`
251
+ Local functions
252
+ - `isPresentDefault(node)`
253
+ - `defaultedNames(pattern, found = [])`
254
+
255
+ ### `plugin/rules/noPatchedError.js`
256
+ Exports
257
+ - `noPatchedError`
258
+ Local functions
259
+ - `calleeName(node)`
260
+ - `isConstructedError(node)`
261
+
262
+ ### `plugin/rules/noSlotSetter.js`
263
+ Exports
264
+ - `noSlotSetter`
265
+
266
+ ### `plugin/rules/noTestOnlyExport.js`
267
+ Exports
268
+ - `noTestOnlyExport`
269
+ Local functions
270
+ - `exportedNames(node)`
271
+
272
+ ### `plugin/rules/oneLineAction.js`
273
+ Exports
274
+ - `oneLineAction`
275
+ Local functions
276
+ - `executeOf(definition)`
277
+ - `isCrudCustomAction(definition)`
278
+ - `definitionLiteral(element)`
279
+
280
+ ### `plugin/rules/onePropertyPerLine.js`
281
+ Exports
282
+ - `onePropertyPerLine`
283
+ Local functions
284
+ - `calleeName(call)`
285
+ - `checkedPlace(object)`
286
+ - `splitObjectLines(sourceCode, object)`
287
+
288
+ ### `plugin/rules/releasedListeners.js`
289
+ Exports
290
+ - `releasedListeners`
291
+ Local functions
292
+ - `calleeName(node)`
293
+ - `eventType(sourceCode, node)`
294
+ - `releasesItself(options)`
295
+ - `keptAs(sourceCode, node)`
296
+ - `listenedObject(sourceCode, node)`
297
+
298
+ ### `plugin/rules/requiredCollaborators.js`
299
+ Exports
300
+ - `requiredCollaborators`
301
+ Local functions
302
+ - `positionalCollaboratorDefaults(fn, visitorKeys)`
303
+
304
+ ### `plugin/rules/typedDependencies.js`
305
+ Exports
306
+ - `typedDependencies`
307
+ Local functions
308
+ - `hasParamJsdoc(sourceCode, node)`
309
+
310
+ ### `plugin/rules/typedInject.js`
311
+ Exports
312
+ - `typedInject`
313
+ Local functions
314
+ - `isTypedInjection(sourceCode, call)`
315
+
316
+ ### `plugin/support.js`
317
+ Exports
318
+ - `ABSENT_DEFAULT`
319
+ - `CLIENT_GUIDE_URL`
320
+ - `GUIDE_URL`
321
+ - `compactText(sourceCode, node)`
322
+ - `createReporter(context, ruleName)`
323
+ - `deepFreezeNames(program)`
324
+ - `factoryDependencies(fn, sourceCode, client = false)`
325
+ - `followsOptionalLink(node)`
326
+ - `functionName(fn)`
327
+ - `functionSite(fn)`
328
+ - `isActionDefinition(object)`
329
+ - `isActionExecute(node, owner)`
330
+ - `isActionsFile(filename)`
331
+ - `isFreezeCall(node)`
332
+ - `isFrozenValue(node, deepFreezing)`
333
+ - `isFactory(fn, client = false)`
334
+ - `isClientLint(context)`
335
+ - `isInAction(context, node)`
336
+ - `isWrittenActionDefinition(object)`
337
+ - `keyName(property)`
338
+ - `receivingFunction(context, node, name)`
339
+ - `ruleMeta(description, messages, section, guide = GUIDE_URL)`
340
+ - `walk(node, visitorKeys, visit)`
341
+ Local functions
342
+ - `enclosingFunctionLine(node)`
343
+ - `templateElementLine(node)`
344
+ - `isConstructor(fn)`
345
+ - `collaboratorNames(fn, names, visitorKeys)`
346
+ - `bodyDestructuring(fn, parameterName)`
347
+ - `dependenciesPattern(fn, first)`
348
+
349
+ ### `plugin/vueSources.js`
350
+ Exports
351
+ - `hasJsdocBefore(sourceCode, node, tag)`
352
+ - `hasTypeCast(sourceCode, node)`
353
+ - `scriptSetupRanges(sourceCode)`
354
+ - `vueImportNames(program, exported)`
@@ -23,12 +23,15 @@ Local functions
23
23
  - `buildCatalog({ repoRoot, packagesRoot, outputPath })`
24
24
  - `main()`
25
25
 
26
+ ### `scripts/files.mjs`
27
+ Exports
28
+ - `fileExists(absolutePath)`
29
+ - `toPosixPath(value = "")`
30
+
26
31
  ### `scripts/framework-packages.mjs`
27
32
  Exports
28
33
  - `collectSingletonPackageIds(packageJsons)`
29
34
  - `discoverFrameworkPackages(packagesRoot)`
30
- Local functions
31
- - `fileExists(filePath)`
32
35
 
33
36
  ### `scripts/i18n.mjs`
34
37
  Exports
@@ -77,7 +80,6 @@ Exports
77
80
  - `parsePatternDocument(source = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
78
81
  Local functions
79
82
  - `normalizeText(value = "")`
80
- - `normalizePath(value = "")`
81
83
  - `sortedUniqueStrings(values = [])`
82
84
  - `parseCommaSeparatedValue(value = "")`
83
85
  - `requirePatternFrontMatter(source = "", { documentPath = PATTERN_DOCUMENT_NAME } = {})`
@@ -85,6 +87,26 @@ Local functions
85
87
  - `directoryExists(directoryPath)`
86
88
  - `collectFiles(rootDirectory)`
87
89
 
90
+ ### `scripts/project-install.mjs`
91
+ Exports
92
+ - `readOptionalFile(absolutePath)`
93
+ - `restoreProjectFiles(updates, packageLockPath, packageLockSnapshot)`
94
+ - `runNpmInstall(projectRoot)`
95
+ - `writeManifestUpdates(updates = [])`
96
+ Local functions
97
+ - `spawnNpmInstall(projectRoot)`
98
+
99
+ ### `scripts/project-manifests.mjs`
100
+ Exports
101
+ - `discoverProjectManifests(projectRoot, additionalManifests = [])`
102
+ - `readJsonRecord(absolutePath)`
103
+ - `serializePackageJson(value, originalContents = "")`
104
+ Local functions
105
+ - `normalizeWorkspacePatterns(value)`
106
+ - `globToRegExp(pattern = "")`
107
+ - `createWorkspaceMatcher(workspaces)`
108
+ - `collectNestedPackageJsonPaths(directory, results = [])`
109
+
88
110
  ### `scripts/project-packages.mjs`
89
111
  Exports
90
112
  - `CATALOG_PACKAGE_ID`
@@ -95,30 +117,17 @@ Exports
95
117
  - `checkInstalledGraph({ catalog, manifestPaths = [], sourcePackages = {} } = {})`
96
118
  - `resolveInstalledPackage(consumerDirectory, packageId)`
97
119
  - `collectLockInstallations(packageLock = {})`
98
- - `discoverProjectManifests(projectRoot, additionalManifests = [])`
120
+ - `discoverProjectManifests`
99
121
  - `normalizeCatalog(catalog = {})`
100
122
  - `updateProject({ projectRoot = process.cwd(), catalog, install = true, installProject = runNpmInstall, additionalManifests = [] } = {})`
101
123
  Local functions
102
- - `toPosixPath(value = "")`
103
- - `normalizeWorkspacePatterns(value)`
104
- - `globToRegExp(pattern = "")`
105
- - `createWorkspaceMatcher(workspaces)`
106
- - `fileExists(absolutePath)`
107
- - `readJsonRecord(absolutePath)`
108
- - `collectNestedPackageJsonPaths(directory, results = [])`
109
- - `serializePackageJson(value, originalContents = "")`
110
124
  - `collectManifestDeclarations(manifests, projectRoot)`
111
125
  - `collectLocalPackageNames(manifests)`
112
126
  - `resolveLockPackageName(packagePath = "", record = {})`
113
127
  - `collectJskitOverridePaths(value, currentPath = "overrides", results = [])`
114
- - `writeManifestUpdates(updates = [])`
115
- - `readOptionalFile(absolutePath)`
116
- - `restoreProjectFiles(updates, packageLockPath, packageLockSnapshot)`
117
128
  - `removeJskitDependencyRecords(dependencies = {}, localPackageNames = new Set())`
118
129
  - `alignLockManifestRecord(lockRecord, manifest, localPackageNames)`
119
130
  - `preparePackageLockForInstall(projectRoot, manifests, packageLockPath)`
120
- - `spawnNpmInstall(projectRoot)`
121
- - `runNpmInstall(projectRoot)`
122
131
 
123
132
  ### `scripts/verify-packages.mjs`
124
133
  Exports
@@ -129,9 +138,10 @@ Exports
129
138
  - `validateProviderList(packageRecord, side)`
130
139
  - `validateSingletonPeerDependencies(packages)`
131
140
  Local functions
132
- - `fileExists(filePath)`
133
141
  - `requireStringArray(value, label)`
134
142
  - `requireArchitectureId(value, label)`
135
143
  - `validateCapabilityMap(value, label)`
136
144
  - `validateProviderDefinition(value, label)`
145
+ - `validateMigrationsAfter(packageJson)`
146
+ - `validateMigrationDirectory(packageName, absoluteDirectory, relativeDirectory, migrationOwners)`
137
147
  - `validatePackage(packageRecord, localVersions, migrationOwners)`
@@ -14,6 +14,31 @@ Use this on demand; do not load the full index at startup.
14
14
 
15
15
  ### src
16
16
 
17
+ ### `src/manifests.mjs`
18
+ Exports
19
+ - `DEPENDENCY_FIELDS`
20
+ - `bumpPatch(version)`
21
+ - `collectPatternPackageJsonPaths(packageRoot, nestedManifests = ["patterns", "examples"])`
22
+ - `collectPublishDependencies(packageJson, localNames)`
23
+ - `collectVersionMismatches(packageJson, versions, source)`
24
+ - `currentVersionMap(records)`
25
+ - `discoverManifests(repoRoot)`
26
+ - `discoverReleasePackages(repoRoot)`
27
+ - `fileExists(absolutePath)`
28
+ - `prepareManifests(records, versions, repoRoot, config)`
29
+ - `readJsonFile(absolutePath)`
30
+ - `releaseConfig(repoRoot)`
31
+ - `serializeJson(value)`
32
+ - `toPosixPath(value)`
33
+ - `topologicalPublishOrder(records)`
34
+ - `updatePackageDependencyVersions(packageJson, versions, changes = [])`
35
+ - `updatePatternPackageJsonContents(contents, versions)`
36
+ - `validateReleaseState(records, repoRoot)`
37
+ Local functions
38
+ - `followVersion(declared, version)`
39
+ - `expandWorkspacePattern(repoRoot, pattern)`
40
+ - `versionFilePaths(record)`
41
+
17
42
  ### `src/npm-publication.mjs`
18
43
  Exports
19
44
  - `createPublicationInspection({ directory, registry, configPath = "", env = process.env })`
@@ -30,31 +55,21 @@ Local functions
30
55
  ### `src/release.mjs`
31
56
  Exports
32
57
  - `assertMainReleaseCheckout(repoRoot)`
33
- - `bumpPatch(version)`
34
- - `collectPublishDependencies(packageJson, localNames)`
35
- - `collectPatternPackageJsonPaths(packageRoot, nestedManifests = ["patterns", "examples"])`
36
- - `collectVersionMismatches(packageJson, versions, source)`
58
+ - `bumpPatch`
59
+ - `collectPublishDependencies`
60
+ - `collectPatternPackageJsonPaths`
61
+ - `collectVersionMismatches`
37
62
  - `commitAndPush(repoRoot, message)`
38
- - `discoverManifests(repoRoot)`
39
- - `discoverReleasePackages(repoRoot)`
63
+ - `discoverManifests`
64
+ - `discoverReleasePackages`
40
65
  - `main(argv = process.argv.slice(2))`
41
66
  - `parseArgs(argv = [])`
42
- - `topologicalPublishOrder(records)`
43
- - `updatePackageDependencyVersions(packageJson, versions, changes = [])`
44
- - `updatePatternPackageJsonContents(contents, versions)`
45
- - `validateReleaseState(records, repoRoot)`
67
+ - `topologicalPublishOrder`
68
+ - `updatePackageDependencyVersions`
69
+ - `updatePatternPackageJsonContents`
70
+ - `validateReleaseState`
46
71
  Local functions
47
72
  - `normalizeRegistryUrl(value)`
48
- - `fileExists(absolutePath)`
49
- - `readJsonFile(absolutePath)`
50
- - `serializeJson(value)`
51
- - `toPosixPath(value)`
52
- - `followVersion(declared, version)`
53
- - `expandWorkspacePattern(repoRoot, pattern)`
54
- - `releaseConfig(repoRoot)`
55
- - `currentVersionMap(records)`
56
- - `prepareManifests(records, versions, repoRoot, config)`
57
- - `versionFilePaths(record)`
58
73
  - `runCommand(command, args, { cwd, env = process.env } = {})`
59
74
  - `compareVersions(left, right)`
60
75
  - `assertNoNewerVersions(records, inspection)`
@@ -24,4 +24,6 @@ Exports
24
24
 
25
25
  ### `fakeFastify.mjs`
26
26
  Exports
27
- - `createFakeFastifyPolicyRuntime({ csrfHandler, autoRunPlugin = null } = {})`
27
+ - `createFakeFastifyPolicyRuntime({ csrfHandler = passCsrfProtection } = {})`
28
+ Local functions
29
+ - `passCsrfProtection(_request, _reply, done)`
@@ -38,11 +38,12 @@ manifests, migrations, tests, and runtime behaviour are the evidence.
38
38
  1. Read the request and nearest `AGENTS.md`.
39
39
  2. Inspect `package.json`, `package-lock.json`, installed package metadata, the
40
40
  existing tree, and the current diff when reviewing changes.
41
- 3. Read the project's product documentation and current source. JSKIT does not
42
- own a second project brain or prescribe a particular agent orchestrator.
41
+ 3. Read the project's product documentation and current source; JSKIT owns no
42
+ second project brain or agent orchestrator.
43
43
  4. Load only relevant references:
44
44
  - [port guide](references/existing-application-migration.md) for existing apps.
45
45
  - [heuristics index](references/heuristics/INDEX.md) for recurring traps.
46
+ - Before writing server code, read [typed features](references/typed-features.md) and its heuristic; client code, [client features](references/client-features.md). `npm run lint` checks both.
46
47
  - [multi-homing](references/multi-homing.md) for workspaces or invitations.
47
48
  - [translation](references/translation.md) for languages, translated texts
48
49
  or error codes.
@@ -1,4 +1,4 @@
1
- <!-- Generated from `packages/agent-docs/site/guide/framework/application-operations.md` by `npm run agent-docs:build`. -->
1
+ <!-- Generated from `packages/agent-docs/site/guide/framework/application-operations.md`. -->
2
2
 
3
3
  # Application operations
4
4