@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
@@ -29,7 +29,8 @@ pageClass: aug-example-page
29
29
  ::: code-group
30
30
 
31
31
  ```aug [Indentation]
32
- import parse from august.json
32
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
33
+ import parse from json
33
34
  import Payload from data
34
35
  int checksum = 0
35
36
  int index = 0
@@ -46,7 +47,8 @@ catch JsonError error:
46
47
  ```
47
48
 
48
49
  ```aug [Braces]
49
- import parse from august.json
50
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
51
+ import parse from json
50
52
  import Payload from data
51
53
  int checksum = 0
52
54
  int index = 0
@@ -73,58 +75,17 @@ catch JsonError error {
73
75
 
74
76
  ## Compiled specification {#specification}
75
77
 
76
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
78
+ ### Startup
77
79
 
78
- ### In this file
80
+ It sets `checksum` and `index` separately, each to `0`. While `index` is less than `5000`, it sets `document` to [`parse`](dependencies/packages/%40git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md#symbol-parse) with `input` `"{\"id\":7,\"message\":\"hello\",\"values\":[1,2,3]}"`. It sets `payload` to `document.decode` for [`Payload`](data.md#symbol-Payload). It sets `encoded` to `stringify` on a `Json` with `value` from `payload`.
79
81
 
80
- - Run startup operations with checked error recovery.
81
- - Run 2 other startup steps in source order.
82
+ It sets `checksum` to (`checksum` plus `payload.id`) plus the byte length of `encoded`. It increases `index` by `1`. After the loop, it prints `checksum`. If this work raises `JsonError`, it calls `exit` with `status` `1`.
82
83
 
83
- ### Startup, in source order
84
+ ### Dependencies
84
85
 
85
- - Set `checksum` of type `int` to `0`.
86
- - Set `index` of type `int` to `0`.
87
- - Try these operations:
88
- - While `index` is less than `5000`, repeat:
89
- - Set `document` to call [`parse`](dependencies/august/0.19.0/json/contracts.md#symbol-parse) with `input` = `"{\"id\":7,\"message\":\"hello\",\"values\":[1,2,3]}"`.
90
- - Set `payload` to call `decode` on `document` with type arguments [`Payload`](data.md#symbol-Payload).
91
- - Set `encoded` to call `stringify` on call `Json` with `value` = `payload`.
92
- - Set `checksum` to (`checksum` plus `id` of `payload`) plus call `length` on `encoded`.
93
- - Set `index` to `index` plus `1`.
94
- - Check the condition again before the next iteration.
95
- - Call `print` with `value` = `checksum`.
96
- - If they fail with `JsonError`, name the failure `error` and recover:
97
- - Call `exit` with `status` = `1`.
86
+ It uses [`parse`](dependencies/packages/%40git/url_2d3c37c690c0fa115be1/0.0.0-git.a39fc582565d4fca40be4f75fa304d71adc69301/contracts.md#symbol-parse) from `json`. It uses [`Payload`](data.md#symbol-Payload) (`id`) from `data`.
98
87
 
99
- ### Dependencies used by this file
100
-
101
- Only referenced types and operations appear here. Each name links to its complete specification.
102
-
103
- #### [`parse`](dependencies/august/0.19.0/json/contracts.md#symbol-parse)
104
-
105
- Function from `august.json`.
106
-
107
- - [`parse`](dependencies/august/0.19.0/json/contracts.md#symbol-parse) (`input`: `string`) → `Json`; can fail with `JsonError`.
108
-
109
- #### [`Payload`](data.md#symbol-Payload)
110
-
111
- Record from `data`.
112
-
113
- - Read `id` (`int`).
114
-
115
- ### Built-in operations used by this file
116
-
117
- - `Json.decode` (no inputs) → `Payload`: Decode a checked record or data type: json.decode<Profile>(). Unknown fields, type mismatches, and validation errors are rejected. Can fail with `JsonError`.
118
- - `Json.stringify` (no inputs) → `string`: Serialize this JSON value with checked UTF-8 escaping and exact int64 values. Can fail with `JsonError`.
119
- - `exit` (`status`: `int`) → `void`: Exit from main with a status from 0 to 255 after cancellation and cleanup.
120
- - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
121
- - `string.length` (no inputs) → `int`: Read the number of UTF-8 bytes. Unicode text is preserved losslessly.
122
-
123
- [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
124
-
125
- ### Shared language rules
126
-
127
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
88
+ Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
128
89
 
129
90
  ::::
130
91
 
@@ -32,18 +32,20 @@ pageClass: aug-example-page
32
32
  ::: code-group
33
33
 
34
34
  ```aug [Indentation]
