@greenpandastudios/aug-cli 0.19.0

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 (414) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/THIRD_PARTY_NOTICES.md +18 -0
  4. package/bin/aug.mjs +3 -0
  5. package/docs/api/crypto.md +351 -0
  6. package/docs/api/io.md +207 -0
  7. package/docs/api/json.md +21 -0
  8. package/docs/api/memory.md +109 -0
  9. package/docs/api/time.md +54 -0
  10. package/docs/api/web.md +184 -0
  11. package/docs/assets/benchmarks/execution.svg +2978 -0
  12. package/docs/assets/benchmarks/http.svg +1674 -0
  13. package/docs/assets/benchmarks/improvements.svg +2315 -0
  14. package/docs/assets/benchmarks/memory.svg +1891 -0
  15. package/docs/benchmark-baseline.json +1087 -0
  16. package/docs/benchmark-results.json +91123 -0
  17. package/docs/benchmarks.json +38 -0
  18. package/docs/compatibility.md +42 -0
  19. package/docs/concurrency-implementation.md +18 -0
  20. package/docs/diagnostics.md +97 -0
  21. package/docs/docker.md +35 -0
  22. package/docs/example-projects.json +26 -0
  23. package/docs/examples/approved-design/counters.md +253 -0
  24. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +395 -0
  25. package/docs/examples/approved-design/domain/app.md +165 -0
  26. package/docs/examples/approved-design/domain/export.md +83 -0
  27. package/docs/examples/approved-design/domain/models.md +80 -0
  28. package/docs/examples/approved-design/domain/numbers.md +248 -0
  29. package/docs/examples/approved-design/index.md +39 -0
  30. package/docs/examples/approved-design/main-yaml.md +24 -0
  31. package/docs/examples/approved-design/main.md +215 -0
  32. package/docs/examples/benchmark/index.md +33 -0
  33. package/docs/examples/benchmark/main-yaml.md +17 -0
  34. package/docs/examples/benchmark/main.md +117 -0
  35. package/docs/examples/cli-args/index.md +32 -0
  36. package/docs/examples/cli-args/main.md +107 -0
  37. package/docs/examples/collections/index.md +32 -0
  38. package/docs/examples/collections/main.md +118 -0
  39. package/docs/examples/collections-benchmark/index.md +34 -0
  40. package/docs/examples/collections-benchmark/main.md +115 -0
  41. package/docs/examples/cpu-benchmark/index.md +34 -0
  42. package/docs/examples/cpu-benchmark/main.md +90 -0
  43. package/docs/examples/developer-workflow/calculator.md +357 -0
  44. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +395 -0
  45. package/docs/examples/developer-workflow/index.md +37 -0
  46. package/docs/examples/developer-workflow/logging/console.md +124 -0
  47. package/docs/examples/developer-workflow/logging/export.md +70 -0
  48. package/docs/examples/developer-workflow/logging/logger.md +111 -0
  49. package/docs/examples/developer-workflow/main.md +172 -0
  50. package/docs/examples/drop/index.md +33 -0
  51. package/docs/examples/drop/main.md +85 -0
  52. package/docs/examples/drop/resource.md +95 -0
  53. package/docs/examples/errors/errors.md +85 -0
  54. package/docs/examples/errors/index.md +33 -0
  55. package/docs/examples/errors/main.md +92 -0
  56. package/docs/examples/ffi/index.md +33 -0
  57. package/docs/examples/ffi/main.md +75 -0
  58. package/docs/examples/ffi/native.md +93 -0
  59. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +395 -0
  60. package/docs/examples/generic-di/index.md +33 -0
  61. package/docs/examples/generic-di/main.md +111 -0
  62. package/docs/examples/generic-di/types.md +180 -0
  63. package/docs/examples/generics/index.md +33 -0
  64. package/docs/examples/generics/main.md +120 -0
  65. package/docs/examples/generics/types.md +189 -0
  66. package/docs/examples/hello/app/export.md +67 -0
  67. package/docs/examples/hello/app/greeter.md +190 -0
  68. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +395 -0
  69. package/docs/examples/hello/index.md +37 -0
  70. package/docs/examples/hello/logging/console.md +121 -0
  71. package/docs/examples/hello/logging/export.md +71 -0
  72. package/docs/examples/hello/logging/logger.md +120 -0
  73. package/docs/examples/hello/main.md +115 -0
  74. package/docs/examples/http-benchmark/index.md +35 -0
  75. package/docs/examples/http-benchmark/main.md +79 -0
  76. package/docs/examples/http-benchmark/routes.md +88 -0
  77. package/docs/examples/index.md +60 -0
  78. package/docs/examples/interceptors/app.md +250 -0
  79. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +395 -0
  80. package/docs/examples/interceptors/index.md +35 -0
  81. package/docs/examples/interceptors/interceptors.md +284 -0
  82. package/docs/examples/interceptors/logging.md +155 -0
  83. package/docs/examples/interceptors/main.md +162 -0
  84. package/docs/examples/json-benchmark/data.md +71 -0
  85. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +103 -0
  86. package/docs/examples/json-benchmark/index.md +35 -0
  87. package/docs/examples/json-benchmark/main.md +131 -0
  88. package/docs/examples/new-syntax/console.md +118 -0
  89. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +395 -0
  90. package/docs/examples/new-syntax/greeter.md +145 -0
  91. package/docs/examples/new-syntax/index.md +36 -0
  92. package/docs/examples/new-syntax/logger.md +111 -0
  93. package/docs/examples/new-syntax/main.md +135 -0
  94. package/docs/examples/new-syntax/math.md +79 -0
  95. package/docs/examples/oidc-login/client/contracts.md +151 -0
  96. package/docs/examples/oidc-login/client/endpoints.md +263 -0
  97. package/docs/examples/oidc-login/client/export.md +107 -0
  98. package/docs/examples/oidc-login/client/login.md +515 -0
  99. package/docs/examples/oidc-login/client/logout.md +249 -0
  100. package/docs/examples/oidc-login/client/protocol.md +595 -0
  101. package/docs/examples/oidc-login/client/session.md +297 -0
  102. package/docs/examples/oidc-login/client/views.md +144 -0
  103. package/docs/examples/oidc-login/common/export.md +115 -0
  104. package/docs/examples/oidc-login/common/headers.md +162 -0
  105. package/docs/examples/oidc-login/common/keys.md +336 -0
  106. package/docs/examples/oidc-login/common/settings.md +116 -0
  107. package/docs/examples/oidc-login/common/views.md +103 -0
  108. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +925 -0
  109. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +434 -0
  110. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +103 -0
  111. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +374 -0
  112. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +150 -0
  113. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +532 -0
  114. package/docs/examples/oidc-login/index.md +57 -0
  115. package/docs/examples/oidc-login/main-yaml.md +28 -0
  116. package/docs/examples/oidc-login/main.md +283 -0
  117. package/docs/examples/oidc-login/provider/authorization.md +457 -0
  118. package/docs/examples/oidc-login/provider/contracts.md +267 -0
  119. package/docs/examples/oidc-login/provider/credentials.md +148 -0
  120. package/docs/examples/oidc-login/provider/discovery.md +215 -0
  121. package/docs/examples/oidc-login/provider/export.md +131 -0
  122. package/docs/examples/oidc-login/provider/token.md +364 -0
  123. package/docs/examples/oidc-login/provider/userinfo.md +228 -0
  124. package/docs/examples/oidc-login/provider/views.md +137 -0
  125. package/docs/examples/ownership/counter.md +140 -0
  126. package/docs/examples/ownership/index.md +33 -0
  127. package/docs/examples/ownership/main.md +90 -0
  128. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +395 -0
  129. package/docs/examples/ownership-transfer/index.md +33 -0
  130. package/docs/examples/ownership-transfer/main.md +125 -0
  131. package/docs/examples/ownership-transfer/resource.md +150 -0
  132. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +117 -0
  133. package/docs/examples/packages-app/index.md +34 -0
  134. package/docs/examples/packages-app/main-yaml.md +18 -0
  135. package/docs/examples/packages-app/main.md +80 -0
  136. package/docs/examples/packages-math/aug-package-json.md +24 -0
  137. package/docs/examples/packages-math/index.md +36 -0
  138. package/docs/examples/packages-math/package-json.md +25 -0
  139. package/docs/examples/packages-math/src/arithmetic.md +121 -0
  140. package/docs/examples/packages-math/src/export.md +63 -0
  141. package/docs/examples/startup-benchmark/index.md +34 -0
  142. package/docs/examples/startup-benchmark/main.md +68 -0
  143. package/docs/examples/visibility/counter.md +142 -0
  144. package/docs/examples/visibility/index.md +33 -0
  145. package/docs/examples/visibility/main.md +96 -0
  146. package/docs/examples.json +47 -0
  147. package/docs/getting-started.md +5 -0
  148. package/docs/grammar.md +136 -0
  149. package/docs/implementation-map.md +106 -0
  150. package/docs/index.md +46 -0
  151. package/docs/language-conformance.md +30 -0
  152. package/docs/language-constructs.md +1461 -0
  153. package/docs/language-design-audit.md +147 -0
  154. package/docs/maintaining-docs.md +43 -0
  155. package/docs/packages.md +184 -0
  156. package/docs/performance.md +535 -0
  157. package/docs/production-readiness.md +39 -0
  158. package/docs/reference.md +361 -0
  159. package/docs/release-review.md +23 -0
  160. package/docs/releasing.md +79 -0
  161. package/docs/roadmap.md +13 -0
  162. package/docs/specifications.md +86 -0
  163. package/docs/testing.md +120 -0
  164. package/docs/tooling.md +197 -0
  165. package/docs/web-implementation-plan.md +39 -0
  166. package/docs/web-library-gaps.md +27 -0
  167. package/docs/web.md +197 -0
  168. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  169. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  170. package/examples/approved-design/.aug-spec/manifest.json +14 -0
  171. package/examples/approved-design/counters.aug +22 -0
  172. package/examples/approved-design/counters.aug.md +177 -0
  173. package/examples/approved-design/domain/app.aug +12 -0
  174. package/examples/approved-design/domain/app.aug.md +97 -0
  175. package/examples/approved-design/domain/export.aug +5 -0
  176. package/examples/approved-design/domain/export.aug.md +25 -0
  177. package/examples/approved-design/domain/models.aug +2 -0
  178. package/examples/approved-design/domain/models.aug.md +30 -0
  179. package/examples/approved-design/domain/numbers.aug +29 -0
  180. package/examples/approved-design/domain/numbers.aug.md +141 -0
  181. package/examples/approved-design/main.aug +26 -0
  182. package/examples/approved-design/main.aug.md +108 -0
  183. package/examples/approved-design/main.yaml +8 -0
  184. package/examples/benchmark/.aug-spec/manifest.json +7 -0
  185. package/examples/benchmark/main.aug +17 -0
  186. package/examples/benchmark/main.aug.md +43 -0
  187. package/examples/benchmark/main.yaml +1 -0
  188. package/examples/cli-args/.aug-spec/manifest.json +7 -0
  189. package/examples/cli-args/main.aug +15 -0
  190. package/examples/cli-args/main.aug.md +38 -0
  191. package/examples/collections/.aug-spec/manifest.json +7 -0
  192. package/examples/collections/main.aug +18 -0
  193. package/examples/collections/main.aug.md +43 -0
  194. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  195. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  196. package/examples/developer-workflow/.aug-spec/manifest.json +13 -0
  197. package/examples/developer-workflow/calculator.aug +55 -0
  198. package/examples/developer-workflow/calculator.aug.md +228 -0
  199. package/examples/developer-workflow/logging/console.aug +8 -0
  200. package/examples/developer-workflow/logging/console.aug.md +67 -0
  201. package/examples/developer-workflow/logging/export.aug +2 -0
  202. package/examples/developer-workflow/logging/export.aug.md +19 -0
  203. package/examples/developer-workflow/logging/logger.aug +6 -0
  204. package/examples/developer-workflow/logging/logger.aug.md +57 -0
  205. package/examples/developer-workflow/main.aug +25 -0
  206. package/examples/developer-workflow/main.aug.md +79 -0
  207. package/examples/drop/.aug-spec/manifest.json +8 -0
  208. package/examples/drop/main.aug +3 -0
  209. package/examples/drop/main.aug.md +35 -0
  210. package/examples/drop/resource.aug +8 -0
  211. package/examples/drop/resource.aug.md +44 -0
  212. package/examples/errors/.aug-spec/manifest.json +8 -0
  213. package/examples/errors/errors.aug +6 -0
  214. package/examples/errors/errors.aug.md +33 -0
  215. package/examples/errors/main.aug +7 -0
  216. package/examples/errors/main.aug.md +36 -0
  217. package/examples/ffi/.aug-spec/manifest.json +8 -0
  218. package/examples/ffi/main.aug +2 -0
  219. package/examples/ffi/main.aug.md +27 -0
  220. package/examples/ffi/native.aug +6 -0
  221. package/examples/ffi/native.aug.md +43 -0
  222. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  223. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  224. package/examples/generic-di/.aug-spec/manifest.json +10 -0
  225. package/examples/generic-di/main.aug +9 -0
  226. package/examples/generic-di/main.aug.md +49 -0
  227. package/examples/generic-di/types.aug +17 -0
  228. package/examples/generic-di/types.aug.md +124 -0
  229. package/examples/generics/.aug-spec/manifest.json +8 -0
  230. package/examples/generics/main.aug +9 -0
  231. package/examples/generics/main.aug.md +58 -0
  232. package/examples/generics/types.aug +19 -0
  233. package/examples/generics/types.aug.md +132 -0
  234. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  235. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  236. package/examples/hello/.aug-spec/manifest.json +14 -0
  237. package/examples/hello/app/export.aug +1 -0
  238. package/examples/hello/app/export.aug.md +17 -0
  239. package/examples/hello/app/greeter.aug +22 -0
  240. package/examples/hello/app/greeter.aug.md +109 -0
  241. package/examples/hello/logging/console.aug +7 -0
  242. package/examples/hello/logging/console.aug.md +65 -0
  243. package/examples/hello/logging/export.aug +2 -0
  244. package/examples/hello/logging/export.aug.md +19 -0
  245. package/examples/hello/logging/logger.aug +9 -0
  246. package/examples/hello/logging/logger.aug.md +59 -0
  247. package/examples/hello/main.aug +9 -0
  248. package/examples/hello/main.aug.md +49 -0
  249. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  250. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  251. package/examples/interceptors/.aug-spec/manifest.json +12 -0
  252. package/examples/interceptors/app.aug +28 -0
  253. package/examples/interceptors/app.aug.md +162 -0
  254. package/examples/interceptors/interceptors.aug +40 -0
  255. package/examples/interceptors/interceptors.aug.md +180 -0
  256. package/examples/interceptors/logging.aug +12 -0
  257. package/examples/interceptors/logging.aug.md +96 -0
  258. package/examples/interceptors/main.aug +22 -0
  259. package/examples/interceptors/main.aug.md +76 -0
  260. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  261. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  262. package/examples/new-syntax/.aug-spec/manifest.json +13 -0
  263. package/examples/new-syntax/console.aug +7 -0
  264. package/examples/new-syntax/console.aug.md +63 -0
  265. package/examples/new-syntax/greeter.aug +10 -0
  266. package/examples/new-syntax/greeter.aug.md +89 -0
  267. package/examples/new-syntax/logger.aug +6 -0
  268. package/examples/new-syntax/logger.aug.md +57 -0
  269. package/examples/new-syntax/main.aug +12 -0
  270. package/examples/new-syntax/main.aug.md +64 -0
  271. package/examples/new-syntax/math.aug +3 -0
  272. package/examples/new-syntax/math.aug.md +29 -0
  273. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug +73 -0
  274. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +791 -0
  275. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug +68 -0
  276. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +266 -0
  277. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug +6 -0
  278. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +55 -0
  279. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug +45 -0
  280. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +250 -0
  281. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug +11 -0
  282. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +96 -0
  283. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug +58 -0
  284. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +420 -0
  285. package/examples/oidc-login/.aug-spec/manifest.json +40 -0
  286. package/examples/oidc-login/README.md +29 -0
  287. package/examples/oidc-login/client/contracts.aug +7 -0
  288. package/examples/oidc-login/client/contracts.aug.md +80 -0
  289. package/examples/oidc-login/client/endpoints.aug +21 -0
  290. package/examples/oidc-login/client/endpoints.aug.md +161 -0
  291. package/examples/oidc-login/client/export.aug +7 -0
  292. package/examples/oidc-login/client/export.aug.md +29 -0
  293. package/examples/oidc-login/client/login.aug +58 -0
  294. package/examples/oidc-login/client/login.aug.md +331 -0
  295. package/examples/oidc-login/client/logout.aug +18 -0
  296. package/examples/oidc-login/client/logout.aug.md +150 -0
  297. package/examples/oidc-login/client/protocol.aug +106 -0
  298. package/examples/oidc-login/client/protocol.aug.md +326 -0
  299. package/examples/oidc-login/client/session.aug +34 -0
  300. package/examples/oidc-login/client/session.aug.md +155 -0
  301. package/examples/oidc-login/client/views.aug +21 -0
  302. package/examples/oidc-login/client/views.aug.md +68 -0
  303. package/examples/oidc-login/common/export.aug +9 -0
  304. package/examples/oidc-login/common/export.aug.md +33 -0
  305. package/examples/oidc-login/common/headers.aug +11 -0
  306. package/examples/oidc-login/common/headers.aug.md +79 -0
  307. package/examples/oidc-login/common/keys.aug +37 -0
  308. package/examples/oidc-login/common/keys.aug.md +207 -0
  309. package/examples/oidc-login/common/settings.aug +4 -0
  310. package/examples/oidc-login/common/settings.aug.md +47 -0
  311. package/examples/oidc-login/common/views.aug +16 -0
  312. package/examples/oidc-login/common/views.aug.md +34 -0
  313. package/examples/oidc-login/main.aug +39 -0
  314. package/examples/oidc-login/main.aug.md +166 -0
  315. package/examples/oidc-login/main.yaml +12 -0
  316. package/examples/oidc-login/provider/authorization.aug +59 -0
  317. package/examples/oidc-login/provider/authorization.aug.md +264 -0
  318. package/examples/oidc-login/provider/contracts.aug +15 -0
  319. package/examples/oidc-login/provider/contracts.aug.md +193 -0
  320. package/examples/oidc-login/provider/credentials.aug +10 -0
  321. package/examples/oidc-login/provider/credentials.aug.md +64 -0
  322. package/examples/oidc-login/provider/discovery.aug +13 -0
  323. package/examples/oidc-login/provider/discovery.aug.md +133 -0
  324. package/examples/oidc-login/provider/export.aug +13 -0
  325. package/examples/oidc-login/provider/export.aug.md +41 -0
  326. package/examples/oidc-login/provider/token.aug +37 -0
  327. package/examples/oidc-login/provider/token.aug.md +223 -0
  328. package/examples/oidc-login/provider/userinfo.aug +26 -0
  329. package/examples/oidc-login/provider/userinfo.aug.md +104 -0
  330. package/examples/oidc-login/provider/views.aug +18 -0
  331. package/examples/oidc-login/provider/views.aug.md +63 -0
  332. package/examples/ownership/.aug-spec/manifest.json +8 -0
  333. package/examples/ownership/counter.aug +14 -0
  334. package/examples/ownership/counter.aug.md +85 -0
  335. package/examples/ownership/main.aug +4 -0
  336. package/examples/ownership/main.aug.md +38 -0
  337. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  338. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  339. package/examples/ownership-transfer/.aug-spec/manifest.json +10 -0
  340. package/examples/ownership-transfer/main.aug +9 -0
  341. package/examples/ownership-transfer/main.aug.md +63 -0
  342. package/examples/ownership-transfer/resource.aug +16 -0
  343. package/examples/ownership-transfer/resource.aug.md +89 -0
  344. package/examples/packages/README.md +15 -0
  345. package/examples/packages/app/.aug-spec/manifest.json +9 -0
  346. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +9 -0
  347. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +63 -0
  348. package/examples/packages/app/main.aug +2 -0
  349. package/examples/packages/app/main.aug.md +33 -0
  350. package/examples/packages/app/main.yaml +2 -0
  351. package/examples/packages/math/.aug-spec/manifest.json +8 -0
  352. package/examples/packages/math/README.md +3 -0
  353. package/examples/packages/math/aug-package.json +8 -0
  354. package/examples/packages/math/package.json +9 -0
  355. package/examples/packages/math/src/arithmetic.aug +8 -0
  356. package/examples/packages/math/src/arithmetic.aug.md +63 -0
  357. package/examples/packages/math/src/export.aug +1 -0
  358. package/examples/packages/math/src/export.aug.md +17 -0
  359. package/examples/visibility/.aug-spec/manifest.json +8 -0
  360. package/examples/visibility/counter.aug +14 -0
  361. package/examples/visibility/counter.aug.md +87 -0
  362. package/examples/visibility/main.aug +7 -0
  363. package/examples/visibility/main.aug.md +39 -0
  364. package/package.json +50 -0
  365. package/runtime/aug_crypto.c +121 -0
  366. package/runtime/aug_html.c +93 -0
  367. package/runtime/aug_http.c +829 -0
  368. package/runtime/aug_json.c +165 -0
  369. package/runtime/aug_runtime.c +792 -0
  370. package/runtime/aug_runtime.h +245 -0
  371. package/runtime/aug_tasks.c +172 -0
  372. package/runtime/aug_time.c +5 -0
  373. package/runtime/aug_values.c +80 -0
  374. package/scripts/bootstrap-native.mjs +121 -0
  375. package/scripts/native-dependencies.lock.json +65 -0
  376. package/scripts/native-home.mjs +11 -0
  377. package/src/actions.js +109 -0
  378. package/src/ast.js +19 -0
  379. package/src/builtins.js +93 -0
  380. package/src/checker.js +2896 -0
  381. package/src/cli.js +344 -0
  382. package/src/codegen.js +1159 -0
  383. package/src/config.js +149 -0
  384. package/src/continuation.js +110 -0
  385. package/src/di.js +24 -0
  386. package/src/documentation.js +27 -0
  387. package/src/editor.js +782 -0
  388. package/src/effects.js +29 -0
  389. package/src/fixes.js +222 -0
  390. package/src/formatter.js +296 -0
  391. package/src/freshness.js +154 -0
  392. package/src/help.js +212 -0
  393. package/src/html.js +27 -0
  394. package/src/http-policies.js +90 -0
  395. package/src/inference.js +16 -0
  396. package/src/interceptors.js +70 -0
  397. package/src/javadoc.js +67 -0
  398. package/src/lexer.js +199 -0
  399. package/src/libraries.js +31 -0
  400. package/src/lsp.js +180 -0
  401. package/src/native.js +144 -0
  402. package/src/navigation.js +162 -0
  403. package/src/openapi.js +220 -0
  404. package/src/ownership.js +232 -0
  405. package/src/package-manager.js +299 -0
  406. package/src/parser.js +1155 -0
  407. package/src/policies.js +130 -0
  408. package/src/project-init.js +19 -0
  409. package/src/project.js +292 -0
  410. package/src/schemas.js +62 -0
  411. package/src/semantic.js +255 -0
  412. package/src/spec.js +738 -0
  413. package/src/testing.js +186 -0
  414. package/src/types.js +10 -0
