@knightcodeai/cli 0.20.0 → 0.21.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 (70) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/bundle/chunks/anthropic-messages-EY2CGNFR.js +6 -0
  3. package/dist/bundle/chunks/azure-openai-responses-KGI5F27P.js +2 -0
  4. package/dist/bundle/chunks/bedrock-converse-stream.js +8 -5
  5. package/dist/bundle/chunks/chunk-424HQSAU.js +10 -0
  6. package/dist/bundle/chunks/{chunk-DFRYMT3C.js → chunk-5O4LFJS7.js} +3 -3
  7. package/dist/bundle/chunks/chunk-BLHRVYHG.js +9 -0
  8. package/dist/bundle/chunks/{chunk-B7A4GIBK.js → chunk-EJS73Z3L.js} +1 -1
  9. package/dist/bundle/chunks/chunk-F22TYE3W.js +7 -0
  10. package/dist/bundle/chunks/{chunk-L6QGGIZG.js → chunk-FSAHEI7P.js} +4 -4
  11. package/dist/bundle/chunks/chunk-K6AEXKBA.js +30 -0
  12. package/dist/bundle/chunks/chunk-O2HKRIDR.js +16 -0
  13. package/dist/bundle/chunks/{chunk-JMJS643J.js → chunk-OLW2IS5G.js} +2 -2
  14. package/dist/bundle/chunks/chunk-QEVQ7EIS.js +2 -0
  15. package/dist/bundle/chunks/chunk-RRNUW65U.js +4 -0
  16. package/dist/bundle/chunks/{chunk-MZ5UVOTP.js → chunk-TOEFTX4C.js} +1 -1
  17. package/dist/bundle/chunks/{chunk-6KWPS3LA.js → chunk-TOGJI36I.js} +141 -129
  18. package/dist/bundle/chunks/{chunk-N5M3XNPN.js → chunk-VLP4ZJF6.js} +1 -1
  19. package/dist/bundle/chunks/chunk-XDEOVQPJ.js +108 -0
  20. package/dist/bundle/chunks/chunk-YDO6TXKD.js +2 -0
  21. package/dist/bundle/chunks/{cli-72YA573P.js → cli-CIRIEG66.js} +1 -1
  22. package/dist/bundle/chunks/{cloudflare-workers-ai-system-one-AWHNPEAT.js → cloudflare-workers-ai-system-one-H3D4RYQQ.js} +1 -1
  23. package/dist/bundle/chunks/{easter-egg-3d-XXPCDCZV.js → easter-egg-3d-YLN6ACWS.js} +1 -1
  24. package/dist/bundle/chunks/{execute-KWIUMPDE.js → execute-P6HIB6ET.js} +1 -1
  25. package/dist/bundle/chunks/{google-generative-ai-HPLZ2ABU.js → google-generative-ai-C3FLXY47.js} +1 -1
  26. package/dist/bundle/chunks/{google-vertex-E3UTTTIG.js → google-vertex-AXIPR47C.js} +1 -1
  27. package/dist/bundle/chunks/knightcode-messages-LTLKDRGW.js +8 -0
  28. package/dist/bundle/chunks/{llama-cpp-classify-FEWC5ZIH.js → llama-cpp-classify-J2EJVDIZ.js} +1 -1
  29. package/dist/bundle/chunks/mistral-conversations-N2UBIKKR.js +5 -0
  30. package/dist/bundle/chunks/{openai-codex-responses-BCLSSOJ6.js → openai-codex-responses-REOHLPAA.js} +1 -1
  31. package/dist/bundle/chunks/{openai-completions-GTNAEXX6.js → openai-completions-XONAGXPC.js} +1 -1
  32. package/dist/bundle/chunks/{openai-decisions-CSQTW3S4.js → openai-decisions-ACB7F6SS.js} +1 -1
  33. package/dist/bundle/chunks/{openai-responses-ILFXLMJW.js → openai-responses-OHJS7C73.js} +1 -1
  34. package/dist/bundle/chunks/{openrouter-images-J66HXAMB.js → openrouter-images-SMNBEOPV.js} +1 -1
  35. package/dist/bundle/chunks/{runtime-OW5JKWBE.js → runtime-WNZGA67H.js} +1 -1
  36. package/dist/bundle/chunks/{typesafe-system-one-QA5VXBEZ.js → typesafe-system-one-KB2F2YGV.js} +1 -1
  37. package/dist/bundle/chunks/{virtual-modules-5DLTLPP7.js → virtual-modules-EU3BUTGN.js} +1 -1
  38. package/dist/bundle/cli-runtime.js +1 -1
  39. package/docs/app-server.md +102 -6
  40. package/docs/app-server.schema.json +493 -0
  41. package/docs/cli.md +3 -3
  42. package/docs/custom-provider.md +2 -0
  43. package/docs/desktop.md +83 -4
  44. package/docs/environment-variables.md +1 -0
  45. package/docs/extensions.md +3 -1
  46. package/docs/keybindings.md +1 -0
  47. package/docs/mcp.md +16 -2
  48. package/docs/message-types.md +1 -1
  49. package/docs/packages.md +2 -0
  50. package/docs/plan-mode.md +4 -0
  51. package/docs/settings.md +3 -3
  52. package/docs/slash-commands.md +2 -0
  53. package/docs/usage.md +23 -0
  54. package/examples/extensions/custom-provider-anthropic/index.ts +27 -31
  55. package/examples/extensions/todo.ts +3 -0
  56. package/examples/mcp-app/server.mjs +177 -0
  57. package/package.json +1 -1
  58. package/dist/bundle/chunks/anthropic-messages-5ZM7Z2XQ.js +0 -6
  59. package/dist/bundle/chunks/azure-openai-responses-OUS4VJNA.js +0 -2
  60. package/dist/bundle/chunks/chunk-4CRI7BMY.js +0 -2
  61. package/dist/bundle/chunks/chunk-6GRVIFTN.js +0 -11
  62. package/dist/bundle/chunks/chunk-6X7IXVQH.js +0 -30
  63. package/dist/bundle/chunks/chunk-BWGDAXFH.js +0 -108
  64. package/dist/bundle/chunks/chunk-FA32X2UJ.js +0 -7
  65. package/dist/bundle/chunks/chunk-IIWY7U5S.js +0 -7
  66. package/dist/bundle/chunks/chunk-J63X3FRT.js +0 -16
  67. package/dist/bundle/chunks/chunk-RKNFSQUG.js +0 -2
  68. package/dist/bundle/chunks/chunk-UU4A4NV5.js +0 -2
  69. package/dist/bundle/chunks/knightcode-messages-57CV36UV.js +0 -8
  70. package/dist/bundle/chunks/mistral-conversations-KT4C4XTZ.js +0 -5
