@genesislcap/ai-assistant 15.19.6-GENC-1566.2 → 15.20.0-alpha.3

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 (49) hide show
  1. package/dist/ai-assistant.api.json +606 -73
  2. package/dist/ai-assistant.d.ts +404 -25
  3. package/dist/chat-driver.cjs +344 -30
  4. package/dist/chat-driver.cjs.map +4 -4
  5. package/dist/chat-driver.mjs +344 -30
  6. package/dist/chat-driver.mjs.map +4 -4
  7. package/dist/custom-elements.json +634 -24
  8. package/dist/dts/components/ai-driver/ai-driver.d.ts +33 -7
  9. package/dist/dts/components/ai-driver/ai-driver.d.ts.map +1 -1
  10. package/dist/dts/components/chat-driver/chat-driver.d.ts +63 -2
  11. package/dist/dts/components/chat-driver/chat-driver.d.ts.map +1 -1
  12. package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts +9 -3
  13. package/dist/dts/components/orchestrating-driver/orchestrating-driver.d.ts.map +1 -1
  14. package/dist/dts/config/config.d.ts +44 -0
  15. package/dist/dts/config/config.d.ts.map +1 -1
  16. package/dist/dts/main/main.d.ts +187 -5
  17. package/dist/dts/main/main.d.ts.map +1 -1
  18. package/dist/dts/main/main.styles.d.ts.map +1 -1
  19. package/dist/dts/main/main.template.d.ts.map +1 -1
  20. package/dist/dts/state/persistence/diagnostics-cursors.d.ts +7 -2
  21. package/dist/dts/state/persistence/diagnostics-cursors.d.ts.map +1 -1
  22. package/dist/dts/state/persistence/diagnostics.d.ts +1 -1
  23. package/dist/dts/utils/condense-history.d.ts +9 -0
  24. package/dist/dts/utils/condense-history.d.ts.map +1 -1
  25. package/dist/dts/utils/context-tokens.d.ts +156 -0
  26. package/dist/dts/utils/context-tokens.d.ts.map +1 -0
  27. package/dist/dts/utils/history-transform.d.ts +76 -14
  28. package/dist/dts/utils/history-transform.d.ts.map +1 -1
  29. package/dist/dts/utils/resolve-context-budget.d.ts +98 -0
  30. package/dist/dts/utils/resolve-context-budget.d.ts.map +1 -0
  31. package/dist/esm/components/chat-driver/chat-driver.js +179 -34
  32. package/dist/esm/components/orchestrating-driver/orchestrating-driver.js +12 -4
  33. package/dist/esm/main/main.js +391 -21
  34. package/dist/esm/main/main.styles.js +128 -0
  35. package/dist/esm/main/main.template.js +64 -29
  36. package/dist/esm/state/debug-event-log.js +1 -1
  37. package/dist/esm/state/persistence/diagnostics-cursors.js +1 -1
  38. package/dist/esm/state/persistence/diagnostics.js +1 -1
  39. package/dist/esm/state/persistence/session-persister.js +2 -2
  40. package/dist/esm/utils/condense-history.js +18 -5
  41. package/dist/esm/utils/context-tokens.js +339 -0
  42. package/dist/esm/utils/history-transform.js +101 -19
  43. package/dist/esm/utils/resolve-context-budget.js +84 -0
  44. package/package.json +16 -16
  45. package/sandbox/README.md +93 -4
  46. package/sandbox/controls.ts +77 -10
  47. package/sandbox/fixtures.ts +163 -6
  48. package/sandbox/sandbox.css +54 -1
  49. package/sandbox/sandbox.ts +384 -7
