@vpxa/kb 0.1.24 → 0.1.26

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 (209) hide show
  1. package/README.md +3 -3
  2. package/package.json +9 -2
  3. package/packages/analyzers/dist/symbol-analyzer.js +5 -5
  4. package/packages/cli/dist/commands/init/adapters.js +1 -1
  5. package/packages/cli/dist/commands/init/constants.d.ts +4 -1
  6. package/packages/cli/dist/commands/init/constants.js +1 -1
  7. package/packages/cli/dist/commands/init/frontmatter.d.ts +54 -0
  8. package/packages/cli/dist/commands/init/frontmatter.js +2 -0
  9. package/packages/cli/dist/commands/init/index.js +4 -4
  10. package/packages/cli/dist/commands/init/manifest.d.ts +71 -0
  11. package/packages/cli/dist/commands/init/manifest.js +1 -0
  12. package/packages/cli/dist/commands/init/scaffold.d.ts +28 -5
  13. package/packages/cli/dist/commands/init/scaffold.js +1 -1
  14. package/packages/cli/dist/commands/init/templates.js +38 -9
  15. package/packages/cli/dist/commands/init/user.d.ts +3 -3
  16. package/packages/cli/dist/commands/init/user.js +4 -4
  17. package/packages/cli/dist/commands/system.js +2 -2
  18. package/packages/cli/dist/kb-init.js +1 -1
  19. package/packages/core/dist/errors.d.ts +2 -2
  20. package/packages/core/dist/errors.js +1 -1
  21. package/packages/core/dist/logger.d.ts +2 -1
  22. package/packages/core/dist/logger.js +1 -1
  23. package/packages/core/dist/types.d.ts +6 -0
  24. package/packages/dashboard/dist/assets/index-9ysCkze9.js +21 -0
  25. package/packages/dashboard/dist/assets/index-9ysCkze9.js.map +1 -0
  26. package/packages/dashboard/dist/assets/index-CHpVij2M.css +1 -0
  27. package/packages/dashboard/dist/index.html +18 -0
  28. package/packages/elicitation/dist/__tests__/build.test.d.ts +1 -0
  29. package/packages/elicitation/dist/__tests__/build.test.js +35 -0
  30. package/packages/elicitation/dist/__tests__/fields.test.d.ts +1 -0
  31. package/packages/elicitation/dist/__tests__/fields.test.js +81 -0
  32. package/packages/elicitation/dist/__tests__/normalize.test.d.ts +1 -0
  33. package/packages/elicitation/dist/__tests__/normalize.test.js +60 -0
  34. package/packages/elicitation/dist/build.d.ts +13 -0
  35. package/packages/elicitation/dist/build.js +23 -0
  36. package/packages/elicitation/dist/fields.d.ts +41 -0
  37. package/packages/elicitation/dist/fields.js +62 -0
  38. package/packages/elicitation/dist/index.d.ts +10 -0
  39. package/packages/elicitation/dist/index.js +12 -0
  40. package/packages/elicitation/dist/normalize.d.ts +15 -0
  41. package/packages/elicitation/dist/normalize.js +31 -0
  42. package/packages/elicitation/dist/types.d.ts +85 -0
  43. package/packages/elicitation/dist/types.js +8 -0
  44. package/packages/kb-client/dist/direct-client.d.ts +37 -0
  45. package/packages/kb-client/dist/direct-client.js +1 -0
  46. package/packages/kb-client/dist/index.d.ts +5 -0
  47. package/packages/kb-client/dist/index.js +1 -0
  48. package/packages/kb-client/dist/mcp-client.d.ts +19 -0
  49. package/packages/kb-client/dist/mcp-client.js +4 -0
  50. package/packages/kb-client/dist/parsers.d.ts +35 -0
  51. package/packages/kb-client/dist/parsers.js +2 -0
  52. package/packages/kb-client/dist/types.d.ts +62 -0
  53. package/packages/kb-client/dist/types.js +1 -0
  54. package/packages/present/dist/index.html +384 -0
  55. package/packages/server/dist/completions.d.ts +14 -0
  56. package/packages/server/dist/completions.js +1 -0
  57. package/packages/server/dist/dashboard-static.d.ts +27 -0
  58. package/packages/server/dist/dashboard-static.js +1 -0
  59. package/packages/server/dist/elicitor.d.ts +18 -0
  60. package/packages/server/dist/elicitor.js +1 -0
  61. package/packages/server/dist/index.js +1 -1
  62. package/packages/server/dist/mcp-logging.js +1 -1
  63. package/packages/server/dist/output-schemas.d.ts +118 -1
  64. package/packages/server/dist/output-schemas.js +1 -1
  65. package/packages/server/dist/prompts.d.ts +9 -2
  66. package/packages/server/dist/prompts.js +13 -7
  67. package/packages/server/dist/resources/curated-resources.js +1 -1
  68. package/packages/server/dist/resources/resource-notifier.d.ts +45 -0
  69. package/packages/server/dist/resources/resource-notifier.js +1 -0
  70. package/packages/server/dist/sampling.d.ts +41 -0
  71. package/packages/server/dist/sampling.js +2 -0
  72. package/packages/server/dist/server.d.ts +5 -2
  73. package/packages/server/dist/server.js +2 -2
  74. package/packages/server/dist/task-manager.d.ts +40 -0
  75. package/packages/server/dist/task-manager.js +1 -0
  76. package/packages/server/dist/tool-metadata.js +1 -1
  77. package/packages/server/dist/tool-prefix.d.ts +12 -0
  78. package/packages/server/dist/tool-prefix.js +1 -0
  79. package/packages/server/dist/tools/analyze.tools.js +4 -4
  80. package/packages/server/dist/tools/audit.tool.js +1 -1
  81. package/packages/server/dist/tools/brainstorm.tool.d.ts +7 -0
  82. package/packages/server/dist/tools/brainstorm.tool.js +9 -0
  83. package/packages/server/dist/tools/context.tools.js +9 -9
  84. package/packages/server/dist/tools/execution.tools.d.ts +2 -1
  85. package/packages/server/dist/tools/execution.tools.js +4 -4
  86. package/packages/server/dist/tools/forge.tools.js +10 -10
  87. package/packages/server/dist/tools/forget.tool.d.ts +2 -1
  88. package/packages/server/dist/tools/forget.tool.js +1 -1
  89. package/packages/server/dist/tools/graph.tool.js +2 -2
  90. package/packages/server/dist/tools/manipulation.tools.js +4 -4
  91. package/packages/server/dist/tools/onboard.tool.js +2 -2
  92. package/packages/server/dist/tools/present-blocks.d.ts +46 -0
  93. package/packages/server/dist/tools/present-blocks.js +27 -0
  94. package/packages/server/dist/tools/present-charts.d.ts +31 -0
  95. package/packages/server/dist/tools/present-charts.js +34 -0
  96. package/packages/server/dist/tools/present-theme.d.ts +14 -0
  97. package/packages/server/dist/tools/present-theme.js +395 -0
  98. package/packages/server/dist/tools/present-utils.d.ts +11 -0
  99. package/packages/server/dist/tools/present-utils.js +1 -0
  100. package/packages/server/dist/tools/present.tool.d.ts +7 -0
  101. package/packages/server/dist/tools/present.tool.js +113 -0
  102. package/packages/server/dist/tools/produce.tool.js +2 -2
  103. package/packages/server/dist/tools/reindex.tool.d.ts +2 -1
  104. package/packages/server/dist/tools/reindex.tool.js +2 -2
  105. package/packages/server/dist/tools/remember.tool.d.ts +2 -1
  106. package/packages/server/dist/tools/remember.tool.js +2 -2
  107. package/packages/server/dist/tools/replay.tool.js +1 -1
  108. package/packages/server/dist/tools/search.tool.d.ts +2 -1
  109. package/packages/server/dist/tools/search.tool.js +5 -4
  110. package/packages/server/dist/tools/status.tool.js +2 -2
  111. package/packages/server/dist/tools/update.tool.d.ts +2 -1
  112. package/packages/server/dist/tools/update.tool.js +1 -1
  113. package/packages/server/dist/tools/utility.tools.js +1 -1
  114. package/packages/tools/dist/batch.js +1 -1
  115. package/packages/tools/dist/checkpoint.js +1 -1
  116. package/packages/tools/dist/config-extractor.d.ts +9 -0
  117. package/packages/tools/dist/config-extractor.js +7 -0
  118. package/packages/tools/dist/dead-symbols.js +2 -2
  119. package/packages/tools/dist/diagram-builder.d.ts +9 -0
  120. package/packages/tools/dist/diagram-builder.js +9 -0
  121. package/packages/tools/dist/evidence-map.d.ts +12 -1
  122. package/packages/tools/dist/evidence-map.js +2 -2
  123. package/packages/tools/dist/find-examples.js +2 -2
  124. package/packages/tools/dist/forge-classify.d.ts +4 -0
  125. package/packages/tools/dist/forge-classify.js +1 -1
  126. package/packages/tools/dist/git-context.d.ts +1 -0
  127. package/packages/tools/dist/git-context.js +3 -3
  128. package/packages/tools/dist/index.d.ts +3 -2
  129. package/packages/tools/dist/index.js +1 -1
  130. package/packages/tools/dist/onboard-utils.d.ts +12 -0
  131. package/packages/tools/dist/onboard-utils.js +1 -0
  132. package/packages/tools/dist/onboard.js +2 -21
  133. package/packages/tools/dist/regex-utils.d.ts +8 -0
  134. package/packages/tools/dist/regex-utils.js +1 -0
  135. package/packages/tools/dist/rename.js +2 -2
  136. package/packages/tools/dist/replay.d.ts +2 -1
  137. package/packages/tools/dist/replay.js +4 -4
  138. package/packages/tools/dist/symbol.js +3 -3
  139. package/packages/tools/dist/synthesis-engine.d.ts +13 -0
  140. package/packages/tools/dist/synthesis-engine.js +6 -0
  141. package/packages/tools/dist/trace.js +2 -2
  142. package/packages/tui/dist/App-DXY0-tlW.js +2 -0
  143. package/packages/tui/dist/App.d.ts +3 -3
  144. package/packages/tui/dist/App.js +1 -1
  145. package/packages/tui/dist/CuratedPanel-BIamXLNy.js +2 -0
  146. package/packages/tui/dist/LogPanel-D6u6o84n.js +3 -0
  147. package/packages/tui/dist/SearchPanel-CpJGczAc.js +2 -0
  148. package/packages/tui/dist/StatusPanel-BAbUxyqQ.js +2 -0
  149. package/packages/tui/dist/hooks/useKBClient.d.ts +9 -0
  150. package/packages/tui/dist/hooks/useKBClient.js +2 -0
  151. package/packages/tui/dist/hooks/usePolling.d.ts +8 -0
  152. package/packages/tui/dist/hooks/usePolling.js +2 -0
  153. package/packages/tui/dist/index.d.ts +6 -2
  154. package/packages/tui/dist/index.js +1 -1
  155. package/packages/tui/dist/jsx-runtime-y6Gdq5PZ.js +294 -0
  156. package/packages/tui/dist/panels/CuratedPanel.d.ts +1 -7
  157. package/packages/tui/dist/panels/CuratedPanel.js +1 -1
  158. package/packages/tui/dist/panels/LogPanel.js +1 -1
  159. package/packages/tui/dist/panels/SearchPanel.d.ts +1 -10
  160. package/packages/tui/dist/panels/SearchPanel.js +1 -1
  161. package/packages/tui/dist/panels/StatusPanel.d.ts +1 -7
  162. package/packages/tui/dist/panels/StatusPanel.js +1 -1
  163. package/packages/tui/dist/react-D__J1GQe.js +24 -0
  164. package/packages/tui/dist/types-VcTHNV6s.d.ts +64 -0
  165. package/packages/tui/dist/useKBClient-C35iA4uG.js +2 -0
  166. package/packages/tui/dist/usePolling-BbjnRWgx.js +2 -0
  167. package/scaffold/adapters/copilot.mjs +9 -81
  168. package/scaffold/definitions/agents.mjs +12 -0
  169. package/scaffold/definitions/bodies.mjs +39 -14
  170. package/scaffold/definitions/protocols.mjs +149 -0
  171. package/scaffold/definitions/tools.mjs +40 -5
  172. package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +1 -1
  173. package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +1 -1
  174. package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +1 -1
  175. package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +1 -1
  176. package/scaffold/general/agents/Debugger.agent.md +2 -2
  177. package/scaffold/general/agents/Documenter.agent.md +2 -2
  178. package/scaffold/general/agents/Explorer.agent.md +4 -3
  179. package/scaffold/general/agents/Frontend.agent.md +1 -1
  180. package/scaffold/general/agents/Implementer.agent.md +1 -1
  181. package/scaffold/general/agents/Orchestrator.agent.md +16 -1
  182. package/scaffold/general/agents/Planner.agent.md +11 -4
  183. package/scaffold/general/agents/Refactor.agent.md +1 -1
  184. package/scaffold/general/agents/Researcher-Alpha.agent.md +1 -1
  185. package/scaffold/general/agents/Researcher-Beta.agent.md +1 -1
  186. package/scaffold/general/agents/Researcher-Delta.agent.md +1 -1
  187. package/scaffold/general/agents/Researcher-Gamma.agent.md +1 -1
  188. package/scaffold/general/agents/Security.agent.md +10 -8
  189. package/scaffold/general/agents/_shared/architect-reviewer-base.md +1 -0
  190. package/scaffold/general/agents/_shared/code-agent-base.md +28 -0
  191. package/scaffold/general/agents/_shared/code-reviewer-base.md +1 -0
  192. package/scaffold/general/agents/_shared/forge-protocol.md +44 -0
  193. package/scaffold/general/agents/_shared/researcher-base.md +14 -0
  194. package/scaffold/general/agents/templates/adr-template.md +1 -0
  195. package/scaffold/general/agents/templates/execution-state.md +1 -0
  196. package/skills/knowledge-base/SKILL.md +19 -6
  197. package/skills/present/SKILL.md +153 -0
  198. package/packages/server/dist/tools/toolkit.tools.d.ts +0 -36
  199. package/packages/server/dist/tools/toolkit.tools.js +0 -20
  200. package/packages/tui/dist/App-DE_tdOhs.js +0 -2
  201. package/packages/tui/dist/CuratedPanel-sYdZAICX.js +0 -2
  202. package/packages/tui/dist/LogPanel-Ce3jMQbH.js +0 -3
  203. package/packages/tui/dist/SearchPanel-DREo6zgt.js +0 -2
  204. package/packages/tui/dist/StatusPanel-2ex8fLOO.js +0 -2
  205. package/packages/tui/dist/embedder.interface-IFCBpOlX.d.ts +0 -28
  206. package/packages/tui/dist/index-C8NmOF18.d.ts +0 -13
  207. package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +0 -316
  208. package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +0 -150
  209. /package/packages/tui/dist/{devtools-DUyj952l.js → devtools-DMOZMn70.js} +0 -0
