@dizzlkheinz/ynab-mcpb 0.12.1

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 (435) hide show
  1. package/.chunkhound.json +11 -0
  2. package/.code/agents/0427d95e-edca-431f-a214-5e53264e29c4/error.txt +8 -0
  3. package/.code/agents/0d675174-d1e1-41c3-9975-4c2e275819a9/error.txt +3 -0
  4. package/.code/agents/0d8c5afd-4787-422b-abf8-2e5943fc7e67/error.txt +3 -0
  5. package/.code/agents/0ec34a70-ed5d-4b9e-bee4-bb0e4cccbc4b/error.txt +1 -0
  6. package/.code/agents/0ef51a21-1ab1-49d7-9561-0eaa43875ebc/error.txt +12 -0
  7. package/.code/agents/15db95d7-abad-4b4d-9c3b-8446089cb61d/error.txt +1 -0
  8. package/.code/agents/19ab9acb-f675-4ff0-902a-09a5476f8149/error.txt +1 -0
  9. package/.code/agents/1ef7e12d-f6ff-4897-8a9b-152d523d898e/error.txt +5 -0
  10. package/.code/agents/2465/exec-call_lroN9KKzJVWC7t5423DK1nT9.txt +1453 -0
  11. package/.code/agents/28edb6fe-95a9-41a0-ae69-aa0100d26c0c/error.txt +8 -0
  12. package/.code/agents/2ae40cf5-b4bf-42e2-92bf-7ea350a7755e/error.txt +9 -0
  13. package/.code/agents/2bfc4e1f-ac4b-45a5-b6df-bf89d4dbb54c/error.txt +1 -0
  14. package/.code/agents/2e2e1134-eff0-49be-ba25-8e2c3468a564/error.txt +5 -0
  15. package/.code/agents/3/exec-call_203OC4TNVkLxW7z2HCVEQ1cM.txt +81 -0
  16. package/.code/agents/3/exec-call_SS5T0XSiXB4LSNzUKTl75wkh.txt +610 -0
  17. package/.code/agents/3322c003-ce5e-48e3-a342-f5049c5bf9a2/error.txt +1 -0
  18. package/.code/agents/391e9b08-1ebc-468c-9bcd-6d0cc3193b37/error.txt +1 -0
  19. package/.code/agents/3ab0aa84-b7bb-4054-afa3-40b8fd7d3be0/error.txt +1 -0
  20. package/.code/agents/3bed368d-50fe-477e-aee3-a6707eaa1ab9/error.txt +3 -0
  21. package/.code/agents/3e40b925-db12-442f-8d7a-a25fc69a6672/error.txt +8 -0
  22. package/.code/agents/414d5776-cf58-41f3-9328-a6daed503a50/error.txt +5 -0
  23. package/.code/agents/42687751-4565-4610-b240-67835b17d861/error.txt +1 -0
  24. package/.code/agents/46b98876-1a39-43c9-9e2f-507ca6d47335/error.txt +9 -0
  25. package/.code/agents/4a7d9491-b26f-43dd-850d-2ecdc49b5d1b/error.txt +1 -0
  26. package/.code/agents/4e60f00a-1b3e-447f-87f3-7faf9deddec3/error.txt +13 -0
  27. package/.code/agents/5138fc1c-4d49-4b74-a7da-ccdb3a8e44e7/error.txt +14 -0
  28. package/.code/agents/521cff39-a7a3-42e5-a557-134f0f7daaa0/error.txt +5 -0
  29. package/.code/agents/53302dc5-3857-4413-9a47-9e0f64a51dc4/error.txt +5 -0
  30. package/.code/agents/567c7c2e-6a6f-4761-a08d-d36deeb2e0ac/error.txt +5 -0
  31. package/.code/agents/57b00845-80dc-47c9-953c-3028d16275d6/error.txt +3 -0
  32. package/.code/agents/593d9005-c2a5-48fd-8813-ece0d3f2de96/error.txt +1 -0
  33. package/.code/agents/5a112e66-0e1a-42f9-877c-53af56ea3551/error.txt +1 -0
  34. package/.code/agents/5b05e8ed-7788-4738-b7ee-9faa8180f992/error.txt +5 -0
  35. package/.code/agents/5f888d6f-d7ca-4ac8-be23-9ea1bf753951/error.txt +5 -0
  36. package/.code/agents/607db3ab-e4b0-435b-b497-93e9aa525549/error.txt +8 -0
  37. package/.code/agents/67dcb2a2-900f-4c78-b3fc-80b5213e0ddf/error.txt +8 -0
  38. package/.code/agents/69ad848c-4e98-49b3-b16c-0094ac2d1759/error.txt +5 -0
  39. package/.code/agents/6c9cfc5f-0d0b-445c-b121-9f60082c4f70/error.txt +1 -0
  40. package/.code/agents/6f6f8f77-4ab0-4f6e-9f30-40e8be0bd8f5/error.txt +1 -0
  41. package/.code/agents/72a7cde4-fa8a-4024-9038-27faa550539b/error.txt +1 -0
  42. package/.code/agents/7b48335c-8247-43aa-9949-5f820ba8e199/error.txt +1 -0
  43. package/.code/agents/80944249-bea9-4ac5-87de-a666c4df306e/error.txt +1 -0
  44. package/.code/agents/826099df-1b66-4186-a915-7eb59f9db19d/error.txt +5 -0
  45. package/.code/agents/8291d158-18a8-4a92-b799-4e9a4d9cce88/error.txt +1 -0
  46. package/.code/agents/82fb71a3-20fb-4341-804a-a2fc900f95bc/error.txt +1 -0
  47. package/.code/agents/855790ea-54ee-43e4-8209-a66994e37590/error.txt +1 -0
  48. package/.code/agents/88ce3a2e-04f2-42be-9062-bf97aa798da0/error.txt +3 -0
  49. package/.code/agents/9a17e398-b6ed-4218-bb55-bc64a8d38ce8/error.txt +8 -0
  50. package/.code/agents/9a4f4bfc-a2a6-4f40-a896-9335b41a7ed1/error.txt +1 -0
  51. package/.code/agents/9b633e55-ef84-47d6-94bb-fd3dd172ad97/error.txt +1 -0
  52. package/.code/agents/9b81f3ab-c72b-4a81-9a8f-28a49ddba84a/error.txt +8 -0
  53. package/.code/agents/a35daf29-b2d1-4aef-9b42-dad63a76bd47/error.txt +3 -0
  54. package/.code/agents/a81990cc-69ee-44d2-b907-17403c9bc5d7/error.txt +5 -0
  55. package/.code/agents/ab56260a-4a83-4ad4-9410-f88a23d6520a/error.txt +1 -0
  56. package/.code/agents/ad722c31-2d1d-45f7-bae2-3f02ca455b60/error.txt +1 -0
  57. package/.code/agents/b62e8690-3324-4b97-9309-731bee79416b/error.txt +5 -0
  58. package/.code/agents/baf60a3a-752b-4ad8-99d6-df32423ed2eb/error.txt +1 -0
  59. package/.code/agents/be049042-7dcb-4ac8-9beb-c8f1aea67742/error.txt +14 -0
  60. package/.code/agents/bed1dcb4-bfce-4a9f-8594-0f994962aafd/error.txt +1 -0
  61. package/.code/agents/c324a6cf-e935-4ede-9529-b3ebc18e8d6b/error.txt +5 -0
  62. package/.code/agents/c37c06ff-dfe3-43f2-9bbc-3ec73ec8f41d/error.txt +5 -0
  63. package/.code/agents/c8cd6671-433a-456b-9f88-e51cb2df6bfc/error.txt +11 -0
  64. package/.code/agents/ca2ccb67-2f24-428e-b27d-9365beadd140/error.txt +1 -0
  65. package/.code/agents/cf08c0c8-e7f0-423e-93ba-547e8e818340/error.txt +8 -0
  66. package/.code/agents/d579c74f-874b-40a4-9d56-ced1eb6a701d/error.txt +1 -0
  67. package/.code/agents/df412c98-7378-4deb-8e1e-76c416931181/error.txt +3 -0
  68. package/.code/agents/e5134eb3-2af4-45b0-8998-051cb4afdb45/error.txt +3 -0
  69. package/.code/agents/e6308471-aa45-4e9e-9496-2e9404164d97/error.txt +8 -0
  70. package/.code/agents/e7bd8bc7-23fb-4f46-98dc-b0dcf11b75a1/error.txt +1 -0
  71. package/.code/agents/e92bec35-378d-4fe1-8ac0-6e1bb3c86911/error.txt +5 -0
  72. package/.code/agents/ed918fbf-2dc4-4aa2-bfc5-04b65d9471ea/error.txt +1 -0
  73. package/.code/agents/ef1d756f-b272-48fc-8729-f05c494674f7/error.txt +1 -0
  74. package/.code/agents/ef359853-0249-4e41-a804-c0fc459fe456/error.txt +1 -0
  75. package/.code/agents/effc7b4a-4b90-40a0-8c86-a7a99d2d5fd2/error.txt +1 -0
  76. package/.code/agents/fa15f8d5-8359-4a8b-83a3-2f2056b3ff40/error.txt +3 -0
  77. package/.code/agents/fbef4193-eadf-4c8a-83ff-4878a6310f25/error.txt +8 -0
  78. package/.code/agents/fd0a4b4a-fda4-4964-a6d6-2b8a2da387c6/error.txt +1 -0
  79. package/.dxtignore +57 -0
  80. package/.env.example +44 -0
  81. package/.gemini/settings.json +8 -0
  82. package/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
  83. package/.github/ISSUE_TEMPLATE/config.yml +5 -0
  84. package/.github/ISSUE_TEMPLATE/feature_request.md +24 -0
  85. package/.github/ISSUE_TEMPLATE/release_checklist.md +31 -0
  86. package/.github/pull_request_template.md +41 -0
  87. package/.github/workflows/ci-tests.yml +41 -0
  88. package/.github/workflows/claude-code-review.yml +57 -0
  89. package/.github/workflows/claude.yml +50 -0
  90. package/.github/workflows/full-integration.yml +22 -0
  91. package/.github/workflows/pr-description-check.yml +88 -0
  92. package/.github/workflows/publish.yml +33 -0
  93. package/.github/workflows/release.yml +89 -0
  94. package/.mcpbignore +58 -0
  95. package/.prettierignore +10 -0
  96. package/.prettierrc.json +10 -0
  97. package/ADOS-2-Module-1-Complete-Manual.md +757 -0
  98. package/AGENTS.md +36 -0
  99. package/CHANGELOG.md +187 -0
  100. package/CLAUDE.md +414 -0
  101. package/CODEREVIEW_RESPONSE.md +128 -0
  102. package/LICENSE +17 -0
  103. package/NUL +1 -0
  104. package/README.md +222 -0
  105. package/SCHEMA_IMPROVEMENT_SUMMARY.md +120 -0
  106. package/TESTING_NOTES.md +217 -0
  107. package/WARP.md +245 -0
  108. package/accountactivity-merged.csv +149 -0
  109. package/bin/ynab-mcp-server.cjs +4 -0
  110. package/bin/ynab-mcp-server.js +8 -0
  111. package/bundle-analysis.html +13110 -0
  112. package/dist/bundle/index.cjs +124 -0
  113. package/dist/index.d.ts +2 -0
  114. package/dist/index.js +85 -0
  115. package/dist/server/YNABMCPServer.d.ts +264 -0
  116. package/dist/server/YNABMCPServer.js +845 -0
  117. package/dist/server/budgetResolver.d.ts +15 -0
  118. package/dist/server/budgetResolver.js +99 -0
  119. package/dist/server/cacheManager.d.ts +74 -0
  120. package/dist/server/cacheManager.js +306 -0
  121. package/dist/server/config.d.ts +3 -0
  122. package/dist/server/config.js +19 -0
  123. package/dist/server/deltaCache.d.ts +61 -0
  124. package/dist/server/deltaCache.js +206 -0
  125. package/dist/server/deltaCache.merge.d.ts +9 -0
  126. package/dist/server/deltaCache.merge.js +111 -0
  127. package/dist/server/diagnostics.d.ts +90 -0
  128. package/dist/server/diagnostics.js +163 -0
  129. package/dist/server/errorHandler.d.ts +69 -0
  130. package/dist/server/errorHandler.js +524 -0
  131. package/dist/server/prompts.d.ts +31 -0
  132. package/dist/server/prompts.js +205 -0
  133. package/dist/server/rateLimiter.d.ts +27 -0
  134. package/dist/server/rateLimiter.js +82 -0
  135. package/dist/server/requestLogger.d.ts +62 -0
  136. package/dist/server/requestLogger.js +190 -0
  137. package/dist/server/resources.d.ts +39 -0
  138. package/dist/server/resources.js +85 -0
  139. package/dist/server/responseFormatter.d.ts +14 -0
  140. package/dist/server/responseFormatter.js +42 -0
  141. package/dist/server/securityMiddleware.d.ts +87 -0
  142. package/dist/server/securityMiddleware.js +117 -0
  143. package/dist/server/serverKnowledgeStore.d.ts +11 -0
  144. package/dist/server/serverKnowledgeStore.js +42 -0
  145. package/dist/server/toolRegistry.d.ts +85 -0
  146. package/dist/server/toolRegistry.js +272 -0
  147. package/dist/tools/__tests__/deltaTestUtils.d.ts +18 -0
  148. package/dist/tools/__tests__/deltaTestUtils.js +26 -0
  149. package/dist/tools/accountTools.d.ts +37 -0
  150. package/dist/tools/accountTools.js +175 -0
  151. package/dist/tools/budgetTools.d.ts +10 -0
  152. package/dist/tools/budgetTools.js +68 -0
  153. package/dist/tools/categoryTools.d.ts +27 -0
  154. package/dist/tools/categoryTools.js +232 -0
  155. package/dist/tools/compareTransactions/formatter.d.ts +71 -0
  156. package/dist/tools/compareTransactions/formatter.js +97 -0
  157. package/dist/tools/compareTransactions/index.d.ts +30 -0
  158. package/dist/tools/compareTransactions/index.js +160 -0
  159. package/dist/tools/compareTransactions/matcher.d.ts +12 -0
  160. package/dist/tools/compareTransactions/matcher.js +140 -0
  161. package/dist/tools/compareTransactions/parser.d.ts +14 -0
  162. package/dist/tools/compareTransactions/parser.js +430 -0
  163. package/dist/tools/compareTransactions/types.d.ts +27 -0
  164. package/dist/tools/compareTransactions/types.js +1 -0
  165. package/dist/tools/compareTransactions.d.ts +1 -0
  166. package/dist/tools/compareTransactions.js +1 -0
  167. package/dist/tools/deltaFetcher.d.ts +22 -0
  168. package/dist/tools/deltaFetcher.js +137 -0
  169. package/dist/tools/deltaSupport.d.ts +20 -0
  170. package/dist/tools/deltaSupport.js +176 -0
  171. package/dist/tools/exportTransactions.d.ts +17 -0
  172. package/dist/tools/exportTransactions.js +191 -0
  173. package/dist/tools/monthTools.d.ts +16 -0
  174. package/dist/tools/monthTools.js +107 -0
  175. package/dist/tools/payeeTools.d.ts +17 -0
  176. package/dist/tools/payeeTools.js +82 -0
  177. package/dist/tools/reconcileAdapter.d.ts +25 -0
  178. package/dist/tools/reconcileAdapter.js +167 -0
  179. package/dist/tools/reconciliation/analyzer.d.ts +3 -0
  180. package/dist/tools/reconciliation/analyzer.js +567 -0
  181. package/dist/tools/reconciliation/executor.d.ts +94 -0
  182. package/dist/tools/reconciliation/executor.js +611 -0
  183. package/dist/tools/reconciliation/index.d.ts +54 -0
  184. package/dist/tools/reconciliation/index.js +249 -0
  185. package/dist/tools/reconciliation/matcher.d.ts +3 -0
  186. package/dist/tools/reconciliation/matcher.js +160 -0
  187. package/dist/tools/reconciliation/payeeNormalizer.d.ts +6 -0
  188. package/dist/tools/reconciliation/payeeNormalizer.js +77 -0
  189. package/dist/tools/reconciliation/recommendationEngine.d.ts +2 -0
  190. package/dist/tools/reconciliation/recommendationEngine.js +273 -0
  191. package/dist/tools/reconciliation/reportFormatter.d.ts +13 -0
  192. package/dist/tools/reconciliation/reportFormatter.js +214 -0
  193. package/dist/tools/reconciliation/types.d.ts +172 -0
  194. package/dist/tools/reconciliation/types.js +7 -0
  195. package/dist/tools/schemas/outputs/accountOutputs.d.ts +58 -0
  196. package/dist/tools/schemas/outputs/accountOutputs.js +24 -0
  197. package/dist/tools/schemas/outputs/budgetOutputs.d.ts +48 -0
  198. package/dist/tools/schemas/outputs/budgetOutputs.js +15 -0
  199. package/dist/tools/schemas/outputs/categoryOutputs.d.ts +93 -0
  200. package/dist/tools/schemas/outputs/categoryOutputs.js +37 -0
  201. package/dist/tools/schemas/outputs/comparisonOutputs.d.ts +269 -0
  202. package/dist/tools/schemas/outputs/comparisonOutputs.js +181 -0
  203. package/dist/tools/schemas/outputs/index.d.ts +14 -0
  204. package/dist/tools/schemas/outputs/index.js +14 -0
  205. package/dist/tools/schemas/outputs/monthOutputs.d.ts +122 -0
  206. package/dist/tools/schemas/outputs/monthOutputs.js +51 -0
  207. package/dist/tools/schemas/outputs/payeeOutputs.d.ts +34 -0
  208. package/dist/tools/schemas/outputs/payeeOutputs.js +16 -0
  209. package/dist/tools/schemas/outputs/reconciliationOutputs.d.ts +1275 -0
  210. package/dist/tools/schemas/outputs/reconciliationOutputs.js +377 -0
  211. package/dist/tools/schemas/outputs/transactionMutationOutputs.d.ts +717 -0
  212. package/dist/tools/schemas/outputs/transactionMutationOutputs.js +260 -0
  213. package/dist/tools/schemas/outputs/transactionOutputs.d.ts +98 -0
  214. package/dist/tools/schemas/outputs/transactionOutputs.js +49 -0
  215. package/dist/tools/schemas/outputs/utilityOutputs.d.ts +219 -0
  216. package/dist/tools/schemas/outputs/utilityOutputs.js +120 -0
  217. package/dist/tools/schemas/shared/commonOutputs.d.ts +24 -0
  218. package/dist/tools/schemas/shared/commonOutputs.js +27 -0
  219. package/dist/tools/toolCategories.d.ts +32 -0
  220. package/dist/tools/toolCategories.js +32 -0
  221. package/dist/tools/transactionTools.d.ts +315 -0
  222. package/dist/tools/transactionTools.js +1722 -0
  223. package/dist/tools/utilityTools.d.ts +10 -0
  224. package/dist/tools/utilityTools.js +56 -0
  225. package/dist/types/index.d.ts +20 -0
  226. package/dist/types/index.js +16 -0
  227. package/dist/types/toolAnnotations.d.ts +7 -0
  228. package/dist/types/toolAnnotations.js +1 -0
  229. package/dist/utils/amountUtils.d.ts +3 -0
  230. package/dist/utils/amountUtils.js +10 -0
  231. package/dist/utils/dateUtils.d.ts +9 -0
  232. package/dist/utils/dateUtils.js +43 -0
  233. package/dist/utils/money.d.ts +21 -0
  234. package/dist/utils/money.js +51 -0
  235. package/docs/README.md +72 -0
  236. package/docs/assets/examples/reconciliation-with-recommendations.json +68 -0
  237. package/docs/assets/schemas/reconciliation-v2.json +338 -0
  238. package/docs/getting-started/CONFIGURATION.md +175 -0
  239. package/docs/getting-started/INSTALLATION.md +333 -0
  240. package/docs/getting-started/QUICKSTART.md +282 -0
  241. package/docs/guides/ARCHITECTURE.md +650 -0
  242. package/docs/guides/DEPLOYMENT.md +189 -0
  243. package/docs/guides/INTEGRATION_TESTING.md +730 -0
  244. package/docs/guides/TESTING.md +591 -0
  245. package/docs/reconciliation-flow.md +83 -0
  246. package/docs/reference/API.md +1450 -0
  247. package/docs/reference/EXAMPLES.md +946 -0
  248. package/docs/reference/TOOLS.md +348 -0
  249. package/docs/reference/TROUBLESHOOTING.md +481 -0
  250. package/esbuild.config.mjs +68 -0
  251. package/eslint.config.js +49 -0
  252. package/fix-types.sh +17 -0
  253. package/meta.json +12550 -0
  254. package/package.json +105 -0
  255. package/package.json.tmp +105 -0
  256. package/scripts/analyze-bundle.mjs +41 -0
  257. package/scripts/create-pr-description.js +203 -0
  258. package/scripts/generate-mcpb.ps1 +96 -0
  259. package/scripts/run-domain-integration-tests.js +33 -0
  260. package/scripts/run-generate-mcpb.js +29 -0
  261. package/scripts/run-throttled-integration-tests.js +116 -0
  262. package/scripts/test-delta-params.mjs +140 -0
  263. package/scripts/test-recommendations.ts +53 -0
  264. package/scripts/tmpTransaction.ts +48 -0
  265. package/scripts/validate-env.js +122 -0
  266. package/scripts/verify-build.js +105 -0
  267. package/scripts/watch-and-restart.ps1 +50 -0
  268. package/src/__tests__/comprehensive.integration.test.ts +1196 -0
  269. package/src/__tests__/delta.performance.test.ts +80 -0
  270. package/src/__tests__/performance.test.ts +725 -0
  271. package/src/__tests__/setup.ts +449 -0
  272. package/src/__tests__/testRunner.ts +444 -0
  273. package/src/__tests__/testUtils.ts +563 -0
  274. package/src/__tests__/workflows.e2e.test.ts +1675 -0
  275. package/src/index.ts +124 -0
  276. package/src/server/.gitkeep +1 -0
  277. package/src/server/YNABMCPServer.ts +1188 -0
  278. package/src/server/__tests__/YNABMCPServer.integration.test.ts +903 -0
  279. package/src/server/__tests__/YNABMCPServer.test.ts +894 -0
  280. package/src/server/__tests__/budgetResolver.test.ts +425 -0
  281. package/src/server/__tests__/cacheManager.test.ts +880 -0
  282. package/src/server/__tests__/config.test.ts +166 -0
  283. package/src/server/__tests__/deltaCache.merge.test.ts +724 -0
  284. package/src/server/__tests__/deltaCache.swr.test.ts +168 -0
  285. package/src/server/__tests__/deltaCache.test.ts +774 -0
  286. package/src/server/__tests__/diagnostics.test.ts +823 -0
  287. package/src/server/__tests__/errorHandler.integration.test.ts +466 -0
  288. package/src/server/__tests__/errorHandler.test.ts +416 -0
  289. package/src/server/__tests__/prompts.test.ts +354 -0
  290. package/src/server/__tests__/rateLimiter.test.ts +314 -0
  291. package/src/server/__tests__/requestLogger.test.ts +408 -0
  292. package/src/server/__tests__/resources.test.ts +299 -0
  293. package/src/server/__tests__/security.integration.test.ts +426 -0
  294. package/src/server/__tests__/securityMiddleware.test.ts +449 -0
  295. package/src/server/__tests__/server-startup.integration.test.ts +477 -0
  296. package/src/server/__tests__/serverKnowledgeStore.test.ts +174 -0
  297. package/src/server/__tests__/toolRegistry.test.ts +855 -0
  298. package/src/server/budgetResolver.ts +235 -0
  299. package/src/server/cacheManager.ts +503 -0
  300. package/src/server/config.ts +41 -0
  301. package/src/server/deltaCache.merge.ts +149 -0
  302. package/src/server/deltaCache.ts +341 -0
  303. package/src/server/diagnostics.ts +338 -0
  304. package/src/server/errorHandler.ts +756 -0
  305. package/src/server/prompts.ts +291 -0
  306. package/src/server/rateLimiter.ts +156 -0
  307. package/src/server/requestLogger.ts +344 -0
  308. package/src/server/resources.ts +168 -0
  309. package/src/server/responseFormatter.ts +51 -0
  310. package/src/server/securityMiddleware.ts +236 -0
  311. package/src/server/serverKnowledgeStore.ts +91 -0
  312. package/src/server/toolRegistry.ts +489 -0
  313. package/src/tools/.gitkeep +1 -0
  314. package/src/tools/__tests__/accountTools.delta.integration.test.ts +128 -0
  315. package/src/tools/__tests__/accountTools.integration.test.ts +117 -0
  316. package/src/tools/__tests__/accountTools.test.ts +653 -0
  317. package/src/tools/__tests__/budgetTools.delta.integration.test.ts +90 -0
  318. package/src/tools/__tests__/budgetTools.integration.test.ts +134 -0
  319. package/src/tools/__tests__/budgetTools.test.ts +423 -0
  320. package/src/tools/__tests__/categoryTools.delta.integration.test.ts +80 -0
  321. package/src/tools/__tests__/categoryTools.integration.test.ts +295 -0
  322. package/src/tools/__tests__/categoryTools.test.ts +622 -0
  323. package/src/tools/__tests__/compareTransactions/formatter.test.ts +486 -0
  324. package/src/tools/__tests__/compareTransactions/index.test.ts +383 -0
  325. package/src/tools/__tests__/compareTransactions/matcher.test.ts +410 -0
  326. package/src/tools/__tests__/compareTransactions/parser.test.ts +764 -0
  327. package/src/tools/__tests__/compareTransactions.test.ts +342 -0
  328. package/src/tools/__tests__/compareTransactions.window.test.ts +147 -0
  329. package/src/tools/__tests__/deltaFetcher.scheduled.integration.test.ts +76 -0
  330. package/src/tools/__tests__/deltaFetcher.test.ts +270 -0
  331. package/src/tools/__tests__/deltaSupport.test.ts +188 -0
  332. package/src/tools/__tests__/deltaTestUtils.ts +46 -0
  333. package/src/tools/__tests__/exportTransactions.test.ts +213 -0
  334. package/src/tools/__tests__/monthTools.delta.integration.test.ts +80 -0
  335. package/src/tools/__tests__/monthTools.integration.test.ts +174 -0
  336. package/src/tools/__tests__/monthTools.test.ts +523 -0
  337. package/src/tools/__tests__/payeeTools.delta.integration.test.ts +80 -0
  338. package/src/tools/__tests__/payeeTools.integration.test.ts +150 -0
  339. package/src/tools/__tests__/payeeTools.test.ts +445 -0
  340. package/src/tools/__tests__/transactionTools.integration.test.ts +762 -0
  341. package/src/tools/__tests__/transactionTools.test.ts +3521 -0
  342. package/src/tools/__tests__/utilityTools.integration.test.ts +128 -0
  343. package/src/tools/__tests__/utilityTools.test.ts +205 -0
  344. package/src/tools/accountTools.ts +283 -0
  345. package/src/tools/budgetTools.ts +112 -0
  346. package/src/tools/categoryTools.ts +366 -0
  347. package/src/tools/compareTransactions/formatter.ts +163 -0
  348. package/src/tools/compareTransactions/index.ts +228 -0
  349. package/src/tools/compareTransactions/matcher.ts +240 -0
  350. package/src/tools/compareTransactions/parser.ts +557 -0
  351. package/src/tools/compareTransactions/types.ts +60 -0
  352. package/src/tools/compareTransactions.ts +3 -0
  353. package/src/tools/deltaFetcher.ts +278 -0
  354. package/src/tools/deltaSupport.ts +293 -0
  355. package/src/tools/exportTransactions.ts +273 -0
  356. package/src/tools/monthTools.ts +164 -0
  357. package/src/tools/payeeTools.ts +140 -0
  358. package/src/tools/reconcileAdapter.ts +312 -0
  359. package/src/tools/reconciliation/__tests__/adapter.causes.test.ts +122 -0
  360. package/src/tools/reconciliation/__tests__/adapter.test.ts +234 -0
  361. package/src/tools/reconciliation/__tests__/analyzer.test.ts +406 -0
  362. package/src/tools/reconciliation/__tests__/executor.integration.test.ts +366 -0
  363. package/src/tools/reconciliation/__tests__/executor.test.ts +779 -0
  364. package/src/tools/reconciliation/__tests__/matcher.test.ts +650 -0
  365. package/src/tools/reconciliation/__tests__/payeeNormalizer.test.ts +278 -0
  366. package/src/tools/reconciliation/__tests__/recommendationEngine.integration.test.ts +658 -0
  367. package/src/tools/reconciliation/__tests__/recommendationEngine.test.ts +1000 -0
  368. package/src/tools/reconciliation/__tests__/reconciliation.delta.integration.test.ts +151 -0
  369. package/src/tools/reconciliation/__tests__/reportFormatter.test.ts +573 -0
  370. package/src/tools/reconciliation/__tests__/scenarios/adapterCurrency.scenario.test.ts +78 -0
  371. package/src/tools/reconciliation/__tests__/scenarios/extremes.scenario.test.ts +47 -0
  372. package/src/tools/reconciliation/__tests__/scenarios/repeatAmount.scenario.test.ts +61 -0
  373. package/src/tools/reconciliation/__tests__/schemaUrl.test.ts +49 -0
  374. package/src/tools/reconciliation/analyzer.ts +824 -0
  375. package/src/tools/reconciliation/executor.ts +880 -0
  376. package/src/tools/reconciliation/index.ts +400 -0
  377. package/src/tools/reconciliation/matcher.ts +269 -0
  378. package/src/tools/reconciliation/payeeNormalizer.ts +167 -0
  379. package/src/tools/reconciliation/recommendationEngine.ts +506 -0
  380. package/src/tools/reconciliation/reportFormatter.ts +363 -0
  381. package/src/tools/reconciliation/types.ts +314 -0
  382. package/src/tools/schemas/outputs/__tests__/accountOutputs.test.ts +424 -0
  383. package/src/tools/schemas/outputs/__tests__/budgetOutputs.test.ts +310 -0
  384. package/src/tools/schemas/outputs/__tests__/categoryOutputs.test.ts +448 -0
  385. package/src/tools/schemas/outputs/__tests__/comparisonOutputs.test.ts +519 -0
  386. package/src/tools/schemas/outputs/__tests__/dateValidation.test.ts +155 -0
  387. package/src/tools/schemas/outputs/__tests__/discrepancyDirection.test.ts +288 -0
  388. package/src/tools/schemas/outputs/__tests__/monthOutputs.test.ts +478 -0
  389. package/src/tools/schemas/outputs/__tests__/payeeOutputs.test.ts +370 -0
  390. package/src/tools/schemas/outputs/__tests__/reconciliationOutputs.test.ts +401 -0
  391. package/src/tools/schemas/outputs/__tests__/transactionMutationSchemas.test.ts +213 -0
  392. package/src/tools/schemas/outputs/__tests__/transactionOutputs.test.ts +474 -0
  393. package/src/tools/schemas/outputs/__tests__/utilityOutputs.test.ts +333 -0
  394. package/src/tools/schemas/outputs/accountOutputs.ts +137 -0
  395. package/src/tools/schemas/outputs/budgetOutputs.ts +86 -0
  396. package/src/tools/schemas/outputs/categoryOutputs.ts +194 -0
  397. package/src/tools/schemas/outputs/comparisonOutputs.ts +600 -0
  398. package/src/tools/schemas/outputs/index.ts +270 -0
  399. package/src/tools/schemas/outputs/monthOutputs.ts +243 -0
  400. package/src/tools/schemas/outputs/payeeOutputs.ts +105 -0
  401. package/src/tools/schemas/outputs/reconciliationOutputs.ts +796 -0
  402. package/src/tools/schemas/outputs/transactionMutationOutputs.ts +758 -0
  403. package/src/tools/schemas/outputs/transactionOutputs.ts +243 -0
  404. package/src/tools/schemas/outputs/utilityOutputs.ts +411 -0
  405. package/src/tools/schemas/shared/commonOutputs.ts +140 -0
  406. package/src/tools/toolCategories.ts +140 -0
  407. package/src/tools/transactionTools.ts +2509 -0
  408. package/src/tools/utilityTools.ts +90 -0
  409. package/src/types/.gitkeep +1 -0
  410. package/src/types/__tests__/index.test.ts +52 -0
  411. package/src/types/index.ts +67 -0
  412. package/src/types/integration-tests.d.ts +35 -0
  413. package/src/types/toolAnnotations.ts +44 -0
  414. package/src/utils/__tests__/dateUtils.test.ts +170 -0
  415. package/src/utils/__tests__/money.test.ts +189 -0
  416. package/src/utils/amountUtils.ts +32 -0
  417. package/src/utils/dateUtils.ts +108 -0
  418. package/src/utils/money.ts +123 -0
  419. package/test-csv-sample.csv +28 -0
  420. package/test-exports/sample_bank_statement.csv +7 -0
  421. package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_09-04-53.json +23 -0
  422. package/test-exports/ynab_account_e9ddc2a6_minimal_1items_2025-11-19_10-37-42.json +23 -0
  423. package/test-exports/ynab_account_e9ddc2a6_minimal_4items_2025-11-19_09-02-09.json +44 -0
  424. package/test-exports/ynab_account_e9ddc2a6_minimal_6items_2025-11-19_10-37-52.json +58 -0
  425. package/test-exports/ynab_since_2025-11-01_account_4c18e9f0_minimal_14items_2025-11-16_10-07-10.json +115 -0
  426. package/test-reconcile-autodetect.js +40 -0
  427. package/test-reconcile-tool.js +152 -0
  428. package/test-reconcile-with-csv.cjs +89 -0
  429. package/test-statement.csv +8 -0
  430. package/test_debug.js +47 -0
  431. package/test_simple.mjs +16 -0
  432. package/tsconfig.json +31 -0
  433. package/tsconfig.prod.json +18 -0
  434. package/vitest-reporters/split-json-reporter.ts +211 -0
  435. package/vitest.config.ts +96 -0