@@ -2464,11 +2464,20 @@
2464
2464
  {
2465
2465
  "kind": "MethodSignature",
2466
2466
  "canonicalReference": "@genesislcap/ai-assistant!AiDriver#canCompact:member(1)",
2467
- "docComment": "/**\n * Whether `compact()` would compact something right now — a summarizable run of older turns exists behind a clean boundary. The UI gates its \"Compact\" affordance on this, so the button reflects the exact history `compact()` acts on (GENC-1351). Optional — only history-owning drivers implement it.\n */\n",
2467
+ "docComment": "/**\n * Whether `compact()` would compact something right now. Convenience over {@link AiDriver.getCompactionPlan} — prefer the plan where the caller needs to say how much would be reclaimed. Optional — only history-owning drivers implement it.\n */\n",
2468
2468
  "excerptTokens": [
2469
2469
  {
2470
2470
  "kind": "Content",
2471
- "text": "canCompact?(): "
2471
+ "text": "canCompact?(options?: "
2472
+ },
2473
+ {
2474
+ "kind": "Reference",
2475
+ "text": "CompactionPlanOptions",
2476
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
2477
+ },
2478
+ {
2479
+ "kind": "Content",
2480
+ "text": "): "
2472
2481
  },
2473
2482
  {
2474
2483
  "kind": "Content",
@@ -2481,22 +2490,40 @@
2481
2490
  ],
2482
2491
  "isOptional": true,
2483
2492
  "returnTypeTokenRange": {
2484
- "startIndex": 1,
2485
- "endIndex": 2
2493
+ "startIndex": 3,
2494
+ "endIndex": 4
2486
2495
  },
2487
2496
  "releaseTag": "Beta",
2488
2497
  "overloadIndex": 1,
2489
- "parameters": [],
2498
+ "parameters": [
2499
+ {
2500
+ "parameterName": "options",
2501
+ "parameterTypeTokenRange": {
2502
+ "startIndex": 1,
2503
+ "endIndex": 2
2504
+ },
2505
+ "isOptional": true
2506
+ }
2507
+ ],
2490
2508
  "name": "canCompact"
2491
2509
  },
2492
2510
  {
2493
2511
  "kind": "MethodSignature",
2494
2512
  "canonicalReference": "@genesislcap/ai-assistant!AiDriver#compact:member(1)",
2495
- "docComment": "/**\n * Destructively compact older conversation turns into a single `compacted-summary` message (GENC-1351 §5.7), summarizing them via the default provider's one-shot `prompt()`. Atomic: history changes only on success. Resolves to the created summary message, or `null` when there is nothing worth compacting or the provider cannot summarize. Optional — only drivers that own history implement it.\n */\n",
2513
+ "docComment": "/**\n * Destructively compact older conversation turns into a single `compacted-summary` message (GENC-1351 §5.7), summarizing them via the default provider's one-shot `prompt()`. Atomic: history changes only on success. Resolves to the created summary message, or `null` when there is nothing worth compacting or the provider cannot summarize. Optional — only drivers that own history implement it.\n *\n * Pass the same `options` used for {@link AiDriver.getCompactionPlan} so the action does exactly what the affordance advertised.\n */\n",
2496
2514
  "excerptTokens": [
2497
2515
  {
2498
2516
  "kind": "Content",
2499
- "text": "compact?(): "
2517
+ "text": "compact?(options?: "
2518
+ },
2519
+ {
2520
+ "kind": "Reference",
2521
+ "text": "CompactionPlanOptions",
2522
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
2523
+ },
2524
+ {
2525
+ "kind": "Content",
2526
+ "text": "): "
2500
2527
  },
2501
2528
  {
2502
2529
  "kind": "Reference",
@@ -2523,12 +2550,21 @@
2523
2550
  ],
2524
2551
  "isOptional": true,
2525
2552
  "returnTypeTokenRange": {
2526
- "startIndex": 1,
2527
- "endIndex": 5
2553
+ "startIndex": 3,
2554
+ "endIndex": 7
2528
2555
  },
2529
2556
  "releaseTag": "Beta",
2530
2557
  "overloadIndex": 1,
2531
- "parameters": [],
2558
+ "parameters": [
2559
+ {
2560
+ "parameterName": "options",
2561
+ "parameterTypeTokenRange": {
2562
+ "startIndex": 1,
2563
+ "endIndex": 2
2564
+ },
2565
+ "isOptional": true
2566
+ }
2567
+ ],
2532
2568
  "name": "compact"
2533
2569
  },
2534
2570
  {
@@ -2693,6 +2729,57 @@
2693
2729
  "parameters": [],
2694
2730
  "name": "getActiveProviderName"
2695
2731
  },
2732
+ {
2733
+ "kind": "MethodSignature",
2734
+ "canonicalReference": "@genesislcap/ai-assistant!AiDriver#getCompactionPlan:member(1)",
2735
+ "docComment": "/**\n * What compacting right now would cost and reclaim, without running the summarizer (GENC-1567) — or `null` when there is no safe cut, or the projected reclaim is not worth the call.\n *\n * The single source of truth for every compaction affordance: the menu's enabled state, its tooltip, the context gate's banner copy, and the action itself all read this, so none of them can promise a reclaim the action does not deliver. Optional — only history-owning drivers implement it.\n */\n",
2736
+ "excerptTokens": [
2737
+ {
2738
+ "kind": "Content",
2739
+ "text": "getCompactionPlan?(options?: "
2740
+ },
2741
+ {
2742
+ "kind": "Reference",
2743
+ "text": "CompactionPlanOptions",
2744
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
2745
+ },
2746
+ {
2747
+ "kind": "Content",
2748
+ "text": "): "
2749
+ },
2750
+ {
2751
+ "kind": "Reference",
2752
+ "text": "CompactionProjection",
2753
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionProjection:interface"
2754
+ },
2755
+ {
2756
+ "kind": "Content",
2757
+ "text": " | null"
2758
+ },
2759
+ {
2760
+ "kind": "Content",
2761
+ "text": ";"
2762
+ }
2763
+ ],
2764
+ "isOptional": true,
2765
+ "returnTypeTokenRange": {
2766
+ "startIndex": 3,
2767
+ "endIndex": 5
2768
+ },
2769
+ "releaseTag": "Beta",
2770
+ "overloadIndex": 1,
2771
+ "parameters": [
2772
+ {
2773
+ "parameterName": "options",
2774
+ "parameterTypeTokenRange": {
2775
+ "startIndex": 1,
2776
+ "endIndex": 2
2777
+ },
2778
+ "isOptional": true
2779
+ }
2780
+ ],
2781
+ "name": "getCompactionPlan"
2782
+ },
2696
2783
  {
2697
2784
  "kind": "MethodSignature",
2698
2785
  "canonicalReference": "@genesislcap/ai-assistant!AiDriver#getExternalDiagnostics:member(1)",
@@ -3334,6 +3421,52 @@
3334
3421
  }
3335
3422
  ],
3336
3423
  "name": "sendMessage"
3424
+ },
3425
+ {
3426
+ "kind": "MethodSignature",
3427
+ "canonicalReference": "@genesislcap/ai-assistant!AiDriver#setContextGuard:member(1)",
3428
+ "docComment": "/**\n * Set the mid-loop context guard (GENC-1567). `undefined` disables it.\n *\n * Carries a margin rather than an absolute threshold: the window belongs to whichever provider the next call resolves to, which the driver learns during the call and the host cannot know until afterwards. The host owns the policy; the driver applies it against the model actually being addressed. Optional — only drivers that own a tool loop implement it.\n */\n",
3429
+ "excerptTokens": [
3430
+ {
3431
+ "kind": "Content",
3432
+ "text": "setContextGuard?(policy?: "
3433
+ },
3434
+ {
3435
+ "kind": "Reference",
3436
+ "text": "ContextGuardPolicy",
3437
+ "canonicalReference": "@genesislcap/ai-assistant!ContextGuardPolicy:interface"
3438
+ },
3439
+ {
3440
+ "kind": "Content",
3441
+ "text": "): "
3442
+ },
3443
+ {
3444
+ "kind": "Content",
3445
+ "text": "void"
3446
+ },
3447
+ {
3448
+ "kind": "Content",
3449
+ "text": ";"
3450
+ }
3451
+ ],
3452
+ "isOptional": true,
3453
+ "returnTypeTokenRange": {
3454
+ "startIndex": 3,
3455
+ "endIndex": 4
3456
+ },
3457
+ "releaseTag": "Beta",
3458
+ "overloadIndex": 1,
3459
+ "parameters": [
3460
+ {
3461
+ "parameterName": "policy",
3462
+ "parameterTypeTokenRange": {
3463
+ "startIndex": 1,
3464
+ "endIndex": 2
3465
+ },
3466
+ "isOptional": true
3467
+ }
3468
+ ],
3469
+ "name": "setContextGuard"
3337
3470
  }
3338
3471
  ],
