@agent-native/core 0.98.1 → 0.98.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +8 -0
  3. package/corpus/core/docs/content/locales/ar-SA/pr-visual-recap.mdx +25 -1
  4. package/corpus/core/docs/content/locales/ar-SA/template-plan.mdx +1 -1
  5. package/corpus/core/docs/content/locales/de-DE/pr-visual-recap.mdx +25 -1
  6. package/corpus/core/docs/content/locales/de-DE/template-plan.mdx +1 -1
  7. package/corpus/core/docs/content/locales/es-ES/pr-visual-recap.mdx +25 -1
  8. package/corpus/core/docs/content/locales/es-ES/template-plan.mdx +1 -1
  9. package/corpus/core/docs/content/locales/fr-FR/pr-visual-recap.mdx +25 -1
  10. package/corpus/core/docs/content/locales/fr-FR/template-plan.mdx +1 -1
  11. package/corpus/core/docs/content/locales/hi-IN/pr-visual-recap.mdx +25 -1
  12. package/corpus/core/docs/content/locales/hi-IN/template-plan.mdx +1 -1
  13. package/corpus/core/docs/content/locales/ja-JP/pr-visual-recap.mdx +25 -1
  14. package/corpus/core/docs/content/locales/ja-JP/template-plan.mdx +1 -1
  15. package/corpus/core/docs/content/locales/ko-KR/pr-visual-recap.mdx +25 -1
  16. package/corpus/core/docs/content/locales/ko-KR/template-plan.mdx +1 -1
  17. package/corpus/core/docs/content/locales/pt-BR/pr-visual-recap.mdx +25 -1
  18. package/corpus/core/docs/content/locales/pt-BR/template-plan.mdx +1 -1
  19. package/corpus/core/docs/content/locales/zh-CN/pr-visual-recap.mdx +25 -1
  20. package/corpus/core/docs/content/locales/zh-CN/template-plan.mdx +1 -1
  21. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.mdx +25 -1
  22. package/corpus/core/docs/content/locales/zh-TW/template-plan.mdx +1 -1
  23. package/corpus/core/docs/content/pr-visual-recap.mdx +50 -1
  24. package/corpus/core/docs/content/template-plan.mdx +1 -1
  25. package/corpus/core/package.json +1 -1
  26. package/corpus/core/src/cli/plan-local.ts +43 -11
  27. package/corpus/core/src/cli/pr-visual-recap-workflow.ts +2 -9
  28. package/corpus/core/src/cli/recap.ts +356 -4
  29. package/corpus/core/src/cli/skills-content/local-files.ts +17 -12
  30. package/corpus/core/src/client/analytics.ts +96 -14
  31. package/corpus/core/src/client/index.ts +5 -0
  32. package/corpus/core/src/client/session-replay.ts +10 -0
  33. package/corpus/core/src/client/settings/DemoModeSection.tsx +4 -28
  34. package/corpus/core/src/client/url-scrub.ts +13 -0
  35. package/corpus/core/src/client/use-demo-mode-status.ts +44 -0
  36. package/corpus/templates/analytics/AGENTS.md +8 -0
  37. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +18 -4
  38. package/corpus/templates/analytics/app/lib/demo-chart-trend.ts +156 -0
  39. package/corpus/templates/analytics/changelog/2026-07-12-daily-dashboard-emails-reliably-include-the-complete-dashboa.md +6 -0
  40. package/corpus/templates/analytics/changelog/2026-07-12-demo-mode-charts-trend-upward.md +6 -0
  41. package/corpus/templates/analytics/server/jobs/dashboard-report.ts +2 -0
  42. package/corpus/templates/analytics/server/lib/dashboard-report.ts +17 -33
  43. package/corpus/templates/clips/app/components/player/video-player.tsx +5 -1
  44. package/corpus/templates/clips/changelog/2026-07-11-clips-no-longer-stay-stuck-on-preparing-clip-when-they-are-r.md +6 -0
  45. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +2 -2
  46. package/corpus/templates/content/changelog/2026-07-12-the-left-sidebar-stays-fixed-horizontally-while-scrolling-on.md +6 -0
  47. package/corpus/templates/plan/.agents/skills/visual-plan/references/local-files.md +17 -12
  48. package/corpus/templates/plan/.agents/skills/visual-recap/references/local-files.md +17 -12
  49. package/corpus/templates/plan/actions/validate-local-plan-source.ts +4 -4
  50. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +2 -1
  51. package/corpus/templates/plan/app/lib/plan-local-bridge.ts +41 -0
  52. package/corpus/templates/plan/app/lib/plan-tracking.ts +3 -0
  53. package/corpus/templates/plan/app/pages/PlansPage.tsx +9 -9
  54. package/corpus/templates/plan/app/root.tsx +13 -3
  55. package/corpus/templates/plan/changelog/2026-07-12-local-plan-source-now-stays-on-device.md +6 -0
  56. package/dist/cli/plan-local.d.ts +6 -6
  57. package/dist/cli/plan-local.d.ts.map +1 -1
  58. package/dist/cli/plan-local.js +36 -7
  59. package/dist/cli/plan-local.js.map +1 -1
  60. package/dist/cli/pr-visual-recap-workflow.d.ts +2 -8
  61. package/dist/cli/pr-visual-recap-workflow.d.ts.map +1 -1
  62. package/dist/cli/pr-visual-recap-workflow.js +2 -8
  63. package/dist/cli/pr-visual-recap-workflow.js.map +1 -1
  64. package/dist/cli/recap.d.ts +22 -1
  65. package/dist/cli/recap.d.ts.map +1 -1
  66. package/dist/cli/recap.js +286 -2
  67. package/dist/cli/recap.js.map +1 -1
  68. package/dist/cli/skills-content/local-files.d.ts +1 -1
  69. package/dist/cli/skills-content/local-files.d.ts.map +1 -1
  70. package/dist/cli/skills-content/local-files.js +17 -12
  71. package/dist/cli/skills-content/local-files.js.map +1 -1
  72. package/dist/client/analytics.d.ts +8 -0
  73. package/dist/client/analytics.d.ts.map +1 -1
  74. package/dist/client/analytics.js +77 -13
  75. package/dist/client/analytics.js.map +1 -1
  76. package/dist/client/index.d.ts +2 -1
  77. package/dist/client/index.d.ts.map +1 -1
  78. package/dist/client/index.js +2 -1
  79. package/dist/client/index.js.map +1 -1
  80. package/dist/client/session-replay.d.ts +2 -0
  81. package/dist/client/session-replay.d.ts.map +1 -1
  82. package/dist/client/session-replay.js +7 -0
  83. package/dist/client/session-replay.js.map +1 -1
  84. package/dist/client/settings/DemoModeSection.d.ts.map +1 -1
  85. package/dist/client/settings/DemoModeSection.js +4 -23
  86. package/dist/client/settings/DemoModeSection.js.map +1 -1
  87. package/dist/client/url-scrub.d.ts.map +1 -1
  88. package/dist/client/url-scrub.js +14 -0
  89. package/dist/client/url-scrub.js.map +1 -1
  90. package/dist/client/use-demo-mode-status.d.ts +12 -0
  91. package/dist/client/use-demo-mode-status.d.ts.map +1 -0
  92. package/dist/client/use-demo-mode-status.js +30 -0
  93. package/dist/client/use-demo-mode-status.js.map +1 -0
  94. package/dist/collab/struct-routes.d.ts +1 -1
  95. package/dist/notifications/routes.d.ts +3 -3
  96. package/dist/observability/routes.d.ts +5 -5
  97. package/dist/progress/routes.d.ts +1 -1
  98. package/dist/resources/handlers.d.ts +3 -3
  99. package/dist/secrets/routes.d.ts +9 -9
  100. package/docs/content/locales/ar-SA/pr-visual-recap.mdx +25 -1
  101. package/docs/content/locales/ar-SA/template-plan.mdx +1 -1
  102. package/docs/content/locales/de-DE/pr-visual-recap.mdx +25 -1
  103. package/docs/content/locales/de-DE/template-plan.mdx +1 -1
  104. package/docs/content/locales/es-ES/pr-visual-recap.mdx +25 -1
  105. package/docs/content/locales/es-ES/template-plan.mdx +1 -1
  106. package/docs/content/locales/fr-FR/pr-visual-recap.mdx +25 -1
  107. package/docs/content/locales/fr-FR/template-plan.mdx +1 -1
  108. package/docs/content/locales/hi-IN/pr-visual-recap.mdx +25 -1
  109. package/docs/content/locales/hi-IN/template-plan.mdx +1 -1
  110. package/docs/content/locales/ja-JP/pr-visual-recap.mdx +25 -1
  111. package/docs/content/locales/ja-JP/template-plan.mdx +1 -1
  112. package/docs/content/locales/ko-KR/pr-visual-recap.mdx +25 -1
  113. package/docs/content/locales/ko-KR/template-plan.mdx +1 -1
  114. package/docs/content/locales/pt-BR/pr-visual-recap.mdx +25 -1
  115. package/docs/content/locales/pt-BR/template-plan.mdx +1 -1
  116. package/docs/content/locales/zh-CN/pr-visual-recap.mdx +25 -1
  117. package/docs/content/locales/zh-CN/template-plan.mdx +1 -1
  118. package/docs/content/locales/zh-TW/pr-visual-recap.mdx +25 -1
  119. package/docs/content/locales/zh-TW/template-plan.mdx +1 -1
  120. package/docs/content/pr-visual-recap.mdx +50 -1
  121. package/docs/content/template-plan.mdx +1 -1
  122. package/package.json +1 -1
