@greenpandastudios/aug-cli 0.19.0 → 0.20.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 (459) hide show
  1. package/README.md +9 -6
  2. package/THIRD_PARTY_NOTICES.md +4 -0
  3. package/bin/aug.mjs +12 -2
  4. package/docs/about.md +27 -0
  5. package/docs/api/crypto.md +103 -69
  6. package/docs/api/io.md +35 -33
  7. package/docs/api/json.md +3 -3
  8. package/docs/api/memory.md +23 -19
  9. package/docs/api/time.md +10 -9
  10. package/docs/api/web.md +33 -38
  11. package/docs/compatibility.md +3 -3
  12. package/docs/contributing-benchmarks.md +38 -0
  13. package/docs/dev-containers.md +95 -0
  14. package/docs/diagnostics.md +15 -5
  15. package/docs/docker.md +174 -12
  16. package/docs/editor.md +35 -0
  17. package/docs/example-projects.json +206 -24
  18. package/docs/examples/approved-design/counters.md +34 -126
  19. package/docs/examples/approved-design/dependencies/august/0.20.1/io/contracts.md +178 -0
  20. package/docs/examples/approved-design/domain/app.md +13 -77
  21. package/docs/examples/approved-design/domain/export.md +5 -19
  22. package/docs/examples/approved-design/domain/models.md +4 -23
  23. package/docs/examples/approved-design/domain/numbers.md +24 -114
  24. package/docs/examples/approved-design/index.md +16 -7
  25. package/docs/examples/approved-design/main.md +19 -96
  26. package/docs/examples/benchmark/index.md +6 -5
  27. package/docs/examples/benchmark/main.md +7 -35
  28. package/docs/examples/cli-args/index.md +6 -5
  29. package/docs/examples/cli-args/main.md +6 -31
  30. package/docs/examples/collections/index.md +6 -5
  31. package/docs/examples/collections/main.md +7 -35
  32. package/docs/examples/collections-benchmark/index.md +6 -5
  33. package/docs/examples/collections-benchmark/main.md +7 -35
  34. package/docs/examples/cpu-benchmark/index.md +6 -5
  35. package/docs/examples/cpu-benchmark/main.md +5 -24
  36. package/docs/examples/developer-workflow/calculator.md +39 -186
  37. package/docs/examples/developer-workflow/dependencies/august/0.20.1/io/contracts.md +178 -0
  38. package/docs/examples/developer-workflow/index.md +16 -7
  39. package/docs/examples/developer-workflow/logging/console.md +10 -56
  40. package/docs/examples/developer-workflow/logging/export.md +4 -14
  41. package/docs/examples/developer-workflow/logging/logger.md +7 -43
  42. package/docs/examples/developer-workflow/main.md +17 -69
  43. package/docs/examples/drop/index.md +6 -5
  44. package/docs/examples/drop/main.md +7 -27
  45. package/docs/examples/drop/resource.md +7 -30
  46. package/docs/examples/errors/errors.md +7 -27
  47. package/docs/examples/errors/index.md +6 -5
  48. package/docs/examples/errors/main.md +7 -28
  49. package/docs/examples/ffi/index.md +6 -5
  50. package/docs/examples/ffi/main.md +6 -20
  51. package/docs/examples/ffi/native.md +8 -34
  52. package/docs/examples/generic-di/dependencies/august/0.20.1/io/contracts.md +178 -0
  53. package/docs/examples/generic-di/index.md +6 -5
  54. package/docs/examples/generic-di/main.md +9 -39
  55. package/docs/examples/generic-di/types.md +23 -92
  56. package/docs/examples/generics/index.md +6 -5
  57. package/docs/examples/generics/main.md +10 -47
  58. package/docs/examples/generics/types.md +25 -100
  59. package/docs/examples/hello/app/export.md +4 -12
  60. package/docs/examples/hello/app/greeter.md +13 -91
  61. package/docs/examples/hello/dependencies/august/0.20.1/io/contracts.md +178 -0
  62. package/docs/examples/hello/index.md +17 -6
  63. package/docs/examples/hello/logging/console.md +10 -54
  64. package/docs/examples/hello/logging/export.md +4 -14
  65. package/docs/examples/hello/logging/logger.md +7 -45
  66. package/docs/examples/hello/main.md +9 -39
  67. package/docs/examples/http-benchmark/index.md +6 -5
  68. package/docs/examples/http-benchmark/main.md +6 -20
  69. package/docs/examples/http-benchmark/routes.md +9 -31
  70. package/docs/examples/index.md +46 -29
  71. package/docs/examples/interceptors/app.md +20 -139
  72. package/docs/examples/interceptors/dependencies/august/0.20.1/io/contracts.md +178 -0
  73. package/docs/examples/interceptors/index.md +6 -5
  74. package/docs/examples/interceptors/interceptors.md +24 -148
  75. package/docs/examples/interceptors/logging.md +13 -76
  76. package/docs/examples/interceptors/main.md +10 -65
  77. package/docs/examples/json-benchmark/data.md +4 -20
  78. package/docs/examples/json-benchmark/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  79. package/docs/examples/json-benchmark/index.md +7 -5
  80. package/docs/examples/json-benchmark/main-yaml.md +20 -0
  81. package/docs/examples/json-benchmark/main.md +10 -49
  82. package/docs/examples/new-syntax/console.md +10 -52
  83. package/docs/examples/new-syntax/dependencies/august/0.20.1/io/contracts.md +178 -0
  84. package/docs/examples/new-syntax/greeter.md +13 -71
  85. package/docs/examples/new-syntax/index.md +6 -5
  86. package/docs/examples/new-syntax/logger.md +7 -43
  87. package/docs/examples/new-syntax/main.md +10 -53
  88. package/docs/examples/new-syntax/math.md +6 -24
  89. package/docs/examples/oidc-login/client/contracts.md +10 -61
  90. package/docs/examples/oidc-login/client/endpoints.md +32 -154
  91. package/docs/examples/oidc-login/client/export.md +5 -23
  92. package/docs/examples/oidc-login/client/login.md +234 -344
  93. package/docs/examples/oidc-login/client/logout.md +38 -143
  94. package/docs/examples/oidc-login/client/protocol.md +183 -304
  95. package/docs/examples/oidc-login/client/session.md +41 -149
  96. package/docs/examples/oidc-login/client/views.md +13 -58
  97. package/docs/examples/oidc-login/common/export.md +6 -26
  98. package/docs/examples/oidc-login/common/headers.md +42 -72
  99. package/docs/examples/oidc-login/common/keys.md +40 -164
  100. package/docs/examples/oidc-login/common/settings.md +24 -40
  101. package/docs/examples/oidc-login/common/views.md +7 -28
  102. package/docs/examples/oidc-login/dependencies/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.md +205 -0
  103. package/docs/examples/oidc-login/dependencies/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +67 -0
  104. package/docs/examples/oidc-login/dependencies/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +267 -0
  105. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.md +415 -0
  106. package/docs/examples/oidc-login/dependencies/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.md +271 -0
  107. package/docs/examples/oidc-login/dependencies/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md +89 -0
  108. package/docs/examples/oidc-login/index.md +8 -7
  109. package/docs/examples/oidc-login/main-yaml.md +7 -0
  110. package/docs/examples/oidc-login/main.md +26 -153
  111. package/docs/examples/oidc-login/provider/authorization.md +232 -275
  112. package/docs/examples/oidc-login/provider/contracts.md +24 -146
  113. package/docs/examples/oidc-login/provider/credentials.md +24 -57
  114. package/docs/examples/oidc-login/provider/discovery.md +48 -122
  115. package/docs/examples/oidc-login/provider/export.md +11 -37
  116. package/docs/examples/oidc-login/provider/token.md +159 -237
  117. package/docs/examples/oidc-login/provider/userinfo.md +47 -102
  118. package/docs/examples/oidc-login/provider/views.md +13 -53
  119. package/docs/examples/ownership/counter.md +17 -63
  120. package/docs/examples/ownership/index.md +6 -5
  121. package/docs/examples/ownership/main.md +7 -30
  122. package/docs/examples/ownership-transfer/dependencies/august/0.20.1/io/contracts.md +178 -0
  123. package/docs/examples/ownership-transfer/index.md +6 -5
  124. package/docs/examples/ownership-transfer/main.md +10 -52
  125. package/docs/examples/ownership-transfer/resource.md +15 -67
  126. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +12 -50
  127. package/docs/examples/packages-app/index.md +7 -6
  128. package/docs/examples/packages-app/main.md +7 -25
  129. package/docs/examples/packages-math/aug-package-json.md +1 -1
  130. package/docs/examples/packages-math/index.md +7 -6
  131. package/docs/examples/packages-math/src/arithmetic.md +12 -50
  132. package/docs/examples/packages-math/src/export.md +4 -12
  133. package/docs/examples/startup-benchmark/index.md +6 -5
  134. package/docs/examples/startup-benchmark/main.md +5 -17
  135. package/docs/examples/visibility/counter.md +19 -67
  136. package/docs/examples/visibility/index.md +6 -5
  137. package/docs/examples/visibility/main.md +7 -31
  138. package/docs/examples/weather-api/forecasts.md +168 -0
  139. package/docs/examples/weather-api/index.md +42 -0
  140. package/docs/examples/weather-api/main-yaml.md +21 -0
  141. package/docs/examples/weather-api/main.md +65 -0
  142. package/docs/examples.json +10 -0
  143. package/docs/getting-started.md +105 -2
  144. package/docs/grammar.md +6 -4
  145. package/docs/guides/change-a-module.md +64 -0
  146. package/docs/guides/index.md +27 -0
  147. package/docs/index.md +51 -29
  148. package/docs/language-conformance.md +1 -1
  149. package/docs/language-constructs.md +22 -22
  150. package/docs/language-design-audit.md +1 -1
  151. package/docs/learn/data-and-errors.md +77 -0
  152. package/docs/learn/index.md +30 -0
  153. package/docs/learn/modules-and-dependencies.md +73 -0
  154. package/docs/learn/state-and-tests.md +71 -0
  155. package/docs/learn/values-and-functions.md +62 -0
  156. package/docs/lesson-failures.json +8 -0
  157. package/docs/maintaining-docs.md +16 -4
  158. package/docs/packages.md +72 -126
  159. package/docs/performance.md +13 -41
  160. package/docs/production-readiness.md +5 -4
  161. package/docs/public/downloads/approved-design.zip +0 -0
  162. package/docs/public/downloads/benchmark.zip +0 -0
  163. package/docs/public/downloads/cli-args.zip +0 -0
  164. package/docs/public/downloads/collections-benchmark.zip +0 -0
  165. package/docs/public/downloads/collections.zip +0 -0
  166. package/docs/public/downloads/cpu-benchmark.zip +0 -0
  167. package/docs/public/downloads/developer-workflow.zip +0 -0
  168. package/docs/public/downloads/drop.zip +0 -0
  169. package/docs/public/downloads/errors.zip +0 -0
  170. package/docs/public/downloads/ffi.zip +0 -0
  171. package/docs/public/downloads/generic-di.zip +0 -0
  172. package/docs/public/downloads/generics.zip +0 -0
  173. package/docs/public/downloads/hello.zip +0 -0
  174. package/docs/public/downloads/http-benchmark.zip +0 -0
  175. package/docs/public/downloads/interceptors.zip +0 -0
  176. package/docs/public/downloads/json-benchmark.zip +0 -0
  177. package/docs/public/downloads/new-syntax.zip +0 -0
  178. package/docs/public/downloads/oidc-login.zip +0 -0
  179. package/docs/public/downloads/ownership-transfer.zip +0 -0
  180. package/docs/public/downloads/ownership.zip +0 -0
  181. package/docs/public/downloads/packages-app.zip +0 -0
  182. package/docs/public/downloads/packages-math.zip +0 -0
  183. package/docs/public/downloads/startup-benchmark.zip +0 -0
  184. package/docs/public/downloads/visibility.zip +0 -0
  185. package/docs/public/downloads/weather-api.zip +0 -0
  186. package/docs/reference.md +23 -17
  187. package/docs/releasing.md +29 -15
  188. package/docs/research/code-to-natural-language.md +108 -0
  189. package/docs/research/ecosystem-workflow.md +41 -0
  190. package/docs/research/wiki-editorial-design.md +71 -0
  191. package/docs/roadmap.md +1 -1
  192. package/docs/specifications.md +27 -11
  193. package/docs/testing.md +19 -5
  194. package/docs/tooling.md +25 -12
  195. package/docs/weather-api.md +65 -0
  196. package/docs/web.md +50 -18
  197. package/docs/writing-docs.md +49 -0
  198. package/examples/{hello/.aug-spec/august/0.19.0 → approved-design/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  199. package/examples/approved-design/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  200. package/examples/approved-design/.aug-spec/manifest.json +3 -3
  201. package/examples/approved-design/counters.aug +5 -4
  202. package/examples/approved-design/counters.aug.md +25 -132
  203. package/examples/approved-design/domain/app.aug +2 -1
  204. package/examples/approved-design/domain/app.aug.md +10 -80
  205. package/examples/approved-design/domain/export.aug +1 -0
  206. package/examples/approved-design/domain/export.aug.md +4 -20
  207. package/examples/approved-design/domain/models.aug +1 -0
  208. package/examples/approved-design/domain/models.aug.md +3 -25
  209. package/examples/approved-design/domain/numbers.aug +3 -2
  210. package/examples/approved-design/domain/numbers.aug.md +19 -116
  211. package/examples/approved-design/main.aug +1 -0
  212. package/examples/approved-design/main.aug.md +12 -95
  213. package/examples/benchmark/.aug-spec/manifest.json +1 -1
  214. package/examples/benchmark/main.aug +1 -0
  215. package/examples/benchmark/main.aug.md +6 -36
  216. package/examples/cli-args/.aug-spec/manifest.json +1 -1
  217. package/examples/cli-args/main.aug +1 -0
  218. package/examples/cli-args/main.aug.md +5 -32
  219. package/examples/collections/.aug-spec/manifest.json +1 -1
  220. package/examples/collections/main.aug +1 -0
  221. package/examples/collections/main.aug.md +6 -36
  222. package/examples/{generic-di/.aug-spec/august/0.19.0 → developer-workflow/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  223. package/examples/developer-workflow/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  224. package/examples/developer-workflow/.aug-spec/manifest.json +3 -3
  225. package/examples/developer-workflow/calculator.aug +3 -2
  226. package/examples/developer-workflow/calculator.aug.md +28 -189
  227. package/examples/developer-workflow/logging/console.aug +2 -1
  228. package/examples/developer-workflow/logging/console.aug.md +7 -57
  229. package/examples/developer-workflow/logging/export.aug +1 -0
  230. package/examples/developer-workflow/logging/export.aug.md +3 -15
  231. package/examples/developer-workflow/logging/logger.aug +1 -0
  232. package/examples/developer-workflow/logging/logger.aug.md +6 -46
  233. package/examples/developer-workflow/main.aug +1 -0
  234. package/examples/developer-workflow/main.aug.md +10 -68
  235. package/examples/drop/.aug-spec/manifest.json +1 -1
  236. package/examples/drop/main.aug +1 -0
  237. package/examples/drop/main.aug.md +6 -28
  238. package/examples/drop/resource.aug +1 -0
  239. package/examples/drop/resource.aug.md +6 -34
  240. package/examples/errors/.aug-spec/manifest.json +1 -1
  241. package/examples/errors/errors.aug +2 -1
  242. package/examples/errors/errors.aug.md +4 -27
  243. package/examples/errors/main.aug +1 -0
  244. package/examples/errors/main.aug.md +6 -29
  245. package/examples/ffi/.aug-spec/manifest.json +1 -1
  246. package/examples/ffi/main.aug +1 -0
  247. package/examples/ffi/main.aug.md +5 -21
  248. package/examples/ffi/native.aug +2 -1
  249. package/examples/ffi/native.aug.md +5 -35
  250. package/examples/{approved-design/.aug-spec/august/0.19.0 → generic-di/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  251. package/examples/generic-di/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  252. package/examples/generic-di/.aug-spec/manifest.json +3 -3
  253. package/examples/generic-di/main.aug +1 -0
  254. package/examples/generic-di/main.aug.md +8 -40
  255. package/examples/generic-di/types.aug +3 -2
  256. package/examples/generic-di/types.aug.md +18 -97
  257. package/examples/generics/.aug-spec/manifest.json +1 -1
  258. package/examples/generics/main.aug +1 -0
  259. package/examples/generics/main.aug.md +9 -48
  260. package/examples/generics/types.aug +4 -3
  261. package/examples/generics/types.aug.md +18 -104
  262. package/examples/{developer-workflow/.aug-spec/august/0.19.0 → hello/.aug-spec/august/0.20.1}/io/contracts.aug +4 -3
  263. package/examples/hello/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  264. package/examples/hello/.aug-spec/manifest.json +3 -3
  265. package/examples/hello/app/export.aug +1 -0
  266. package/examples/hello/app/export.aug.md +3 -13
  267. package/examples/hello/app/greeter.aug +2 -1
  268. package/examples/hello/app/greeter.aug.md +10 -94
  269. package/examples/hello/logging/console.aug +2 -1
  270. package/examples/hello/logging/console.aug.md +7 -55
  271. package/examples/hello/logging/export.aug +1 -0
  272. package/examples/hello/logging/export.aug.md +3 -15
  273. package/examples/hello/logging/logger.aug +1 -0
  274. package/examples/hello/logging/logger.aug.md +6 -48
  275. package/examples/hello/main.aug +1 -0
  276. package/examples/hello/main.aug.md +8 -40
  277. package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  278. package/examples/interceptors/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  279. package/examples/interceptors/.aug-spec/manifest.json +3 -3
  280. package/examples/interceptors/app.aug +3 -2
  281. package/examples/interceptors/app.aug.md +15 -141
  282. package/examples/interceptors/interceptors.aug +3 -2
  283. package/examples/interceptors/interceptors.aug.md +19 -152
  284. package/examples/interceptors/logging.aug +2 -1
  285. package/examples/interceptors/logging.aug.md +10 -79
  286. package/examples/interceptors/main.aug +1 -0
  287. package/examples/interceptors/main.aug.md +9 -66
  288. package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  289. package/examples/new-syntax/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  290. package/examples/new-syntax/.aug-spec/manifest.json +3 -3
  291. package/examples/new-syntax/console.aug +2 -1
  292. package/examples/new-syntax/console.aug.md +7 -53
  293. package/examples/new-syntax/greeter.aug +2 -1
  294. package/examples/new-syntax/greeter.aug.md +10 -74
  295. package/examples/new-syntax/logger.aug +1 -0
  296. package/examples/new-syntax/logger.aug.md +6 -46
  297. package/examples/new-syntax/main.aug +1 -0
  298. package/examples/new-syntax/main.aug.md +9 -54
  299. package/examples/new-syntax/math.aug +2 -1
  300. package/examples/new-syntax/math.aug.md +3 -24
  301. package/examples/oidc-login/.aug-spec/manifest.json +13 -13
  302. package/examples/oidc-login/.aug-spec/packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/store.aug.md +71 -0
  303. package/examples/oidc-login/.aug-spec/packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +17 -0
  304. package/examples/oidc-login/.aug-spec/packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +125 -0
  305. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/contracts.aug +12 -11
  306. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/contracts.aug.md +244 -0
  307. package/examples/oidc-login/.aug-spec/{august/0.19.0/crypto → packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40}/jose.aug +6 -5
  308. package/examples/oidc-login/.aug-spec/packages/@git/url_9ef654c66d34ab8f5527/0.0.0-git.b14a0f9aa41f1ce58bd51133bcdc424033e40d40/jose.aug.md +71 -0
  309. package/examples/oidc-login/.aug-spec/packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.aug.md +30 -0
  310. package/examples/oidc-login/aug.lock.json +100 -0
  311. package/examples/oidc-login/client/contracts.aug +1 -0
  312. package/examples/oidc-login/client/contracts.aug.md +9 -66
  313. package/examples/oidc-login/client/endpoints.aug +6 -5
  314. package/examples/oidc-login/client/endpoints.aug.md +13 -145
  315. package/examples/oidc-login/client/export.aug +1 -0
  316. package/examples/oidc-login/client/export.aug.md +4 -24
  317. package/examples/oidc-login/client/login.aug +7 -6
  318. package/examples/oidc-login/client/login.aug.md +25 -303
  319. package/examples/oidc-login/client/logout.aug +5 -4
  320. package/examples/oidc-login/client/logout.aug.md +13 -135
  321. package/examples/oidc-login/client/protocol.aug +7 -6
  322. package/examples/oidc-login/client/protocol.aug.md +36 -283
  323. package/examples/oidc-login/client/session.aug +5 -4
  324. package/examples/oidc-login/client/session.aug.md +12 -139
  325. package/examples/oidc-login/client/views.aug +3 -2
  326. package/examples/oidc-login/client/views.aug.md +8 -57
  327. package/examples/oidc-login/common/export.aug +1 -0
  328. package/examples/oidc-login/common/export.aug.md +5 -27
  329. package/examples/oidc-login/common/headers.aug +4 -3
  330. package/examples/oidc-login/common/headers.aug.md +9 -67
  331. package/examples/oidc-login/common/keys.aug +6 -5
  332. package/examples/oidc-login/common/keys.aug.md +29 -165
  333. package/examples/oidc-login/common/settings.aug +2 -1
  334. package/examples/oidc-login/common/settings.aug.md +5 -39
  335. package/examples/oidc-login/common/views.aug +2 -1
  336. package/examples/oidc-login/common/views.aug.md +4 -28
  337. package/examples/oidc-login/main.aug +6 -16
  338. package/examples/oidc-login/main.aug.md +17 -146
  339. package/examples/oidc-login/main.yaml +7 -0
  340. package/examples/oidc-login/provider/authorization.aug +7 -6
  341. package/examples/oidc-login/provider/authorization.aug.md +23 -238
  342. package/examples/oidc-login/provider/contracts.aug +1 -0
  343. package/examples/oidc-login/provider/contracts.aug.md +23 -158
  344. package/examples/oidc-login/provider/credentials.aug +3 -2
  345. package/examples/oidc-login/provider/credentials.aug.md +9 -53
  346. package/examples/oidc-login/provider/discovery.aug +4 -3
  347. package/examples/oidc-login/provider/discovery.aug.md +11 -118
  348. package/examples/oidc-login/provider/export.aug +1 -0
  349. package/examples/oidc-login/provider/export.aug.md +6 -34
  350. package/examples/oidc-login/provider/token.aug +6 -5
  351. package/examples/oidc-login/provider/token.aug.md +16 -204
  352. package/examples/oidc-login/provider/userinfo.aug +4 -3
  353. package/examples/oidc-login/provider/userinfo.aug.md +10 -92
  354. package/examples/oidc-login/provider/views.aug +3 -2
  355. package/examples/oidc-login/provider/views.aug.md +8 -52
  356. package/examples/ownership/.aug-spec/manifest.json +1 -1
  357. package/examples/ownership/counter.aug +3 -2
  358. package/examples/ownership/counter.aug.md +12 -66
  359. package/examples/ownership/main.aug +1 -0
  360. package/examples/ownership/main.aug.md +6 -31
  361. package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug +37 -0
  362. package/examples/ownership-transfer/.aug-spec/august/0.20.1/io/contracts.aug.md +82 -0
  363. package/examples/ownership-transfer/.aug-spec/manifest.json +3 -3
  364. package/examples/ownership-transfer/main.aug +1 -0
  365. package/examples/ownership-transfer/main.aug.md +9 -53
  366. package/examples/ownership-transfer/resource.aug +2 -1
  367. package/examples/ownership-transfer/resource.aug.md +12 -71
  368. package/examples/packages/app/.aug-spec/manifest.json +1 -1
  369. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +2 -1
  370. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +9 -51
  371. package/examples/packages/app/main.aug +1 -0
  372. package/examples/packages/app/main.aug.md +6 -26
  373. package/examples/packages/math/.aug-spec/manifest.json +1 -1
  374. package/examples/packages/math/aug-package.json +1 -1
  375. package/examples/packages/math/src/arithmetic.aug +2 -1
  376. package/examples/packages/math/src/arithmetic.aug.md +9 -51
  377. package/examples/packages/math/src/export.aug +1 -0
  378. package/examples/packages/math/src/export.aug.md +3 -13
  379. package/examples/visibility/.aug-spec/manifest.json +1 -1
  380. package/examples/visibility/counter.aug +4 -3
  381. package/examples/visibility/counter.aug.md +12 -68
  382. package/examples/visibility/main.aug +1 -0
  383. package/examples/visibility/main.aug.md +6 -32
  384. package/examples/weather-api/.aug-spec/manifest.json +8 -0
  385. package/examples/weather-api/AGENTS.md +17 -0
  386. package/examples/weather-api/README.md +19 -0
  387. package/examples/weather-api/forecasts.aug +47 -0
  388. package/examples/weather-api/forecasts.aug.md +32 -0
  389. package/examples/weather-api/main.aug +4 -0
  390. package/examples/weather-api/main.aug.md +15 -0
  391. package/examples/weather-api/main.yaml +5 -0
  392. package/examples/weather-api/weather.http +5 -0
  393. package/package.json +3 -4
  394. package/scripts/bootstrap-native.mjs +181 -106
  395. package/scripts/native-setup.mjs +98 -0
  396. package/scripts/native-toolchain.mjs +28 -0
  397. package/src/builtins.js +1 -1
  398. package/src/checker.js +259 -72
  399. package/src/cli.js +114 -20
  400. package/src/codegen.js +1 -1
  401. package/src/config.js +1 -1
  402. package/src/contracts.js +10 -0
  403. package/src/editor.js +71 -16
  404. package/src/fixes.js +90 -2
  405. package/src/formatter.js +19 -8
  406. package/src/git-packages.js +110 -0
  407. package/src/help.js +24 -23
  408. package/src/http-contracts.js +14 -0
  409. package/src/http-policies.js +5 -5
  410. package/src/libraries.js +1 -1
  411. package/src/lsp.js +14 -5
  412. package/src/native.js +19 -13
  413. package/src/navigation.js +4 -2
  414. package/src/openapi.js +5 -4
  415. package/src/package-locking.js +45 -0
  416. package/src/package-manager.js +251 -67
  417. package/src/parser.js +13 -5
  418. package/src/policies.js +3 -3
  419. package/src/project-init.js +78 -4
  420. package/src/project.js +9 -7
  421. package/src/semantic.js +46 -2
  422. package/src/snippets.js +59 -0
  423. package/src/spec-hints.js +56 -0
  424. package/src/spec-tree.js +241 -0
  425. package/src/spec.js +626 -303
  426. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +0 -395
  427. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +0 -395
  428. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +0 -395
  429. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +0 -395
  430. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +0 -395
  431. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +0 -103
  432. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +0 -395
  433. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +0 -925
  434. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +0 -434
  435. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +0 -103
  436. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +0 -374
  437. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +0 -150
  438. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +0 -532
  439. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +0 -395
  440. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  441. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  442. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  443. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  444. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  445. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  446. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  447. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  448. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +0 -791
  449. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +0 -266
  450. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +0 -55
  451. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +0 -250
  452. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +0 -96
  453. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +0 -420
  454. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +0 -36
  455. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +0 -316
  456. /package/examples/oidc-login/.aug-spec/{august/0.19.0/memory → packages/@git/url_0eb7c89453c87681ed15/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/store.aug +0 -0
  457. /package/examples/oidc-login/.aug-spec/{august/0.19.0/json → packages/@git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  458. /package/examples/oidc-login/.aug-spec/{august/0.19.0/web → packages/@git/url_897efafd565158fc4908/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
  459. /package/examples/oidc-login/.aug-spec/{august/0.19.0/time → packages/@git/url_c092cd151499c4e1d8a1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301}/contracts.aug +0 -0
@@ -33,23 +33,24 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "counters.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  /** Reading state has no mutation effect. */
37
38
  interface State:
38
39
  read() returns int
39
40
  _Initial() implements State:
40
- read() returns int:
41
+ read():
41
42
  return 0
42
43
  _Updated(int count) implements State:
43
- read() returns int:
44
+ read():
44
45
  return count
45
46
  /** A mutable counter with an explicit transition contract. */
46
47
  interface Counter:
47
48
  increment() changes self
48
49
  value() returns int
49
50
  _Counter(resolve mutable State initial to _state) implements Counter:
50
- increment() changes self:
51
+ increment():
51
52
  _state to _Updated(count=_state.read() + 1)
52
- value() returns int:
53
+ value():
53
54
  return _state.read()
54
55
  /** The complete counter composition; its mutable state belongs to each scope. */
55
56
  composition Counters:
@@ -58,17 +59,18 @@ composition Counters:
58
59
  ```
59
60
 
60
61
  ```aug [Braces]
62
+ // aug-spec: "counters.aug.md" explains this file. Read it before changes; refresh with aug spec.
61
63
  /** Reading state has no mutation effect. */
62
64
  interface State {
63
65
  read() returns int
64
66
  }
65
67
  _Initial() implements State {
66
- read() returns int {
68
+ read() {
67
69
  return 0
68
70
  }
69
71
  }
70
72
  _Updated(int count) implements State {
71
- read() returns int {
73
+ read() {
72
74
  return count
73
75
  }
74
76
  }
@@ -78,10 +80,10 @@ interface Counter {
78
80
  value() returns int
79
81
  }
80
82
  _Counter(resolve mutable State initial to _state) implements Counter {
81
- increment() changes self {
83
+ increment() {
82
84
  _state to _Updated(count=_state.read() + 1)
83
85
  }
84
- value() returns int {
86
+ value() {
85
87
  return _state.read()
86
88
  }
87
89
  }
@@ -100,153 +102,59 @@ composition Counters {
100
102
 
101
103
  ## Compiled specification {#specification}
102
104
 
103
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
104
-
105
- ### In this file
106
-
107
- - [`State`](counters.md#symbol-State) is an interface.
108
- - [`_Initial`](counters.md#symbol-_Initial) is a class implementing `State`.
109
- - [`_Updated`](counters.md#symbol-_Updated) is a class implementing `State`.
110
- - [`Counter`](counters.md#symbol-Counter) is an interface.
111
- - [`_Counter`](counters.md#symbol-_Counter) is a class implementing `Counter`.
112
- - [`Counters`](counters.md#symbol-Counters) declares 2 providers.
113
-
114
- ### `State` {#symbol-State}
115
-
116
- [source](counters.md#code)
117
-
118
- Interface.
119
-
120
- **Author documentation**
105
+ ### `State` · interface · [source](counters.md#code) {#symbol-State}
121
106
 
122
107
  Reading state has no mutation effect.
123
108
 
124
- #### `State.read` {#symbol-State.read}
125
-
126
- [source](counters.md#code)
127
-
128
- Returns: `int`.
129
-
130
- Interface contract. A selected implementation supplies the behavior.
131
-
132
- ### `Counter` {#symbol-Counter}
133
-
134
- [source](counters.md#code)
109
+ #### `State.read` · [source](counters.md#code) {#symbol-State.read}
135
110
 
136
- Interface.
111
+ It returns `int`.
137
112
 
138
- **Author documentation**
113
+ ### `Counter` · interface · [source](counters.md#code) {#symbol-Counter}
139
114
 
140
115
  A mutable counter with an explicit transition contract.
141
116
 
142
- #### `Counter.increment` {#symbol-Counter.increment}
117
+ #### `Counter.increment` · [source](counters.md#code) {#symbol-Counter.increment}
143
118
 
144
- [source](counters.md#code)
119
+ It may change `self`.
145
120
 
146
- Returns: no value.
121
+ #### `Counter.value` · [source](counters.md#code) {#symbol-Counter.value}
147
122
 
148
- May change: `self`.
123
+ It returns `int`.
149
124
 
150
- Interface contract. A selected implementation supplies the behavior.
151
-
152
- #### `Counter.value` {#symbol-Counter.value}
153
-
154
- [source](counters.md#code)
155
-
156
- Returns: `int`.
157
-
158
- Interface contract. A selected implementation supplies the behavior.
159
-
160
- ### `Counters` {#symbol-Counters}
161
-
162
- [source](counters.md#code)
163
-
164
- **Author documentation**
125
+ ### `Counters` · [source](counters.md#code) {#symbol-Counters}
165
126
 
166
127
  The complete counter composition; its mutable state belongs to each scope.
167
128
 
168
- This composition declares these providers before startup:
169
-
170
- - Provide [`_Initial`](counters.md#symbol-_Initial) when `State` is requested. Reuse one instance.
171
- - Provide [`_Counter`](counters.md#symbol-_Counter) when `Counter` is requested. Reuse one instance per explicit scope. Permit explicit shared mutation. Required dependencies: `State`.
172
-
173
- ### `_Initial` {#symbol-_Initial}
174
-
175
- [source](counters.md#code)
176
-
177
- Behavioral class, private to this file.
178
-
179
- Satisfies [`State`](counters.md#symbol-State).
180
-
181
- #### `_Initial.read` {#symbol-_Initial.read}
182
-
183
- [source](counters.md#code)
184
-
185
- Returns: `int`.
186
-
187
- **What it does**
188
-
189
- - Return `0`.
190
-
191
- ### `_Updated` {#symbol-_Updated}
192
-
193
- [source](counters.md#code)
194
-
195
- Behavioral class, private to this file.
196
-
197
- Satisfies [`State`](counters.md#symbol-State).
198
-
199
- **Inputs**
200
-
201
- - `count` (`int`) — required labeled input — stored as `count` and read-only after initialization.
202
-
203
- #### `_Updated.read` {#symbol-_Updated.read}
204
-
205
- [source](counters.md#code)
206
-
207
- Returns: `int`.
208
-
209
- **What it does**
210
-
211
- - Return `count`.
212
-
213
- ### `_Counter` {#symbol-_Counter}
214
-
215
- [source](counters.md#code)
216
-
217
- Behavioral class, private to this file.
218
-
219
- Satisfies [`Counter`](counters.md#symbol-Counter).
220
-
221
- **Inputs**
129
+ These providers are registered before startup. `State` is provided by [`_Initial`](counters.md#symbol-_Initial). The same instance is shared. `Counter` is provided by [`_Counter`](counters.md#symbol-_Counter). Each scope shares one instance. Shared mutation is allowed. It requires bindings for `State`.
222
130
 
223
- - `initial` ([`State`](counters.md#symbol-State)) — injected; callers omit it — stored as `_state` (private) and mutable.
131
+ ### `_Initial` · class · [source](counters.md#code) {#symbol-_Initial}
224
132
 
225
- #### `_Counter.increment` {#symbol-_Counter.increment}
133
+ It implements [`State`](counters.md#symbol-State). It is private to this file.
226
134
 
227
- [source](counters.md#code)
135
+ #### `_Initial.read` · [source](counters.md#code) {#symbol-_Initial.read}
228
136
 
229
- Returns: no value.
137
+ It returns `0`.
230
138
 
231
- May change: `self`.
139
+ ### `_Updated` · class · [source](counters.md#code) {#symbol-_Updated}
232
140
 
233
- **What it does**
141
+ It implements [`State`](counters.md#symbol-State). It is private to this file. It takes `count` as an integer, kept read-only.
234
142
 
235
- - Set `_state` to call [`_Updated`](counters.md#symbol-_Updated) with `count` = (call [`State.read`](counters.md#symbol-State.read) on `_state` plus `1`).
143
+ #### `_Updated.read` · [source](counters.md#code) {#symbol-_Updated.read}
236
144
 
237
- #### `_Counter.value` {#symbol-_Counter.value}
145
+ It returns `count`.
238
146
 
239
- [source](counters.md#code)
147
+ ### `_Counter` · class · [source](counters.md#code) {#symbol-_Counter}
240
148
 
241
- Returns: `int`.
149
+ It implements [`Counter`](counters.md#symbol-Counter). It is private to this file. The `_state` dependency is injected as [`State`](counters.md#symbol-State) and stored mutably and privately.
242
150
 
243
- **What it does**
151
+ #### `_Counter.increment` · [source](counters.md#code) {#symbol-_Counter.increment}
244
152
 
245
- - Return call [`State.read`](counters.md#symbol-State.read) on `_state`.
153
+ It may change `self`. It sets `_state` to a [`_Updated`](counters.md#symbol-_Updated) with `count` from [`_state.read`](counters.md#symbol-State.read) plus `1`.
246
154
 
247
- ### Shared language rules
155
+ #### `_Counter.value` · [source](counters.md#code) {#symbol-_Counter.value}
248
156
 
249
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
157
+ It returns [`_state.read`](counters.md#symbol-State.read).
250
158
 
251
159
  ::::
252
160
 
@@ -0,0 +1,178 @@
1
+ ---
2
+ title: "august/0.20.1/io/contracts.aug · Modules and composition"
3
+ generated: true
4
+ source: "examples/approved-design/.aug-spec/august/0.20.1/io/contracts.aug"
5
+ editLink: false
6
+ prev: false
7
+ next: false
8
+ outline: [2, 3]
9
+ search: false
10
+ pageClass: aug-example-page
11
+ ---
12
+
13
+ # `august/0.20.1/io/contracts.aug`
14
+
15
+ [Modules and composition](../../../../index.md) · Dependency source and specification
16
+
17
+ This is the exact dependency version used by this example.
18
+
19
+ ::::: example-compare
20
+
21
+ :::: example-code
22
+
23
+ ## Code {#code}
24
+
25
+ ::: code-group
26
+
27
+ ```aug [Indentation]
28
+ // aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
29
+ /** Permission to write to a console, provided by an explicitly selected adapter. */
30
+ capability Console:
31
+ /** Write one line of text. @param value Text to display. */
32
+ write<T>(T value) uses Console.write
33
+ /** The native standard-output adapter. Construction performs no output. */
34
+ SystemConsole() implements Console:
35
+ write<T>(T value):
36
+ print(value=value)
37
+ /** Read UTF-8 text through an explicitly selected filesystem adapter. */
38
+ capability FileReader:
39
+ /** Read text. @param path File path. @throws FileError The file could not be read. */
40
+ read(string path) returns string uses FileReader.read unless FileError
41
+ /** Write UTF-8 text through an explicitly selected filesystem adapter. */
42
+ capability FileWriter:
43
+ /** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
44
+ write(string path, string content) uses FileWriter.write unless FileError
45
+ /** Native files. Operations are explicit; construction opens no files. */
46
+ LocalFiles() implements FileReader, FileWriter:
47
+ read(string path):
48
+ return read_file(path=path)
49
+ write(string path, string content):
50
+ write_file(path=path, content=content)
51
+ /** Read command-line input through an explicit dependency. */
52
+ capability Arguments:
53
+ read() returns List<string> uses Arguments.read
54
+ /** Native command-line arguments. */
55
+ ProcessArguments() implements Arguments:
56
+ read():
57
+ return arguments()
58
+ ```
59
+
60
+ ```aug [Braces]
61
+ // aug-spec: "contracts.aug.md" explains this file. Read it before changes; refresh with aug spec.
62
+ /** Permission to write to a console, provided by an explicitly selected adapter. */
63
+ capability Console {
64
+ /** Write one line of text. @param value Text to display. */
65
+ write<T>(T value) uses Console.write
66
+ }
67
+ /** The native standard-output adapter. Construction performs no output. */
68
+ SystemConsole() implements Console {
69
+ write<T>(T value) {
70
+ print(value=value)
71
+ }
72
+ }
73
+ /** Read UTF-8 text through an explicitly selected filesystem adapter. */
74
+ capability FileReader {
75
+ /** Read text. @param path File path. @throws FileError The file could not be read. */
76
+ read(string path) returns string uses FileReader.read unless FileError
77
+ }
78
+ /** Write UTF-8 text through an explicitly selected filesystem adapter. */
79
+ capability FileWriter {
80
+ /** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
81
+ write(string path, string content) uses FileWriter.write unless FileError
82
+ }
83
+ /** Native files. Operations are explicit; construction opens no files. */
84
+ LocalFiles() implements FileReader, FileWriter {
85
+ read(string path) {
86
+ return read_file(path=path)
87
+ }
88
+ write(string path, string content) {
89
+ write_file(path=path, content=content)
90
+ }
91
+ }
92
+ /** Read command-line input through an explicit dependency. */
93
+ capability Arguments {
94
+ read() returns List<string> uses Arguments.read
95
+ }
96
+ /** Native command-line arguments. */
97
+ ProcessArguments() implements Arguments {
98
+ read() {
99
+ return arguments()
100
+ }
101
+ }
102
+ ```
103
+
104
+ :::
105
+
106
+ ::::
107
+
108
+ :::: example-spec
109
+
110
+ ## Compiled specification {#specification}
111
+
112
+ ### `Console` · capability interface · [source](contracts.md#code) {#symbol-Console}
113
+
114
+ Permission to write to a console, provided by an explicitly selected adapter.
115
+
116
+ #### `Console.write` · [source](contracts.md#code) {#symbol-Console.write}
117
+
118
+ Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It can call [`Console.write`](contracts.md#symbol-Console.write).
119
+
120
+ ### `SystemConsole` · class · [source](contracts.md#code) {#symbol-SystemConsole}
121
+
122
+ The native standard-output adapter. Construction performs no output. It implements [`Console`](contracts.md#symbol-Console).
123
+
124
+ #### `SystemConsole.write` · [source](contracts.md#code) {#symbol-SystemConsole.write}
125
+
126
+ Write one line of text. The type parameters are `T`. It takes `value` as `T` (Text to display). It prints `value`.
127
+
128
+ ### `FileReader` · capability interface · [source](contracts.md#code) {#symbol-FileReader}
129
+
130
+ Read UTF-8 text through an explicitly selected filesystem adapter.
131
+
132
+ #### `FileReader.read` · [source](contracts.md#code) {#symbol-FileReader.read}
133
+
134
+ Read text. It takes `path` as a string (File path).
135
+
136
+ It returns `string`. It can call [`FileReader.read`](contracts.md#symbol-FileReader.read). Failures can raise `FileError` (The file could not be read).
137
+
138
+ ### `FileWriter` · capability interface · [source](contracts.md#code) {#symbol-FileWriter}
139
+
140
+ Write UTF-8 text through an explicitly selected filesystem adapter.
141
+
142
+ #### `FileWriter.write` · [source](contracts.md#code) {#symbol-FileWriter.write}
143
+
144
+ Write text. It takes `path` as a string (File path) and `content` as a string (Text). It can call [`FileWriter.write`](contracts.md#symbol-FileWriter.write). Failures can raise `FileError` (Writing failed).
145
+
146
+ ### `LocalFiles` · class · [source](contracts.md#code) {#symbol-LocalFiles}
147
+
148
+ Native files. Operations are explicit; construction opens no files. It implements [`FileReader`](contracts.md#symbol-FileReader) and [`FileWriter`](contracts.md#symbol-FileWriter).
149
+
150
+ #### `LocalFiles.read` · [source](contracts.md#code) {#symbol-LocalFiles.read}
151
+
152
+ Read text. It takes `path` as a string (File path). Failures can raise `FileError` (The file could not be read). It returns `read_file` with `path`.
153
+
154
+ #### `LocalFiles.write` · [source](contracts.md#code) {#symbol-LocalFiles.write}
155
+
156
+ Write text. It takes `path` as a string (File path) and `content` as a string (Text). Failures can raise `FileError` (Writing failed). It calls `write_file` with `path` and `content`.
157
+
158
+ ### `Arguments` · capability interface · [source](contracts.md#code) {#symbol-Arguments}
159
+
160
+ Read command-line input through an explicit dependency.
161
+
162
+ #### `Arguments.read` · [source](contracts.md#code) {#symbol-Arguments.read}
163
+
164
+ It returns `List<string>`. It can call [`Arguments.read`](contracts.md#symbol-Arguments.read).
165
+
166
+ ### `ProcessArguments` · class · [source](contracts.md#code) {#symbol-ProcessArguments}
167
+
168
+ Native command-line arguments. It implements [`Arguments`](contracts.md#symbol-Arguments).
169
+
170
+ #### `ProcessArguments.read` · [source](contracts.md#code) {#symbol-ProcessArguments.read}
171
+
172
+ It returns `arguments`.
173
+
174
+ Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
175
+
176
+ ::::
177
+
178
+ :::::
@@ -33,6 +33,7 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  import Console from august.io
37
38
  import Fruit from models
38
39
  /** The application's explicit startup operation. */
@@ -41,13 +42,14 @@ interface Application:
41
42
  start() uses Console.write
42
43
  /** Construction stores dependencies; start performs the visible external work. */
43
44
  ApplicationImpl(resolve Console console) implements Application:
44
- start() uses console.write:
45
+ start():
45
46
  fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
46
47
  for item in fruit:
47
48
  console.write(value=item.name)
48
49
  ```
49
50
 
50
51
  ```aug [Braces]
52
+ // aug-spec: "app.aug.md" explains this file. Read it before changes; refresh with aug spec.
51
53
  import Console from august.io
52
54
  import Fruit from models
53
55
  /** The application's explicit startup operation. */
@@ -57,7 +59,7 @@ interface Application {
57
59
  }
58
60
  /** Construction stores dependencies; start performs the visible external work. */
59
61
  ApplicationImpl(resolve Console console) implements Application {
60
- start() uses console.write {
62
+ start() {
61
63
  fruit to [Fruit(code=1, name="apple"), Fruit(name="pear", code=2)]
62
64
  for item in fruit {
63
65
  console.write(value=item.name)
@@ -74,91 +76,25 @@ ApplicationImpl(resolve Console console) implements Application {
74
76
 
75
77
  ## Compiled specification {#specification}
76
78
 
77
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
78
-
79
- ### In this file
80
-
81
- - [`Application`](app.md#symbol-Application) is an interface.
82
- - [`ApplicationImpl`](app.md#symbol-ApplicationImpl) is a class implementing `Application`.
83
-
84
- ### `Application` {#symbol-Application}
85
-
86
- [source](app.md#code)
87
-
88
- Interface.
89
-
90
- **Author documentation**
79
+ ### `Application` · interface · [source](app.md#code) {#symbol-Application}
91
80
 
92
81
  The application's explicit startup operation.
93
82
 
94
- #### `Application.start` {#symbol-Application.start}
95
-
96
- [source](app.md#code)
97
-
98
- Returns: no value.
99
-
100
- Capabilities: [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
101
-
102
- Interface contract. A selected implementation supplies the behavior.
103
-
104
- **Author documentation**
105
-
106
- Writes the fruit names through the selected console.
107
-
108
- ### `ApplicationImpl` {#symbol-ApplicationImpl}
109
-
110
- [source](app.md#code)
111
-
112
- Behavioral class.
113
-
114
- Satisfies [`Application`](app.md#symbol-Application).
115
-
116
- **Author documentation**
117
-
118
- Construction stores dependencies; start performs the visible external work.
119
-
120
- **Inputs**
121
-
122
- - `console` ([`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it — stored as `console` and read-only after initialization.
123
-
124
- #### `ApplicationImpl.start` {#symbol-ApplicationImpl.start}
125
-
126
- [source](app.md#code)
127
-
128
- Returns: no value.
129
-
130
- Capabilities: [`console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
131
-
132
- **What it does**
133
-
134
- - Set `fruit` to a list containing call [`Fruit`](models.md#symbol-Fruit) with `code` = `1`; `name` = `"apple"`, call [`Fruit`](models.md#symbol-Fruit) with `name` = `"pear"`; `code` = `2`.
135
- - For each `item` in a snapshot of `fruit`, in iteration order:
136
- - Call [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `name` of `item`.
137
-
138
- **Author documentation**
139
-
140
- Writes the fruit names through the selected console.
141
-
142
- ### Dependencies used by this file
143
-
144
- Only referenced types and operations appear here. Each name links to its complete specification.
145
-
146
- #### [`Console`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console)
83
+ #### `Application.start` · [source](app.md#code) {#symbol-Application.start}
147
84
 
148
- Capability interface from `august.io`.
85
+ Writes the fruit names through the selected console. It can call [`Console.write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
149
86
 
150
- - [`Console.write`](../dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
87
+ ### `ApplicationImpl` · class · [source](app.md#code) {#symbol-ApplicationImpl}
151
88
 
152
- #### [`Fruit`](models.md#symbol-Fruit)
89
+ Construction stores dependencies; start performs the visible external work. It implements [`Application`](app.md#symbol-Application). The `console` dependency is injected as [`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console) and stored read-only.
153
90
 
154
- Record from `models`.
91
+ #### `ApplicationImpl.start` · [source](app.md#code) {#symbol-ApplicationImpl.start}
155
92
 
156
- - Construct with `code`: `int`, `name`: `string` → [`Fruit`](models.md#symbol-Fruit).
157
- - Read `name` (`string`).
93
+ Writes the fruit names through the selected console. It sets `fruit` to a list containing a [`Fruit`](models.md#symbol-Fruit) with `code` `1` and `name` `"apple"`, a [`Fruit`](models.md#symbol-Fruit) with `name` `"pear"` and `code` `2`. For each `item` in a snapshot of `fruit`, it passes `item.name` to [`console.write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
158
94
 
159
- ### Shared language rules
95
+ ### Dependencies
160
96
 
161
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
97
+ It uses [`Console`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console) ([`write`](../dependencies/august/0.20.1/io/contracts.md#symbol-Console.write)) from `august.io`. It uses [`Fruit`](models.md#symbol-Fruit) (`name`) from `models`.
162
98
 
163
99
  ::::
164
100
 
@@ -33,6 +33,7 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  export Application from app
37
38
  export ApplicationImpl from app
38
39
  export Fruit from models
@@ -41,6 +42,7 @@ export RangeError from numbers
41
42
  ```
42
43
 
43
44
  ```aug [Braces]
45
+ // aug-spec: "export.aug.md" explains this file. Read it before changes; refresh with aug spec.
44
46
  export Application from app
45
47
  export ApplicationImpl from app
46
48
  export Fruit from models
@@ -56,27 +58,11 @@ export RangeError from numbers
56
58
 
57
59
  ## Compiled specification {#specification}
58
60
 
59
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
61
+ ### Exports
60
62
 
61
- ### In this file
63
+ Export the declaration `Application` from [`app.aug`](app.md#symbol-Application). Export the declaration `ApplicationImpl` from [`app.aug`](app.md#symbol-ApplicationImpl). Export the declaration `Fruit` from [`models.aug`](models.md#symbol-Fruit). Export the declaration `double` from [`numbers.aug`](numbers.md#symbol-double).
62
64
 
63
- - Export `Application` from this folder.
64
- - Export `ApplicationImpl` from this folder.
65
- - Export `Fruit` from this folder.
66
- - Export `double` from this folder.
67
- - Export `RangeError` from this folder.
68
-
69
- ### Folder exports
70
-
71
- - Export the declaration `Application` from [`app.aug`](app.md#symbol-Application).
72
- - Export the declaration `ApplicationImpl` from [`app.aug`](app.md#symbol-ApplicationImpl).
73
- - Export the declaration `Fruit` from [`models.aug`](models.md#symbol-Fruit).
74
- - Export the declaration `double` from [`numbers.aug`](numbers.md#symbol-double).
75
- - Export the declaration `RangeError` from [`numbers.aug`](numbers.md#symbol-RangeError).
76
-
77
- ### Shared language rules
78
-
79
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
65
+ Export the declaration `RangeError` from [`numbers.aug`](numbers.md#symbol-RangeError).
80
66
 
81
67
  ::::
82
68
 
@@ -33,11 +33,13 @@ pageClass: aug-example-page
33
33
  ::: code-group
34
34
 
35
35
  ```aug [Indentation]
36
+ // aug-spec: "models.aug.md" explains this file. Read it before changes; refresh with aug spec.
36
37
  /** Immutable fruit data, with public construction labels and structural equality. */
37
38
  record Fruit(int code, string name)
38
39
  ```
39
40
 
40
41
  ```aug [Braces]
42
+ // aug-spec: "models.aug.md" explains this file. Read it before changes; refresh with aug spec.
41
43
  /** Immutable fruit data, with public construction labels and structural equality. */
42
44
  record Fruit(int code, string name)
43
45
  ```
@@ -50,30 +52,9 @@ record Fruit(int code, string name)
50
52
 
51
53
  ## Compiled specification {#specification}
52
54
 
53
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
55
+ ### `Fruit` · immutable record · [source](models.md#code) {#symbol-Fruit}
54
56
 
55
- ### In this file
56
-
57
- - [`Fruit`](models.md#symbol-Fruit) is an immutable record.
58
-
59
- ### `Fruit` {#symbol-Fruit}
60
-
61
- [source](models.md#code)
62
-
63
- Immutable record.
64
-
65
- **Author documentation**
66
-
67
- Immutable fruit data, with public construction labels and structural equality.
68
-
69
- **Inputs**
70
-
71
- - `code` (`int`) — required labeled input — stored as `code` and read-only after initialization.
72
- - `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
73
-
74
- ### Shared language rules
75
-
76
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
57
+ Immutable fruit data, with public construction labels and structural equality. It takes `code` as an integer, kept read-only and `name` as a string, kept read-only.
77
58
 
78
59
  ::::
79
60