@@ -160,6 +160,18 @@
160
160
  "type": "string",
161
161
  "const": "shuttingDown"
162
162
  },
163
+ {
164
+ "type": "string",
165
+ "const": "approvalRequired"
166
+ },
167
+ {
168
+ "type": "string",
169
+ "const": "mcpUnavailable"
170
+ },
171
+ {
172
+ "type": "string",
173
+ "const": "fileChanged"
174
+ },
163
175
  {
164
176
  "type": "string",
165
177
  "const": "internal"
@@ -2500,6 +2512,26 @@
2500
2512
  }
2501
2513
  },
2502
2514
  "$ref": "View"
2515
+ },
2516
+ "mcpApp": {
2517
+ "type": "object",
2518
+ "required": [
2519
+ "server",
2520
+ "resourceUri"
2521
+ ],
2522
+ "properties": {
2523
+ "server": {
2524
+ "type": "string"
2525
+ },
2526
+ "resourceUri": {
2527
+ "type": "string"
2528
+ },
2529
+ "result": {},
2530
+ "resultOmitted": {
2531
+ "type": "boolean"
2532
+ }
2533
+ },
2534
+ "additionalProperties": false
2503
2535
  }
2504
2536
  },
2505
2537
  "additionalProperties": false
@@ -3621,6 +3653,26 @@
3621
3653
  }
3622
3654
  },
3623
3655
  "$ref": "View"
3656
+ },
3657
+ "mcpApp": {
3658
+ "type": "object",
3659
+ "required": [
3660
+ "server",
3661
+ "resourceUri"
3662
+ ],
3663
+ "properties": {
3664
+ "server": {
3665
+ "type": "string"
3666
+ },
3667
+ "resourceUri": {
3668
+ "type": "string"
3669
+ },
3670
+ "result": {},
3671
+ "resultOmitted": {
3672
+ "type": "boolean"
3673
+ }
3674
+ },
3675
+ "additionalProperties": false
3624
3676
  }