@@ -123,6 +123,28 @@ npx @agent-native/core@latest recap doctor
123
123
  अपने प्रतिबद्ध `visual-recap` फ़ोल्डर को पिन करता है, रिपॉजिटरी वेरिएबल सेट करता है
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## रनर चयन
127
+
128
+ डिफ़ॉल्ट रूप से वर्कफ़्लो GitHub द्वारा होस्ट किए गए `ubuntu-latest` रनर पर चलता है। किसी अन्य होस्ट किए गए रनर या अपने स्वयं के सेल्फ़-होस्टेड रनर का उपयोग करने के लिए, रिपॉजिटरी या संगठन वेरिएबल `VISUAL_RECAP_RUNS_ON` को एक मान्य JSON स्ट्रिंग या रनर लेबल की JSON सरणी पर सेट करें:
129
+
130
+ ```text
131
+ "ubuntu-latest"
132
+ ["self-hosted", "linux", "x64", "visual-recap"]
133
+ ```
134
+
135
+ JSON उद्धरण चिह्न आवश्यक हैं। यह मान पूरे `recap` जॉब के रनर को चुनता है। निर्देशित सेटअप के दौरान इसे कॉन्फ़िगर करने के लिए, वही JSON मान `--runs-on` को दें और फिर `doctor` से वर्कफ़्लो और रनर की उपलब्धता सत्यापित करें:
136
+
137
+ ```bash
138
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/core@latest recap doctor
140
+ ```
141
+
142
+ हल्का गेट अलग से `ubuntu-latest` का उपयोग करता है। GitHub-होस्टेड रनर बंद करने वाली रिपॉजिटरी `VISUAL_RECAP_GATE_RUNS_ON` को JSON के बिना एक सादे लेबल पर सेट कर सकती हैं, या `--gate-runs-on visual-recap-gate` का उपयोग कर सकती हैं। कस्टम लेबल केवल उसी रिपॉजिटरी के `OWNER`, `MEMBER` या `COLLABORATOR` लेखकों के लिए उपयोग होता है; फ़ोर्क और अन्य लेखक `ubuntu-latest` पर भेजे जाते हैं और GitHub-होस्टेड रनर बंद होने पर बिना शेड्यूल रह सकते हैं। समर्पित और संभव हो तो अस्थायी रनर उपयोग करें; मानक गेट PR ट्री को चेक आउट नहीं करता और वर्कफ़्लो लॉजिक व PR मेटाडेटा का मूल्यांकन करता है।
143
+
144
+ `recap doctor` गलत प्रारूप या असमर्थित JSON को अस्वीकार करता है और तब रिपोर्ट करता है जब GitHub सभी कॉन्फ़िगर किए गए लेबल से मेल खाने वाला कोई ऑनलाइन रनर उपलब्ध नहीं कराता। रनर का पंजीकरण, स्थापना, अपग्रेड, क्षमता और रखरखाव आपकी जिम्मेदारी बने रहते हैं; Agent Native लेबल चुनता है, लेकिन रनर प्रदान या संचालित नहीं करता।
145
+
146
+ **सुरक्षा:** अस्थायी सेल्फ़-होस्टेड रनर को प्राथमिकता दें। स्थायी सेल्फ़-होस्टेड रनर केवल उन निजी रिपॉजिटरी के लिए होने चाहिए जिनके योगदानकर्ता विश्वसनीय हों। वर्कफ़्लो अविश्वसनीय सार्वजनिक या फ़ोर्क PR लेखकों के लिए सेल्फ़-होस्टेड काम निर्धारित करने से पहले सुरक्षित रूप से बंद हो जाता है, लेकिन स्थायी मशीन जॉब के बीच वर्कस्पेस और प्रक्रिया स्थिति बनाए रखती है। इस गेट को कमजोर न करें और अविश्वसनीय योगदान को स्थायी रनर पर न भेजें।
147
+
126
148
  ## बैकएंड चयन