@@ -1,13 +1,7 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import { t as IKnowledgeStore } from "../store.interface-CnY6SPOH.js";
3
2
  import React from "react";
4
3
 
5
4
  //#region packages/tui/src/panels/CuratedPanel.d.ts
6
- interface CuratedPanelProps {
7
- store: IKnowledgeStore;
8
- }
9
- declare function CuratedPanel({
10
- store
11
- }: CuratedPanelProps): React.ReactElement;
5
+ declare function CuratedPanel(): React.ReactElement;
12
6
  //#endregion
13
7
  export { CuratedPanel };
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../CuratedPanel-sYdZAICX.js";export{e as CuratedPanel};
2
+ import{t as e}from"../CuratedPanel-BIamXLNy.js";export{e as CuratedPanel};
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../LogPanel-Ce3jMQbH.js";export{e as LogPanel};
2
+ import{t as e}from"../LogPanel-D6u6o84n.js";export{e as LogPanel};
@@ -1,16 +1,7 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import { t as IKnowledgeStore } from "../store.interface-CnY6SPOH.js";
3
- import { t as IEmbedder } from "../embedder.interface-IFCBpOlX.js";
4
2
  import React from "react";
5
3
 
6
4
  //#region packages/tui/src/panels/SearchPanel.d.ts