@@ -0,0 +1,162 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `app.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - [`describe`](app.aug.md#symbol-describe) is a function returning `string`.
10
+ - [`IGreeter`](app.aug.md#symbol-IGreeter) is an interface.
11
+ - [`Greeter`](app.aug.md#symbol-Greeter) is a class implementing `IGreeter`.
12
+
13
+ <a id="symbol-describe"></a>
14
+
15
+ ## `describe`
16
+
17
+ [source](app.aug#L14)
18
+
19
+ **Inputs**
20
+
21
+ - `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it.
22
+ - `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
23
+ - `x` (`int`) — required labeled input.
24
+ - `label` (`string`) — required labeled input.
25
+
26
+ Returns: `string`.
27
+
28
+ Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
29
+
30
+ Can fail with `ValidationError`. Callers must catch or propagate these errors.
31
+
32
+ **Interceptors, in execution order**
33
+
34
+ 1. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
35
+ 2. Call [`Positive.around`](interceptors.aug.md#symbol-Positive.around). It can call the next layer or finish with its own result or failure. Map `x` to `y`. Unselected inputs pass through.
36
+ 3. Call [`AddOne.around`](interceptors.aug.md#symbol-AddOne.around). It can call the next layer or finish with its own result or failure. Map `x` to `y`. Unselected inputs pass through.
37
+
38
+ The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
39
+
40
+ **What it does**
41
+
42
+ - Call [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write) on `console` with `value` = `x`.
43
+ - Return `label`.
44
+
45
+ **Author documentation**
46
+
47
+ Prints a number and returns its label.
48
+
49
+ **Parameters**
50
+ - `x`: The numeric input, validated and incremented by the chain.
51
+ - `label`: Text forwarded through each layer unchanged.
52
+
53
+ <a id="symbol-IGreeter"></a>
54
+
55
+ ## `IGreeter`
56
+
57
+ [source](app.aug#L18)
58
+
59
+ Interface.
60
+
61
+ <a id="symbol-IGreeter.greet"></a>
62
+
63
+ ### `IGreeter.greet`
64
+
65
+ [source](app.aug#L19)
66
+
67
+ **Inputs**
68
+
69
+ - `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it.
70
+ - `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
71
+
72
+ Returns: `string`.
73
+
74
+ Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
75
+
76
+ Interface contract. A selected implementation supplies the behavior.
77
+
78
+ <a id="symbol-Greeter"></a>
79
+
80
+ ## `Greeter`
81
+
82
+ [source](app.aug#L22)
83
+
84
+ Behavioral class.
85
+
86
+ Satisfies [`IGreeter`](app.aug.md#symbol-IGreeter).
87
+
88
+ **Author documentation**
89
+
90
+ Construction stores its inputs; startup is visible in the greet call.
91
+
92
+ **Inputs**
93
+
94
+ - `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it — stored as `_logger` (private) and read-only after initialization.
95
+ - `name` (`string`) — required labeled input — stored as `name` and read-only after initialization.
96
+
97
+ <a id="symbol-Greeter.greet"></a>
98
+
99
+ ### `Greeter.greet`
100
+
101
+ [source](app.aug#L25)
102
+
103
+ **Inputs**
104
+
105
+ - `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it.
106
+ - `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
107
+
108
+ Returns: `string`.
109
+
110
+ Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
111
+
112
+ **Interceptors, in execution order**
113
+
114
+ 1. Call [`Audit.around`](interceptors.aug.md#symbol-Audit.around). It can call the next layer or finish with its own result or failure. Unselected inputs pass through.
115
+
116
+ The first layer wraps the remaining layers. HTTP policies run before wire decoding; custom interceptors run after decoding. Follow linked behavior to see its conditions, input changes, and calls to the next layer.
117
+
118
+ **What it does**
119
+
120
+ - Return text formed by joining `"Hello, "`, `name`, `"!"` in order.
121
+
122
+ **Author documentation**
123
+
124
+ Method annotations wrap each method invocation separately.
125
+
126
+ ## Dependencies used by this file
127
+
128
+ Only referenced types and operations appear here. Each name links to its complete specification.
129
+
130
+ ### [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)
131
+
132
+ Capability interface from `august.io`.
133
+
134
+ - [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
135
+
136
+ ### [`AddOne`](interceptors.aug.md#symbol-AddOne)
137
+
138
+ Interceptor from `interceptors`.
139
+
140
+ - [`AddOne.around`](interceptors.aug.md#symbol-AddOne.around) (`y`: `int`) → `T`.
141
+
142
+ ### [`Audit`](interceptors.aug.md#symbol-Audit)
143
+
144
+ Interceptor from `interceptors`.
145
+
146
+ - [`Audit.around`](interceptors.aug.md#symbol-Audit.around) (no caller inputs) → `T`; inject `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
147
+
148
+ ### [`Positive`](interceptors.aug.md#symbol-Positive)
149
+
150
+ Interceptor from `interceptors`.
151
+
152
+ - [`Positive.around`](interceptors.aug.md#symbol-Positive.around) (`y`: `int`) → `T`; can fail with `ValidationError`.
153
+
154
+ ### [`Logger`](logging.aug.md#symbol-Logger)
155
+
156
+ Interface from `logging`.
157
+
158
+ Used as a type or provider.
159
+
160
+ ## Shared language rules
161
+
162
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,40 @@
1
+ import Console from august.io
2
+ import Logger from logging
3
+ /** Raised when a numeric input fails validation. */
4
+ ValidationError(string message) implements Error {
5
+ pass
6
+ }
7
+ /**
8
+ * Logs before and after a successful call.
9
+ * Generic T is inferred from the annotated function or constructor.
10
+ * @param logger Shared application logger, injected for each fresh instance.
11
+ */
12
+ interceptor Audit<T>(resolve Logger logger) {
13
+ /** Wrap a call without changing its result. */
14
+ around(resolve Console console) returns T uses Console.write {
15
+ logger.log(message="before")
16
+ T result = next()
17
+ logger.log(message="after")
18
+ return result
19
+ }
20
+ }
21
+ /** Rejects negative numbers before the target executes. */
22
+ interceptor Positive<T>() {
23
+ /**
24
+ * @param y The target argument selected by a mapping such as y=x.
25
+ * @throws ValidationError When the selected value is negative.
26
+ */
27
+ around(int y) returns T unless ValidationError {
28
+ if y < 0 {
29
+ throw ValidationError(message="value must be nonnegative")
30
+ }
31
+ return next()
32
+ }
33
+ }
34
+ /** Adds one to the selected input before forwarding the call. */
35
+ interceptor AddOne<T>() {
36
+ /** @param y The input to increment. */
37
+ around(int y) returns T {
38
+ return next(y=y + 1)
39
+ }
40
+ }
@@ -0,0 +1,180 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `interceptors.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - [`ValidationError`](interceptors.aug.md#symbol-ValidationError) is a class implementing `Error`.
10
+ - [`Audit`](interceptors.aug.md#symbol-Audit) is an interceptor.
11
+ - [`Positive`](interceptors.aug.md#symbol-Positive) is an interceptor.
12
+ - [`AddOne`](interceptors.aug.md#symbol-AddOne) is an interceptor.
13
+
14
+ <a id="symbol-ValidationError"></a>
15
+
16
+ ## `ValidationError`
17
+
18
+ [source](interceptors.aug#L4)
19
+
20
+ Behavioral class.
21
+
22
+ Satisfies `Error`.
23
+
24
+ **Author documentation**
25
+
26
+ Raised when a numeric input fails validation.
27
+
28
+ **Inputs**
29
+
30
+ - `message` (`string`) — required labeled input — stored as `message` and read-only after initialization.
31
+
32
+ <a id="symbol-Audit"></a>
33
+
34
+ ## `Audit`
35
+
36
+ [source](interceptors.aug#L12)
37
+
38
+ Function or constructor middleware.
39
+
40
+ Type parameters: `T`.
41
+
42
+ **Author documentation**
43
+
44
+ Logs before and after a successful call.
45
+ Generic T is inferred from the annotated function or constructor.
46
+
47
+ **Parameters**
48
+ - `logger`: Shared application logger, injected for each fresh instance.
49
+
50
+ **Inputs**
51
+
52
+ - `logger` ([`Logger`](logging.aug.md#symbol-Logger)) — injected; callers omit it — stored as `logger` and read-only after initialization.
53
+
54
+ Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
55
+
56
+ <a id="symbol-Audit.around"></a>
57
+
58
+ ### `Audit.around`
59
+
60
+ [source](interceptors.aug#L14)
61
+
62
+ **Inputs**
63
+
64
+ - `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
65
+
66
+ Returns: `T`.
67
+
68
+ Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
69
+
70
+ **What it does**
71
+
72
+ - Call [`Logger.log`](logging.aug.md#symbol-Logger.log) on `logger` with `message` = `"before"`; inject `console` from `console`.
73
+ - Set `result` of type `T` to call `next`.
74
+ - Call [`Logger.log`](logging.aug.md#symbol-Logger.log) on `logger` with `message` = `"after"`; inject `console` from `console`.
75
+ - Return `result`.
76
+
77
+ **Author documentation**
78
+
79
+ Wrap a call without changing its result.
80
+
81
+ <a id="symbol-Positive"></a>
82
+
83
+ ## `Positive`
84
+
85
+ [source](interceptors.aug#L22)
86
+
87
+ Function or constructor middleware.
88
+
89
+ Type parameters: `T`.
90
+
91
+ **Author documentation**
92
+
93
+ Rejects negative numbers before the target executes.
94
+
95
+ Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
96
+
97
+ <a id="symbol-Positive.around"></a>
98
+
99
+ ### `Positive.around`
100
+
101
+ [source](interceptors.aug#L27)
102
+
103
+ **Inputs**
104
+
105
+ - `y` (`int`) — required labeled input.
106
+
107
+ Returns: `T`.
108
+
109
+ Can fail with `ValidationError`. Callers must catch or propagate these errors.
110
+
111
+ **What it does**
112
+
113
+ - If `y` is less than `0`:
114
+ - Fail with call [`ValidationError`](interceptors.aug.md#symbol-ValidationError) with `message` = `"value must be nonnegative"`. Transfer control to a matching catch or propagate the failure.
115
+ - Return call `next`.
116
+
117
+ **Author documentation**
118
+
119
+ **Parameters**
120
+ - `y`: The target argument selected by a mapping such as y=x.
121
+
122
+ **Throws**
123
+ - `ValidationError`: When the selected value is negative.
124
+
125
+ <a id="symbol-AddOne"></a>
126
+
127
+ ## `AddOne`
128
+
129
+ [source](interceptors.aug#L35)
130
+
131
+ Function or constructor middleware.
132
+
133
+ Type parameters: `T`.
134
+
135
+ **Author documentation**
136
+
137
+ Adds one to the selected input before forwarding the call.
138
+
139
+ Create a fresh interceptor for each invocation. Its around operation can delegate once, change selected inputs, or short-circuit with a compatible result or failure.
140
+
141
+ <a id="symbol-AddOne.around"></a>
142
+
143
+ ### `AddOne.around`
144
+
145
+ [source](interceptors.aug#L37)
146
+
147
+ **Inputs**
148
+
149
+ - `y` (`int`) — required labeled input.
150
+
151
+ Returns: `T`.
152
+
153
+ **What it does**
154
+
155
+ - Return call `next` with `y` = (`y` plus `1`).
156
+
157
+ **Author documentation**
158
+
159
+ **Parameters**
160
+ - `y`: The input to increment.
161
+
162
+ ## Dependencies used by this file
163
+
164
+ Only referenced types and operations appear here. Each name links to its complete specification.
165
+
166
+ ### [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)
167
+
168
+ Capability interface from `august.io`.
169
+
170
+ - [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
171
+
172
+ ### [`Logger`](logging.aug.md#symbol-Logger)
173
+
174
+ Interface from `logging`.
175
+
176
+ - [`Logger.log`](logging.aug.md#symbol-Logger.log) (`message`: `string`) → `void`; inject `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
177
+
178
+ ## Shared language rules
179
+
180
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,12 @@
1
+ import Console from august.io
2
+ /** Writes a message to the application log. */
3
+ interface Logger {
4
+ /** @param message Text to display. */
5
+ log(resolve Console console, string message) uses Console.write
6
+ }
7
+ /** Console logger shared by interceptor instances and the application. */
8
+ ConsoleLogger() implements Logger {
9
+ log(resolve Console console, string message) uses Console.write {
10
+ console.write(value=message)
11
+ }
12
+ }
@@ -0,0 +1,96 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `logging.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - [`Logger`](logging.aug.md#symbol-Logger) is an interface.
10
+ - [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger) is a class implementing `Logger`.
11
+
12
+ <a id="symbol-Logger"></a>
13
+
14
+ ## `Logger`
15
+
16
+ [source](logging.aug#L3)
17
+
18
+ Interface.
19
+
20
+ **Author documentation**
21
+
22
+ Writes a message to the application log.
23
+
24
+ <a id="symbol-Logger.log"></a>
25
+
26
+ ### `Logger.log`
27
+
28
+ [source](logging.aug#L5)
29
+
30
+ **Inputs**
31
+
32
+ - `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
33
+ - `message` (`string`) — required labeled input.
34
+
35
+ Returns: no value.
36
+
37
+ Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
38
+
39
+ Interface contract. A selected implementation supplies the behavior.
40
+
41
+ **Author documentation**
42
+
43
+ **Parameters**
44
+ - `message`: Text to display.
45
+
46
+ <a id="symbol-ConsoleLogger"></a>
47
+
48
+ ## `ConsoleLogger`
49
+
50
+ [source](logging.aug#L8)
51
+
52
+ Behavioral class.
53
+
54
+ Satisfies [`Logger`](logging.aug.md#symbol-Logger).
55
+
56
+ **Author documentation**
57
+
58
+ Console logger shared by interceptor instances and the application.
59
+
60
+ <a id="symbol-ConsoleLogger.log"></a>
61
+
62
+ ### `ConsoleLogger.log`
63
+
64
+ [source](logging.aug#L9)
65
+
66
+ **Inputs**
67
+
68
+ - `console` ([`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)) — injected; callers omit it.
69
+ - `message` (`string`) — required labeled input.
70
+
71
+ Returns: no value.
72
+
73
+ Capabilities: [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
74
+
75
+ **What it does**
76
+
77
+ - Call [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write) on `console` with `value` = `message`.
78
+
79
+ **Author documentation**
80
+
81
+ **Parameters**
82
+ - `message`: Text to display.
83
+
84
+ ## Dependencies used by this file
85
+
86
+ Only referenced types and operations appear here. Each name links to its complete specification.
87
+
88
+ ### [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console)
89
+
90
+ Capability interface from `august.io`.
91
+
92
+ - [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write)<`T`> (`value`: `T`) → `void`.
93
+
94
+ ## Shared language rules
95
+
96
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,22 @@
1
+ import Console and SystemConsole from august.io
2
+ implement Console with SystemConsole
3
+ import Logger from logging
4
+ import ConsoleLogger from logging
5
+ import Greeter from app
6
+ import describe from app
7
+ import ValidationError from interceptors
8
+ implement Logger with ConsoleLogger
9
+ try {
10
+ print(value=describe(label="value", x=6))
11
+ }
12
+ catch ValidationError error {
13
+ print(value="rejected")
14
+ }
15
+ greeter = Greeter(name="AugScript")
16
+ print(value=greeter.greet())
17
+ try {
18
+ describe(x=-1, label="invalid")
19
+ }
20
+ catch ValidationError error {
21
+ print(value="rejected")
22
+ }
@@ -0,0 +1,76 @@
1
+ <!-- Generated by aug spec. Edit the August source, then regenerate. -->
2
+
3
+ # `main.aug` specification
4
+
5
+ August 0.19.0. This document is compiled from checked code with deterministic wording guided by Simplified Technical English.
6
+
7
+ ## In this file
8
+
9
+ - Register 2 dependency providers before startup.
10
+ - Run startup operations with checked error recovery.
11
+ - Run 2 other startup steps in source order.
12
+
13
+ ## Dependency providers
14
+
15
+ Register these providers before startup. Their declaration order does not set initialization order; shared instances initialize in dependency order.
16
+
17
+ - Provide [`SystemConsole`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-SystemConsole) when `Console` is requested. Reuse one instance.
18
+ - Provide [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger) when `Logger` is requested. Reuse one instance.
19
+
20
+ ## Startup, in source order
21
+
22
+ - Try these operations:
23
+ - Call `print` with `value` = call [`describe`](app.aug.md#symbol-describe) with `label` = `"value"`; `x` = `6`; inject `logger` from `Logger`, `console` from `Console`.
24
+ - If they fail with [`ValidationError`](interceptors.aug.md#symbol-ValidationError), name the failure `error` and recover:
25
+ - Call `print` with `value` = `"rejected"`.
26
+ - Set `greeter` to call [`Greeter`](app.aug.md#symbol-Greeter) with `name` = `"AugScript"`; inject `_logger` from `Logger`.
27
+ - Call `print` with `value` = call [`Greeter.greet`](app.aug.md#symbol-Greeter.greet) on `greeter`; inject `logger` from `Logger`, `console` from `Console`.
28
+ - Try these operations:
29
+ - Call [`describe`](app.aug.md#symbol-describe) with `x` = `-1`; `label` = `"invalid"`; inject `logger` from `Logger`, `console` from `Console`.
30
+ - If they fail with [`ValidationError`](interceptors.aug.md#symbol-ValidationError), name the failure `error` and recover:
31
+ - Call `print` with `value` = `"rejected"`.
32
+
33
+ ## Dependencies used by this file
34
+
35
+ Only referenced types and operations appear here. Each name links to its complete specification.
36
+
37
+ ### [`SystemConsole`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-SystemConsole)
38
+
39
+ Class from `august.io`.
40
+
41
+ Used as a type or provider.
42
+
43
+ ### [`Greeter`](app.aug.md#symbol-Greeter)
44
+
45
+ Class from `app`.
46
+
47
+ - Construct with `name`: `string` → [`Greeter`](app.aug.md#symbol-Greeter).
48
+ - [`Greeter.greet`](app.aug.md#symbol-Greeter.greet) (no caller inputs) → `string`; inject `logger`: [`Logger`](logging.aug.md#symbol-Logger), `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write).
49
+
50
+ ### [`describe`](app.aug.md#symbol-describe)
51
+
52
+ Function from `app`.
53
+
54
+ - [`describe`](app.aug.md#symbol-describe) (`x`: `int`, `label`: `string`) → `string`; inject `logger`: [`Logger`](logging.aug.md#symbol-Logger), `console`: [`Console`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console); uses [`Console.write`](.aug-spec/august/0.19.0/io/contracts.aug.md#symbol-Console.write); can fail with `ValidationError`.
55
+
56
+ ### [`ValidationError`](interceptors.aug.md#symbol-ValidationError)
57
+
58
+ Class from `interceptors`.
59
+
60
+ Used as a type or provider.
61
+
62
+ ### [`ConsoleLogger`](logging.aug.md#symbol-ConsoleLogger)
63
+
64
+ Class from `logging`.
65
+
66
+ Used as a type or provider.
67
+
68
+ ## Built-in operations used by this file
69
+
70
+ - `print` (`value`: `any`) → `void`: Composition and test output. Other callables receive Console and declare uses console.write.
71
+
72
+ [Full built-in reference](https://greenpandastudios.github.io/augscript/language-constructs).
73
+
74
+ ## Shared language rules
75
+
76
+ See the [language reference](https://greenpandastudios.github.io/augscript/reference) for numeric, equality, ownership, and task rules.
@@ -0,0 +1,36 @@
1
+ // Generated by aug spec. This is a copy of the installed dependency source.
2
+ /** Permission to write to a console, provided by an explicitly selected adapter. */
3
+ capability Console:
4
+ /** Write one line of text. @param value Text to display. */
5
+ write<T>(T value) uses Console.write
6
+
7
+ /** The native standard-output adapter. Construction performs no output. */
8
+ SystemConsole() implements Console:
9
+ write<T>(T value):
10
+ print(value=value)
11
+
12
+ /** Read UTF-8 text through an explicitly selected filesystem adapter. */
13
+ capability FileReader:
14
+ /** Read text. @param path File path. @throws FileError The file could not be read. */
15
+ read(string path) returns string uses FileReader.read unless FileError
16
+
17
+ /** Write UTF-8 text through an explicitly selected filesystem adapter. */
18
+ capability FileWriter:
19
+ /** Write text. @param path File path. @param content Text. @throws FileError Writing failed. */
20
+ write(string path, string content) uses FileWriter.write unless FileError
21
+
22
+ /** Native files. Operations are explicit; construction opens no files. */
23
+ LocalFiles() implements FileReader, FileWriter:
24
+ read(string path) returns string unless FileError:
25
+ return read_file(path=path)
26
+ write(string path, string content) unless FileError:
27
+ write_file(path=path, content=content)
28
+
29
+ /** Read command-line input through an explicit dependency. */
30
+ capability Arguments:
31
+ read() returns List<string> uses Arguments.read
32
+
33
+ /** Native command-line arguments. */
34
+ ProcessArguments() implements Arguments:
35
+ read() returns List<string>:
36
+ return arguments()