127
149
 
128
150
  चुनें कि कौन सा कोडिंग एजेंट `VISUAL_RECAP_AGENT` रिपॉजिटरी वेरिएबल के साथ कौशल चलाता है:
@@ -461,10 +483,12 @@ jobs:
461
483
  model: ${{ vars.VISUAL_RECAP_MODEL || '' }}
462
484
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
463
485
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
486
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
487
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
464
488
  # cli-version: "latest" # pin to a specific @agent-native/core version
465
489
  ```
466
490
 
467
- [Secrets and variables](#secrets-and-variables) में वर्णित समान रहस्य और चर लागू होते हैं - उन्हें कॉपी संस्करण के समान ही अपनी रेपो सेटिंग्स में सेट करें।
491
+ [Secrets and variables](#secrets-and-variables) में वर्णित समान रहस्य और चर लागू होते हैं। पुन: प्रयोज्य कॉलर पूरे जॉब के लिए `VISUAL_RECAP_RUNS_ON` को `runs-on` और गेट के लिए `VISUAL_RECAP_GATE_RUNS_ON` को एकल-लेबल `gate-runs-on` के रूप में भेजता है। दोनों छोड़ने पर `ubuntu-latest` उपयोग करते हैं।
468
492
 
469
493
  ### CLI के माध्यम से स्थापित करना
470
494
 
@@ -290,7 +290,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
290
290
  ```
291
291
 
292
292
  पुल URL जैसा दिखता है
293
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
293
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
294
294
  पेज सामान्य प्लान व्यूअर है, लेकिन ब्राउज़र `plan.mdx` प्राप्त करता है,
295
295
  `canvas.mdx`, `prototype.mdx`, `.plan-state.json`, और स्थानीय छवि संपत्ति
296
296
  लोकलहोस्ट ब्रिज। योजना सामग्री होस्ट किए गए डेटाबेस में नहीं लिखी गई है और