3625
3677
  },
3626
3678
  "additionalProperties": false
@@ -4814,6 +4866,9 @@
4814
4866
  },
4815
4867
  "environment": {
4816
4868
  "type": "string"
4869
+ },
4870
+ "dryRun": {
4871
+ "type": "boolean"
4817
4872
  }
4818
4873
  },
4819
4874
  "additionalProperties": false
@@ -5922,6 +5977,312 @@
5922
5977
  },
5923
5978
  "against": {
5924
5979
  "type": "string"
5980
+ },
5981
+ "fromTree": {
5982
+ "type": "string"
5983
+ },
5984
+ "toTree": {
5985
+ "type": "string"
5986
+ }
5987
+ },
5988
+ "additionalProperties": false
5989
+ }
5990
+ },
5991
+ "thread/diff/file": {
5992
+ "params": {
5993
+ "type": "object",
5994
+ "required": [
5995
+ "threadId",
5996
+ "fromTree",
5997
+ "toTree",
5998
+ "path"
5999
+ ],
6000
+ "properties": {
6001
+ "threadId": {
6002
+ "type": "string"
6003
+ },
6004
+ "fromTree": {
6005
+ "type": "string"
6006
+ },
6007
+ "toTree": {
6008
+ "type": "string"
6009
+ },
6010
+ "path": {
6011
+ "type": "string"
6012
+ },
6013
+ "oldPath": {
6014
+ "type": "string"
6015
+ }
6016
+ },
6017
+ "additionalProperties": false
6018
+ },
6019
+ "result": {
6020
+ "type": "object",
6021
+ "required": [
6022
+ "binary",
6023
+ "tooLarge"
6024
+ ],
6025
+ "properties": {
6026
+ "old": {
6027
+ "type": "string"
6028
+ },
6029
+ "new": {
6030
+ "type": "string"
6031
+ },
6032
+ "binary": {
6033
+ "type": "boolean"
6034
+ },
6035
+ "tooLarge": {
6036
+ "type": "boolean"
6037
+ }
6038
+ },
6039
+ "additionalProperties": false
6040
+ }
6041
+ },
6042
+ "mcp/app/readResource": {
6043
+ "params": {
6044
+ "type": "object",
6045
+ "required": [
6046
+ "threadId",
6047
+ "server",
6048
+ "uri"
6049
+ ],
6050
+ "properties": {
6051
+ "threadId": {
6052
+ "type": "string"
6053
+ },
6054
+ "server": {
6055
+ "type": "string"
6056
+ },
6057
+ "uri": {
6058
+ "type": "string"
6059
+ }
6060
+ },
6061
+ "additionalProperties": false
6062
+ },
6063
+ "result": {
6064
+ "type": "object",
6065
+ "required": [
6066
+ "contents"
6067
+ ],
6068
+ "properties": {
6069
+ "contents": {
6070
+ "type": "array",
6071
+ "items": {}
6072
+ },
6073
+ "_meta": {
6074
+ "type": "object",
6075
+ "patternProperties": {
6076
+ "^.*$": {}
6077
+ }
6078
+ }
6079
+ },
6080
+ "additionalProperties": false
6081
+ }
6082
+ },
6083
+ "mcp/app/callTool": {
6084
+ "params": {
6085
+ "type": "object",
6086
+ "required": [
6087
+ "threadId",
6088
+ "server",
6089
+ "name"
6090
+ ],
6091
+ "properties": {
6092
+ "threadId": {
6093
+ "type": "string"
6094
+ },
6095
+ "server": {
6096
+ "type": "string"
6097
+ },
6098
+ "name": {
6099
+ "type": "string"
6100
+ },
6101
+ "arguments": {
6102
+ "type": "object",
6103
+ "patternProperties": {
6104
+ "^.*$": {}
6105
+ }
6106
+ },
6107
+ "confirmed": {
6108
+ "type": "boolean"
6109
+ }
6110
+ },
6111
+ "additionalProperties": false
6112
+ },
6113
+ "result": {
6114
+ "type": "object",
6115
+ "required": [
6116
+ "content"
6117
+ ],
6118
+ "properties": {
6119
+ "content": {
6120
+ "type": "array",
6121
+ "items": {}
6122
+ },
6123
+ "structuredContent": {},
6124
+ "isError": {
6125
+ "type": "boolean"
6126
+ },
6127
+ "_meta": {
6128
+ "type": "object",
6129
+ "patternProperties": {
6130
+ "^.*$": {}
6131
+ }
6132
+ }
6133
+ },
6134
+ "additionalProperties": false
6135
+ }
6136
+ },
6137
+ "file/read": {
6138
+ "params": {
6139
+ "type": "object",
6140
+ "required": [
6141
+ "threadId",
6142
+ "path"
6143
+ ],
6144
+ "properties": {
6145
+ "threadId": {
6146
+ "type": "string"
6147
+ },
6148
+ "path": {
6149
+ "type": "string"
6150
+ },
6151
+ "maxBytes": {
6152
+ "type": "integer",
6153
+ "minimum": 1,
6154
+ "maximum": 8388608
6155
+ }
6156
+ },
6157
+ "additionalProperties": false
6158
+ },
6159
+ "result": {
6160
+ "type": "object",
6161
+ "required": [
6162
+ "path",
6163
+ "size",
6164
+ "binary",
6165
+ "tooLarge",
6166
+ "mtimeMs"
6167
+ ],
6168
+ "properties": {
6169
+ "path": {
6170
+ "type": "string"
6171
+ },
6172
+ "size": {
6173
+ "type": "number"
6174
+ },
6175
+ "binary": {
6176
+ "type": "boolean"
6177
+ },
6178
+ "tooLarge": {
6179
+ "type": "boolean"
6180
+ },
6181
+ "text": {
6182
+ "type": "string"
6183
+ },
6184
+ "mtimeMs": {
6185
+ "type": "number"
6186
+ }
6187
+ },
6188
+ "additionalProperties": false
6189
+ }
6190
+ },
6191
+ "file/list": {
6192
+ "params": {
6193
+ "type": "object",
6194
+ "required": [
6195
+ "threadId"
6196
+ ],
6197
+ "properties": {
6198
+ "threadId": {
6199
+ "type": "string"
6200
+ },
6201
+ "path": {
6202
+ "type": "string"
6203
+ }
6204
+ },
6205
+ "additionalProperties": false
6206
+ },
6207
+ "result": {
6208
+ "type": "object",
6209
+ "required": [
6210
+ "root",
6211
+ "entries",
6212
+ "truncated"
6213
+ ],
6214
+ "properties": {
6215
+ "root": {
6216
+ "type": "string"
6217
+ },
6218
+ "entries": {
6219
+ "type": "array",
6220
+ "items": {
6221
+ "type": "object",
6222
+ "required": [
6223
+ "path",
6224
+ "type"
6225
+ ],
6226
+ "properties": {
6227
+ "path": {
6228
+ "type": "string"
6229
+ },
6230
+ "type": {
6231
+ "anyOf": [
6232
+ {
6233
+ "type": "string",
6234
+ "const": "file"
6235
+ },
6236
+ {
6237
+ "type": "string",
6238
+ "const": "directory"
6239
+ }
6240
+ ]
6241
+ }
6242
+ },
6243
+ "additionalProperties": false
6244
+ }
6245
+ },
6246
+ "truncated": {
6247
+ "type": "boolean"
6248
+ }
6249
+ },
6250
+ "additionalProperties": false
6251
+ }
6252
+ },
6253
+ "file/write": {
6254
+ "params": {
6255
+ "type": "object",
6256
+ "required": [
6257
+ "threadId",
6258
+ "path",
6259
+ "text"
6260
+ ],
6261
+ "properties": {
6262
+ "threadId": {
6263
+ "type": "string"
6264
+ },
6265
+ "path": {
6266
+ "type": "string"
6267
+ },
6268
+ "text": {
6269
+ "type": "string",
6270
+ "maxLength": 8388608
6271
+ },
6272
+ "expectedMtimeMs": {
6273
+ "type": "number"
6274
+ }
6275
+ },
6276
+ "additionalProperties": false
6277
+ },
6278
+ "result": {
6279
+ "type": "object",
6280
+ "required": [
6281
+ "mtimeMs"
6282
+ ],
6283
+ "properties": {
6284
+ "mtimeMs": {
6285
+ "type": "number"
5925
6286
  }
5926
6287
  },
5927
6288
  "additionalProperties": false
@@ -6082,6 +6443,38 @@
6082
6443
  "additionalProperties": false
6083
6444
  }
6084
6445
  },
