diff --git a/.gitattributes b/.gitattributes
index 041b7f4056..0a30339b0f 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,4 @@
*.md text eol=lf
*.mdx text eol=lf
-.github/workflows/*.lock.yml linguist-generated=true merge=binary
\ No newline at end of file
+.github/workflows/*.lock.yml linguist-generated=true merge=ours
\ No newline at end of file
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index e6aed90770..350120f89d 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -2,17 +2,18 @@
### 1. [Repository overview](#repository-overview)
### 2. [Writing an article](#writing-an-article)
### 3. [Topic structure](#topic-structure)
- ### 4. [Writing a Styling section for article](#styling-section)
- ### 5. [Workflow](#workflow)
- ### 6. [Environment variables and template tokens](#environment-variables)
- ### 7. [Sample / Code View Configuration](#code-view-configuration)
- ### 8. [PlatformBlock usage](#platform-block)
- ### 9. [ApiLink usage](#api-link)
- ### 10. [Checking MDX API Links](#checking-api-links)
- ### 11. [ApiLink registry workflow](#api-link-registry-workflow)
- ### 12. [Creating shared help topics](#creating-shared-help-topics)
- ### 13. [Updating of Data Visualization related topics](#updating-of-data-visualization-related-topics)
- ### 14. [Adding of images](#adding-of-images-in-the-topic)
+ ### 4. [LLM metadata](#llm-metadata)
+ ### 5. [Writing a Styling section for article](#styling-section)
+ ### 6. [Workflow](#workflow)
+ ### 7. [Environment variables and template tokens](#environment-variables)
+ ### 8. [Sample / Code View Configuration](#code-view-configuration)
+ ### 9. [PlatformBlock usage](#platform-block)
+ ### 10. [ApiLink usage](#api-link)
+ ### 11. [Checking MDX API Links](#checking-api-links)
+ ### 12. [ApiLink registry workflow](#api-link-registry-workflow)
+ ### 13. [Creating shared help topics](#creating-shared-help-topics)
+ ### 14. [Updating of Data Visualization related topics](#updating-of-data-visualization-related-topics)
+ ### 15. [Adding of images](#adding-of-images-in-the-topic)
# Repository overview
@@ -99,6 +100,35 @@ The purpose of this section is to present what the structure of the topic should
Minor titles related to the main titles can be used with `
`(`###`) or `
` (`####`).
Note: when `
` (`####`) is used the title won't appear on the submenu on the right.
+# LLM metadata
+
+Every English and Japanese topic frontmatter block must include an `llms.description`. The build uses this value for the page entry in `llms.txt`, where a model must decide which page to open without reading the full topic.
+
+```yaml
+description: Learn how to configure sorting in the Angular Grid.
+keywords: angular grid, sorting, multi-column sorting
+llms:
+ description: Configure single- and multi-column Grid sorting, sorting expressions, custom strategies, and runtime sort state in Ignite UI for Angular.
+```
+
+Keep `description` and `keywords` focused on reader-facing SEO. Write `llms.description` as a compact content summary that names the component or feature and the concrete tasks, concepts, or APIs covered by the page.
+
+- Use one meaningful sentence, between 40 and 300 characters for English or 20 and 300 characters for Japanese.
+- Describe the page's distinguishing content. Do not merely restate its title.
+- Prefer specific capabilities such as configuration, events, methods, data operations, styling, or troubleshooting.
+- Do not use calls to action such as "Try it now" or "Check out examples and demos".
+- Do not include HTML, Markdown links, or generic openings such as "This topic" and "In this example".
+- Shared xplat descriptions may use build tokens such as `{Platform}`, `{ProductName}`, and `{ComponentTitle}`.
+- When a file contains multiple conditional frontmatter blocks, add the metadata to every block.
+
+Run the read-only metadata validator before opening a pull request:
+
+```bash
+npm run check:llms-metadata
+```
+
+The validator checks English and Japanese author-owned sources for missing or empty values, length, mojibake, language mismatch, marketing boilerplate, markup, and common malformed text. It does not generate descriptions or replace editorial review for semantic accuracy.
+
# Writing a Styling section for article
The main purpose of the Styling section is to provide simple examples on how to style most common parts of the UI (let's say styling for alternate rows in the grid), copy/paste the code in any sample and see it working. In order to write content that fulfills the purpose, follow the steps below:
@@ -169,6 +199,7 @@ Example status workflows:
4. Code views are working as well
5. Each hyperlink is working properly.
6. Table of content is correct.
+7. `npm run check:llms-metadata` passes and the `llms.description` accurately distinguishes the topic.
> Note: Testing a PR from Angular Samples (when new sample is added) with combination of PR related to topic update (or when new topic is added).
Open both repositories and perform `npm start`. This will start both projects and you will see the embed sample in your topic under `localhost`.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 61670d2bae..b7ad13ed59 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -18,6 +18,7 @@ Closes #
- [ ] check if sample is working and fully visible in the topic
- [ ] check if sample is working and fully visible in the StackBlitz
- [ ] check if code blocks match the code in StackBlitz demo
+ - [ ] add or update meaningful `llms.description` metadata and run `npm run check:llms-metadata`
diff --git a/.github/aw/actions-lock.json b/.github/aw/actions-lock.json
index f3a6cbdec5..5c2cc22e2d 100644
--- a/.github/aw/actions-lock.json
+++ b/.github/aw/actions-lock.json
@@ -10,15 +10,15 @@
"version": "v9.0.0",
"sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
},
- "github/gh-aw-actions/setup-cli@v0.79.8": {
+ "github/gh-aw-actions/setup-cli@v0.80.9": {
"repo": "github/gh-aw-actions/setup-cli",
- "version": "v0.79.8",
- "sha": "c0338fef4749d08c21f8f975fb0e37efa17dda47"
+ "version": "v0.80.9",
+ "sha": "8c7d04ebf1ece56cd381446125da3e0f6896294a"
},
- "github/gh-aw-actions/setup@v0.79.8": {
+ "github/gh-aw-actions/setup@v0.80.9": {
"repo": "github/gh-aw-actions/setup",
- "version": "v0.79.8",
- "sha": "c0338fef4749d08c21f8f975fb0e37efa17dda47"
+ "version": "v0.80.9",
+ "sha": "8c7d04ebf1ece56cd381446125da3e0f6896294a"
}
}
}
diff --git a/.github/workflows/agentics-maintenance.yml b/.github/workflows/agentics-maintenance.yml
index dfd2eaf277..94f4fc4932 100644
--- a/.github/workflows/agentics-maintenance.yml
+++ b/.github/workflows/agentics-maintenance.yml
@@ -1,4 +1,4 @@
-# This file was automatically generated by pkg/workflow/maintenance_workflow.go (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
+# This file was automatically generated by pkg/workflow/maintenance_workflow.go (v0.80.9). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
# ___ _ _
# / _ \ | | (_)
@@ -21,15 +21,17 @@
#
# For more information: https://github.github.com/gh-aw/introduction/overview/
#
-# Alternative regeneration methods:
-# make recompile
+# This file defines the generated agentic maintenance workflow for this repository.
+# It runs scheduled cleanup for expiring safe outputs and supports manual maintenance operations.
#
-# Or use the gh-aw CLI directly:
-# ./gh-aw compile --validate --verbose
+# This workflow is generated automatically when workflows use expiring safe outputs
+# or when repository maintenance features are enabled in .github/workflows/aw.json.
#
-# The workflow is generated when any workflow uses the 'expires' field
-# in create-discussions, create-issues, or create-pull-request safe-outputs configuration.
-# Schedule frequency is automatically determined by the shortest expiration time.
+# To disable maintenance workflow generation, set in .github/workflows/aw.json:
+# {"maintenance": false}
+#
+# Agentic maintenance docs:
+# https://github.github.com/gh-aw/reference/ephemerals/#manual-maintenance-operations
#
name: Agentic Maintenance
@@ -94,7 +96,7 @@ jobs:
pull-requests: write
steps:
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -132,7 +134,7 @@ jobs:
actions: write
steps:
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -156,12 +158,12 @@ jobs:
operation: ${{ steps.record.outputs.operation }}
steps:
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -176,9 +178,9 @@ jobs:
await main();
- name: Install gh-aw
- uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
- version: v0.79.8
+ version: v0.80.9
- name: Run operation
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
@@ -196,7 +198,9 @@ jobs:
- name: Record outputs
id: record
- run: echo "operation=${{ inputs.operation }}" >> "$GITHUB_OUTPUT"
+ env:
+ GH_AW_OPERATION: ${{ inputs.operation }}
+ run: echo "operation=$GH_AW_OPERATION" >> "$GITHUB_OUTPUT"
update_pull_request_branches:
if: ${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call') && inputs.operation == 'update_pull_request_branches' && (!(github.event.repository.fork)) }}
@@ -206,7 +210,7 @@ jobs:
pull-requests: write
steps:
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -245,14 +249,14 @@ jobs:
run_url: ${{ steps.record.outputs.run_url }}
steps:
- name: Checkout actions folder
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
sparse-checkout: |
actions
persist-credentials: false
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -281,7 +285,9 @@ jobs:
- name: Record outputs
id: record
- run: echo "run_url=${{ inputs.run_url }}" >> "$GITHUB_OUTPUT"
+ env:
+ GH_AW_RUN_URL: ${{ inputs.run_url }}
+ run: echo "run_url=$GH_AW_RUN_URL" >> "$GITHUB_OUTPUT"
create_labels:
if: ${{ (github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call') && inputs.operation == 'create_labels' && (!(github.event.repository.fork)) }}
@@ -291,12 +297,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -311,9 +317,9 @@ jobs:
await main();
- name: Install gh-aw
- uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
- version: v0.79.8
+ version: v0.80.9
- name: Create missing labels
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
@@ -337,12 +343,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -357,9 +363,9 @@ jobs:
await main();
- name: Install gh-aw
- uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
- version: v0.79.8
+ version: v0.80.9
- name: Restore activity report logs cache
id: activity_report_logs_cache
@@ -380,10 +386,10 @@ jobs:
${GH_AW_CMD_PREFIX} logs \
--repo "${{ github.repository }}" \
--start-date -1w \
- --count 100 \
+ --count 500 \
--output ./.cache/gh-aw/activity-report-logs \
--format markdown \
- > ./.cache/gh-aw/activity-report-logs/report.md
+ --report-file ./.cache/gh-aw/activity-report-logs/report.md
- name: Save activity report logs cache
if: ${{ always() }}
@@ -442,12 +448,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -462,9 +468,9 @@ jobs:
await main();
- name: Install gh-aw
- uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
- version: v0.79.8
+ version: v0.80.9
- name: Restore forecast report logs cache
id: forecast_report_logs_cache
@@ -539,7 +545,7 @@ jobs:
issues: write
steps:
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -571,12 +577,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Scripts
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
@@ -591,9 +597,9 @@ jobs:
await main();
- name: Install gh-aw
- uses: github/gh-aw-actions/setup-cli@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup-cli@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
- version: v0.79.8
+ version: v0.80.9
- name: Validate workflows and file issue on findings
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 41ecffdcc6..ad81c2c64b 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -11,8 +11,22 @@ on:
- 'docs/**/*.md'
- '.markdownlint.json'
- 'cspell.json'
+ - 'scripts/check-llms-metadata.mjs'
+ - 'package.json'
jobs:
+ llms-metadata:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 24
+
+ - name: Validate llms.txt metadata
+ run: npm run check:llms-metadata
+
markdown-lint:
runs-on: ubuntu-latest
steps:
@@ -22,7 +36,7 @@ jobs:
- uses: actions/setup-node@v4
with:
- node-version: 22
+ node-version: 24
cache: 'npm'
- run: npm ci
@@ -61,7 +75,7 @@ jobs:
- uses: actions/setup-node@v4
with:
- node-version: 22
+ node-version: 24
cache: 'npm'
- run: npm ci
diff --git a/.github/workflows/sync-jp-docs-angular.lock.yml b/.github/workflows/sync-jp-docs-angular.lock.yml
index 42883a9200..c41596c78b 100644
--- a/.github/workflows/sync-jp-docs-angular.lock.yml
+++ b/.github/workflows/sync-jp-docs-angular.lock.yml
@@ -1,6 +1,6 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"3d5f0dacbdf6a09d9eb9a70984cecad606753a548e4c07519293fe69c33b0b8f","body_hash":"5e2884f1e3382bd59b802355c6144167c881d4f560c0276594d4ee18cf35ced1","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
-# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
-# This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"3d5f0dacbdf6a09d9eb9a70984cecad606753a548e4c07519293fe69c33b0b8f","body_hash":"1752465b42275ea9ec5301dd3a5b9cd0de772e35c435c62e61924cbc83925732","compiler_version":"v0.80.9","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.63"}}
+# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"8c7d04ebf1ece56cd381446125da3e0f6896294a","version":"v0.80.9"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.7","digest":"sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7","digest":"sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.7","digest":"sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.27","digest":"sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.27@sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.4.0","digest":"sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036","pinned_image":"ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036"}]}
+# This file was automatically generated by gh-aw (v0.80.9). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
# ___ _ _
# / _ \ | | (_)
@@ -33,20 +33,23 @@
# - GITHUB_TOKEN
#
# Custom actions used:
-# - actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+# - actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+# - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+# - actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
# - actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
# - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
# - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
-# - github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+# - github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
#
# Container images used:
-# - ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6
-# - ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4
-# - ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591
-# - ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa
-# - ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c
+# - ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c
+# - ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6
+# - ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96
+# - ghcr.io/github/gh-aw-mcpg:v0.3.27@sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7
+# - ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b
+# - ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036
name: "Sync Japanese Documentation (Angular)"
on:
@@ -97,7 +100,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -107,8 +110,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-angular.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Generate agentic run info
id: generate_aw_info
@@ -116,16 +119,16 @@ jobs:
GH_AW_INFO_ENGINE_ID: "copilot"
GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI"
GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || vars.GH_AW_DEFAULT_MODEL_COPILOT || 'claude-sonnet-4.6' }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AGENT_VERSION: "1.0.60"
- GH_AW_INFO_CLI_VERSION: "v0.79.8"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AGENT_VERSION: "1.0.63"
+ GH_AW_INFO_CLI_VERSION: "v0.80.9"
GH_AW_INFO_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_INFO_EXPERIMENTAL: "false"
GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true"
GH_AW_INFO_STAGED: "false"
GH_AW_INFO_ALLOWED_DOMAINS: '["defaults"]'
GH_AW_INFO_FIREWALL_ENABLED: "true"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_AWMG_VERSION: ""
GH_AW_INFO_FIREWALL_TYPE: "squid"
GH_AW_COMPILED_STRICT: "true"
@@ -136,6 +139,30 @@ jobs:
setupGlobals(core, github, context, exec, io, getOctokit);
const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_aw_info.cjs');
await main(core, context);
+ - name: Restore daily AIC usage cache
+ id: restore-daily-aic-cache
+ if: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
+ continue-on-error: true
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+ with:
+ key: agentic-workflow-usage-syncjpdocsangular-${{ github.run_id }}
+ restore-keys: agentic-workflow-usage-syncjpdocsangular-
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ - name: Restore daily AIC usage cache (artifact fallback)
+ id: restore-daily-aic-cache-fallback
+ if: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_RESTORE_DAILY_AIC_CACHE_HIT: ${{ steps.restore-daily-aic-cache.outputs.cache-hit }}
+ GH_AW_RESTORE_DAILY_AIC_CACHE_MATCHED_KEY: ${{ steps.restore-daily-aic-cache.outputs.cache-matched-key }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/restore_aic_usage_cache_fallback.cjs');
+ await main();
- name: Check daily workflow token guardrail
id: daily-effective-workflow-guardrail
if: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
@@ -145,6 +172,8 @@ jobs:
GH_AW_WORKFLOW_ID: "sync-jp-docs-angular"
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GH_AW_WORKFLOW_DISPATCH_AW_CONTEXT: ${{ github.event.inputs.aw_context || '' }}
+ GH_AW_HAS_SLASH_COMMAND: "false"
+ GH_AW_HAS_LABEL_COMMAND: "false"
GH_AW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_AW_MAX_DAILY_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_MAX_DAILY_AI_CREDITS || '5000' }}
with:
@@ -160,7 +189,7 @@ jobs:
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
- name: Checkout .github and .agents folders
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
sparse-checkout: |
@@ -196,7 +225,7 @@ jobs:
- name: Check compile-agentic version
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
env:
- GH_AW_COMPILED_VERSION: "v0.79.8"
+ GH_AW_COMPILED_VERSION: "v0.80.9"
with:
script: |
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
@@ -219,23 +248,23 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_a7bd7232856bbab2_EOF'
+ cat << 'GH_AW_PROMPT_be9ff8cc0bb668a4_EOF'
- GH_AW_PROMPT_a7bd7232856bbab2_EOF
+ GH_AW_PROMPT_be9ff8cc0bb668a4_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_a7bd7232856bbab2_EOF'
+ cat << 'GH_AW_PROMPT_be9ff8cc0bb668a4_EOF'
Tools: create_pull_request, missing_tool, missing_data, noop
- GH_AW_PROMPT_a7bd7232856bbab2_EOF
+ GH_AW_PROMPT_be9ff8cc0bb668a4_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md"
- cat << 'GH_AW_PROMPT_a7bd7232856bbab2_EOF'
+ cat << 'GH_AW_PROMPT_be9ff8cc0bb668a4_EOF'
- GH_AW_PROMPT_a7bd7232856bbab2_EOF
+ GH_AW_PROMPT_be9ff8cc0bb668a4_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
- cat << 'GH_AW_PROMPT_a7bd7232856bbab2_EOF'
+ cat << 'GH_AW_PROMPT_be9ff8cc0bb668a4_EOF'
The following GitHub context information is available for this workflow:
{{#if github.actor}}
@@ -264,12 +293,12 @@ jobs:
{{/if}}
- GH_AW_PROMPT_a7bd7232856bbab2_EOF
+ GH_AW_PROMPT_be9ff8cc0bb668a4_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_a7bd7232856bbab2_EOF'
+ cat << 'GH_AW_PROMPT_be9ff8cc0bb668a4_EOF'
{{#runtime-import .github/workflows/sync-jp-docs-angular.md}}
- GH_AW_PROMPT_a7bd7232856bbab2_EOF
+ GH_AW_PROMPT_be9ff8cc0bb668a4_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
@@ -383,7 +412,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -392,8 +421,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-angular.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Set runtime paths
id: set-runtime-paths
@@ -404,7 +433,7 @@ jobs:
echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json"
} >> "$GITHUB_OUTPUT"
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Create gh-aw temp directory
@@ -415,17 +444,10 @@ jobs:
GH_TOKEN: ${{ github.token }}
- name: Configure Git credentials
env:
- REPO_NAME: ${{ github.repository }}
- SERVER_URL: ${{ github.server_url }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_TOKEN: ${{ github.token }}
- run: |
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- git config --global am.keepcr true
- # Re-authenticate git with GitHub token
- SERVER_URL_STRIPPED="${SERVER_URL#https://}"
- git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
- echo "Git configured with standard GitHub Actions identity"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_git_credentials.sh"
- name: Checkout PR branch
id: checkout-pr
if: |
@@ -441,11 +463,11 @@ jobs:
const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs');
await main();
- name: Install GitHub Copilot CLI
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.60
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.63
env:
GH_HOST: github.com
- name: Install AWF binary
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.2
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.7
- name: Determine automatic lockdown mode for GitHub MCP Server
id: determine-automatic-lockdown
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -477,15 +499,15 @@ jobs:
GH_AW_SKILL_DIR: ".github/skills"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_inline_skills.sh"
- name: Download container images
- run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6 ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4 ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591 ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6 ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96 ghcr.io/github/gh-aw-mcpg:v0.3.27@sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7 ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036
- name: Generate Safe Outputs Config
run: |
mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
mkdir -p /tmp/gh-aw/safeoutputs
mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
- cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_91759732740d0920_EOF'
- {"create_pull_request":{"base_branch":"vnext","draft":false,"if_no_changes":"ignore","labels":["translation","japanese","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"protected_files_policy":"request_review","title_prefix":"[jp-sync] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
- GH_AW_SAFE_OUTPUTS_CONFIG_91759732740d0920_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_7e98029480883c79_EOF'
+ {"create_pull_request":{"base_branch":"vnext","draft":false,"if_no_changes":"ignore","labels":["translation","japanese","automation"],"max":1,"max_patch_files":100,"max_patch_size":4096,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"protected_files_policy":"request_review","title_prefix":"[jp-sync] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
+ GH_AW_SAFE_OUTPUTS_CONFIG_7e98029480883c79_EOF
- name: Generate Safe Outputs Tools
env:
GH_AW_TOOLS_META_JSON: |
@@ -620,55 +642,16 @@ jobs:
setupGlobals(core, github, context, exec, io, getOctokit);
const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_safe_outputs_tools.cjs');
await main();
- - name: Generate Safe Outputs MCP Server Config
- id: safe-outputs-config
- run: |
- # Generate a secure random API key (360 bits of entropy, 40+ chars)
- # Mask immediately to prevent timing vulnerabilities
- API_KEY=$(openssl rand -base64 45 | tr -d '/+=')
- echo "::add-mask::${API_KEY}"
-
- PORT=3001
-
- # Set outputs for next steps
- {
- echo "safe_outputs_api_key=${API_KEY}"
- echo "safe_outputs_port=${PORT}"
- } >> "$GITHUB_OUTPUT"
-
- echo "Safe Outputs MCP server will run on port ${PORT}"
-
- - name: Start Safe Outputs MCP HTTP Server
- id: safe-outputs-start
- env:
- DEBUG: '*'
- GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
- GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-config.outputs.safe_outputs_port }}
- GH_AW_SAFE_OUTPUTS_API_KEY: ${{ steps.safe-outputs-config.outputs.safe_outputs_api_key }}
- GH_AW_SAFE_OUTPUTS_TOOLS_PATH: ${{ runner.temp }}/gh-aw/safeoutputs/tools.json
- GH_AW_SAFE_OUTPUTS_CONFIG_PATH: ${{ runner.temp }}/gh-aw/safeoutputs/config.json
- GH_AW_MCP_LOG_DIR: /tmp/gh-aw/mcp-logs/safeoutputs
- run: |
- # Environment variables are set above to prevent template injection
- export DEBUG
- export GH_AW_SAFE_OUTPUTS
- export GH_AW_SAFE_OUTPUTS_PORT
- export GH_AW_SAFE_OUTPUTS_API_KEY
- export GH_AW_SAFE_OUTPUTS_TOOLS_PATH
- export GH_AW_SAFE_OUTPUTS_CONFIG_PATH
- export GH_AW_MCP_LOG_DIR
-
- bash "${RUNNER_TEMP}/gh-aw/actions/start_safe_outputs_server.sh"
-
- name: Start MCP Gateway
id: start-mcp-gateway
env:
GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
- GH_AW_SAFE_OUTPUTS_API_KEY: ${{ steps.safe-outputs-start.outputs.api_key }}
- GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-start.outputs.port }}
+ GH_AW_SAFE_OUTPUTS_CONFIG_PATH: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS_CONFIG_PATH }}
+ GH_AW_SAFE_OUTPUTS_TOOLS_PATH: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS_TOOLS_PATH }}
GITHUB_MCP_GUARD_MIN_INTEGRITY: ${{ steps.determine-automatic-lockdown.outputs.min_integrity }}
GITHUB_MCP_GUARD_REPOS: ${{ steps.determine-automatic-lockdown.outputs.repos }}
GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -eo pipefail
mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-config"
@@ -694,16 +677,16 @@ jobs:
* ) DOCKER_SOCK_PATH=/var/run/docker.sock ;;
esac
DOCKER_SOCK_GID=$(stat -c '%g' "$DOCKER_SOCK_PATH" 2>/dev/null || echo '0')
- export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v '"${DOCKER_SOCK_PATH}"':/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DOCKER_HOST=unix:///var/run/docker.sock -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.25'
+ export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --name awmg-mcpg --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v '"${DOCKER_SOCK_PATH}"':/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DOCKER_HOST=unix:///var/run/docker.sock -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e RUNNER_TEMP -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw -v '"${RUNNER_TEMP}"'/gh-aw/safeoutputs:'"${RUNNER_TEMP}"'/gh-aw/safeoutputs:rw ghcr.io/github/gh-aw-mcpg:v0.3.27'
mkdir -p "$HOME/.copilot"
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_c6fee03c27b97257_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_c70c556baaebe8bb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
"github": {
"type": "stdio",
- "container": "ghcr.io/github/github-mcp-server:v1.1.2",
+ "container": "ghcr.io/github/github-mcp-server:v1.4.0",
"env": {
"GITHUB_HOST": "\${GITHUB_SERVER_URL}",
"GITHUB_PERSONAL_ACCESS_TOKEN": "\${GITHUB_MCP_SERVER_TOKEN}",
@@ -718,10 +701,26 @@ jobs:
}
},
"safeoutputs": {
- "type": "http",
- "url": "http://host.docker.internal:$GH_AW_SAFE_OUTPUTS_PORT",
- "headers": {
- "Authorization": "\${GH_AW_SAFE_OUTPUTS_API_KEY}"
+ "type": "stdio",
+ "container": "ghcr.io/github/gh-aw-node",
+ "mounts": ["\${GITHUB_WORKSPACE}:\${GITHUB_WORKSPACE}:rw", "${RUNNER_TEMP}/gh-aw/safeoutputs:${RUNNER_TEMP}/gh-aw/safeoutputs:rw", "/tmp/gh-aw:/tmp/gh-aw:rw"],
+ "args": ["-w", "\${GITHUB_WORKSPACE}"],
+ "entrypoint": "sh",
+ "entrypointArgs": ["-c", "sh ${RUNNER_TEMP}/gh-aw/safeoutputs/start_safe_outputs_mcp.sh"],
+ "env": {
+ "DEBUG": "*",
+ "DEFAULT_BRANCH": "\${DEFAULT_BRANCH}",
+ "GH_AW_ASSETS_ALLOWED_EXTS": "\${GH_AW_ASSETS_ALLOWED_EXTS}",
+ "GH_AW_ASSETS_BRANCH": "\${GH_AW_ASSETS_BRANCH}",
+ "GH_AW_ASSETS_MAX_SIZE_KB": "\${GH_AW_ASSETS_MAX_SIZE_KB}",
+ "GH_AW_MCP_LOG_DIR": "\${GH_AW_MCP_LOG_DIR}",
+ "GH_AW_SAFE_OUTPUTS": "\${GH_AW_SAFE_OUTPUTS}",
+ "GH_AW_SAFE_OUTPUTS_CONFIG_PATH": "\${GH_AW_SAFE_OUTPUTS_CONFIG_PATH}",
+ "GH_AW_SAFE_OUTPUTS_TOOLS_PATH": "\${GH_AW_SAFE_OUTPUTS_TOOLS_PATH}",
+ "GITHUB_REPOSITORY": "\${GITHUB_REPOSITORY}",
+ "GITHUB_TOKEN": "\${GITHUB_TOKEN}",
+ "GITHUB_WORKSPACE": "\${GITHUB_WORKSPACE}",
+ "RUNNER_TEMP": "\${RUNNER_TEMP}"
},
"guard-policies": {
"write-sink": {
@@ -739,7 +738,7 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_c6fee03c27b97257_EOF
+ GH_AW_MCP_CONFIG_c70c556baaebe8bb_EOF
- name: Mount MCP servers as CLIs
id: mount-mcp-clis
continue-on-error: true
@@ -808,38 +807,54 @@ jobs:
export GH_AW_NODE_BIN
export COPILOT_API_KEY="$COPILOT_DUMMY_BYOK"
(umask 177 && touch /tmp/gh-aw/agent-stdio.log)
- GH_AW_MAX_AI_CREDITS="${{ vars.GH_AW_DEFAULT_MAX_AI_CREDITS || '1000' }}"
- printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.2/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"api.snapcraft.io\",\"archive.ubuntu.com\",\"azure.archive.ubuntu.com\",\"crl.geotrust.com\",\"crl.globalsign.com\",\"crl.identrust.com\",\"crl.sectigo.com\",\"crl.thawte.com\",\"crl.usertrust.com\",\"crl.verisign.com\",\"crl3.digicert.com\",\"crl4.digicert.com\",\"crls.ssl.com\",\"github.com\",\"host.docker.internal\",\"json-schema.org\",\"json.schemastore.org\",\"keyserver.ubuntu.com\",\"ocsp.digicert.com\",\"ocsp.geotrust.com\",\"ocsp.globalsign.com\",\"ocsp.identrust.com\",\"ocsp.sectigo.com\",\"ocsp.ssl.com\",\"ocsp.thawte.com\",\"ocsp.usertrust.com\",\"ocsp.verisign.com\",\"packagecloud.io\",\"packages.cloud.google.com\",\"packages.microsoft.com\",\"ppa.launchpad.net\",\"raw.githubusercontent.com\",\"registry.npmjs.org\",\"s.symcb.com\",\"s.symcd.com\",\"security.ubuntu.com\",\"telemetry.enterprise.githubcopilot.com\",\"ts-crl.ws.symantec.com\",\"ts-ocsp.ws.symantec.com\",\"www.googleapis.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"models\":{\"agent\":[\"sonnet-6x\",\"gpt-5.4\",\"gpt-5.3\",\"gemini-pro\",\"any\"],\"antigravity\":[\"copilot/antigravity*\",\"google/antigravity*\",\"gemini/antigravity*\"],\"any\":[\"copilot/*\",\"anthropic/*\",\"openai/*\",\"google/*\",\"gemini/*\"],\"claude\":[\"agent\"],\"codex\":[\"agent\"],\"coding\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\",\"gpt-5-codex\"],\"computer-use\":[\"copilot/*computer-use*\",\"google/*computer-use*\",\"gemini/*computer-use*\",\"openai/*computer-use*\"],\"copilot\":[\"agent\"],\"deep-research\":[\"copilot/deep-research*\",\"copilot/o3-deep-research*\",\"copilot/o4-mini-deep-research*\",\"google/deep-research*\",\"gemini/deep-research*\",\"openai/o3-deep-research*\",\"openai/o4-mini-deep-research*\"],\"gemini\":[\"agent\"],\"gemini-3-flash\":[\"copilot/gemini-3*flash*\",\"google/gemini-3*flash*\",\"gemini/gemini-3*flash*\"],\"gemini-3-pro\":[\"copilot/gemini-3*pro*\",\"google/gemini-3*pro*\",\"google/nano-banana*\",\"gemini/gemini-3*pro*\"],\"gemini-3.1-flash\":[\"copilot/gemini-3.1*flash*\",\"google/gemini-3.1*flash*\",\"gemini/gemini-3.1*flash*\"],\"gemini-3.1-pro\":[\"copilot/gemini-3.1*pro*\",\"google/gemini-3.1*pro*\",\"gemini/gemini-3.1*pro*\"],\"gemini-3.5-flash\":[\"copilot/gemini-3.5*flash*\",\"google/gemini-3.5*flash*\",\"gemini/gemini-3.5*flash*\"],\"gemini-flash\":[\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"],\"gemini-flash-lite\":[\"copilot/gemini-*flash*lite*\",\"google/gemini-*flash*lite*\",\"gemini/gemini-*flash*lite*\"],\"gemini-pro\":[\"copilot/gemini-*pro*\",\"google/gemini-*pro*\",\"gemini/gemini-*pro*\"],\"gemma\":[\"copilot/gemma*\",\"google/gemma*\",\"gemini/gemma*\"],\"gpt-5\":[\"copilot/gpt-5*\",\"openai/gpt-5*\"],\"gpt-5-codex\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\"],\"gpt-5-mini\":[\"copilot/gpt-5*mini*\",\"openai/gpt-5*mini*\"],\"gpt-5-nano\":[\"copilot/gpt-5*nano*\",\"openai/gpt-5*nano*\"],\"gpt-5-pro\":[\"copilot/gpt-5*pro*\",\"openai/gpt-5*pro*\"],\"gpt-5.2\":[\"copilot/gpt-5.2*\",\"openai/gpt-5.2*\"],\"gpt-5.3\":[\"copilot/gpt-5.3*\",\"openai/gpt-5.3*\"],\"gpt-5.4\":[\"copilot/gpt-5.4*\",\"openai/gpt-5.4*\"],\"gpt-5.5\":[\"copilot/gpt-5.5*\",\"openai/gpt-5.5*\"],\"haiku\":[\"copilot/*haiku*\",\"anthropic/*haiku*\"],\"large\":[\"sonnet\",\"gpt-5-pro\",\"gpt-5\",\"gemini-pro\"],\"mai-code\":[\"copilot/MAI-Code*\",\"copilot/mai-code*\",\"openai/MAI-Code*\"],\"mini\":[\"haiku\",\"gpt-5-mini\",\"gpt-5-nano\",\"gemini-flash-lite\"],\"nano-banana\":[\"copilot/nano-banana*\",\"google/nano-banana*\",\"gemini/nano-banana*\"],\"opus\":[\"copilot/*opus*\",\"anthropic/*opus*\"],\"opusplan\":[\"opus?effort=high\"],\"reasoning\":[\"copilot/o1*\",\"copilot/o3*\",\"copilot/o4*\",\"openai/o1*\",\"openai/o3*\",\"openai/o4*\"],\"robotics\":[\"copilot/*robotics*\",\"google/*robotics*\",\"gemini/*robotics*\"],\"small\":[\"mini\"],\"small-agent\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash\"],\"sonnet\":[\"copilot/*sonnet*\",\"anthropic/*sonnet*\"],\"sonnet-6x\":[\"copilot/*sonnet-4.5*\",\"copilot/*sonnet-4.6*\",\"copilot/*sonnet-4-5-*\",\"anthropic/*sonnet-4-5-*\",\"copilot/*sonnet-4-6*\",\"anthropic/*sonnet-4-6*\"],\"summarization\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash-lite\",\"mini\"],\"vision\":[\"copilot/gemini-*image*\",\"gemini/gemini-*image*\",\"copilot/gemini-*flash*\",\"gemini/gemini-*flash*\"]}},\"container\":{\"imageTag\":\"0.27.2,squid=sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591,agent=sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6,api-proxy=sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4,cli-proxy=sha256:02f3ec08f32dc26c5427920c6a2e2f3036238fce44802f2f11ef49ed8621b5d0\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
+ GH_AW_MAX_AI_CREDITS="${GH_AW_MAX_AI_CREDITS:-1000}"
+ printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.7/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"api.snapcraft.io\",\"archive.ubuntu.com\",\"azure.archive.ubuntu.com\",\"crl.geotrust.com\",\"crl.globalsign.com\",\"crl.identrust.com\",\"crl.sectigo.com\",\"crl.thawte.com\",\"crl.usertrust.com\",\"crl.verisign.com\",\"crl3.digicert.com\",\"crl4.digicert.com\",\"crls.ssl.com\",\"github.com\",\"host.docker.internal\",\"json-schema.org\",\"json.schemastore.org\",\"keyserver.ubuntu.com\",\"ocsp.digicert.com\",\"ocsp.geotrust.com\",\"ocsp.globalsign.com\",\"ocsp.identrust.com\",\"ocsp.sectigo.com\",\"ocsp.ssl.com\",\"ocsp.thawte.com\",\"ocsp.usertrust.com\",\"ocsp.verisign.com\",\"packagecloud.io\",\"packages.cloud.google.com\",\"packages.microsoft.com\",\"ppa.launchpad.net\",\"raw.githubusercontent.com\",\"registry.npmjs.org\",\"s.symcb.com\",\"s.symcd.com\",\"security.ubuntu.com\",\"telemetry.enterprise.githubcopilot.com\",\"ts-crl.ws.symantec.com\",\"ts-ocsp.ws.symantec.com\",\"www.googleapis.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"maxCacheMisses\":5,\"models\":{\"agent\":[\"sonnet-6x\",\"gpt-5.5\",\"gpt-5.4\",\"gpt-5.3\",\"gemini-pro\",\"any\"],\"antigravity\":[\"copilot/antigravity*\",\"google/antigravity*\",\"gemini/antigravity*\"],\"any\":[\"copilot/*\",\"anthropic/*\",\"openai/*\",\"google/*\",\"gemini/*\"],\"claude\":[\"agent\"],\"codex\":[\"agent\"],\"coding\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\",\"gpt-5-codex\"],\"computer-use\":[\"copilot/*computer-use*\",\"google/*computer-use*\",\"gemini/*computer-use*\",\"openai/*computer-use*\"],\"copilot\":[\"agent\"],\"deep-research\":[\"copilot/deep-research*\",\"copilot/o3-deep-research*\",\"copilot/o4-mini-deep-research*\",\"google/deep-research*\",\"gemini/deep-research*\",\"openai/o3-deep-research*\",\"openai/o4-mini-deep-research*\"],\"gemini\":[\"agent\"],\"gemini-3-flash\":[\"copilot/gemini-3*flash*\",\"google/gemini-3*flash*\",\"gemini/gemini-3*flash*\"],\"gemini-3-pro\":[\"copilot/gemini-3*pro*\",\"google/gemini-3*pro*\",\"google/nano-banana*\",\"gemini/gemini-3*pro*\"],\"gemini-3.1-flash\":[\"copilot/gemini-3.1*flash*\",\"google/gemini-3.1*flash*\",\"gemini/gemini-3.1*flash*\"],\"gemini-3.1-pro\":[\"copilot/gemini-3.1*pro*\",\"google/gemini-3.1*pro*\",\"gemini/gemini-3.1*pro*\"],\"gemini-3.5-flash\":[\"copilot/gemini-3.5*flash*\",\"google/gemini-3.5*flash*\",\"gemini/gemini-3.5*flash*\"],\"gemini-flash\":[\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"],\"gemini-flash-lite\":[\"copilot/gemini-*flash*lite*\",\"google/gemini-*flash*lite*\",\"gemini/gemini-*flash*lite*\"],\"gemini-pro\":[\"copilot/gemini-*pro*\",\"google/gemini-*pro*\",\"gemini/gemini-*pro*\"],\"gemma\":[\"copilot/gemma*\",\"google/gemma*\",\"gemini/gemma*\"],\"gpt-5\":[\"copilot/gpt-5*\",\"openai/gpt-5*\"],\"gpt-5-codex\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\"],\"gpt-5-mini\":[\"copilot/gpt-5*mini*\",\"openai/gpt-5*mini*\"],\"gpt-5-nano\":[\"copilot/gpt-5*nano*\",\"openai/gpt-5*nano*\"],\"gpt-5-pro\":[\"copilot/gpt-5*pro*\",\"openai/gpt-5*pro*\"],\"gpt-5.1\":[\"copilot/gpt-5.1*\",\"openai/gpt-5.1*\"],\"gpt-5.2\":[\"copilot/gpt-5.2*\",\"openai/gpt-5.2*\"],\"gpt-5.3\":[\"copilot/gpt-5.3*\",\"openai/gpt-5.3*\"],\"gpt-5.4\":[\"copilot/gpt-5.4*\",\"openai/gpt-5.4*\"],\"gpt-5.5\":[\"copilot/gpt-5.5*\",\"openai/gpt-5.5*\"],\"haiku\":[\"copilot/*haiku*\",\"anthropic/*haiku*\"],\"image-generation\":[\"copilot/gpt-image*\",\"openai/gpt-image*\",\"openai/chatgpt-image*\",\"copilot/gemini-*image*\",\"google/gemini-*image*\",\"gemini/gemini-*image*\",\"google/imagen*\"],\"large\":[\"sonnet\",\"gpt-5-pro\",\"gpt-5\",\"gemini-pro\"],\"mai-code\":[\"copilot/MAI-Code*\",\"copilot/mai-code*\",\"openai/MAI-Code*\"],\"mini\":[\"haiku\",\"gpt-5-mini\",\"gpt-5-nano\",\"gemini-flash-lite\"],\"nano-banana\":[\"copilot/nano-banana*\",\"google/nano-banana*\",\"gemini/nano-banana*\"],\"opus\":[\"copilot/*opus*\",\"anthropic/*opus*\"],\"opusplan\":[\"opus?effort=high\"],\"reasoning\":[\"copilot/o1*\",\"copilot/o3*\",\"copilot/o4*\",\"openai/o1*\",\"openai/o3*\",\"openai/o4*\"],\"robotics\":[\"copilot/*robotics*\",\"google/*robotics*\",\"gemini/*robotics*\"],\"small\":[\"mini\"],\"small-agent\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash\"],\"sonnet\":[\"copilot/*sonnet*\",\"anthropic/*sonnet*\"],\"sonnet-6x\":[\"copilot/*sonnet-4.5*\",\"copilot/*sonnet-4.6*\",\"copilot/*sonnet-4-5-*\",\"anthropic/*sonnet-4-5-*\",\"copilot/*sonnet-4-6*\",\"anthropic/*sonnet-4-6*\"],\"summarization\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash-lite\",\"mini\"],\"vision\":[\"copilot/gemini-*image*\",\"google/gemini-*image*\",\"gemini/gemini-*image*\",\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"]}},\"container\":{\"imageTag\":\"0.27.7,squid=sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96,agent=sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c,api-proxy=sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6,cli-proxy=sha256:4757f198a3fa20f88bdbe70be7ae1a05f127d9c0a9e96a5d6460ef40c08fc83d\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
export GH_AW_MODELS_JSON_PATH="/tmp/gh-aw/models.json"
+ GH_AW_DOCKER_HOST=""
+ if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
+ GH_AW_DOCKER_HOST="${DOCKER_HOST}"
+ fi
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS=""
if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw"
+ python3 - <<'PY'
+ import json,os,subprocess as sp
+ from pathlib import Path
+ try:
+ p=Path(os.environ["RUNNER_TEMP"])/"gh-aw"/"awf-config.json"
+ c=json.loads(p.read_text())
+ c["chroot"]={"binariesSourcePath":"/tmp/gh-aw","identity":{"user":sp.check_output(["id","-un"],text=True).strip(),"uid":int(sp.check_output(["id","-u"],text=True)),"gid":int(sp.check_output(["id","-g"],text=True)),"home":"/tmp/gh-aw/home"}}
+ out=json.dumps(c,separators=(",",":"),ensure_ascii=False)+"\n"
+ p.write_text(out)
+ Path("/tmp/gh-aw/awf-config.json").write_text(out)
+ except Exception as e:
+ raise SystemExit(f"chroot config patch failed: {e}") from e
+ PY
fi
GH_AW_TOOL_CACHE_MOUNT=""
- GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"
+ GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"
if [ -d "$GH_AW_TOOL_CACHE" ]; then
if [[ "$GH_AW_TOOL_CACHE" != /opt/* ]]; then
GH_AW_TOOL_CACHE_MOUNT="$GH_AW_TOOL_CACHE:$GH_AW_TOOL_CACHE:ro"
fi
- elif [ -d "/home/runner/work/_tool" ]; then
- GH_AW_TOOL_CACHE_MOUNT="/home/runner/work/_tool:/home/runner/work/_tool:ro"
fi
- # shellcheck disable=SC1003
- sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
- -- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"; export PATH="$(find "$GH_AW_TOOL_CACHE" /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find)'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff --name-only)'\'' --allow-tool '\''shell(git diff)'\'' --allow-tool '\''shell(git log)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(node)'\'' --allow-tool '\''shell(printf)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
+ # shellcheck disable=SC1003,SC2086
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
+ -- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find)'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff --name-only)'\'' --allow-tool '\''shell(git diff)'\'' --allow-tool '\''shell(git log)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(node)'\'' --allow-tool '\''shell(printf)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
COPILOT_DUMMY_BYOK: dummy-byok-key-for-offline-mode
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
COPILOT_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || vars.GH_AW_DEFAULT_MODEL_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_MAX_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_MAX_AI_CREDITS || '1000' }}
GH_AW_MAX_TURNS: ${{ vars.GH_AW_DEFAULT_MAX_TURNS || '' }}
GH_AW_PHASE: agent
GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
GH_AW_TIMEOUT_MINUTES: 30
- GH_AW_VERSION: v0.79.8
+ GH_AW_VERSION: v0.80.9
GITHUB_API_URL: ${{ github.api_url }}
GITHUB_AW: true
GITHUB_COPILOT_INTEGRATION_ID: agentic-workflows
@@ -854,6 +869,7 @@ jobs:
GIT_COMMITTER_EMAIL: github-actions[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: github-actions[bot]
RUNNER_TEMP: ${{ runner.temp }}
+ TRACEPARENT: ${{ env.GITHUB_AW_OTEL_TRACE_ID != '' && env.GITHUB_AW_OTEL_PARENT_SPAN_ID != '' && format('00-{0}-{1}-01', env.GITHUB_AW_OTEL_TRACE_ID, env.GITHUB_AW_OTEL_PARENT_SPAN_ID) || '' }}
- name: Detect agent errors
if: always()
id: detect-agent-errors
@@ -861,17 +877,10 @@ jobs:
run: node "${RUNNER_TEMP}/gh-aw/actions/detect_agent_errors.cjs"
- name: Configure Git credentials
env:
- REPO_NAME: ${{ github.repository }}
- SERVER_URL: ${{ github.server_url }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_TOKEN: ${{ github.token }}
- run: |
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- git config --global am.keepcr true
- # Re-authenticate git with GitHub token
- SERVER_URL_STRIPPED="${SERVER_URL#https://}"
- git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
- echo "Git configured with standard GitHub Actions identity"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_git_credentials.sh"
- name: Copy Copilot session state files to logs
if: always()
continue-on-error: true
@@ -1039,7 +1048,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -1048,8 +1057,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-angular.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Download agent output artifact
id: download-agent-output
@@ -1071,12 +1080,14 @@ jobs:
run: |
mkdir -p /tmp/gh-aw/usage/agent /tmp/gh-aw/usage/detection
echo "Usage artifact source file status:"
- for file in /tmp/gh-aw/aw-info.jsonl /tmp/gh-aw/agent_usage.jsonl /tmp/gh-aw/detection_usage.jsonl /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl; do
+ for file in /tmp/gh-aw/aw_info.json /tmp/gh-aw/aw-info.jsonl /tmp/gh-aw/agent_usage.jsonl /tmp/gh-aw/detection_usage.jsonl /tmp/gh-aw/github_rate_limits.jsonl /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl; do
[ -f "$file" ] && echo "FOUND: $file" || echo "MISSING: $file"
done
+ [ -f /tmp/gh-aw/aw_info.json ] && cp /tmp/gh-aw/aw_info.json /tmp/gh-aw/usage/aw_info.json || true
[ -f /tmp/gh-aw/aw-info.jsonl ] && cp /tmp/gh-aw/aw-info.jsonl /tmp/gh-aw/usage/aw-info.jsonl || true
[ -f /tmp/gh-aw/agent_usage.jsonl ] && cp /tmp/gh-aw/agent_usage.jsonl /tmp/gh-aw/usage/agent_usage.jsonl || true
[ -f /tmp/gh-aw/detection_usage.jsonl ] && cp /tmp/gh-aw/detection_usage.jsonl /tmp/gh-aw/usage/detection_usage.jsonl || true
+ [ -f /tmp/gh-aw/github_rate_limits.jsonl ] && cp /tmp/gh-aw/github_rate_limits.jsonl /tmp/gh-aw/usage/github_rate_limits.jsonl || true
[ -f /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/agent/token_usage.jsonl || true
[ -f /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/agent/token_usage.jsonl || true
[ -f /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/agent/token_usage.jsonl || true
@@ -1085,6 +1096,8 @@ jobs:
[ -f /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/detection/token_usage.jsonl || true
[ -f /tmp/gh-aw/usage/agent/token_usage.jsonl ] || : > /tmp/gh-aw/usage/agent/token_usage.jsonl
[ -f /tmp/gh-aw/usage/detection/token_usage.jsonl ] || : > /tmp/gh-aw/usage/detection/token_usage.jsonl
+ mkdir -p /tmp/gh-aw/usage/activity
+ node ${{ runner.temp }}/gh-aw/actions/generate_usage_activity_summary.cjs
find /tmp/gh-aw/usage -type f -print | sort
- name: Upload usage artifact
if: always()
@@ -1093,12 +1106,54 @@ jobs:
with:
name: usage
path: |
+ /tmp/gh-aw/usage/aw_info.json
/tmp/gh-aw/usage/aw-info.jsonl
/tmp/gh-aw/usage/agent_usage.jsonl
/tmp/gh-aw/usage/detection_usage.jsonl
+ /tmp/gh-aw/usage/github_rate_limits.jsonl
/tmp/gh-aw/usage/agent/token_usage.jsonl
/tmp/gh-aw/usage/detection/token_usage.jsonl
+ /tmp/gh-aw/usage/activity/summary.json
if-no-files-found: ignore
+ - name: Restore daily AIC usage cache
+ id: restore-daily-aic-cache-conclusion
+ if: always()
+ continue-on-error: true
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+ with:
+ key: agentic-workflow-usage-syncjpdocsangular-${{ github.run_id }}
+ restore-keys: agentic-workflow-usage-syncjpdocsangular-
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ - name: Write daily AIC usage cache entry
+ id: write-daily-aic-cache
+ if: always()
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ github-token: ${{ github.token }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/write_daily_aic_usage_cache.cjs');
+ await main();
+ - name: Save daily AIC usage cache
+ id: save-daily-aic-cache
+ if: always()
+ continue-on-error: true
+ uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+ with:
+ key: agentic-workflow-usage-syncjpdocsangular-${{ github.run_id }}
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ - name: Upload daily AIC usage cache artifact
+ id: upload-daily-aic-cache
+ if: always()
+ continue-on-error: true
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: aic-usage-cache
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ if-no-files-found: ignore
+ retention-days: 7
- name: Process no-op messages
id: noop
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
@@ -1231,7 +1286,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -1240,8 +1295,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-angular.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Download agent output artifact
id: download-agent-output
@@ -1259,7 +1314,7 @@ jobs:
echo "GH_AW_AGENT_OUTPUT=/tmp/gh-aw/agent_output.json" >> "$GITHUB_OUTPUT"
- name: Checkout repository for patch context
if: needs.agent.outputs.has_patch == 'true'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
# --- Threat Detection ---
@@ -1268,7 +1323,7 @@ jobs:
rm -rf /tmp/gh-aw/sandbox/firewall/logs
rm -rf /tmp/gh-aw/sandbox/firewall/audit
- name: Download container images
- run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6 ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4 ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6 ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96
- name: Check if detection needed
id: detection_guard
if: always()
@@ -1331,11 +1386,11 @@ jobs:
node-version: '24'
package-manager-cache: false
- name: Install GitHub Copilot CLI
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.60
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.63
env:
GH_HOST: github.com
- name: Install AWF binary
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.2
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.7
- name: Execute GitHub Copilot CLI
if: always() && steps.detection_guard.outputs.run_detection == 'true'
continue-on-error: true
@@ -1354,37 +1409,43 @@ jobs:
export GH_AW_NODE_BIN
export COPILOT_API_KEY="$COPILOT_DUMMY_BYOK"
(umask 177 && touch /tmp/gh-aw/threat-detection/detection.log)
- GH_AW_MAX_AI_CREDITS="${{ vars.GH_AW_DEFAULT_DETECTION_MAX_AI_CREDITS || '400' }}"
- printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.2/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"github.com\",\"host.docker.internal\",\"registry.npmjs.org\",\"telemetry.enterprise.githubcopilot.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS}},\"container\":{\"imageTag\":\"0.27.2,squid=sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591,agent=sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6,api-proxy=sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4,cli-proxy=sha256:02f3ec08f32dc26c5427920c6a2e2f3036238fce44802f2f11ef49ed8621b5d0\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
+ GH_AW_MAX_AI_CREDITS="${GH_AW_MAX_AI_CREDITS:-400}"
+ printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.7/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"github.com\",\"host.docker.internal\",\"registry.npmjs.org\",\"telemetry.enterprise.githubcopilot.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"maxCacheMisses\":5},\"container\":{\"imageTag\":\"0.27.7,squid=sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96,agent=sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c,api-proxy=sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6,cli-proxy=sha256:4757f198a3fa20f88bdbe70be7ae1a05f127d9c0a9e96a5d6460ef40c08fc83d\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
export GH_AW_MODELS_JSON_PATH="/tmp/gh-aw/models.json"
+ GH_AW_DOCKER_HOST=""
+ if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
+ GH_AW_DOCKER_HOST="${DOCKER_HOST}"
+ fi
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS=""
if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw"
+ _GH_AW_CHROOT_JSON=$(jq -c --arg src /tmp/gh-aw --arg user "$(id -un)" --argjson uid "$(id -u)" --argjson gid "$(id -g)" --arg home /tmp/gh-aw/home '.chroot={"binariesSourcePath":$src,"identity":{"user":$user,"uid":$uid,"gid":$gid,"home":$home}}' "${RUNNER_TEMP}/gh-aw/awf-config.json") || { echo "chroot config patch failed" >&2; exit 1; }
+ printf '%s\n' "$_GH_AW_CHROOT_JSON" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
+ printf '%s\n' "$_GH_AW_CHROOT_JSON" > "/tmp/gh-aw/awf-config.json"
fi
GH_AW_TOOL_CACHE_MOUNT=""
- GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"
+ GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"
if [ -d "$GH_AW_TOOL_CACHE" ]; then
if [[ "$GH_AW_TOOL_CACHE" != /opt/* ]]; then
GH_AW_TOOL_CACHE_MOUNT="$GH_AW_TOOL_CACHE:$GH_AW_TOOL_CACHE:ro"
fi
- elif [ -d "/home/runner/work/_tool" ]; then
- GH_AW_TOOL_CACHE_MOUNT="/home/runner/work/_tool:/home/runner/work/_tool:ro"
fi
- # shellcheck disable=SC1003
- sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
- -- /bin/bash -c 'set +o histexpand; GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"; export PATH="$(find "$GH_AW_TOOL_CACHE" /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
+ # shellcheck disable=SC1003,SC2086
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
+ -- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
COPILOT_DUMMY_BYOK: dummy-byok-key-for-offline-mode
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
COPILOT_MODEL: ${{ vars.GH_AW_MODEL_DETECTION_COPILOT || vars.GH_AW_DEFAULT_MODEL_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_MAX_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_DETECTION_MAX_AI_CREDITS || '400' }}
GH_AW_MAX_TURNS: ${{ vars.GH_AW_DEFAULT_MAX_TURNS || '' }}
GH_AW_PHASE: detection
GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
GH_AW_TIMEOUT_MINUTES: 20
- GH_AW_VERSION: v0.79.8
+ GH_AW_VERSION: v0.80.9
GITHUB_API_URL: ${{ github.api_url }}
GITHUB_AW: true
GITHUB_COPILOT_INTEGRATION_ID: agentic-workflows
@@ -1398,6 +1459,7 @@ jobs:
GIT_COMMITTER_EMAIL: github-actions[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: github-actions[bot]
RUNNER_TEMP: ${{ runner.temp }}
+ TRACEPARENT: ${{ env.GITHUB_AW_OTEL_TRACE_ID != '' && env.GITHUB_AW_OTEL_PARENT_SPAN_ID != '' && format('00-{0}-{1}-01', env.GITHUB_AW_OTEL_TRACE_ID, env.GITHUB_AW_OTEL_PARENT_SPAN_ID) || '' }}
- name: Parse threat detection token usage for step summary
id: parse_detection_token_usage
if: always()
@@ -1462,15 +1524,15 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-angular.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Check team membership for workflow
id: check_membership
@@ -1507,7 +1569,7 @@ jobs:
GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }}
GH_AW_ENGINE_ID: "copilot"
GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }}
- GH_AW_ENGINE_VERSION: "1.0.60"
+ GH_AW_ENGINE_VERSION: "1.0.63"
GH_AW_THREAT_DETECTION_AIC: ${{ needs.detection.outputs.aic }}
GH_AW_WORKFLOW_ID: "sync-jp-docs-angular"
GH_AW_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
@@ -1524,7 +1586,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -1533,8 +1595,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (Angular)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-angular.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Download agent output artifact
id: download-agent-output
@@ -1556,51 +1618,23 @@ jobs:
with:
name: agent
path: /tmp/gh-aw/
- - name: Extract base branch from agent output
- id: extract-base-branch
- if: steps.download-agent-output.outcome == 'success'
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io, getOctokit);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/extract_base_branch_from_agent_output.cjs');
- await main();
- - name: Checkout repository (trusted default branch for comment events)
- if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request') && (github.event_name == 'issue_comment' || github.event_name == 'pull_request_review_comment')
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- with:
- ref: ${{ github.event.repository.default_branch }}
- token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
- persist-credentials: false
- fetch-depth: 1
- name: Checkout repository
- if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request') && github.event_name != 'issue_comment' && github.event_name != 'pull_request_review_comment'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request')
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
- ref: vnext
+ persist-credentials: true
token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
- persist-credentials: false
- fetch-depth: 1
- name: Configure Git credentials
if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request')
env:
- REPO_NAME: ${{ github.repository }}
- SERVER_URL: ${{ github.server_url }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
GIT_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
- run: |
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- git config --global am.keepcr true
- # Re-authenticate git with GitHub token
- SERVER_URL_STRIPPED="${SERVER_URL#https://}"
- git remote set-url origin "https://x-access-token:${GIT_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
- echo "Git configured with standard GitHub Actions identity"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_git_credentials.sh"
- name: Configure GH_HOST for enterprise compatibility
id: ghes-host-config
shell: bash
- # zizmor: ignore[github-env] - GITHUB_SERVER_URL is set by GitHub Actions, not user input.
- run: |
+ run: | # zizmor: ignore[github-env] - GITHUB_SERVER_URL is set by GitHub Actions, not user input.
# Derive GH_HOST from GITHUB_SERVER_URL so the gh CLI targets the correct
# GitHub instance (GHES/GHEC). On github.com this is a harmless no-op.
GH_HOST="${GITHUB_SERVER_URL#https://}"
@@ -1615,7 +1649,7 @@ jobs:
GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_API_URL: ${{ github.api_url }}
- GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_pull_request\":{\"base_branch\":\"vnext\",\"draft\":false,\"if_no_changes\":\"ignore\",\"labels\":[\"translation\",\"japanese\",\"automation\"],\"max\":1,\"max_patch_files\":100,\"max_patch_size\":1024,\"protect_top_level_dot_folders\":true,\"protected_files\":[\"package.json\",\"bun.lockb\",\"bunfig.toml\",\"deno.json\",\"deno.jsonc\",\"deno.lock\",\"global.json\",\"NuGet.Config\",\"Directory.Packages.props\",\"mix.exs\",\"mix.lock\",\"go.mod\",\"go.sum\",\"stack.yaml\",\"stack.yaml.lock\",\"pom.xml\",\"build.gradle\",\"build.gradle.kts\",\"settings.gradle\",\"settings.gradle.kts\",\"gradle.properties\",\"package-lock.json\",\"yarn.lock\",\"pnpm-lock.yaml\",\"npm-shrinkwrap.json\",\"requirements.txt\",\"Pipfile\",\"Pipfile.lock\",\"pyproject.toml\",\"setup.py\",\"setup.cfg\",\"Gemfile\",\"Gemfile.lock\",\"uv.lock\",\"CODEOWNERS\",\"DESIGN.md\",\"README.md\",\"CONTRIBUTING.md\",\"CHANGELOG.md\",\"SECURITY.md\",\"CODE_OF_CONDUCT.md\",\"AGENTS.md\",\"CLAUDE.md\",\"GEMINI.md\"],\"protected_files_policy\":\"request_review\",\"title_prefix\":\"[jp-sync] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
+ GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_pull_request\":{\"base_branch\":\"vnext\",\"draft\":false,\"if_no_changes\":\"ignore\",\"labels\":[\"translation\",\"japanese\",\"automation\"],\"max\":1,\"max_patch_files\":100,\"max_patch_size\":4096,\"protect_top_level_dot_folders\":true,\"protected_files\":[\"package.json\",\"bun.lockb\",\"bunfig.toml\",\"deno.json\",\"deno.jsonc\",\"deno.lock\",\"global.json\",\"NuGet.Config\",\"Directory.Packages.props\",\"mix.exs\",\"mix.lock\",\"go.mod\",\"go.sum\",\"stack.yaml\",\"stack.yaml.lock\",\"pom.xml\",\"build.gradle\",\"build.gradle.kts\",\"settings.gradle\",\"settings.gradle.kts\",\"gradle.properties\",\"package-lock.json\",\"yarn.lock\",\"pnpm-lock.yaml\",\"npm-shrinkwrap.json\",\"requirements.txt\",\"Pipfile\",\"Pipfile.lock\",\"pyproject.toml\",\"setup.py\",\"setup.cfg\",\"Gemfile\",\"Gemfile.lock\",\"uv.lock\",\"CODEOWNERS\",\"DESIGN.md\",\"README.md\",\"CONTRIBUTING.md\",\"CHANGELOG.md\",\"SECURITY.md\",\"CODE_OF_CONDUCT.md\",\"AGENTS.md\",\"CLAUDE.md\",\"GEMINI.md\"],\"protected_files_policy\":\"request_review\",\"title_prefix\":\"[jp-sync] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
GH_AW_CI_TRIGGER_TOKEN: ${{ secrets.GH_AW_CI_TRIGGER_TOKEN }}
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/sync-jp-docs-angular.md b/.github/workflows/sync-jp-docs-angular.md
index 1b1aecdfcb..afcc116af4 100644
--- a/.github/workflows/sync-jp-docs-angular.md
+++ b/.github/workflows/sync-jp-docs-angular.md
@@ -134,13 +134,29 @@ for (const t of tocs) {
out.add(path.posix.join(root, t));
walk(JSON.parse(fs.readFileSync(full, 'utf8')), path.posix.dirname(t));
}
+// grids_templates/ files are the canonical source for grid pages.
+// generate-grids.mjs expands them into per-grid pages at build time for every
+// language (including JP). The generated per-grid pages are git-ignored, so
+// they never appear in the diff — only the templates do.
+const templatesDir = path.join(root, 'grids_templates');
+if (fs.existsSync(templatesDir)) {
+ fs.readdirSync(templatesDir)
+ .filter(f => f.endsWith('.mdx'))
+ .forEach(f => out.add(path.posix.join(root, 'grids_templates', f)));
+}
console.log([...out].join('\n'));
"
```
-This produces a newline-separated list that includes the TOC files themselves
-plus all `docs/angular/src/content/en/...` paths covered by the TOC (external
-`http(s)` links are excluded automatically).
+This produces a list that includes:
+- The TOC files themselves (`toc.json`, `components/toc.json`)
+- All TOC-referenced files
+- All `grids_templates/` source templates
+
+`grids_templates/` files are the canonical source for grid pages —
+`generate-grids.mjs` expands them at build time for every language including JP.
+The generated per-grid pages are git-ignored and never appear in the diff, so
+only the templates need to be translated here.
### Step 2 — Filter changed files to TOC-covered files and locate their Japanese counterparts
diff --git a/.github/workflows/sync-jp-docs-xplat.lock.yml b/.github/workflows/sync-jp-docs-xplat.lock.yml
index 3b0fb884f8..11732e9e50 100644
--- a/.github/workflows/sync-jp-docs-xplat.lock.yml
+++ b/.github/workflows/sync-jp-docs-xplat.lock.yml
@@ -1,6 +1,6 @@
-# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"3be0e260ff016c2a55ebcd858d000bcdff8fe7d1589000325e7b32c8116ba554","body_hash":"9223a5b3e96f44d11f6fd150541bef50d952c03d794dfe1a64d3d34061e1cbeb","compiler_version":"v0.79.8","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.60"}}
-# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"df4cb1c069e1874edd31b4311f1884172cec0e10","version":"v6.0.3"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"c0338fef4749d08c21f8f975fb0e37efa17dda47","version":"v0.79.8"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2","digest":"sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2","digest":"sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2","digest":"sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.25","digest":"sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa"},{"image":"ghcr.io/github/github-mcp-server:v1.1.2","digest":"sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c","pinned_image":"ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c"}]}
-# This file was automatically generated by gh-aw (v0.79.8). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
+# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"3be0e260ff016c2a55ebcd858d000bcdff8fe7d1589000325e7b32c8116ba554","body_hash":"d88254a3e362e4146de4edda9875ee6ef2fab63e0cae554972e00fb2154c7404","compiler_version":"v0.80.9","strict":true,"agent_id":"copilot","engine_versions":{"copilot":"1.0.63"}}
+# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/cache/save","sha":"27d5ce7f107fe9357f9df03efb73ab90386fccae","version":"v5.0.5"},{"repo":"actions/checkout","sha":"9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0","version":"v7.0.0"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"373c709c69115d41ff229c7e5df9f8788daa9553","version":"v9"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"8c7d04ebf1ece56cd381446125da3e0f6896294a","version":"v0.80.9"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.7","digest":"sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7","digest":"sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.7","digest":"sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.27","digest":"sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.27@sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b","pinned_image":"ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b"},{"image":"ghcr.io/github/github-mcp-server:v1.4.0","digest":"sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036","pinned_image":"ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036"}]}
+# This file was automatically generated by gh-aw (v0.80.9). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md
#
# ___ _ _
# / _ \ | | (_)
@@ -33,20 +33,23 @@
# - GITHUB_TOKEN
#
# Custom actions used:
-# - actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+# - actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+# - actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+# - actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
# - actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
# - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
# - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
-# - github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+# - github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
#
# Container images used:
-# - ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6
-# - ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4
-# - ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591
-# - ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa
-# - ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c
+# - ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c
+# - ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6
+# - ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96
+# - ghcr.io/github/gh-aw-mcpg:v0.3.27@sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7
+# - ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b
+# - ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036
name: "Sync Japanese Documentation (xplat)"
on:
@@ -97,7 +100,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -107,8 +110,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-xplat.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Generate agentic run info
id: generate_aw_info
@@ -116,16 +119,16 @@ jobs:
GH_AW_INFO_ENGINE_ID: "copilot"
GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI"
GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || vars.GH_AW_DEFAULT_MODEL_COPILOT || 'claude-sonnet-4.6' }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AGENT_VERSION: "1.0.60"
- GH_AW_INFO_CLI_VERSION: "v0.79.8"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AGENT_VERSION: "1.0.63"
+ GH_AW_INFO_CLI_VERSION: "v0.80.9"
GH_AW_INFO_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_INFO_EXPERIMENTAL: "false"
GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true"
GH_AW_INFO_STAGED: "false"
GH_AW_INFO_ALLOWED_DOMAINS: '["defaults"]'
GH_AW_INFO_FIREWALL_ENABLED: "true"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_AWMG_VERSION: ""
GH_AW_INFO_FIREWALL_TYPE: "squid"
GH_AW_COMPILED_STRICT: "true"
@@ -136,6 +139,30 @@ jobs:
setupGlobals(core, github, context, exec, io, getOctokit);
const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_aw_info.cjs');
await main(core, context);
+ - name: Restore daily AIC usage cache
+ id: restore-daily-aic-cache
+ if: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
+ continue-on-error: true
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+ with:
+ key: agentic-workflow-usage-syncjpdocsxplat-${{ github.run_id }}
+ restore-keys: agentic-workflow-usage-syncjpdocsxplat-
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ - name: Restore daily AIC usage cache (artifact fallback)
+ id: restore-daily-aic-cache-fallback
+ if: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_RESTORE_DAILY_AIC_CACHE_HIT: ${{ steps.restore-daily-aic-cache.outputs.cache-hit }}
+ GH_AW_RESTORE_DAILY_AIC_CACHE_MATCHED_KEY: ${{ steps.restore-daily-aic-cache.outputs.cache-matched-key }}
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/restore_aic_usage_cache_fallback.cjs');
+ await main();
- name: Check daily workflow token guardrail
id: daily-effective-workflow-guardrail
if: ${{ env.GH_AW_MAX_DAILY_AI_CREDITS != '' }}
@@ -145,6 +172,8 @@ jobs:
GH_AW_WORKFLOW_ID: "sync-jp-docs-xplat"
GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
GH_AW_WORKFLOW_DISPATCH_AW_CONTEXT: ${{ github.event.inputs.aw_context || '' }}
+ GH_AW_HAS_SLASH_COMMAND: "false"
+ GH_AW_HAS_LABEL_COMMAND: "false"
GH_AW_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_AW_MAX_DAILY_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_MAX_DAILY_AI_CREDITS || '5000' }}
with:
@@ -160,7 +189,7 @@ jobs:
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
- name: Checkout .github and .agents folders
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
sparse-checkout: |
@@ -196,7 +225,7 @@ jobs:
- name: Check compile-agentic version
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
env:
- GH_AW_COMPILED_VERSION: "v0.79.8"
+ GH_AW_COMPILED_VERSION: "v0.80.9"
with:
script: |
const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
@@ -219,23 +248,23 @@ jobs:
run: |
bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
{
- cat << 'GH_AW_PROMPT_21a73c780c6ea7ec_EOF'
+ cat << 'GH_AW_PROMPT_43128737c4e73d61_EOF'
- GH_AW_PROMPT_21a73c780c6ea7ec_EOF
+ GH_AW_PROMPT_43128737c4e73d61_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
- cat << 'GH_AW_PROMPT_21a73c780c6ea7ec_EOF'
+ cat << 'GH_AW_PROMPT_43128737c4e73d61_EOF'
Tools: create_pull_request, missing_tool, missing_data, noop
- GH_AW_PROMPT_21a73c780c6ea7ec_EOF
+ GH_AW_PROMPT_43128737c4e73d61_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md"
- cat << 'GH_AW_PROMPT_21a73c780c6ea7ec_EOF'
+ cat << 'GH_AW_PROMPT_43128737c4e73d61_EOF'
- GH_AW_PROMPT_21a73c780c6ea7ec_EOF
+ GH_AW_PROMPT_43128737c4e73d61_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
- cat << 'GH_AW_PROMPT_21a73c780c6ea7ec_EOF'
+ cat << 'GH_AW_PROMPT_43128737c4e73d61_EOF'
The following GitHub context information is available for this workflow:
{{#if github.actor}}
@@ -264,12 +293,12 @@ jobs:
{{/if}}
- GH_AW_PROMPT_21a73c780c6ea7ec_EOF
+ GH_AW_PROMPT_43128737c4e73d61_EOF
cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
- cat << 'GH_AW_PROMPT_21a73c780c6ea7ec_EOF'
+ cat << 'GH_AW_PROMPT_43128737c4e73d61_EOF'
{{#runtime-import .github/workflows/sync-jp-docs-xplat.md}}
- GH_AW_PROMPT_21a73c780c6ea7ec_EOF
+ GH_AW_PROMPT_43128737c4e73d61_EOF
} > "$GH_AW_PROMPT"
- name: Interpolate variables and render templates
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
@@ -383,7 +412,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -392,8 +421,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-xplat.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Set runtime paths
id: set-runtime-paths
@@ -404,7 +433,7 @@ jobs:
echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json"
} >> "$GITHUB_OUTPUT"
- name: Checkout repository
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Create gh-aw temp directory
@@ -415,17 +444,10 @@ jobs:
GH_TOKEN: ${{ github.token }}
- name: Configure Git credentials
env:
- REPO_NAME: ${{ github.repository }}
- SERVER_URL: ${{ github.server_url }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_TOKEN: ${{ github.token }}
- run: |
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- git config --global am.keepcr true
- # Re-authenticate git with GitHub token
- SERVER_URL_STRIPPED="${SERVER_URL#https://}"
- git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
- echo "Git configured with standard GitHub Actions identity"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_git_credentials.sh"
- name: Checkout PR branch
id: checkout-pr
if: |
@@ -441,11 +463,11 @@ jobs:
const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs');
await main();
- name: Install GitHub Copilot CLI
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.60
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.63
env:
GH_HOST: github.com
- name: Install AWF binary
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.2
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.7
- name: Determine automatic lockdown mode for GitHub MCP Server
id: determine-automatic-lockdown
uses: actions/github-script@373c709c69115d41ff229c7e5df9f8788daa9553 # v9
@@ -477,15 +499,15 @@ jobs:
GH_AW_SKILL_DIR: ".github/skills"
run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_inline_skills.sh"
- name: Download container images
- run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6 ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4 ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591 ghcr.io/github/gh-aw-mcpg:v0.3.25@sha256:c10331ad17668ef89f38f5e356678788a40b0cd5fef96e8f92e1d9c1de47cbaa ghcr.io/github/github-mcp-server:v1.1.2@sha256:30197479d8036c7811892bc07e06f9a05c9ef3cdd79bc59f256d50647f95788c
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6 ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96 ghcr.io/github/gh-aw-mcpg:v0.3.27@sha256:fe984bddde4ec05d756d9043edb0a32912e6b7b72f6a121b1082f29221421cc7 ghcr.io/github/gh-aw-node@sha256:529d02eb970b1161aa25c593a9c3df57fdfad5a8add328cb3b6eccef66f3183b ghcr.io/github/github-mcp-server:v1.4.0@sha256:2afb26356481d1a350e14544a6e160f7f7ec1561a1ea309b823665abf0309036
- name: Generate Safe Outputs Config
run: |
mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
mkdir -p /tmp/gh-aw/safeoutputs
mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
- cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_91759732740d0920_EOF'
- {"create_pull_request":{"base_branch":"vnext","draft":false,"if_no_changes":"ignore","labels":["translation","japanese","automation"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"protected_files_policy":"request_review","title_prefix":"[jp-sync] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
- GH_AW_SAFE_OUTPUTS_CONFIG_91759732740d0920_EOF
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_7e98029480883c79_EOF'
+ {"create_pull_request":{"base_branch":"vnext","draft":false,"if_no_changes":"ignore","labels":["translation","japanese","automation"],"max":1,"max_patch_files":100,"max_patch_size":4096,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"protected_files_policy":"request_review","title_prefix":"[jp-sync] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
+ GH_AW_SAFE_OUTPUTS_CONFIG_7e98029480883c79_EOF
- name: Generate Safe Outputs Tools
env:
GH_AW_TOOLS_META_JSON: |
@@ -620,55 +642,16 @@ jobs:
setupGlobals(core, github, context, exec, io, getOctokit);
const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_safe_outputs_tools.cjs');
await main();
- - name: Generate Safe Outputs MCP Server Config
- id: safe-outputs-config
- run: |
- # Generate a secure random API key (360 bits of entropy, 40+ chars)
- # Mask immediately to prevent timing vulnerabilities
- API_KEY=$(openssl rand -base64 45 | tr -d '/+=')
- echo "::add-mask::${API_KEY}"
-
- PORT=3001
-
- # Set outputs for next steps
- {
- echo "safe_outputs_api_key=${API_KEY}"
- echo "safe_outputs_port=${PORT}"
- } >> "$GITHUB_OUTPUT"
-
- echo "Safe Outputs MCP server will run on port ${PORT}"
-
- - name: Start Safe Outputs MCP HTTP Server
- id: safe-outputs-start
- env:
- DEBUG: '*'
- GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
- GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-config.outputs.safe_outputs_port }}
- GH_AW_SAFE_OUTPUTS_API_KEY: ${{ steps.safe-outputs-config.outputs.safe_outputs_api_key }}
- GH_AW_SAFE_OUTPUTS_TOOLS_PATH: ${{ runner.temp }}/gh-aw/safeoutputs/tools.json
- GH_AW_SAFE_OUTPUTS_CONFIG_PATH: ${{ runner.temp }}/gh-aw/safeoutputs/config.json
- GH_AW_MCP_LOG_DIR: /tmp/gh-aw/mcp-logs/safeoutputs
- run: |
- # Environment variables are set above to prevent template injection
- export DEBUG
- export GH_AW_SAFE_OUTPUTS
- export GH_AW_SAFE_OUTPUTS_PORT
- export GH_AW_SAFE_OUTPUTS_API_KEY
- export GH_AW_SAFE_OUTPUTS_TOOLS_PATH
- export GH_AW_SAFE_OUTPUTS_CONFIG_PATH
- export GH_AW_MCP_LOG_DIR
-
- bash "${RUNNER_TEMP}/gh-aw/actions/start_safe_outputs_server.sh"
-
- name: Start MCP Gateway
id: start-mcp-gateway
env:
GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
- GH_AW_SAFE_OUTPUTS_API_KEY: ${{ steps.safe-outputs-start.outputs.api_key }}
- GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-start.outputs.port }}
+ GH_AW_SAFE_OUTPUTS_CONFIG_PATH: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS_CONFIG_PATH }}
+ GH_AW_SAFE_OUTPUTS_TOOLS_PATH: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS_TOOLS_PATH }}
GITHUB_MCP_GUARD_MIN_INTEGRITY: ${{ steps.determine-automatic-lockdown.outputs.min_integrity }}
GITHUB_MCP_GUARD_REPOS: ${{ steps.determine-automatic-lockdown.outputs.repos }}
GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -eo pipefail
mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-config"
@@ -694,16 +677,16 @@ jobs:
* ) DOCKER_SOCK_PATH=/var/run/docker.sock ;;
esac
DOCKER_SOCK_GID=$(stat -c '%g' "$DOCKER_SOCK_PATH" 2>/dev/null || echo '0')
- export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v '"${DOCKER_SOCK_PATH}"':/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DOCKER_HOST=unix:///var/run/docker.sock -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.25'
+ export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --name awmg-mcpg --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v '"${DOCKER_SOCK_PATH}"':/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DOCKER_HOST=unix:///var/run/docker.sock -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e RUNNER_TEMP -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw -v '"${RUNNER_TEMP}"'/gh-aw/safeoutputs:'"${RUNNER_TEMP}"'/gh-aw/safeoutputs:rw ghcr.io/github/gh-aw-mcpg:v0.3.27'
mkdir -p "$HOME/.copilot"
GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
- cat << GH_AW_MCP_CONFIG_c6fee03c27b97257_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ cat << GH_AW_MCP_CONFIG_c70c556baaebe8bb_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
{
"mcpServers": {
"github": {
"type": "stdio",
- "container": "ghcr.io/github/github-mcp-server:v1.1.2",
+ "container": "ghcr.io/github/github-mcp-server:v1.4.0",
"env": {
"GITHUB_HOST": "\${GITHUB_SERVER_URL}",
"GITHUB_PERSONAL_ACCESS_TOKEN": "\${GITHUB_MCP_SERVER_TOKEN}",
@@ -718,10 +701,26 @@ jobs:
}
},
"safeoutputs": {
- "type": "http",
- "url": "http://host.docker.internal:$GH_AW_SAFE_OUTPUTS_PORT",
- "headers": {
- "Authorization": "\${GH_AW_SAFE_OUTPUTS_API_KEY}"
+ "type": "stdio",
+ "container": "ghcr.io/github/gh-aw-node",
+ "mounts": ["\${GITHUB_WORKSPACE}:\${GITHUB_WORKSPACE}:rw", "${RUNNER_TEMP}/gh-aw/safeoutputs:${RUNNER_TEMP}/gh-aw/safeoutputs:rw", "/tmp/gh-aw:/tmp/gh-aw:rw"],
+ "args": ["-w", "\${GITHUB_WORKSPACE}"],
+ "entrypoint": "sh",
+ "entrypointArgs": ["-c", "sh ${RUNNER_TEMP}/gh-aw/safeoutputs/start_safe_outputs_mcp.sh"],
+ "env": {
+ "DEBUG": "*",
+ "DEFAULT_BRANCH": "\${DEFAULT_BRANCH}",
+ "GH_AW_ASSETS_ALLOWED_EXTS": "\${GH_AW_ASSETS_ALLOWED_EXTS}",
+ "GH_AW_ASSETS_BRANCH": "\${GH_AW_ASSETS_BRANCH}",
+ "GH_AW_ASSETS_MAX_SIZE_KB": "\${GH_AW_ASSETS_MAX_SIZE_KB}",
+ "GH_AW_MCP_LOG_DIR": "\${GH_AW_MCP_LOG_DIR}",
+ "GH_AW_SAFE_OUTPUTS": "\${GH_AW_SAFE_OUTPUTS}",
+ "GH_AW_SAFE_OUTPUTS_CONFIG_PATH": "\${GH_AW_SAFE_OUTPUTS_CONFIG_PATH}",
+ "GH_AW_SAFE_OUTPUTS_TOOLS_PATH": "\${GH_AW_SAFE_OUTPUTS_TOOLS_PATH}",
+ "GITHUB_REPOSITORY": "\${GITHUB_REPOSITORY}",
+ "GITHUB_TOKEN": "\${GITHUB_TOKEN}",
+ "GITHUB_WORKSPACE": "\${GITHUB_WORKSPACE}",
+ "RUNNER_TEMP": "\${RUNNER_TEMP}"
},
"guard-policies": {
"write-sink": {
@@ -739,7 +738,7 @@ jobs:
"payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
}
}
- GH_AW_MCP_CONFIG_c6fee03c27b97257_EOF
+ GH_AW_MCP_CONFIG_c70c556baaebe8bb_EOF
- name: Mount MCP servers as CLIs
id: mount-mcp-clis
continue-on-error: true
@@ -807,38 +806,54 @@ jobs:
export GH_AW_NODE_BIN
export COPILOT_API_KEY="$COPILOT_DUMMY_BYOK"
(umask 177 && touch /tmp/gh-aw/agent-stdio.log)
- GH_AW_MAX_AI_CREDITS="${{ vars.GH_AW_DEFAULT_MAX_AI_CREDITS || '1000' }}"
- printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.2/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"api.snapcraft.io\",\"archive.ubuntu.com\",\"azure.archive.ubuntu.com\",\"crl.geotrust.com\",\"crl.globalsign.com\",\"crl.identrust.com\",\"crl.sectigo.com\",\"crl.thawte.com\",\"crl.usertrust.com\",\"crl.verisign.com\",\"crl3.digicert.com\",\"crl4.digicert.com\",\"crls.ssl.com\",\"github.com\",\"host.docker.internal\",\"json-schema.org\",\"json.schemastore.org\",\"keyserver.ubuntu.com\",\"ocsp.digicert.com\",\"ocsp.geotrust.com\",\"ocsp.globalsign.com\",\"ocsp.identrust.com\",\"ocsp.sectigo.com\",\"ocsp.ssl.com\",\"ocsp.thawte.com\",\"ocsp.usertrust.com\",\"ocsp.verisign.com\",\"packagecloud.io\",\"packages.cloud.google.com\",\"packages.microsoft.com\",\"ppa.launchpad.net\",\"raw.githubusercontent.com\",\"registry.npmjs.org\",\"s.symcb.com\",\"s.symcd.com\",\"security.ubuntu.com\",\"telemetry.enterprise.githubcopilot.com\",\"ts-crl.ws.symantec.com\",\"ts-ocsp.ws.symantec.com\",\"www.googleapis.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"models\":{\"agent\":[\"sonnet-6x\",\"gpt-5.4\",\"gpt-5.3\",\"gemini-pro\",\"any\"],\"antigravity\":[\"copilot/antigravity*\",\"google/antigravity*\",\"gemini/antigravity*\"],\"any\":[\"copilot/*\",\"anthropic/*\",\"openai/*\",\"google/*\",\"gemini/*\"],\"claude\":[\"agent\"],\"codex\":[\"agent\"],\"coding\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\",\"gpt-5-codex\"],\"computer-use\":[\"copilot/*computer-use*\",\"google/*computer-use*\",\"gemini/*computer-use*\",\"openai/*computer-use*\"],\"copilot\":[\"agent\"],\"deep-research\":[\"copilot/deep-research*\",\"copilot/o3-deep-research*\",\"copilot/o4-mini-deep-research*\",\"google/deep-research*\",\"gemini/deep-research*\",\"openai/o3-deep-research*\",\"openai/o4-mini-deep-research*\"],\"gemini\":[\"agent\"],\"gemini-3-flash\":[\"copilot/gemini-3*flash*\",\"google/gemini-3*flash*\",\"gemini/gemini-3*flash*\"],\"gemini-3-pro\":[\"copilot/gemini-3*pro*\",\"google/gemini-3*pro*\",\"google/nano-banana*\",\"gemini/gemini-3*pro*\"],\"gemini-3.1-flash\":[\"copilot/gemini-3.1*flash*\",\"google/gemini-3.1*flash*\",\"gemini/gemini-3.1*flash*\"],\"gemini-3.1-pro\":[\"copilot/gemini-3.1*pro*\",\"google/gemini-3.1*pro*\",\"gemini/gemini-3.1*pro*\"],\"gemini-3.5-flash\":[\"copilot/gemini-3.5*flash*\",\"google/gemini-3.5*flash*\",\"gemini/gemini-3.5*flash*\"],\"gemini-flash\":[\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"],\"gemini-flash-lite\":[\"copilot/gemini-*flash*lite*\",\"google/gemini-*flash*lite*\",\"gemini/gemini-*flash*lite*\"],\"gemini-pro\":[\"copilot/gemini-*pro*\",\"google/gemini-*pro*\",\"gemini/gemini-*pro*\"],\"gemma\":[\"copilot/gemma*\",\"google/gemma*\",\"gemini/gemma*\"],\"gpt-5\":[\"copilot/gpt-5*\",\"openai/gpt-5*\"],\"gpt-5-codex\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\"],\"gpt-5-mini\":[\"copilot/gpt-5*mini*\",\"openai/gpt-5*mini*\"],\"gpt-5-nano\":[\"copilot/gpt-5*nano*\",\"openai/gpt-5*nano*\"],\"gpt-5-pro\":[\"copilot/gpt-5*pro*\",\"openai/gpt-5*pro*\"],\"gpt-5.2\":[\"copilot/gpt-5.2*\",\"openai/gpt-5.2*\"],\"gpt-5.3\":[\"copilot/gpt-5.3*\",\"openai/gpt-5.3*\"],\"gpt-5.4\":[\"copilot/gpt-5.4*\",\"openai/gpt-5.4*\"],\"gpt-5.5\":[\"copilot/gpt-5.5*\",\"openai/gpt-5.5*\"],\"haiku\":[\"copilot/*haiku*\",\"anthropic/*haiku*\"],\"large\":[\"sonnet\",\"gpt-5-pro\",\"gpt-5\",\"gemini-pro\"],\"mai-code\":[\"copilot/MAI-Code*\",\"copilot/mai-code*\",\"openai/MAI-Code*\"],\"mini\":[\"haiku\",\"gpt-5-mini\",\"gpt-5-nano\",\"gemini-flash-lite\"],\"nano-banana\":[\"copilot/nano-banana*\",\"google/nano-banana*\",\"gemini/nano-banana*\"],\"opus\":[\"copilot/*opus*\",\"anthropic/*opus*\"],\"opusplan\":[\"opus?effort=high\"],\"reasoning\":[\"copilot/o1*\",\"copilot/o3*\",\"copilot/o4*\",\"openai/o1*\",\"openai/o3*\",\"openai/o4*\"],\"robotics\":[\"copilot/*robotics*\",\"google/*robotics*\",\"gemini/*robotics*\"],\"small\":[\"mini\"],\"small-agent\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash\"],\"sonnet\":[\"copilot/*sonnet*\",\"anthropic/*sonnet*\"],\"sonnet-6x\":[\"copilot/*sonnet-4.5*\",\"copilot/*sonnet-4.6*\",\"copilot/*sonnet-4-5-*\",\"anthropic/*sonnet-4-5-*\",\"copilot/*sonnet-4-6*\",\"anthropic/*sonnet-4-6*\"],\"summarization\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash-lite\",\"mini\"],\"vision\":[\"copilot/gemini-*image*\",\"gemini/gemini-*image*\",\"copilot/gemini-*flash*\",\"gemini/gemini-*flash*\"]}},\"container\":{\"imageTag\":\"0.27.2,squid=sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591,agent=sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6,api-proxy=sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4,cli-proxy=sha256:02f3ec08f32dc26c5427920c6a2e2f3036238fce44802f2f11ef49ed8621b5d0\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
+ GH_AW_MAX_AI_CREDITS="${GH_AW_MAX_AI_CREDITS:-1000}"
+ printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.7/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"api.snapcraft.io\",\"archive.ubuntu.com\",\"azure.archive.ubuntu.com\",\"crl.geotrust.com\",\"crl.globalsign.com\",\"crl.identrust.com\",\"crl.sectigo.com\",\"crl.thawte.com\",\"crl.usertrust.com\",\"crl.verisign.com\",\"crl3.digicert.com\",\"crl4.digicert.com\",\"crls.ssl.com\",\"github.com\",\"host.docker.internal\",\"json-schema.org\",\"json.schemastore.org\",\"keyserver.ubuntu.com\",\"ocsp.digicert.com\",\"ocsp.geotrust.com\",\"ocsp.globalsign.com\",\"ocsp.identrust.com\",\"ocsp.sectigo.com\",\"ocsp.ssl.com\",\"ocsp.thawte.com\",\"ocsp.usertrust.com\",\"ocsp.verisign.com\",\"packagecloud.io\",\"packages.cloud.google.com\",\"packages.microsoft.com\",\"ppa.launchpad.net\",\"raw.githubusercontent.com\",\"registry.npmjs.org\",\"s.symcb.com\",\"s.symcd.com\",\"security.ubuntu.com\",\"telemetry.enterprise.githubcopilot.com\",\"ts-crl.ws.symantec.com\",\"ts-ocsp.ws.symantec.com\",\"www.googleapis.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"maxCacheMisses\":5,\"models\":{\"agent\":[\"sonnet-6x\",\"gpt-5.5\",\"gpt-5.4\",\"gpt-5.3\",\"gemini-pro\",\"any\"],\"antigravity\":[\"copilot/antigravity*\",\"google/antigravity*\",\"gemini/antigravity*\"],\"any\":[\"copilot/*\",\"anthropic/*\",\"openai/*\",\"google/*\",\"gemini/*\"],\"claude\":[\"agent\"],\"codex\":[\"agent\"],\"coding\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\",\"gpt-5-codex\"],\"computer-use\":[\"copilot/*computer-use*\",\"google/*computer-use*\",\"gemini/*computer-use*\",\"openai/*computer-use*\"],\"copilot\":[\"agent\"],\"deep-research\":[\"copilot/deep-research*\",\"copilot/o3-deep-research*\",\"copilot/o4-mini-deep-research*\",\"google/deep-research*\",\"gemini/deep-research*\",\"openai/o3-deep-research*\",\"openai/o4-mini-deep-research*\"],\"gemini\":[\"agent\"],\"gemini-3-flash\":[\"copilot/gemini-3*flash*\",\"google/gemini-3*flash*\",\"gemini/gemini-3*flash*\"],\"gemini-3-pro\":[\"copilot/gemini-3*pro*\",\"google/gemini-3*pro*\",\"google/nano-banana*\",\"gemini/gemini-3*pro*\"],\"gemini-3.1-flash\":[\"copilot/gemini-3.1*flash*\",\"google/gemini-3.1*flash*\",\"gemini/gemini-3.1*flash*\"],\"gemini-3.1-pro\":[\"copilot/gemini-3.1*pro*\",\"google/gemini-3.1*pro*\",\"gemini/gemini-3.1*pro*\"],\"gemini-3.5-flash\":[\"copilot/gemini-3.5*flash*\",\"google/gemini-3.5*flash*\",\"gemini/gemini-3.5*flash*\"],\"gemini-flash\":[\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"],\"gemini-flash-lite\":[\"copilot/gemini-*flash*lite*\",\"google/gemini-*flash*lite*\",\"gemini/gemini-*flash*lite*\"],\"gemini-pro\":[\"copilot/gemini-*pro*\",\"google/gemini-*pro*\",\"gemini/gemini-*pro*\"],\"gemma\":[\"copilot/gemma*\",\"google/gemma*\",\"gemini/gemma*\"],\"gpt-5\":[\"copilot/gpt-5*\",\"openai/gpt-5*\"],\"gpt-5-codex\":[\"copilot/gpt-5*codex*\",\"openai/gpt-5*codex*\"],\"gpt-5-mini\":[\"copilot/gpt-5*mini*\",\"openai/gpt-5*mini*\"],\"gpt-5-nano\":[\"copilot/gpt-5*nano*\",\"openai/gpt-5*nano*\"],\"gpt-5-pro\":[\"copilot/gpt-5*pro*\",\"openai/gpt-5*pro*\"],\"gpt-5.1\":[\"copilot/gpt-5.1*\",\"openai/gpt-5.1*\"],\"gpt-5.2\":[\"copilot/gpt-5.2*\",\"openai/gpt-5.2*\"],\"gpt-5.3\":[\"copilot/gpt-5.3*\",\"openai/gpt-5.3*\"],\"gpt-5.4\":[\"copilot/gpt-5.4*\",\"openai/gpt-5.4*\"],\"gpt-5.5\":[\"copilot/gpt-5.5*\",\"openai/gpt-5.5*\"],\"haiku\":[\"copilot/*haiku*\",\"anthropic/*haiku*\"],\"image-generation\":[\"copilot/gpt-image*\",\"openai/gpt-image*\",\"openai/chatgpt-image*\",\"copilot/gemini-*image*\",\"google/gemini-*image*\",\"gemini/gemini-*image*\",\"google/imagen*\"],\"large\":[\"sonnet\",\"gpt-5-pro\",\"gpt-5\",\"gemini-pro\"],\"mai-code\":[\"copilot/MAI-Code*\",\"copilot/mai-code*\",\"openai/MAI-Code*\"],\"mini\":[\"haiku\",\"gpt-5-mini\",\"gpt-5-nano\",\"gemini-flash-lite\"],\"nano-banana\":[\"copilot/nano-banana*\",\"google/nano-banana*\",\"gemini/nano-banana*\"],\"opus\":[\"copilot/*opus*\",\"anthropic/*opus*\"],\"opusplan\":[\"opus?effort=high\"],\"reasoning\":[\"copilot/o1*\",\"copilot/o3*\",\"copilot/o4*\",\"openai/o1*\",\"openai/o3*\",\"openai/o4*\"],\"robotics\":[\"copilot/*robotics*\",\"google/*robotics*\",\"gemini/*robotics*\"],\"small\":[\"mini\"],\"small-agent\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash\"],\"sonnet\":[\"copilot/*sonnet*\",\"anthropic/*sonnet*\"],\"sonnet-6x\":[\"copilot/*sonnet-4.5*\",\"copilot/*sonnet-4.6*\",\"copilot/*sonnet-4-5-*\",\"anthropic/*sonnet-4-5-*\",\"copilot/*sonnet-4-6*\",\"anthropic/*sonnet-4-6*\"],\"summarization\":[\"haiku\",\"gpt-5-mini\",\"gemini-flash-lite\",\"mini\"],\"vision\":[\"copilot/gemini-*image*\",\"google/gemini-*image*\",\"gemini/gemini-*image*\",\"copilot/gemini-*flash*\",\"google/gemini-*flash*\",\"gemini/gemini-*flash*\"]}},\"container\":{\"imageTag\":\"0.27.7,squid=sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96,agent=sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c,api-proxy=sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6,cli-proxy=sha256:4757f198a3fa20f88bdbe70be7ae1a05f127d9c0a9e96a5d6460ef40c08fc83d\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
export GH_AW_MODELS_JSON_PATH="/tmp/gh-aw/models.json"
+ GH_AW_DOCKER_HOST=""
+ if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
+ GH_AW_DOCKER_HOST="${DOCKER_HOST}"
+ fi
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS=""
if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw"
+ python3 - <<'PY'
+ import json,os,subprocess as sp
+ from pathlib import Path
+ try:
+ p=Path(os.environ["RUNNER_TEMP"])/"gh-aw"/"awf-config.json"
+ c=json.loads(p.read_text())
+ c["chroot"]={"binariesSourcePath":"/tmp/gh-aw","identity":{"user":sp.check_output(["id","-un"],text=True).strip(),"uid":int(sp.check_output(["id","-u"],text=True)),"gid":int(sp.check_output(["id","-g"],text=True)),"home":"/tmp/gh-aw/home"}}
+ out=json.dumps(c,separators=(",",":"),ensure_ascii=False)+"\n"
+ p.write_text(out)
+ Path("/tmp/gh-aw/awf-config.json").write_text(out)
+ except Exception as e:
+ raise SystemExit(f"chroot config patch failed: {e}") from e
+ PY
fi
GH_AW_TOOL_CACHE_MOUNT=""
- GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"
+ GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"
if [ -d "$GH_AW_TOOL_CACHE" ]; then
if [[ "$GH_AW_TOOL_CACHE" != /opt/* ]]; then
GH_AW_TOOL_CACHE_MOUNT="$GH_AW_TOOL_CACHE:$GH_AW_TOOL_CACHE:ro"
fi
- elif [ -d "/home/runner/work/_tool" ]; then
- GH_AW_TOOL_CACHE_MOUNT="/home/runner/work/_tool:/home/runner/work/_tool:ro"
fi
- # shellcheck disable=SC1003
- sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
- -- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"; export PATH="$(find "$GH_AW_TOOL_CACHE" /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find)'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff --name-only)'\'' --allow-tool '\''shell(git diff)'\'' --allow-tool '\''shell(git log)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(printf)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
+ # shellcheck disable=SC1003,SC2086
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
+ -- /bin/bash -c 'set +o histexpand; export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(find)'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff --name-only)'\'' --allow-tool '\''shell(git diff)'\'' --allow-tool '\''shell(git log)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(printf)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
COPILOT_DUMMY_BYOK: dummy-byok-key-for-offline-mode
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
COPILOT_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || vars.GH_AW_DEFAULT_MODEL_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_MAX_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_MAX_AI_CREDITS || '1000' }}
GH_AW_MAX_TURNS: ${{ vars.GH_AW_DEFAULT_MAX_TURNS || '' }}
GH_AW_PHASE: agent
GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
GH_AW_TIMEOUT_MINUTES: 30
- GH_AW_VERSION: v0.79.8
+ GH_AW_VERSION: v0.80.9
GITHUB_API_URL: ${{ github.api_url }}
GITHUB_AW: true
GITHUB_COPILOT_INTEGRATION_ID: agentic-workflows
@@ -853,6 +868,7 @@ jobs:
GIT_COMMITTER_EMAIL: github-actions[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: github-actions[bot]
RUNNER_TEMP: ${{ runner.temp }}
+ TRACEPARENT: ${{ env.GITHUB_AW_OTEL_TRACE_ID != '' && env.GITHUB_AW_OTEL_PARENT_SPAN_ID != '' && format('00-{0}-{1}-01', env.GITHUB_AW_OTEL_TRACE_ID, env.GITHUB_AW_OTEL_PARENT_SPAN_ID) || '' }}
- name: Detect agent errors
if: always()
id: detect-agent-errors
@@ -860,17 +876,10 @@ jobs:
run: node "${RUNNER_TEMP}/gh-aw/actions/detect_agent_errors.cjs"
- name: Configure Git credentials
env:
- REPO_NAME: ${{ github.repository }}
- SERVER_URL: ${{ github.server_url }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_TOKEN: ${{ github.token }}
- run: |
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- git config --global am.keepcr true
- # Re-authenticate git with GitHub token
- SERVER_URL_STRIPPED="${SERVER_URL#https://}"
- git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
- echo "Git configured with standard GitHub Actions identity"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_git_credentials.sh"
- name: Copy Copilot session state files to logs
if: always()
continue-on-error: true
@@ -1038,7 +1047,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -1047,8 +1056,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-xplat.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Download agent output artifact
id: download-agent-output
@@ -1070,12 +1079,14 @@ jobs:
run: |
mkdir -p /tmp/gh-aw/usage/agent /tmp/gh-aw/usage/detection
echo "Usage artifact source file status:"
- for file in /tmp/gh-aw/aw-info.jsonl /tmp/gh-aw/agent_usage.jsonl /tmp/gh-aw/detection_usage.jsonl /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl; do
+ for file in /tmp/gh-aw/aw_info.json /tmp/gh-aw/aw-info.jsonl /tmp/gh-aw/agent_usage.jsonl /tmp/gh-aw/detection_usage.jsonl /tmp/gh-aw/github_rate_limits.jsonl /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl; do
[ -f "$file" ] && echo "FOUND: $file" || echo "MISSING: $file"
done
+ [ -f /tmp/gh-aw/aw_info.json ] && cp /tmp/gh-aw/aw_info.json /tmp/gh-aw/usage/aw_info.json || true
[ -f /tmp/gh-aw/aw-info.jsonl ] && cp /tmp/gh-aw/aw-info.jsonl /tmp/gh-aw/usage/aw-info.jsonl || true
[ -f /tmp/gh-aw/agent_usage.jsonl ] && cp /tmp/gh-aw/agent_usage.jsonl /tmp/gh-aw/usage/agent_usage.jsonl || true
[ -f /tmp/gh-aw/detection_usage.jsonl ] && cp /tmp/gh-aw/detection_usage.jsonl /tmp/gh-aw/usage/detection_usage.jsonl || true
+ [ -f /tmp/gh-aw/github_rate_limits.jsonl ] && cp /tmp/gh-aw/github_rate_limits.jsonl /tmp/gh-aw/usage/github_rate_limits.jsonl || true
[ -f /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/sandbox/firewall-audit-logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/agent/token_usage.jsonl || true
[ -f /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/sandbox/firewall/logs/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/agent/token_usage.jsonl || true
[ -f /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/agent/token_usage.jsonl || true
@@ -1084,6 +1095,8 @@ jobs:
[ -f /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl ] && cp /tmp/gh-aw/threat-detection/sandbox/firewall/audit/api-proxy-logs/token-usage.jsonl /tmp/gh-aw/usage/detection/token_usage.jsonl || true
[ -f /tmp/gh-aw/usage/agent/token_usage.jsonl ] || : > /tmp/gh-aw/usage/agent/token_usage.jsonl
[ -f /tmp/gh-aw/usage/detection/token_usage.jsonl ] || : > /tmp/gh-aw/usage/detection/token_usage.jsonl
+ mkdir -p /tmp/gh-aw/usage/activity
+ node ${{ runner.temp }}/gh-aw/actions/generate_usage_activity_summary.cjs
find /tmp/gh-aw/usage -type f -print | sort
- name: Upload usage artifact
if: always()
@@ -1092,12 +1105,54 @@ jobs:
with:
name: usage
path: |
+ /tmp/gh-aw/usage/aw_info.json
/tmp/gh-aw/usage/aw-info.jsonl
/tmp/gh-aw/usage/agent_usage.jsonl
/tmp/gh-aw/usage/detection_usage.jsonl
+ /tmp/gh-aw/usage/github_rate_limits.jsonl
/tmp/gh-aw/usage/agent/token_usage.jsonl
/tmp/gh-aw/usage/detection/token_usage.jsonl
+ /tmp/gh-aw/usage/activity/summary.json
if-no-files-found: ignore
+ - name: Restore daily AIC usage cache
+ id: restore-daily-aic-cache-conclusion
+ if: always()
+ continue-on-error: true
+ uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+ with:
+ key: agentic-workflow-usage-syncjpdocsxplat-${{ github.run_id }}
+ restore-keys: agentic-workflow-usage-syncjpdocsxplat-
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ - name: Write daily AIC usage cache entry
+ id: write-daily-aic-cache
+ if: always()
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ github-token: ${{ github.token }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/write_daily_aic_usage_cache.cjs');
+ await main();
+ - name: Save daily AIC usage cache
+ id: save-daily-aic-cache
+ if: always()
+ continue-on-error: true
+ uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
+ with:
+ key: agentic-workflow-usage-syncjpdocsxplat-${{ github.run_id }}
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ - name: Upload daily AIC usage cache artifact
+ id: upload-daily-aic-cache
+ if: always()
+ continue-on-error: true
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: aic-usage-cache
+ path: /tmp/gh-aw/agentic-workflow-usage-cache.jsonl
+ if-no-files-found: ignore
+ retention-days: 7
- name: Process no-op messages
id: noop
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
@@ -1230,7 +1285,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -1239,8 +1294,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-xplat.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Download agent output artifact
id: download-agent-output
@@ -1258,7 +1313,7 @@ jobs:
echo "GH_AW_AGENT_OUTPUT=/tmp/gh-aw/agent_output.json" >> "$GITHUB_OUTPUT"
- name: Checkout repository for patch context
if: needs.agent.outputs.has_patch == 'true'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
# --- Threat Detection ---
@@ -1267,7 +1322,7 @@ jobs:
rm -rf /tmp/gh-aw/sandbox/firewall/logs
rm -rf /tmp/gh-aw/sandbox/firewall/audit
- name: Download container images
- run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.2@sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6 ghcr.io/github/gh-aw-firewall/api-proxy:0.27.2@sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4 ghcr.io/github/gh-aw-firewall/squid:0.27.2@sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.27.7@sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c ghcr.io/github/gh-aw-firewall/api-proxy:0.27.7@sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6 ghcr.io/github/gh-aw-firewall/squid:0.27.7@sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96
- name: Check if detection needed
id: detection_guard
if: always()
@@ -1330,11 +1385,11 @@ jobs:
node-version: '24'
package-manager-cache: false
- name: Install GitHub Copilot CLI
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.60
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.63
env:
GH_HOST: github.com
- name: Install AWF binary
- run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.2
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.27.7
- name: Execute GitHub Copilot CLI
if: always() && steps.detection_guard.outputs.run_detection == 'true'
continue-on-error: true
@@ -1353,37 +1408,43 @@ jobs:
export GH_AW_NODE_BIN
export COPILOT_API_KEY="$COPILOT_DUMMY_BYOK"
(umask 177 && touch /tmp/gh-aw/threat-detection/detection.log)
- GH_AW_MAX_AI_CREDITS="${{ vars.GH_AW_DEFAULT_DETECTION_MAX_AI_CREDITS || '400' }}"
- printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.2/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"github.com\",\"host.docker.internal\",\"registry.npmjs.org\",\"telemetry.enterprise.githubcopilot.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS}},\"container\":{\"imageTag\":\"0.27.2,squid=sha256:2e3a717e5f19a654cd9a2263beb52012b56bcb68562ec5ae2e42f9d156b49591,agent=sha256:f88e5b17b6b7a600117bc121114d6ce2155c88c983c0c939c5df884f730fa1d6,api-proxy=sha256:ee39841d980878ebbb87592903b06d31a1af500c71525c9616f7e8e2a27041a4,cli-proxy=sha256:02f3ec08f32dc26c5427920c6a2e2f3036238fce44802f2f11ef49ed8621b5d0\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
+ GH_AW_MAX_AI_CREDITS="${GH_AW_MAX_AI_CREDITS:-400}"
+ printf '%s\n' "{\"\$schema\":\"https://github.com/github/gh-aw-firewall/releases/download/v0.27.7/awf-config.schema.json\",\"network\":{\"allowDomains\":[\"api.business.githubcopilot.com\",\"api.enterprise.githubcopilot.com\",\"api.github.com\",\"api.githubcopilot.com\",\"api.individual.githubcopilot.com\",\"github.com\",\"host.docker.internal\",\"registry.npmjs.org\",\"telemetry.enterprise.githubcopilot.com\"]},\"apiProxy\":{\"enabled\":true,\"enableTokenSteering\":true,\"maxRuns\":500,\"maxAiCredits\":${GH_AW_MAX_AI_CREDITS},\"maxCacheMisses\":5},\"container\":{\"imageTag\":\"0.27.7,squid=sha256:deb1d4e19de62d51cee0508057a596a19315c3423ada4d675cad136dc8037c96,agent=sha256:aae231e4635c8999d039c132f1602d3df850fe9b84a00aa2b5ac981179b5661c,api-proxy=sha256:009caf2e3d88fa77b64e9a03a95a228fc58db0f1701c6d324b29ba5a3c7c79b6,cli-proxy=sha256:4757f198a3fa20f88bdbe70be7ae1a05f127d9c0a9e96a5d6460ef40c08fc83d\"}}" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
export GH_AW_MODELS_JSON_PATH="/tmp/gh-aw/models.json"
+ GH_AW_DOCKER_HOST=""
+ if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
+ GH_AW_DOCKER_HOST="${DOCKER_HOST}"
+ fi
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS=""
if [[ "${DOCKER_HOST:-}" =~ ^tcp:// ]]; then
GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS="--docker-host-path-prefix /tmp/gh-aw"
+ _GH_AW_CHROOT_JSON=$(jq -c --arg src /tmp/gh-aw --arg user "$(id -un)" --argjson uid "$(id -u)" --argjson gid "$(id -g)" --arg home /tmp/gh-aw/home '.chroot={"binariesSourcePath":$src,"identity":{"user":$user,"uid":$uid,"gid":$gid,"home":$home}}' "${RUNNER_TEMP}/gh-aw/awf-config.json") || { echo "chroot config patch failed" >&2; exit 1; }
+ printf '%s\n' "$_GH_AW_CHROOT_JSON" > "${RUNNER_TEMP}/gh-aw/awf-config.json"
+ printf '%s\n' "$_GH_AW_CHROOT_JSON" > "/tmp/gh-aw/awf-config.json"
fi
GH_AW_TOOL_CACHE_MOUNT=""
- GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"
+ GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"
if [ -d "$GH_AW_TOOL_CACHE" ]; then
if [[ "$GH_AW_TOOL_CACHE" != /opt/* ]]; then
GH_AW_TOOL_CACHE_MOUNT="$GH_AW_TOOL_CACHE:$GH_AW_TOOL_CACHE:ro"
fi
- elif [ -d "/home/runner/work/_tool" ]; then
- GH_AW_TOOL_CACHE_MOUNT="/home/runner/work/_tool:/home/runner/work/_tool:ro"
fi
- # shellcheck disable=SC1003
- sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
- -- /bin/bash -c 'set +o histexpand; GH_AW_TOOL_CACHE="${RUNNER_TOOL_CACHE:-/opt/hostedtoolcache}"; export PATH="$(find "$GH_AW_TOOL_CACHE" /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
+ # shellcheck disable=SC1003,SC2086
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" ${GH_AW_TOOL_CACHE_MOUNT:+--mount "$GH_AW_TOOL_CACHE_MOUNT"} ${GH_AW_DOCKER_HOST:+--docker-host "$GH_AW_DOCKER_HOST"} ${GH_AW_DOCKER_HOST_PATH_PREFIX_ARGS} --env-all --exclude-env COPILOT_GITHUB_TOKEN --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
+ -- /bin/bash -c 'set +o histexpand; : "${RUNNER_TOOL_CACHE:?RUNNER_TOOL_CACHE must be set}"; GH_AW_TOOL_CACHE="$RUNNER_TOOL_CACHE"; export PATH="$(find "$GH_AW_TOOL_CACHE" -maxdepth 5 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || true)"; fi; if [ -z "$GH_AW_NODE_EXEC" ]; then echo "node runtime missing on this runner — check runtimes.node in workflow YAML" >&2; exit 127; fi; GH_AW_NPM_GLOBAL_ROOT="$(npm root -g 2>/dev/null || true)"; if [ -n "$GH_AW_NPM_GLOBAL_ROOT" ]; then export NODE_PATH="${GH_AW_NPM_GLOBAL_ROOT}${NODE_PATH:+:${NODE_PATH}}"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
env:
AWF_REFLECT_ENABLED: 1
COPILOT_AGENT_RUNNER_TYPE: STANDALONE
COPILOT_DUMMY_BYOK: dummy-byok-key-for-offline-mode
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
COPILOT_MODEL: ${{ vars.GH_AW_MODEL_DETECTION_COPILOT || vars.GH_AW_DEFAULT_MODEL_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_MAX_AI_CREDITS: ${{ vars.GH_AW_DEFAULT_DETECTION_MAX_AI_CREDITS || '400' }}
GH_AW_MAX_TURNS: ${{ vars.GH_AW_DEFAULT_MAX_TURNS || '' }}
GH_AW_PHASE: detection
GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
GH_AW_TIMEOUT_MINUTES: 20
- GH_AW_VERSION: v0.79.8
+ GH_AW_VERSION: v0.80.9
GITHUB_API_URL: ${{ github.api_url }}
GITHUB_AW: true
GITHUB_COPILOT_INTEGRATION_ID: agentic-workflows
@@ -1397,6 +1458,7 @@ jobs:
GIT_COMMITTER_EMAIL: github-actions[bot]@users.noreply.github.com
GIT_COMMITTER_NAME: github-actions[bot]
RUNNER_TEMP: ${{ runner.temp }}
+ TRACEPARENT: ${{ env.GITHUB_AW_OTEL_TRACE_ID != '' && env.GITHUB_AW_OTEL_PARENT_SPAN_ID != '' && format('00-{0}-{1}-01', env.GITHUB_AW_OTEL_TRACE_ID, env.GITHUB_AW_OTEL_PARENT_SPAN_ID) || '' }}
- name: Parse threat detection token usage for step summary
id: parse_detection_token_usage
if: always()
@@ -1461,15 +1523,15 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-xplat.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Check team membership for workflow
id: check_membership
@@ -1506,7 +1568,7 @@ jobs:
GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }}
GH_AW_ENGINE_ID: "copilot"
GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }}
- GH_AW_ENGINE_VERSION: "1.0.60"
+ GH_AW_ENGINE_VERSION: "1.0.63"
GH_AW_THREAT_DETECTION_AIC: ${{ needs.detection.outputs.aic }}
GH_AW_WORKFLOW_ID: "sync-jp-docs-xplat"
GH_AW_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
@@ -1523,7 +1585,7 @@ jobs:
steps:
- name: Setup Scripts
id: setup
- uses: github/gh-aw-actions/setup@c0338fef4749d08c21f8f975fb0e37efa17dda47 # v0.79.8
+ uses: github/gh-aw-actions/setup@8c7d04ebf1ece56cd381446125da3e0f6896294a # v0.80.9
with:
destination: ${{ runner.temp }}/gh-aw/actions
job-name: ${{ github.job }}
@@ -1532,8 +1594,8 @@ jobs:
env:
GH_AW_SETUP_WORKFLOW_NAME: "Sync Japanese Documentation (xplat)"
GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/sync-jp-docs-xplat.lock.yml@${{ github.ref }}
- GH_AW_INFO_VERSION: "1.0.60"
- GH_AW_INFO_AWF_VERSION: "v0.27.2"
+ GH_AW_INFO_VERSION: "1.0.63"
+ GH_AW_INFO_AWF_VERSION: "v0.27.7"
GH_AW_INFO_ENGINE_ID: "copilot"
- name: Download agent output artifact
id: download-agent-output
@@ -1555,51 +1617,23 @@ jobs:
with:
name: agent
path: /tmp/gh-aw/
- - name: Extract base branch from agent output
- id: extract-base-branch
- if: steps.download-agent-output.outcome == 'success'
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
- with:
- script: |
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
- setupGlobals(core, github, context, exec, io, getOctokit);
- const { main } = require('${{ runner.temp }}/gh-aw/actions/extract_base_branch_from_agent_output.cjs');
- await main();
- - name: Checkout repository (trusted default branch for comment events)
- if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request') && (github.event_name == 'issue_comment' || github.event_name == 'pull_request_review_comment')
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- with:
- ref: ${{ github.event.repository.default_branch }}
- token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
- persist-credentials: false
- fetch-depth: 1
- name: Checkout repository
- if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request') && github.event_name != 'issue_comment' && github.event_name != 'pull_request_review_comment'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
+ if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request')
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
- ref: vnext
+ persist-credentials: true
token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
- persist-credentials: false
- fetch-depth: 1
- name: Configure Git credentials
if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request')
env:
- REPO_NAME: ${{ github.repository }}
- SERVER_URL: ${{ github.server_url }}
+ GITHUB_REPOSITORY: ${{ github.repository }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
GIT_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
- run: |
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
- git config --global user.name "github-actions[bot]"
- git config --global am.keepcr true
- # Re-authenticate git with GitHub token
- SERVER_URL_STRIPPED="${SERVER_URL#https://}"
- git remote set-url origin "https://x-access-token:${GIT_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
- echo "Git configured with standard GitHub Actions identity"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_git_credentials.sh"
- name: Configure GH_HOST for enterprise compatibility
id: ghes-host-config
shell: bash
- # zizmor: ignore[github-env] - GITHUB_SERVER_URL is set by GitHub Actions, not user input.
- run: |
+ run: | # zizmor: ignore[github-env] - GITHUB_SERVER_URL is set by GitHub Actions, not user input.
# Derive GH_HOST from GITHUB_SERVER_URL so the gh CLI targets the correct
# GitHub instance (GHES/GHEC). On github.com this is a harmless no-op.
GH_HOST="${GITHUB_SERVER_URL#https://}"
@@ -1614,7 +1648,7 @@ jobs:
GH_AW_ALLOWED_DOMAINS: "api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,api.snapcraft.io,archive.ubuntu.com,azure.archive.ubuntu.com,crl.geotrust.com,crl.globalsign.com,crl.identrust.com,crl.sectigo.com,crl.thawte.com,crl.usertrust.com,crl.verisign.com,crl3.digicert.com,crl4.digicert.com,crls.ssl.com,github.com,host.docker.internal,json-schema.org,json.schemastore.org,keyserver.ubuntu.com,ocsp.digicert.com,ocsp.geotrust.com,ocsp.globalsign.com,ocsp.identrust.com,ocsp.sectigo.com,ocsp.ssl.com,ocsp.thawte.com,ocsp.usertrust.com,ocsp.verisign.com,packagecloud.io,packages.cloud.google.com,packages.microsoft.com,ppa.launchpad.net,raw.githubusercontent.com,registry.npmjs.org,s.symcb.com,s.symcd.com,security.ubuntu.com,telemetry.enterprise.githubcopilot.com,ts-crl.ws.symantec.com,ts-ocsp.ws.symantec.com,www.googleapis.com"
GITHUB_SERVER_URL: ${{ github.server_url }}
GITHUB_API_URL: ${{ github.api_url }}
- GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_pull_request\":{\"base_branch\":\"vnext\",\"draft\":false,\"if_no_changes\":\"ignore\",\"labels\":[\"translation\",\"japanese\",\"automation\"],\"max\":1,\"max_patch_files\":100,\"max_patch_size\":1024,\"protect_top_level_dot_folders\":true,\"protected_files\":[\"package.json\",\"bun.lockb\",\"bunfig.toml\",\"deno.json\",\"deno.jsonc\",\"deno.lock\",\"global.json\",\"NuGet.Config\",\"Directory.Packages.props\",\"mix.exs\",\"mix.lock\",\"go.mod\",\"go.sum\",\"stack.yaml\",\"stack.yaml.lock\",\"pom.xml\",\"build.gradle\",\"build.gradle.kts\",\"settings.gradle\",\"settings.gradle.kts\",\"gradle.properties\",\"package-lock.json\",\"yarn.lock\",\"pnpm-lock.yaml\",\"npm-shrinkwrap.json\",\"requirements.txt\",\"Pipfile\",\"Pipfile.lock\",\"pyproject.toml\",\"setup.py\",\"setup.cfg\",\"Gemfile\",\"Gemfile.lock\",\"uv.lock\",\"CODEOWNERS\",\"DESIGN.md\",\"README.md\",\"CONTRIBUTING.md\",\"CHANGELOG.md\",\"SECURITY.md\",\"CODE_OF_CONDUCT.md\",\"AGENTS.md\",\"CLAUDE.md\",\"GEMINI.md\"],\"protected_files_policy\":\"request_review\",\"title_prefix\":\"[jp-sync] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
+ GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_pull_request\":{\"base_branch\":\"vnext\",\"draft\":false,\"if_no_changes\":\"ignore\",\"labels\":[\"translation\",\"japanese\",\"automation\"],\"max\":1,\"max_patch_files\":100,\"max_patch_size\":4096,\"protect_top_level_dot_folders\":true,\"protected_files\":[\"package.json\",\"bun.lockb\",\"bunfig.toml\",\"deno.json\",\"deno.jsonc\",\"deno.lock\",\"global.json\",\"NuGet.Config\",\"Directory.Packages.props\",\"mix.exs\",\"mix.lock\",\"go.mod\",\"go.sum\",\"stack.yaml\",\"stack.yaml.lock\",\"pom.xml\",\"build.gradle\",\"build.gradle.kts\",\"settings.gradle\",\"settings.gradle.kts\",\"gradle.properties\",\"package-lock.json\",\"yarn.lock\",\"pnpm-lock.yaml\",\"npm-shrinkwrap.json\",\"requirements.txt\",\"Pipfile\",\"Pipfile.lock\",\"pyproject.toml\",\"setup.py\",\"setup.cfg\",\"Gemfile\",\"Gemfile.lock\",\"uv.lock\",\"CODEOWNERS\",\"DESIGN.md\",\"README.md\",\"CONTRIBUTING.md\",\"CHANGELOG.md\",\"SECURITY.md\",\"CODE_OF_CONDUCT.md\",\"AGENTS.md\",\"CLAUDE.md\",\"GEMINI.md\"],\"protected_files_policy\":\"request_review\",\"title_prefix\":\"[jp-sync] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
GH_AW_CI_TRIGGER_TOKEN: ${{ secrets.GH_AW_CI_TRIGGER_TOKEN }}
with:
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/sync-jp-docs-xplat.md b/.github/workflows/sync-jp-docs-xplat.md
index aacacac039..562938d33d 100644
--- a/.github/workflows/sync-jp-docs-xplat.md
+++ b/.github/workflows/sync-jp-docs-xplat.md
@@ -126,8 +126,71 @@ Note the author name/email — you will include it verbatim in the pull
request body (Step 6) so the PR can be manually assigned to the right
person.
+### Step 1b — Build the list of TOC-covered files
+
+Extract every file path referenced in the English TOC, so that only
+documentation pages that are part of the published table of contents are
+translated.
+
+```bash
+node -e "
+const fs = require('fs');
+const path = require('path');
+const root = 'docs/xplat/src/content/en';
+const tocs = ['toc.json'];
+const out = new Set();
+function walk(node, dir) {
+ if (Array.isArray(node)) { node.forEach(n => walk(n, dir)); return; }
+ if (node && typeof node === 'object') {
+ if (typeof node.href === 'string' && !/^https?:/.test(node.href)) {
+ const base = path.posix.join(root, dir, node.href).replace(/\.(md|mdx)$/, '');
+ out.add(base + '.md');
+ out.add(base + '.mdx');
+ }
+ if (Array.isArray(node.items)) node.items.forEach(n => walk(n, dir));
+ if (Array.isArray(node.children)) node.children.forEach(n => walk(n, dir));
+ }
+}
+for (const t of tocs) {
+ const full = path.join(root, t);
+ if (!fs.existsSync(full)) continue;
+ out.add(path.posix.join(root, t));
+ walk(JSON.parse(fs.readFileSync(full, 'utf8')), path.posix.dirname(t));
+}
+// Add _shared/ source files. The xplat generate.mjs script expands these into
+// per-component pages written to generated/{Platform}/{lang}/ (outside src/).
+// That output is NOT committed to git. Translating the JP _shared/ template is
+// what keeps the JP generated output correct; no per-component pages need to be
+// translated separately.
+const sharedDir = path.join(root, 'components/grids/_shared');
+if (fs.existsSync(sharedDir)) {
+ fs.readdirSync(sharedDir)
+ .filter(f => f.endsWith('.mdx'))
+ .forEach(f => out.add(path.posix.join(root, 'components/grids/_shared', f)));
+}
+console.log([...out].join('\n'));
+"
+```
+
+This produces a list that includes:
+- All TOC-referenced files (both `.md` and `.mdx` variants to handle extension
+ differences between the TOC file and actual content files)
+- All `components/grids/_shared/` source templates
+
+`_shared/` files are source templates expanded by `generate.mjs` into per-component
+pages written to `generated/{Platform}/{lang}/` (outside the git-tracked source).
+Translating the JP `_shared/` template is what keeps JP generated output correct.
+
+If a changed file is **not** in this list, discard it — do not translate it.
+If all changed files are discarded, emit a `noop` output explaining that there
+are no translatable documentation changes to sync.
+
### Step 2 — For each changed English file, locate its Japanese counterpart
+From the list of changed files identified in Step 1, keep only those whose path
+appears in the TOC list produced in Step 1b. Discard any changed file that is
+**not** in the TOC list — it should not be translated.
+
Replace the path segment `docs/xplat/src/content/en/` with
`docs/xplat/src/content/jp/` to find the counterpart, e.g.:
diff --git a/DOCFX-SYNC.md b/DOCFX-SYNC.md
index b2d3980c0e..6db9796ee8 100644
--- a/DOCFX-SYNC.md
+++ b/DOCFX-SYNC.md
@@ -20,6 +20,7 @@ Common regressions introduced by the upstream sync:
| `` | Remove entirely |
| `suffix={false}` missing on non-Component classes | Restore from master |
| `prefixed={false}` missing on interface/enum/type types | Restore from master |
+| Missing or overwritten `llms.description` | Add or preserve a specific summary for the generated `llms.txt` index |
---
@@ -87,6 +88,14 @@ Check all files (not just changed ones):
node scripts/check-mdx-quality.mjs --all
```
+Validate English and Japanese LLM metadata after importing or resolving files:
+
+```bash
+npm run check:llms-metadata
+```
+
+This check does not modify content. Fix each reported source frontmatter block manually and preserve existing `llms.description` values when resolving sync conflicts.
+
### 4. Fix raw angularApiUrl links
For each file reported with raw `{environment:angularApiUrl}` links:
@@ -153,6 +162,8 @@ Angular docs use `` **without** a `pkg=` prop for most types (defaults
Japanese content mirrors English structure under `docs/angular/src/content/jp/`. Apply the same fixes. The text is Japanese but the `` components are identical to EN — use the EN file as the reference for what components should exist.
+Japanese `llms.description` values must be written in Japanese. They should summarize the actual page content rather than translate English marketing boilerplate.
+
---
## Checking against the skill rules
diff --git a/README.md b/README.md
index a29aac5371..dbdf81da9d 100644
--- a/README.md
+++ b/README.md
@@ -84,6 +84,16 @@ These scripts also check for ambiguous `ApiLink` references. If a symbol exists
Fix ambiguous links by adding a specific `pkg` or `kind` prop. If the correct target differs by platform, wrap platform-specific links in `PlatformBlock`.
+## Checking LLM Metadata
+
+English and Japanese topics use `llms.description` to provide concise page summaries in the generated `llms.txt` indexes. Validate all author-owned source topics with:
+
+```bash
+npm run check:llms-metadata
+```
+
+The check is read-only and reports the source file and line for missing or malformed metadata. See [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md#llm-metadata) for the writing rules and [migration.md](migration.md#4-frontmatter) for migration guidance.
+
## Content Locations
- Angular content lives under `docs/angular/src/content//`.
diff --git a/cspell.json b/cspell.json
index 0d6fc29b65..1d47e03df7 100644
--- a/cspell.json
+++ b/cspell.json
@@ -269,6 +269,7 @@
"junie",
"xplat",
"agentic",
+ "llms",
"astro",
"mdx",
"frontmatter",
diff --git a/docs/angular/astro.config.ts b/docs/angular/astro.config.ts
index f97a661c80..efb6be567c 100644
--- a/docs/angular/astro.config.ts
+++ b/docs/angular/astro.config.ts
@@ -45,6 +45,10 @@ const site = mode === 'production' ? `${PROD_HOST}${base}`
const docsDir = path.join(__dirname, 'src', 'content', docsLang);
const componentsDocsDir = path.join(docsDir, 'components');
const templatesDir = path.join(docsDir, 'grids_templates');
+const localizedDescription: Partial> = {
+ jp: 'Ignite UI for Angular のコンポーネントと API リファレンス ドキュメントです。',
+ kr: 'Ignite UI for Angular 컴포넌트 및 API 참조 문서입니다.',
+};
// ── Pre-build steps (run before Astro starts) ────────────────────────────────
generateGridTopics(templatesDir, componentsDocsDir);
@@ -55,6 +59,7 @@ export default createDocsSite({
base: mode !== 'development' ? base : undefined,
title: 'Ignite UI for Angular',
description: 'Component and API reference docs for Ignite UI for Angular.',
+ localizedDescription: localizedDescription[docsLang],
platform: 'angular',
navLang: docsLang,
mode,
diff --git a/docs/angular/package.json b/docs/angular/package.json
index 7ac0b17b2d..88a295336a 100644
--- a/docs/angular/package.json
+++ b/docs/angular/package.json
@@ -37,7 +37,7 @@
"dependencies": {
"astro": "^6.1.6",
"docs-template": "file:../../",
- "igniteui-astro-components": "0.0.24",
+ "igniteui-astro-components": "0.0.26",
"sharp": "^0.34.2"
},
"devDependencies": {
diff --git a/docs/angular/src/content/en/components/accordion.mdx b/docs/angular/src/content/en/components/accordion.mdx
index 44ab5f6772..807fef1edc 100644
--- a/docs/angular/src/content/en/components/accordion.mdx
+++ b/docs/angular/src/content/en/components/accordion.mdx
@@ -3,6 +3,8 @@ title: Angular Accordion Component – Fully-featured collapsible panels - Infra
description: Angular Accordion is used to build vertical expandable panels in accordion menu. Check how to do it with Ignite UI for Angular accordion component.
keywords: angular accordion, angular accordion component, angular accordion example, ignite ui for angular, angular UI components, infragistics
license: MIT
+llms:
+ description: "The Angular Accordion is a GUI component for building vertical expandable panels with clickable headers and associated content sections, displayed in a single container."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -21,7 +23,7 @@ Users are enabled to interact and navigate among a list of items, such as thumbn
The following is a basic Angular Accordion example of a FAQ section. It operates as an accordion, with individually working sections. You can toggle each text block with a single click, while expanding multiple panels at the same time. This way you can read information more easily, without having to go back and forth between an automatically expanding and collapsing panel, which conceals the previously opened section every time.
-In it, you can see how to define an `igx-accrodion` and its . The sample also demonstrates the two types of expansion behavior. The switch button sets the property to toggle between single and multiple branches to be expanded at a time.
+In it, you can see how to define an `igx-accordion` and its . The sample also demonstrates the two types of expansion behavior. The switch button sets the property to toggle between single and multiple branches to be expanded at a time.
diff --git a/docs/angular/src/content/en/components/action-strip.mdx b/docs/angular/src/content/en/components/action-strip.mdx
index 7b4caadeb1..dd0b39f1ae 100644
--- a/docs/angular/src/content/en/components/action-strip.mdx
+++ b/docs/angular/src/content/en/components/action-strip.mdx
@@ -3,6 +3,8 @@ title: Angular Action Strip Component – Ignite UI for Angular | Infragistics |
description: The Action Strip represents a template area for one or more actions. The Action Strip requires to be inside a relative container, as it is going to overlay it.
keywords: Angular Action Strip component, Angular Action Strip directive, Angular Action Strip control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Angular UI Components
license: MIT
+llms:
+ description: "The Ignite UI for Angular Action Strip component provides an overlay area containing one or more actions allowing additional UI and functionality to be shown on top of a specific target container upon user interaction e.g. hover."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/ai/ai-assisted-development-overview.mdx b/docs/angular/src/content/en/components/ai/ai-assisted-development-overview.mdx
index e31ab2b743..21cc36c62a 100644
--- a/docs/angular/src/content/en/components/ai/ai-assisted-development-overview.mdx
+++ b/docs/angular/src/content/en/components/ai/ai-assisted-development-overview.mdx
@@ -6,6 +6,8 @@ license: MIT
canonicalLink: "/components/ai-assisted-development-overview"
mentionedTypes: []
last_updated: "2026-05-03"
+llms:
+ description: "Ignite UI for Angular provides a complete AI toolchain - Agent Skills, the Ignite UI CLI MCP server, the Ignite UI Theming MCP server and the MAKER MCP server - that grounds AI coding assistants in correct component APIs, import paths, and design tokens."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/ai/cli-mcp.mdx b/docs/angular/src/content/en/components/ai/cli-mcp.mdx
index 419983b0fa..7c04c13a30 100644
--- a/docs/angular/src/content/en/components/ai/cli-mcp.mdx
+++ b/docs/angular/src/content/en/components/ai/cli-mcp.mdx
@@ -6,6 +6,8 @@ license: MIT
canonicalLink: "/components/ai/cli-mcp"
mentionedTypes: []
last_updated: "2026-04-24"
+llms:
+ description: "The Ignite UI CLI MCP is a Model Context Protocol (MCP) server that enables AI assistants to scaffold projects, modify existing apps, create and update components, and answer documentation questions for Ignite UI for Angular applications."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/ai/maker-framework.mdx b/docs/angular/src/content/en/components/ai/maker-framework.mdx
index 8661cf69f4..bd5342be94 100644
--- a/docs/angular/src/content/en/components/ai/maker-framework.mdx
+++ b/docs/angular/src/content/en/components/ai/maker-framework.mdx
@@ -5,6 +5,8 @@ keywords: Angular, Ignite UI for Angular, Infragistics, MAKER, multi-agent, AI o
license: MIT
canonicalLink: "/components/ai/maker-framework"
mentionedTypes: []
+llms:
+ description: "The MAKER Framework (@igniteui/maker-mcp) is a multi-agent AI orchestration MCP server from Infragistics that decomposes complex tasks into validated, executable step plans using a consensus-based voting algorithm across multiple AI agents."
---
{/*cspell:words MAKER batchSize*/}
diff --git a/docs/angular/src/content/en/components/ai/skills.mdx b/docs/angular/src/content/en/components/ai/skills.mdx
index 3a95886d6c..32aff83992 100644
--- a/docs/angular/src/content/en/components/ai/skills.mdx
+++ b/docs/angular/src/content/en/components/ai/skills.mdx
@@ -3,6 +3,8 @@ title: Agent Skills | AI Skills | AI-Assisted Development | Ignite UI for Angula
description: Learn how to use Agent Skills to supercharge AI-assisted development with Ignite UI for Angular components, grids, data operations, and theming.
keywords: Ignite UI for Angular, agent skills, ai assisted development, github copilot, cursor, windsurf, claude, gemini cli, junie
last_updated: "2026-04-24"
+llms:
+ description: "Ignite UI for Angular ships with Agent Skills - structured knowledge files that teach AI coding assistants (GitHub Copilot, Cursor, Windsurf, Claude, Gemini CLI, JetBrains Junie, etc.) how to work with Ignite UI for Angular."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/ai/theming-mcp.mdx b/docs/angular/src/content/en/components/ai/theming-mcp.mdx
index a187ea6508..7af334cc39 100644
--- a/docs/angular/src/content/en/components/ai/theming-mcp.mdx
+++ b/docs/angular/src/content/en/components/ai/theming-mcp.mdx
@@ -2,6 +2,8 @@
title: Angular Theming MCP | Infragistics
description: Use the Ignite UI Theming MCP server to generate Ignite UI for Angular palettes, themes, typography, and design token overrides through your AI assistant.
keywords: Ignite UI for Angular controls, Angular widgets, web widgets, UI widgets, Components Suite, Artificial Intelligence, AI, MCP, Model Context Protocol, Theming, Custom Themes, Palettes, Typography, Elevations
+llms:
+ description: "The Ignite UI Theming MCP is a Model Context Protocol (MCP) server that enables AI assistants to generate production-ready theming code for Ignite UI applications."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/angular-reactive-form-validation.mdx b/docs/angular/src/content/en/components/angular-reactive-form-validation.mdx
index d0e7cc3059..749ac30399 100644
--- a/docs/angular/src/content/en/components/angular-reactive-form-validation.mdx
+++ b/docs/angular/src/content/en/components/angular-reactive-form-validation.mdx
@@ -2,6 +2,8 @@
title: Angular reactive form validation – Ignite UI for Angular
description: Angular form validation is a process of verifying if inputs entered by a user into a web-form are correct. Check how to do it with Ignite UI for Angular reactive forms.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Combo components, Angular Reactive Forms, Angular Forms
+llms:
+ description: "Reactive forms in Angular provide a direct access to the underlying form object model, offering an immutable and explicit approach to handling form inputs."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/autocomplete.mdx b/docs/angular/src/content/en/components/autocomplete.mdx
index 52b06590c2..0a4812c6a6 100644
--- a/docs/angular/src/content/en/components/autocomplete.mdx
+++ b/docs/angular/src/content/en/components/autocomplete.mdx
@@ -3,6 +3,8 @@ title: Angular Autocomplete Component – Ignite UI for Angular - MIT license
description: The Angular Autocomplete directive offers a way to enhance a text input by showing a panel of suggested options provided by the developer. Try it now.
keywords: Angular Autocomplete component, Angular Autocomplete directive, Angular Autocomplete control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "Angular Autocomplete is a search box directive that enables users to easily find, filter and select an item from a list of suggestions while they type."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/avatar.mdx b/docs/angular/src/content/en/components/avatar.mdx
index bcbda96a9f..ed90d5299c 100644
--- a/docs/angular/src/content/en/components/avatar.mdx
+++ b/docs/angular/src/content/en/components/avatar.mdx
@@ -3,6 +3,8 @@ title: Angular Avatar Component – Ignite UI for Angular | Infragistics | MIT l
description: Ignite UI for Angular Avatar control enables users to add images, material icons or initials within any application for instances such as a profile button.
keywords: Angular Avatar component, Angular Avatar control, Ignite UI for Angular, Angular UI components
license: MIT
+llms:
+ description: "Angular Avatar component helps adding initials, images, or material icons to your application."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/badge.mdx b/docs/angular/src/content/en/components/badge.mdx
index 3fd3b53906..037ff5c5ba 100644
--- a/docs/angular/src/content/en/components/badge.mdx
+++ b/docs/angular/src/content/en/components/badge.mdx
@@ -3,6 +3,8 @@ title: Angular Badge Component – Ignite UI for Angular | Infragistics | MIT li
description: Display an active count or icon in a predefined style to decorate other components anywhere in an application with Ignite UI for Angular Badge control.
keywords: Angular Badge component, Angular Badge control, Ignite UI for Angular, Angular UI Components
license: MIT
+llms:
+ description: "Angular Badge is a component used in conjunction with avatars, navigation menus, or other components in an application when a visual notification is needed."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/banner.mdx b/docs/angular/src/content/en/components/banner.mdx
index 7ca75f5d91..bc22c8b2e0 100644
--- a/docs/angular/src/content/en/components/banner.mdx
+++ b/docs/angular/src/content/en/components/banner.mdx
@@ -3,6 +3,8 @@ title: Angular Banner Component – Ignite UI for Angular | Infragistics | MIT l
description: Easily integrate a short, non-intrusive message (along with optional actions) using Ignite UI for Angular Banner component.
keywords: Angular Banner component, Angular Banner control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Angular UI Components
license: MIT
+llms:
+ description: "Angular Banner Component provides a way to easily display a prominent message to your application's users in a way that is less transient than a snackbar and less obtrusive than a dialog."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/bullet-graph.mdx b/docs/angular/src/content/en/components/bullet-graph.mdx
index 9896a0cc00..260824b749 100644
--- a/docs/angular/src/content/en/components/bullet-graph.mdx
+++ b/docs/angular/src/content/en/components/bullet-graph.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Bullet Graph, animation, labels, needle, scales, ranges, tick
license: commercial
mentionedTypes: ["BulletGraph"]
namespace: Infragistics.Controls.Gauges
+llms:
+ description: "The Angular bullet graph component allows for a linear and concise view of measures compared against a scale."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/button-group.mdx b/docs/angular/src/content/en/components/button-group.mdx
index b4b150a7c1..10e8c3eea4 100644
--- a/docs/angular/src/content/en/components/button-group.mdx
+++ b/docs/angular/src/content/en/components/button-group.mdx
@@ -3,6 +3,8 @@ title: Angular Button Group Component – Ignite UI for Angular | Infragistics |
description: Provides button group functionality to developers and also allows horizontal/vertical alignment, single/multiple selection with toggling.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Button Group components, Angular Button Group controls, Angular Buttons components, Angular Buttons controls
license: MIT
+llms:
+ description: "Angular Button Group component is used to organize buttons into styled button groups with horizontal/vertical alignment, single/multiple selection and toggling."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/button.mdx b/docs/angular/src/content/en/components/button.mdx
index 56b10567e5..3e27a70f33 100644
--- a/docs/angular/src/content/en/components/button.mdx
+++ b/docs/angular/src/content/en/components/button.mdx
@@ -3,6 +3,8 @@ title: Angular Button Component - Ignite UI for Angular - MIT license
description: Enhance standard buttons with built-in text, images and more features using Ignite UI for Angular Button component. Try it now.
keywords: Angular Button component, Angular Button control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Angular UI Components,
license: MIT
+llms:
+ description: "Angular Button directive is used for creating and adding actionable buttons to a web page/application."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/calendar.mdx b/docs/angular/src/content/en/components/calendar.mdx
index 8ecad72e16..d7ff32d4c9 100644
--- a/docs/angular/src/content/en/components/calendar.mdx
+++ b/docs/angular/src/content/en/components/calendar.mdx
@@ -3,6 +3,8 @@ title: Angular Calendar Component – Ignite UI for Angular | MIT license
description: With Angular Calendar Component, users can create intuitive calendars for applications to display date information using three different selection modes. Try it Now
keywords: angular calendar, angular calendar component, angular UI components, angular UI library, ignite ui for angular
license: MIT
+llms:
+ description: "Angular Calendar is a UI component used for displaying dates and days in an app."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/card.mdx b/docs/angular/src/content/en/components/card.mdx
index 2e54784f0d..95c0d3c2c4 100644
--- a/docs/angular/src/content/en/components/card.mdx
+++ b/docs/angular/src/content/en/components/card.mdx
@@ -3,6 +3,8 @@ title: Angular Card Component – Ignite UI for Angular - MIT license
description: With Angular Card component you can present users with dashboards and engaging text, images, icons or buttons as an entry point for detailed information. Try it now.
keywords: Angular Card component, Angular Card control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "Angular Card represents a flexible container that has different elements like title text, descriptions, image styles, call to action buttons, links and others."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -74,8 +76,7 @@ import { IGX_CARD_DIRECTIVES } from 'igniteui-angular/card';
-
New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers.
-
+
New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers.
@@ -132,8 +133,7 @@ Then to represent the demo card template we can add the following code.
-
New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers.
-
+
New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers.
@@ -225,8 +225,7 @@ Here's an example of an outlined horizontal card:
-
{{card.content}}
-
+
{{card.content}}
@@ -290,8 +289,7 @@ Below is an example showing how you can create a semi-horizontal card, where we
-
{{card.content}}
-
+
{{card.content}}
diff --git a/docs/angular/src/content/en/components/carousel.mdx b/docs/angular/src/content/en/components/carousel.mdx
index b56c252ec6..79c170f0f5 100644
--- a/docs/angular/src/content/en/components/carousel.mdx
+++ b/docs/angular/src/content/en/components/carousel.mdx
@@ -3,6 +3,8 @@ title: Angular Carousel Component – Ignite UI for Angular - MIT license
description: Use Ignite UI for Angular Carousel component to navigate through a collection of slides, cards or page-based interfaces with endless programmatic features. Try it now
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Carousel component, Angular Carousel control
license: MIT
+llms:
+ description: "Ignite UI for Angular Carousel is a responsive, lightweight component that provides the most flexible way to create slideshow-like web experience for users who navigate back and forth through a collection of images with text slides, links, and other html elements."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/charts/chart-api.mdx b/docs/angular/src/content/en/components/charts/chart-api.mdx
index fb694797a0..2f69498328 100644
--- a/docs/angular/src/content/en/components/charts/chart-api.mdx
+++ b/docs/angular/src/content/en/components/charts/chart-api.mdx
@@ -5,6 +5,8 @@ _keywords: Angular charts, chart API, API, Ignite UI for Angular, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular charts provide simple and easy to use APIs to plot your data in CategoryChart, FinancialChart, DataChart, DataPieChart, DoughnutChart, PieChart, and Sparkline UI elements."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/chart-features.mdx b/docs/angular/src/content/en/components/charts/chart-features.mdx
index 59fcf82941..5b3fb1a799 100644
--- a/docs/angular/src/content/en/components/charts/chart-features.mdx
+++ b/docs/angular/src/content/en/components/charts/chart-features.mdx
@@ -4,6 +4,8 @@ description: Infragistics' Angular Chart Features
keywords: "Angular Charts, Features, Infragistics"
license: commercial
mentionedTypes: ["FinancialChart", "CategoryChart", "DataChart"]
+llms:
+ description: "The Ignite UI for Angular Charts allow you to display many different features to portray the full data story to be told with your chart."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/chart-overview.mdx b/docs/angular/src/content/en/components/charts/chart-overview.mdx
index 52087e58d2..90b8471a59 100644
--- a/docs/angular/src/content/en/components/charts/chart-overview.mdx
+++ b/docs/angular/src/content/en/components/charts/chart-overview.mdx
@@ -4,6 +4,8 @@ description: "Ignite UI for Angular Charts & Graphs is an extensive library of d
keywords: "Angular Charts, Chart, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "FinancialChart", "CategoryChart", "DataChart", "CategoryChartType"]
+llms:
+ description: "Ignite UI for Angular Charts & Graphs is an extensive library of data visualizations that enable stunning, interactive charts and dashboards for your web and mobile apps."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-animations.mdx b/docs/angular/src/content/en/components/charts/features/chart-animations.mdx
index f8c0fcd918..e9031e60db 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-animations.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-animations.mdx
@@ -5,13 +5,15 @@ _keywords: Angular Charts, Animations, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Animations allow you to ease-in the series as it loads a new data source."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
# Angular Chart Animations
-Animations allows you to ease-in the series as it loads a new data source. The available animation differs depending on the type of series involved. For example, the column series animates by rising from the x-axis, a line series animates by drawing from the origin of y-axis.
+Animations allow you to ease-in the series as it loads a new data source. The available animation differs depending on the type of series involved. For example, the column series animates by rising from the x-axis, a line series animates by drawing from the origin of y-axis.
Animations are disabled in the Ignite UI for Angular Charts, but they can be enabled by setting the property to true. From there, you can set the property to determine how long your animation should take to complete and the to determine the type of animation that takes place.
diff --git a/docs/angular/src/content/en/components/charts/features/chart-annotations.mdx b/docs/angular/src/content/en/components/charts/features/chart-annotations.mdx
index 847e2e8814..a56e9d66e3 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-annotations.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-annotations.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Charts, Annotations, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Angular chart's hover interactions and annotations are implemented through hover interaction layers, which are series that are added to the series collection."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-axis-gridlines.mdx b/docs/angular/src/content/en/components/charts/features/chart-axis-gridlines.mdx
index 58110ee38c..bb610320c2 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-axis-gridlines.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-axis-gridlines.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Axis, Gridlines, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "XYChart", "DomainChart", "DataChart", "NumericXAxis", "NumericYAxis", "NumericAxisBase" ]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "All Ignite UI for Angular charts include built-in capability to modify appearance of axis lines as well as frequency of major/minor gridlines and tickmarks that are rendered on the X-Axis and Y-Axis."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-axis-layouts.mdx b/docs/angular/src/content/en/components/charts/features/chart-axis-layouts.mdx
index 0ea924fcbd..edc68e7cf1 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-axis-layouts.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-axis-layouts.mdx
@@ -4,6 +4,8 @@ description: Infragistics' Angular Axis Layouts
keywords: "Angular Axis, Layouts, Location, Position, Share, Multiple, Crossing, Infragistics"
license: commercial
mentionedTypes: [ "DomainChart", "CategoryChart", "XYChart", "DomainChart", "DataChart", "Axis", "AxisLabelSettings", "ScatterSplineSeries", "TimeXAxis" ]
+llms:
+ description: "All Ignite UI for Angular charts include options to configure many axis layout options such as location as well as having the ability to share axis between series or have multiple axes in the same chart."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-axis-options.mdx b/docs/angular/src/content/en/components/charts/features/chart-axis-options.mdx
index f3b44b93cd..61246ace20 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-axis-options.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-axis-options.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Axis, Options, Title, Labels, Gap, Overlap, Range, Scale, Mod
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In all Ignite UI for Angular charts, the axes provide properties for visual configurations such as titles, labels, and ranges."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-axis-types.mdx b/docs/angular/src/content/en/components/charts/features/chart-axis-types.mdx
index b46a85262d..3291d16b8c 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-axis-types.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-axis-types.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Axis, Options, Title, Labels, Gap, Overlap, Range, Scale, Mod
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "FinancialChart", "FinancialChartYAxisMode", "FinancialChartXAxisMode", "NumericYAxis", "CategoryXAxis"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Category Chart uses only one CategoryXAxis and one NumericYAxis type."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-data-aggregations.mdx b/docs/angular/src/content/en/components/charts/features/chart-data-aggregations.mdx
index 6963437950..cef58ac824 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-data-aggregations.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-data-aggregations.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Charts, Markers, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In the Ignite UI for Angular CategoryChart control Data Aggregations feature allows you to group data in the chart by unique values on the XAxis and then sort those groups."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-data-annotations.mdx b/docs/angular/src/content/en/components/charts/features/chart-data-annotations.mdx
index a949cdcec8..9d8b84723c 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-data-annotations.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-data-annotations.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Data Annotations, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "CrosshairLayer", "FinalValueLayer", "CalloutLayer"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In the Angular chart, the data annotation layers allow you to annotate data plotted in Data Chart with sloped lines, vertical/horizontal lines (aka axis slices), vertical/horizontal strips (targeting specific axis), rectangles, and even parallelograms (aka bands)."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-data-filtering.mdx b/docs/angular/src/content/en/components/charts/features/chart-data-filtering.mdx
index b660e63565..e5a15e5b42 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-data-filtering.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-data-filtering.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Filtering, Infragistics"
license: commercial
mentionedTypes: ["CategoryChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Data Filtering allows you to query large data in order to analyze and plot small subset of data entries via filter expressions, all without having to manually modify the datasource bound to the chart."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-data-legend.mdx b/docs/angular/src/content/en/components/charts/features/chart-data-legend.mdx
index a809ea560d..523ed35c62 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-data-legend.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-data-legend.mdx
@@ -5,6 +5,8 @@ keywords: "Angular charts, chart legend, legend, legend types, Ignite UI for Ang
license: commercial
mentionedTypes: ["CategoryChart", "DataLegend", "Series", "DataLegendSummaryType", "DataAbbreviationMode" ]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Angular, the DataLegend is highly-customizable version of the Legend, that shows values of series and provides many configuration properties for filtering series rows and values columns, styling and formatting values."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-data-selection.mdx b/docs/angular/src/content/en/components/charts/features/chart-data-selection.mdx
index 3ef07bf9bd..96c94961ce 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-data-selection.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-data-selection.mdx
@@ -6,6 +6,8 @@ license: commercial
_language: en
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular selection feature in Angular Data Chart allows users to interactively select, highlight, outline and vice-versa deselect single or multiple series within a chart."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-data-tooltip.mdx b/docs/angular/src/content/en/components/charts/features/chart-data-tooltip.mdx
index 857f4df5bb..8a662e92e0 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-data-tooltip.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-data-tooltip.mdx
@@ -5,6 +5,8 @@ _keywords: Angular charts, chart legend, legend, legend types, Ignite UI for Ang
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Angular, the DataToolTip displays values and titles of series as well as legend badges of series in a tooltip."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-highlight-filter.mdx b/docs/angular/src/content/en/components/charts/features/chart-highlight-filter.mdx
index b5f0ae80b5..5983438455 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-highlight-filter.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-highlight-filter.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Highlighting, Filtering, Infragistics"
license: commercial
mentionedTypes: ["CategoryChart", "DataChart", "Series", "HighlightedValuesDisplayMode"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Chart components support a data highlighting overlay that can enhance the visualization of the series plotted in those charts by allowing you to view a subset of the data plotted."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-highlighting.mdx b/docs/angular/src/content/en/components/charts/features/chart-highlighting.mdx
index ac8e7de22c..7a958cf493 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-highlighting.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-highlighting.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Charts, Highlighting, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "All Angular Charts support a variety of highlighting options."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-legends.mdx b/docs/angular/src/content/en/components/charts/features/chart-legends.mdx
index a56fd222c8..87c2110ff0 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-legends.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-legends.mdx
@@ -3,6 +3,8 @@ title: Angular Chart Legends | Data Visualization Tools | Infragistics
description: Use Infragistics Ignite UI for Angular chart with legends in horizontal or vertical orientation!
mentionedTypes: ["XamDataChart", "Legend"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Use Infragistics Ignite UI for Angular chart with legends in horizontal or vertical orientation!"
---
# Angular Chart Legends
diff --git a/docs/angular/src/content/en/components/charts/features/chart-markers.mdx b/docs/angular/src/content/en/components/charts/features/chart-markers.mdx
index 1cd9daec0c..ecdfb86912 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-markers.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-markers.mdx
@@ -1,10 +1,12 @@
---
title: Angular Chart Markers | Data Visualization | Infragistics
_description: Infragistics' Angular Chart Markers
-_keywords: Angular Charts, Markers, Infragistics
+_keywords: Angular Charts, Markers, Marker Size, Infragistics
_license: commercial
-
+mentionedTypes: ["CategoryChart", "CategoryChartType", "MarkerType", "MarkerSeries", "ScatterLineSeries", "ScatterSplineSeries", "ScatterSeries", "LineSeries", "SplineSeries", "MarkerAutomaticBehavior", "SeriesViewer"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Angular, markers are visual elements that display the values of data points in the chart's plot area."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
@@ -22,6 +24,38 @@ The colors of the markers are also managed by setting the
+## Angular Chart Marker Size
+
+You can control the exact device-independent pixel dimensions of data point markers by setting the `MarkerSize` property on any series that supports markers. This gives you precise control over how large markers appear on screen, regardless of the marker template or style being used.
+
+By default, marker sizing is determined by the series marker template. When you set `MarkerSize` to a specific numeric value, all markers in that series render at that exact device-independent pixel width and height. Setting `MarkerSize` back to `NaN` restores the default template-driven sizing.
+
+The `MarkerSize` property is available on all series types that derive from `MarkerSeries`, including `LineSeries`, `SplineSeries`, `AreaSeries`, `ColumnSeries`, `ScatterSeries`, `ScatterLineSeries`, `ScatterSplineSeries`, and polar/radial series types.
+
+The following code examples show how to set `MarkerSize` to 30 device-independent pixels on a `ScatterLineSeries` in the `XamDataChart` control:
+
+To reset markers to their default template-driven size, set `MarkerSize` to `NaN` (or remove the attribute in markup):
+
+The following sample demonstrates `MarkerSize` on scatter series with an interactive editor:
+
+
+
+
+For `BubbleSeries`, the `MarkerSize` property does not override the bubble radius, which is controlled by the radius data column and the `RadiusScale`. Bubble sizes remain entirely driven by the data and scale configuration.
+
+
+
+
+## Angular Chart Checkmark Marker Type
+
+The Ignite UI for Angular charts include a `Checkmark` option in the `MarkerType` enum. This marker renders a V-shaped checkmark icon inside a circle on data points in your chart.
+
+You can apply the `Checkmark` marker type to an individual series by setting its `MarkerType` property to `MarkerType.Checkmark`. To use the checkmark shape for all series in the chart simultaneously, set the chart's `MarkerAutomaticBehavior` property to `MarkerAutomaticBehavior.Checkmark`.
+
+The `SeriesViewer.CheckmarkMarkerTemplate` property defines the marker template used for series with a checkmark marker type, and can be used to customize its appearance across the chart.
+
+
+
## Angular Chart Marker Templates
In addition to marker properties, you can implement your own marker by setting a function to the property of a series rendered in the control as it is demonstrated in example below.
diff --git a/docs/angular/src/content/en/components/charts/features/chart-navigation.mdx b/docs/angular/src/content/en/components/charts/features/chart-navigation.mdx
index 6aa4dbb33e..481daf8abf 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-navigation.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-navigation.mdx
@@ -5,6 +5,8 @@ _keywords: Angular charts, data chart, navigation, Ignite UI for Angular, Infrag
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular charts allows for interactive panning and zooming via the mouse, keyboard and touch."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-overlays.mdx b/docs/angular/src/content/en/components/charts/features/chart-overlays.mdx
index df633f3f0b..fd39a72dd1 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-overlays.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-overlays.mdx
@@ -5,6 +5,8 @@ _keywords: Angular charts, data chart, value overlay, Ignite UI for Angular, Inf
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Angular DataChart allows for placement of horizontal or vertical lines at a single numeric value that you define through usage of the ValueOverlay."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-performance.mdx b/docs/angular/src/content/en/components/charts/features/chart-performance.mdx
index 1e0ae7e7de..bd5e9a1258 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-performance.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-performance.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Performance, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "FinancialChart", "DataChart", "FinancialChartVolumeType", "FinancialChartZoomSliderType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Angular charts are optimized for high performance of rendering millions of data points and updating them every few milliseconds."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
@@ -95,7 +97,7 @@ The following table lists chart types in order from the fastest performance to s
| Pie Charts | - [Pie Chart](../types/pie-chart.md) - [Donut Chart](../types/donut-chart.md) - [Radial Pie Chart](../types/radial-chart.md#angular-radial-pie-chart) |
| Line Charts | - [Category Line Chart](../types/line-chart.md#angular-line-chart-example) - [Category Spline Chart](../types/spline-chart.md#angular-spline-chart-example) - [Step Line Chart](../types/step-chart.md#angular-step-line-chart) - [Radial Line Chart](../types/radial-chart.md#angular-radial-line-chart) - [Polar Line Chart](../types/polar-chart.md#angular-polar-line-chart) - [Scatter Line Chart](../types/scatter-chart.md#angular-scatter-line-chart) - [Scatter Polyline Chart](../types/shape-chart.md#angular-scatter-polyline-chart) (\*) - [Scatter Contour Chart](../types/scatter-chart.md#angular-scatter-contour-chart) - [Stacked Line Chart](../types/stacked-chart.md#angular-stacked-line-chart) - [Stacked 100% Line Chart](../types/stacked-chart.md#angular-stacked-100-line-chart) |
| Area Charts | - [Category Area Chart](../types/area-chart.md#angular-area-chart-example) - [Step Area Chart](../types/step-chart.md#angular-step-area-chart) - [Range Area Chart](../types/area-chart.md#angular-range-area-chart) - [Radial Area Chart](../types/radial-chart.md#angular-radial-area-chart) - [Polar Area Chart](../types/polar-chart.md#angular-polar-area-chart) - [Scatter Polygon Chart](../types/shape-chart.md#angular-scatter-polygon-chart) (\*) - [Scatter Area Chart](../types/scatter-chart.md#angular-scatter-area-chart) - [Stacked Area Chart](../types/stacked-chart.md#angular-stacked-area-chart) - [Stacked 100% Area Chart](../types/stacked-chart.md#angular-stacked-100-area-chart) |
-| Column Charts | - [Column Chart](../types/column-chart.md#angular-column-chart-example) - [Bar Chart](../types/bar-chart.md#angular-bar-chart-example) - [Waterfall Chart](../types/column-chart.md#angular-waterfall-chart) - [Range Column Chart](../types/column-chart.md#angular-range-column-chart) - [Radial Column Chart](../types/radial-chart.md#angular-radial-column-chart) - [Stacked Column Chart](../types/stacked-chart.md#angular-stacked-column-chart) - [Stacked Bar Chart](../types/stacked-chart.md#angular-stacked-bar-chart) - [Stacked 100% Column Chart](../types/stacked-chart.md#angular-stacked-100-column-chart) - [Stacked 100% Bar Chart](../types/stacked-chart.md#angular-stacked-100-bar-chart) |
+| Column Charts | - [Column Chart](../types/column-chart.md#angular-column-chart-example) - [Bar Chart](../types/bar-chart.md#angular-bar-chart-example) - [Waterfall Chart](../types/column-chart.md#angular-waterfall-chart) - [Range Column Chart](../types/column-chart.md#angular-range-column-chart) - [Range Bar Chart](../types/bar-chart.md#angular-range-bar-chart) - [Radial Column Chart](../types/radial-chart.md#angular-radial-column-chart) - [Stacked Column Chart](../types/stacked-chart.md#angular-stacked-column-chart) - [Stacked Bar Chart](../types/stacked-chart.md#angular-stacked-bar-chart) - [Stacked 100% Column Chart](../types/stacked-chart.md#angular-stacked-100-column-chart) - [Stacked 100% Bar Chart](../types/stacked-chart.md#angular-stacked-100-bar-chart) |
| Spline Charts | - [Category Spline Chart](../types/spline-chart.md#angular-spline-chart-example) - [Polar Spline Chart](../types/polar-chart.md#angular-polar-spline-chart) - [Scatter Spline Chart](../types/scatter-chart.md#angular-scatter-spline-chart) - [Stacked Spline Chart](../types/stacked-chart.md#angular-stacked-spline-chart) - [Stacked 100% Spline Chart](../types/stacked-chart.md#angular-stacked-100-spline-chart) |
| Point Charts | - [Category Point Chart](../types/point-chart.md) - [Scatter HD Chart](../types/scatter-chart.md#angular-scatter-high-density-chart) - [Scatter Marker Chart](../types/scatter-chart.md#angular-scatter-marker-chart) - [Scatter Bubble Chart](../types/bubble-chart.md) - [Polar Marker Chart](../types/polar-chart.md#angular-polar-marker-chart) |
| Financial Charts | - [Stock Chart in Line Mode](../types/stock-chart.md) - [Stock Chart in Column Mode](../types/stock-chart.md) - [Stock Chart in Bar Mode](../types/stock-chart.md) - [Stock Chart in Candle Mode](../types/stock-chart.md) - [Stock Chart with Overlays](../types/stock-chart.md) - [Stock Chart with Zoom Pane](../types/stock-chart.md) - [Stock Chart with Volume Pane](../types/stock-chart.md#volume-pane) - [Stock Chart with Indicator Pane](../types/stock-chart.md#indicator-pane) |
diff --git a/docs/angular/src/content/en/components/charts/features/chart-synchronization.mdx b/docs/angular/src/content/en/components/charts/features/chart-synchronization.mdx
index 4e0e51ef94..0537850207 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-synchronization.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-synchronization.mdx
@@ -5,6 +5,8 @@ keywords: "Angular charts, data chart, synchronization, Ignite UI for Angular, I
license: commercial
mentionedTypes: ["DataChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular data chart allows for synchronization with respect to the coordination of zooming, panning, and crosshair events between multiple charts."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-titles.mdx b/docs/angular/src/content/en/components/charts/features/chart-titles.mdx
index 9a03e21067..e355901af9 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-titles.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-titles.mdx
@@ -5,6 +5,8 @@ keywords: "Angular charts, chart titles, titles, Ignite UI for Angular, Infragis
license: commercial
mentionedTypes: ["CategoryChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The title and subtitle feature of the chart control allows you to add information to the top section of the Angular charts."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-tooltips.mdx b/docs/angular/src/content/en/components/charts/features/chart-tooltips.mdx
index 5331d3d2c8..56df252eaf 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-tooltips.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-tooltips.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Tooltips, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "ToolTipType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Angular charts, tooltips provide details about bound data and they are rendered in popups when the end-user hovers over data points."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-trendlines.mdx b/docs/angular/src/content/en/components/charts/features/chart-trendlines.mdx
index 7e07445f60..b76d1c1cd5 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-trendlines.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-trendlines.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Charts, Trendlines, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Angular charts, trendlines help in identifying a trend or finding patterns in data."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/features/chart-user-annotations.mdx b/docs/angular/src/content/en/components/charts/features/chart-user-annotations.mdx
index 5d23171db1..6c38276e41 100644
--- a/docs/angular/src/content/en/components/charts/features/chart-user-annotations.mdx
+++ b/docs/angular/src/content/en/components/charts/features/chart-user-annotations.mdx
@@ -4,6 +4,8 @@ description: Infragistics' Angular Chart User Annotations
keywords: "Angular Charts, User Annotations, Infragistics"
mentionedTypes: ["DataChart", "UserAnnotationLayer", "UserStripAnnotation", "UserSliceAnnotation", "UserPointAnnotation", "Toolbar", "UserAnnotationInformation", "SeriesViewer"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "In Ignite UI for Angular, you can annotate the DataChart with slice, strip, and point annotations at runtime using the user annotations feature."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/area-chart.mdx b/docs/angular/src/content/en/components/charts/types/area-chart.mdx
index a3aeebd02a..0e93c46710 100644
--- a/docs/angular/src/content/en/components/charts/types/area-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/area-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Area Chart, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Area Chart renders as a collection of points connected by straight line segments with the area below the line filled in."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/bar-chart.mdx b/docs/angular/src/content/en/components/charts/types/bar-chart.mdx
index d8b8af11c9..4c27e9e614 100644
--- a/docs/angular/src/content/en/components/charts/types/bar-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/bar-chart.mdx
@@ -3,8 +3,10 @@ title: "Angular Bar Chart and Graph | Ignite UI for Angular"
description: "Angular Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories. Try for FREE."
keywords: "Angular Charts, Bar Chart, Bar Graph, Horizontal Chart, Infragistics"
license: commercial
-mentionedTypes: ["DataChart", "BarSeries", "StackedBarSeries", "Stacked100BarSeries", "Series"]
+mentionedTypes: ["DataChart", "BarSeries", "StackedBarSeries", "Stacked100BarSeries", "RangeBarSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Bar Chart, Bar Graph, or Horizontal Bar Chart, is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by horizontal bars with equal heights but different."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
@@ -95,6 +97,20 @@ You can create this type of chart in the control by
+
+
+## Angular Range Bar Chart
+
+The Angular Range Bar Chart belongs to a group of range charts and is rendered using horizontal rectangles that can appear in the middle of the plot area of the chart, rather than stretching from the left like the traditional [Category Bar Chart](bar-chart.md#angular-bar-chart-example). This type of series emphasizes the amount of change between low values and high values in the same data point over a period of time or compares multiple items.
+
+Range values are represented on the X-Axis and categories are displayed on the Y-Axis. Because each bar visualizes both a low value and a high value, this chart is useful for scenarios such as showing daily temperature ranges, minimum and maximum prices, or any bounded measurements where a single value is not sufficient.
+
+The Range Bar Chart is identical to the [Range Column Chart](column-chart.md#angular-range-column-chart) in all aspects except that the ranges are represented as a set of horizontal bars rather than vertical columns.
+
+You can create this type of chart in the control by binding your data to a . The series reads low and high values from `LowMemberPath` and `HighMemberPath`, and it typically uses a `NumericXAxis` with a `CategoryYAxis`, as shown in the example below:
+
+
+
## Additional Resources
You can find more information about related chart types in these topics:
@@ -111,4 +127,5 @@ You can find more information about related chart types in these topics:
+
diff --git a/docs/angular/src/content/en/components/charts/types/bubble-chart.mdx b/docs/angular/src/content/en/components/charts/types/bubble-chart.mdx
index 20a867bd77..facd71c7d6 100644
--- a/docs/angular/src/content/en/components/charts/types/bubble-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/bubble-chart.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Charts, Bubble Chart, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Bubble Chart is a type of Scatter Chart that show markers with variable scaling to represent the relationship among items in several distinct series of data or to plot data items using x and y coordinates."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/column-chart.mdx b/docs/angular/src/content/en/components/charts/types/column-chart.mdx
index 60ec6fb529..e2f7adde03 100644
--- a/docs/angular/src/content/en/components/charts/types/column-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/column-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Column Chart, Column Graph, Vertical Bar Chart, Infra
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "ColumnSeries", "WaterfallSeries", "StackedColumnSeries", "Stacked100ColumnSeries", "RangeColumnSeries", "RadialColumnSeries", "CategoryChartType", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Column Char, Column Graph, or Vertical Bar Chart is among the most common category chart types used to quickly compare frequency, count, total, or average of data in different categories with data encoded by columns with equal widths but different heights."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/composite-chart.mdx b/docs/angular/src/content/en/components/charts/types/composite-chart.mdx
index b333114812..0fbc505053 100644
--- a/docs/angular/src/content/en/components/charts/types/composite-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/composite-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Composite Chart, Combo Chart, Infragistics"
license: commercial
mentionedTypes: ["DataChart", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Composite Chart, also called a Combo Chart, is visualization that combines different types of chart types in the same plot area."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/data-pie-chart.mdx b/docs/angular/src/content/en/components/charts/types/data-pie-chart.mdx
index b9acaf7f47..6afa824448 100644
--- a/docs/angular/src/content/en/components/charts/types/data-pie-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/data-pie-chart.mdx
@@ -5,6 +5,8 @@ _keywords: Angular charts, pie chart, Ignite UI for Angular, Infragistics, data
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Data Pie Chart is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/donut-chart.mdx b/docs/angular/src/content/en/components/charts/types/donut-chart.mdx
index 708ec3e29c..8d6c112930 100644
--- a/docs/angular/src/content/en/components/charts/types/donut-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/donut-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Donut Chart, Donut Chart, Infragistics"
license: commercial
mentionedTypes: ["DoughnutChart", "DoughnutChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Donut Chart is similar to the Pie Chart, proportionally illustrating the occurrences of a variable."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/line-chart.mdx b/docs/angular/src/content/en/components/charts/types/line-chart.mdx
index 5cde3f417a..bd476886bc 100644
--- a/docs/angular/src/content/en/components/charts/types/line-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/line-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Line Chart, Line Graph, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "Legend", "PolarLineSeries", "RadialLineSeries", "StackedLineSeries", "Stacked100LineSeries", "Series", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Line Chart or Line Graph is a type of category charts that show the continuous data values represented by points connected by straight line segments of one or more quantities over a period of time."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/pie-chart.mdx b/docs/angular/src/content/en/components/charts/types/pie-chart.mdx
index e6109b99ca..dccf3fc514 100644
--- a/docs/angular/src/content/en/components/charts/types/pie-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/pie-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular charts, pie chart, Ignite UI for Angular, Infragistics, data
license: commercial
mentionedTypes: ["PieChart", "DataChart"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Pie Chart, or Pie Graph, is a part-to-whole chart that shows how categories (parts) of a data set add up to a total (whole) value."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/point-chart.mdx b/docs/angular/src/content/en/components/charts/types/point-chart.mdx
index cef9b2660c..26e1c5c785 100644
--- a/docs/angular/src/content/en/components/charts/types/point-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/point-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Point Chart, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "CategoryChartType", "Legend", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Point Chart renders a collection of points."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/polar-chart.mdx b/docs/angular/src/content/en/components/charts/types/polar-chart.mdx
index 3f9aa005de..155f88f268 100644
--- a/docs/angular/src/content/en/components/charts/types/polar-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/polar-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Polar Chart, Infragistics"
license: commercial
mentionedTypes: ["DataChart", "PolarAreaSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Polar Chart uses the polar coordinate system (angle, radius) instead of the Cartesian coordinate system (x, y) to plot data in chart."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/radial-chart.mdx b/docs/angular/src/content/en/components/charts/types/radial-chart.mdx
index 5d57c840e5..5e99244336 100644
--- a/docs/angular/src/content/en/components/charts/types/radial-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/radial-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Radial Chart, Infragistics"
license: commercial
mentionedTypes: ["DataChart", "RadialLineSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Radial Chart takes data and render it as collection of data points wrapped around a circle (rather than stretching along a horizontal line)."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/scatter-chart.mdx b/docs/angular/src/content/en/components/charts/types/scatter-chart.mdx
index 3aa513dd0a..e9f7844ab6 100644
--- a/docs/angular/src/content/en/components/charts/types/scatter-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/scatter-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Scatter Chart, Infragistics"
license: commercial
mentionedTypes: ["DataChart", "ScatterSeries", "ScatterLineSeries", "ScatterSplineSeries", "HighDensityScatterSeries", "ScatterAreaSeries", "ScatterContourSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Scatter Chart belongs to a group of charts that show the relationship among items in distinct series of data or to plot data items using numeric x and y coordinates."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/shape-chart.mdx b/docs/angular/src/content/en/components/charts/types/shape-chart.mdx
index 749e188859..de7c887bcd 100644
--- a/docs/angular/src/content/en/components/charts/types/shape-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/shape-chart.mdx
@@ -5,6 +5,8 @@ _keywords: Angular Charts, Shape Chart, Infragistics
_license: commercial
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Shape Charts are a group of charts that take array of shapes (array or arrays of X/Y points) and render them as collection of polygons or polylines in Cartesian (x, y) coordinate system."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/sparkline-chart.mdx b/docs/angular/src/content/en/components/charts/types/sparkline-chart.mdx
index 319f29ca34..50fbf282f8 100644
--- a/docs/angular/src/content/en/components/charts/types/sparkline-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/sparkline-chart.mdx
@@ -5,6 +5,8 @@ keywords: Sparkline, Ignite UI for Angular, Infragistics, WinLoss, Area, Column
license: commercial
mentionedTypes: ["Sparkline", "SparklineDisplayType", "TrendLineType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Sparkline is a lightweight charting control."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/spline-chart.mdx b/docs/angular/src/content/en/components/charts/types/spline-chart.mdx
index 85ad7ed3d9..79f2829382 100644
--- a/docs/angular/src/content/en/components/charts/types/spline-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/spline-chart.mdx
@@ -4,6 +4,8 @@ description: Infragistics' Angular Spline Chart
keywords: "Angular Charts, Spline Chart, Infragistics"
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "DataChart", "SplineSeries", "StackedSplineSeries", "Stacked100SplineSeries", "Series", "CategoryChartType"]
+llms:
+ description: "The Ignite UI for Angular Spline Chart belongs to a group of Category Charts that render as a collection of points connected by smooth curves of spline."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/stacked-chart.mdx b/docs/angular/src/content/en/components/charts/types/stacked-chart.mdx
index a6701a39ab..3beca2f72c 100644
--- a/docs/angular/src/content/en/components/charts/types/stacked-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/stacked-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Stacked Chart, Stacked 100% Chart, Infragistics"
license: commercial
mentionedTypes: ["DataChart", "StackedAreaSeries", "Stacked100AreaSeries", "StackedBarSeries", "Stacked100BarSeries", "StackedColumnSeries", "Stacked100ColumnSeries", "StackedLineSeries", "Stacked100LineSeries", "StackedSplineSeries", "Stacked100SplineSeries", "StackedSplineAreaSeries", "Stacked100SplineAreaSeries", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Stacked Chart belongs to a special group of charts that render multiple values of data items as stacked area/polygons, bars, columns, lines, or splines."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/step-chart.mdx b/docs/angular/src/content/en/components/charts/types/step-chart.mdx
index 4d1d33531f..d32ea9e5ce 100644
--- a/docs/angular/src/content/en/components/charts/types/step-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/step-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Step Chart, Step Area Chart, Step Line Chart, Infragi
license: commercial
mentionedTypes: ["DomainChart", "CategoryChart", "CategoryChartType", "Series", "CategoryChartType"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Step Chart belongs to a group of category charts that render as a collection of points connected by continuous vertical and horizontal lines."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/stock-chart.mdx b/docs/angular/src/content/en/components/charts/types/stock-chart.mdx
index e101178db7..860595225f 100644
--- a/docs/angular/src/content/en/components/charts/types/stock-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/stock-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Charts, Stock Chart, Financial Chart, Candlestick Chart, OHLC
license: commercial
mentionedTypes: ["DomainChart", "FinancialChart", "FinancialChartType", "IndicatorTypes", "ZoomSliderType", "Series"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Stock Chart, sometimes referred to as Angular Financial Chart or Candlestick Chart, is a composite visualization that renders stock ticker data, or price data in an interactive time-series display."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/charts/types/treemap-chart.mdx b/docs/angular/src/content/en/components/charts/types/treemap-chart.mdx
index 8513183b8d..7984b950bf 100644
--- a/docs/angular/src/content/en/components/charts/types/treemap-chart.mdx
+++ b/docs/angular/src/content/en/components/charts/types/treemap-chart.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Tree Map, Treemap, layout, orientation, Ignite UI for Angular
license: commercial
mentionedTypes: ["Treemap", "TreemapOrientation", "TreemapLayoutType", "TreemapHighlightingMode", "TreemapHighlightedValueDisplayMode"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "The Ignite UI for Angular Treemap chart displays hierarchical (tree-structured) data as a set of nested nodes."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/chat.mdx b/docs/angular/src/content/en/components/chat.mdx
index 378312e4b8..a1dd4e0ddd 100644
--- a/docs/angular/src/content/en/components/chat.mdx
+++ b/docs/angular/src/content/en/components/chat.mdx
@@ -4,6 +4,8 @@ description: With the Ignite UI for Angular Chat component, you can build intera
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Chat components, Angular Chat controls
license: MIT
mentionedTypes: ["Chat"]
+llms:
+ description: "The Chat component provides a complete solution for building conversational interfaces in your applications."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
@@ -96,7 +98,7 @@ By default, the input area includes an attachment button. You can control which
```ts
public options: IgxChatOptions = {
- acceptedFiles="image/*,.pdf",
+ acceptedFiles: "image/*,.pdf",
};
```
diff --git a/docs/angular/src/content/en/components/checkbox.mdx b/docs/angular/src/content/en/components/checkbox.mdx
index 0ab9dba1e7..0f0660d65e 100644
--- a/docs/angular/src/content/en/components/checkbox.mdx
+++ b/docs/angular/src/content/en/components/checkbox.mdx
@@ -3,6 +3,8 @@ title: Angular Checkbox Component – Ignite UI for Angular - MIT license
description: Ignite UI for Angular Checkbox component is a selection control that allows users to make a binary choice for a certain condition. Try it Now
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Checkbox components, Angular Checkbox controls
license: MIT
+llms:
+ description: "Angular Checkbox is an extension of the standard HTML input type checkbox, providing similar functionality, only enhanced with things like animations and Material Design styling."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/chip.mdx b/docs/angular/src/content/en/components/chip.mdx
index 7fc4c9e099..c23e2dd8aa 100644
--- a/docs/angular/src/content/en/components/chip.mdx
+++ b/docs/angular/src/content/en/components/chip.mdx
@@ -3,6 +3,8 @@ title: Angular Chip Component – Ignite UI for Angular | Infragistics | MIT lic
description: The Ignite UI for Angular Chip component provide compact elements that represent an input, attribute, or action.
keywords: Angular Chip, Angular Chip Component, Angular Chip Area, Angular Chip Area Component, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular UI Components
license: MIT
+llms:
+ description: "The Angular Chip component is a visual element that displays information in an oval container."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/circular-progress.mdx b/docs/angular/src/content/en/components/circular-progress.mdx
index 72fa5904c5..a685fbbce8 100644
--- a/docs/angular/src/content/en/components/circular-progress.mdx
+++ b/docs/angular/src/content/en/components/circular-progress.mdx
@@ -3,6 +3,8 @@ title: Angular Circular Progress Component – Ignite UI for Angular | Infragist
description: Ignite UI for Angular Circular Progress Indicator component allows developers to display progress in a circle with endless customization options.
keywords: Angular Circular Progress component, Angular Circular Progress control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Angular UI Components
license: MIT
+llms:
+ description: "The Ignite UI for Angular Circular Progress Indicator component provides a visual indicator of an application’s process as it changes."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/combo-features.mdx b/docs/angular/src/content/en/components/combo-features.mdx
index 519df94e40..a1d9570546 100644
--- a/docs/angular/src/content/en/components/combo-features.mdx
+++ b/docs/angular/src/content/en/components/combo-features.mdx
@@ -3,6 +3,8 @@ title: ComboBox Features - MIT license
description: Combo control exposes several of features including data and value binding, custom values, filtering, grouping, etc.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Combo components, Angular Features, Angular Combo Features, Angular Combo Data Binding, Angular Combo Value Binding, Angular Combo Data Filtering, Angular Combo Grouping, Angular Combo Custom Values
license: MIT
+llms:
+ description: "The Ignite UI for Angular ComboBox control exposes several features including data and value binding, custom values, filtering, grouping, etc."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/combo-remote.mdx b/docs/angular/src/content/en/components/combo-remote.mdx
index 6707680e07..401d31c32e 100644
--- a/docs/angular/src/content/en/components/combo-remote.mdx
+++ b/docs/angular/src/content/en/components/combo-remote.mdx
@@ -3,6 +3,8 @@ title: ComboBox Remote Binding - MIT license
description: The igx-combo exposes API that allows to bind a combo to a remote service and retrieve data on demand.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Combo components, Angular Combo controls, Angular Combo Remote Binding
license: MIT
+llms:
+ description: "The Ignite UI for Angular ComboBox Component exposes an API that allows binding a combobox to a remote service and retrieving data on demand."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/combo-templates.mdx b/docs/angular/src/content/en/components/combo-templates.mdx
index 016a4bb6c5..6bbf09f852 100644
--- a/docs/angular/src/content/en/components/combo-templates.mdx
+++ b/docs/angular/src/content/en/components/combo-templates.mdx
@@ -3,6 +3,8 @@ title: ComboBox Templates - MIT license
description: Custom templates for different areas of the igx-combo component can be defined, including items, header, footer, empty list and adding button.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Combo components, Angular Templates, Angular Combo Templates
license: MIT
+llms:
+ description: "The Ignite UI for Angular ComboBox Component allows defining custom templates for different areas such as header, footer, items, empty list and adding button."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/combo.mdx b/docs/angular/src/content/en/components/combo.mdx
index 8fa67e799c..9130ceb900 100644
--- a/docs/angular/src/content/en/components/combo.mdx
+++ b/docs/angular/src/content/en/components/combo.mdx
@@ -3,6 +3,8 @@ title: Angular Combobox Component | Data binding combobox | Infragistics | MIT l
description: The Ignite UI for Angular ComboBox provides a powerful input, combining features of the basic HTML input, select, filtering and custom drop-down lists. Try it for FREE
keywords: angular combobox, angular combo component, angular combobox component, Angular UI Components, ignite ui for angular, infragistics
license: MIT
+llms:
+ description: "The Angular ComboBox component represents a drop-down list that provides editable functionalities, allowing users to choose multiple options from a predefined list."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/dashboard-tile.mdx b/docs/angular/src/content/en/components/dashboard-tile.mdx
index 47439fe09b..e850627a1f 100644
--- a/docs/angular/src/content/en/components/dashboard-tile.mdx
+++ b/docs/angular/src/content/en/components/dashboard-tile.mdx
@@ -4,6 +4,8 @@ description: See how you can easily get started with Angular Dashboard Tile Comp
keywords: "Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Dashboard components, Angular Dashboard Tile controls"
license: commercial
mentionedTypes: ["Toolbar", "CategoryChart", "DataChart", "RadialGauge", "LinearGauge", "GeographicMap"]
+llms:
+ description: "The Angular Dashboard Tile is a automatic data visualization component which determines via analysis of a DataSource collection/array or single data point what would be the most appropriate visualization to display."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/date-picker.mdx b/docs/angular/src/content/en/components/date-picker.mdx
index ed7b820549..4bcfba3c09 100644
--- a/docs/angular/src/content/en/components/date-picker.mdx
+++ b/docs/angular/src/content/en/components/date-picker.mdx
@@ -3,6 +3,8 @@ title: Angular Datepicker Component – Ignite UI for Angular - MIT license
description: Learn how to use a functionality to select a date from a calendar to your web application with Angular Datepicker Component by Ignite UI. Try it now.
keywords: angular datepicker, angular datepicker component, angular UI components, angular component, ignite ui for angular
license: MIT
+llms:
+ description: "Angular Date Picker is a feature rich component used for entering a date through manual text input or choosing date values from a calendar dialog that pops up."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -257,7 +259,7 @@ The exposes keyboard_arrow_up
- keyboard_arrow_down
+ keyboard_arrow_down
```
diff --git a/docs/angular/src/content/en/components/date-range-picker.mdx b/docs/angular/src/content/en/components/date-range-picker.mdx
index 2a78822f0e..2784532a7e 100644
--- a/docs/angular/src/content/en/components/date-range-picker.mdx
+++ b/docs/angular/src/content/en/components/date-range-picker.mdx
@@ -3,6 +3,8 @@ title: Angular Date Range Picker Component | Ignite UI for Angular | MIT license
description: The Angular Date Range Picker component allows you to choose a date range by defining its start and end date. You can select a range from a calendar UI. Try it now.
keywords: Angular Date Range Picker, Date Range Picker, Date Picker, Angular Date Range Picker Component, Angular UI Components, Angular component
license: MIT
+llms:
+ description: "The Angular Date Range Picker is a lightweight component that includes a text input and a calendar pop-up, allowing users to easily select start and end dates."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -464,8 +466,7 @@ The `IgxDateRangePickerComponent` is also a validator which means it controls it
{/* minValue & maxValue will be true if the current range does not satisfy them */}
-
Value not in range.
-
+
Value not in range.
```
diff --git a/docs/angular/src/content/en/components/date-time-editor.mdx b/docs/angular/src/content/en/components/date-time-editor.mdx
index e081fb3b91..877b6d7446 100644
--- a/docs/angular/src/content/en/components/date-time-editor.mdx
+++ b/docs/angular/src/content/en/components/date-time-editor.mdx
@@ -3,6 +3,8 @@ title: Angular Date Time Editor Component | Ignite UI for Angular | MIT license
description: The Ignite UI for Angular Date Time Editor Directive allows the user to handle date and time using a Date Object.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Native Angular Components, Angular Date Time Editor Directive, Angular Date Time Directive control, Date Time Editor, Angular Date Time Directive
license: MIT
+llms:
+ description: "The Ignite UI for Angular Date Time Editor Directive allows the user to set and edit the date and time in a chosen input element."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/dialog.mdx b/docs/angular/src/content/en/components/dialog.mdx
index c4e3351fbb..e473219b19 100644
--- a/docs/angular/src/content/en/components/dialog.mdx
+++ b/docs/angular/src/content/en/components/dialog.mdx
@@ -3,6 +3,8 @@ title: Angular Dialog Window Component - MIT license
description: Whether building informative dialogs or data manipulation windows, Ignite UI for Angular Dialog Window component can manage information shown in real-time for fast capability.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular Dialog Window component, Angular Dialog Window control, Angular Dialog Component
license: MIT
+llms:
+ description: "Use the Ignite UI for Angular Dialog Window component to display messages or present forms for users to fill out."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/display-density.mdx b/docs/angular/src/content/en/components/display-density.mdx
index deab45c071..3487d67fac 100644
--- a/docs/angular/src/content/en/components/display-density.mdx
+++ b/docs/angular/src/content/en/components/display-density.mdx
@@ -2,6 +2,8 @@
title: Size | Ignite UI for Angular
description: The Ignite UI for Angular provides a way of setting size property on application or component level.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Components, Native Angular Controls, Native Angular Components Library, size
+llms:
+ description: "Size configuration can significantly improve the visual representation of large amounts of data."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/divider.mdx b/docs/angular/src/content/en/components/divider.mdx
index e9c081933a..b5a8f103cb 100644
--- a/docs/angular/src/content/en/components/divider.mdx
+++ b/docs/angular/src/content/en/components/divider.mdx
@@ -3,6 +3,8 @@ title: Angular Divider Component - MIT license
description: Ignite UI for Angular Divider component enables users to separate content both horizontally and vertically.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular Divider component, Angular Divider directive, Angular Divider control
license: MIT
+llms:
+ description: "The divider component enables users to separate content both horizontally and vertically."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/dock-manager.mdx b/docs/angular/src/content/en/components/dock-manager.mdx
index 91baae544a..01457d2cd6 100644
--- a/docs/angular/src/content/en/components/dock-manager.mdx
+++ b/docs/angular/src/content/en/components/dock-manager.mdx
@@ -3,6 +3,8 @@ title: Manage Angular Page Layout | Dock Manager | Ignite UI | Infragistics
description: Learn how the Dock Manager lets you customize the layout of your Angular application via panes that can be pinned, resized, moved, and hidden.
keywords: manage angular page layout, Ignite UI for Angular, Infragistics
license: commercial
+llms:
+ description: "The Ignite UI Dock Manager component provides means to manage the layout of your application through panes, allowing your end-users to customize it further by pinning, resizing, moving and hiding panes."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/drag-drop.mdx b/docs/angular/src/content/en/components/drag-drop.mdx
index 064b6714bb..9e39a34bba 100644
--- a/docs/angular/src/content/en/components/drag-drop.mdx
+++ b/docs/angular/src/content/en/components/drag-drop.mdx
@@ -3,6 +3,8 @@ title: Angular Drag and Drop | IgniteUI for Angular | Infragistics | MIT license
description: Learn how to use Angular drag and drop directives to perform dragging of elements around the page.
keywords: Angular Drag and Drop, Angular Drag and Drop Directives, Angular UI components, Ignite UI for Angular, Infragistics
license: MIT
+llms:
+ description: "The Ignite UI for Angular Drag and Drop directives enable dragging of elements around the page."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/drop-down-hierarchical-selection.mdx b/docs/angular/src/content/en/components/drop-down-hierarchical-selection.mdx
index 300d199418..b9d010639d 100644
--- a/docs/angular/src/content/en/components/drop-down-hierarchical-selection.mdx
+++ b/docs/angular/src/content/en/components/drop-down-hierarchical-selection.mdx
@@ -3,6 +3,8 @@ title: Multi-select Hierarchical Drop Down- Ignite UI for Angular - MIT license
description: Learn how to create a multi-select tree-style hierarchical drop-down with Ignite UI.
keywords: Multi-select drop-down, hierarchical selection, ignite ui for angular, infragistics
license: MIT
+llms:
+ description: "For the drop-down list we will use the DropDown as well as the ToggleActionDirective to open/close the drop-down."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/drop-down-virtual.mdx b/docs/angular/src/content/en/components/drop-down-virtual.mdx
index 02695cfff0..093eba6242 100644
--- a/docs/angular/src/content/en/components/drop-down-virtual.mdx
+++ b/docs/angular/src/content/en/components/drop-down-virtual.mdx
@@ -3,6 +3,8 @@ title: Angular Drop Down Component – Ignite UI for Angular | Infragistics | MI
description: Use Ignite UI for Angular Virtualized Drop Down to display a very large list of items which supports a single item selection.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Drop Down components, Angular Drop Down controls, Angular Control Large Item List, Angular Control Singe Selection
license: MIT
+llms:
+ description: "The Ignite UI for Angular Drop Down component can fully integrate with the IgxForOf directive in order to display a very large list of items for its selection."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/drop-down.mdx b/docs/angular/src/content/en/components/drop-down.mdx
index c223ddfe9d..c42a2f5547 100644
--- a/docs/angular/src/content/en/components/drop-down.mdx
+++ b/docs/angular/src/content/en/components/drop-down.mdx
@@ -3,6 +3,8 @@ title: Angular Drop Down Component – Ignite UI For Angular - MIT license
description: Add interactivity and see styling options to a scrollable list of items in your app. Get started using the Drop Down Component in Ignite UI for Angular now.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular Drop Down component, Angular Drop Down control
license: MIT
+llms:
+ description: "The Ignite UI for Angular Drop Down is a component, which displays a toggleable list of predefined values and allows users to easily select a single option item with a click."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/excel-library-using-cells.mdx b/docs/angular/src/content/en/components/excel-library-using-cells.mdx
index 3b20985110..7dfe2d555f 100644
--- a/docs/angular/src/content/en/components/excel-library-using-cells.mdx
+++ b/docs/angular/src/content/en/components/excel-library-using-cells.mdx
@@ -4,6 +4,8 @@ description: Learn how to perform operations on Infragistics' Angular excel libr
keywords: Excel library, cell operations, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Workbook", "Worksheet", "WorksheetCell", "WorkbookStyleCollection", "IWorksheetCellFormat", "WorkbookColorInfo", "DisplayOptions"]
+llms:
+ description: "The WorksheetCell objects in an Excel worksheet is the object that holds your actual data values for the worksheet."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
@@ -131,7 +133,7 @@ The following code shows you how to format a cell to display numbers as currency
```ts
var workbook = new Workbook(format);
-var workbook = workbook.worksheets().add("Sheet1");
+var worksheet = workbook.worksheets().add("Sheet1");
worksheet.columns(2).cellFormat.formatString = "\"$\"#,##0.00";
```
diff --git a/docs/angular/src/content/en/components/excel-library-using-tables.mdx b/docs/angular/src/content/en/components/excel-library-using-tables.mdx
index 434ea7282c..e3b6cfa6a4 100644
--- a/docs/angular/src/content/en/components/excel-library-using-tables.mdx
+++ b/docs/angular/src/content/en/components/excel-library-using-tables.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular excel library's table functionality to fo
keywords: Excel library, tables, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Workbook", "WorksheetTable", "Worksheet", "SortSettings"]
+llms:
+ description: "The Infragistics Angular Excel Engine's WorksheetTable functionality allows you to format your data in rows and columns The data in a worksheet table can be managed independently from the data in the other rows and columns in a Worksheet."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/excel-library-using-workbooks.mdx b/docs/angular/src/content/en/components/excel-library-using-workbooks.mdx
index 6765590a9d..7a8afab925 100644
--- a/docs/angular/src/content/en/components/excel-library-using-workbooks.mdx
+++ b/docs/angular/src/content/en/components/excel-library-using-workbooks.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular excel library to create workbooks and wor
keywords: Excel library, workbooks, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Workbook"]
+llms:
+ description: "The Infragistics Angular Excel Engine enables you to save data to and load data from Microsoft® Excel®."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/excel-library-using-worksheets.mdx b/docs/angular/src/content/en/components/excel-library-using-worksheets.mdx
index 0e5d943c2d..7a04563887 100644
--- a/docs/angular/src/content/en/components/excel-library-using-worksheets.mdx
+++ b/docs/angular/src/content/en/components/excel-library-using-worksheets.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular excel library to input data by working wi
keywords: Excel library, worksheet, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Workbook", "Worksheet", "WorksheetCell", "DisplayOptions", "WorksheetFilterSettings", "IWorksheetCellFormat"]
+llms:
+ description: "The Infragistics Angular Excel Engine's Worksheet is where your data is kept."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/excel-library-working-with-charts.mdx b/docs/angular/src/content/en/components/excel-library-working-with-charts.mdx
index 4015b5c976..991ba02713 100644
--- a/docs/angular/src/content/en/components/excel-library-working-with-charts.mdx
+++ b/docs/angular/src/content/en/components/excel-library-working-with-charts.mdx
@@ -4,6 +4,8 @@ _description: Use the Infragistics' Angular excel library's chart feature to add
_keywords: Excel library, charts, Ignite UI for Angular, Infragistics
_license: commercial
+llms:
+ description: "The Infragistics Angular Excel Engine's WorksheetChart functionality allows you to add visual charting representations of data trends across regions of cells in a worksheet."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/excel-library-working-with-grids.mdx b/docs/angular/src/content/en/components/excel-library-working-with-grids.mdx
index d380c126b1..94380946e2 100644
--- a/docs/angular/src/content/en/components/excel-library-working-with-grids.mdx
+++ b/docs/angular/src/content/en/components/excel-library-working-with-grids.mdx
@@ -4,6 +4,8 @@ description: Use the Excel Library to work with spreadsheet data using Microsoft
keywords: Excel library, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Workbook"]
+llms:
+ description: "Explains how to transfer worksheet data into a Angular grid and export grid data to an Excel workbook using the Ignite UI for Angular Excel Library."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/excel-library-working-with-sparklines.mdx b/docs/angular/src/content/en/components/excel-library-working-with-sparklines.mdx
index 0054dfc3f4..4b05bddb99 100644
--- a/docs/angular/src/content/en/components/excel-library-working-with-sparklines.mdx
+++ b/docs/angular/src/content/en/components/excel-library-working-with-sparklines.mdx
@@ -4,6 +4,8 @@ description: Use sparkline charts in Infragistics' Angular excel library to visu
keywords: Excel library, sparkline chart, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Workbook"]
+llms:
+ description: "The Infragistics Angular Excel Library has support for adding sparklines to an Excel Worksheet."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/excel-library.mdx b/docs/angular/src/content/en/components/excel-library.mdx
index 3931895333..30cee05413 100644
--- a/docs/angular/src/content/en/components/excel-library.mdx
+++ b/docs/angular/src/content/en/components/excel-library.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular excel library to work with spreadsheet da
keywords: Excel library, Ignite UI for Angular, Infragistics, workbook
license: commercial
mentionedTypes: ["Workbook", "Worksheet", "Cell", "Formula"]
+llms:
+ description: "The Infragistics Angular Excel Library allows you to work with spreadsheet data using familiar Microsoft® Excel® spreadsheet objects like Workbook, Worksheet, Cell, Formula and many more."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/excel-utility.mdx b/docs/angular/src/content/en/components/excel-utility.mdx
index d75be94fd5..4ddbc09512 100644
--- a/docs/angular/src/content/en/components/excel-utility.mdx
+++ b/docs/angular/src/content/en/components/excel-utility.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular excel library to work with spreadsheet da
keywords: excel library, Ignite UI for Angular, Infragistics, saving files, loading files, WorkbookFormat
license: commercial
mentionedTypes: ["Workbook", "WorkbookFormat", "WorkbookSaveOptions"]
+llms:
+ description: "Describes the ExcelUtility helper used to load, save, and convert workbook data with the Ignite UI for Angular Excel Library."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/expansion-panel.mdx b/docs/angular/src/content/en/components/expansion-panel.mdx
index a26426a68e..87c61acac8 100644
--- a/docs/angular/src/content/en/components/expansion-panel.mdx
+++ b/docs/angular/src/content/en/components/expansion-panel.mdx
@@ -3,6 +3,8 @@ title: Angular Expansion Panel – Ignite UI for Angular - MIT license
description: Use our Angular expansion panel which provides an easily configurable expandable component with two states - collapsed and expanded. Try it now.
keywords: angular expansion panel, angular expansion panel component, angular UI components, igniteui for angular, infragistics
license: MIT
+llms:
+ description: "Ignite UI for Angular provides developers with one of the most useful and easy-to-use layout components - Expansion Panel."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/exporter-csv.mdx b/docs/angular/src/content/en/components/exporter-csv.mdx
index d8ad1d292d..f4048a424e 100644
--- a/docs/angular/src/content/en/components/exporter-csv.mdx
+++ b/docs/angular/src/content/en/components/exporter-csv.mdx
@@ -3,6 +3,8 @@ title: Export to CSV/TSV Component - Native Angular | Ignite UI for Angular
description: Users can export their data for editing or offline presentation can do so in CSV or TSV format with the Export to CSV/TSV Ignite UI for Angular component.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Grid, Angular Data Grid, Angular Grid Control, Angular Grid Component, CSV Export, TSV Export
license: commercial
+llms:
+ description: "The IgniteUI CSV Exporter service can export data in a Character Separated Values format from both raw data (array) or from an IgxGrid, IgxHierarchicalGrid and IgxTreeGrid."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/exporter-excel.mdx b/docs/angular/src/content/en/components/exporter-excel.mdx
index 4bc025389f..5d8926595e 100644
--- a/docs/angular/src/content/en/components/exporter-excel.mdx
+++ b/docs/angular/src/content/en/components/exporter-excel.mdx
@@ -3,6 +3,8 @@ title: Export to Excel Component - Native Angular | Ignite UI for Angular
description: Users can export their data for editing or offline presentation can do so in Excel format with the Export to Excel Ignite UI for Angular component.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Controls, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Grid, Angular Data Grid, Angular Grid Control, Angular Grid Component, Excel Export, Angular Excel Component, Angular Export Excel
license: commercial
+llms:
+ description: "The Ignite UI for Angular Excel Exporter service can export data in Microsoft® Excel® format from raw data (array) or from the IgxGrid, IgxTreeGrid and IgxHierarchicalGrid components."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/exporter-pdf.mdx b/docs/angular/src/content/en/components/exporter-pdf.mdx
index 8b975ab781..1bbe428c04 100644
--- a/docs/angular/src/content/en/components/exporter-pdf.mdx
+++ b/docs/angular/src/content/en/components/exporter-pdf.mdx
@@ -3,6 +3,8 @@ title: Export to PDF Component - Native Angular | Ignite UI for Angular
description: Users can export their data for offline presentation can do so in PDF format with the Export to PDF Ignite UI for Angular component.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Controls, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Grid, Angular Data Grid, Angular Grid Control, Angular Grid Component, PDF Export, Angular PDF Component, Angular Export PDF
license: commercial
+llms:
+ description: "The Ignite UI for Angular PDF Exporter service provides powerful functionality to export data in PDF format from various sources, including raw data arrays and advanced grid components such as IgxGrid, IgxTreeGrid, IgxHierarchicalGrid, and IgxPivotGrid."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/for-of.mdx b/docs/angular/src/content/en/components/for-of.mdx
index 7e24e3b6b8..7c193487df 100644
--- a/docs/angular/src/content/en/components/for-of.mdx
+++ b/docs/angular/src/content/en/components/for-of.mdx
@@ -3,6 +3,8 @@ title: Angular Virtual For Directive - MIT license
description: Ignite UI for Angular now exposes a virtual igxFor directive similar to ngFor, which virtualizes DOM object rendering by visualizing only the visible chunks of the data in the DOM.
keywords: Angular Virtual ForOf Directive, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Virtualization, Performance, Virtual directive, Angular Virtual For
license: MIT
+llms:
+ description: "The Ignite UI for Angular igxForOf directive is an alternative to ngForOf for templating large amounts of data."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/general-breaking-changes-dv.mdx b/docs/angular/src/content/en/components/general-breaking-changes-dv.mdx
index 4d80319b95..75a59c07fb 100644
--- a/docs/angular/src/content/en/components/general-breaking-changes-dv.mdx
+++ b/docs/angular/src/content/en/components/general-breaking-changes-dv.mdx
@@ -2,6 +2,8 @@
title: Angular Breaking Changes | Ignite UI for Angular | Infragistics
description: Learn about breaking changes in the Ignite UI for Angular and how to update your code to latest API.
keywords: Breaking Changes, Ignite UI for Angular, Infragistics
+llms:
+ description: "Summarizes breaking API changes in Ignite UI for Angular data visualization packages and the code updates required when upgrading."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general-changelog-dv.mdx b/docs/angular/src/content/en/components/general-changelog-dv.mdx
index 4c6b5b1386..cbb68a5ee1 100644
--- a/docs/angular/src/content/en/components/general-changelog-dv.mdx
+++ b/docs/angular/src/content/en/components/general-changelog-dv.mdx
@@ -4,6 +4,8 @@ description: Learn about new features in the Ignite UI for Angular.
keywords: Changelog, What's New, Ignite UI for Angular, Infragistics
mentionedTypes: ["SeriesViewer", "XYChart", "DomainChart", "DataChart", "Toolbar", "GeographicMap", "DatePicker", "DataPieChart", "MultiColumnComboBox", "CategoryChart", "CrosshairLayer", "FinalValueLayer", "CalloutLayer", "DataLegend", "RadialGauge", "RadialChart", "Toolbar"]
namespace: Infragistics.Controls.Charts
+llms:
+ description: "Release history for Ignite UI for Angular data visualization components, covering new features, fixes, and breaking changes."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -30,6 +32,13 @@ For changes specific to igniteui-angular components, please see CHANGELOG.MD.
## **21.0.1 (March 2026)**
+### Enhancements
+
+#### igniteui-angular-charts
+
+- Added `Checkmark` option to the `MarkerType` enum. Use `MarkerType.Checkmark` on a series to display a V-shaped checkmark icon inside a circle. The new `MarkerAutomaticBehavior.Checkmark` enum value allows applying the checkmark shape to all series in the chart, and the `SeriesViewer.CheckmarkMarkerTemplate` property can be used to customize its template.
+- Added `MarkerSize` support on marker-enabled chart series to control marker dimensions in device-independent pixels and reset to template-based sizing with `NaN`.
+
### Bug Fixes
| Bug Number | Control | Description |
@@ -42,6 +51,12 @@ For changes specific to igniteui-angular components, please see CHANGELOG.MD.
| 41419 | Excel | Saving a VBA Signed Excel file does not keep a signature/certificate. |
| 41594 | IgxDataChart | AssigningCategoryStyle args.GetItems is null or not working to update items in the fragment series. |
+### Enhancements
+
+### igniteui-angular-charts
+
+- Added `RangeBarSeries` support for horizontal range rendering in `IgxDataChart`.
+
## **21.0.0 (January 2026)**
### Enhancements
diff --git a/docs/angular/src/content/en/components/general-cli-overview.mdx b/docs/angular/src/content/en/components/general-cli-overview.mdx
index 643255c674..f12f703adc 100644
--- a/docs/angular/src/content/en/components/general-cli-overview.mdx
+++ b/docs/angular/src/content/en/components/general-cli-overview.mdx
@@ -2,6 +2,8 @@
title: Angular CLI | Data Visualization Tools and Tables | Infragistics
description: The Ignite UI for Angular toolset has a Angular CLI to help you boost productivity and get your project started quickly. Create a Ignite UI for Angular application now!
keywords: Angular cli, command line interface, Ignite UI for Angular, Infragistics
+llms:
+ description: "Our CLI tools provide project templates pre-configured for the Ignite UI for Angular toolset that help you get your next application off the ground in record time."
---
# Ignite UI CLI for Angular
diff --git a/docs/angular/src/content/en/components/general-whats-new-dv.mdx b/docs/angular/src/content/en/components/general-whats-new-dv.mdx
index 1900717d07..ae5fc7dfd8 100644
--- a/docs/angular/src/content/en/components/general-whats-new-dv.mdx
+++ b/docs/angular/src/content/en/components/general-whats-new-dv.mdx
@@ -2,6 +2,8 @@
title: Angular What's New | Ignite UI for Angular | Infragistics
description: Learn about new features in the Ignite UI for Angular.
keywords: What's New, Ignite UI for Angular, Infragistics
+llms:
+ description: "This release introduces several new and improved visual design and configuration options for all of the chart components. e.g."
---
import { Image } from 'astro:assets';
diff --git a/docs/angular/src/content/en/components/general/angular-grid-overview-guide.mdx b/docs/angular/src/content/en/components/general/angular-grid-overview-guide.mdx
index edae1d7334..0ddd84fcc1 100644
--- a/docs/angular/src/content/en/components/general/angular-grid-overview-guide.mdx
+++ b/docs/angular/src/content/en/components/general/angular-grid-overview-guide.mdx
@@ -3,6 +3,8 @@ title: A Complete Guide to Angular Grid and Angular App Development
description: Modern data grids & charts can be complex and include a range of functionalities. Learn about Angular Grids & Angular App Development with our complete guide!
keywords: angular, angular app development, infragistics
license: commercial
+llms:
+ description: "Get to know the Angular Data Grid and how to use it by checking out this informative section part of our Grid Overview topic."
---
import { Image } from 'astro:assets';
@@ -203,6 +205,7 @@ Angular data grids support easy sorting, filtering, and pagination. With rich AP
+
```
The Grid provides three types of Filtering with custom filtering conditions:
diff --git a/docs/angular/src/content/en/components/general/cli-overview.mdx b/docs/angular/src/content/en/components/general/cli-overview.mdx
index c3278324a2..7a8996ffa9 100644
--- a/docs/angular/src/content/en/components/general/cli-overview.mdx
+++ b/docs/angular/src/content/en/components/general/cli-overview.mdx
@@ -3,6 +3,8 @@ title: Angular Schematics & Ignite UI CLI | Ignite UI for Angular | Infragistics
description: The Ignite UI CLI and Ignite UI for Angular Schematics collection scaffold Angular projects and component views pre-configured for Ignite UI for Angular. Includes MCP server for AI assistant integration.
keywords: ignite ui for angular, angular schematics, ignite ui cli, scaffolding, infragistics
last_updated: "2025-04-06"
+llms:
+ description: "The Ignite UI CLI and the Ignite UI for Angular Schematics collection are two complementary scaffolding tools for generating Angular projects and component views pre-configured for Ignite UI for Angular."
---
# Angular Schematics & Ignite UI CLI
diff --git a/docs/angular/src/content/en/components/general/cli/auth-template.mdx b/docs/angular/src/content/en/components/general/cli/auth-template.mdx
index 720b3fa748..e46edfe445 100644
--- a/docs/angular/src/content/en/components/general/cli/auth-template.mdx
+++ b/docs/angular/src/content/en/components/general/cli/auth-template.mdx
@@ -2,6 +2,8 @@
title: Authentication Project Template | Ignite UI for Angular | Infragistics
description: Check out the Ignite UI for Angular Authentication Project Template guide.
keywords: igniteui for angular | angular schematics | templates | infragistics
+llms:
+ description: "When creating an Ignite UI for Angular project with Angular Schematics or Ignite UI CLI, authentication is available as an add-on option when you select a supported navigation template."
---
import { Image } from 'astro:assets';
diff --git a/docs/angular/src/content/en/components/general/cli/component-templates.mdx b/docs/angular/src/content/en/components/general/cli/component-templates.mdx
index 65efe5ca2c..50a575d390 100644
--- a/docs/angular/src/content/en/components/general/cli/component-templates.mdx
+++ b/docs/angular/src/content/en/components/general/cli/component-templates.mdx
@@ -3,6 +3,8 @@ title: Component and Scenario CLI Templates | Ignite UI for Angular | Infragisti
description: Reference list of all Ignite UI for Angular component and scenario templates available via Ignite UI CLI and Angular Schematics, with commands and live demo links.
keywords: igniteui for angular, angular schematics, templates, infragistics
last_updated: "2025-04-08"
+llms:
+ description: "Component templates are pre-configured Angular component scaffolds that the Ignite UI CLI (ig add) and Ignite UI Angular Schematics (ng g @igniteui/angular-schematics:c) generate into an existing Angular project."
---
# Component Templates
diff --git a/docs/angular/src/content/en/components/general/cli/getting-started-with-angular-schematics.mdx b/docs/angular/src/content/en/components/general/cli/getting-started-with-angular-schematics.mdx
index a35ea5f552..4f39e9166c 100644
--- a/docs/angular/src/content/en/components/general/cli/getting-started-with-angular-schematics.mdx
+++ b/docs/angular/src/content/en/components/general/cli/getting-started-with-angular-schematics.mdx
@@ -3,6 +3,8 @@ title: Getting Started with Ignite UI for Angular Schematics | Ignite UI for Ang
description: Install the Ignite UI for Angular Schematics collection and use it to scaffold Angular projects, add component views, and run a development server within the native Angular CLI workflow.
keywords: ignite ui for angular, angular schematics, angular cli, scaffolding, getting started, infragistics
last_updated: "2026-04-21"
+llms:
+ description: "The Ignite UI for Angular Schematics collection is a set of Angular CLI schematics for scaffolding Angular projects and component views pre-configured for Ignite UI for Angular."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/cli/getting-started-with-cli.mdx b/docs/angular/src/content/en/components/general/cli/getting-started-with-cli.mdx
index 85b4cddccb..d9ddc45c84 100644
--- a/docs/angular/src/content/en/components/general/cli/getting-started-with-cli.mdx
+++ b/docs/angular/src/content/en/components/general/cli/getting-started-with-cli.mdx
@@ -3,6 +3,8 @@ title: Getting Started with Ignite UI CLI | Ignite UI for Angular | Infragistics
description: Install the Ignite UI CLI globally and use it to scaffold Angular projects, add component views, run a development server, and connect an MCP server to your AI coding assistant.
keywords: ignite ui cli, ignite ui for angular, angular scaffolding, getting started, infragistics
last_updated: "2026-04-21"
+llms:
+ description: "The Ignite UI CLI is a standalone global command-line tool for scaffolding Angular, React, and jQuery projects pre-configured for Ignite UI components."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-angular-schematics.mdx b/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-angular-schematics.mdx
index e21d421b21..6a3f45a260 100644
--- a/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-angular-schematics.mdx
+++ b/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-angular-schematics.mdx
@@ -3,6 +3,8 @@ title: Step-by-Step Guide Using Ignite UI for Angular Schematics | Ignite UI for
description: Step-by-step guide to creating and scaffolding Angular projects using the Ignite UI for Angular Schematics collection. Covers project type selection, template choice, theming, and adding component views.
keywords: ignite ui for angular, angular schematics, step-by-step, scaffolding, infragistics
last_updated: "2025-04-06"
+llms:
+ description: "The Ignite UI for Angular Schematics step-by-step mode is an interactive wizard built into the @igniteui/angular-schematics collection."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-cli.mdx b/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-cli.mdx
index a5ae94c87a..9efa51a700 100644
--- a/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-cli.mdx
+++ b/docs/angular/src/content/en/components/general/cli/step-by-step-guide-using-cli.mdx
@@ -3,6 +3,8 @@ title: Step-by-Step Guide Using Ignite UI CLI | Ignite UI for Angular | Infragis
description: Walk through the Ignite UI CLI interactive wizard to create a new Angular project, choose a template and theme, and add Ignite UI for Angular component views.
keywords: ignite ui cli, ignite ui for angular, angular scaffolding, step-by-step, infragistics
last_updated: "2025-04-08"
+llms:
+ description: "The Ignite UI CLI step-by-step mode is an interactive wizard that guides you through project creation, template selection, theming, and component view addition for Ignite UI CLI-based Angular projects."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/code-splitting-and-multiple-entry-points.mdx b/docs/angular/src/content/en/components/general/code-splitting-and-multiple-entry-points.mdx
index c9ab980a0e..97ed0bc0e3 100644
--- a/docs/angular/src/content/en/components/general/code-splitting-and-multiple-entry-points.mdx
+++ b/docs/angular/src/content/en/components/general/code-splitting-and-multiple-entry-points.mdx
@@ -2,6 +2,8 @@
title: Code Splitting and Multiple Entry Points | Ignite UI for Angular | Infragistics
description: Learn how to optimize your Angular application bundle size using Ignite UI for Angular's multiple entry points for better tree-shaking and code splitting.
keywords: ignite ui for angular, code splitting, entry points, tree-shaking, lazy loading, bundle optimization
+llms:
+ description: "Starting with version 21.0.0, Ignite UI for Angular supports multiple entry points, enabling better tree-shaking, code splitting, and lazy loading of components."
---
# Code Splitting and Multiple Entry Points
diff --git a/docs/angular/src/content/en/components/general/data-analysis.mdx b/docs/angular/src/content/en/components/general/data-analysis.mdx
index ab56169560..bb1c094e61 100644
--- a/docs/angular/src/content/en/components/general/data-analysis.mdx
+++ b/docs/angular/src/content/en/components/general/data-analysis.mdx
@@ -2,6 +2,8 @@
title: Data analysis capabilities | Angular Universal | Ignite UI for Angular | Infragistics
description: How to use chart integration functionality with Ignite UI for Angular and provide the data analysis means to achieve better business objectives.
keywords: data analysis, ignite ui for angular, infragistics
+llms:
+ description: "Data analysis is the process of examining, transforming, and arranging data in a specific way to generate useful information based on it."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/general/getting-started.mdx b/docs/angular/src/content/en/components/general/getting-started.mdx
index e570d8a22d..429e5e3c2e 100644
--- a/docs/angular/src/content/en/components/general/getting-started.mdx
+++ b/docs/angular/src/content/en/components/general/getting-started.mdx
@@ -3,6 +3,8 @@ title: Getting Started | Ignite UI for Angular | Infragistics
description: Install Ignite UI for Angular and render your first component in under 5 minutes. Covers Ignite UI CLI scaffolding, Angular Schematics, ng add setup, manual standalone usage, and AI-assisted development tooling.
keywords: ignite ui for angular, getting started, angular components, install, setup, igniteui-angular, infragistics
last_updated: "2025-04-06"
+llms:
+ description: "Ignite UI for Angular is a library of 100+ enterprise UI components - including data grids, charts, editors, navigation controls, and layout containers - distributed as the igniteui-angular npm package by Infragistics."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/general/how-to/general-how-to-mcp-e2e.mdx b/docs/angular/src/content/en/components/general/how-to/general-how-to-mcp-e2e.mdx
index 90563d95d9..8c15dbc025 100644
--- a/docs/angular/src/content/en/components/general/how-to/general-how-to-mcp-e2e.mdx
+++ b/docs/angular/src/content/en/components/general/how-to/general-how-to-mcp-e2e.mdx
@@ -2,6 +2,8 @@
title: Build an App End-to-End with Ignite UI CLI MCP and Ignite UI Theming MCP - Ignite UI for Angular
description: Follow an end-to-end Ignite UI for Angular workflow with Ignite UI CLI MCP and Ignite UI Theming MCP start CLI-first, connect both MCP servers, create or extend the app through chat, ask documentation questions, and apply a custom theme.
keywords: Angular, Ignite UI for Angular, Infragistics, Ignite UI CLI MCP, Ignite UI Theming MCP, MCP, Model Context Protocol, AI, workflow, theming, prompt
+llms:
+ description: "Ignite UI CLI MCP and Ignite UI Theming MCP work together to let an AI assistant scaffold, extend, and theme an Ignite UI for Angular application through chat prompts."
---
# Build an App End-to-End with Ignite UI CLI MCP and Ignite UI Theming MCP
diff --git a/docs/angular/src/content/en/components/general/how-to/how-to-customize-theme.mdx b/docs/angular/src/content/en/components/general/how-to/how-to-customize-theme.mdx
index eeeb062ad3..5d78b92f71 100644
--- a/docs/angular/src/content/en/components/general/how-to/how-to-customize-theme.mdx
+++ b/docs/angular/src/content/en/components/general/how-to/how-to-customize-theme.mdx
@@ -2,6 +2,8 @@
title: Customizing Ignite UI Theming - Angular | Ignite UI for Angular
description: The Ignite UI for Angular Theming engine allows for full application theming customization and styles size optimization.
keywords: Ignite UI for Angular, Customizing Ignite UI Theming, Optimizing Ignite UI Theming, Angular Theming Engine, Angular Theming
+llms:
+ description: "This article will walk you through the details of customizing Ignite UI for Angular application theming and optimizing the size of the produced stylesheet."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/general/how-to/how-to-perform-crud.mdx b/docs/angular/src/content/en/components/general/how-to/how-to-perform-crud.mdx
index bc29681867..4afe3ef800 100644
--- a/docs/angular/src/content/en/components/general/how-to/how-to-perform-crud.mdx
+++ b/docs/angular/src/content/en/components/general/how-to/how-to-perform-crud.mdx
@@ -1,6 +1,8 @@
---
title: How to enable CRUD operations in Angular.
description: What is Angular Crud? How to Build a CRUD service in Angular and use it to perform CRUD operations with the Grid data? Learn more here.
+llms:
+ description: "CRUD is an acronym in computer programming that stands for the CREATE, READ, UPDATE, DELETE operations that can be performed against a data collection."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -91,6 +93,7 @@ Let's first enable the rowEditing behavior, bring the UI we need for the editing
+
```
In the Angular component, inject the data service using DI. Now we are ready to use the service to do full CRUD operations against our data layer:
diff --git a/docs/angular/src/content/en/components/general/how-to/how-to-use-standalone-components.mdx b/docs/angular/src/content/en/components/general/how-to/how-to-use-standalone-components.mdx
index f0656ad864..b1f46c55f9 100644
--- a/docs/angular/src/content/en/components/general/how-to/how-to-use-standalone-components.mdx
+++ b/docs/angular/src/content/en/components/general/how-to/how-to-use-standalone-components.mdx
@@ -2,6 +2,8 @@
title: How to Use Standalone Components - Angular | Ignite UI for Angular
description: How to use Ignite UI for Angular components as standalone components, and as dependencies in your other standalone components.
keywords: Ignite UI for Angular, Standalone Components, Angular 16, Angular Modules
+llms:
+ description: "Angular 14 introduced the concept of standalone components which allows for a simplified way of building applications by reducing the need for using NgModules."
---
# Using Standalone Components with Ignite UI for Angular
diff --git a/docs/angular/src/content/en/components/general/how-to/signal-r-service-live-data.mdx b/docs/angular/src/content/en/components/general/how-to/signal-r-service-live-data.mdx
index 1be629dcc3..2fce06cc0f 100644
--- a/docs/angular/src/content/en/components/general/how-to/signal-r-service-live-data.mdx
+++ b/docs/angular/src/content/en/components/general/how-to/signal-r-service-live-data.mdx
@@ -2,6 +2,8 @@
title: How to create ASP.NET Core SignalR service for live-data streaming.
description: Modern data grid & dock manager are used for application creation along with ASP.NET Core SignalR.
keywords: angular, signalr, .net core, infragistics
+llms:
+ description: "In this topic, we’ll see how to create applications for both streaming and receiving data with ASP.NET Core SignalR."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/general/ignite-ui-licensing.mdx b/docs/angular/src/content/en/components/general/ignite-ui-licensing.mdx
index 1de547835b..241d2abb67 100644
--- a/docs/angular/src/content/en/components/general/ignite-ui-licensing.mdx
+++ b/docs/angular/src/content/en/components/general/ignite-ui-licensing.mdx
@@ -2,6 +2,8 @@
title: Ignite UI Licensing
description: Information on using the Licensed Ignite UI npm package
keywords: npm package license, ignite ui license feed, licensing
+llms:
+ description: "Ignite UI for Angular is offered under a dual-license model, which allows for both commercial and permissive open-source use, depending on the components, modules, directives, and services being used."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/localization.mdx b/docs/angular/src/content/en/components/general/localization.mdx
index 116e50b186..5c009b2d7e 100644
--- a/docs/angular/src/content/en/components/general/localization.mdx
+++ b/docs/angular/src/content/en/components/general/localization.mdx
@@ -2,6 +2,8 @@
title: Localization (i18n) - Native Angular | Ignite UI for Angular
description: The Ignite UI for Angular Localization mechanism provides the ability to change/localize strings in the components.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Native Angular Components
+llms:
+ description: "As of 21.1.0 this is the recommended way of applying localization to the Ignite UI for Angular components."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/general/open-source-vs-premium.mdx b/docs/angular/src/content/en/components/general/open-source-vs-premium.mdx
index 526d8f91ad..dbb3f2cd38 100644
--- a/docs/angular/src/content/en/components/general/open-source-vs-premium.mdx
+++ b/docs/angular/src/content/en/components/general/open-source-vs-premium.mdx
@@ -2,6 +2,8 @@
title: Open Source vs Premium | Ignite UI for Angular | Infragistics
description: Ignite UI for Angular is a complete set of native Angular UI components, which allow you to build fast, feature-rich and Material designed applications!
keywords: ignite ui for angular, getting started, angular components
+llms:
+ description: "Ignite UI for Angular offers two distinct paths for building modern, data-driven applications: Open-Source Components and Premium Components."
---
import Badge from 'igniteui-astro-components/components/mdx/Badge.astro';
diff --git a/docs/angular/src/content/en/components/general/ssr-rendering.mdx b/docs/angular/src/content/en/components/general/ssr-rendering.mdx
index 80d0a45eec..99a94b38ca 100644
--- a/docs/angular/src/content/en/components/general/ssr-rendering.mdx
+++ b/docs/angular/src/content/en/components/general/ssr-rendering.mdx
@@ -2,6 +2,8 @@
title: Server-side rendering | Angular SSR | Ignite UI for Angular | Infragistics
description: How to use Angular Server-side rendering with Ignite UI for Angular.
keywords: Ignite UI for Angular, Angular SSR, Server-side rendering
+llms:
+ description: "All Angular applications run in the client's browser and often this may result in a negative performance hit on the Largest Contentful Paint (LCP) i.e. when a browser first renders the largest content of a page."
---
# Server-side Rendering with Angular SSR
diff --git a/docs/angular/src/content/en/components/general/update-guide.mdx b/docs/angular/src/content/en/components/general/update-guide.mdx
index 00f915f818..d082390f21 100644
--- a/docs/angular/src/content/en/components/general/update-guide.mdx
+++ b/docs/angular/src/content/en/components/general/update-guide.mdx
@@ -2,6 +2,8 @@
title: Update Guide | Ignite UI for Angular | Infragistics
description: Check out this article on updating how to update to a newer version of the Ignite UI for Angular library.
keywords: ignite ui for angular, update, npm package, material components
+llms:
+ description: "In the Ignite UI for Angular versioning the first number always matches the major version of Angular the code supports and the second is dedicated for major version releases."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
@@ -311,9 +313,9 @@ To enable paging in the grid, initialize the `IgxPaginatorComponent` in the grid
```html
-
+
-
+
```
```typescript
@@ -603,7 +605,7 @@ Here's how that will affect existing code:
```html
- Title
+ Title
...
@@ -1210,8 +1212,7 @@ The was completely refactor
Tab 1 Content
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
-
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
...
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-events.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-events.mdx
index 9c0f9e1ef5..445c48a16a 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-events.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-events.mdx
@@ -2,6 +2,8 @@
title: Handling Angular Events | Event Binding | WPF to Angular Guide | Infragistics
description: Learn about Angular event binding and how to create your own Angular custom events. See how Angular uses DOM events to do this and handles user inputs.
keywords: handling angular events, ignite ui for angular, infragistics
+llms:
+ description: "The Angular events are emitted as a response to user interactions."
---
# Handling Angular Events
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-pipes.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-pipes.mdx
index 85ef9064c8..61b5df1649 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-pipes.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/angular-pipes.mdx
@@ -2,6 +2,8 @@
title: Transform Data with Angular Pipes | WPF to Angular Guide | Infragistics
description: Learn how Angular pipes can transform data from one value to another like wpf converters. Angular provides predefined pipes for common data transformations.
keywords: transform data with angular pipes, ignite ui for angular, infragistics
+llms:
+ description: "You can use the Angular pipes to transform data from one value to another."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-first-angular-app.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-first-angular-app.mdx
index 3f80c56a87..1c3a9ad15a 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-first-angular-app.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-first-angular-app.mdx
@@ -2,6 +2,8 @@
title: Create Your First Angular Application | WPF to Angular Guide | Infragistics
description: Learn how to create your first Angular 9 application when you migrate from WPF to Angular. Read about the prerequisites, your first project & structure.
keywords: create angular application, ignite ui for angular, infragistics
+llms:
+ description: "Learn how to start creating an Angular application when you migrate from WPF to Angular."
---
import { Image } from 'astro:assets';
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-ui-with-components.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-ui-with-components.mdx
index 745a9c3e93..e6fa669a2d 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-ui-with-components.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/create-ui-with-components.mdx
@@ -2,6 +2,8 @@
title: Create a User Interface with Angular Components | WPF to Angular Guide | Infragistics
description: Learn how to create a user interface in an Angular application with an Angular component. See how similar WPF components translate in Angular.
keywords: create user interface with an angular component, ignite ui for angular, infragistics
+llms:
+ description: "When it comes to creating user interface in an Angular application you can use an Angular component to facilitate the process."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -74,10 +76,7 @@ By typing `npm start` in the terminal, it will compile and build our application
Let's now change our sample component a little by changing the text to 'This sample works very well!'.
```html
-
-
This sample works very well!
-
```
Once we save and check the browser, we will see that we are indeed editing the html that is responsible for rendering the sample component.
@@ -101,4 +100,3 @@ Our community is active and always welcoming to new ideas.
- [Ignite UI for Angular **Forums**](https://www.infragistics.com/community/forums/f/ignite-ui-for-angular)
- [Ignite UI for Angular **GitHub**](https://github.com/IgniteUI/igniteui-angular)
-
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/layout.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/layout.mdx
index 2fdfdaa991..69fd74851e 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/layout.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/layout.mdx
@@ -2,6 +2,8 @@
title: Angular Page Layout Elements | WPF to Angular Guide | Infragistics
description: Learn how to customize the page layout of your Angular application with our in-depth tutorial of using CSS features like Flexbox & Grid.
keywords: angular page layout elements, ignite ui for angular, infragistics
+llms:
+ description: "In WPF, in order to layout the elements in your application, you need to put them inside a Panel."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/one-way-binding.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/one-way-binding.mdx
index 451abcc618..3bf0546327 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/one-way-binding.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/one-way-binding.mdx
@@ -2,6 +2,8 @@
title: One-Way Data Binding in Angular | WPF to Angular Guide | Infragistics
description: Learn about one-way data binding in Angular & how it's used to show information to the end user while staying synchronized with changes to the underlying data.
keywords: one-way data binding in angular, ignite ui for angular, infragistics
+llms:
+ description: "One-way data binding in Angular (i.e. unidirectional binding) is a way to bind data from the component to the view (DOM) or vice versa - from view to the component."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/structural-directives.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/structural-directives.mdx
index b692eae050..ccd9b6171d 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/structural-directives.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/structural-directives.mdx
@@ -2,6 +2,8 @@
title: Angular Structural Directives | ngIf, ngswitch | WPF to Angular Guide | Infragistics
description: Learn how to use structural directives in Angular 9 like ngIf, ngswitch & ngFor to add and remove elements to your view in your Angular application
keywords: angular structural directives, ignite ui for angular, infragistics
+llms:
+ description: "When it comes to control the appearance of the visual tree elements’ appearance in WPF, the most common way is to use binding and visibility converter, which requires some extra logic and static resources."
---
# Angular Structural Directives
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/two-way-binding.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/two-way-binding.mdx
index 2f4afba30b..3fe371fa3e 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/two-way-binding.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/two-way-binding.mdx
@@ -2,6 +2,8 @@
title: Two-Way Data Binding in Angular with ngModel | WPF to Angular Guide | Infragistics
description: Learn how two-way data binding in Angular is used to display information to the end user and allows them to make changes to the underlying data using the UI.
keywords: two-way data binding in Angular, ignite ui for angular, infragistics
+llms:
+ description: "The two-way data binding in Angular enables data to flow from the component to the view and the other way round."
---
# What is two-way data binding in Angular
diff --git a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/wpf-to-angular-guide.mdx b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/wpf-to-angular-guide.mdx
index 5eb410d2f4..d19a6db416 100644
--- a/docs/angular/src/content/en/components/general/wpf-to-angular-guide/wpf-to-angular-guide.mdx
+++ b/docs/angular/src/content/en/components/general/wpf-to-angular-guide/wpf-to-angular-guide.mdx
@@ -2,6 +2,8 @@
title: WPF to Angular Tutorial & Guide for Developers | Desktop to Web | Infragistics
description: Read our WPF to Angular tutorial that guides developers on making a smooth transition from a desktop to web framework. Learn more about Angular today!
keywords: wpf to angular tutorial, igniteui for angular, infragistics
+llms:
+ description: "WPF to Angular tutorial is the first step that you should take in order to make a smooth transition from a desktop to web framework transition."
---
import { Image } from 'astro:assets';
diff --git a/docs/angular/src/content/en/components/geo-map-binding-data-csv.mdx b/docs/angular/src/content/en/components/geo-map-binding-data-csv.mdx
index 88065cd552..05e8c16bc1 100644
--- a/docs/angular/src/content/en/components/geo-map-binding-data-csv.mdx
+++ b/docs/angular/src/content/en/components/geo-map-binding-data-csv.mdx
@@ -5,6 +5,8 @@ keywords: "Angular map, plot data, Ignite UI for Angular, Infragistics, data bin
license: commercial
mentionedTypes: ["GeographicMap", "GeographicHighDensityScatterSeries"]
namespace: Infragistics.Controls.Maps
+llms:
+ description: "With the Ignite UI for Angular map component, you can plot geographic data loaded from various file types."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
@@ -20,7 +22,7 @@ With the Ignite UI for Angular map component, you can plot geographic data loade
## Data Example
Here is an example of data from CSV file:
-```ts
+```csv
City,Lat,Lon,State,Code,County,Density,Population
New York,40.7856,-74.0093,New Jersey,NJ,Hudson,21057,54227
Dundee,42.5236,-76.9775,New York,NY,Yates,579,1650
@@ -30,7 +32,7 @@ Dundee,42.5236,-76.9775,New York,NY,Yates,579,1650
The following code loads and binds in the map component to an array of objects created from loaded CSV file with geographic locations.
```html
-
+
in the map component to an array of objects created from loaded JSON file with geographic locations:
```html
-
+
to a custom data model that contains geographic locations of some cities of the world stored using longitude and latitude coordinates. Also, we use the to plot shortest geographic path between these locations using the [WorldUtility](geo-map-resources-world-util.md)
```html
-
+
-
+
+
+
object’s ImportAsync method is invoked which in return performs fetching and reading the shape files and finally doing the conversion. After this operation is complete, the is populated with `IgxShapefileRecord` objects and the `ImportCompleted` event is raised in order to notify about completed process of loading and converting geo-spatial data from shape files.
@@ -48,7 +50,7 @@ This code example assumes that shape files were loaded using the in the map component to the and maps the `Points` property of all `IgxShapefileRecord` objects.
```html
-
+
to triangulation data representing surface temperatures in the world.
```html
-
+
+
to triangulation data representing surface temperatures in the world.
```html
-
+
and properties of the
```html
-
+
to locations of cities loaded from a shape file using the .
```html
-
+
to shapes of countries in the world loaded from a shape file using the .
```html
-
+
to locations of cities loaded from a shape file using the .
```html
-
+
+
+
```
```typescript
diff --git a/docs/angular/src/content/en/components/grid-lite/header-template.mdx b/docs/angular/src/content/en/components/grid-lite/header-template.mdx
index 2047bf5d6f..694a362bd6 100644
--- a/docs/angular/src/content/en/components/grid-lite/header-template.mdx
+++ b/docs/angular/src/content/en/components/grid-lite/header-template.mdx
@@ -5,6 +5,8 @@ keywords: header template, {Platform}, {ComponentKeywords}, {ProductName}, Infra
license: MIT
mentionedTypes: [{ComponentApiMembers}]
namespace: Infragistics.Controls
+llms:
+ description: "Similar to the cell templates, column headers can also be customized to better fit the desired use case."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/grid-lite/overview.mdx b/docs/angular/src/content/en/components/grid-lite/overview.mdx
index c78a2a6338..f5c05ebc07 100644
--- a/docs/angular/src/content/en/components/grid-lite/overview.mdx
+++ b/docs/angular/src/content/en/components/grid-lite/overview.mdx
@@ -5,6 +5,8 @@ keywords: overview, {Platform}, {ComponentKeywords}, {ProductName}, Infragistics
license: MIT
mentionedTypes: [{ComponentApiMembers}]
namespace: Infragistics.Controls
+llms:
+ description: "The Ignite UI for Angular Grid Lite is a lightweight, high-performance Angular data grid that’s free to use, open-source, and built for modern Angular applications."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/grid-lite/sorting.mdx b/docs/angular/src/content/en/components/grid-lite/sorting.mdx
index 17104944b2..d078389886 100644
--- a/docs/angular/src/content/en/components/grid-lite/sorting.mdx
+++ b/docs/angular/src/content/en/components/grid-lite/sorting.mdx
@@ -5,6 +5,8 @@ keywords: sorting, {Platform}, {ComponentKeywords}, {ProductName}, Infragistics
license: MIT
mentionedTypes: [{ComponentApiMembers}]
namespace: Infragistics.Controls
+llms:
+ description: "The Grid Lite supports sorting operations on its data source."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -169,7 +171,7 @@ When a sorting operation is performed through the UI, the component emits a cust
After the grid applies the new sorting state, a `sorted` event is emitted. It contains the expression which was used in the last sort operation and it is not cancellable.
```html
-
+
```
```typescript
diff --git a/docs/angular/src/content/en/components/grid-lite/theming.mdx b/docs/angular/src/content/en/components/grid-lite/theming.mdx
index 2edc4e5c6e..de7892cfa2 100644
--- a/docs/angular/src/content/en/components/grid-lite/theming.mdx
+++ b/docs/angular/src/content/en/components/grid-lite/theming.mdx
@@ -5,6 +5,8 @@ keywords: styling, theming, {Platform}, {ComponentKeywords}, {ProductName}, Infr
license: MIT
mentionedTypes: [{ComponentApiMembers}]
namespace: Infragistics.Controls
+llms:
+ description: "The Grid Lite comes with four distinct themes - Bootstrap, Material, Fluent and Indigo."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/grid/grid.mdx b/docs/angular/src/content/en/components/grid/grid.mdx
index 6e4f1c79c6..e63ce56353 100644
--- a/docs/angular/src/content/en/components/grid/grid.mdx
+++ b/docs/angular/src/content/en/components/grid/grid.mdx
@@ -3,6 +3,8 @@ title: Angular Data Grid | Build Fast Angular Tables | Infragistics
description: Create super fast, responsive Angular data grids and tables with Ignite UI for Angular. Supports editing, filtering, data binding and many more. Try it now!
keywords: angular data grid, angular grid component, angular data grid component, angular table component, angular data table component, angular table, angular UI components, ignite ui for angular
license: commercial
+llms:
+ description: "The Angular Data Grid is a component for displaying data in a tabular format."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
@@ -266,7 +268,7 @@ In the snippet above we "take" a reference to the implicitly provided cell value
-
+
```
When changing data through the **cell template** using `ngModel`, you need to call the appropriate API methods to make sure the value is correctly updated in the Angular grid's underlying data collection. In the snippet above, the `ngModelChange` call passes through the grid's [editing API](/grid/cell-editing#editing-through-api) and goes through the grid's editing pipeline, properly triggering [transactions](/grid/batch-editing)(if applicable) and handling of [summaries](/grid/summaries), [selection](/grid/selection), etc. However, this `ngModelChange` will fire every time the value of the cell changes, not just when the user is done editing, resulting in a lot more API calls.
@@ -307,12 +309,12 @@ Each of the column templates can be changed programmatically at any point throug
-
{{ val }}
+
{{ value }}
-
{{ val }}
+
{{ value }}
```
@@ -335,7 +337,6 @@ Column properties can also be set in code in the handles **flat data** and nested **POJOs(Plain old J
const OBJECT_ARRAY = [{
ObjectKey1: value1,
ObjectKey2: value2,
- .
- .
- .
+ // ...
ObjectKeyN: valueN
},
- .
- .
- .
+ // ...
}];
const POJO = [{
ObjectKey1: value1,
ObjectKey2: value2,
- .
- .
- .
+ // ...
ObjectKeyN: {
ObjectKeyN1: value1,
ObjectKeyN2: value2,
- .
- .
- .
+ // ...
ObjectKeyNM: valueNM,
}
},
- .
- .
- .
+ // ...
}];
```
diff --git a/docs/angular/src/content/en/components/grid/groupby.mdx b/docs/angular/src/content/en/components/grid/groupby.mdx
index e583bc1afc..9a994871ac 100644
--- a/docs/angular/src/content/en/components/grid/groupby.mdx
+++ b/docs/angular/src/content/en/components/grid/groupby.mdx
@@ -3,6 +3,8 @@ title: Angular Grid Group By | Group by multiple fields | Infragistics
description: Configure angular group by that allows visualizing of data records in Angular table, visualize the grouped data in separate and convenient column group.
keywords: angular group by, igniteui for angular, infragistics
license: commercial
+llms:
+ description: "A Group By behavior in an Ignite UI for Angular Table or UI Grid creates grouped data rows based on the column values."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/grid/master-detail.mdx b/docs/angular/src/content/en/components/grid/master-detail.mdx
index e2ea0db205..7126c35d86 100644
--- a/docs/angular/src/content/en/components/grid/master-detail.mdx
+++ b/docs/angular/src/content/en/components/grid/master-detail.mdx
@@ -3,6 +3,8 @@ title: Angular Master-Detail Grid - Ignite UI for Angular
description: Define expandable detail view template for data in rows with Ignite UI Angular Grid. Useful for displaying master-detail style data in a hierarchical structure.
keywords: master detail, igniteui for angular, infragistics
license: commercial
+llms:
+ description: "The igxGrid component supports specifying a detail template that displays additional details for a particular row by expanding/collapsing its content."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/grid/paste-excel.mdx b/docs/angular/src/content/en/components/grid/paste-excel.mdx
index f8e6604cdf..0bfa1e18f1 100644
--- a/docs/angular/src/content/en/components/grid/paste-excel.mdx
+++ b/docs/angular/src/content/en/components/grid/paste-excel.mdx
@@ -3,6 +3,8 @@ title: Angular Excel Like Grid - Paste Form Excel - Infragistics
description: Configure the Angular Grid to paste data from excel, by using rich and performant API with less code, and use the rich API do export selected grid data easily.
keywords: export selected, igniteui for angular, infragistics
license: commercial
+llms:
+ description: "The Ignite UI for Angular Grid can read Excel data that is copied to the clipboard."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/grid/selection-based-aggregates.mdx b/docs/angular/src/content/en/components/grid/selection-based-aggregates.mdx
index b7cd3e2f44..a99de32f0c 100644
--- a/docs/angular/src/content/en/components/grid/selection-based-aggregates.mdx
+++ b/docs/angular/src/content/en/components/grid/selection-based-aggregates.mdx
@@ -3,6 +3,8 @@ title: Angular Grid Selection-Based Data Aggregation- Ignite UI for Angular
description: Learn how to aggregate selected data in a grid with Ignite UI. Get instant content aggregations in the virtualized data and rich API for your next project.
keywords: Data aggregation, selection, ignite ui for angular, infragistics
license: commercial
+llms:
+ description: "With the sample, illustrated beyond, you may see how multiple selection is being used, alongside with custom summary functions, to display aggregates based on the selected values in the grid footer."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/grids-and-lists.mdx b/docs/angular/src/content/en/components/grids-and-lists.mdx
index 51d6bc5c45..7618ee456a 100644
--- a/docs/angular/src/content/en/components/grids-and-lists.mdx
+++ b/docs/angular/src/content/en/components/grids-and-lists.mdx
@@ -3,6 +3,8 @@ title: Angular Grids & Tables | Fastest Angular UI Grid | Infragistics
description: Looking for fast angular grids and tables? Ignite UI for Angular provides a complete library of Angular-native, Material-based UI data grids and tables. Find more.
keywords: angular data grid, infragistics, infragistics.com
license: commercial
+llms:
+ description: "Ignite UI for Angular provides a complete library of Angular-native, Material-based UI components, including the world’s fastest virtualized Angular data grid."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/hierarchicalgrid/hierarchical-grid.mdx b/docs/angular/src/content/en/components/hierarchicalgrid/hierarchical-grid.mdx
index 9af52e4ed1..9fdffeb24b 100644
--- a/docs/angular/src/content/en/components/hierarchicalgrid/hierarchical-grid.mdx
+++ b/docs/angular/src/content/en/components/hierarchicalgrid/hierarchical-grid.mdx
@@ -3,6 +3,8 @@ title: Angular Hierarchical Data Grid | Material Table | Ignite UI for Angular |
description: Learn how to use Ignite UI for Angular data grid, based on Angular Table and create a touch-responsive angular component with variety of angular events.
keywords: angular hierarchical data grid, angular hierarchical table, angular hierarchical data grid component, angular hierarchical table component, angular UI components, igniteui for angular, infragistics
license: commercial
+llms:
+ description: "The Ignite UI for Angular Hierarchical Data Grid is used to display and manipulate hierarchical tabular data."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/hierarchicalgrid/load-on-demand.mdx b/docs/angular/src/content/en/components/hierarchicalgrid/load-on-demand.mdx
index 6bf74d1e65..1d9f109ae5 100644
--- a/docs/angular/src/content/en/components/hierarchicalgrid/load-on-demand.mdx
+++ b/docs/angular/src/content/en/components/hierarchicalgrid/load-on-demand.mdx
@@ -3,6 +3,8 @@ title: Hierarchical Grid load on demand - Native Angular | Ignite UI for Angular
description: The Ignite UI for Angular Hierarchical Grid provides the necessary tools to load data on demand for each child grid that is expanded. That way the volume of data would be greatly reduced and can be retrieved only when the user needs it.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Hierarchical Grid component, Angular Hierarchical Data Table component, Angular Hierarchical Grid control, Angular Hierarchical Data Table control, Angular High Performance Hierarchical Grid, Angular High Performance Hierarchical Data Table, Hierarchical Grid, Hierarchical Data Table
license: commercial
+llms:
+ description: "The Ignite UI for Angular HierarchicalGrid allows fast rendering by requesting the minimum amount of data to be retrieved from the server so that the user can see the result in view and interact with the visible data as quickly as possible."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/icon-button.mdx b/docs/angular/src/content/en/components/icon-button.mdx
index eb07e762eb..0c9e574c31 100644
--- a/docs/angular/src/content/en/components/icon-button.mdx
+++ b/docs/angular/src/content/en/components/icon-button.mdx
@@ -3,6 +3,8 @@ title: Angular Icon Button Component – Ignite UI for Angular - MIT license
description: Enhance standard icons with button functionalities. Try it now.
keywords: Angular Icon Button component, Angular Icon Button control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Angular UI Components,
license: MIT
+llms:
+ description: "The Ignite UI for Angular Icon Button directive is intended to turn any icon into a fully functional button."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/icon-service.mdx b/docs/angular/src/content/en/components/icon-service.mdx
index 05352c094e..9d0ddd05ae 100644
--- a/docs/angular/src/content/en/components/icon-service.mdx
+++ b/docs/angular/src/content/en/components/icon-service.mdx
@@ -3,6 +3,8 @@ title: Angular Icon Service – Ignite UI for Angular | Infragistics | MIT licen
description: Developers can unify and use various icon and font sets interchangeably with custom colors and more with Ignite UI for Angular Icon Service.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Icon components, Angular Icon controls, Angular Icon service
license: MIT
+llms:
+ description: "The Ignite UI for Angular Icon Service allows developers to add new icons from various sources to their UIs."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/icon.mdx b/docs/angular/src/content/en/components/icon.mdx
index 7a17941286..48d5c73469 100644
--- a/docs/angular/src/content/en/components/icon.mdx
+++ b/docs/angular/src/content/en/components/icon.mdx
@@ -3,6 +3,8 @@ title: Angular Icon Component – Ignite UI for Angular | Infragistics | MIT lic
description: Developers can unify and use various icon and font sets interchangeably with custom colors and more with Ignite UI for Angular Icon component.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Icon components, Angular Icon controls
license: MIT
+llms:
+ description: "The Ignite UI for Angular Icon component unifies icon/font families so developers can use them interchangeably and add material icons to markup."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/input-group.mdx b/docs/angular/src/content/en/components/input-group.mdx
index e97437a7b1..ae94a4d8f6 100644
--- a/docs/angular/src/content/en/components/input-group.mdx
+++ b/docs/angular/src/content/en/components/input-group.mdx
@@ -3,6 +3,8 @@ title: Angular Input Group Component | Ignite UI for Angular | MIT license
description: The Input Group component in Ignite UI for Angular allows for easy-to-use and aesthetic forms, simplicity with inputting data, and provides mitigation for handling validation and errors.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Native Angular Components, Angular Label component, Angular Label control, Angular Input component, Angular Input control, Input component, Input control, Label component, Label control, Angular Input Group component, Angular Input Group control, Angular Input directive, Angular Label directive, Angular Forms, Angular Reactive Forms, Angular Form Validation
license: MIT
+llms:
+ description: "The IgxInputGroupComponent allows the user to enhance input elements like input, select, textarea, etc."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -138,14 +140,14 @@ The input group styles can be altered by using the
+
```
Using the injection token allows to specify a type on an application level for all input-group instances. It provides an easy way to style all related components at once.
To set the type, use the injection token to create a DI provider.
```typescript
-providers: [{provide: IGX_input-group_TYPE, useValue: 'box' }]
+providers: [{provide: IGX_INPUT_GROUP_TYPE, useValue: 'box' }]
```
diff --git a/docs/angular/src/content/en/components/inputs/color-editor.mdx b/docs/angular/src/content/en/components/inputs/color-editor.mdx
index ba781c6c08..1d885f8a2f 100644
--- a/docs/angular/src/content/en/components/inputs/color-editor.mdx
+++ b/docs/angular/src/content/en/components/inputs/color-editor.mdx
@@ -5,6 +5,8 @@ keywords: "Angular Color Editor, Ignite UI for Angular, Infragistics"
license: commercial
mentionedTypes: ["ColorEditor"]
namespace: Infragistics.Controls
+llms:
+ description: "The Ignite UI for Angular Color Editor is a lightweight color picker component."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import Badge from 'igniteui-astro-components/components/mdx/Badge.astro';
@@ -39,7 +41,6 @@ The simplest way to start using the is as follows
name="colorEditor"
#colorEditor>
-
```
## Binding to events
diff --git a/docs/angular/src/content/en/components/interactivity/accessibility-compliance.mdx b/docs/angular/src/content/en/components/interactivity/accessibility-compliance.mdx
index 54ef0f330e..484dc8f2e1 100644
--- a/docs/angular/src/content/en/components/interactivity/accessibility-compliance.mdx
+++ b/docs/angular/src/content/en/components/interactivity/accessibility-compliance.mdx
@@ -4,6 +4,8 @@ description: Ignite UI for Angular Accessibility Support and Compliance - Sectio
keywords: accessibility, Angular, ignite ui for Angular, infragistics
license: MIT
mentionedTypes: []
+llms:
+ description: "As the leading global provider of UI and UX tools for developers, our Angular team at Infragistics is committed to providing components and tools that make it easier for you to create the best possible user experience."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/interactivity/right-to-left-support.mdx b/docs/angular/src/content/en/components/interactivity/right-to-left-support.mdx
index 2c9502ce40..415ef3ed5e 100644
--- a/docs/angular/src/content/en/components/interactivity/right-to-left-support.mdx
+++ b/docs/angular/src/content/en/components/interactivity/right-to-left-support.mdx
@@ -2,6 +2,8 @@
title: Ignite UI for Angular Frameworks and features | Ignite UI for Angular | Infragistics
description: Learn how to configure ARIA Accessibility and Directionality of your application with Ignite UI for Angular
keywords: aria support, a11y, ignite ui for angular, infragistics
+llms:
+ description: "Most of the components in the framework have full right-to-left (RTL) support by default."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/label-input.mdx b/docs/angular/src/content/en/components/label-input.mdx
index 343150d207..0fa3fee950 100644
--- a/docs/angular/src/content/en/components/label-input.mdx
+++ b/docs/angular/src/content/en/components/label-input.mdx
@@ -3,6 +3,8 @@ title: Angular Label and Input Directives - MIT license
description: With Ignite UI for Angular Label and Input directives, developers can decorate and style single-line or multi-line input elements, add additional CSS styles and integrate with other controls.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular Label component, Angular Label control, Angular Input component, Angular Input control, Input component, Input control, Label component, Label control, Angular Input directive, Angular Label directive, Angular Forms, Angular Reactive Forms, Angular Form Validation
license: MIT
+llms:
+ description: "The Ignite UI for Angular Input and Label directives are used to decorate and style single-line or multi-line input elements in an igx-input-group component."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/layout.mdx b/docs/angular/src/content/en/components/layout.mdx
index e37f561f75..5d8e376d5d 100644
--- a/docs/angular/src/content/en/components/layout.mdx
+++ b/docs/angular/src/content/en/components/layout.mdx
@@ -1,6 +1,8 @@
---
title: Angular Layout Manager Directives - MIT license
description: Only Ignite UI for Angular Layout Manager directive provides various styles of responsive and fluid user interfaces.
+llms:
+ description: "The Ignite UI for Angular Layout Directives allow developers to specify a layout direction for any children of the container it is applied to."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/linear-gauge.mdx b/docs/angular/src/content/en/components/linear-gauge.mdx
index 931e094849..837a9533c0 100644
--- a/docs/angular/src/content/en/components/linear-gauge.mdx
+++ b/docs/angular/src/content/en/components/linear-gauge.mdx
@@ -5,6 +5,8 @@ keywords: linear gauge, Ignite UI for Angular, Infragistics, animation, labels,
license: commercial
mentionedTypes: ["LinearGauge"]
namespace: Infragistics.Controls.Gauges
+llms:
+ description: "The Ignite UI for Angular linear gauge component allows for visualizing data in the form of a linear gauge."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/linear-progress.mdx b/docs/angular/src/content/en/components/linear-progress.mdx
index cd912d0cf4..6f599cab1c 100644
--- a/docs/angular/src/content/en/components/linear-progress.mdx
+++ b/docs/angular/src/content/en/components/linear-progress.mdx
@@ -3,6 +3,8 @@ title: Angular Linear Progress Component - MIT license
description: Display a progress bar and customize its appearance with endless color and striping options with Ignite UI for Angular Linear Progress Bar component.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular Linear Progress component, Angular Linear Progress control
license: MIT
+llms:
+ description: "The Ignite UI for Angular Linear Progress Bar Indicator component provides a visual indicator of an application’s process as it changes."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/list.mdx b/docs/angular/src/content/en/components/list.mdx
index 8c7c901302..93675647d7 100644
--- a/docs/angular/src/content/en/components/list.mdx
+++ b/docs/angular/src/content/en/components/list.mdx
@@ -3,6 +3,8 @@ title: Angular List View | Angular List Example | Infragistics | MIT license
description: The Ignite UI for Angular List component displays rows of items and supports one or more header items as well as search and filtering of list items. Try it for FREE
keywords: angular list, ignite ui for angular, angular list component, angular list view, angular list view component, angular ui components
license: MIT
+llms:
+ description: "The Ignite UI for Angular List component displays rows of items and supports one or more header items as well as search and filtering of list items."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -201,8 +203,7 @@ Let's look at how we can use some of them in the next example:
{{ contact.name }}
-
{{ contact.phone }}
-
+
{{ contact.phone }}
```
@@ -278,8 +279,7 @@ Cool, now let's update the template for our contacts list to show the avatar and
{{ contact.name }}
-
{{ contact.phone }}
-
+
{{ contact.phone }}
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta, laborum.star
@@ -400,8 +400,7 @@ Here is the HTML code of the example:
{{ contact.name }}
-
{{ contact.phone }}
-
+
{{ contact.phone }}
star
diff --git a/docs/angular/src/content/en/components/maps/map-api.mdx b/docs/angular/src/content/en/components/maps/map-api.mdx
index 99c6d29b71..9e7479168b 100644
--- a/docs/angular/src/content/en/components/maps/map-api.mdx
+++ b/docs/angular/src/content/en/components/maps/map-api.mdx
@@ -5,6 +5,8 @@ keywords: "Angular maps, geographic, map API, API, Ignite UI for Angular,"
license: commercial
mentionedTypes: ["GeographicMap", "Series", "SeriesViewer", "GeographicSymbolSeries", "GeographicProportionalSymbolSeries", "GeographicShapeSeries", "GeographicHighDensityScatterSeries", "GeographicScatterAreaSeries", "GeographicContourLineSeries", "GeographicShapeSeriesBase"]
namespace: Infragistics.Controls.Maps
+llms:
+ description: "API reference for the Angular Geographic Map component covering zoom and viewport management (WorldRect, WindowRect, WindowScale), geographic coordinate conversion (GetGeographicPoint, GetPixelPoint, GetGeographicFromZoom), and the Zoomable interface."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/mask.mdx b/docs/angular/src/content/en/components/mask.mdx
index 90ba0dae07..6c739eb4d6 100644
--- a/docs/angular/src/content/en/components/mask.mdx
+++ b/docs/angular/src/content/en/components/mask.mdx
@@ -3,6 +3,8 @@ title: Angular Mask Directive Component | Ignite UI for Angular | MIT license
description: With the Mask Directive in Ignite UI for Angular, the developer can control user input and format the visible value based on configurable mask rules, providing different input options and ease in use and configuration.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular mask directive, Mask, Directive, Mask Editor, Angular Mask Editor
license: MIT
+llms:
+ description: "By applying the igxMask directive on a text input field, the developer can control user input and format the visible value, based on configurable mask rules."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -146,8 +148,7 @@ Use the
-
0">Value: {{ socialSecurityNumber }}
-
+
0">Value: {{ socialSecurityNumber }}
```
```typescript
diff --git a/docs/angular/src/content/en/components/material-icons-extended.mdx b/docs/angular/src/content/en/components/material-icons-extended.mdx
index e4154565cb..4458eeef11 100644
--- a/docs/angular/src/content/en/components/material-icons-extended.mdx
+++ b/docs/angular/src/content/en/components/material-icons-extended.mdx
@@ -3,6 +3,8 @@ title: Material Icons Extended - Superset of material icons | MIT license
description: Ignite UI for Angular extends the material icons set to provide the designers and developers a wide range of icons to choose from.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Icon components, Angular Icon controls, Material icons extended
license: MIT
+llms:
+ description: "The Ignite UI Material Icons Extended is a subset of icons that extends the material icon set by Google."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/menus/toolbar.mdx b/docs/angular/src/content/en/components/menus/toolbar.mdx
index 37be012210..b582cad466 100644
--- a/docs/angular/src/content/en/components/menus/toolbar.mdx
+++ b/docs/angular/src/content/en/components/menus/toolbar.mdx
@@ -4,6 +4,8 @@ description: See how you can easily get started with Angular Toolbar Component.
keywords: "Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Toolbar components, Angular Toolbar controls"
license: commercial
mentionedTypes: ["Toolbar", "ToolAction", "DomainChart", "CategoryChart", "DataChart", "TrendLineType"]
+llms:
+ description: "The Angular Toolbar component is a companion container for UI operations to be used primarily with our charting components."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/month-picker.mdx b/docs/angular/src/content/en/components/month-picker.mdx
index cf82fd0c78..d29d9061f3 100644
--- a/docs/angular/src/content/en/components/month-picker.mdx
+++ b/docs/angular/src/content/en/components/month-picker.mdx
@@ -3,6 +3,8 @@ title: Angular Month Picker Component – Ignite UI for Angular - MIT license
description: The Ignite UI for Angular Month Picker component provides an easy and intuitive way to select a specific month and year using a month-year calendar view. Try it now.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Month Picker components, Angular Month Picker controls
license: MIT
+llms:
+ description: "The Ignite UI for Angular Month Picker component provides an easy and intuitive way to select a specific month and year using a month-year calendar view."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -104,7 +106,7 @@ public date: Date = new Date();
```html
{/* month-picker-sample.component.html */}
-
+
```
To create a two-way data-binding, set `ngModel` like this:
@@ -112,7 +114,7 @@ To create a two-way data-binding, set `ngModel` like this:
```html
{/* month-picker-sample.component.html */}
-
+
```
### Formatting
diff --git a/docs/angular/src/content/en/components/multi-column-combobox.mdx b/docs/angular/src/content/en/components/multi-column-combobox.mdx
index c60f4b1db9..034f6ff090 100644
--- a/docs/angular/src/content/en/components/multi-column-combobox.mdx
+++ b/docs/angular/src/content/en/components/multi-column-combobox.mdx
@@ -4,6 +4,8 @@ description: Infragistics' Angular combo component helps you select the best cha
keywords: Angular combo, drop down, Ignite UI for Angular, Infragistics
license: MIT
mentionedTypes: []
+llms:
+ description: "The Multi-Column Combo Box automatically generates columns for properties on the data object."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/navbar.mdx b/docs/angular/src/content/en/components/navbar.mdx
index eb89991ce3..411dac304a 100644
--- a/docs/angular/src/content/en/components/navbar.mdx
+++ b/docs/angular/src/content/en/components/navbar.mdx
@@ -3,6 +3,8 @@ title: Angular Navbar Component – Ignite UI for Angular | Infragistics | MIT l
description: Ignite UI for Angular Navbar control provides optimal UI experience with seamless integration to allow users to move within an application smoothly.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Angular NavBar component, Angular Navbar control, Angular Navigation Bar, Angular Navigation Bar component
license: MIT
+llms:
+ description: "The Ignite UI for Angular Navbar is an application header component that informs the user of their current position in an app, and helps them move back (much like the “back” button in a browser)."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/navdrawer.mdx b/docs/angular/src/content/en/components/navdrawer.mdx
index 93c524a03e..86e1c24888 100644
--- a/docs/angular/src/content/en/components/navdrawer.mdx
+++ b/docs/angular/src/content/en/components/navdrawer.mdx
@@ -3,6 +3,8 @@ title: Angular Navigation Drawer Component – Ignite UI for Angular | Infragist
description: Implement a user-friendly slide in/out navigation container with complete programmatic control with Ignite UI for Angular Navigation Drawer component.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Navigation Drawer component, Angular Navigation Drawer control
license: MIT
+llms:
+ description: "The Ignite UI for Angular Navigation Drawer component is a side navigation container."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -319,7 +321,7 @@ The mini variant is commonly used in a persistent setup, so we've set `pin` and
## Using Angular Router
-To use the Angular Router, first, we need to import git from `@angular/router` and create an instance of the router in our constructor.
+To use the Angular Router, first, we need to import it from `@angular/router` and create an instance of the router in our constructor.
Then we have to define our navigation items using the router for their link values.
```typescript
@@ -375,16 +377,16 @@ Finally, import the RouterModule along with the items' routes in your `app.modul
/*app.module.ts*/
import { RouterModule } from '@angular/router';
-@NgModule([
+@NgModule({
imports: [
RouterModule,
- RouterModule.forRoot([
+ RouterModule.forRoot([
{path: 'avatar', component: NavDrawerRoutingComponent},
{path: 'badge', component: NavDrawerRoutingComponent},
{path: 'button-group', component: NavDrawerRoutingComponent}
])
]
-])
+})
```
After all the steps above are completed, your app should look like that:
diff --git a/docs/angular/src/content/en/components/nuget-feed.mdx b/docs/angular/src/content/en/components/nuget-feed.mdx
index f2a4ec97fc..b44b39e90d 100644
--- a/docs/angular/src/content/en/components/nuget-feed.mdx
+++ b/docs/angular/src/content/en/components/nuget-feed.mdx
@@ -3,6 +3,8 @@ title: Infragistics NuGet Feed
description: Infragistics NuGet Feed for Angular components.
keywords: Angular, NuGet, Feed, Infragistics
mentionedTypes: []
+llms:
+ description: "Infragistics provides a private NuGet feed for licensed users to consume and add licensed Ignite UI for Blazor NuGet packages to their applications via the NuGet Package Manager."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/overlay-position.mdx b/docs/angular/src/content/en/components/overlay-position.mdx
index f6d7fdf9e5..0325d89fa3 100644
--- a/docs/angular/src/content/en/components/overlay-position.mdx
+++ b/docs/angular/src/content/en/components/overlay-position.mdx
@@ -2,6 +2,8 @@
title: Angular Overlay Service - Positioning Strategies - MIT license
description: Explanation and example about the Overlay Service's IPositionStrategy interface and the classes that implement it.
license: MIT
+llms:
+ description: "Position strategies determine where the content is displayed in the provided IgxOverlayService."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/overlay-scroll.mdx b/docs/angular/src/content/en/components/overlay-scroll.mdx
index e7102f3cc0..8710651350 100644
--- a/docs/angular/src/content/en/components/overlay-scroll.mdx
+++ b/docs/angular/src/content/en/components/overlay-scroll.mdx
@@ -2,6 +2,8 @@
title: Angular Overlay Service - Scroll Strategies - MIT license
description: Explanation and example about the Overlay Service's IScrollStrategy interface and the classes that implement it.
license: MIT
+llms:
+ description: "The scroll strategy determines how the scrolling is handled in the provided IgxOverlayService."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/overlay-styling.mdx b/docs/angular/src/content/en/components/overlay-styling.mdx
index 0f509dc0ff..e598be8079 100644
--- a/docs/angular/src/content/en/components/overlay-styling.mdx
+++ b/docs/angular/src/content/en/components/overlay-styling.mdx
@@ -3,6 +3,8 @@ title: Angular Overlay Styling | MIT license
description: A detailed walkthrough that explains how to properly apply and scope styles to elements that are displayed using the IgniteUI for Angular Overlay Service.
keywords: Ignite UI for Angular, Angular Overlay Service, Angular UI controls, Overlay Service, View Encapsulation Example, Sass scoped styles in Angular, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library
license: MIT
+llms:
+ description: "IgxOverlayService is used to display content above the page content."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/overlay.mdx b/docs/angular/src/content/en/components/overlay.mdx
index dea3978b3f..bbafbda842 100644
--- a/docs/angular/src/content/en/components/overlay.mdx
+++ b/docs/angular/src/content/en/components/overlay.mdx
@@ -3,6 +3,8 @@ title: Angular Overlay Service – Ignite UI for Angular | Infragistics | MIT li
description: Provides a service which enables developers to position content above all other component/html content of the page. Comes with a robust API allowing for precise configuration of the service.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Overlay Service component
license: MIT
+llms:
+ description: "The overlay service provides an easy and quick way to dynamically render content in the foreground of an app."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
@@ -30,7 +32,7 @@ First we need to import the in the component a
```typescript
import { Inject } from '@angular/core'
-import { IgxOverlayService } from `igniteui-angular`;
+import { IgxOverlayService } from 'igniteui-angular';
...
@@ -152,7 +154,7 @@ For example, if we want the content to be positioned relative to an element, we
```typescript
// my-overlay-component.component.ts
-// import the ConnectedPositioningStategy class
+// import the ConnectedPositioningStrategy class
import { ConnectedPositioningStrategy } from 'igniteui-angular/core';
// import { ConnectedPositioningStrategy } from '@infragistics/igniteui-angular'; for licensed package
...
@@ -220,7 +222,7 @@ We can modify the previously defined overlay method to not only show but also hi
```typescript
// my-overlay-component.component.ts
-// add an import for the definion of ConnectedPositioningStategy class
+// add an import for the definition of ConnectedPositioningStrategy class
import { ConnectedPositioningStrategy } from 'igniteui-angular/core';
// import { ConnectedPositioningStrategy } from '@infragistics/igniteui-angular'; for licensed package
diff --git a/docs/angular/src/content/en/components/paginator.mdx b/docs/angular/src/content/en/components/paginator.mdx
index 98c9fd69c2..68dcf3b8ec 100644
--- a/docs/angular/src/content/en/components/paginator.mdx
+++ b/docs/angular/src/content/en/components/paginator.mdx
@@ -3,6 +3,8 @@ title: Angular Paginator Example – Ignite UI for Angular - MIT license
description: Configure Angular pagination and create custom pages in the Angular table, or other iterable UI collection, by Ignite UI, get data for the requested pages with variety of angular events.
keywords: angular paginator, angular paginator component, angular ui components, igniteui for angular, infragistics
license: MIT
+llms:
+ description: "Pagination in Angular is an optimization technique when working with huge data sets."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/pie-chart.mdx b/docs/angular/src/content/en/components/pie-chart.mdx
index 1fb640a5a5..d95a4dc46a 100644
--- a/docs/angular/src/content/en/components/pie-chart.mdx
+++ b/docs/angular/src/content/en/components/pie-chart.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular pie chart to create a colorful pie chart
keywords: Angular charts, pie chart, Ignite UI for Angular, Infragistics, data binding, slice selection, slice explosion, animation
license: commercial
mentionedTypes: ['XamPieChart','SliceSelectionMode','PieSliceOthersContext']
+llms:
+ description: "The Ignite UI for Angular pie chart component is a specialized component that renders a pie chart, consisting of a circular area divided into sections."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/pivotGrid/pivot-grid-custom.mdx b/docs/angular/src/content/en/components/pivotGrid/pivot-grid-custom.mdx
index 8f27c56817..04c53ca4b6 100644
--- a/docs/angular/src/content/en/components/pivotGrid/pivot-grid-custom.mdx
+++ b/docs/angular/src/content/en/components/pivotGrid/pivot-grid-custom.mdx
@@ -3,6 +3,8 @@ title: Angular Pivot Grid Custom Remote | Pivot Tables | Infragistics
description: Create fast, responsive Angular pivot grids and tables with Ignite UI for Angular. Perform complex data analysis via pivot data.
keywords: angular pivot grid, Angular pivot table, ignite ui for angular, pivot grid customization, pivot grid remote, pivot remote
license: commercial
+llms:
+ description: "In scenarios where the pivot data is already grouped and aggregated from a remote service and there's no need for further processing on the client, the pivot grid can be configured to use a custom empty strategy that will skip data processing on the client and allow it to."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/pivotGrid/pivot-grid-features.mdx b/docs/angular/src/content/en/components/pivotGrid/pivot-grid-features.mdx
index ead9eb1b35..e66f836fc4 100644
--- a/docs/angular/src/content/en/components/pivotGrid/pivot-grid-features.mdx
+++ b/docs/angular/src/content/en/components/pivotGrid/pivot-grid-features.mdx
@@ -3,6 +3,8 @@ title: Angular Pivot Grid Features | Pivot Tables | Infragistics
description: Create fast, responsive Angular pivot grids and tables with Ignite UI for Angular. Perform complex data analysis via pivot data.
keywords: angular pivot grid, Angular pivot table, ignite ui for angular, pivot grid features, pivot features
license: commercial
+llms:
+ description: "The pivot and flat grid component classes inherit from a common base and thus share some functionality and features."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/pivotGrid/pivot-grid.mdx b/docs/angular/src/content/en/components/pivotGrid/pivot-grid.mdx
index 5239abc7b7..364cd14a2c 100644
--- a/docs/angular/src/content/en/components/pivotGrid/pivot-grid.mdx
+++ b/docs/angular/src/content/en/components/pivotGrid/pivot-grid.mdx
@@ -3,6 +3,8 @@ title: Angular Pivot Grid & Table – Ignite UI for Angular
description: Create fast, responsive Angular pivot grids and tables with Ignite UI for Angular. Perform complex analysis and apply data sorting, grouping, or filtering.
keywords: angular pivot grid, angular pivot grid component, angular pivot table, angular pivot table component, angular pivot data table, Angular pivot table, angular ui components, ignite ui for angular
license: commercial
+llms:
+ description: "Ignite UI for Angular Pivot Grid is one of our best Angular Components, representing a table of grouped values and aggregates that lets you organize and summarize data in a tabular form."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/query-builder-model.mdx b/docs/angular/src/content/en/components/query-builder-model.mdx
index 3cae018312..6071b23d9c 100644
--- a/docs/angular/src/content/en/components/query-builder-model.mdx
+++ b/docs/angular/src/content/en/components/query-builder-model.mdx
@@ -3,6 +3,8 @@ title: Using the Query Builder Model
description: Angular Query Builder provides a serializable/deserializable JSON format model, making it easy to build SQL queries. Try it now.
keywords: Angular Query Builder component, Angular Query Builder control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: commercial
+llms:
+ description: "Angular Query Builder provides a serializable/deserializable JSON format model, making it easy to build SQL queries."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/query-builder.mdx b/docs/angular/src/content/en/components/query-builder.mdx
index 7ded61f47f..f2f9be2f1b 100644
--- a/docs/angular/src/content/en/components/query-builder.mdx
+++ b/docs/angular/src/content/en/components/query-builder.mdx
@@ -3,6 +3,8 @@ title: Angular Query Builder Component - Ignite UI for Angular
description: Angular Query Builder allows users to build complex custom queries in angular apps with a great UI experience. Try it Now.
keywords: Angular Query Builder component, Angular Query Builder control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: commercial
+llms:
+ description: "Angular Query Builder is part of our Angular Components and it provides a rich UI that allows developers to build complex data filtering queries for a specified data set."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/radial-gauge.mdx b/docs/angular/src/content/en/components/radial-gauge.mdx
index 0b2ad78053..27cd51afad 100644
--- a/docs/angular/src/content/en/components/radial-gauge.mdx
+++ b/docs/angular/src/content/en/components/radial-gauge.mdx
@@ -5,6 +5,8 @@ keywords: Radial Gauge, Ignite UI for Angular, Infragistics, animation, labels,
license: commercial
mentionedTypes: ["RadialGauge", "RadialGaugeRange"]
namespace: Infragistics.Controls.Gauges
+llms:
+ description: "The Angular radial gauge component provides a number of visual elements, like a needle, tick marks, ranges, and labels, in order to create a predefined shape and scale."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/radio-button.mdx b/docs/angular/src/content/en/components/radio-button.mdx
index 56f7fdbb90..ec4aea6890 100644
--- a/docs/angular/src/content/en/components/radio-button.mdx
+++ b/docs/angular/src/content/en/components/radio-button.mdx
@@ -3,6 +3,8 @@ title: Angular Radio and Radio Group – Ignite UI for Angular | Infragistics |
description: With Ignite UI for Angular Radio Button and Radio Group controls, developers can seamlessly present lists of options for users to select for better UI in template-driven and reactive forms.
keywords: Angular Radio Group component, Angular Radio Group control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The Ignite UI for Angular Radio Button component allows the user to select a single option from an available set of options that are listed side by side."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/rating.mdx b/docs/angular/src/content/en/components/rating.mdx
index aba5baa1eb..da8b18aff3 100644
--- a/docs/angular/src/content/en/components/rating.mdx
+++ b/docs/angular/src/content/en/components/rating.mdx
@@ -3,6 +3,8 @@ title: Angular Star Rating Component – Ignite UI for Angular - MIT license
description: With Angular Star Rating Component, users can view and provide feedback quickly. You can use the rating component in any angular app and angular forms. Try it Now
keywords: Angular Rating component, Angular Rating control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "Rating in Angular represents a widget enabling users to quickly provide feedback and evaluate a product or a service on a web page by using a star rating system."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/ripple.mdx b/docs/angular/src/content/en/components/ripple.mdx
index 7cc539951a..e480f36a6e 100644
--- a/docs/angular/src/content/en/components/ripple.mdx
+++ b/docs/angular/src/content/en/components/ripple.mdx
@@ -3,6 +3,8 @@ title: Angular Ripple Directive – Ignite UI for Angular | Infragistics | MIT l
description: With Ignite UI for Angular Ripple directive, developers can define an area which received a ripple animation effect for powerful UI enhancement.
keywords: Angular Ripple component, Angular Ripple Directive, Angular Ripple control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The Ignite UI for Angular Ripple component creates an animation in response to a touch or a mouse click."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/select.mdx b/docs/angular/src/content/en/components/select.mdx
index b2e37a058e..26b232926e 100644
--- a/docs/angular/src/content/en/components/select.mdx
+++ b/docs/angular/src/content/en/components/select.mdx
@@ -3,6 +3,8 @@ title: Angular Select Component - Ignite UI for Angular - MIT license
description: Learn how to configure Angular Select Component. Angular Select provides an input with Angular dropdown list, allowing single item selection of the Angular Combobox. Try it now.
keywords: angular select, angular select component, angular forms, angular form select component, angular ui components, igniteui for angular, infragistics
license: MIT
+llms:
+ description: "Angular Select is a form component used for selecting a single value from a list of predefined values."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -272,7 +274,7 @@ You can customize the default toggle button, using the `igxSelectToggleIcon` dir
{{ collapsed ? 'add_circle' : 'add_circle_outline'}}
...
-
+
```
## Keyboard Navigation
diff --git a/docs/angular/src/content/en/components/simple-combo.mdx b/docs/angular/src/content/en/components/simple-combo.mdx
index 7f1475f626..7c56763c52 100644
--- a/docs/angular/src/content/en/components/simple-combo.mdx
+++ b/docs/angular/src/content/en/components/simple-combo.mdx
@@ -3,6 +3,8 @@ title: Single Select ComboBox Component - MIT license
description: The Ignite UI for Angular Simple ComboBox provides a powerful input, combining features of the basic HTML input, select, filtering and custom drop-down lists. Try it for FREE
keywords: angular single selection combobox, angular combobox component, angular single selection combobox component, angular combo, angular ui components, ignite ui for angular, infragistics
license: MIT
+llms:
+ description: "The Angular Single Select ComboBox component is a modification of ComboBox component that allows single selection."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/slider/slider-ticks.mdx b/docs/angular/src/content/en/components/slider/slider-ticks.mdx
index b2a81356c9..0c989db8e9 100644
--- a/docs/angular/src/content/en/components/slider/slider-ticks.mdx
+++ b/docs/angular/src/content/en/components/slider/slider-ticks.mdx
@@ -3,6 +3,8 @@ title: Tick Marks | Thumb Track | Ignite UI for Angular | Infragistics | MIT li
description: Learn how to configure the Ignite UI for Angular slider tick marks, and improve your data visualization by using angular slider step with convenient thumb track
keywords: tick marks, igniteui for angular, infragistics
license: MIT
+llms:
+ description: "API reference for Angular Slider tick marks configuration, covering IgxSliderComponent styles, IRangeSliderValue for range sliders, and the SliderType enum."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/slider/slider.mdx b/docs/angular/src/content/en/components/slider/slider.mdx
index 1f683950b9..a7c49e8e6d 100644
--- a/docs/angular/src/content/en/components/slider/slider.mdx
+++ b/docs/angular/src/content/en/components/slider/slider.mdx
@@ -3,6 +3,8 @@ title: Angular Slider | Ignite UI for Angular | Infragistics | MIT license
description: Learn how to configure a selection in a given range by using the thumb track with Angular Slider part of Ignite UI for Angular. Choose between singe and range slider types
keywords: angular slider, angular slider component, angular range slider component, angular range input component, angular ui components, igniteui for angular, infragistics
license: MIT
+llms:
+ description: "The Ignite UI for Angular Slider is a form component which allows selection in a given range by moving a thumb along a track."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -353,7 +355,6 @@ In the following sample we disable all **secondary labels** by setting to
-```
```typescript
...
{
diff --git a/docs/angular/src/content/en/components/snackbar.mdx b/docs/angular/src/content/en/components/snackbar.mdx
index fa047bf5c7..68cdf1fa5b 100644
--- a/docs/angular/src/content/en/components/snackbar.mdx
+++ b/docs/angular/src/content/en/components/snackbar.mdx
@@ -3,6 +3,8 @@ title: Angular Snackbar Component - MIT license
description: Easily integrate a brief, single-line message within your mobile and desktop applications with Ignite UI for Angular Snackbar component.
keywords: Angular Snackbar component, Angular Snackbar control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The Ignite UI for Angular Snackbar component provides feedback about an operation with a single-line message, which can include an action."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/sparkline.mdx b/docs/angular/src/content/en/components/sparkline.mdx
index 0cb702531d..ad39932f43 100644
--- a/docs/angular/src/content/en/components/sparkline.mdx
+++ b/docs/angular/src/content/en/components/sparkline.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular sparkline chart control to render in a sm
keywords: Sparkline, Ignite UI for Angular, Infragistics, WinLoss, Area, Column
license: commercial
mentionedTypes: ['XamSparkline', 'SparklineDisplayType', 'TrendLineType']
+llms:
+ description: "The Ignite UI for Angular sparkline component is a lightweight charting control."
---
# Angular Sparkline Overview
diff --git a/docs/angular/src/content/en/components/splitter.mdx b/docs/angular/src/content/en/components/splitter.mdx
index 4ba4cd53d7..c1b0dc6210 100644
--- a/docs/angular/src/content/en/components/splitter.mdx
+++ b/docs/angular/src/content/en/components/splitter.mdx
@@ -3,6 +3,8 @@ title: Angular Splitter Component | Split Panes | Ignite UI for Angular | Infra
description: Use the Angular Splitter component to create a simple split layout splitting the view horizontally or vertically into multiple collapsible split panes.
keywords: angular splitter, angular splitter component, angular split view component, angular ui components, igniteui for angular, infragistics
license: MIT
+llms:
+ description: "The Ignite UI for Angular Splitter component provides the ability to create layouts, split into multiple vertically or horizontally arranged panes that may be resized, expanded and collapsed."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-activation.mdx b/docs/angular/src/content/en/components/spreadsheet-activation.mdx
index 75f9fe444d..aded5eb984 100644
--- a/docs/angular/src/content/en/components/spreadsheet-activation.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-activation.mdx
@@ -4,6 +4,8 @@ _description: Learn how to use the activation feature of the Angular spreadshee
_keywords: Excel Spreadsheet, activation, Ignite UI for Angular, Infragistics
_license: commercial
+llms:
+ description: "The Angular Spreadsheet component exposes properties that allow you to determine the currently active cell, pane, and worksheet in the control."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-chart-adapter.mdx b/docs/angular/src/content/en/components/spreadsheet-chart-adapter.mdx
index 8b2277ae91..38e78b0494 100644
--- a/docs/angular/src/content/en/components/spreadsheet-chart-adapter.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-chart-adapter.mdx
@@ -4,6 +4,8 @@ description: Display charts such as column, line and area, in the Infragistics'
keywords: Excel Spreadsheet, chart adapter, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet", "Worksheet", "WorksheetShapeCollection", "WorksheetChart"]
+llms:
+ description: "The Angular Spreadsheet component allows displaying charts in your Spreadsheet."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-clipboard.mdx b/docs/angular/src/content/en/components/spreadsheet-clipboard.mdx
index f814c0c4d9..e58f1046ff 100644
--- a/docs/angular/src/content/en/components/spreadsheet-clipboard.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-clipboard.mdx
@@ -4,6 +4,8 @@ description: Use clipboard operations such as copy, cut and paste within Infragi
keywords: Spreadsheet, clipboard operations, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet", "SpreadsheetAction", "SpreadsheetCommandType", "Command"]
+llms:
+ description: "Explains how to copy, cut, and paste cells in the Angular Spreadsheet by using its clipboard commands and API."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-commands.mdx b/docs/angular/src/content/en/components/spreadsheet-commands.mdx
index 000127f4f8..8f0779587e 100644
--- a/docs/angular/src/content/en/components/spreadsheet-commands.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-commands.mdx
@@ -4,6 +4,8 @@ description: Perform commands to activate different features of Infragistics' An
keywords: Spreadsheet, commands, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet", "SpreadsheetAction"]
+llms:
+ description: "The Angular Spreadsheet component allows you to perform commands for activating different features of the spreadsheet."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-conditional-formatting.mdx b/docs/angular/src/content/en/components/spreadsheet-conditional-formatting.mdx
index 24b4cb0692..e461d98f60 100644
--- a/docs/angular/src/content/en/components/spreadsheet-conditional-formatting.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-conditional-formatting.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular spreadsheet control to conditionally form
keywords: Spreadsheet, conditional formatting, Ignite UI for Angular, Infragistics, Worksheet
license: commercial
mentionedTypes: ["Spreadsheet", "ConditionalFormatCollection", "WorksheetCell", "Worksheet", "IWorksheetCellFormat"]
+llms:
+ description: "The Angular Spreadsheet component allows you to conditionally format the cells of a worksheet."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-configuring.mdx b/docs/angular/src/content/en/components/spreadsheet-configuring.mdx
index f8a0524a19..0c0896866a 100644
--- a/docs/angular/src/content/en/components/spreadsheet-configuring.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-configuring.mdx
@@ -4,6 +4,8 @@ description: Learn how configuring your Angular spreadsheets with Ignite UI for
keywords: Excel Spreadsheet, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet"]
+llms:
+ description: "The Angular Spreadsheet component allows the user to configure many different aspects of the control."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-data-validation.mdx b/docs/angular/src/content/en/components/spreadsheet-data-validation.mdx
index 027d1eeb54..0e56a0f5ac 100644
--- a/docs/angular/src/content/en/components/spreadsheet-data-validation.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-data-validation.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular spreadsheet control to setup built-in dat
keywords: Excel Spreadsheet, data validation, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet"]
+llms:
+ description: "When setting up the data validation rules you will need to import the rules you want to use."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-hyperlinks.mdx b/docs/angular/src/content/en/components/spreadsheet-hyperlinks.mdx
index 33889b2897..857f87478c 100644
--- a/docs/angular/src/content/en/components/spreadsheet-hyperlinks.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-hyperlinks.mdx
@@ -4,6 +4,8 @@ description: Use Infragistics' Angular spreadsheet control to display hyperlinks
keywords: Excel Spreadsheet, hyperlinks, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet"]
+llms:
+ description: "The Angular Spreadsheet component allows display of pre-existing hyperlinks in your Excel workbook as well as insertion of new ones that can link to websites, file directories, and even other worksheets in the workbook."
---
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/spreadsheet-overview.mdx b/docs/angular/src/content/en/components/spreadsheet-overview.mdx
index dc16da5c1a..ba4c03230c 100644
--- a/docs/angular/src/content/en/components/spreadsheet-overview.mdx
+++ b/docs/angular/src/content/en/components/spreadsheet-overview.mdx
@@ -4,6 +4,8 @@ description: Get flexible layouts, easy customization options & convenient Excel
keywords: Excel Spreadsheet, Ignite UI for Angular, Infragistics
license: commercial
mentionedTypes: ["Spreadsheet"]
+llms:
+ description: "The Angular Spreadsheet (Excel viewer) component is lightweight, feature-rich and supplied with all the necessary options for operating, visualizing, and editing all types of spreadsheet data – scientific, business, financial, and more."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
import Sample from 'igniteui-astro-components/components/mdx/Sample.astro';
diff --git a/docs/angular/src/content/en/components/stepper.mdx b/docs/angular/src/content/en/components/stepper.mdx
index 69468dcc44..a678e83110 100644
--- a/docs/angular/src/content/en/components/stepper.mdx
+++ b/docs/angular/src/content/en/components/stepper.mdx
@@ -3,6 +3,8 @@ title: Angular Stepper Component – Ignite UI for Angular - MIT license
description: Use the Angular Stepper component to visualize content as a process and show its progress by dividing the content into logical steps. Learn how to do it.
keywords: Angular Stepper component, Angular Wizard Component, Angular Stepper Control, Angular Wizard Control, Angular UI Components, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Infragistics
license: MIT
+llms:
+ description: "The Ignite UI for Angular Stepper is a highly customizable component that visualizes content as a process and shows its progress by dividing the content into successive steps."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -70,12 +72,10 @@ import { IGX_STEPPER_DIRECTIVES } from 'igniteui-angular/stepper';
selector: 'app-home',
template: `
-
Step 1
-
+
Step 1
-
Step 2
-
+
Step 2
`,
styleUrls: ['home.component.scss'],
@@ -112,8 +112,7 @@ Steps can be declared using one of the following approaches.
{{step.title}}
-
-
+
```
@@ -128,12 +127,10 @@ This component uses Material Icons. Add the following link to your `index.html`:
```html
-
Step 1
-
+
Step 1
-
Step 2
-
+
Step 2
```
@@ -144,14 +141,11 @@ For each step the user has the ability to configure indicator, title, subtitle a
home
-
Home
-
-
Home Sub Title
-
+
Home
+
Home Sub Title
...
-
-
+
```
diff --git a/docs/angular/src/content/en/components/style-guide.mdx b/docs/angular/src/content/en/components/style-guide.mdx
index 3e32b9ce8b..c39c5e40fc 100644
--- a/docs/angular/src/content/en/components/style-guide.mdx
+++ b/docs/angular/src/content/en/components/style-guide.mdx
@@ -1,5 +1,7 @@
---
title: "Style guide"
+llms:
+ description: "Defines the colors, typography, headings, links, code formatting, and other visual conventions used by the Ignite UI for Angular documentation."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/switch.mdx b/docs/angular/src/content/en/components/switch.mdx
index 89f1fd742b..5e03e8f9e3 100644
--- a/docs/angular/src/content/en/components/switch.mdx
+++ b/docs/angular/src/content/en/components/switch.mdx
@@ -3,6 +3,8 @@ title: Angular Switch Component – Ignite UI for Angular | Infragistics | MIT l
description: Ignite UI for Angular Switch component enables developers to use binary on/off or true/false data input functions within their applications.
keywords: Angular Switch component, Angular Switch control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The Ignite UI for Angular Switch component is a binary choice selection component that behaves similarly to the switch component in iOS."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/tabbar.mdx b/docs/angular/src/content/en/components/tabbar.mdx
index af5ae9e73c..7fb7f8f01a 100644
--- a/docs/angular/src/content/en/components/tabbar.mdx
+++ b/docs/angular/src/content/en/components/tabbar.mdx
@@ -3,6 +3,8 @@ title: Angular Bottom Navigation Component – Ignite UI for Angular | Infragist
description: Display tabs for any occasion and implement a completely tabbed user interface. These UI controls manage every aspect of your tabs’ appearance and behavior.
keywords: Angular Bottom Nav component, Angular Bottom Navigation control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The Ignite UI for Angular Bottom Navigation component enables the user to navigate among a number of content panels displayed in a single view."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -286,20 +288,17 @@ import { Component } from '@angular/core';
export class BottomNavRoutingComponent { }
@Component({
- template: '
'
})
export class BottomNavRoutingView3Component { }
```
diff --git a/docs/angular/src/content/en/components/tabs.mdx b/docs/angular/src/content/en/components/tabs.mdx
index 11fca7b7bd..2a4593027b 100644
--- a/docs/angular/src/content/en/components/tabs.mdx
+++ b/docs/angular/src/content/en/components/tabs.mdx
@@ -3,6 +3,8 @@ title: Angular Tabs Component | Ignite UI for Angular | MIT license
description: The Ignite UI for Angular Tabs component places tabs at the top and allows for scrolling when there are multiple tab items on the screen. Try it now.
keywords: Angular Tabs component, Angular Tabs control, Angular Tabs, Angular Tabbar Component, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Components, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "Ignite UI for Angular Tabs is a full-featured user interface component that has the primary purpose to organize and group related content in a single tabbed view, thus saving space and making content more comprehensible."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -268,20 +270,17 @@ import { Component } from '@angular/core';
export class TabsRoutingComponent { }
@Component({
- template: '
'
})
export class TabsRoutingView3Component { }
```
diff --git a/docs/angular/src/content/en/components/texthighlight.mdx b/docs/angular/src/content/en/components/texthighlight.mdx
index b76c980216..bbc4ac3ab3 100644
--- a/docs/angular/src/content/en/components/texthighlight.mdx
+++ b/docs/angular/src/content/en/components/texthighlight.mdx
@@ -3,6 +3,8 @@ title: Angular Text Highlight Directive | Ignite UI for Angular | MIT license
description: The Ignite UI for Angular TextHighlight directive can be used to highlight parts of text and have an active highlight on one of them.
keywords: Angular TextHighlight Directive, Angular Text Highlight Directive, IgxTextHighlight Directive, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Components, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The TextHighlightDirective and IgxTextHighlightService in Ignite UI for Angular are used to highlight parts of a text, providing options for case sensitive searches and to highlight only exact matches."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -88,9 +90,7 @@ Let's create a search box that we can use to highlight different parts of the te
search
- 0" (click)="clearSearch()"
- >clear
+ 0" (click)="clearSearch()">clear
-
Tile 1
-
+
Tile 1
-
Tile 2
-
+
Tile 2
-
Tile 3
-
+
Tile 3
```
diff --git a/docs/angular/src/content/en/components/time-picker.mdx b/docs/angular/src/content/en/components/time-picker.mdx
index 947c48f9c0..a82978a3ee 100644
--- a/docs/angular/src/content/en/components/time-picker.mdx
+++ b/docs/angular/src/content/en/components/time-picker.mdx
@@ -3,6 +3,8 @@ title: Angular Time Picker Component | Ignite UI for Angular | MIT license
description: The Ignite UI for Angular Time Picker component allows the user to select time from a dialog with spinners which is then mirrored in the input field. Try it now
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Native Angular Components, Angular Time Picker component, Angular Time Picker control, Time Picker, Angular Time Picker
license: MIT
+llms:
+ description: "The time picker component allows users to input or select time portions of a Date object from a dropdown or dialog with spinners, which is then mirrored in the input field."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/toast.mdx b/docs/angular/src/content/en/components/toast.mdx
index 3e7ab44af4..07b1d8d59c 100644
--- a/docs/angular/src/content/en/components/toast.mdx
+++ b/docs/angular/src/content/en/components/toast.mdx
@@ -3,6 +3,8 @@ title: Angular Toast Component – Ignite UI for Angular | Infragistics | MIT li
description: With Ignite UI for Angular Toast component, users can provide quick, non-interactive messages to end users within their application.
keywords: Angular Toast component, Angular Toast control, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library
license: MIT
+llms:
+ description: "The Ignite UI for Angular Toast component provides information and warning messages that are auto-hiding, non-interactive and cannot be dismissed by the user."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/toggle.mdx b/docs/angular/src/content/en/components/toggle.mdx
index 619f53173a..3cfb5656db 100644
--- a/docs/angular/src/content/en/components/toggle.mdx
+++ b/docs/angular/src/content/en/components/toggle.mdx
@@ -3,6 +3,8 @@ title: Angular Toggle Component | Ignite UI for Angular | MIT license
description: The Ignite UI for Angular Toggle directive allows the users to open, to interact with, to apply animations, and to close a toggle container.
keywords: Angular Toggle directive, Angular Toggle control, Angular Toggle Component, Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Angular UI Components, Native Angular Components Library, Native Angular Components
license: MIT
+llms:
+ description: "The Ignite UI for Angular Toggle directive allows the users to make a container in the DOM toggleable through user interaction."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/tooltip.mdx b/docs/angular/src/content/en/components/tooltip.mdx
index 08ce8816bf..51fdaea73c 100644
--- a/docs/angular/src/content/en/components/tooltip.mdx
+++ b/docs/angular/src/content/en/components/tooltip.mdx
@@ -3,6 +3,8 @@ title: Angular Tooltip Component | Ignite UI for Angular | MIT license
description: The Ignite UI for Angular Tooltip and Tooltip Target directives feature the ability to create a tooltip and attach it to an element.
keywords: Ignite UI for Angular, UI controls, Angular widgets, web widgets, UI widgets, Angular, Native Angular Components Suite, Native Angular Controls, Native Angular Components Library, Angular Tooltip directives, Angular Tooltip controls, Angular Tooltip, tooltip, tooltip target
license: MIT
+llms:
+ description: "The igxTooltip and the igxTooltipTarget directives provide us with the ability to create a fully customizable tooltip and attach it to any element on our page."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
diff --git a/docs/angular/src/content/en/components/transaction-classes.mdx b/docs/angular/src/content/en/components/transaction-classes.mdx
index ecb07ee70e..b1acb036d7 100644
--- a/docs/angular/src/content/en/components/transaction-classes.mdx
+++ b/docs/angular/src/content/en/components/transaction-classes.mdx
@@ -2,6 +2,8 @@
title: Angular Batch Editing | Transaction Service | Ignite UI for Angular | Infragistics
description: Learn about the hierarchy of the Transaction Service class, that allows implementing batch editing when executing Angular CRUD operations on your components.
keywords: batch editing, igniteui for angular, infragistics
+llms:
+ description: "The Transaction is the main building block of the Transaction service."
---
import ApiLink from 'igniteui-astro-components/components/mdx/ApiLink.astro';
diff --git a/docs/angular/src/content/en/components/transaction-how-to-use.mdx b/docs/angular/src/content/en/components/transaction-how-to-use.mdx
index 40b7362832..29377168c4 100644
--- a/docs/angular/src/content/en/components/transaction-how-to-use.mdx
+++ b/docs/angular/src/content/en/components/transaction-how-to-use.mdx
@@ -2,6 +2,8 @@
title: Angular Batch Editing | Angular Crud | Ignite UI for Angular | Infragistics
description: How to configure batch editing for Ignite UI Angular components and execute CRUD operations on them, using Transaction service.
keywords: batch editing, igniteui for angular, infragistics
+llms:
+ description: "You may get advantage of the Transaction Service when using any component that needs to preserve the state of its data source and to commit many transactions at once."
---
import DocsAside from 'igniteui-astro-components/components/mdx/DocsAside.astro';
@@ -74,10 +76,8 @@ In our html template, we define an compo
Wishlist
-