@@ -123,6 +123,28 @@ npx @agent-native/core@latest recap doctor
123
123
  コミットされた `visual-recap` フォルダーを固定し、リポジトリ変数を設定します
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## ランナーの選択
127
+
128
+ デフォルトでは、ワークフローは GitHub がホストする `ubuntu-latest` ランナーで実行されます。別のホスト型ランナーまたは独自のセルフホスト ランナーを使用するには、リポジトリまたは組織変数 `VISUAL_RECAP_RUNS_ON` を有効な JSON 文字列、またはランナー ラベルの JSON 配列に設定します。
129
+
130
+ ```text
131
+ "ubuntu-latest"
132
+ ["self-hosted", "linux", "x64", "visual-recap"]
133
+ ```
134
+
135
+ JSON の引用符は必須です。この値は完全な `recap` ジョブのランナーを選択します。ガイド付きセットアップ中に構成するには、同じ JSON 値を `--runs-on` に渡し、`doctor` でワークフローとランナーの可用性を検証します。
136
+
137
+ ```bash
138
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/core@latest recap doctor
140
+ ```
141
+
142
+ 軽量なゲートは別途 `ubuntu-latest` を使用します。GitHub ホスト型ランナーを無効にしたリポジトリでは、`VISUAL_RECAP_GATE_RUNS_ON` に JSON ではない単一のプレーンラベルを設定するか、`--gate-runs-on visual-recap-gate` を使用できます。カスタムラベルは同一リポジトリの `OWNER`、`MEMBER`、`COLLABORATOR` の作成者にのみ使用されます。フォークやその他の作成者は `ubuntu-latest` に強制され、GitHub ホスト型ランナーが無効な場合は未スケジュールのままになることがあります。専用で、できればエフェメラルなランナーを使用してください。標準ゲートは PR ツリーをチェックアウトせず、ワークフローのロジックと PR メタデータを評価します。
143
+
144
+ `recap doctor` は不正な形式または未対応の JSON を拒否し、構成されたすべてのラベルに一致するオンライン ランナーが GitHub にない場合に報告します。ランナーの登録、インストール、アップグレード、容量、保守は引き続き利用者の責任です。Agent Native はラベルを選択しますが、ランナーを提供または運用しません。
145
+
146
+ **セキュリティ:** エフェメラルなセルフホスト ランナーを推奨します。永続的なセルフホスト ランナーは、信頼できるコントリビューターだけが参加するプライベート リポジトリに限定してください。ワークフローは、信頼されていない公開 PR またはフォーク PR の作成者にセルフホスト作業を割り当てる前に安全側で停止しますが、永続的なマシンはジョブ間でワークスペースとプロセスの状態を保持します。このゲートを弱めたり、信頼されていないコントリビューションを永続的なランナーに送ったりしないでください。
147
+
126
148
  ## バックエンドの選択
127
149
 
128
150
  `VISUAL_RECAP_AGENT` リポジトリ変数を使用してスキルを実行するコーディング エージェントを選択します:
@@ -458,10 +480,12 @@ jobs:
458
480
  model: ${{ vars.VISUAL_RECAP_MODEL || '' }}
459
481
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
460
482
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
483
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
484
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
461
485
  # cli-version: "latest" # pin to a specific @agent-native/core version
462
486
  ```
463
487
 
464
- [Secrets and variables](#secrets-and-variables) で説明されているものと同じシークレットと変数が適用されます。コピー バリアントと同じ方法でリポジトリ設定に設定します。
488
+ [Secrets and variables](#secrets-and-variables) で説明されているものと同じシークレットと変数が適用されます。再利用可能な呼び出し元は、完全なジョブ向けに `VISUAL_RECAP_RUNS_ON` を `runs-on` として、ゲート向けに `VISUAL_RECAP_GATE_RUNS_ON` を単一ラベルの `gate-runs-on` として渡します。省略時はどちらも `ubuntu-latest` です。
465
489
 
466
490
  ### CLI 経由でのインストール
467
491
 
@@ -292,7 +292,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
292
292
  ```
293
293
 
294
294
  橋 URL は次のようになります
295
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
295
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
296
296
  このページは通常のプラン ビューアですが、ブラウザは `plan.mdx` を取得します。
297
297
  `canvas.mdx`、`prototype.mdx`、`.plan-state.json`、およびローカル画像アセット
298
298
  ローカルホストブリッジ。プランのコンテンツはホストされたデータベースに書き込まれず、