6446
+ "git/origin": {
6447
+ "params": {
6448
+ "type": "object",
6449
+ "required": [
6450
+ "threadId"
6451
+ ],
6452
+ "properties": {
6453
+ "threadId": {
6454
+ "type": "string"
6455
+ }
6456
+ },
6457
+ "additionalProperties": false
6458
+ },
6459
+ "result": {
6460
+ "type": "object",
6461
+ "required": [
6462
+ "root"
6463
+ ],
6464
+ "properties": {
6465
+ "root": {
6466
+ "type": "string"
6467
+ },
6468
+ "url": {
6469
+ "type": "string"
6470
+ },
6471
+ "branch": {
6472
+ "type": "string"
6473
+ }
6474
+ },
6475
+ "additionalProperties": false
6476
+ }
6477
+ },
6085
6478
  "git/stage": {
6086
6479
  "params": {
6087
6480
  "type": "object",
@@ -7671,6 +8064,26 @@
7671
8064
  }
7672
8065
  },
7673
8066
  "$ref": "View"
8067
+ },
8068
+ "mcpApp": {
8069
+ "type": "object",
8070
+ "required": [
8071
+ "server",
8072
+ "resourceUri"
8073
+ ],
8074
+ "properties": {
8075
+ "server": {
8076
+ "type": "string"
8077
+ },
8078
+ "resourceUri": {
8079
+ "type": "string"
8080
+ },
8081
+ "result": {},
8082
+ "resultOmitted": {
8083
+ "type": "boolean"
8084
+ }
8085
+ },
8086
+ "additionalProperties": false
7674
8087
  }