3339
3472
  "extendsTokenRanges": [
@@ -4283,7 +4416,7 @@
4283
4416
  {
4284
4417
  "kind": "Class",
4285
4418
  "canonicalReference": "@genesislcap/ai-assistant!ChatDriver:class",
4286
- "docComment": "/**\n * Plain TS class that drives a multi-turn chat conversation, including the tool-call loop. Owned by `FoundationAiAssistant` — created in `connectedCallback`, torn down in `disconnectedCallback`.\n *\n * Dispatches `'history-updated'` events on itself so the owning element can observe changes.\n *\n * @fires\n *\n * history-updated - Fired whenever the in-memory chat history changes (append, tool loop, interaction resolution, post-resolve external cost) with the full history snapshot. detail: `ReadonlyArray<ChatMessage>`\n *\n * @beta\n */\n",
4419
+ "docComment": "",
4287
4420
  "excerptTokens": [
4288
4421
  {
4289
4422
  "kind": "Content",
@@ -4309,7 +4442,7 @@
4309
4442
  }
4310
4443
  ],
4311
4444
  "fileUrlPath": "src/components/chat-driver/chat-driver.ts",
4312
- "releaseTag": "Beta",
4445
+ "releaseTag": "Public",
4313
4446
  "isAbstract": false,
4314
4447
  "name": "ChatDriver",
4315
4448
  "preserveMemberOrder": false,
@@ -4342,7 +4475,7 @@
4342
4475
  "text": ");"
4343
4476
  }
4344
4477
  ],
4345
- "releaseTag": "Beta",
4478
+ "releaseTag": "Public",
4346
4479
  "isProtected": false,
4347
4480
  "overloadIndex": 1,
4348
4481
  "parameters": [
@@ -4396,7 +4529,7 @@
4396
4529
  "startIndex": 3,
4397
4530
  "endIndex": 4
4398
4531
  },
4399
- "releaseTag": "Beta",
4532
+ "releaseTag": "Public",
4400
4533
  "isProtected": false,
4401
4534
  "overloadIndex": 1,
4402
4535
  "parameters": [
@@ -4436,7 +4569,7 @@
4436
4569
  "startIndex": 1,
4437
4570
  "endIndex": 2
4438
4571
  },
4439
- "releaseTag": "Beta",
4572
+ "releaseTag": "Public",
4440
4573
  "isProtected": false,
4441
4574
  "overloadIndex": 1,
4442
4575
  "parameters": [],
@@ -4451,7 +4584,16 @@
4451
4584
  "excerptTokens": [
4452
4585
  {
4453
4586
  "kind": "Content",
4454
- "text": "canCompact(): "
4587
+ "text": "canCompact(options?: "
4588
+ },
4589
+ {
4590
+ "kind": "Reference",
4591
+ "text": "CompactionPlanOptions",
4592
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
4593
+ },
4594
+ {
4595
+ "kind": "Content",
4596
+ "text": "): "
4455
4597
  },
4456
4598
  {
4457
4599
  "kind": "Content",
@@ -4464,13 +4606,22 @@
4464
4606
  ],
4465
4607
  "isStatic": false,
4466
4608
  "returnTypeTokenRange": {
4467
- "startIndex": 1,
4468
- "endIndex": 2
4609
+ "startIndex": 3,
4610
+ "endIndex": 4
4469
4611
  },
4470
- "releaseTag": "Beta",
4612
+ "releaseTag": "Public",
4471
4613
  "isProtected": false,
4472
4614
  "overloadIndex": 1,
4473
- "parameters": [],
4615
+ "parameters": [
4616
+ {
4617
+ "parameterName": "options",
4618
+ "parameterTypeTokenRange": {
4619
+ "startIndex": 1,
4620
+ "endIndex": 2
4621
+ },
4622
+ "isOptional": true
4623
+ }
4624
+ ],
4474
4625
  "isOptional": false,
4475
4626
  "isAbstract": false,
4476
4627
  "name": "canCompact"
@@ -4482,7 +4633,16 @@
4482
4633
  "excerptTokens": [
4483
4634
  {
4484
4635
  "kind": "Content",
4485
- "text": "compact(): "
4636
+ "text": "compact(options?: "
4637
+ },
4638
+ {
4639
+ "kind": "Reference",
4640
+ "text": "CompactionPlanOptions",
4641
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
4642
+ },
4643
+ {
4644
+ "kind": "Content",
4645
+ "text": "): "
4486
4646
  },
4487
4647
  {
4488
4648
  "kind": "Reference",
@@ -4509,13 +4669,22 @@
4509
4669
  ],
4510
4670
  "isStatic": false,
4511
4671
  "returnTypeTokenRange": {
4512
- "startIndex": 1,
4513
- "endIndex": 5
4672
+ "startIndex": 3,
4673
+ "endIndex": 7
4514
4674
  },
4515
- "releaseTag": "Beta",
4675
+ "releaseTag": "Public",
4516
4676
  "isProtected": false,
4517
4677
  "overloadIndex": 1,
4518
- "parameters": [],
4678
+ "parameters": [
4679
+ {
4680
+ "parameterName": "options",
4681
+ "parameterTypeTokenRange": {
4682
+ "startIndex": 1,
4683
+ "endIndex": 2
4684
+ },
4685
+ "isOptional": true
4686
+ }
4687
+ ],
4519
4688
  "isOptional": false,
4520
4689
  "isAbstract": false,
4521
4690
  "name": "compact"
@@ -4570,7 +4739,7 @@
4570
4739
  "startIndex": 4,
4571
4740
  "endIndex": 8
4572
4741
  },
4573
- "releaseTag": "Beta",
4742
+ "releaseTag": "Public",
4574
4743
  "isProtected": false,
4575
4744
  "overloadIndex": 1,
4576
4745
  "parameters": [
@@ -4610,7 +4779,7 @@
4610
4779
  "startIndex": 1,
4611
4780
  "endIndex": 2
4612
4781
  },
4613
- "releaseTag": "Beta",
4782
+ "releaseTag": "Public",
4614
4783
  "isProtected": false,
4615
4784
  "overloadIndex": 1,
4616
4785
  "parameters": [],
@@ -4641,7 +4810,7 @@
4641
4810
  "startIndex": 1,
4642
4811
  "endIndex": 2
4643
4812
  },
4644
- "releaseTag": "Beta",
4813
+ "releaseTag": "Public",
4645
4814
  "isProtected": false,