@@ -123,6 +123,28 @@ env 또는 로컬 계획에서 값을 사용할 수 있는 경우 비밀/변수
123
123
  커밋된 `visual-recap` 폴더를 고정하고 저장소 변수를 설정합니다.
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## 러너 선택
127
+
128
+ 기본적으로 워크플로는 GitHub에서 호스팅하는 `ubuntu-latest` 러너에서 실행됩니다. 다른 호스팅 러너나 자체 호스팅 러너를 사용하려면 저장소 또는 조직 변수 `VISUAL_RECAP_RUNS_ON`을 유효한 JSON 문자열이나 러너 레이블의 JSON 배열로 설정하세요.
129
+
130
+ ```text
131
+ "ubuntu-latest"
132
+ ["self-hosted", "linux", "x64", "visual-recap"]
133
+ ```
134
+
135
+ JSON 따옴표는 필수입니다. 이 값은 전체 `recap` 작업의 러너를 선택합니다. 안내식 설정 중 구성하려면 동일한 JSON 값을 `--runs-on`에 전달한 다음 `doctor`로 워크플로와 러너 가용성을 검증하세요.
136
+
137
+ ```bash
138
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/core@latest recap doctor
140
+ ```
141
+
142
+ 경량 게이트는 별도로 `ubuntu-latest`를 사용합니다. GitHub 호스팅 러너를 비활성화한 저장소는 `VISUAL_RECAP_GATE_RUNS_ON`을 JSON이 아닌 단일 일반 레이블로 설정하거나 `--gate-runs-on visual-recap-gate`를 사용할 수 있습니다. 사용자 지정 레이블은 같은 저장소의 `OWNER`, `MEMBER`, `COLLABORATOR` 작성자에게만 사용됩니다. 포크와 그 밖의 작성자는 `ubuntu-latest`로 강제되며 GitHub 호스팅 러너가 꺼져 있으면 예약되지 않을 수 있습니다. 전용이며 가능하면 임시인 러너를 사용하세요. 기본 게이트는 PR 트리를 체크아웃하지 않고 워크플로 로직과 PR 메타데이터를 평가합니다.
143
+
144
+ `recap doctor`는 잘못된 형식이나 지원되지 않는 JSON을 거부하며 구성된 모든 레이블과 일치하는 온라인 러너를 GitHub에서 찾을 수 없을 때 이를 보고합니다. 러너 등록, 설치, 업그레이드, 용량 및 유지 관리는 계속 사용자의 책임입니다. Agent Native는 레이블을 선택할 뿐 러너를 제공하거나 운영하지 않습니다.
145
+
146
+ **보안:** 임시 자체 호스팅 러너를 권장합니다. 영구 자체 호스팅 러너는 신뢰할 수 있는 기여자만 있는 비공개 저장소에만 사용해야 합니다. 워크플로는 신뢰할 수 없는 공개 또는 포크 PR 작성자에게 자체 호스팅 작업을 할당하기 전에 안전하게 중단하지만, 영구 머신은 작업 사이에 워크스페이스와 프로세스 상태를 유지합니다. 이 게이트를 약화하거나 신뢰할 수 없는 기여를 영구 러너로 보내지 마세요.
147
+
126
148
  ## 백엔드 선택
127
149
 
128
150
  `VISUAL_RECAP_AGENT` 저장소 변수를 사용하여 기술을 실행하는 코딩 에이전트를 선택하세요:
@@ -460,10 +482,12 @@ jobs:
460
482
  model: ${{ vars.VISUAL_RECAP_MODEL || '' }}
461
483
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
462
484
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
485
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
486
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
463
487
  # cli-version: "latest" # pin to a specific @agent-native/core version
464
488
  ```
465
489
 
466
- [Secrets and variables](#secrets-and-variables)에 설명된 것과 동일한 비밀 및 변수가 적용됩니다. 복사 변형과 동일한 방식으로 저장소 설정에서 설정하세요.
490
+ [Secrets and variables](#secrets-and-variables)에 설명된 것과 동일한 비밀 및 변수가 적용됩니다. 재사용 가능한 호출자는 전체 작업에 `VISUAL_RECAP_RUNS_ON`을 `runs-on`으로, 게이트에 `VISUAL_RECAP_GATE_RUNS_ON`을 단일 레이블 `gate-runs-on`으로 전달합니다. 생략하면 둘 다 `ubuntu-latest`를 사용합니다.
467
491
 
468
492
  ### CLI를 통해 설치
469
493
 
@@ -286,7 +286,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
286
286
  ```
287
287
 
288
288
  URL 다리는 다음과 같습니다
289
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
289
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
290
290
  페이지는 일반 Plan 뷰어이지만 브라우저는 `plan.mdx`를 가져옵니다.
291
291
  `canvas.mdx`, `prototype.mdx`, `.plan-state.json` 및 로컬 이미지 자산
292
292
  로컬호스트 브리지. 계획 콘텐츠는 호스팅된 데이터베이스에 기록되지 않으며
@@ -123,6 +123,28 @@ arquivos de referência que acompanham a habilidade. Se o seu repositório for p
123
123
  fixa sua pasta `visual-recap` comprometida, defina a variável do repositório
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## Seleção do executor
127
+
128
+ Por padrão, o fluxo de trabalho é executado em executores `ubuntu-latest` hospedados pelo GitHub. Para usar outro executor hospedado ou seu próprio executor auto-hospedado, defina a variável de repositório ou organização `VISUAL_RECAP_RUNS_ON` como uma string JSON válida ou uma matriz JSON de rótulos de executor:
129
+
130
+ ```text
131
+ "ubuntu-latest"
132
+ ["self-hosted", "linux", "x64", "visual-recap"]
133
+ ```
134
+
135
+ As aspas JSON são obrigatórias. Esse valor seleciona o executor do trabalho completo `recap`. Para configurá-lo durante a instalação guiada, passe o mesmo valor JSON para `--runs-on` e depois valide o fluxo de trabalho e a disponibilidade do executor com `doctor`:
136
+
137
+ ```bash
138
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/core@latest recap doctor
140
+ ```
141
+
142
+ O gate leve usa `ubuntu-latest` separadamente. Repositórios sem executores hospedados pelo GitHub podem definir `VISUAL_RECAP_GATE_RUNS_ON` como um único rótulo de texto simples, sem JSON, ou usar `--gate-runs-on visual-recap-gate`. O rótulo personalizado só vale para autores `OWNER`, `MEMBER` ou `COLLABORATOR` do mesmo repositório; forks e outros autores são forçados para `ubuntu-latest` e podem ficar sem agendamento se os executores hospedados estiverem desativados. Use um executor dedicado e, de preferência, efêmero: o gate padrão não baixa a árvore do PR e avalia a lógica do fluxo de trabalho e os metadados do PR.
143
+
144
+ `recap doctor` rejeita JSON malformado ou não compatível e informa quando o GitHub não apresenta nenhum executor on-line que corresponda a todos os rótulos configurados. O registro, a instalação, as atualizações, a capacidade e a manutenção do executor continuam sendo sua responsabilidade; o Agent Native seleciona os rótulos, mas não fornece nem opera o executor.
145
+
146
+ **Segurança:** Prefira executores auto-hospedados efêmeros. Executores auto-hospedados persistentes devem atender apenas a repositórios privados cujos colaboradores sejam confiáveis. O fluxo de trabalho falha de forma segura antes de agendar trabalho auto-hospedado para autores não confiáveis de PRs públicos ou de forks, mas uma máquina persistente ainda mantém o estado do espaço de trabalho e dos processos entre os trabalhos. Não enfraqueça essa barreira nem encaminhe contribuições não confiáveis para um executor persistente.
147
+
126
148
  ## Seleção de back-end