7675
8088
  },
7676
8089
  "additionalProperties": false
@@ -8792,6 +9205,26 @@
8792
9205
  }
8793
9206
  },
8794
9207
  "$ref": "View"
9208
+ },
9209
+ "mcpApp": {
9210
+ "type": "object",
9211
+ "required": [
9212
+ "server",
9213
+ "resourceUri"
9214
+ ],
9215
+ "properties": {
9216
+ "server": {
9217
+ "type": "string"
9218
+ },
9219
+ "resourceUri": {
9220
+ "type": "string"
9221
+ },
9222
+ "result": {},
9223
+ "resultOmitted": {
9224
+ "type": "boolean"
9225
+ }
9226
+ },
9227
+ "additionalProperties": false
8795
9228
  }
8796
9229
  },
8797
9230
  "additionalProperties": false
@@ -13323,6 +13756,26 @@
13323
13756
  }
13324
13757
  },
13325
13758
  "$ref": "View"
13759
+ },
13760
+ "mcpApp": {
13761
+ "type": "object",
13762
+ "required": [
13763
+ "server",
13764
+ "resourceUri"
13765
+ ],
13766
+ "properties": {
13767
+ "server": {
13768
+ "type": "string"
13769
+ },
13770
+ "resourceUri": {
13771
+ "type": "string"
13772
+ },
13773
+ "result": {},
13774
+ "resultOmitted": {
13775
+ "type": "boolean"
13776
+ }
13777
+ },
13778
+ "additionalProperties": false
13326
13779
  }
13327
13780
  },
13328
13781
  "additionalProperties": false
@@ -14493,6 +14946,26 @@
14493
14946
  }
14494
14947
  },
14495
14948
  "$ref": "View"
14949
+ },
14950
+ "mcpApp": {
14951
+ "type": "object",
14952
+ "required": [
14953
+ "server",
14954
+ "resourceUri"
14955
+ ],
14956
+ "properties": {
14957
+ "server": {
14958
+ "type": "string"
14959
+ },
14960
+ "resourceUri": {
14961
+ "type": "string"
14962
+ },
14963
+ "result": {},
14964
+ "resultOmitted": {
14965
+ "type": "boolean"
14966
+ }
14967
+ },
14968
+ "additionalProperties": false
14496
14969
  }
14497
14970
  },