35
+ // aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
35
36
  import Console from august.io
36
37
  import Logger from logger
37
38
  ConsoleLogger() implements Logger:
38
- log(resolve Console console, string message) uses Console.write:
39
+ log(resolve Console console, string message):
39
40
  console.write(value=message)
40
41
  ```
41
42
 
42
43
  ```aug [Braces]
44
+ // aug-spec: "console.aug.md" explains this file. Read it before changes; refresh with aug spec.
43
45
  import Console from august.io
44
46
  import Logger from logger
45
47
  ConsoleLogger() implements Logger {
46
- log(resolve Console console, string message) uses Console.write {
48
+ log(resolve Console console, string message) {
47
49
  console.write(value=message)
48
50
  }
49
51
  }
@@ -57,61 +59,17 @@ ConsoleLogger() implements Logger {
57
59
 
58
60
  ## Compiled specification {#specification}
59
61
 
60
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
62
+ ### `ConsoleLogger` · class · [source](console.md#code) {#symbol-ConsoleLogger}
61
63
 
62
- ### In this file
64
+ It implements [`Logger`](logger.md#symbol-Logger).
63
65
 
64
- - [`ConsoleLogger`](console.md#symbol-ConsoleLogger) is a class implementing `Logger`.
66
+ #### `ConsoleLogger.log` · [source](console.md#code) {#symbol-ConsoleLogger.log}
65
67
 
66
- ### `ConsoleLogger` {#symbol-ConsoleLogger}
68
+ It takes `message` as a string (Text to display). It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It passes `message` to [`console.write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
67
69
 
68
- [source](console.md#code)
70
+ ### Dependencies
69
71
 
70
- Behavioral class.
71
-
72
- Satisfies [`Logger`](logger.md#symbol-Logger).
73
-
74
- #### `ConsoleLogger.log` {#symbol-ConsoleLogger.log}
75
-
76
- [source](console.md#code)
77
-
78
- **Inputs**
79
-
80
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
81
- - `message` (`string`) — required labeled input.
82
-
83
- Returns: no value.
84
-
85
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
86
-
87
- **What it does**
88
-
89
- - Call [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write) on `console` with `value` = `message`.
90
-
91
- **Author documentation**
92
-
93
- **Parameters**
94
- - `message`: Text to display.
95
-
96
- ### Dependencies used by this file
97
-
98
- Only referenced types and operations appear here. Each name links to its complete specification.
99
-
100
- #### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
101
-
102
- Capability interface from `august.io`.
103
-
104
- - [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
105
-
106
- #### [`Logger`](logger.md#symbol-Logger)
107
-
108
- Interface from `logger`.
109
-
110
- Used as a type or provider.
111
-
112
- ### Shared language rules
113
-
114
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
72
+ 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 [`Logger`](logger.md#symbol-Logger) from `logger`.
115
73
 
116
74
  ::::
117
75
 
@@ -0,0 +1,178 @@
1
+ ---
2
+ title: "august/0.20.1/io/contracts.aug · Labeled calls and injection"
3
+ generated: true
4
+ source: "examples/new-syntax/.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
+ [Labeled calls and injection](../../../../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
+ :::::
@@ -32,20 +32,22 @@ pageClass: aug-example-page
32
32
  ::: code-group
33
33
 
34
34
  ```aug [Indentation]
35
+ // aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
35
36
  import Console from august.io
36
37
  import Logger from logger
37
38
  Greeter(resolve Logger logger, int x) implements IGreeter:
38
- greet(resolve Console console, string name) uses Console.write:
39
+ greet(resolve Console console, string name):
39
40
  logger.log(message="Hello, " + name + "!")
40
41
  interface IGreeter:
41
42
  greet(resolve Console console, string name) uses Console.write
42
43
  ```
43
44
 
44
45
  ```aug [Braces]
46
+ // aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
45
47
  import Console from august.io
46
48
  import Logger from logger
47
49
  Greeter(resolve Logger logger, int x) implements IGreeter {
48
- greet(resolve Console console, string name) uses Console.write {
50
+ greet(resolve Console console, string name) {
49
51
  logger.log(message="Hello, " + name + "!")
50
52
  }
51
53
  }
@@ -62,83 +64,23 @@ interface IGreeter {
62
64
 
63
65
  ## Compiled specification {#specification}
64
66
 
65
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
67
+ ### `Greeter` · class · [source](greeter.md#code) {#symbol-Greeter}
66
68
 
67
- ### In this file
69
+ It implements [`IGreeter`](greeter.md#symbol-IGreeter). It takes `x` as an integer, kept read-only. It gets `logger` ([`Logger`](logger.md#symbol-Logger)), kept read-only from dependency injection.
68
70
 
69
- - [`Greeter`](greeter.md#symbol-Greeter) is a class implementing `IGreeter`.
70
- - [`IGreeter`](greeter.md#symbol-IGreeter) is an interface.
71
+ #### `Greeter.greet` · [source](greeter.md#code) {#symbol-Greeter.greet}
71
72
 
72
- ### `Greeter` {#symbol-Greeter}
73
+ It takes `name` as a string. It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It passes the text `Hello, {name}!` to [`logger.log`](logger.md#symbol-Logger.log), using injected `console`.
73
74
 
74
- [source](greeter.md#code)
75
+ ### `IGreeter` · interface · [source](greeter.md#code) {#symbol-IGreeter}
75
76
 
76
- Behavioral class.
77
+ #### `IGreeter.greet` · [source](greeter.md#code) {#symbol-IGreeter.greet}
77
78
 
78
- Satisfies [`IGreeter`](greeter.md#symbol-IGreeter).
79
+ It takes `name` as a string. It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It can call [`Console.write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
79
80
 
80
- **Inputs**
81
+ ### Dependencies
81
82
 
82
- - `logger` ([`Logger`](logger.md#symbol-Logger)) — injected; callers omit it — stored as `logger` and read-only after initialization.
83
- - `x` (`int`) — required labeled input — stored as `x` and read-only after initialization.
84
-
85
- #### `Greeter.greet` {#symbol-Greeter.greet}
86
-
87
- [source](greeter.md#code)
88
-
89
- **Inputs**
90
-
91
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
92
- - `name` (`string`) — required labeled input.
93
-
94
- Returns: no value.
95
-
96
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
97
-
98
- **What it does**
99
-
100
- - Call [`Logger.log`](logger.md#symbol-Logger.log) on `logger` with `message` = (text formed by joining `"Hello, "`, `name`, `"!"` in order); inject `console` from `console`.
101
-
102
- ### `IGreeter` {#symbol-IGreeter}
103
-
104
- [source](greeter.md#code)
105
-
106
- Interface.
107
-
108
- #### `IGreeter.greet` {#symbol-IGreeter.greet}
109
-
110
- [source](greeter.md#code)
111
-
112
- **Inputs**
113
-
114
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
115
- - `name` (`string`) — required labeled input.
116
-
117
- Returns: no value.
118
-
119
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
120
-
121
- Interface contract. A selected implementation supplies the behavior.
122
-
123
- ### Dependencies used by this file
124
-
125
- Only referenced types and operations appear here. Each name links to its complete specification.
126
-
127
- #### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
128
-
129
- Capability interface from `august.io`.
130
-
131
- - [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
132
-
133
- #### [`Logger`](logger.md#symbol-Logger)
134
-
135
- Interface from `logger`.
136
-
137
- - [`Logger.log`](logger.md#symbol-Logger.log) (`message`: `string`) → `void`; inject `console`: [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console); uses [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
138
-
139
- ### Shared language rules
140
-
141
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
83
+ 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 [`Logger`](logger.md#symbol-Logger) ([`log`](logger.md#symbol-Logger.log)) from `logger`.
142
84
 
143
85
  ::::
144
86
 
@@ -12,7 +12,7 @@ outline: [2, 3]
12
12
 
13
13
  Constructor injection, named inputs, ordinary functions, and same-file tests.
14
14
 
15
- Read a file below to see its highlighted source and the Markdown produced by `aug spec`. Choose **Indentation** or **Braces** above the code. Both views describe the same checked program; your choice is kept when you open another file.
15
+ Open a file to read its source beside the explanation produced by `aug spec`. **Indentation** and **Braces** display the same checked program; your choice carries across file pages.
16
16
 
17
17
  ## Project files
18
18
 
@@ -25,12 +25,13 @@ Read a file below to see its highlighted source and the Markdown produced by `au
25
25
 
26
26
  ## Try this project
27
27
 
28
- From a repository checkout with August installed:
28
+ [Download this project](/downloads/new-syntax.zip), then extract the archive in an empty working folder. It contains the checked source, configuration, and generated specs. [Install August](../../getting-started.md) once, then run these commands. Native libraries are prepared automatically when needed:
29
29
 
30
30
  ```sh
31
- aug check examples/new-syntax
32
- aug spec examples/new-syntax
33
- aug run examples/new-syntax
31
+ cd new-syntax
32
+ aug check .
33
+ aug spec .
34
+ aug run .
34
35
  ```
35
36
 
36
37
  [Browse all examples](../index.md)
@@ -32,6 +32,7 @@ pageClass: aug-example-page
32
32
  ::: code-group
33
33
 
34
34
  ```aug [Indentation]
35
+ // aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
35
36
  import Console from august.io
36
37
  /** Displays application messages. */
37
38
  interface Logger:
@@ -40,6 +41,7 @@ interface Logger:
40
41
  ```
41
42
 
42
43
  ```aug [Braces]
44
+ // aug-spec: "logger.aug.md" explains this file. Read it before changes; refresh with aug spec.
43
45
  import Console from august.io
44
46
  /** Displays application messages. */
45
47
  interface Logger {
@@ -56,55 +58,17 @@ interface Logger {
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.
60
-
61
- ### In this file
62
-
63
- - [`Logger`](logger.md#symbol-Logger) is an interface.
64
-
65
- ### `Logger` {#symbol-Logger}
66
-
67
- [source](logger.md#code)
68
-
69
- Interface.
70
-
71
- **Author documentation**
61
+ ### `Logger` · interface · [source](logger.md#code) {#symbol-Logger}
72
62
 
73
63
  Displays application messages.
74
64
 
75
- #### `Logger.log` {#symbol-Logger.log}
76
-
77
- [source](logger.md#code)
78
-
79
- **Inputs**
80
-
81
- - `console` ([`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)) — injected; callers omit it.
82
- - `message` (`string`) — required labeled input.
83
-
84
- Returns: no value.
85
-
86
- Capabilities: [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
87
-
88
- Interface contract. A selected implementation supplies the behavior.
89
-
90
- **Author documentation**
91
-
92
- **Parameters**
93
- - `message`: Text to display.
94
-
95
- ### Dependencies used by this file
96
-
97
- Only referenced types and operations appear here. Each name links to its complete specification.
98
-
99
- #### [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console)
100
-
101
- Capability interface from `august.io`.
65
+ #### `Logger.log` · [source](logger.md#code) {#symbol-Logger.log}
102
66
 
103
- - [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
67
+ It takes `message` as a string (Text to display). It gets `console` ([`Console`](dependencies/august/0.20.1/io/contracts.md#symbol-Console)) from dependency injection. It can call [`Console.write`](dependencies/august/0.20.1/io/contracts.md#symbol-Console.write).
104
68
 
105
- ### Shared language rules
69
+ ### Dependencies
106
70
 
107
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
71
+ 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`.
108
72
 
109
73
  ::::
110
74
 
@@ -32,6 +32,7 @@ pageClass: aug-example-page
32
32
  ::: code-group
33
33
 
34
34
  ```aug [Indentation]
35
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
35
36
  import Console and SystemConsole from august.io
36
37
  implement Console with SystemConsole
37
38
  import Logger from logger
@@ -47,6 +48,7 @@ print(value=count)
47
48
  ```
48
49
 
49
50
  ```aug [Braces]
51
+ // aug-spec: "main.aug.md" explains this file. Read it before changes; refresh with aug spec.
50
52
  import Console and SystemConsole from august.io
51
53
  implement Console with SystemConsole
52
54
  import Logger from logger
@@ -69,66 +71,21 @@ print(value=count)
69
71
 
70
72
  ## Compiled specification {#specification}
71
73
 
72
- August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
74
+ ### Providers
73
75
 
74
- ### In this file
76
+ `Console` is provided by [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole). The same instance is shared. `Logger` is provided by [`ConsoleLogger`](console.md#symbol-ConsoleLogger). The same instance is shared.
75
77
 
76
- - Register 2 dependency providers before startup.
77
- - Run 5 other startup steps in source order.
78
+ ### Startup
78
79
 
79
- ### Dependency providers
80
+ It sets `greeter` to a [`Greeter`](greeter.md#symbol-Greeter) with `x` `4` using injected `Logger` for `logger`. It passes `"AugScript"` to [`greeter.greet`](greeter.md#symbol-Greeter.greet), using injected `Console`. It sets `count` to `7`. It sets `count` to [`increment`](math.md#symbol-increment) with `value` from `count`.
80
81
 
81
- Register these providers before startup. Their declaration order does not set initialization order; shared instances initialize in dependency order.
82
+ It prints `count`.
82
83
 
83
- - Provide [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole) when `Console` is requested. Reuse one instance.
84
- - Provide [`ConsoleLogger`](console.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
84
+ ### Dependencies
85
85
 
86
- ### Startup, in source order
86
+ It uses [`SystemConsole`](dependencies/august/0.20.1/io/contracts.md#symbol-SystemConsole) from `august.io`. It uses [`ConsoleLogger`](console.md#symbol-ConsoleLogger) from `console`. It uses [`Greeter`](greeter.md#symbol-Greeter) ([`greet`](greeter.md#symbol-Greeter.greet)) from `greeter`. It uses [`increment`](math.md#symbol-increment) from `math`.
87
87
 
88
- - Set `greeter` to call [`Greeter`](greeter.md#symbol-Greeter) with `x` = `4`; inject `logger` from `Logger`.
89
- - Call [`Greeter.greet`](greeter.md#symbol-Greeter.greet) on `greeter` with `name` = `"AugScript"`; inject `console` from `Console`.
90
- - Set `count` of type `int` to `7`.
91
- - Set `count` to call [`increment`](math.md#symbol-increment) with `value` = `count`.
92
- - Call `print` with `value` = `count`.
93
-
94
- ### Dependencies used by this file
95
-
96
- Only referenced types and operations appear here. Each name links to its complete specification.
97
-
98
- #### [`SystemConsole`](dependencies/august/0.19.0/io/contracts.md#symbol-SystemConsole)
99
-
100
- Class from `august.io`.
101
-
102
- Used as a type or provider.
103
-
104
- #### [`ConsoleLogger`](console.md#symbol-ConsoleLogger)
105
-
106
- Class from `console`.
107
-
108
- Used as a type or provider.
109
-
110
- #### [`Greeter`](greeter.md#symbol-Greeter)
111
-
112
- Class from `greeter`.
113
-
114
- - Construct with `x`: `int` → [`Greeter`](greeter.md#symbol-Greeter).
115
- - [`Greeter.greet`](greeter.md#symbol-Greeter.greet) (`name`: `string`) → `void`; inject `console`: [`Console`](dependencies/august/0.19.0/io/contracts.md#symbol-Console); uses [`Console.write`](dependencies/august/0.19.0/io/contracts.md#symbol-Console.write).
116
-
117
- #### [`increment`](math.md#symbol-increment)
118
-
119
- Function from `math`.
120
-
121
- - [`increment`](math.md#symbol-increment) (`value`: `int`) → `int`.
122
-
123
- ### Built-in operations used by this file
124
-
125
- - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
126
-
127
- [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
128
-
129
- ### Shared language rules
130
-
131
- See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
88
+ Built-in operations follow the [language reference](https://greenpandastudios.github.io/augscript/language-constructs).
132
89
 
133
90
  ::::
134
91