127
149
 
128
150
  Escolha qual agente de codificação executa a habilidade com a variável de repositório `VISUAL_RECAP_AGENT`:
@@ -460,10 +482,12 @@ jobs:
460
482
  model: ${{ vars.VISUAL_RECAP_MODEL || '' }}
461
483
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
462
484
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
485
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
486
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
463
487
  # cli-version: "latest" # pin to a specific @agent-native/core version
464
488
  ```
465
489
 
466
- Aplicam-se os mesmos segredos e variáveis descritos em [Secrets and variables](#secrets-and-variables) defina-os nas configurações do seu repositório da mesma forma que para a variante de cópia.
490
+ Aplicam-se os mesmos segredos e variáveis descritos em [Secrets and variables](#secrets-and-variables). O chamador reutilizável encaminha `VISUAL_RECAP_RUNS_ON` como `runs-on` para o trabalho completo e `VISUAL_RECAP_GATE_RUNS_ON` como o rótulo simples `gate-runs-on` para o gate. Ambos usam `ubuntu-latest` quando omitidos.
467
491
 
468
492
  ### Instalação via CLI
469
493
 
@@ -292,7 +292,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
292
292
  ```
293
293
 
294
294
  A ponte URL se parece com
295
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
295
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
296
296
  A página é o visualizador normal do Plano, mas o navegador busca `plan.mdx`,
297
297
  `canvas.mdx`, `prototype.mdx`, `.plan-state.json` e recursos de imagem locais de
298
298
  a ponte localhost. O conteúdo do plano não é gravado no banco de dados hospedado e é
@@ -123,6 +123,28 @@ npx @agent-native/core@latest recap doctor
123
123
  固定其提交的`visual-recap`文件夹,设置存储库变量
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## 运行器选择
127
+
128
+ 默认情况下,工作流程在 GitHub 托管的 `ubuntu-latest` 运行器上执行。若要使用其他托管运行器或自己的自托管运行器,请将存储库或组织变量 `VISUAL_RECAP_RUNS_ON` 设置为有效的 JSON 字符串或运行器标签的 JSON 数组:
129
+
130
+ ```text
131
+ "ubuntu-latest"
132
+ ["self-hosted", "linux", "x64", "visual-recap"]
133
+ ```
134
+
135
+ JSON 引号是必需的。此值选择完整 `recap` 作业的运行器。若要在引导设置期间进行配置,请将相同的 JSON 值传给 `--runs-on`,然后使用 `doctor` 验证工作流程和运行器可用性:
136
+
137
+ ```bash
138
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/core@latest recap doctor
140
+ ```
141
+
142
+ 轻量级门禁单独使用 `ubuntu-latest`。禁用 GitHub 托管运行器的存储库可以将 `VISUAL_RECAP_GATE_RUNS_ON` 设置为一个不含 JSON 的纯文本标签,或使用 `--gate-runs-on visual-recap-gate`。自定义标签仅用于同一存储库中身份为 `OWNER`、`MEMBER` 或 `COLLABORATOR` 的作者;分支及其他作者会被强制使用 `ubuntu-latest`,在禁用 GitHub 托管运行器时可能一直无法调度。请使用专用且最好是临时的运行器;标准门禁不会检出 PR 树,只评估工作流逻辑和 PR 元数据。
143
+
144
+ `recap doctor` 会拒绝格式错误或不受支持的 JSON,并在 GitHub 未提供与所有已配置标签匹配的在线运行器时进行报告。运行器的注册、安装、升级、容量和维护仍由您负责;Agent Native 只选择标签,不提供或运营运行器。
145
+
146
+ **安全性:** 建议使用临时自托管运行器。持久自托管运行器应仅用于贡献者可信的私有存储库。工作流程会在向不可信的公开或分支 PR 作者分配自托管工作前安全关闭,但持久计算机仍会在作业之间保留工作区和进程状态。请勿削弱此门禁,也不要将不可信贡献路由到持久运行器。
147
+
126
148
  ## 后端选择
127
149
 
128
150
  选择哪个编码代理使用 `VISUAL_RECAP_AGENT` 存储库变量运行技能:
@@ -458,10 +480,12 @@ jobs:
458
480
  model: ${{ vars.VISUAL_RECAP_MODEL || '' }}