14498
14971
  "additionalProperties": false
@@ -15481,6 +15954,26 @@
15481
15954
  }
15482
15955
  },
15483
15956
  "$ref": "View"
15957
+ },
15958
+ "mcpApp": {
15959
+ "type": "object",
15960
+ "required": [
15961
+ "server",
15962
+ "resourceUri"
15963
+ ],
15964
+ "properties": {
15965
+ "server": {
15966
+ "type": "string"
15967
+ },
15968
+ "resourceUri": {
15969
+ "type": "string"
15970
+ },
15971
+ "result": {},
15972
+ "resultOmitted": {
15973
+ "type": "boolean"
15974
+ }
15975
+ },
15976
+ "additionalProperties": false
15484
15977
  }
15485
15978
  },
15486
15979
  "additionalProperties": false
package/docs/cli.md CHANGED
@@ -13,7 +13,7 @@ knightcode update [target] [options]
13
13
  knightcode list
14
14
  knightcode config [options]
15
15
  knightcode auth <check|print-api-key|print-bearer-token> [options]
16
- knightcode mcp <list|login|logout> [options]
16
+ knightcode mcp <add|remove|list|login|logout> [options]
17
17
  knightcode app-server [-e <extension>]... [--session-dir <dir>]
18
18
  ```
19
19
 
@@ -167,7 +167,7 @@ The MCP resource tools (`list_mcp_resources`, `list_mcp_resource_templates`, `re
167
167
 
168
168
  The [web tools](usage.md#web-tools) `webfetch` and `websearch` and the [question tool](usage.md#questions) `ask_user` are off until enabled with `/tools` or named here. A tool excluded here stays off whatever `/tools` says, and one turned off with `/tools` stays off even when named here.
169
169
 
170
- Built-in extensions add two more tools. They are off by default; the MCP extension turns them on when an MCP server needs them (see [MCP](mcp.md#exposure)). To enable them yourself, name them in `--tools` or `defaultTools`.
170
+ Built-in extensions add two more tools. They are off by default; the MCP extension turns them on when an MCP server needs them (see [MCP](mcp.md#control-tool-exposure)). To enable them yourself, name them in `--tools` or `defaultTools`.
171
171
 
172
172
  | Built-in extension | Purpose |
173
173
  |---|---|
@@ -388,6 +388,6 @@ These commands work outside a session, so agents can run them through `bash`. Se
388
388
  | `knightcode mcp login <server> [--timeout <seconds>]` | Sign in to an OAuth server: open the authorization page and wait for the browser; a terminal also accepts the pasted redirect URL. `--timeout` limits the whole sign-in, including requests to the authorization server (default 300 seconds) |
389
389
  | `knightcode mcp logout <server>` | Delete the stored OAuth credentials of a server |
390
390
 
391
- `add` and `remove` change `~/.knightcode/agent/mcp.json`, or `.knightcode/mcp.json` in the current directory with `--local` (`-l`). `add` also takes `--exposure <mode>` (see [Exposure](mcp.md#exposure)) and `--description <text>` and does not connect; run `knightcode mcp list` to check the server.
391
+ `add` and `remove` change `~/.knightcode/agent/mcp.json`, or `.knightcode/mcp.json` in the current directory with `--local` (`-l`). `add` also takes `--exposure <mode>` (see [Exposure](mcp.md#control-tool-exposure)) and `--description <text>` and does not connect; run `knightcode mcp list` to check the server.
392
392
 
393
393
  Project `.knightcode/mcp.json` files are only read for projects that are already trusted.
@@ -138,6 +138,8 @@ An OAuth provider supplies a display name, login flow, token refresh, and access
138
138
 
139
139
  OAuth callbacks are UI-neutral. They can open an authorization URL, show a device code, report progress, request input, or ask the user to choose a login method. Honor cancellation and the supplied abort signal during network requests.
140
140
 
141
+ Press Enter (`tui.select.confirm`) to open the device-login URL and copy the code, or log in manually. Providers can disable either action with `openBrowserOnConfirm: false` or `copyCodeOnConfirm: false` in `onDeviceCode` or native `AuthEvent` notifications.
142
+
141
143
  Never write access tokens, refresh tokens, authorization headers, or complete provider responses to ordinary logs.
142
144
 
143
145
  ## Supply and refresh models