@@ -0,0 +1,757 @@
1
+ ---
2
+ title: ADOS-2 Module 1 - Complete Coding Manual
3
+ tags: [ados, ados-2, module-1, autism, assessment, diagnostic]
4
+ created: 2025-01-20
5
+ type: reference
6
+ ---
7
+
8
+ # ADOS-2 Module 1: Complete Coding Manual
9
+
10
+ ## Overview
11
+
12
+ > [!info] Module 1 Target Population
13
+ > **Module 1** is for children **31 months and older** who do **not consistently use phrase speech** (pre-verbal or single-word speakers).
14
+
15
+ **Administration time:** 40-60 minutes
16
+ **Scoring:** Immediately after administration
17
+ **Scale:** Most items rated 0-3 (some 0-2), with 7, 8, 9 for special circumstances
18
+
19
+ ---
20
+
21
+ ## Module 1 Activities (10 Total)
22
+
23
+ 1. **Free Play**
24
+ 2. **Response to Name**
25
+ 3. **Response to Joint Attention**
26
+ 4. **Bubble Play**
27
+ 5. **Anticipation of Routine with Objects**
28
+ 6. **Responsive Social Smile**
29
+ 7. **Anticipation of Social Routine**
30
+ 8. **Functional and Symbolic Imitation**
31
+ 9. **Birthday Party**
32
+ 10. **Snack**
33
+
34
+ ---
35
+
36
+ # A Codes: Language and Communication
37
+
38
+ > [!note] A Codes Overview
39
+ > The **A codes** assess **Language and Communication** behaviors in Module 1. These codes evaluate both verbal and non-verbal communication skills.
40
+
41
+ ## A1: Overall Level of Non-Echoed Language
42
+
43
+ **What it measures:** Complexity and quality of spontaneous, non-repetitive spoken language.
44
+
45
+ | Score | Description |
46
+ | ----- | ------------------------------------------------------------------------------------------------------------ |
47
+ | **0** | Non-echoed phrase speech of **3+ words per utterance**; some grammatical markings (plural, tense) |
48
+ | **1** | Speech primarily **2-3 word utterances**, minimal/no grammatical markings |
49
+ | **2** | **Occasional phrases only**; mostly single words |
50
+ | **3** | **Recognizable single words** or word approximations; must use **at least 5 different words** during session |
51
+ | **4** | At least **one word** or approximation, but **fewer than 5 words** used |
52
+ | **5** | **No spontaneous or echoed** use of spoken words |
53
+ | **7** | **All speech is echoed** (immediate or delayed), with or without communicative intent |
54
+ | **8** | No words or word approximations |
55
+ | **9** | N/A |
56
+
57
+ > [!warning] Critical Code
58
+ > **A1** determines which algorithm is used: **Few-to-No Words** vs. **Some Words**
59
+
60
+ ---
61
+
62
+ ## A2: Frequency of Vocalization Directed to Others ⭐
63
+
64
+ **What it measures:** How often child directs vocalizations toward examiner/caregiver, and in what contexts.
65
+
66
+ | Score | Description |
67
+ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
68
+ | **0** | Directs vocalizations in **variety of pragmatic contexts**. Must include chatting/being friendly OR expressing interest/sharing enjoyment, plus making needs known |
69
+ | **1** | Directs vocalizations **consistently in ONE context** (e.g., only to request), OR limited vocalizations across variety of contexts |
70
+ | **2** | **Occasional vocalization** directed to others, inconsistently in limited contexts. May include whining/crying from frustration |
71
+ | **3** | Vocalizations **never/almost never** directed to others, OR **rarely/never vocalizes** |
72
+ | **-1** | Not Collected |
73
+ | **9** | Cannot be rated |
74
+
75
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
76
+
77
+ ---
78
+
79
+ ## A3: Intonation of Vocalizations or Verbalizations
80
+
81
+ **What it measures:** Quality of pitch, tone, and stress patterns in speech/vocalizations.
82
+
83
+ | Score | Description |
84
+ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
85
+ | **0** | **Normal, appropriately varying intonation**, no peculiar or odd intonation |
86
+ | **1** | **Little variation** in pitch/tone; flat or exaggerated, OR **occasional peculiar intonation** |
87
+ | **2** | **Odd intonation** or inappropriate pitch/stress, AND/OR **markedly flat/toneless mechanical** vocalizations, OR odd cry with few other vocalizations |
88
+ | **8** | **N/A** - insufficient vocalizations for assessment (includes normal cry with few other vocalizations) |
89
+ | **-1** | Not Collected |
90
+ | **9** | Cannot be rated |
91
+
92
+ > [!tip] Coding Focus
93
+ > **Focus:** Prosody (melody of speech), **NOT** articulation
94
+
95
+ ---
96
+
97
+ ## A4: Immediate Echolalia
98
+
99
+ **What it measures:** Tendency to repeat others' speech immediately after hearing it.
100
+
101
+ | Score | Description |
102
+ | ------ | --------------------------------------------------------------------------------------- |
103
+ | **0** | **Rarely/never repeats** others' speech (requires ≥5 words to code 0 vs. 8) |
104
+ | **1** | **Occasional echoing** |
105
+ | **2** | **Echoing words/phrases regularly**, but some spontaneous language (can be stereotyped) |
106
+ | **3** | **Speech largely consists** of immediate echolalia |
107
+ | **8** | N/A or **not enough language to judge** |
108
+ | **-1** | Not Collected |
109
+ | **9** | Cannot be rated |
110
+
111
+ > [!note] Exclusions
112
+ > **Excludes:** Repetitions used as lead-in to response or as memory device
113
+
114
+ ---
115
+
116
+ ## A5: Stereotyped/Idiosyncratic Use of Words or Phrases ⭐
117
+
118
+ **What it measures:** Unusual, repetitive, or odd word/phrase usage (includes delayed echolalia).
119
+
120
+ | Score | Description |
121
+ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
122
+ | **0** | **Rarely/never** uses stereotyped or idiosyncratic words/phrases (requires ≥5 words) |
123
+ | **1** | Use **more repetitive than typical**, but not obviously odd, OR **occasional stereotyped utterances** or odd words, OR unusual phrase use with other flexible language |
124
+ | **2** | **Often uses stereotyped** utterances or odd words/phrases, with some other language |
125
+ | **3** | **Frequently uses odd/stereotyped** speech, **rarely uses non-stereotyped** spontaneous speech |
126
+ | **8** | **Language too limited to judge** |
127
+ | **-1** | Not Collected |
128
+ | **9** | Cannot be rated |
129
+
130
+ **Examples:**
131
+
132
+ - Delayed echolalia (TV/movie scripts)
133
+ - Neologisms
134
+ - Repetitive phrases with consistent intonation
135
+
136
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
137
+
138
+ ---
139
+
140
+ ## A6: Use of Other's Body to Communicate ⭐
141
+
142
+ **What it measures:** Using another person's body (hand, arm, etc.) as tool to communicate or achieve goals.
143
+
144
+ | Score | Description |
145
+ | ----- | -------------------------------------------------------------------------------------------------------------------------- |
146
+ | **0** | **No use** of another's body for specific goals, except when other strategies failed AND with coordinated gaze |
147
+ | **1** | Takes another's hand and **leads without coordinated gaze**, but no placement of hand on objects, no use as tool |
148
+ | **2** | **Movement of another's hand** when holding object OR **pushing examiner's hand away** without eye contact |
149
+ | **3** | **Placement of another's hand/body on object** OR **use as tool/to gesture "for" child** (e.g., using their hand to point) |
150
+ | **8** | **Little/no spontaneous communication** |
151
+ | **9** | Cannot be rated |
152
+
153
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
154
+
155
+ ---
156
+
157
+ ## A7: Pointing ⭐
158
+
159
+ **What it measures:** Use of pointing gestures for communication (referencing or requesting).
160
+
161
+ | Score | Description |
162
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
163
+ | **0** | Points with **index finger** with coordinated gaze/vocalization to reference objects in **≥2 activities** |
164
+ | **1** | Points to reference, but **insufficient flexibility/frequency** (only once, or no coordinated gaze with distal pointing), OR **pointing approximation** with coordination, OR only touches nearby objects with gaze/vocalization, OR points only to person/self |
165
+ | **2** | Points only when **close to/touching object**, **without coordinated gaze or vocalization** |
166
+ | **3** | **Does not point** |
167
+ | **-1** | Not Collected |
168
+ | **9** | Cannot be rated |
169
+
170
+ > [!important] Key for Score 0
171
+ > Must show **visual referencing** (coordinated gaze to object AND person)
172
+
173
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
174
+
175
+ ---
176
+
177
+ ## A8: Gestures ⭐
178
+
179
+ **What it measures:** Use of conventional, descriptive, emotional, or instrumental gestures (excluding pointing).
180
+
181
+ | Score | Description |
182
+ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
183
+ | **0** | Spontaneous use of **≥2 different gestures**; **≥1 used more than once** |
184
+ | **1** | Spontaneous use but **exaggerated or limited** in range/contexts (only one or used only once each). Communicative reaching can be coded here |
185
+ | **2** | **No spontaneous use**, OR **inappropriate use only** (e.g., signs "more" when wants stop) |
186
+ | **8** | **N/A** (limited by severe motor difficulties) |
187
+ | **-1** | Not Collected |
188
+ | **9** | Cannot be rated |
189
+
190
+ **Examples of gestures:**
191
+
192
+ - Waving
193
+ - Nodding/shaking head
194
+ - Shrugging
195
+ - Opening hands for "all done"
196
+ - Beckoning
197
+ - Conventional signs
198
+
199
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
200
+
201
+ ---
202
+
203
+ # B Codes: Reciprocal Social Interaction
204
+
205
+ > [!note] B Codes Overview
206
+ > The **B codes** assess **Reciprocal Social Interaction** behaviors, focusing on how the child engages socially with the examiner and caregiver.
207
+
208
+ ## B1: Unusual Eye Contact ⭐
209
+
210
+ **What it measures:** Quality and appropriateness of eye contact during social interaction.
211
+
212
+ | Score | Description |
213
+ | ------ | ---------------------------------------------------------------------------------------------------------------------- |
214
+ | **0** | **Appropriate gaze** with subtle changes meshed with other communication |
215
+ | **2** | Uses **poorly modulated eye contact** to initiate, terminate, or regulate social interaction |
216
+ | **3** | Poorly modulated eye contact AND **frequently actively avoids** eye contact (turning away, pushing away, closing eyes) |
217
+ | **-1** | Not Collected |
218
+ | **9** | Cannot be rated |
219
+
220
+ > [!note] Version Difference
221
+ > ADOS-2 removed score 3 for Module 1; Adapted ADOS retained it
222
+
223
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
224
+
225
+ ---
226
+
227
+ ## B2: Responsive Social Smile
228
+
229
+ **What it measures:** Child's ability to smile in response to others' smiles.
230
+
231
+ | Score | Description |
232
+ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
233
+ | **0** | Smiles **immediately** in response to one of **first two smiles** of examiner/caregiver. Must be clear change from nonsmiling to fully responsive smile, not prompted by specific request |
234
+ | **1** | **Delayed or partial smile** in response to first two smiles, OR smiles fully/partially only after **>2 smiles**, OR smiles only in response to **specific request** |
235
+ | **2** | Smiles fully/partially only after being **tickled or touched**, OR in response to **repeated action with physical component** |
236
+ | **3** | **Does not smile** in response to another person |
237
+ | **-1** | Not Collected |
238
+ | **9** | Cannot be rated |
239
+
240
+ ---
241
+
242
+ ## B3: Facial Expressions Directed to Others ⭐
243
+
244
+ **What it measures:** Range and appropriateness of facial expressions directed toward others.
245
+
246
+ | Score | Description |
247
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
248
+ | **0** | Directs **range of appropriate facial expressions** to examiner/caregiver to communicate affective or cognitive states |
249
+ | **1** | **Some direction** of facial expressions (e.g., only emotional extremes, or occasionally directs wider range). Limited range child who directs most expressions may be rated here |
250
+ | **2** | **Does not direct** appropriate facial expressions to others |
251
+ | **-1** | Not Collected |
252
+ | **9** | Cannot be rated |
253
+
254
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
255
+
256
+ ---
257
+
258
+ ## B4: Integration of Gaze and Other Behaviors During Social Overtures
259
+
260
+ **What it measures:** Coordination of eye contact with vocalizations/gestures during social initiations.
261
+
262
+ | Score | Description |
263
+ | ------ | -------------------------------------------------------------------------------------------------------------- |
264
+ | **0** | Uses **eye contact effectively** with words/vocalizations/gestures to communicate social intention |
265
+ | **1** | Uses eye contact and other strategies **independently** (uses both at different times, but doesn't coordinate) |
266
+ | **2** | Uses **either** eye contact **or** other strategies (vocalization, gestures) |
267
+ | **3** | Uses **neither** eye contact **nor** other strategies, OR **no social overtures** |
268
+ | **-1** | Not Collected |
269
+ | **9** | Cannot be rated |
270
+
271
+ > [!warning] Algorithm Note
272
+ > This item was replaced with "Amount of Reciprocal Social Communication" in ADOS-2 algorithms
273
+
274
+ ---
275
+
276
+ ## B5: Shared Enjoyment in Interaction ⭐
277
+
278
+ **What it measures:** Child's expression of pleasure during interaction with examiner.
279
+
280
+ | Score | Description |
281
+ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
282
+ | **0** | Shows **definite pleasure** with examiner during **>1 activity**. Must include pleasure in ≥1 activity **not purely physical** (not just tickling) |
283
+ | **1** | Shows **some pleasure** appropriate to context during interactions, OR shows definite pleasure during **one interaction** (may be physical) |
284
+ | **2** | Shows **little/no expressed pleasure** during interaction with examiner, but shows pleasure in own actions, with caregiver, or in non-interactive ADOS materials |
285
+ | **3** | **Little/no expressed pleasure** during ADOS and **little interest in toys** |
286
+ | **-1** | Not Collected |
287
+ | **9** | Cannot be rated |
288
+
289
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
290
+
291
+ ---
292
+
293
+ ## B6: Response to Name ⭐
294
+
295
+ **What it measures:** Child's response when name is called.
296
+
297
+ | Score | Description |
298
+ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
299
+ | **0** | Looks toward examiner and makes **eye contact immediately** on **≥1 of first 2 presses** |
300
+ | **1** | Makes eye contact with caregiver after first/second press only, OR with examiner after **third or fourth press** only |
301
+ | **2** | Does **not immediately make eye contact** in 6 attempts, but **shifts gaze briefly** (no eye contact), shifts gaze after delay, OR looks at least once when **interesting/familiar vocalization** made |
302
+ | **3** | **Does not look** toward examiner/caregiver after any purely verbal/vocal attempt to get attention |
303
+ | **-1** | Not Collected |
304
+ | **9** | Cannot be rated |
305
+
306
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
307
+
308
+ ---
309
+
310
+ ## B7: Requesting
311
+
312
+ **What it measures:** How child requests objects or actions.
313
+
314
+ | Score | Description |
315
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
316
+ | **0** | Exhibits **appropriate integration** of eye contact and ≥1 behavior (vocalization, gesture, handing object) to request. Must include eye contact and definite indication of wanting other person to do/give something (persisting if person pauses). NOT physically pulling/placing examiner's hand |
317
+ | **1** | Uses ≥1 behavior to request **without integrating eye contact** and other behaviors. Includes handing object without looking, looking without other behavior, brief requests without persistence. NOT pulling examiner's hand |
318
+ | **2** | Does not directly request as above, but uses **some physical means** to request ≥1 action as part of routine (e.g., pulls examiner's hand to object/self) |
319
+ | **3** | May participate in routines or try to activate object by vocalizing/banging/bouncing **without looking at person** or vocalizing for help, but **does not request** |
320
+ | **-1** | Not Collected |
321
+ | **9** | Cannot be rated |
322
+
323
+ ---
324
+
325
+ ## B8: Giving
326
+
327
+ **What it measures:** Spontaneous giving of objects to others.
328
+
329
+ | Score | Description |
330
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
331
+ | **0** | **Spontaneously gives** toys/objects to others in **variety of contexts** throughout ADOS, including giving toys, food, or pretend food for **sharing** |
332
+ | **1** | **>1 example** of giving objects for **getting help** (operating toys, opening containers) or as part of routine. May occur in one context but must be repeated without specific prompt |
333
+ | **2** | **Rarely/never gives** anything to another person |
334
+ | **-1** | Not Collected |
335
+ | **9** | Cannot be rated |
336
+
337
+ ---
338
+
339
+ ## B9: Showing ⭐
340
+
341
+ **What it measures:** Spontaneous showing of objects to others.
342
+
343
+ | Score | Description |
344
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
345
+ | **0** | **Spontaneously shows** toys/objects by holding up/placing in front of others and using **eye contact** with/without vocalization |
346
+ | **1** | Shows in **partial or inconsistent manner** (holds up/places without coordinated eye contact, looks from object to person without clearly orienting it, or shows as above on **one occasion only**) |
347
+ | **2** | **Does not show** objects to another person |
348
+ | **-1** | Not Collected |
349
+ | **9** | Cannot be rated |
350
+
351
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
352
+
353
+ ---
354
+
355
+ ## B10: Spontaneous Initiation of Joint Attention ⭐
356
+
357
+ **What it measures:** Child's ability to direct another's attention to objects of interest (out of reach).
358
+
359
+ | Score | Description |
360
+ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
361
+ | **0** | Uses **clearly integrated eye contact** to direct another's attention to out-of-reach object by looking at object → examiner/caregiver → back at object (OR starting with examiner). Eye contact may be coordinated with pointing/vocalization. **One clear example sufficient** |
362
+ | **1** | **Partially references** out-of-reach object. May look at and point to object and/or vocalize, but doesn't coordinate with looking at person, OR looks at object → person but not back at object |
363
+ | **2** | **No approximation** of spontaneous joint attention to direct another's attention to out-of-reach object |
364
+ | **-1** | Not Collected |
365
+ | **9** | Cannot be rated |
366
+
367
+ > [!tip] The "Triangle Gaze"
368
+ > **Key behavior:** object → person → object
369
+
370
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
371
+
372
+ ---
373
+
374
+ ## B11: Response to Joint Attention ⭐
375
+
376
+ **What it measures:** Child's ability to follow examiner's gaze or pointing to locate objects.
377
+
378
+ | Score | Description |
379
+ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
380
+ | **0** | Uses **examiner's eyes and face alone** as cue to look toward target, without need for pointing. Child must follow gaze and turn face/eyes in direction of target; doesn't have to catch sight of it |
381
+ | **1** | Responds to **examiner's pointing** by looking at/toward target |
382
+ | **2** | Does not follow examiner's gaze or pointing, but **looks at target when activated** |
383
+ | **3** | **Does not orient** to object even when activated. If impossible to get child's attention in 5 attempts, assign this rating |
384
+ | **-1** | Not Collected |
385
+ | **9** | Cannot be rated |
386
+
387
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
388
+
389
+ ---
390
+
391
+ ## B12: Quality of Social Overtures ⭐
392
+
393
+ **What it measures:** Appropriateness and quality of child's social initiations.
394
+
395
+ | Score | Description |
396
+ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
397
+ | **0** | **Effectively uses** nonverbal and verbal means to make **clear social overtures**. Must be appropriate to immediate contexts |
398
+ | **1** | **Slightly unusual** quality. Overtures restricted to personal demands or strong interests, but with some attempt to involve examiner/caregiver |
399
+ | **2** | Overtures often **lack integration into context AND/OR social quality**. Some clearly inappropriate overtures, even if other overtures present |
400
+ | **3** | **No social overtures** of any kind |
401
+ | **-1** | Not Collected |
402
+ | **9** | Cannot be rated |
403
+
404
+ ⭐ = **Included in diagnostic algorithm (SA domain)**
405
+
406
+ ---
407
+
408
+ # C Codes: Play
409
+
410
+ > [!note] C Codes Overview
411
+ > The **C codes** assess **Play** behaviors, focusing on functional and imaginative use of toys and materials.
412
+
413
+ ## C1: Functional Play With Objects
414
+
415
+ **What it measures:** Conventional, appropriate use of toys.
416
+
417
+ | Score | Description |
418
+ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
419
+ | **0** | **Spontaneously plays** with variety of toys in **conventional manner**, including appropriate play with **several different miniatures/representational toys** (e.g., telephone, truck, dishes, Birthday Party materials). NOT imitations, prompted actions, or pushing car |
420
+ | **1** | **Some spontaneous functional play** with ≥1 miniature/representational toy. NOT imitations, responses to direct requests, pushing car, or construction toys |
421
+ | **2** | Plays appropriately with **cause-and-effect toys and/or construction toys only**, AND/OR pushing car. May include imitating demonstration or imitating representational play |
422
+ | **3** | **No play with toys** or **only stereotyped play** |
423
+ | **-1** | Not Collected |
424
+ | **9** | Cannot be rated |
425
+
426
+ ---
427
+
428
+ ## C2: Imagination/Creativity ⭐
429
+
430
+ **What it measures:** Spontaneous pretend play.
431
+
432
+ | Score | Description |
433
+ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
434
+ | **0** | **Spontaneous use** of doll/object as **independent agent**, OR spontaneous use of objects to **represent other objects** (e.g., pretends string is spaghetti) |
435
+ | **1** | **Spontaneous pretend play** with doll (feeding, hugging, giving drink) or other objects, but **no use as independent agent** or to represent something else |
436
+ | **2** | **Imitates** pretend play as above, OR imitation with placeholder; **no spontaneous** pretend play |
437
+ | **3** | **No imitated or spontaneous** pretend play |
438
+ | **-1** | Not Collected |
439
+ | **9** | Cannot be rated |
440
+
441
+ ⭐ = **Included in diagnostic algorithm (RRB domain)**
442
+
443
+ ---
444
+
445
+ # D Codes: Stereotyped Behaviors and Restricted Interests
446
+
447
+ > [!note] D Codes Overview
448
+ > The **D codes** assess **Restricted and Repetitive Behaviors**, a core feature of autism spectrum disorder.
449
+
450
+ ## D1: Unusual Sensory Interest in Play Material/Person ⭐
451
+
452
+ **What it measures:** Unusual sensory examination or sensory-seeking behaviors.
453
+
454
+ | Score | Description |
455
+ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
456
+ | **0** | **No unusual sensory interests** or sensory-seeking behaviors |
457
+ | **1** | **Several possible** sensory interests not as clear as below, AND/OR only **one clear occurrence**. One "possible" sensory interest = 0 |
458
+ | **2** | **Definite interest** in sensory elements of objects/materials OR sensory examination of self/others; **≥2 clear occurrences**. May be during same activity |
459
+ | **3** | Definite unusual sensory-seeking behaviors during **≥2 different tasks/activities** and may **interfere with ADOS assessment** |
460
+ | **-1** | Not Collected |
461
+ | **9** | Cannot be rated |
462
+
463
+ **Examples:**
464
+
465
+ - Sniffing objects
466
+ - Repetitive touching/feeling texture
467
+ - Licking/biting (not typical mouthing)
468
+ - Unusual reactions to sounds
469
+ - Prolonged visual examination
470
+
471
+ ⭐ = **Included in diagnostic algorithm (RRB domain)**
472
+
473
+ ---
474
+
475
+ ## D2: Hand and Finger and Other Complex Mannerisms ⭐
476
+
477
+ **What it measures:** Stereotyped hand/finger movements or complex mannerisms.
478
+
479
+ | Score | Description |
480
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------- |
481
+ | **0** | **None** |
482
+ | **1** | Unusual/repetitive hand/finger mannerisms or complex mannerisms **not as clear** as below |
483
+ | **2** | **Definite** finger flicking or twisting, AND/OR hand/finger/complex mannerisms, stereotypies, or posturing. May be brief/rare if clear |
484
+ | **3** | Mannerisms occur **frequently**, during **≥2 different tasks/activities**, and/or may **interfere with ADOS assessment** |
485
+ | **-1** | Not Collected |
486
+ | **9** | Cannot be rated |
487
+
488
+ ⭐ = **Included in diagnostic algorithm (RRB domain)**
489
+
490
+ ---
491
+
492
+ ## D3: Self-Injurious Behavior
493
+
494
+ **What it measures:** Attempts to harm self.
495
+
496
+ | Score | Description |
497
+ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
498
+ | **0** | **No attempts** to harm self |
499
+ | **1** | **Dubious or possible** self-injury, and/or **rare but clear** self-injury (one clear example of biting hand/arm, pulling hair, slapping face, banging head) |
500
+ | **2** | **>1 clear example** of self-injury (head banging, face slapping, hair pulling, self-biting) |
501
+ | **-1** | Not Collected |
502
+ | **9** | Cannot be rated |
503
+
504
+ ---
505
+
506
+ ## D4: Unusually Repetitive Interests or Stereotyped Behaviors ⭐
507
+
508
+ **What it measures:** Intensity and interference of repetitive interests/behaviors.
509
+
510
+ | Score | Description |
511
+ | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
512
+ | **0** | **No repetitive or stereotyped** behaviors during ADOS |
513
+ | **1** | Interest/behavior **repetitive or stereotyped to unusual degree**, including intense interest in particular toy/object, definite interest in unusual object/activity, unusually routinized activity, or clear interest in **part of object**. Occurs with several other activities, doesn't prevent completing ADOS activities |
514
+ | **2** | **Clearly repetitive or stereotyped** interests/behaviors. May form **substantial minority** of child's interests and spontaneous behaviors and may **interfere** with completing activities, but possible to direct attention to other objects/activities, at least momentarily |
515
+ | **3** | Repetitive/stereotyped interests/behaviors form **majority of child's interests**, AND/OR attempts to direct attention to other objects/activities met with **significant resistance and/or distress** |
516
+ | **9** | Cannot be rated |
517
+
518
+ ⭐ = **Included in diagnostic algorithm (RRB domain)**
519
+
520
+ ---
521
+
522
+ # E Codes: Other Abnormal Behaviors
523
+
524
+ > [!note] E Codes Overview
525
+ > The **E codes** capture **Other Abnormal Behaviors** that may be present but are not core diagnostic features of ASD.
526
+
527
+ ## E1: Overactivity
528
+
529
+ **What it measures:** Activity level relative to developmental expectations.
530
+
531
+ | Score | Description |
532
+ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
533
+ | **0** | Sits/stands still appropriately when expected during ADOS. May explore room as expected for developmental level but **not obviously overactive** |
534
+ | **1** | Sits/stands still when clearly expected (e.g., symbolic imitation, birthday party) for activities besides snack, but often **fidgets, moves about, or gets up** |
535
+ | **2** | **Fidgety; more active** than other children of same developmental level |
536
+ | **3** | **Incessantly and energetically** moves around room in way difficult to interrupt; level of activity **disrupts ADOS assessment** |
537
+ | **7** | **Underactive** |
538
+ | **-1** | Not Collected |
539
+ | **9** | Cannot be rated |
540
+
541
+ ---
542
+
543
+ ## E2: Tantrums, Aggression, Negative or Disruptive Behavior
544
+
545
+ **What it measures:** Frequency and intensity of negative/disruptive behaviors.
546
+
547
+ | Score | Description |
548
+ | ------ | ------------------------------------------------------------------------------------------------------------------------- |
549
+ | **0** | **Not upset, disruptive, negative, destructive, or aggressive** during ADOS |
550
+ | **1** | Displays **one example** of mild upset, anger, aggression, negativism, or intentionally disruptive behavior |
551
+ | **2** | **>1 intentionally disruptive** (e.g., swiping toys off table) or mildly aggressive act. Loud screaming can be coded here |
552
+ | **3** | Shows **marked or repeated negativism, temper tantrums**, or **more significant aggression** (hitting, biting others) |
553
+ | **-1** | Not Collected |
554
+ | **9** | Cannot be rated |
555
+
556
+ ---
557
+
558
+ ## E3: Anxiety
559
+
560
+ **What it measures:** Level of anxiety during assessment.
561
+
562
+ | Score | Description |
563
+ | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
564
+ | **0** | **No obvious anxiety** (trembling, jumpiness) |
565
+ | **1** | **Mild signs** of anxiety, especially at beginning, OR marked anxiety only in response to **specific request or one particular toy/task** |
566
+ | **2** | **Marked anxiety** in response to **>1 toy/task** or **several times** during ADOS |
567
+ | **-1** | Not Collected |
568
+ | **9** | Cannot be rated |
569
+
570
+ ---
571
+
572
+ # Scoring and Algorithms
573
+
574
+ ## Diagnostic Domains
575
+
576
+ > [!info] Two Main Domains
577
+ > Module 1 uses a two-domain structure introduced in ADOS-2
578
+
579
+ ### Social Affect (SA) Domain
580
+
581
+ Combines communication and social interaction items
582
+
583
+ **Algorithm items (12 total):**
584
+
585
+ - A2, A5, A6, A7, A8 (Communication)
586
+ - B1, B3, B5, B9, B10, B11, B12 (Social Interaction)
587
+
588
+ ### Restricted and Repetitive Behaviors (RRB) Domain
589
+
590
+ **Algorithm items (4 total):**
591
+
592
+ - C2 (Imagination/Creativity)
593
+ - D1, D2, D4 (Stereotyped Behaviors)
594
+
595
+ ---
596
+
597
+ ## Module 1 Algorithms
598
+
599
+ > [!warning] Algorithm Selection
600
+ > Two different algorithms based on **A1 (Overall Level of Non-Echoed Language)**
601
+
602
+ ### Algorithm 1: Few to No Words
603
+
604
+ **Used when:** Child has minimal verbal language (A1 = 4, 5, 7, or 8)
605
+
606
+ **Calculation:**
607
+
608
+ - SA Total + RRB Total = **Overall Total**
609
+
610
+ **Diagnostic Cutoffs:**
611
+
612
+ | Classification | Overall Total |
613
+ | ------------------- | ------------- |
614
+ | **Autism** | ≥ 16 |
615
+ | **Autism Spectrum** | 11-15 |
616
+ | **Non-Spectrum** | ≤ 10 |
617
+
618
+ ---
619
+
620
+ ### Algorithm 2: Some Words
621
+
622
+ **Used when:** Child uses some single words or phrases (A1 = 0, 1, 2, or 3)
623
+
624
+ **Calculation:**
625
+
626
+ - SA Total + RRB Total = **Overall Total**
627
+
628
+ **Diagnostic Cutoffs:**
629
+
630
+ | Classification | Overall Total |
631
+ | ------------------- | ------------- |
632
+ | **Autism** | ≥ 12 |
633
+ | **Autism Spectrum** | 8-11 |
634
+ | **Non-Spectrum** | ≤ 7 |
635
+
636
+ ---
637
+
638
+ ## Score Conversion
639
+
640
+ > [!tip] Algorithm Conversion
641
+ > Algorithm items are converted from original scale (often 0-3) to **0-2 scale** before summing
642
+
643
+ **Typical conversion:**
644
+
645
+ - Original 0 → Algorithm 0
646
+ - Original 1 → Algorithm 1
647
+ - Original 2 → Algorithm 2
648
+ - Original 3 → Algorithm 2
649
+
650
+ Some items are already on 0-2 scale and don't require conversion.
651
+
652
+ ---
653
+
654
+ # Special Score Codes
655
+
656
+ | Code | Meaning | Usage |
657
+ | ------- | ------------------------- | --------------------------------------------------------------- |
658
+ | **0-3** | Standard severity ratings | Most items use this scale |
659
+ | **7** | Alternative presentation | e.g., underactive (E1) instead of overactive |
660
+ | **8** | N/A - Not applicable | Insufficient behavior to rate this item |
661
+ | **9** | Cannot be rated | Other reason (e.g., examiner error, didn't administer activity) |
662
+ | **-1** | Not Collected | Item was not assessed (Adapted ADOS) |
663
+
664
+ ---
665
+
666
+ # Quick Reference Tables
667
+
668
+ ## Algorithm Items by Domain
669
+
670
+ ### Social Affect (SA) - 12 Items
671
+
672
+ | Code | Item Name | Type |
673
+ | ---- | -------------------------------------------- | ------------- |
674
+ | A2 | Frequency of Vocalization Directed to Others | Communication |
675
+ | A5 | Stereotyped/Idiosyncratic Use of Words | Communication |
676
+ | A6 | Use of Other's Body to Communicate | Communication |
677
+ | A7 | Pointing | Communication |
678
+ | A8 | Gestures | Communication |
679
+ | B1 | Unusual Eye Contact | Social |
680
+ | B3 | Facial Expressions Directed to Others | Social |
681
+ | B5 | Shared Enjoyment in Interaction | Social |
682
+ | B9 | Showing | Social |
683
+ | B10 | Spontaneous Initiation of Joint Attention | Social |
684
+ | B11 | Response to Joint Attention | Social |
685
+ | B12 | Quality of Social Overtures | Social |
686
+
687
+ ### Restricted and Repetitive Behaviors (RRB) - 4 Items
688
+
689
+ | Code | Item Name |
690
+ | ---- | ------------------------------ |
691
+ | C2 | Imagination/Creativity |
692
+ | D1 | Unusual Sensory Interest |
693
+ | D2 | Hand and Finger Mannerisms |
694
+ | D4 | Unusually Repetitive Interests |
695
+
696
+ ---
697
+
698
+ ## Non-Algorithm Items (Observation Only)
699
+
700
+ ### Communication Items
701
+
702
+ - **A1** - Overall Level of Non-Echoed Language _(determines algorithm)_
703
+ - **A3** - Intonation
704
+ - **A4** - Immediate Echolalia
705
+
706
+ ### Social Interaction Items
707
+
708
+ - **B2** - Responsive Social Smile
709
+ - **B4** - Integration of Gaze and Other Behaviors
710
+ - **B6** - Response to Name
711
+ - **B7** - Requesting
712
+ - **B8** - Giving
713
+
714
+ ### Play Items
715
+
716
+ - **C1** - Functional Play
717
+
718
+ ### Restricted/Repetitive Behavior Items
719
+
720
+ - **D3** - Self-Injurious Behavior
721
+
722
+ ### Other Behavior Items
723
+
724
+ - **E1** - Overactivity
725
+ - **E2** - Tantrums/Aggression
726
+ - **E3** - Anxiety
727
+
728
+ ---
729
+
730
+ # Summary Statistics
731
+
732
+ > [!info] Module 1 Code Summary
733
+ >
734
+ > - **Total behavioral codes:** 29
735
+ > - **Algorithm items:** 16 (12 SA + 4 RRB)
736
+ > - **Observation/clinical items:** 13
737
+ > - **Two algorithms:** Few-to-No Words vs. Some Words
738
+
739
+ ---
740
+
741
+ ## Tags for Quick Navigation
742
+
743
+ #ados/module1 #assessment #autism-diagnosis #communication #social-interaction #restricted-repetitive-behaviors #play #diagnostic-algorithm
744
+
745
+ ---
746
+
747
+ ## Related Notes
748
+
749
+ - [[ADOS-2 Overview]]
750
+ - [[Module 2 Coding]]
751
+ - [[Autism Diagnostic Criteria]]
752
+ - [[DSM-5 Autism Criteria]]
753
+ - [[Early Intervention Planning]]
754
+
755
+ ---
756
+
757
+ _Last updated: 2025-01-20_