4646
4815
  "overloadIndex": 1,
4647
4816
  "parameters": [],
@@ -4672,7 +4841,7 @@
4672
4841
  "startIndex": 1,
4673
4842
  "endIndex": 2
4674
4843
  },
4675
- "releaseTag": "Beta",
4844
+ "releaseTag": "Public",
4676
4845
  "isProtected": false,
4677
4846
  "overloadIndex": 1,
4678
4847
  "parameters": [],
@@ -4703,7 +4872,7 @@
4703
4872
  "startIndex": 1,
4704
4873
  "endIndex": 2
4705
4874
  },
4706
- "releaseTag": "Beta",
4875
+ "releaseTag": "Public",
4707
4876
  "isProtected": false,
4708
4877
  "overloadIndex": 1,
4709
4878
  "parameters": [],
@@ -4711,6 +4880,60 @@
4711
4880
  "isAbstract": false,
4712
4881
  "name": "getAgentReleaseRequested"
4713
4882
  },
4883
+ {
4884
+ "kind": "Method",
4885
+ "canonicalReference": "@genesislcap/ai-assistant!ChatDriver#getCompactionPlan:member(1)",
4886
+ "docComment": "/**\n * What compacting right now would cost and reclaim, without running the summarizer (GENC-1567) — or `null` when there is no safe cut, or the projected reclaim is not worth the call.\n *\n * The single source of truth for every compaction affordance: the menu's enabled state, its tooltip, the context gate's banner copy, and the action itself all read this, so none of them can promise a reclaim the action does not deliver. Optional — only history-owning drivers implement it.\n */\n",
4887
+ "excerptTokens": [
4888
+ {
4889
+ "kind": "Content",
4890
+ "text": "getCompactionPlan(options?: "
4891
+ },
4892
+ {
4893
+ "kind": "Reference",
4894
+ "text": "CompactionPlanOptions",
4895
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
4896
+ },
4897
+ {
4898
+ "kind": "Content",
4899
+ "text": "): "
4900
+ },
4901
+ {
4902
+ "kind": "Reference",
4903
+ "text": "CompactionProjection",
4904
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionProjection:interface"
4905
+ },
4906
+ {
4907
+ "kind": "Content",
4908
+ "text": " | null"
4909
+ },
4910
+ {
4911
+ "kind": "Content",
4912
+ "text": ";"
4913
+ }
4914
+ ],
4915
+ "isStatic": false,
4916
+ "returnTypeTokenRange": {
4917
+ "startIndex": 3,
4918
+ "endIndex": 5
4919
+ },
4920
+ "releaseTag": "Public",
4921
+ "isProtected": false,
4922
+ "overloadIndex": 1,
4923
+ "parameters": [
4924
+ {
4925
+ "parameterName": "options",
4926
+ "parameterTypeTokenRange": {
4927
+ "startIndex": 1,
4928
+ "endIndex": 2
4929
+ },
4930
+ "isOptional": true
4931
+ }
4932
+ ],
4933
+ "isOptional": false,
4934
+ "isAbstract": false,
4935
+ "name": "getCompactionPlan"
4936
+ },
4714
4937
  {
4715
4938
  "kind": "Method",
4716
4939
  "canonicalReference": "@genesislcap/ai-assistant!ChatDriver#getExternalDiagnostics:member(1)",
@@ -4748,7 +4971,7 @@
4748
4971
  "startIndex": 1,
4749
4972
  "endIndex": 5
4750
4973
  },
4751
- "releaseTag": "Beta",
4974
+ "releaseTag": "Public",
4752
4975
  "isProtected": false,
4753
4976
  "overloadIndex": 1,
4754
4977
  "parameters": [],
@@ -4793,7 +5016,7 @@
4793
5016
  "startIndex": 1,
4794
5017
  "endIndex": 5
4795
5018
  },
4796
- "releaseTag": "Beta",
5019
+ "releaseTag": "Public",
4797
5020
  "isProtected": false,
4798
5021
  "overloadIndex": 1,
4799
5022
  "parameters": [],
@@ -4829,7 +5052,7 @@
4829
5052
  "startIndex": 1,
4830
5053
  "endIndex": 3
4831
5054
  },
4832
- "releaseTag": "Beta",
5055
+ "releaseTag": "Public",
4833
5056
  "isProtected": false,
4834
5057
  "overloadIndex": 1,
4835
5058
  "parameters": [],
@@ -4873,7 +5096,7 @@
4873
5096
  "startIndex": 3,
4874
5097
  "endIndex": 5
4875
5098
  },
4876
- "releaseTag": "Beta",
5099
+ "releaseTag": "Public",
4877
5100
  "isProtected": false,
4878
5101
  "overloadIndex": 1,
4879
5102
  "parameters": [
@@ -4922,7 +5145,7 @@
4922
5145
  "startIndex": 1,
4923
5146
  "endIndex": 4
4924
5147
  },
4925
- "releaseTag": "Beta",
5148
+ "releaseTag": "Public",
4926
5149
  "isProtected": false,
4927
5150
  "overloadIndex": 1,
4928
5151
  "parameters": [],
@@ -4953,7 +5176,7 @@
4953
5176
  "startIndex": 1,
4954
5177
  "endIndex": 2
4955
5178
  },
4956
- "releaseTag": "Beta",
5179
+ "releaseTag": "Public",
4957
5180
  "isProtected": false,
4958
5181
  "overloadIndex": 1,
4959
5182
  "parameters": [],
@@ -5011,7 +5234,7 @@
5011
5234
  "startIndex": 1,
5012
5235
  "endIndex": 8
5013
5236
  },
5014
- "releaseTag": "Beta",
5237
+ "releaseTag": "Public",
5015
5238
  "isProtected": false,
5016
5239
  "overloadIndex": 1,
5017
5240
  "parameters": [],
@@ -5089,7 +5312,7 @@
5089
5312
  "startIndex": 11,
5090
5313
  "endIndex": 13
5091
5314
  },
5092
- "releaseTag": "Beta",
5315
+ "releaseTag": "Public",
5093
5316
  "isProtected": false,
5094
5317
  "overloadIndex": 1,
5095
5318
  "parameters": [
@@ -5167,7 +5390,7 @@
5167
5390
  "startIndex": 1,
5168
5391
  "endIndex": 5
5169
5392
  },