459
481
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
460
482
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
483
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
484
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
461
485
  # cli-version: "latest" # pin to a specific @agent-native/core version
462
486
  ```
463
487
 
464
- 适用 [Secrets and variables](#secrets-and-variables) 中描述的相同秘密和变量 - 在存储库设置中以与复制变体相同的方式设置它们。
488
+ 适用 [Secrets and variables](#secrets-and-variables) 中描述的相同秘密和变量。可复用调用方将完整作业的 `VISUAL_RECAP_RUNS_ON` 转发为 `runs-on`,并将门禁的 `VISUAL_RECAP_GATE_RUNS_ON` 转发为单标签 `gate-runs-on`。省略时两者都使用 `ubuntu-latest`。
465
489
 
466
490
  ### 通过CLI安装
467
491
 
@@ -286,7 +286,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
286
286
  ```
287
287
 
288
288
  桥梁 URL 看起来像
289
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
289
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
290
290
  该页面是普通的计划查看器,但浏览器获取 `plan.mdx`,
291
291
  `canvas.mdx`、`prototype.mdx`、`.plan-state.json` 以及来自
292
292
  本地主机桥。计划内容不会写入托管数据库,而是
@@ -123,6 +123,28 @@ npx @agent-native/core@latest recap doctor
123
123
  固定其提交的`visual-recap`資料夾,設定儲存庫變數
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## 執行器選取
127
+
128
+ 預設情況下,工作流程會在 GitHub 託管的 `ubuntu-latest` 執行器上執行。若要使用其他託管執行器或自己的自託管執行器,請將儲存庫或組織變數 `VISUAL_RECAP_RUNS_ON` 設為有效的 JSON 字串或執行器標籤的 JSON 陣列:
129
+
130
+ ```text
131
+ "ubuntu-latest"
132
+ ["self-hosted", "linux", "x64", "visual-recap"]
133
+ ```
134
+
135
+ JSON 引號不可省略。此值會選取完整 `recap` 工作的執行器。若要在引導設定期間進行設定,請將相同的 JSON 值傳給 `--runs-on`,然後使用 `doctor` 驗證工作流程和執行器可用性:
136
+
137
+ ```bash
138
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
139
+ npx @agent-native/core@latest recap doctor
140
+ ```
141
+
142
+ 輕量級閘道會另外使用 `ubuntu-latest`。停用 GitHub 託管執行器的儲存庫可以將 `VISUAL_RECAP_GATE_RUNS_ON` 設為一個不含 JSON 的純文字標籤,或使用 `--gate-runs-on visual-recap-gate`。自訂標籤僅用於同一儲存庫中身分為 `OWNER`、`MEMBER` 或 `COLLABORATOR` 的作者;分支及其他作者會被強制使用 `ubuntu-latest`,在停用 GitHub 託管執行器時可能一直無法排程。請使用專用且最好是暫時性的執行器;標準閘道不會簽出 PR 樹,只評估工作流程邏輯與 PR 中繼資料。
143
+
144
+ `recap doctor` 會拒絕格式錯誤或不支援的 JSON,並在 GitHub 未提供符合所有已設定標籤的線上執行器時回報。執行器的註冊、安裝、升級、容量和維護仍由您負責;Agent Native 只選取標籤,不提供或營運執行器。
145
+
146
+ **安全性:** 建議使用暫時性自託管執行器。持久自託管執行器應僅用於貢獻者可信任的私人儲存庫。工作流程會在向不受信任的公開或分支 PR 作者指派自託管工作前安全關閉,但持久機器仍會在工作之間保留工作區和程序狀態。請勿削弱此閘道,也不要將不受信任的貢獻路由至持久執行器。
147
+
126
148
  ## 後端選取
127
149
 
128
150
  選取哪個編碼代理使用 `VISUAL_RECAP_AGENT` 儲存庫變數執行技能:
@@ -458,10 +480,12 @@ jobs:
458
480
  model: ${{ vars.VISUAL_RECAP_MODEL || '' }}
459
481
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
460
482
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
483
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
484
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
461
485
  # cli-version: "latest" # pin to a specific @agent-native/core version
462
486
  ```
463
487
 
464
- 適用 [Secrets and variables](#secrets-and-variables) 中描述的相同秘密和變數 - 在儲存庫設定中以與複製變體相同的方式設定它們。
488
+ 適用 [Secrets and variables](#secrets-and-variables) 中描述的相同秘密和變數。可重複使用的呼叫端會將完整工作的 `VISUAL_RECAP_RUNS_ON` 轉送為 `runs-on`,並將閘道的 `VISUAL_RECAP_GATE_RUNS_ON` 轉送為單一標籤 `gate-runs-on`。省略時兩者都使用 `ubuntu-latest`。
465
489
 
466
490
  ### 透過 CLI 安裝
467
491
 
@@ -286,7 +286,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
286
286
  ```
287
287
 
288
288
  橋梁 URL 看起來像
289
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
289
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
290
290
  該頁面是普通的計畫檢視器,但瀏覽器取得 `plan.mdx`,
291
291
  `canvas.mdx`、`prototype.mdx`、`.plan-state.json` 以及來自
292
292
  本機主機橋。計畫內容不會寫入託管資料庫,而是