7
- interface SearchPanelProps {
8
- store: IKnowledgeStore;
9
- embedder: IEmbedder;
10
- }
11
- declare function SearchPanel({
12
- store,
13
- embedder
14
- }: SearchPanelProps): React.ReactElement;
5
+ declare function SearchPanel(): React.ReactElement;
15
6
  //#endregion
16
7
  export { SearchPanel };
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../SearchPanel-DREo6zgt.js";export{e as SearchPanel};
2
+ import{t as e}from"../SearchPanel-CpJGczAc.js";export{e as SearchPanel};
@@ -1,13 +1,7 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import { t as IKnowledgeStore } from "../store.interface-CnY6SPOH.js";
3
2
  import React from "react";
4
3
 
5
4
  //#region packages/tui/src/panels/StatusPanel.d.ts
6
- interface StatusPanelProps {
7
- store: IKnowledgeStore;
8
- }
9
- declare function StatusPanel({
10
- store
11
- }: StatusPanelProps): React.ReactElement;
5
+ declare function StatusPanel(): React.ReactElement;
12
6
  //#endregion
13
7
  export { StatusPanel };
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../StatusPanel-2ex8fLOO.js";export{e as StatusPanel};
2
+ import{t as e}from"../StatusPanel-BAbUxyqQ.js";export{e as StatusPanel};
@@ -0,0 +1,24 @@
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ import{t as e}from"./chunk-D6axbAb-.js";
3
+ /**
4
+ * @license React
5
+ * react.production.js
6
+ *
7
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
8
+ *
9
+ * This source code is licensed under the MIT license found in the
10
+ * LICENSE file in the root directory of this source tree.
11
+ */
12
+ var t=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ee(e,t){return E(e.type,t,e.props)}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=ee(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(j(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function P(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var F=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},I={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=I,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:P}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,F)}catch(e){F(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.4`})),n=e(((e,t)=>{process.env.NODE_ENV!==`production`&&(function(){function n(e,t){Object.defineProperty(a.prototype,e,{get:function(){console.warn(`%s(...) is deprecated in plain JavaScript React classes. %s`,t[0],t[1])}})}function r(e){return typeof e!=`object`||!e?null:(e=oe&&e[oe]||e[`@@iterator`],typeof e==`function`?e:null)}function i(e,t){e=(e=e.constructor)&&(e.displayName||e.name)||`ReactClass`;var n=e+`.`+t;se[n]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,e),se[n]=!0)}function a(e,t,n){this.props=e,this.context=t,this.refs=W,this.updater=n||H}function o(){}function s(e,t,n){this.props=e,this.context=t,this.refs=W,this.updater=n||H}function c(){}function l(e){return``+e}function u(e){try{l(e);var t=!1}catch{t=!0}if(t){t=console;var n=t.error,r=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return n.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,r),l(e)}}function d(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===ce?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case I:return`Fragment`;case L:return`Profiler`;case te:return`StrictMode`;case z:return`Suspense`;case ie:return`SuspenseList`;case ae:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case F:return`Portal`;case ne:return e.displayName||`Context`;case R:return(e._context.displayName||`Context`)+`.Consumer`;case re:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case B:return t=e.displayName||null,t===null?d(e.type)||`Memo`:t;case V:t=e._payload,e=e._init;try{return d(e(t))}catch{}}return null}function f(e){if(e===I)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===V)return`<...>`;try{var t=d(e);return t?`<`+t+`>`:`<...>`}catch{return`<...>`}}function p(){var e=q.A;return e===null?null:e.getOwner()}function m(){return Error(`react-stack-top-frame`)}function h(e){if(J.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function g(e,t){function n(){ue||(ue=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,`key`,{get:n,configurable:!0})}function _(){var e=d(this.type);return fe[e]||(fe[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function v(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:P,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,`ref`,{enumerable:!1,value:null}):Object.defineProperty(e,`ref`,{enumerable:!1,get:_}),e._store={},Object.defineProperty(e._store,`validated`,{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,`_debugInfo`,{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,`_debugStack`,{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,`_debugTask`,{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,t){return t=v(e.type,t,e.props,e._owner,e._debugStack,e._debugTask),e._store&&(t._store.validated=e._store.validated),t}function b(e){x(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===V&&(e._payload.status===`fulfilled`?x(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function x(e){return typeof e==`object`&&!!e&&e.$$typeof===P}function S(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}function C(e,t){return typeof e==`object`&&e&&e.key!=null?(u(e.key),S(``+e.key)):t.toString(36)}function w(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(c,c):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function T(e,t,n,i,a){var o=typeof e;(o===`undefined`||o===`boolean`)&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case`bigint`:case`string`:case`number`:s=!0;break;case`object`:switch(e.$$typeof){case P:case F:s=!0;break;case V:return s=e._init,T(s(e._payload),t,n,i,a)}}if(s){s=e,a=a(s);var c=i===``?`.`+C(s,0):i;return K(a)?(n=``,c!=null&&(n=c.replace(ge,`$&/`)+`/`),T(a,t,n,``,function(e){return e})):a!=null&&(x(a)&&(a.key!=null&&(s&&s.key===a.key||u(a.key)),n=y(a,n+(a.key==null||s&&s.key===a.key?``:(``+a.key).replace(ge,`$&/`)+`/`)+c),i!==``&&s!=null&&x(s)&&s.key==null&&s._store&&!s._store.validated&&(n._store.validated=2),a=n),t.push(a)),1}if(s=0,c=i===``?`.`:i+`:`,K(e))for(var l=0;l<e.length;l++)i=e[l],o=c+C(i,l),s+=T(i,t,n,o,a);else if(l=r(e),typeof l==`function`)for(l===e.entries&&(he||console.warn(`Using Maps as children is not supported. Use an array of keyed ReactElements instead.`),he=!0),e=l.call(e),l=0;!(i=e.next()).done;)i=i.value,o=c+C(i,l++),s+=T(i,t,n,o,a);else if(o===`object`){if(typeof e.then==`function`)return T(w(e),t,n,i,a);throw t=String(e),Error(`Objects are not valid as a React child (found: `+(t===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:t)+`). If you meant to render a collection of children, use an array instead.`)}return s}function E(e,t,n){if(e==null)return e;var r=[],i=0;return T(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ee(e){if(e._status===-1){var t=e._ioInfo;t!=null&&(t.start=t.end=performance.now()),t=e._result;var n=t();if(n.then(function(t){if(e._status===0||e._status===-1){e._status=1,e._result=t;var r=e._ioInfo;r!=null&&(r.end=performance.now()),n.status===void 0&&(n.status=`fulfilled`,n.value=t)}},function(t){if(e._status===0||e._status===-1){e._status=2,e._result=t;var r=e._ioInfo;r!=null&&(r.end=performance.now()),n.status===void 0&&(n.status=`rejected`,n.reason=t)}}),t=e._ioInfo,t!=null){t.value=n;var r=n.displayName;typeof r==`string`&&(t.name=r)}e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return t=e._result,t===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
13
+
14
+ Your code should look like:
15
+ const MyComponent = lazy(() => import('./MyComponent'))
16
+
17
+ Did you accidentally put curly braces around the import?`,t),`default`in t||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
18
+
19
+ Your code should look like:
20
+ const MyComponent = lazy(() => import('./MyComponent'))`,t),t.default;throw e._result}function D(){var e=q.H;return e===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
21
+ 1. You might have mismatching versions of React and the renderer (such as React DOM)
22
+ 2. You might be breaking the Rules of Hooks
23
+ 3. You might have more than one copy of React in the same app
24
+ See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),e}function O(){q.asyncTransitions--}function k(e){if(Y===null)try{var n=(`require`+Math.random()).slice(0,7);Y=(t&&t[n]).call(t,`timers`).setImmediate}catch{Y=function(e){!1===ve&&(ve=!0,typeof MessageChannel>`u`&&console.error(`This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.`));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}return Y(e)}function A(e){return 1<e.length&&typeof AggregateError==`function`?AggregateError(e):e[0]}function j(e,t){t!==X-1&&console.error(`You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. `),X=t}function M(e,t,n){var r=q.actQueue;if(r!==null)if(r.length!==0)try{N(r),k(function(){return M(e,t,n)});return}catch(e){q.thrownErrors.push(e)}else q.actQueue=null;0<q.thrownErrors.length?(r=A(q.thrownErrors),q.thrownErrors.length=0,n(r)):t(e)}function N(e){if(!Q){Q=!0;var t=0;try{for(;t<e.length;t++){var n=e[t];do{q.didUsePromise=!1;var r=n(!1);if(r!==null){if(q.didUsePromise){e[t]=n,e.splice(0,t);return}n=r}else break}while(1)}e.length=0}catch(n){e.splice(0,t+1),q.thrownErrors.push(n)}finally{Q=!1}}}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var P=Symbol.for(`react.transitional.element`),F=Symbol.for(`react.portal`),I=Symbol.for(`react.fragment`),te=Symbol.for(`react.strict_mode`),L=Symbol.for(`react.profiler`),R=Symbol.for(`react.consumer`),ne=Symbol.for(`react.context`),re=Symbol.for(`react.forward_ref`),z=Symbol.for(`react.suspense`),ie=Symbol.for(`react.suspense_list`),B=Symbol.for(`react.memo`),V=Symbol.for(`react.lazy`),ae=Symbol.for(`react.activity`),oe=Symbol.iterator,se={},H={isMounted:function(){return!1},enqueueForceUpdate:function(e){i(e,`forceUpdate`)},enqueueReplaceState:function(e){i(e,`replaceState`)},enqueueSetState:function(e){i(e,`setState`)}},U=Object.assign,W={};Object.freeze(W),a.prototype.isReactComponent={},a.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},a.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};var G={isMounted:[`isMounted`,`Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.`],replaceState:[`replaceState`,`Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).`]};for($ in G)G.hasOwnProperty($)&&n($,G[$]);o.prototype=a.prototype,G=s.prototype=new o,G.constructor=s,U(G,a.prototype),G.isPureReactComponent=!0;var K=Array.isArray,ce=Symbol.for(`react.client.reference`),q={H:null,A:null,T:null,S:null,actQueue:null,asyncTransitions:0,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1,didUsePromise:!1,thrownErrors:[],getCurrentStack:null,recentlyCreatedOwnerStacks:0},J=Object.prototype.hasOwnProperty,le=console.createTask?console.createTask:function(){return null};G={react_stack_bottom_frame:function(e){return e()}};var ue,de,fe={},pe=G.react_stack_bottom_frame.bind(G,m)(),me=le(f(m)),he=!1,ge=/\/+/g,_e=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ve=!1,Y=null,X=0,Z=!1,Q=!1,ye=typeof queueMicrotask==`function`?function(e){queueMicrotask(function(){return queueMicrotask(e)})}:k;G=Object.freeze({__proto__:null,c:function(e){return D().useMemoCache(e)}});var $={map:E,forEach:function(e,t,n){E(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return E(e,function(){t++}),t},toArray:function(e){return E(e,function(e){return e})||[]},only:function(e){if(!x(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=ae,e.Children=$,e.Component=a,e.Fragment=I,e.Profiler=L,e.PureComponent=s,e.StrictMode=te,e.Suspense=z,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=q,e.__COMPILER_RUNTIME=G,e.act=function(e){var t=q.actQueue,n=X;X++;var r=q.actQueue=t===null?[]:t,i=!1;try{var a=e()}catch(e){q.thrownErrors.push(e)}if(0<q.thrownErrors.length)throw j(t,n),e=A(q.thrownErrors),q.thrownErrors.length=0,e;if(typeof a==`object`&&a&&typeof a.then==`function`){var o=a;return ye(function(){i||Z||(Z=!0,console.error(`You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);`))}),{then:function(e,a){i=!0,o.then(function(i){if(j(t,n),n===0){try{N(r),k(function(){return M(i,e,a)})}catch(e){q.thrownErrors.push(e)}if(0<q.thrownErrors.length){var o=A(q.thrownErrors);q.thrownErrors.length=0,a(o)}}else e(i)},function(e){j(t,n),0<q.thrownErrors.length?(e=A(q.thrownErrors),q.thrownErrors.length=0,a(e)):a(e)})}}}var s=a;if(j(t,n),n===0&&(N(r),r.length!==0&&ye(function(){i||Z||(Z=!0,console.error("A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)"))}),q.actQueue=null),0<q.thrownErrors.length)throw e=A(q.thrownErrors),q.thrownErrors.length=0,e;return{then:function(e,t){i=!0,n===0?(q.actQueue=r,k(function(){return M(s,e,t)})):e(s)}}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.captureOwnerStack=function(){var e=q.getCurrentStack;return e===null?null:e()},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=U({},e.props),i=e.key,a=e._owner;if(t!=null){var o;a:{if(J.call(t,`ref`)&&(o=Object.getOwnPropertyDescriptor(t,`ref`).get)&&o.isReactWarning){o=!1;break a}o=t.ref!==void 0}for(s in o&&(a=p()),h(t)&&(u(t.key),i=``+t.key),t)!J.call(t,s)||s===`key`||s===`__self`||s===`__source`||s===`ref`&&t.ref===void 0||(r[s]=t[s])}var s=arguments.length-2;if(s===1)r.children=n;else if(1<s){o=Array(s);for(var c=0;c<s;c++)o[c]=arguments[c+2];r.children=o}for(r=v(e.type,i,r,a,e._debugStack,e._debugTask),i=2;i<arguments.length;i++)b(arguments[i]);return r},e.createContext=function(e){return e={$$typeof:ne,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:R,_context:e},e._currentRenderer=null,e._currentRenderer2=null,e},e.createElement=function(e,t,n){for(var r=2;r<arguments.length;r++)b(arguments[r]);r={};var i=null;if(t!=null)for(c in de||!(`__self`in t)||`key`in t||(de=!0,console.warn(`Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform`)),h(t)&&(u(t.key),i=``+t.key),t)J.call(t,c)&&c!==`key`&&c!==`__self`&&c!==`__source`&&(r[c]=t[c]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];Object.freeze&&Object.freeze(o),r.children=o}if(e&&e.defaultProps)for(c in a=e.defaultProps,a)r[c]===void 0&&(r[c]=a[c]);i&&g(r,typeof e==`function`?e.displayName||e.name||`Unknown`:e);var c=1e4>q.recentlyCreatedOwnerStacks++;return v(e,i,r,p(),c?Error(`react-stack-top-frame`):pe,c?le(f(e)):me)},e.createRef=function(){var e={current:null};return Object.seal(e),e},e.forwardRef=function(e){e!=null&&e.$$typeof===B?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof e==`function`?e.length!==0&&e.length!==2&&console.error(`forwardRef render functions accept exactly two parameters: props and ref. %s`,e.length===1?`Did you forget to use the ref parameter?`:`Any additional parameter will be undefined.`):console.error(`forwardRef requires a render function but was given %s.`,e===null?`null`:typeof e),e!=null&&e.defaultProps!=null&&console.error(`forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?`);var t={$$typeof:re,render:e},n;return Object.defineProperty(t,`displayName`,{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,`name`,{value:t}),e.displayName=t)}}),t},e.isValidElement=x,e.lazy=function(e){e={_status:-1,_result:e};var t={$$typeof:V,_payload:e,_init:ee},n={name:`lazy`,start:-1,end:-1,value:null,owner:null,debugStack:Error(`react-stack-top-frame`),debugTask:console.createTask?console.createTask(`lazy()`):null};return e._ioInfo=n,t._debugInfo=[{awaited:n}],t},e.memo=function(e,t){e??console.error(`memo: The first argument must be a component. Instead received: %s`,e===null?`null`:typeof e),t={$$typeof:B,type:e,compare:t===void 0?null:t};var n;return Object.defineProperty(t,`displayName`,{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,`name`,{value:t}),e.displayName=t)}}),t},e.startTransition=function(e){var t=q.T,n={};n._updatedFibers=new Set,q.T=n;try{var r=e(),i=q.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&(q.asyncTransitions++,r.then(O,O),r.then(c,_e))}catch(e){_e(e)}finally{t===null&&n._updatedFibers&&(e=n._updatedFibers.size,n._updatedFibers.clear(),10<e&&console.warn(`Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.`)),t!==null&&n.types!==null&&(t.types!==null&&t.types!==n.types&&console.error(`We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.`),t.types=n.types),q.T=t}},e.unstable_useCacheRefresh=function(){return D().useCacheRefresh()},e.use=function(e){return D().use(e)},e.useActionState=function(e,t,n){return D().useActionState(e,t,n)},e.useCallback=function(e,t){return D().useCallback(e,t)},e.useContext=function(e){var t=D();return e.$$typeof===R&&console.error(`Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?`),t.useContext(e)},e.useDebugValue=function(e,t){return D().useDebugValue(e,t)},e.useDeferredValue=function(e,t){return D().useDeferredValue(e,t)},e.useEffect=function(e,t){return e??console.warn(`React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?`),D().useEffect(e,t)},e.useEffectEvent=function(e){return D().useEffectEvent(e)},e.useId=function(){return D().useId()},e.useImperativeHandle=function(e,t,n){return D().useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return e??console.warn(`React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?`),D().useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return e??console.warn(`React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?`),D().useLayoutEffect(e,t)},e.useMemo=function(e,t){return D().useMemo(e,t)},e.useOptimistic=function(e,t){return D().useOptimistic(e,t)},e.useReducer=function(e,t,n){return D().useReducer(e,t,n)},e.useRef=function(e){return D().useRef(e)},e.useState=function(e){return D().useState(e)},e.useSyncExternalStore=function(e,t,n){return D().useSyncExternalStore(e,t,n)},e.useTransition=function(){return D().useTransition()},e.version=`19.2.4`,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),r=e(((e,r)=>{process.env.NODE_ENV===`production`?r.exports=t():r.exports=n()}));export{r as t};
@@ -0,0 +1,64 @@
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ //#region packages/kb-client/dist/types.d.ts
3
+ //#region packages/kb-client/src/types.d.ts
4
+ /**
5
+ * IKBClient — Unified data access interface for KB consumers.
6
+ *
7
+ * Implemented by:
8
+ * - DirectKBClient (in-process, used by TUI)
9
+ * - McpKBClient (over MCP transport, used by Dashboard)
10
+ */
11
+ interface KBStatus {
12
+ totalRecords: number;
13
+ totalFiles: number;
14
+ lastIndexedAt: string | null;
15
+ onboarded: boolean;
16
+ }
17
+ interface KBSearchResult {
18
+ sourcePath: string;
19
+ contentType: string;
20
+ score: number;
21
+ content: string;
22
+ headingPath?: string;
23
+ startLine?: number;
24
+ endLine?: number;
25
+ }
26
+ interface KBKnowledgeEntry {
27
+ path: string;
28
+ title: string;
29
+ category: string;
30
+ tags: string[];
31
+ content: string;
32
+ }
33
+ interface KBGraphData {
34
+ nodes: Array<{
35
+ id: string;
36
+ name: string;
37
+ type: string;
38
+ sourcePath?: string;
39
+ }>;
40
+ edges: Array<{
41
+ fromId: string;
42
+ toId: string;
43
+ type: string;
44
+ }>;
45
+ }
46
+ interface IKBClient {
47
+ /** Get KB status. */
48
+ getStatus(): Promise<KBStatus>;
49
+ /** Search the knowledge base. */
50
+ search(query: string, options?: {
51
+ limit?: number;
52
+ mode?: 'hybrid' | 'semantic' | 'keyword';
53
+ }): Promise<KBSearchResult[]>;
54
+ /** List curated knowledge entries. */
55
+ listKnowledge(): Promise<KBKnowledgeEntry[]>;
56
+ /** Read a specific curated entry. */
57
+ readKnowledge(path: string): Promise<KBKnowledgeEntry | null>;
58
+ /** Get knowledge graph data. */
59
+ getGraph(query?: string): Promise<KBGraphData>;
60
+ /** Get file tree of indexed sources. */
61
+ getFileTree(): Promise<string[]>;
62
+ } //#endregion
63
+ //#endregion
64
+ export { IKBClient as t };
@@ -0,0 +1,2 @@
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{t}from"./react-D__J1GQe.js";var n=e(t(),1);const r=(0,n.createContext)(null),i=r.Provider;function a(){let e=(0,n.useContext)(r);if(!e)throw Error(`useKBClient must be used within KBClientProvider`);return e}export{a as n,i as t};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{t}from"./react-D__J1GQe.js";var n=e(t(),1);function r(e,t){let[r,i]=(0,n.useState)(null),[a,o]=(0,n.useState)(null),s=(0,n.useRef)(e);return s.current=e,(0,n.useEffect)(()=>{let e=!0,n=!1,r=async()=>{if(!n){n=!0;try{let t=await s.current();e&&(i(t),o(null))}catch(t){e&&o(t instanceof Error?t:Error(String(t)))}finally{n=!1}}};r();let a=setInterval(()=>{r()},t);return()=>{e=!1,clearInterval(a)}},[t]),{data:r,error:a}}export{r as t};
@@ -20,7 +20,7 @@ import { AGENTS } from '../definitions/agents.mjs';
20
20
  import { AGENT_BODIES } from '../definitions/bodies.mjs';
21
21
  import { MODELS, VARIANT_GROUPS } from '../definitions/models.mjs';
22
22
  import { PROMPTS } from '../definitions/prompts.mjs';
23
- import { PROTOCOLS } from '../definitions/protocols.mjs';
23
+ import { PROTOCOLS, TEMPLATES } from '../definitions/protocols.mjs';
24
24
  import { IDE_CAPABILITIES } from '../definitions/tools.mjs';
25
25
 
26
26
  // ─── Copilot tool mapping ─────────────────────────────────────────────────
@@ -35,7 +35,7 @@ const COPILOT_TOOL_MAP = {
35
35
  createFile: 'edit/createFile',
36
36
  editFiles: 'edit/editFiles',
37
37
  search: 'search/changes, search/codebase, search/usages',
38
- web: 'web/fetch, web/githubRepo, cai-mcp/webFetch, cai-mcp/webSearch, ms-vscode.vscode-websearchforcopilot/websearch',
38
+ web: 'web/fetch, web/githubRepo, ms-vscode.vscode-websearchforcopilot/websearch',
39
39
  todo: 'todo',
40
40
  memory: 'vscode/memory',
41
41
  runCommand: 'vscode/runCommand',
@@ -47,12 +47,13 @@ const COPILOT_TOOL_MAP = {
47
47
  listDir: 'search/listDirectory',
48
48
  textSearch: 'search/textSearch',
49
49
  searchResults: 'search/searchResults',
50
+ browser: 'browser/*',
50
51
  };
51
52
 
52
53
  function buildToolsYaml(toolRole) {
53
54
  const capabilities = IDE_CAPABILITIES[toolRole] || [];
54
55
  const copilotTools = capabilities.map((cap) => COPILOT_TOOL_MAP[cap]).filter(Boolean);
55
- // Use server wildcard instead of listing all 64 tools individually.
56
+ // Use server wildcard instead of listing all 67 tools individually.
56
57
  // VS Code expands `<server-name>/*` to all tools from that MCP server.
57
58
  return `[${[...copilotTools, 'knowledge-base/*'].join(', ')}]`;
58
59
  }
@@ -104,12 +105,7 @@ function generateVariantAgent(roleName, suffix, def) {
104
105
  ? `\n\n## Skills (load on demand)\n\n| Skill | When to load |\n|-------|--------------|\n${def.skills.map(([s, w]) => `| ${s} | ${w} |`).join('\n')}`
105
106
  : '';
106
107
 
107
- const titleMap = {
108
- Researcher: 'The Context Gatherer',
109
- 'Code-Reviewer': 'The Quality Guardian',
110
- 'Architect-Reviewer': 'The Structural Guardian',
111
- };
112
- const title = titleMap[roleName] || roleName;
108
+ const title = def.title || roleName;
113
109
 
114
110
  return `---
115
111
  description: '${desc}'
@@ -131,18 +127,7 @@ function generateSingleAgent(name, def) {
131
127
  ? AGENT_BODIES[name](buildAgentTable())
132
128
  : AGENT_BODIES[name] || '';
133
129
 
134
- const titleMap = {
135
- Orchestrator: 'The Master Conductor',
136
- Planner: 'The Strategic Architect',
137
- Implementer: 'The Code Builder',
138
- Frontend: 'The UI Specialist',
139
- Debugger: 'The Problem Solver',
140
- Refactor: 'The Code Sculptor',
141
- Security: 'The Vulnerability Hunter',
142
- Documenter: 'The Knowledge Keeper',
143
- Explorer: 'The Rapid Scout',
144
- };
145
- const title = titleMap[name] || name;
130
+ const title = def.title || name;
146
131
 
147
132
  return `---
148
133
  description: '${def.description}'
@@ -174,64 +159,6 @@ ${def.content}
174
159
  `;
175
160
  }
176
161
 
177
- // ─── Templates ────────────────────────────────────────────────────────────
178
-
179
- const EXECUTION_STATE = `# Execution State: {Task Title}
180
-
181
- **Status:** PLANNING | IN_PROGRESS | REVIEW | COMPLETED | BLOCKED
182
- **Started:** {timestamp}
183
- **Plan:** {link to plan file}
184
-
185
- ## Phases
186
-
187
- | # | Title | Agent | Status | Batch |
188
- |---|-------|-------|--------|-------|
189
-
190
- ## Current Batch
191
-
192
- **Batch {N}:** {phases in this batch}
193
- **Status:** IMPLEMENTING | REVIEWING | APPROVED
194
-
195
- ## Decisions Log
196
-
197
- | Decision | Rationale | ADR |
198
- |----------|-----------|-----|
199
-
200
- ## Blockers
201
-
202
- | Issue | Severity | Assigned |
203
- |-------|----------|----------|
204
- `;
205
-
206
- const ADR_TEMPLATE = `# DR-NNN: {Short Title}
207
-
208
- **Status:** Proposed | Accepted | Rejected | Deprecated | Superseded
209
- **Date:** YYYY-MM-DD
210
- **Participants:** {which Researcher variants participated}
211
-
212
- ## Context
213
- {What is the issue? Why are we making this decision?}
214
- {If superseding, link: "Supersedes DR-NNN."}
215
-
216
- ## Decision
217
- {What was decided and why — 2-5 sentences max}
218
-
219
- ## Decision Analysis Summary
220
- | Model | Recommendation | Key Reasoning |
221
- |-------|---------------|---------------|
222
-
223
- **Agreements:** {what 3+ models agreed on}
224
- **Disagreements:** {where they diverged}
225
-
226
- ## Consequences
227
- **Positive:** {benefits}
228
- **Negative:** {trade-offs accepted}
229
- **Risks:** {what could go wrong, and any mitigations}
230
-
231
- ## Alternatives Considered
232
- {Other approaches evaluated and why they were rejected — keeps the "why not" alongside the "why"}
233
- `;
234
-
235
162
  // ─── README generator ─────────────────────────────────────────────────────
236
163
 
237
164
  function generateReadme() {
@@ -310,8 +237,9 @@ export function generateCopilot() {
310
237
  }
311
238
 
312
239
  // Templates
313
- files.push({ path: 'agents/templates/execution-state.md', content: EXECUTION_STATE });
314
- files.push({ path: 'agents/templates/adr-template.md', content: ADR_TEMPLATE });
240
+ for (const [name, content] of Object.entries(TEMPLATES)) {
241
+ files.push({ path: `agents/templates/${name}.md`, content: `${content}\n` });
242
+ }
315
243
 
316
244
  // README
317
245
  files.push({ path: 'agents/README.md', content: generateReadme() });
@@ -13,6 +13,7 @@ export const AGENTS = {
13
13
  // ─── Orchestration ────────────────────────────────────────────────────
14
14
 
15
15
  Orchestrator: {
16
+ title: 'The Master Conductor',
16
17
  description:
17
18
  'Master conductor that orchestrates the full development lifecycle: Planning → Implementation → Review → Recovery → Commit',
18
19
  argumentHint: null,
@@ -22,6 +23,7 @@ export const AGENTS = {
22
23
  },
23
24
 
24
25
  Planner: {
26
+ title: 'The Strategic Architect',
25
27
  description:
26
28
  'Autonomous planner that researches codebases and writes comprehensive TDD implementation plans',
27
29
  argumentHint: null,
@@ -33,6 +35,7 @@ export const AGENTS = {
33
35
  // ─── Implementation ───────────────────────────────────────────────────
34
36
 
35
37
  Implementer: {
38
+ title: 'The Code Builder',
36
39
  description:
37
40
  'Persistent implementation agent that writes code following TDD practices until all tasks are complete',
38
41
  argumentHint: 'Implementation task, feature, or phase from plan',
@@ -42,6 +45,7 @@ export const AGENTS = {
42
45
  },
43
46
 
44
47
  Frontend: {
48
+ title: 'The UI Specialist',
45
49
  description:
46
50
  'UI/UX specialist for React, styling, responsive design, and frontend implementation',
47
51
  argumentHint: 'UI component, styling task, or frontend feature',
@@ -51,6 +55,7 @@ export const AGENTS = {
51
55
  },
52
56
 
53
57
  Refactor: {
58
+ title: 'The Code Sculptor',
54
59
  description:
55
60
  'Code refactoring specialist that improves structure, readability, and maintainability',
56
61
  argumentHint: 'Code, component, or pattern to refactor',
@@ -62,6 +67,7 @@ export const AGENTS = {
62
67
  // ─── Diagnostics ──────────────────────────────────────────────────────
63
68
 
64
69
  Debugger: {
70
+ title: 'The Problem Solver',
65
71
  description: 'Expert debugger that diagnoses issues, traces errors, and provides solutions',
66
72
  argumentHint: 'Error message, stack trace, or description of issue',
67
73
  toolRole: 'debugger',
@@ -70,6 +76,7 @@ export const AGENTS = {
70
76
  },
71
77
 
72
78
  Security: {
79
+ title: 'The Vulnerability Hunter',
73
80
  description: 'Security specialist that analyzes code for vulnerabilities and compliance',
74
81
  argumentHint: 'Code, feature, or component to security review',
75
82
  toolRole: 'security',
@@ -80,6 +87,7 @@ export const AGENTS = {
80
87
  // ─── Documentation ────────────────────────────────────────────────────
81
88
 
82
89
  Documenter: {
90
+ title: 'The Knowledge Keeper',
83
91
  description:
84
92
  'Documentation specialist that creates and maintains comprehensive project documentation',
85
93
  argumentHint: 'Component, API, feature, or area to document',
@@ -89,6 +97,7 @@ export const AGENTS = {
89
97
  },
90
98
 
91
99
  Explorer: {
100
+ title: 'The Rapid Scout',
92
101
  description:
93
102
  'Rapid codebase exploration to find files, usages, dependencies, and structural context',
94
103
  argumentHint: 'Find files, usages, and context related to: {topic or goal}',
@@ -100,6 +109,7 @@ export const AGENTS = {
100
109
  // ─── Multi-variant roles ──────────────────────────────────────────────
101
110
 
102
111
  Researcher: {
112
+ title: 'The Context Gatherer',
103
113
  description:
104
114
  'Deep analysis, architecture review, and multi-model decision protocol participant',
105
115
  argumentHint: 'Research question, problem statement, or subsystem to investigate',
@@ -139,6 +149,7 @@ export const AGENTS = {
139
149
  },
140
150
 
141
151
  'Code-Reviewer': {
152
+ title: 'The Quality Guardian',
142
153
  description:
143
154
  'Code review specialist analyzing code for quality, security, performance, and maintainability',
144
155
  argumentHint: 'File path, PR, or code to review',
@@ -152,6 +163,7 @@ export const AGENTS = {
152
163
  },
153
164
 
154
165
  'Architect-Reviewer': {
166
+ title: 'The Structural Guardian',
155
167
  description:
156
168
  'Reviews architecture for pattern adherence, SOLID compliance, dependency direction, and structural integrity',
157
169
  argumentHint: 'Files, PR, or subsystem to architecture-review',
@@ -38,6 +38,21 @@ Before Planning, determine the routing:
38
38
  3. **Both?** → Brainstorming skill first. When it reaches unresolved technical choices, escalate those to the decision protocol, then return to the user for design approval.
39
39
  4. **Neither?** → Skip to Phase 1: Planning
40
40
 
41
+ ## FORGE Protocol (Orchestrator Responsibilities)
42
+
43
+ Before delegating any implementation task:
44
+
45
+ 1. **Classify**: \`forge_classify({ task, files, root_path: "." })\` to determine tier (Floor/Standard/Critical)
46
+ 2. **Delegate with tier**: Pass FORGE tier to sub-agents via context:
47
+ > **FORGE Context**: Tier = {tier}. {ceremony requirements}.
48
+ > Evidence map: {taskId}. Safety gates: provenance, commitment, coverage.
49
+ 3. **Gate after completion**: Run \`evidence_map({ action: "gate", task_id })\` — YIELD/HOLD/HARD_BLOCK
50
+ 4. **Auto-upgrade**: If unknowns reveal contract/security issues during Build, re-classify before next batch
51
+
52
+ Integrate into workflow:
53
+ - Phase 1 step 1: After parsing goal, run forge_classify
54
+ - Phase 2: After each batch's code review, evaluate evidence_map gate
55
+
41
56
  ## Multi-Model Decision Protocol
42
57
 
43
58
  Launch ALL Researcher variants in parallel with identical framing. Each returns: recommendation, reasoning, trade-offs, risks.
@@ -91,9 +106,11 @@ For each batch: Implement (parallel) → Code Review → Architecture Review (if
91
106
  ## Planning Workflow
92
107
 
93
108
  1. **KB Recall** — Search for past plans, architecture decisions, known patterns
94
- 2. **FORGE Ground** — \`forge_ground\` to classify tier, scope map, seed unknowns, load constraints
95
- 3. **Research** — Delegate to Explorer and Researcher agents to gather context
96
- 4. **Draft Plan** — Produce a structured plan:
109
+ 2. **FORGE Classify** — \`forge_classify({ task, files, root_path: "." })\` to determine complexity tier
110
+ 3. **FORGE Ground** — \`forge_ground\` to scope map, seed unknowns, load constraints
111
+ 4. **Research** — Delegate to Explorer and Researcher agents to gather context
112
+ 5. **Auto-upgrade check** — If forge_ground reveals contract-type unknowns or security concerns not caught by initial classify, recommend tier upgrade in plan
113
+ 6. **Draft Plan** — Produce a structured plan:
97
114
  - 3-10 implementation phases
98
115
  - Agent assignments per phase (Implementer, Frontend, Refactor, etc.)
99
116
  - TDD steps (write test → fail → implement → pass → lint)
@@ -107,6 +124,11 @@ For each batch: Implement (parallel) → Code Review → Architecture Review (if
107
124
  ## Plan: {Title}
108
125
  {TL;DR: 1-3 sentences}
109
126
 
127
+ ### FORGE Assessment
128
+ - **FORGE Tier**: {Floor | Standard | Critical}
129
+ - **Evidence Map entries needed**: {count}
130
+ - **Critical-path claims**: {list}
131
+
110
132
  ### Dependency Graph & Parallel Batches
111
133
  | Phase | Depends On | Batch |
112
134
  |-------|-----------|-------|
@@ -177,7 +199,7 @@ For each batch: Implement (parallel) → Code Review → Architecture Review (if
177
199
  ## Debugging Protocol
178
200
 
179
201
  1. **KB Recall** — Search for known issues matching this error pattern
180
- 2. **Reproduce** — Confirm the error, get full stack trace
202
+ 2. **Reproduce** — Confirm the error, use \`parse_output\` on stack traces and build errors for structured analysis
181
203
  3. **Trace** — \`symbol\`, \`trace\`, follow call chains backwards
182
204
  4. **Diagnose** — Form hypothesis, gather evidence, identify root cause
183
205
  5. **Fix** — Implement the fix, verify with tests
@@ -222,13 +244,15 @@ For each batch: Implement (parallel) → Code Review → Architecture Review (if
222
244
  ## Security Review Protocol
223
245
 
224
246
  1. **KB Recall** — Search for past security findings and conventions
225
- 2. **OWASP Top 10 Scan** Check each category systematically
226
- 3. **Dependency Audit** — Check for known CVEs in dependencies
227
- 4. **Secret Detection** — Scan for hardcoded credentials, API keys, tokens
228
- 5. **Auth/AuthZ Review** — Verify access control, session management
229
- 6. **Input Validation** — Check all user inputs for injection vectors
230
- 7. **Report** — Severity-ranked findings with remediation guidance
231
- 8. **Persist** — \`remember\` findings with category \`troubleshooting\`
247
+ 2. **Audit** Run \`audit\` for a comprehensive project health check, then \`find\` for specific vulnerability patterns
248
+ 3. **OWASP Top 10 Scan** — Check each category systematically
249
+ 4. **Dependency Audit** — Check for known CVEs in dependencies
250
+ 5. **Secret Detection** — Scan for hardcoded credentials, API keys, tokens
251
+ 6. **Auth/AuthZ Review** — Verify access control, session management
252
+ 7. **Input Validation** — Check all user inputs for injection vectors
253
+ 8. **Impact Analysis** — Use \`trace\` on sensitive functions, \`blast_radius\` on security-critical files
254
+ 9. **Report** — Severity-ranked findings with remediation guidance
255
+ 10. **Persist** — \`remember\` findings with category \`troubleshooting\`
232
256
 
233
257
  ## Severity Levels
234
258
 
@@ -266,7 +290,7 @@ For each batch: Implement (parallel) → Code Review → Architecture Review (if
266
290
  | README | New package/module | Structure, usage, API |
267
291
  | API docs | New/changed endpoints | Request/response, examples |
268
292
  | Architecture | Design decisions | Context, decision, consequences |
269
- | Changelog | After implementation | Keep a Changelog format |
293
+ | Changelog | After implementation | \`changelog\` tool, Keep a Changelog format |
270
294
 
271
295
  ## Rules
272
296
 
@@ -288,8 +312,9 @@ For each batch: Implement (parallel) → Code Review → Architecture Review (if
288
312
  1. **KB Recall** — \`search\` for existing analysis on this area
289
313
  2. **Discover** — Use \`find\`, \`symbol\`, \`scope_map\` to locate relevant files
290
314
  3. **Analyze** — Use \`analyze_structure\`, \`analyze_dependencies\`, \`file_summary\`
291
- 4. **Map** — Build a picture of the subsystem: files, exports, dependencies, call chains
292
- 5. **Report** — Structured findings with file paths and key observations
315
+ 4. **Compress** — Use \`compact\` for targeted file sections, \`digest\` when synthesizing 3+ sources, \`stratum_card\` for files you'll reference repeatedly
316
+ 5. **Map** — Build a picture of the subsystem: files, exports, dependencies, call chains
317
+ 6. **Report** — Structured findings with file paths and key observations
293
318
 
294
319
  ## Exploration Modes
295
320