5170
- "releaseTag": "Beta",
5393
+ "releaseTag": "Public",
5171
5394
  "isProtected": false,
5172
5395
  "overloadIndex": 1,
5173
5396
  "parameters": [],
@@ -5198,7 +5421,7 @@
5198
5421
  "startIndex": 1,
5199
5422
  "endIndex": 2
5200
5423
  },
5201
- "releaseTag": "Beta",
5424
+ "releaseTag": "Public",
5202
5425
  "isProtected": false,
5203
5426
  "overloadIndex": 1,
5204
5427
  "parameters": [],
@@ -5242,7 +5465,7 @@
5242
5465
  "startIndex": 4,
5243
5466
  "endIndex": 5
5244
5467
  },
5245
- "releaseTag": "Beta",
5468
+ "releaseTag": "Public",
5246
5469
  "isProtected": false,
5247
5470
  "overloadIndex": 1,
5248
5471
  "parameters": [
@@ -5282,7 +5505,7 @@
5282
5505
  "startIndex": 1,
5283
5506
  "endIndex": 2
5284
5507
  },
5285
- "releaseTag": "Beta",
5508
+ "releaseTag": "Public",
5286
5509
  "isProtected": false,
5287
5510
  "overloadIndex": 1,
5288
5511
  "parameters": [],
@@ -5396,7 +5619,7 @@
5396
5619
  "startIndex": 5,
5397
5620
  "endIndex": 6
5398
5621
  },
5399
- "releaseTag": "Beta",
5622
+ "releaseTag": "Public",
5400
5623
  "isProtected": false,
5401
5624
  "overloadIndex": 1,
5402
5625
  "parameters": [
@@ -5487,7 +5710,7 @@
5487
5710
  "startIndex": 7,
5488
5711
  "endIndex": 9
5489
5712
  },
5490
- "releaseTag": "Beta",
5713
+ "releaseTag": "Public",
5491
5714
  "isProtected": false,
5492
5715
  "overloadIndex": 1,
5493
5716
  "parameters": [
@@ -5559,7 +5782,7 @@
5559
5782
  "startIndex": 5,
5560
5783
  "endIndex": 6
5561
5784
  },
5562
- "releaseTag": "Beta",
5785
+ "releaseTag": "Public",
5563
5786
  "isProtected": false,
5564
5787
  "overloadIndex": 1,
5565
5788
  "parameters": [
@@ -5630,7 +5853,64 @@
5630
5853
  },
5631
5854
  {
5632
5855
  "kind": "Content",
5633
- "text": ">"
5856
+ "text": ">"
5857
+ },
5858
+ {
5859
+ "kind": "Content",
5860
+ "text": ";"
5861
+ }
5862
+ ],
5863
+ "isStatic": false,
5864
+ "returnTypeTokenRange": {
5865
+ "startIndex": 6,
5866
+ "endIndex": 10
5867
+ },
5868
+ "releaseTag": "Public",
5869
+ "isProtected": false,
5870
+ "overloadIndex": 1,
5871
+ "parameters": [
5872
+ {
5873
+ "parameterName": "userInput",
5874
+ "parameterTypeTokenRange": {
5875
+ "startIndex": 1,
5876
+ "endIndex": 2
5877
+ },
5878
+ "isOptional": false
5879
+ },
5880
+ {
5881
+ "parameterName": "attachments",
5882
+ "parameterTypeTokenRange": {
5883
+ "startIndex": 3,
5884
+ "endIndex": 5
5885
+ },
5886
+ "isOptional": true
5887
+ }
5888
+ ],
5889
+ "isOptional": false,
5890
+ "isAbstract": false,
5891
+ "name": "sendMessage"
5892
+ },
5893
+ {
5894
+ "kind": "Method",
5895
+ "canonicalReference": "@genesislcap/ai-assistant!ChatDriver#setContextGuard:member(1)",
5896
+ "docComment": "/**\n * Set the mid-loop context guard. Its margin is deliberately far smaller than the reserve that blocks NEW turns: that reserve exists so an accepted turn can spend it, and a guard set at the same line would kill every turn that used the headroom it was given.\n */\n",
5897
+ "excerptTokens": [
5898
+ {
5899
+ "kind": "Content",
5900
+ "text": "setContextGuard(policy?: "
5901
+ },
5902
+ {
5903
+ "kind": "Reference",
5904
+ "text": "ContextGuardPolicy",
5905
+ "canonicalReference": "@genesislcap/ai-assistant!ContextGuardPolicy:interface"
5906
+ },
5907
+ {
5908
+ "kind": "Content",
5909
+ "text": "): "
5910
+ },
5911
+ {
5912
+ "kind": "Content",
5913
+ "text": "void"
5634
5914
  },
5635
5915
  {
5636
5916
  "kind": "Content",
@@ -5639,33 +5919,25 @@
5639
5919
  ],
5640
5920
  "isStatic": false,
5641
5921
  "returnTypeTokenRange": {
5642
- "startIndex": 6,
5643
- "endIndex": 10
5922
+ "startIndex": 3,
5923
+ "endIndex": 4
5644
5924
  },
5645
- "releaseTag": "Beta",
5925
+ "releaseTag": "Public",
5646
5926
  "isProtected": false,
5647
5927
  "overloadIndex": 1,
5648
5928
  "parameters": [
5649
5929
  {
5650
- "parameterName": "userInput",
5930
+ "parameterName": "policy",
5651
5931
  "parameterTypeTokenRange": {
5652
5932
  "startIndex": 1,
5653
5933
  "endIndex": 2
5654
5934
  },
5655
- "isOptional": false
5656
- },
5657
- {
5658
- "parameterName": "attachments",
5659
- "parameterTypeTokenRange": {
5660
- "startIndex": 3,
5661
- "endIndex": 5
5662
- },
5663
5935
  "isOptional": true
5664
5936
  }
5665
5937
  ],
5666
5938
  "isOptional": false,
5667
5939
  "isAbstract": false,
5668
- "name": "sendMessage"
5940
+ "name": "setContextGuard"
5669
5941
  },
5670
5942
  {
5671
5943
  "kind": "Method",
@@ -5716,7 +5988,7 @@
5716
5988
  "startIndex": 7,
5717
5989
  "endIndex": 8
5718
5990
  },
5719
- "releaseTag": "Beta",
5991
+ "releaseTag": "Public",
5720
5992
  "isProtected": false,
5721
5993
  "overloadIndex": 1,
5722
5994
  "parameters": [
@@ -5736,7 +6008,7 @@
5736
6008
  {
5737
6009
  "kind": "Method",
5738
6010
  "canonicalReference": "@genesislcap/ai-assistant!ChatDriver#setProviderHistoryTransform:member(1)",
5739
- "docComment": "/**\n * Optional transform applied to conversation history immediately before each LLM request. Cleared when `undefined`. Does not alter stored history.\n */\n",
6011
+ "docComment": "",
5740
6012
  "excerptTokens": [
5741
6013
  {
5742
6014
  "kind": "Content",
@@ -5782,7 +6054,7 @@
5782
6054
  "startIndex": 7,
5783
6055
  "endIndex": 8
5784
6056
  },
5785
- "releaseTag": "Beta",
6057
+ "releaseTag": "Public",
5786
6058
  "isProtected": false,
5787
6059
  "overloadIndex": 1,
5788
6060
  "parameters": [
@@ -6283,6 +6555,32 @@
6283
6555
  "endIndex": 7
6284
6556
  }
6285
6557
  },
6558
+ {
6559
+ "kind": "TypeAlias",
6560
+ "canonicalReference": "@genesislcap/ai-assistant!ContextReserveInput:type",
6561
+ "docComment": "/**\n * Context headroom an agent reserves for itself, in tokens.\n *\n * A plain number, unlike the value-or-resolver shape `provider` / `temperature` / `resumable` use. The resolver form was drafted for it and removed before release: the gate is recomputed from a synchronous getter with no turn context to resolve against, so no path could ever have invoked one. Accepting a type-correct option that is guaranteed to do nothing is worse than not offering it — a warning after the fact still leaves the configuration inert.\n *\n * It can widen to a resolver later without breaking a caller, since every existing `number` stays valid.\n *\n * @beta\n */\n",
6562
+ "excerptTokens": [
6563
+ {
6564
+ "kind": "Content",
6565
+ "text": "export type ContextReserveInput = "
6566
+ },
6567
+ {
6568
+ "kind": "Content",
6569
+ "text": "number"
6570
+ },
6571
+ {
6572
+ "kind": "Content",
6573
+ "text": ";"
6574
+ }
6575
+ ],
6576
+ "fileUrlPath": "src/config/config.ts",
6577
+ "releaseTag": "Beta",
6578
+ "name": "ContextReserveInput",
6579
+ "typeTokenRange": {
6580
+ "startIndex": 1,
6581
+ "endIndex": 2
6582
+ }
6583
+ },
6286
6584
  {
6287
6585
  "kind": "Interface",
6288
6586
  "canonicalReference": "@genesislcap/ai-assistant!CostSessionModelEntry:interface",
@@ -8218,7 +8516,7 @@
8218
8516
  {
8219
8517
  "kind": "Property",
8220
8518
  "canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#compactable:member",
8221
- "docComment": "/**\n * Whether the menu's \"Compact\" action would do anything (GENC-1351 §5.7). Delegates to `driver.canCompact()` so the gate uses the exact same history `compact()` acts on — one source of truth. Also reads `messages`, purely to stay reactive as the conversation grows: the driver's history isn't a tracked observable, so the button keys its re-evaluation off the Redux mirror.\n */\n",
8519
+ "docComment": "/**\n * Whether the menu's \"Compact\" action would do anything (GENC-1351 §5.7, GENC-1567). Delegates to the driver's plan so the gate uses the exact same history `compact()` acts on, judged against the same budget — one source of truth for both whether a cut is legal and whether it reclaims enough.\n */\n",
8222
8520
  "excerptTokens": [
8223
8521
  {
8224
8522
  "kind": "Content",
@@ -8275,6 +8573,41 @@
8275
8573
  "isProtected": false,
8276
8574
  "isAbstract": false
8277
8575
  },
8576
+ {
8577
+ "kind": "Property",
8578
+ "canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#compactionPlan:member",
8579
+ "docComment": "/**\n * What compacting right now would reclaim, or `null` when it would not be worth it (GENC-1567). Sized against {@link FoundationAiAssistant.contextBudget}, so the plan aims at this model's window rather than a fixed default.\n *\n * Reads `messages` to stay reactive as the conversation grows: the driver's history is not a tracked observable, so every consumer of this keys its re-evaluation off the Redux mirror.\n */\n",
8580
+ "excerptTokens": [
8581
+ {
8582
+ "kind": "Content",
8583
+ "text": "get compactionPlan(): "
8584
+ },
8585
+ {
8586
+ "kind": "Reference",
8587
+ "text": "CompactionProjection",
8588
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionProjection:interface"
8589
+ },
8590
+ {
8591
+ "kind": "Content",
8592
+ "text": " | null"
8593
+ },
8594
+ {
8595
+ "kind": "Content",
8596
+ "text": ";"
8597
+ }
8598
+ ],
8599
+ "isReadonly": true,
8600
+ "isOptional": false,
8601
+ "releaseTag": "Beta",
8602
+ "name": "compactionPlan",
8603
+ "propertyTypeTokenRange": {
8604
+ "startIndex": 1,
8605
+ "endIndex": 3
8606
+ },
8607
+ "isStatic": false,
8608
+ "isProtected": false,
8609
+ "isAbstract": false
8610
+ },
8278
8611
  {
8279
8612
  "kind": "Method",
8280
8613
  "canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#compactSession:member(1)",
@@ -8492,6 +8825,67 @@
8492
8825
  "isAbstract": false,
8493
8826
  "name": "connectedCallback"
8494
8827
  },
8828
+ {
8829
+ "kind": "Property",
8830
+ "canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#contextBudget:member",
8831
+ "docComment": "/**\n * Context-headroom thresholds for the active model (GENC-1567) — the warning and block lines, plus the tail budget compaction aims at.\n *\n * The agent's own `contextReserve` is deliberately NOT folded in here. This is the AMBIENT budget, which protects any turn from any agent; a per-agent reserve is an additional, larger requirement checked when that agent takes ownership of a flow, where there is a turn context to resolve its function form against.\n *\n * Overhead is read off `messages` (the Redux mirror) rather than the driver's own history, which the compaction plan uses. That is safe rather than sloppy: `estimateSystemOverhead` only looks at messages BEFORE the first usage-bearing one, and the two lists agree completely that early — the drift between mirror and driver history is only ever at the tail.\n */\n",
8832
+ "excerptTokens": [
8833
+ {
8834
+ "kind": "Content",
8835
+ "text": "get contextBudget(): "
8836
+ },
8837
+ {
8838
+ "kind": "Reference",
8839
+ "text": "ResolvedContextBudget",
8840
+ "canonicalReference": "@genesislcap/ai-assistant!~ResolvedContextBudget:interface"
8841
+ },
8842
+ {
8843
+ "kind": "Content",
8844
+ "text": ";"
8845
+ }
8846
+ ],
8847
+ "isReadonly": true,
8848
+ "isOptional": false,
8849
+ "releaseTag": "Beta",
8850
+ "name": "contextBudget",
8851
+ "propertyTypeTokenRange": {
8852
+ "startIndex": 1,
8853
+ "endIndex": 2
8854
+ },
8855
+ "isStatic": false,
8856
+ "isProtected": false,
8857
+ "isAbstract": false
8858
+ },
8859
+ {
8860
+ "kind": "Property",
8861
+ "canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#contextGate:member",
8862
+ "docComment": "/**\n * How close this conversation is to the model's context window (GENC-1567).\n *\n * **Derived, never latched** — the opposite of {@link FoundationAiAssistant.blocked}. A budget wall stays set because nothing the user does fixes it; this clears itself the moment the conversation shrinks, which is precisely what the user is being asked to do. The two must not be conflated: `blocked` is also deliberately preserved across `resetSession`, and a context gate obviously must not survive starting a new chat.\n *\n * **A flow in progress is never blocked, only warned.** Machine state lives outside the transcript, so a stateful flow is not desynced by compaction — but the summary can still drop detail the flow's own prompt leans on, and blocking mid-journey would strand the user between a flow they cannot finish and a compaction that is a poor idea right there. Letting the flow complete and gating on the way out is the lesser harm; the headroom reserve exists so this is rare rather than routine.\n */\n",
8863
+ "excerptTokens": [
8864
+ {
8865
+ "kind": "Content",
8866
+ "text": "get contextGate(): "
8867
+ },
8868
+ {
8869
+ "kind": "Content",
8870
+ "text": "'ok' | 'warn' | 'blocked'"
8871
+ },
8872
+ {
8873
+ "kind": "Content",
8874
+ "text": ";"
8875
+ }
8876
+ ],
8877
+ "isReadonly": true,
8878
+ "isOptional": false,
8879
+ "releaseTag": "Beta",
8880
+ "name": "contextGate",
8881
+ "propertyTypeTokenRange": {
8882
+ "startIndex": 1,
8883
+ "endIndex": 2
8884
+ },
8885
+ "isStatic": false,
8886
+ "isProtected": false,
8887
+ "isAbstract": false
8888
+ },
8495
8889
  {
8496
8890
  "kind": "Property",
8497
8891
  "canonicalReference": "@genesislcap/ai-assistant!FoundationAiAssistant#contextLimit:member",
@@ -14841,11 +15235,20 @@
14841
15235
  {
14842
15236
  "kind": "Method",
14843
15237
  "canonicalReference": "@genesislcap/ai-assistant!OrchestratingDriver#canCompact:member(1)",
14844
- "docComment": "/**\n * Whether `compact()` would compact something right now — a summarizable run of older turns exists behind a clean boundary. The UI gates its \"Compact\" affordance on this, so the button reflects the exact history `compact()` acts on (GENC-1351). Optional — only history-owning drivers implement it.\n */\n",
15238
+ "docComment": "/**\n * Whether `compact()` would compact something right now. Convenience over {@link AiDriver.getCompactionPlan} — prefer the plan where the caller needs to say how much would be reclaimed. Optional — only history-owning drivers implement it.\n */\n",
14845
15239
  "excerptTokens": [
14846
15240
  {
14847
15241
  "kind": "Content",
14848
- "text": "canCompact(): "
15242
+ "text": "canCompact(options?: "
15243
+ },
15244
+ {
15245
+ "kind": "Reference",
15246
+ "text": "CompactionPlanOptions",
15247
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
15248
+ },
15249
+ {
15250
+ "kind": "Content",
15251
+ "text": "): "
14849
15252
  },
14850
15253
  {
14851
15254
  "kind": "Content",
@@ -14858,13 +15261,22 @@
14858
15261
  ],
14859
15262
  "isStatic": false,
14860
15263
  "returnTypeTokenRange": {
14861
- "startIndex": 1,
14862
- "endIndex": 2
15264
+ "startIndex": 3,
15265
+ "endIndex": 4
14863
15266
  },
14864
15267
  "releaseTag": "Beta",
14865
15268
  "isProtected": false,
14866
15269
  "overloadIndex": 1,
14867
- "parameters": [],
15270
+ "parameters": [
15271
+ {
15272
+ "parameterName": "options",
15273
+ "parameterTypeTokenRange": {
15274
+ "startIndex": 1,
15275
+ "endIndex": 2
15276
+ },
15277
+ "isOptional": true
15278
+ }
15279
+ ],
14868
15280
  "isOptional": false,
14869
15281
  "isAbstract": false,
14870
15282
  "name": "canCompact"
@@ -14872,11 +15284,20 @@
14872
15284
  {
14873
15285
  "kind": "Method",
14874
15286
  "canonicalReference": "@genesislcap/ai-assistant!OrchestratingDriver#compact:member(1)",
14875
- "docComment": "/**\n * Destructively compact older conversation turns into a single `compacted-summary` message (GENC-1351 §5.7), summarizing them via the default provider's one-shot `prompt()`. Atomic: history changes only on success. Resolves to the created summary message, or `null` when there is nothing worth compacting or the provider cannot summarize. Optional — only drivers that own history implement it.\n */\n",
15287
+ "docComment": "/**\n * Destructively compact older conversation turns into a single `compacted-summary` message (GENC-1351 §5.7), summarizing them via the default provider's one-shot `prompt()`. Atomic: history changes only on success. Resolves to the created summary message, or `null` when there is nothing worth compacting or the provider cannot summarize. Optional — only drivers that own history implement it.\n *\n * Pass the same `options` used for {@link AiDriver.getCompactionPlan} so the action does exactly what the affordance advertised.\n */\n",
14876
15288
  "excerptTokens": [
14877
15289
  {
14878
15290
  "kind": "Content",
14879
- "text": "compact(): "
15291
+ "text": "compact(options?: "
15292
+ },
15293
+ {
15294
+ "kind": "Reference",
15295
+ "text": "CompactionPlanOptions",
15296
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
15297
+ },
15298
+ {
15299
+ "kind": "Content",
15300
+ "text": "): "
14880
15301
  },
14881
15302
  {
14882
15303
  "kind": "Reference",
@@ -14903,13 +15324,22 @@
14903
15324
  ],
14904
15325
  "isStatic": false,
14905
15326
  "returnTypeTokenRange": {
14906
- "startIndex": 1,
14907
- "endIndex": 5
15327
+ "startIndex": 3,
15328
+ "endIndex": 7
14908
15329
  },
14909
15330
  "releaseTag": "Beta",
14910
15331
  "isProtected": false,
14911
15332
  "overloadIndex": 1,
14912
- "parameters": [],
15333
+ "parameters": [
15334
+ {
15335
+ "parameterName": "options",
15336
+ "parameterTypeTokenRange": {
15337
+ "startIndex": 1,
15338
+ "endIndex": 2
15339
+ },
15340
+ "isOptional": true
15341
+ }
15342
+ ],
14913
15343
  "isOptional": false,
14914
15344
  "isAbstract": false,
14915
15345
  "name": "compact"
@@ -15084,6 +15514,60 @@
15084
15514
  "isAbstract": false,
15085
15515
  "name": "getActiveProviderName"
15086
15516
  },
15517
+ {
15518
+ "kind": "Method",
15519
+ "canonicalReference": "@genesislcap/ai-assistant!OrchestratingDriver#getCompactionPlan:member(1)",
15520
+ "docComment": "/**\n * What compacting right now would cost and reclaim, without running the summarizer (GENC-1567) — or `null` when there is no safe cut, or the projected reclaim is not worth the call.\n *\n * The single source of truth for every compaction affordance: the menu's enabled state, its tooltip, the context gate's banner copy, and the action itself all read this, so none of them can promise a reclaim the action does not deliver. Optional — only history-owning drivers implement it.\n */\n",
15521
+ "excerptTokens": [
15522
+ {
15523
+ "kind": "Content",
15524
+ "text": "getCompactionPlan(options?: "
15525
+ },
15526
+ {
15527
+ "kind": "Reference",
15528
+ "text": "CompactionPlanOptions",
15529
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionPlanOptions:interface"
15530
+ },
15531
+ {
15532
+ "kind": "Content",
15533
+ "text": "): "
15534
+ },
15535
+ {
15536
+ "kind": "Reference",
15537
+ "text": "CompactionProjection",
15538
+ "canonicalReference": "@genesislcap/ai-assistant!~CompactionProjection:interface"
15539
+ },
15540
+ {
15541
+ "kind": "Content",
15542
+ "text": " | null"
15543
+ },
15544
+ {
15545
+ "kind": "Content",
15546
+ "text": ";"
15547
+ }
15548
+ ],
15549
+ "isStatic": false,
15550
+ "returnTypeTokenRange": {
15551
+ "startIndex": 3,
15552
+ "endIndex": 5
15553
+ },
15554
+ "releaseTag": "Beta",
15555
+ "isProtected": false,
15556
+ "overloadIndex": 1,
15557
+ "parameters": [
15558
+ {
15559
+ "parameterName": "options",
15560
+ "parameterTypeTokenRange": {
15561
+ "startIndex": 1,
15562
+ "endIndex": 2
15563
+ },
15564
+ "isOptional": true
15565
+ }
15566
+ ],
15567
+ "isOptional": false,
15568
+ "isAbstract": false,
15569
+ "name": "getCompactionPlan"
15570
+ },
15087
15571
  {
15088
15572
  "kind": "Method",
15089
15573
  "canonicalReference": "@genesislcap/ai-assistant!OrchestratingDriver#getExternalDiagnostics:member(1)",
@@ -15762,6 +16246,55 @@
15762
16246
  "isAbstract": false,
15763
16247
  "name": "sendMessage"
15764
16248
  },
16249
+ {
16250
+ "kind": "Method",
16251
+ "canonicalReference": "@genesislcap/ai-assistant!OrchestratingDriver#setContextGuard:member(1)",
16252
+ "docComment": "/**\n * Set the mid-loop context guard (GENC-1567). `undefined` disables it.\n *\n * Carries a margin rather than an absolute threshold: the window belongs to whichever provider the next call resolves to, which the driver learns during the call and the host cannot know until afterwards. The host owns the policy; the driver applies it against the model actually being addressed. Optional — only drivers that own a tool loop implement it.\n */\n",
16253
+ "excerptTokens": [
16254
+ {
16255
+ "kind": "Content",
16256
+ "text": "setContextGuard(policy?: "
16257
+ },
16258
+ {
16259
+ "kind": "Reference",
16260
+ "text": "ContextGuardPolicy",
16261
+ "canonicalReference": "@genesislcap/ai-assistant!ContextGuardPolicy:interface"
16262
+ },
16263
+ {
16264
+ "kind": "Content",
16265
+ "text": "): "
16266
+ },
16267
+ {
16268
+ "kind": "Content",
16269
+ "text": "void"
16270
+ },
16271
+ {
16272
+ "kind": "Content",
16273
+ "text": ";"
16274
+ }
16275
+ ],
16276
+ "isStatic": false,
16277
+ "returnTypeTokenRange": {
16278
+ "startIndex": 3,
16279
+ "endIndex": 4
16280
+ },
16281
+ "releaseTag": "Beta",
16282
+ "isProtected": false,
16283
+ "overloadIndex": 1,
16284
+ "parameters": [
16285
+ {
16286
+ "parameterName": "policy",
16287
+ "parameterTypeTokenRange": {
16288
+ "startIndex": 1,
16289
+ "endIndex": 2
16290
+ },
16291
+ "isOptional": true
16292
+ }
16293
+ ],
16294
+ "isOptional": false,
16295
+ "isAbstract": false,
16296
+ "name": "setContextGuard"
16297
+ },
15765
16298
  {
15766
16299
  "kind": "Method",
15767
16300
  "canonicalReference": "@genesislcap/ai-assistant!OrchestratingDriver#setFlowOwner:member(1)",