@@ -123,6 +123,53 @@ reference files the skill ships with. If your repo intentionally customizes and
123
123
  pins its committed `visual-recap` folder, set the repository variable
124
124
  `VISUAL_RECAP_SKILL_SOURCE=repo`.
125
125
 
126
+ ## Runner selection
127
+
128
+ The workflow runs on GitHub-hosted `ubuntu-latest` runners by default. To use a
129
+ different hosted runner or your own self-hosted runner, set the repository or
130
+ organization variable `VISUAL_RECAP_RUNS_ON` to a valid JSON string or JSON
131
+ array of runner labels:
132
+
133
+ ```text
134
+ "ubuntu-latest"
135
+ ["self-hosted", "linux", "x64", "visual-recap"]
136
+ ```
137
+
138
+ The JSON quotes are required. This setting selects the full `recap` job runner.
139
+ To configure it during guided setup, pass the same JSON value to `--runs-on`,
140
+ then validate the workflow and runner availability with `doctor`:
141
+
142
+ ```bash
143
+ npx @agent-native/core@latest recap setup --runs-on '["self-hosted","linux","x64","visual-recap"]'
144
+ npx @agent-native/core@latest recap doctor
145
+ ```
146
+
147
+ The lightweight security gate defaults separately to GitHub-hosted
148
+ `ubuntu-latest`. Repositories that disable GitHub-hosted runners can set
149
+ `VISUAL_RECAP_GATE_RUNS_ON` to one **plain, single runner label** (not JSON), or
150
+ pass `--gate-runs-on visual-recap-gate` during setup. The reusable workflow
151
+ exposes the same value as its `gate-runs-on` input. This avoids parsing dynamic
152
+ JSON before GitHub can schedule the gate. The custom label is selected only for
153
+ same-repository PRs authored by an `OWNER`, `MEMBER`, or `COLLABORATOR`. Forks
154
+ and all other authors are forced to GitHub-hosted `ubuntu-latest` before the job
155
+ starts; in a self-hosted-only repository, those untrusted runs may remain
156
+ unscheduled rather than touching a self-hosted machine.
157
+
158
+ `recap doctor` rejects malformed or unsupported JSON and reports when GitHub
159
+ does not expose an online runner matching every configured label. Runner
160
+ registration, installation, upgrades, capacity, and maintenance remain your
161
+ responsibility; Agent Native selects the labels but does not provide or operate
162
+ the runner.
163
+
164
+ **Security:** Prefer dedicated, ephemeral self-hosted runners. A custom gate
165
+ runner receives only trusted same-repository PR events. The stock gate does not
166
+ check out the PR tree; it evaluates the workflow logic and GitHub PR metadata.
167
+ A persistent machine still retains process state across jobs, so do not share
168
+ it with unrelated workloads. The workflow fails closed before dispatching any
169
+ self-hosted gate or full recap job for untrusted public or fork PR authors. Do
170
+ not weaken that boundary or route untrusted contributions to a persistent
171
+ runner.
172
+
126
173
  ## Backend selection
127
174
 
128
175
  Choose which coding agent runs the skill with the `VISUAL_RECAP_AGENT` repository variable:
@@ -468,10 +515,12 @@ jobs:
468
515
  base-url: ${{ vars.VISUAL_RECAP_BASE_URL || '' }}
469
516
  reasoning: ${{ vars.VISUAL_RECAP_REASONING || '' }}
470
517
  skill-source: ${{ vars.VISUAL_RECAP_SKILL_SOURCE || 'auto' }}
518
+ runs-on: ${{ vars.VISUAL_RECAP_RUNS_ON || '"ubuntu-latest"' }}
519
+ gate-runs-on: ${{ vars.VISUAL_RECAP_GATE_RUNS_ON || 'ubuntu-latest' }}
471
520
  # cli-version: "latest" # pin to a specific @agent-native/core version
472
521
  ```
473
522
 
474
- The same secrets and variables described in [Secrets and variables](#secrets-and-variables) apply — set them in your repo settings the same way as for the copy variant.
523
+ The same secrets and variables described in [Secrets and variables](#secrets-and-variables) apply — set them in your repo settings the same way as for the copy variant. The reusable caller forwards `VISUAL_RECAP_RUNS_ON` through its JSON `runs-on` input for the full recap job and `VISUAL_RECAP_GATE_RUNS_ON` through its plain-label `gate-runs-on` input for the metadata-only gate. The latter is used only for trusted same-repository authors; other PRs use GitHub-hosted `ubuntu-latest`. Omitting either input preserves its `ubuntu-latest` default.
475
524
 
476
525
  ### Installing via the CLI
477
526
 
@@ -304,7 +304,7 @@ npx @agent-native/core@latest plan local serve --dir plans/<slug> --kind plan --
304
304
  ```
305
305
 
306
306
  The bridge URL looks like
307
- `https://plan.agent-native.com/local-plans/<slug>?bridge=http://127.0.0.1:...`.
307
+ `https://plan.agent-native.com/local-plans/local-<opaque-id>#bridge=http://127.0.0.1:...`.
308
308
  The page is the normal Plan viewer, but the browser fetches `plan.mdx`,
309
309
  `canvas.mdx`, `prototype.mdx`, `.plan-state.json`, and local image assets from
310
310
  the localhost bridge. Plan content is not written to the hosted database and is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.98.1",
3
+ "version": "0.98.2",
4
4
  "description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {