gitextract_8e8ds6gd/ ├── .gitignore ├── CLAUDE.md ├── LICENSE ├── Makefile ├── README.md ├── content/ │ ├── appendix-13-pre-fetch.md │ ├── brief-history-of-software.md │ ├── factor-01-natural-language-to-tool-calls.md │ ├── factor-02-own-your-prompts.md │ ├── factor-03-own-your-context-window.md │ ├── factor-04-tools-are-structured-outputs.md │ ├── factor-05-unify-execution-state.md │ ├── factor-06-launch-pause-resume.md │ ├── factor-07-contact-humans-with-tools.md │ ├── factor-08-own-your-control-flow.md │ ├── factor-09-compact-errors.md │ ├── factor-1-natural-language-to-tool-calls.md │ ├── factor-10-small-focused-agents.md │ ├── factor-11-trigger-from-anywhere.md │ ├── factor-12-stateless-reducer.md │ ├── factor-2-own-your-prompts.md │ ├── factor-3-own-your-context-window.md │ ├── factor-4-tools-are-structured-outputs.md │ ├── factor-5-unify-execution-state.md │ ├── factor-6-launch-pause-resume.md │ ├── factor-7-contact-humans-with-tools.md │ ├── factor-8-own-your-control-flow.md │ └── factor-9-compact-errors.md ├── drafts/ │ ├── a2h-spec.md │ └── ah2-openapi.json ├── hack/ │ └── contributors_markdown/ │ ├── .python-version │ ├── README.md │ ├── contributors_markdown.py │ └── pyproject.toml ├── packages/ │ ├── create-12-factor-agent/ │ │ └── template/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── baml_src/ │ │ │ ├── agent.baml │ │ │ ├── clients.baml │ │ │ ├── generators.baml │ │ │ └── tool_calculator.baml │ │ ├── package.json │ │ ├── src/ │ │ │ ├── a2h.ts │ │ │ ├── agent.ts │ │ │ ├── cli.ts │ │ │ ├── index.ts │ │ │ ├── server.ts │ │ │ └── state.ts │ │ └── tsconfig.json │ └── walkthroughgen/ │ ├── .gitignore │ ├── examples/ │ │ ├── typescript/ │ │ │ ├── .gitignore │ │ │ ├── walkthrough/ │ │ │ │ ├── 00-package-lock.json │ │ │ │ ├── 00-package.json │ │ │ │ ├── 00-tsconfig.json │ │ │ │ ├── 01-index.ts │ │ │ │ ├── 02-cli.ts │ │ │ │ └── 02-index.ts │ │ │ └── walkthrough.yaml │ │ └── walkthroughgen/ │ │ └── walkthrough.yaml │ ├── jest.config.js │ ├── package.json │ ├── prompt.md │ ├── readme.md │ ├── src/ │ │ ├── cli.ts │ │ └── index.ts │ ├── test/ │ │ ├── e2e/ │ │ │ └── test-e2e.ts │ │ └── utils/ │ │ ├── console-mock.ts │ │ └── temp-dir.ts │ └── tsconfig.json └── workshops/ ├── .gitignore ├── .python-version ├── 2025-05/ │ ├── .gitignore │ ├── Makefile │ ├── final/ │ │ ├── .gitignore │ │ ├── baml_src/ │ │ │ ├── agent.baml │ │ │ ├── clients.baml │ │ │ ├── generators.baml │ │ │ └── tool_calculator.baml │ │ ├── package.json │ │ ├── src/ │ │ │ ├── agent.ts │ │ │ ├── cli.ts │ │ │ ├── index.ts │ │ │ ├── server.ts │ │ │ └── state.ts │ │ └── tsconfig.json │ ├── sections/ │ │ ├── 00-hello-world/ │ │ │ ├── README.md │ │ │ └── walkthrough/ │ │ │ ├── 00-.gitignore │ │ │ ├── 00-index.ts │ │ │ ├── 00-package.json │ │ │ └── 00-tsconfig.json │ │ ├── 01-cli-and-agent/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 01-agent.baml │ │ │ ├── 01-agent.ts │ │ │ ├── 01-cli.ts │ │ │ └── 01-index.ts │ │ ├── 02-calculator-tools/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ └── generators.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 02-agent.baml │ │ │ └── 02-tool_calculator.baml │ │ ├── 03-tool-loop/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 03-agent.ts │ │ │ └── 03b-agent.ts │ │ ├── 04-baml-tests/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 04-agent.baml │ │ │ ├── 04b-agent.baml │ │ │ └── 04c-agent.baml │ │ ├── 05-human-tools/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 05-agent.baml │ │ │ ├── 05-agent.ts │ │ │ ├── 05-cli.ts │ │ │ ├── 05b-agent.baml │ │ │ └── 05c-agent.baml │ │ ├── 06-customize-prompt/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ └── 06-agent.baml │ │ ├── 07-context-window/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 07-agent.ts │ │ │ ├── 07b-agent.ts │ │ │ └── 07c-agent.baml │ │ ├── 08-api-endpoints/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ └── 08-server.ts │ │ ├── 09-state-management/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ ├── index.ts │ │ │ │ └── server.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 09-server.ts │ │ │ └── 09-state.ts │ │ ├── 10-human-approval/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ ├── index.ts │ │ │ │ ├── server.ts │ │ │ │ └── state.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 10-agent.ts │ │ │ └── 10-server.ts │ │ ├── 11-humanlayer-approval/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ ├── index.ts │ │ │ │ ├── server.ts │ │ │ │ └── state.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 11-cli.ts │ │ │ ├── 11b-cli.ts │ │ │ └── 11c-cli.ts │ │ ├── 12-humanlayer-webhook/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ ├── generators.baml │ │ │ │ └── tool_calculator.baml │ │ │ ├── package.json │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ ├── index.ts │ │ │ │ ├── server.ts │ │ │ │ └── state.ts │ │ │ ├── tsconfig.json │ │ │ └── walkthrough/ │ │ │ ├── 12-1-server-init.ts │ │ │ └── 12a-server.ts │ │ └── final/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── baml_src/ │ │ │ ├── agent.baml │ │ │ ├── clients.baml │ │ │ ├── generators.baml │ │ │ └── tool_calculator.baml │ │ ├── package.json │ │ ├── src/ │ │ │ ├── agent.ts │ │ │ ├── cli.ts │ │ │ ├── index.ts │ │ │ ├── server.ts │ │ │ └── state.ts │ │ └── tsconfig.json │ ├── walkthrough/ │ │ ├── 00-.gitignore │ │ ├── 00-index.ts │ │ ├── 00-package.json │ │ ├── 00-tsconfig.json │ │ ├── 01-agent.baml │ │ ├── 01-agent.ts │ │ ├── 01-cli.ts │ │ ├── 01-index.ts │ │ ├── 02-agent.baml │ │ ├── 02-tool_calculator.baml │ │ ├── 03-agent.ts │ │ ├── 03b-agent.ts │ │ ├── 04-agent.baml │ │ ├── 04b-agent.baml │ │ ├── 04c-agent.baml │ │ ├── 05-agent.baml │ │ ├── 05-agent.ts │ │ ├── 05-cli.ts │ │ ├── 05b-agent.baml │ │ ├── 05c-agent.baml │ │ ├── 06-agent.baml │ │ ├── 07-agent.ts │ │ ├── 07b-agent.ts │ │ ├── 07c-agent.baml │ │ ├── 08-server.ts │ │ ├── 09-server.ts │ │ ├── 09-state.ts │ │ ├── 10-agent.ts │ │ ├── 10-server.ts │ │ ├── 11-cli.ts │ │ ├── 11b-cli.ts │ │ ├── 11c-cli.ts │ │ ├── 12-1-server-init.ts │ │ ├── 12-server.ts │ │ ├── 12a-server.ts │ │ ├── 12aa-server.ts │ │ └── 12b-server.ts │ ├── walkthrough.md │ └── walkthrough.yaml ├── 2025-05-17/ │ ├── .gitignore │ ├── sections/ │ │ ├── 00-hello-world/ │ │ │ ├── README.md │ │ │ └── walkthrough/ │ │ │ ├── 00-.gitignore │ │ │ ├── 00-index.ts │ │ │ ├── 00-package.json │ │ │ └── 00-tsconfig.json │ │ ├── 01-cli-and-agent/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── src/ │ │ │ │ └── index.ts │ │ │ └── walkthrough/ │ │ │ ├── 01-agent.baml │ │ │ ├── 01-agent.ts │ │ │ ├── 01-cli.ts │ │ │ └── 01-index.ts │ │ ├── 02-calculator-tools/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── baml_src/ │ │ │ │ ├── agent.baml │ │ │ │ ├── clients.baml │ │ │ │ └── generators.baml │ │ │ ├── src/ │ │ │ │ ├── agent.ts │ │ │ │ ├── cli.ts │ │ │ │ └── index.ts │ │ │ └── walkthrough/ │ │ │ ├── 02-agent.baml │ │ │ └── 02-tool_calculator.baml │ │ └── 03-tool-loop/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── baml_src/ │ │ │ ├── agent.baml │ │ │ ├── clients.baml │ │ │ ├── generators.baml │ │ │ └── tool_calculator.baml │ │ ├── src/ │ │ │ ├── agent.ts │ │ │ ├── cli.ts │ │ │ └── index.ts │ │ └── walkthrough/ │ │ ├── 03-agent.ts │ │ └── 03b-agent.ts │ ├── walkthrough/ │ │ ├── 00-.gitignore │ │ ├── 00-index.ts │ │ ├── 00-package.json │ │ ├── 00-tsconfig.json │ │ ├── 01-agent.baml │ │ ├── 01-agent.ts │ │ ├── 01-cli.ts │ │ ├── 01-index.ts │ │ ├── 02-agent.baml │ │ ├── 02-tool_calculator.baml │ │ ├── 03-agent.ts │ │ ├── 03b-agent.ts │ │ ├── 04-agent.baml │ │ ├── 04b-agent.baml │ │ ├── 04c-agent.baml │ │ ├── 05-agent.baml │ │ ├── 05-agent.ts │ │ ├── 05-cli.ts │ │ ├── 05b-agent.baml │ │ ├── 05c-agent.baml │ │ ├── 06-agent.baml │ │ ├── 07-agent.ts │ │ ├── 07b-agent.ts │ │ ├── 07c-agent.baml │ │ ├── 08-server.ts │ │ ├── 09-server.ts │ │ ├── 09-state.ts │ │ ├── 10-agent.ts │ │ ├── 10-server.ts │ │ ├── 11-cli.ts │ │ ├── 11b-cli.ts │ │ ├── 11c-cli.ts │ │ ├── 12-1-server-init.ts │ │ ├── 12-server.ts │ │ ├── 12a-server.ts │ │ ├── 12aa-server.ts │ │ └── 12b-server.ts │ ├── walkthrough.md │ └── walkthrough.yaml └── 2025-07-16/ ├── .gitignore ├── CLAUDE.md ├── hack/ │ ├── analyze_log_capture.py │ ├── inspect_notebook.py │ ├── minimal_test.ipynb │ ├── test_log_capture.sh │ └── testing.md ├── pyproject.toml ├── test_notebook_colab_sim.sh ├── walkthrough/ │ ├── 00-.gitignore │ ├── 00-main.py │ ├── 00-package.json │ ├── 00-tsconfig.json │ ├── 01-agent.baml │ ├── 01-agent.py │ ├── 01-main.py │ ├── 02-agent.baml │ ├── 02-main.py │ ├── 02-tool_calculator.baml │ ├── 03-agent.py │ ├── 03-main.py │ ├── 03b-agent.py │ ├── 03b-agent.ts │ ├── 04-agent.baml │ ├── 04b-agent.baml │ ├── 04c-agent.baml │ ├── 05-agent.baml │ ├── 05-agent.py │ ├── 05-main.py │ ├── 05b-agent.baml │ ├── 05c-agent.baml │ ├── 06-agent.baml │ ├── 07-agent.py │ ├── 07-main.py │ ├── 07b-agent.ts │ ├── 07c-agent.baml │ ├── 08-server.ts │ ├── 09-server.ts │ ├── 09-state.ts │ ├── 10-agent.ts │ ├── 10-server.ts │ ├── 11-cli.ts │ ├── 11b-cli.ts │ ├── 11c-cli.ts │ ├── 12-1-server-init.ts │ ├── 12-server.ts │ ├── 12a-server.ts │ ├── 12aa-server.ts │ └── 12b-server.ts ├── walkthrough.yaml ├── walkthrough_python_enhanced.yaml ├── walkthroughgen_py.py └── workshop_final.ipynb