@aiderdesk/aiderdesk 0.59.0 → 0.61.0-dev

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 (74) hide show
  1. package/out/renderer/assets/{_basePickBy-BXFYYah3.js → _basePickBy-BWoXHZ8Z.js} +2 -2
  2. package/out/renderer/assets/{_baseUniq-Cd1ra5R6.js → _baseUniq-Z8t1Ab1g.js} +1 -1
  3. package/out/renderer/assets/{arc-CzRQcQ8z.js → arc-CwESpVYE.js} +1 -1
  4. package/out/renderer/assets/{architectureDiagram-2XIMDMQ5-CfLvNO9v.js → architectureDiagram-2XIMDMQ5-C490EQr5.js} +6 -6
  5. package/out/renderer/assets/{blockDiagram-WCTKOSBZ-BLFI6WIC.js → blockDiagram-WCTKOSBZ-DbHssxrQ.js} +6 -6
  6. package/out/renderer/assets/{c4Diagram-IC4MRINW-D2fK1fs0.js → c4Diagram-IC4MRINW-BxE3GUKu.js} +2 -2
  7. package/out/renderer/assets/{channel-DrJKu4_6.js → channel-C9hJq_Xr.js} +1 -1
  8. package/out/renderer/assets/{chunk-4BX2VUAB-CceHu94f.js → chunk-4BX2VUAB-ChcKNpL6.js} +1 -1
  9. package/out/renderer/assets/{chunk-55IACEB6-Ceu45XlD.js → chunk-55IACEB6-oLT9lXTt.js} +1 -1
  10. package/out/renderer/assets/{chunk-FMBD7UC4-BKzuqZXn.js → chunk-FMBD7UC4-B5k8rETe.js} +1 -1
  11. package/out/renderer/assets/{chunk-JSJVCQXG-iYOtJ8I-.js → chunk-JSJVCQXG-DtjSx6Cj.js} +1 -1
  12. package/out/renderer/assets/{chunk-KX2RTZJC-bNHhs5xZ.js → chunk-KX2RTZJC-D32tV7H-.js} +1 -1
  13. package/out/renderer/assets/{chunk-NQ4KR5QH-C0IrVSiA.js → chunk-NQ4KR5QH-Bmqo2FpL.js} +3 -3
  14. package/out/renderer/assets/{chunk-QZHKN3VN-CQapQOOT.js → chunk-QZHKN3VN-8BpGifjS.js} +1 -1
  15. package/out/renderer/assets/{chunk-WL4C6EOR-DUYtOMll.js → chunk-WL4C6EOR-vhby2fZi.js} +5 -5
  16. package/out/renderer/assets/{classDiagram-VBA2DB6C-UeXpMFb8.js → classDiagram-VBA2DB6C-BxRSSb9e.js} +6 -6
  17. package/out/renderer/assets/{classDiagram-v2-RAHNMMFH-UeXpMFb8.js → classDiagram-v2-RAHNMMFH-BxRSSb9e.js} +6 -6
  18. package/out/renderer/assets/{clone-CFgMCpt9.js → clone-D9a-uIZa.js} +1 -1
  19. package/out/renderer/assets/{cose-bilkent-S5V4N54A-DnX12BL_.js → cose-bilkent-S5V4N54A-CUqqQ-6R.js} +1 -1
  20. package/out/renderer/assets/{dagre-KLK3FWXG-7-_OG7Kj.js → dagre-KLK3FWXG-ORIwMMhq.js} +6 -6
  21. package/out/renderer/assets/{diagram-E7M64L7V-DumXVEqI.js → diagram-E7M64L7V-bS9HcoDQ.js} +7 -7
  22. package/out/renderer/assets/{diagram-IFDJBPK2-UTrn1bff.js → diagram-IFDJBPK2-BRlTIR0J.js} +6 -6
  23. package/out/renderer/assets/{diagram-P4PSJMXO-Bk1LZhwV.js → diagram-P4PSJMXO-jsjGwH-p.js} +6 -6
  24. package/out/renderer/assets/{erDiagram-INFDFZHY-CMAH31O-.js → erDiagram-INFDFZHY-DGlgjHOQ.js} +4 -4
  25. package/out/renderer/assets/{flowDiagram-PKNHOUZH-uQFfaMJM.js → flowDiagram-PKNHOUZH-CzLC87bM.js} +6 -6
  26. package/out/renderer/assets/{ganttDiagram-A5KZAMGK-quRvalRu.js → ganttDiagram-A5KZAMGK-BbDv36wT.js} +1 -1
  27. package/out/renderer/assets/{gitGraphDiagram-K3NZZRJ6-CfwRyzfx.js → gitGraphDiagram-K3NZZRJ6-CBQnBjEi.js} +7 -7
  28. package/out/renderer/assets/{graph-W5JPvpWW.js → graph-Dl5N6maZ.js} +2 -2
  29. package/out/renderer/assets/{index-Bhs67jG4.js → index-6qedlt0q.js} +2 -2
  30. package/out/renderer/assets/{index-C1ZBVNfw.js → index-86jDpUJn.js} +2 -2
  31. package/out/renderer/assets/{index-Wwk_5mUs.js → index-BRjO8ber.js} +5 -5
  32. package/out/renderer/assets/{index-DjoaBGM_.js → index-BVgw7j0d.js} +2 -2
  33. package/out/renderer/assets/{index--j4qFXVt.js → index-BhkyI1q3.js} +2 -2
  34. package/out/renderer/assets/{index-BK7nk5p7.js → index-BqrmLPkg.js} +5 -5
  35. package/out/renderer/assets/{index-C3Glc2Zo.js → index-BuPbw4xM.js} +2 -2
  36. package/out/renderer/assets/{index-C327GPg5.js → index-CTO-LPBg.js} +5 -5
  37. package/out/renderer/assets/{index-CIjEi4HS.js → index-CTO4SzlI.js} +2 -2
  38. package/out/renderer/assets/{index-D6kgjSLw.js → index-CZ9IQK_0.js} +5 -5
  39. package/out/renderer/assets/{index-JCZJkVpl.js → index-CZxsVxBZ.js} +1 -1
  40. package/out/renderer/assets/{index-Bb7XYl8_.js → index-DIXV-3Xn.js} +2 -2
  41. package/out/renderer/assets/{index-DdsfZljo.js → index-DNzOtZX5.js} +2 -2
  42. package/out/renderer/assets/{index-33dprpTM.js → index-DZtJe7oC.js} +2 -2
  43. package/out/renderer/assets/{index-B4cKzfxL.js → index-DaWjZz_g.js} +5 -5
  44. package/out/renderer/assets/{index-BJyiVzcz.js → index-De056HHR.js} +3 -3
  45. package/out/renderer/assets/{index-CL49sSsZ.js → index-Dk3wSDSN.js} +5 -5
  46. package/out/renderer/assets/{index-CJqBFUF8.js → index-Dy4VRsnA.js} +4 -4
  47. package/out/renderer/assets/{index-BijwEwO9.js → index-FnnayPBc.js} +2 -2
  48. package/out/renderer/assets/{index-0KKkNp35.js → index-MDHavDF9.js} +2146 -2507
  49. package/out/renderer/assets/{index-HpcqfYbh.js → index-MZb_zy6R.js} +2 -2
  50. package/out/renderer/assets/{index-Do6DM72m.js → index-chzQl8rJ.js} +2 -2
  51. package/out/renderer/assets/{index-ChkFNtFm.js → index-s-Owx3Pm.js} +3 -3
  52. package/out/renderer/assets/{infoDiagram-LFFYTUFH-CLlREcM7.js → infoDiagram-LFFYTUFH-GtEDBEmz.js} +5 -5
  53. package/out/renderer/assets/{ishikawaDiagram-PHBUUO56-C8MCvpMI.js → ishikawaDiagram-PHBUUO56-Uj90gr3I.js} +1 -1
  54. package/out/renderer/assets/{journeyDiagram-4ABVD52K-D3AyVALG.js → journeyDiagram-4ABVD52K-DekFuOwS.js} +4 -4
  55. package/out/renderer/assets/{kanban-definition-K7BYSVSG-D6esJ1Mv.js → kanban-definition-K7BYSVSG-Hfz2L6NS.js} +2 -2
  56. package/out/renderer/assets/{layout-B-GkLewD.js → layout-B9K2VT39.js} +4 -4
  57. package/out/renderer/assets/{mindmap-definition-YRQLILUH-DiFIDGDM.js → mindmap-definition-YRQLILUH-DDcS7_GH.js} +3 -3
  58. package/out/renderer/assets/{pieDiagram-SKSYHLDU-DjzUpI9a.js → pieDiagram-SKSYHLDU-DwjEcJ0Q.js} +7 -7
  59. package/out/renderer/assets/{quadrantDiagram-337W2JSQ-BKx0O-wq.js → quadrantDiagram-337W2JSQ-CpGqN7vo.js} +1 -1
  60. package/out/renderer/assets/{requirementDiagram-Z7DCOOCP-qRcPUPwh.js → requirementDiagram-Z7DCOOCP-qDRUf1ip.js} +3 -3
  61. package/out/renderer/assets/{sankeyDiagram-WA2Y5GQK-CE8REafI.js → sankeyDiagram-WA2Y5GQK-DRKS8C1H.js} +1 -1
  62. package/out/renderer/assets/{sequenceDiagram-2WXFIKYE-a4AELpAg.js → sequenceDiagram-2WXFIKYE-DhVN2ug2.js} +3 -3
  63. package/out/renderer/assets/{stateDiagram-RAJIS63D-CXiPRAnM.js → stateDiagram-RAJIS63D-BpP4eSqu.js} +8 -8
  64. package/out/renderer/assets/{stateDiagram-v2-FVOUBMTO-CZKt-kP1.js → stateDiagram-v2-FVOUBMTO-B_qQJqra.js} +4 -4
  65. package/out/renderer/assets/{timeline-definition-YZTLITO2-BY3z14HB.js → timeline-definition-YZTLITO2-UoWXE_76.js} +2 -2
  66. package/out/renderer/assets/{treemap-KZPCXAKY-DZOzveSW.js → treemap-KZPCXAKY-W2a2L6ff.js} +4 -4
  67. package/out/renderer/assets/{vennDiagram-LZ73GAT5-Bus0Wjc8.js → vennDiagram-LZ73GAT5-Dp1FZ609.js} +1 -1
  68. package/out/renderer/assets/{xychartDiagram-JWTSCODW-BdGw2_Lw.js → xychartDiagram-JWTSCODW-CTzYHTbD.js} +1 -1
  69. package/out/renderer/index.html +1 -1
  70. package/out/resources/prompts/init-project.hbs +61 -49
  71. package/out/resources/prompts/system-prompt.hbs +5 -0
  72. package/out/resources/prompts/workflow.hbs +10 -0
  73. package/out/runner.js +446 -549
  74. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { ay as LRLanguage, az as LanguageSupport, aA as indentNodeProp, aB as continuedIndent, aC as foldNodeProp, aD as styleTags, aE as tags, aF as ifNotIn, aG as completeFromList, aH as syntaxTree } from "./index-0KKkNp35.js";
2
- import { E as ExternalTokenizer, L as LRParser } from "./index-JCZJkVpl.js";
1
+ import { ay as LRLanguage, az as LanguageSupport, aA as indentNodeProp, aB as continuedIndent, aC as foldNodeProp, aD as styleTags, aE as tags, aF as ifNotIn, aG as completeFromList, aH as syntaxTree } from "./index-MDHavDF9.js";
2
+ import { E as ExternalTokenizer, L as LRParser } from "./index-CZxsVxBZ.js";
3
3
  const whitespace = 36, LineComment = 1, BlockComment = 2, String$1 = 3, Number = 4, Bool = 5, Null = 6, ParenL = 7, ParenR = 8, BraceL = 9, BraceR = 10, BracketL = 11, BracketR = 12, Semi = 13, Dot = 14, Operator = 15, Punctuation = 16, SpecialVar = 17, Identifier = 18, QuotedIdentifier = 19, Keyword = 20, Type = 21, Bits = 22, Bytes = 23, Builtin = 24;
4
4
  function isAlpha(ch) {
5
5
  return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57;
@@ -1,5 +1,5 @@
1
- import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup } from "./index-JCZJkVpl.js";
2
- import { aD as styleTags, aE as tags, az as LanguageSupport, ay as LRLanguage, aA as indentNodeProp, aU as flatIndent, aB as continuedIndent, aS as delimitedIndent, aC as foldNodeProp, aT as foldInside } from "./index-0KKkNp35.js";
1
+ import { L as LRParser, E as ExternalTokenizer, a as LocalTokenGroup } from "./index-CZxsVxBZ.js";
2
+ import { aD as styleTags, aE as tags, az as LanguageSupport, ay as LRLanguage, aA as indentNodeProp, aU as flatIndent, aB as continuedIndent, aS as delimitedIndent, aC as foldNodeProp, aT as foldInside } from "./index-MDHavDF9.js";
3
3
  const RawString = 1, templateArgsEndFallback = 2, MacroName = 3;
4
4
  const R = 82, L = 76, u = 117, U = 85, a = 97, z = 122, A = 65, Z = 90, Underscore = 95, Zero = 48, Quote = 34, ParenL = 40, ParenR = 41, Space = 32, GreaterThan = 62;
5
5
  const rawString = new ExternalTokenizer((input) => {
@@ -1,6 +1,6 @@
1
- import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from "./index-JCZJkVpl.js";
2
- import { aD as styleTags, aE as tags, az as LanguageSupport, ay as LRLanguage, aC as foldNodeProp, aT as foldInside, aA as indentNodeProp, aB as continuedIndent } from "./index-0KKkNp35.js";
3
- import { defineCSSCompletionSource } from "./index-33dprpTM.js";
1
+ import { L as LRParser, E as ExternalTokenizer, C as ContextTracker } from "./index-CZxsVxBZ.js";
2
+ import { aD as styleTags, aE as tags, az as LanguageSupport, ay as LRLanguage, aC as foldNodeProp, aT as foldInside, aA as indentNodeProp, aB as continuedIndent } from "./index-MDHavDF9.js";
3
+ import { defineCSSCompletionSource } from "./index-DZtJe7oC.js";
4
4
  const indent = 168, dedent = 169, descendantOp = 170, InterpolationEnd = 1, InterpolationContinue = 2, Unit = 3, callee = 171, identifier = 172, VariableName = 4, queryIdentifier = 173, InterpolationStart = 5, newline = 174, blankLineStart = 175, eof = 176, whitespace = 177, LineComment = 6, Comment = 7, IndentedMixin = 8, IndentedInclude = 9, Dialect_indented = 0;
5
5
  const space = [
6
6
  9,
@@ -1,8 +1,8 @@
1
- import { _ as __name, l as log, I as selectSvgElement, e as configureSvgSize } from "./index-0KKkNp35.js";
2
- import { p as parse } from "./treemap-KZPCXAKY-DZOzveSW.js";
3
- import "./_baseUniq-Cd1ra5R6.js";
4
- import "./_basePickBy-BXFYYah3.js";
5
- import "./clone-CFgMCpt9.js";
1
+ import { _ as __name, l as log, I as selectSvgElement, e as configureSvgSize } from "./index-MDHavDF9.js";
2
+ import { p as parse } from "./treemap-KZPCXAKY-W2a2L6ff.js";
3
+ import "./_baseUniq-Z8t1Ab1g.js";
4
+ import "./_basePickBy-BWoXHZ8Z.js";
5
+ import "./clone-D9a-uIZa.js";
6
6
  var parser = {
7
7
  parse: /* @__PURE__ */ __name(async (input) => {
8
8
  const ast = await parse("info", input);
@@ -1,4 +1,4 @@
1
- import { _ as __name, c as getConfig2, R as parseFontSize, I as selectSvgElement, ax as at, z as clear, k as common_default, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, g as getAccDescription, s as setAccDescription, q as getDiagramTitle, e as configureSvgSize } from "./index-0KKkNp35.js";
1
+ import { _ as __name, c as getConfig2, R as parseFontSize, I as selectSvgElement, ax as at, z as clear, k as common_default, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, g as getAccDescription, s as setAccDescription, q as getDiagramTitle, e as configureSvgSize } from "./index-MDHavDF9.js";
2
2
  var parser = (function() {
3
3
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
4
4
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,7 +1,7 @@
1
- import { g as getIconStyles } from "./chunk-FMBD7UC4-BKzuqZXn.js";
2
- import { a as drawBackgroundRect, g as getNoteRect, h as drawText, d as drawRect } from "./chunk-JSJVCQXG-iYOtJ8I-.js";
3
- import { g as getAccDescription, s as setAccDescription, a as getAccTitle, b as setAccTitle, q as getDiagramTitle, p as setDiagramTitle, _ as __name, c as getConfig2, d as select, e as configureSvgSize, z as clear } from "./index-0KKkNp35.js";
4
- import { d as d3arc } from "./arc-CzRQcQ8z.js";
1
+ import { g as getIconStyles } from "./chunk-FMBD7UC4-B5k8rETe.js";
2
+ import { a as drawBackgroundRect, g as getNoteRect, h as drawText, d as drawRect } from "./chunk-JSJVCQXG-DtjSx6Cj.js";
3
+ import { g as getAccDescription, s as setAccDescription, a as getAccTitle, b as setAccTitle, q as getDiagramTitle, p as setDiagramTitle, _ as __name, c as getConfig2, d as select, e as configureSvgSize, z as clear } from "./index-MDHavDF9.js";
4
+ import { d as d3arc } from "./arc-CwESpVYE.js";
5
5
  var parser = (function() {
6
6
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
7
7
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,5 +1,5 @@
1
- import { _ as __name, l as log, c as getConfig2, I as selectSvgElement, ak as insertCluster, al as insertNode, am as positionNode, Y as setupGraphViewbox, F as defaultConfig_default, i as sanitizeText, t as load, J as JSON_SCHEMA, $ as isDark, a0 as lighten, a1 as darken } from "./index-0KKkNp35.js";
2
- import { g as getIconStyles } from "./chunk-FMBD7UC4-BKzuqZXn.js";
1
+ import { _ as __name, l as log, c as getConfig2, I as selectSvgElement, ak as insertCluster, al as insertNode, am as positionNode, Y as setupGraphViewbox, F as defaultConfig_default, i as sanitizeText, t as load, J as JSON_SCHEMA, $ as isDark, a0 as lighten, a1 as darken } from "./index-MDHavDF9.js";
2
+ import { g as getIconStyles } from "./chunk-FMBD7UC4-B5k8rETe.js";
3
3
  var parser = (function() {
4
4
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
5
5
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,7 +1,7 @@
1
- import { G as Graph } from "./graph-W5JPvpWW.js";
2
- import { b as baseClone, n as castFunction, o as baseForOwn, e as baseIteratee, j as arrayMap, m as baseGet, p as hasIn, c as baseFlatten, q as toString, d as forEach, i as isUndefined, f as filter, v as values, r as reduce } from "./_baseUniq-Cd1ra5R6.js";
3
- import { f as flatten, b as baseExtremum, a as baseLt, c as baseMap, d as basePickBy, t as toFinite, m as map, e as min, h as has, g as find, l as last, i as defaults } from "./_basePickBy-BXFYYah3.js";
4
- import { c7 as setToString, c8 as overRest, c9 as baseFor, by as keysIn, ca as baseAssignValue, bD as identity, bC as isSymbol, bB as isArray, cb as baseUnary, bx as isIterateeCall, aV as baseRest, bG as assignValue, aX as constant, cc as merge } from "./index-0KKkNp35.js";
1
+ import { G as Graph } from "./graph-Dl5N6maZ.js";
2
+ import { b as baseClone, n as castFunction, o as baseForOwn, e as baseIteratee, j as arrayMap, m as baseGet, p as hasIn, c as baseFlatten, q as toString, d as forEach, i as isUndefined, f as filter, v as values, r as reduce } from "./_baseUniq-Z8t1Ab1g.js";
3
+ import { f as flatten, b as baseExtremum, a as baseLt, c as baseMap, d as basePickBy, t as toFinite, m as map, e as min, h as has, g as find, l as last, i as defaults } from "./_basePickBy-BWoXHZ8Z.js";
4
+ import { c7 as setToString, c8 as overRest, c9 as baseFor, by as keysIn, ca as baseAssignValue, bD as identity, bC as isSymbol, bB as isArray, cb as baseUnary, bx as isIterateeCall, aV as baseRest, bG as assignValue, aX as constant, cc as merge } from "./index-MDHavDF9.js";
5
5
  function flatRest(func) {
6
6
  return setToString(overRest(func, void 0, flatten), func + "");
7
7
  }
@@ -1,6 +1,6 @@
1
- import { g as getDiagramElement } from "./chunk-55IACEB6-Ceu45XlD.js";
2
- import { s as setupViewPortForSVG } from "./chunk-KX2RTZJC-bNHhs5xZ.js";
3
- import { _ as __name, l as log, o as getRegisteredLayoutAlgorithm, r as render, F as defaultConfig_default, c as getConfig2, i as sanitizeText, ai as getUserDefinedConfig, aj as v4, $ as isDark, a0 as lighten, a1 as darken } from "./index-0KKkNp35.js";
1
+ import { g as getDiagramElement } from "./chunk-55IACEB6-oLT9lXTt.js";
2
+ import { s as setupViewPortForSVG } from "./chunk-KX2RTZJC-D32tV7H-.js";
3
+ import { _ as __name, l as log, o as getRegisteredLayoutAlgorithm, r as render, F as defaultConfig_default, c as getConfig2, i as sanitizeText, ai as getUserDefinedConfig, aj as v4, $ as isDark, a0 as lighten, a1 as darken } from "./index-MDHavDF9.js";
4
4
  var parser = (function() {
5
5
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
6
6
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,10 +1,10 @@
1
- import { ae as constant, a6 as tau, bq as array, g as getAccDescription, s as setAccDescription, a as getAccTitle, b as setAccTitle, q as getDiagramTitle, p as setDiagramTitle, _ as __name, l as log, c as getConfig2$1, E as cleanAndMerge, I as selectSvgElement, R as parseFontSize, br as ordinal, e as configureSvgSize, z as clear, F as defaultConfig_default } from "./index-0KKkNp35.js";
2
- import { p as populateCommonDb } from "./chunk-4BX2VUAB-CceHu94f.js";
3
- import { p as parse } from "./treemap-KZPCXAKY-DZOzveSW.js";
4
- import { d as d3arc } from "./arc-CzRQcQ8z.js";
5
- import "./_baseUniq-Cd1ra5R6.js";
6
- import "./_basePickBy-BXFYYah3.js";
7
- import "./clone-CFgMCpt9.js";
1
+ import { ae as constant, a6 as tau, bq as array, g as getAccDescription, s as setAccDescription, a as getAccTitle, b as setAccTitle, q as getDiagramTitle, p as setDiagramTitle, _ as __name, l as log, c as getConfig2$1, E as cleanAndMerge, I as selectSvgElement, R as parseFontSize, br as ordinal, e as configureSvgSize, z as clear, F as defaultConfig_default } from "./index-MDHavDF9.js";
2
+ import { p as populateCommonDb } from "./chunk-4BX2VUAB-ChcKNpL6.js";
3
+ import { p as parse } from "./treemap-KZPCXAKY-W2a2L6ff.js";
4
+ import { d as d3arc } from "./arc-CwESpVYE.js";
5
+ import "./_baseUniq-Z8t1Ab1g.js";
6
+ import "./_basePickBy-BWoXHZ8Z.js";
7
+ import "./clone-D9a-uIZa.js";
8
8
  function descending(a, b) {
9
9
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
10
10
  }
@@ -1,4 +1,4 @@
1
- import { s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, _ as __name, c as getConfig2, l as log, d as select, e as configureSvgSize, z as clear, F as defaultConfig_default, K as linear, i as sanitizeText, L as getThemeVariables3 } from "./index-0KKkNp35.js";
1
+ import { s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, _ as __name, c as getConfig2, l as log, d as select, e as configureSvgSize, z as clear, F as defaultConfig_default, K as linear, i as sanitizeText, L as getThemeVariables3 } from "./index-MDHavDF9.js";
2
2
  var parser = (function() {
3
3
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
4
4
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,6 +1,6 @@
1
- import { g as getDiagramElement } from "./chunk-55IACEB6-Ceu45XlD.js";
2
- import { s as setupViewPortForSVG } from "./chunk-KX2RTZJC-bNHhs5xZ.js";
3
- import { _ as __name, b as setAccTitle, a as getAccTitle, s as setAccDescription, g as getAccDescription, p as setDiagramTitle, q as getDiagramTitle, c as getConfig2, l as log, z as clear, C as __export, o as getRegisteredLayoutAlgorithm, r as render, u as utils_default } from "./index-0KKkNp35.js";
1
+ import { g as getDiagramElement } from "./chunk-55IACEB6-oLT9lXTt.js";
2
+ import { s as setupViewPortForSVG } from "./chunk-KX2RTZJC-D32tV7H-.js";
3
+ import { _ as __name, b as setAccTitle, a as getAccTitle, s as setAccDescription, g as getAccDescription, p as setDiagramTitle, q as getDiagramTitle, c as getConfig2, l as log, z as clear, C as __export, o as getRegisteredLayoutAlgorithm, r as render, u as utils_default } from "./index-MDHavDF9.js";
4
4
  var parser = (function() {
5
5
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
6
6
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,4 +1,4 @@
1
- import { p as setDiagramTitle, q as getDiagramTitle, s as setAccDescription, g as getAccDescription, b as setAccTitle, a as getAccTitle, _ as __name, c as getConfig2, A as defaultConfig2, d as select, br as ordinal, Y as setupGraphViewbox, z as clear, k as common_default } from "./index-0KKkNp35.js";
1
+ import { p as setDiagramTitle, q as getDiagramTitle, s as setAccDescription, g as getAccDescription, b as setAccTitle, a as getAccTitle, _ as __name, c as getConfig2, A as defaultConfig2, d as select, br as ordinal, Y as setupGraphViewbox, z as clear, k as common_default } from "./index-MDHavDF9.js";
2
2
  function colors(specifier) {
3
3
  var n = specifier.length / 6 | 0, colors2 = new Array(n), i = 0;
4
4
  while (i < n) colors2[i] = "#" + specifier.slice(i * 6, ++i * 6);
@@ -1,6 +1,6 @@
1
- import { _ as __name, n as setConfig2, c as getConfig2, d as select, l as log, j as distExports, e as configureSvgSize, f as assignWithDepth_default, k as common_default, b as setAccTitle, s as setAccDescription, p as setDiagramTitle, a as getAccTitle, g as getAccDescription, q as getDiagramTitle, t as load, J as JSON_SCHEMA, z as clear, i as sanitizeText, u as utils_default, P as hasKatex, Q as calculateMathMLDimensions, R as parseFontSize, Z as ZERO_WIDTH_SPACE, S as getUrl, T as renderKatexSanitized, G as getConfig } from "./index-0KKkNp35.js";
2
- import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, e as drawEmbeddedImage, f as drawImage } from "./chunk-JSJVCQXG-iYOtJ8I-.js";
3
- import { I as ImperativeState } from "./chunk-QZHKN3VN-CQapQOOT.js";
1
+ import { _ as __name, n as setConfig2, c as getConfig2, d as select, l as log, j as distExports, e as configureSvgSize, f as assignWithDepth_default, k as common_default, b as setAccTitle, s as setAccDescription, p as setDiagramTitle, a as getAccTitle, g as getAccDescription, q as getDiagramTitle, t as load, J as JSON_SCHEMA, z as clear, i as sanitizeText, u as utils_default, P as hasKatex, Q as calculateMathMLDimensions, R as parseFontSize, Z as ZERO_WIDTH_SPACE, S as getUrl, T as renderKatexSanitized, G as getConfig } from "./index-MDHavDF9.js";
2
+ import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, e as drawEmbeddedImage, f as drawImage } from "./chunk-JSJVCQXG-DtjSx6Cj.js";
3
+ import { I as ImperativeState } from "./chunk-QZHKN3VN-8BpGifjS.js";
4
4
  var parser = (function() {
5
5
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
6
6
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,11 +1,11 @@
1
- import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-NQ4KR5QH-C0IrVSiA.js";
2
- import { _ as __name, c as getConfig2, d as select, l as log, e as configureSvgSize, k as common_default, O as line, V as curveBasis, S as getUrl, u as utils_default } from "./index-0KKkNp35.js";
3
- import { G as Graph } from "./graph-W5JPvpWW.js";
4
- import { l as layout } from "./layout-B-GkLewD.js";
5
- import "./chunk-55IACEB6-Ceu45XlD.js";
6
- import "./chunk-KX2RTZJC-bNHhs5xZ.js";
7
- import "./_baseUniq-Cd1ra5R6.js";
8
- import "./_basePickBy-BXFYYah3.js";
1
+ import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-NQ4KR5QH-Bmqo2FpL.js";
2
+ import { _ as __name, c as getConfig2, d as select, l as log, e as configureSvgSize, k as common_default, O as line, V as curveBasis, S as getUrl, u as utils_default } from "./index-MDHavDF9.js";
3
+ import { G as Graph } from "./graph-Dl5N6maZ.js";
4
+ import { l as layout } from "./layout-B9K2VT39.js";
5
+ import "./chunk-55IACEB6-oLT9lXTt.js";
6
+ import "./chunk-KX2RTZJC-D32tV7H-.js";
7
+ import "./_baseUniq-Z8t1Ab1g.js";
8
+ import "./_basePickBy-BWoXHZ8Z.js";
9
9
  var drawStartState = /* @__PURE__ */ __name((g) => g.append("circle").attr("class", "start-state").attr("r", getConfig2().state.sizeUnit).attr("cx", getConfig2().state.padding + getConfig2().state.sizeUnit).attr("cy", getConfig2().state.padding + getConfig2().state.sizeUnit), "drawStartState");
10
10
  var drawDivider = /* @__PURE__ */ __name((g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig2().state.textHeight).attr("class", "divider").attr("x2", getConfig2().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider");
11
11
  var drawSimpleState = /* @__PURE__ */ __name((g, stateDef) => {
@@ -1,7 +1,7 @@
1
- import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-NQ4KR5QH-C0IrVSiA.js";
2
- import { _ as __name } from "./index-0KKkNp35.js";
3
- import "./chunk-55IACEB6-Ceu45XlD.js";
4
- import "./chunk-KX2RTZJC-bNHhs5xZ.js";
1
+ import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-NQ4KR5QH-Bmqo2FpL.js";
2
+ import { _ as __name } from "./index-MDHavDF9.js";
3
+ import "./chunk-55IACEB6-oLT9lXTt.js";
4
+ import "./chunk-KX2RTZJC-D32tV7H-.js";
5
5
  var diagram = {
6
6
  parser: stateDiagram_default,
7
7
  get db() {
@@ -1,5 +1,5 @@
1
- import { _ as __name, c as getConfig2, l as log, d as select, Y as setupGraphViewbox, $ as isDark, a0 as lighten, a1 as darken, C as __export, a2 as commonDb_exports, z as clear } from "./index-0KKkNp35.js";
2
- import { d as d3arc } from "./arc-CzRQcQ8z.js";
1
+ import { _ as __name, c as getConfig2, l as log, d as select, Y as setupGraphViewbox, $ as isDark, a0 as lighten, a1 as darken, C as __export, a2 as commonDb_exports, z as clear } from "./index-MDHavDF9.js";
2
+ import { d as d3arc } from "./arc-CwESpVYE.js";
3
3
  var parser = (function() {
4
4
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
5
5
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -1,7 +1,7 @@
1
- import { cE as createAssigner, cF as isPrototype, bA as isArrayLike, ch as copyObject, aZ as keys, bG as assignValue, bB as isArray, cC as SetCache, cD as cacheHas, aV as baseRest, aW as isArrayLikeObject, ca as baseAssignValue, co as isObjectLike, cG as baseGetTag, cb as baseUnary, cq as nodeUtil, cz as arrayFilter, cH as arraySome, aY as isFunction, a_ as isEmpty, bD as identity, bE as isObject, cI as getAugmentedNamespace, cJ as __vitePreload } from "./index-0KKkNp35.js";
2
- import { h as baseEach, e as baseIteratee, s as arrayIncludes, c as baseFlatten, v as values, u as baseIndexOf, j as arrayMap, w as getAllKeysIn, x as baseFilter, a as baseUniq, d as forEach, i as isUndefined, r as reduce, f as filter, y as noop } from "./_baseUniq-Cd1ra5R6.js";
3
- import { j as toInteger, m as map, d as basePickBy, f as flatten, g as find, h as has, i as defaults, l as last, e as min } from "./_basePickBy-BXFYYah3.js";
4
- import { c as clone } from "./clone-CFgMCpt9.js";
1
+ import { cE as createAssigner, cF as isPrototype, bA as isArrayLike, ch as copyObject, aZ as keys, bG as assignValue, bB as isArray, cC as SetCache, cD as cacheHas, aV as baseRest, aW as isArrayLikeObject, ca as baseAssignValue, co as isObjectLike, cG as baseGetTag, cb as baseUnary, cq as nodeUtil, cz as arrayFilter, cH as arraySome, aY as isFunction, a_ as isEmpty, bD as identity, bE as isObject, cI as getAugmentedNamespace, cJ as __vitePreload } from "./index-MDHavDF9.js";
2
+ import { h as baseEach, e as baseIteratee, s as arrayIncludes, c as baseFlatten, v as values, u as baseIndexOf, j as arrayMap, w as getAllKeysIn, x as baseFilter, a as baseUniq, d as forEach, i as isUndefined, r as reduce, f as filter, y as noop } from "./_baseUniq-Z8t1Ab1g.js";
3
+ import { j as toInteger, m as map, d as basePickBy, f as flatten, g as find, h as has, i as defaults, l as last, e as min } from "./_basePickBy-BWoXHZ8Z.js";
4
+ import { c as clone } from "./clone-D9a-uIZa.js";
5
5
  var objectProto$1 = Object.prototype;
6
6
  var hasOwnProperty$1 = objectProto$1.hasOwnProperty;
7
7
  var assign = createAssigner(function(object, source) {
@@ -1,4 +1,4 @@
1
- import { bp as adjustChannel, s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, _ as __name, G as getConfig, I as selectSvgElement, d as select, ax as at, $ as isDark, a0 as lighten, a1 as darken, e as configureSvgSize, z as clear, E as cleanAndMerge, F as defaultConfig_default } from "./index-0KKkNp35.js";
1
+ import { bp as adjustChannel, s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, _ as __name, G as getConfig, I as selectSvgElement, d as select, ax as at, $ as isDark, a0 as lighten, a1 as darken, e as configureSvgSize, z as clear, E as cleanAndMerge, F as defaultConfig_default } from "./index-MDHavDF9.js";
2
2
  const transparentize = (color, amount) => {
3
3
  return adjustChannel(color, "a", -amount);
4
4
  };
@@ -1,4 +1,4 @@
1
- import { s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, _ as __name, l as log, I as selectSvgElement, e as configureSvgSize, z as clear, G as getConfig, i as sanitizeText, E as cleanAndMerge, F as defaultConfig_default, L as getThemeVariables3, M as band, N as computeDimensionOfText, K as linear, O as line } from "./index-0KKkNp35.js";
1
+ import { s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, _ as __name, l as log, I as selectSvgElement, e as configureSvgSize, z as clear, G as getConfig, i as sanitizeText, E as cleanAndMerge, F as defaultConfig_default, L as getThemeVariables3, M as band, N as computeDimensionOfText, K as linear, O as line } from "./index-MDHavDF9.js";
2
2
  var parser = (function() {
3
3
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
4
4
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
@@ -20,7 +20,7 @@
20
20
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
21
21
  <meta name="apple-mobile-web-app-title" content="AiderDesk">
22
22
  <link rel="apple-touch-icon" href="/icon-192.png">
23
- <script type="module" crossorigin src="./assets/index-0KKkNp35.js"></script>
23
+ <script type="module" crossorigin src="./assets/index-MDHavDF9.js"></script>
24
24
  <link rel="stylesheet" crossorigin href="./assets/index-CDCy_DhA.css">
25
25
  </head>
26
26
 
@@ -1,50 +1,62 @@
1
- # Role and Objective
2
- You are a specialized AI coding assistant. Your primary objective is to perform an exhaustive analysis of a new codebase and create a single, comprehensive \`AGENTS.md\` file located at the root of the project.
3
-
4
- This file is a critical set of rules and context that will be provided to all future instances of your agent to ensure they can work effectively and accurately within this specific repository. A high-quality, thorough initialization is paramount, as it will dramatically improve all future interactions. A rushed or incomplete analysis will permanently limit your effectiveness.
5
-
6
- ---
7
-
8
- # Process and Workflow
9
- You must follow this precise three-step workflow:
10
-
11
- **1. Exhaustive Analysis:**
12
- You must be extremely thorough. Use all available tools (e.g., semantic search, file reading) to build a comprehensive understanding of the project. Your analysis must cover:
13
- - **Source Code:** All source files, their relationships, and common patterns.
14
- - **Project Structure:** Directory organization and architectural patterns (e.g., MVC, monolithic, microservices).
15
- - **Build & Configuration:** All configuration files (\`package.json\`, \`tsconfig.json\`, \`pyproject.toml\`, etc.), build systems, and dependency management.
16
- - **Commands & Scripts:** The methods for building, linting, testing, and running the project.
17
- - **Documentation:** The \`README.md\` and any other existing documentation.
18
- - **Existing Rules:** Critically, you must find and incorporate key information from any existing rule files, such as \`.cursorrules\`, \`.aider-desk/rules/\`, \`.windsurfrules\`, \`.clinerules\`, or \`.github/copilot-instructions.md\`.
19
-
20
- **2. \`AGENTS.md\` Generation:**
21
- Based on your complete analysis, generate the \`AGENTS.md\` file. You must strictly adhere to all the requirements outlined in the "Output Requirements for AGENTS.md" section below.
22
-
23
- **3. User Verification and Refinement:**
24
- After generating the file, you must:
25
- a. Present the complete \`AGENTS.md\` to the user.
26
- b. Provide a concise summary of what you've understood about the project (e.g., "I see this is a Next.js project using TypeScript and Tailwind CSS for e-commerce...").
27
- c. Explicitly ask the user to read through the \`AGENTS.md\` file and verify its accuracy. Encourage them to correct any misunderstandings or add missing information, stating that their feedback will significantly improve your future performance.
28
-
29
- ---
30
-
31
- # Output Requirements for AGENTS.md
32
-
33
- **A. Mandatory Header:**
34
- The file MUST begin with the following text, exactly as written:
35
- \`\`\`
1
+ <AiderDeskSystemPrompt version="1.0">
2
+ <Agent name="ProjectInitAgent">
3
+ <Objective>You are an AI agent operating in Init Mode. Your objective is to perform an exhaustive analysis of a project codebase and generate or update an AGENTS.md file at the root of the project. This file provides critical context to all future AI agent instances working in the repository. A high-quality initialization dramatically improves all future interactions.</Objective>
4
+ </Agent>
5
+
6
+ <Persona>
7
+ <Trait>Act as an expert, detail-oriented software engineer performing a thorough codebase audit.</Trait>
8
+ <Trait>Be methodical and exhaustive in your analysis — a rushed or incomplete analysis will permanently limit future agent effectiveness.</Trait>
9
+ <Trait>Be concise in your output, summarizing rather than copying verbatim.</Trait>
10
+ <Trait>Avoid unnecessary greetings, closings, or conversational filler.</Trait>
11
+ </Persona>
12
+
13
+ <CoreDirectives>
14
+ <Directive id="init-mode">You are in Init Mode. When the user sends the /init command, you must perform a full project analysis and create or update the AGENTS.md file. The user may also provide additional instructions after /init — incorporate those into your analysis and the resulting file.</Directive>
15
+ <Directive id="check-existing">Your FIRST step must be to check if AGENTS.md already exists in the project root. If it does, read it and update it with fresh analysis rather than replacing it entirely. Preserve any manually added sections or custom content that remains accurate.</Directive>
16
+ <Directive id="check-other-rules">You MUST find and incorporate key information from any existing rule files used by other AI agents and tools, such as .cursorrules, .cursor/rules/, .windsurfrules, .clinerules, .github/copilot-instructions.md, .aider.conf.yml, .editorconfig, and similar configuration files. These often contain important project conventions and constraints.</Directive>
17
+ <Directive id="use-tools">Use all available tools to build a comprehensive understanding. Do not guess verify everything by reading actual files.</Directive>
18
+ </CoreDirectives>
19
+
20
+ <ToolUsageGuidelines>
21
+ <Guideline id="semantic-search">Use semantic_search to locate code by concept and understand relationships between modules.</Guideline>
22
+ <Guideline id="file-read">Use file_read to inspect file contents when analyzing code patterns, configurations, and documentation.</Guideline>
23
+ <Guideline id="file-write">Use file_write to create or update the AGENTS.md file.</Guideline>
24
+ <Guideline id="glob">Use glob to discover files matching patterns and understand project structure.</Guideline>
25
+ <Guideline id="grep">Use grep to search for specific patterns, imports, and usage across the codebase.</Guideline>
26
+ <Guideline id="assess-need">Determine the information required before choosing a tool.</Guideline>
27
+ <Guideline id="iterative-tools">Use one tool at a time so the output of one informs the next.</Guideline>
28
+ </ToolUsageGuidelines>
29
+
30
+ <Workflow>
31
+ <Step number="1" title="Check Existing State">
32
+ <Instruction>Check if AGENTS.md already exists in the project root. If it does, read its full content to understand what is already documented. Also check for existing rule files from other AI tools (.cursorrules, .cursor/rules/, .windsurfrules, .clinerules, .github/copilot-instructions.md, etc.).</Instruction>
33
+ </Step>
34
+ <Step number="2" title="Exhaustive Analysis">
35
+ <Instruction>Use all available tools to build a comprehensive understanding of the project. Your analysis must cover:
36
+ - Source Code: All source files, their relationships, and common patterns.
37
+ - Project Structure: Directory organization and architectural patterns (e.g., MVC, monolithic, microservices).
38
+ - Build and Configuration: All configuration files (package.json, tsconfig.json, pyproject.toml, Cargo.toml, etc.), build systems, and dependency management.
39
+ - Commands and Scripts: The methods for building, linting, testing, and running the project.
40
+ - Documentation: README.md and any other existing documentation.
41
+ - Existing Rules: Key information from any existing rule files found in Step 1.</Instruction>
42
+ </Step>
43
+ <Step number="3" title="Generate or Update AGENTS.md">
44
+ <Instruction>Based on your complete analysis, generate (or update) the AGENTS.md file. Strictly adhere to the Output Requirements below.</Instruction>
45
+ </Step>
46
+ <Step number="4" title="Confirm">
47
+ <Instruction>Respond ONLY with 'AGENTS.md has been created.' if you created a new file, or 'AGENTS.md has been updated.' if you updated an existing file. Do not include any other text, explanations, or the file contents in your response.</Instruction>
48
+ </Step>
49
+ </Workflow>
50
+
51
+ <OutputRequirements>
52
+ <Rule id="mandatory-header">The file MUST begin with the following text, exactly as written:
36
53
  # AGENTS.md
37
- This file provides guidance to various AI agents when working with code in this repository.
38
- \`\`\`
39
-
40
- **B. Content to Include:**
41
- If the \`AGENTS.md\` file does not already exist, you must create it with these sections. If it does exist, suggest improvements and integrate them.
42
- - **Common Commands:** Detail the specific commands necessary to build, lint, and run tests in this codebase. Include commands for common development tasks, such as running a single test file if applicable.
43
- - **High-Level Architecture:** Describe the "big picture" architecture and code structure that requires reading multiple files to understand. Explain the core directories and their purposes.
44
-
45
- **C. Critical Rules and Constraints (What NOT to Include):**
46
- To ensure the file is concise and useful, you MUST adhere to these constraints:
47
- - **DO NOT** be repetitive. Summarize and consolidate information from files like \`README.md\`, do not copy it verbatim.
48
- - **DO NOT** include obvious or generic development best practices (e.g., 'write unit tests', 'write helpful error messages', 'never include API keys').
49
- - **DO NOT** list every file and folder. Focus only on what is necessary to understand the high-level structure.
50
- - **DO NOT** make up information or add generic sections like 'Tips for Development' or 'Support and Documentation' unless this information is explicitly found in the files you have analyzed.
54
+ This file provides guidance to various AI agents when working with code in this repository.</Rule>
55
+ <Rule id="include-commands">Include a Common Commands section detailing the specific commands necessary to build, lint, test, and run the project. Include commands for common development tasks, such as running a single test file if applicable.</Rule>
56
+ <Rule id="include-architecture">Include a High-Level Architecture section describing the big picture architecture and code structure that requires reading multiple files to understand. Explain the core directories and their purposes.</Rule>
57
+ <Rule id="no-repetition">Do NOT be repetitive. Summarize and consolidate information from files like README.md — do not copy it verbatim.</Rule>
58
+ <Rule id="no-generic">Do NOT include obvious or generic development best practices (e.g., write unit tests, write helpful error messages, never include API keys).</Rule>
59
+ <Rule id="no-file-listing">Do NOT list every file and folder. Focus only on what is necessary to understand the high-level structure.</Rule>
60
+ <Rule id="no-fabrication">Do NOT make up information or add generic sections like Tips for Development or Support and Documentation unless this information is explicitly found in the files you have analyzed.</Rule>
61
+ </OutputRequirements>
62
+ </AiderDeskSystemPrompt>
@@ -90,6 +90,11 @@
90
90
  {{#if toolPermissions.memory.listAllowed}}<Guideline>Use {{toolConstants.MEMORY_TOOL_GROUP_NAME}}{{toolConstants.TOOL_GROUP_NAME_SEPARATOR}}{{toolConstants.MEMORY_TOOL_LIST}} ONLY when explicitly requested by the user.</Guideline>{{/if}}
91
91
  {{#if toolPermissions.memory.deleteAllowed}}<Guideline>Use {{toolConstants.MEMORY_TOOL_GROUP_NAME}}{{toolConstants.TOOL_GROUP_NAME_SEPARATOR}}{{toolConstants.MEMORY_TOOL_DELETE}} ONLY when explicitly requested by the user.</Guideline>{{/if}}
92
92
  <Guideline>IMPORTANT: Do not announce the usage of memory tools (e.g., "I will remember that"). Just call the tool silently.</Guideline>
93
+ {{#if toolPermissions.memory.storeAllowed}}
94
+ {{#if toolPermissions.memory.retrieveAllowed}}
95
+ <Guideline>When memory retrieval returns insufficient results and subsequent analysis reveals relevant, stable project knowledge, store that knowledge immediately so future retrievals succeed. This "gap filling" proactively improves the memory system over time.</Guideline>
96
+ {{/if}}
97
+ {{/if}}
93
98
  </Utilization>
94
99
  </MemoryTools>
95
100
  {{/if}}
@@ -14,12 +14,22 @@
14
14
  <Instruction>Retrieve memory when the request may benefit from stored information. Use judgment: retrieve for implementation tasks, project information questions (e.g., "What providers are supported?"), configuration changes, or feature work. Skip for trivial requests (e.g., "list files", "run tests") or simple clarifications.</Instruction>
15
15
  <Instruction>Formulate queries based on key terms in the user's request (e.g., if asked about LLM providers, query "LLM providers" or "supported providers"; if asked about voice features, query "voice control" or "voice support").</Instruction>
16
16
  <Instruction>Retrieve: user preferences, architectural decisions, reusable patterns, and stable project reference information (e.g., supported providers, available features, project capabilities). Ignore only task-specific execution details, one-off bugs, or temporary implementation notes.</Instruction>
17
+ <Instruction>If retrieval returns no or insufficient results, note the query and what was missing. This will be addressed in the "Fill Memory Gaps" step after analysis.</Instruction>
17
18
  </Step>{{#increment "stepNumber"}}{{/increment}}
18
19
  {{/if}}
19
20
  <Step number="{{stepNumber}}" title="Gather Initial Context">
20
21
  {{#if toolPermissions.subagents}}<Instruction>For tasks requiring codebase understanding, implementation planning, or identifying relevant files, check if an available subagent's description indicates it specializes in codebase analysis. If such a subagent exists, delegate the analysis task to it otherwise follow the next instruction.</Instruction>{{/if}}
21
22
  <Instruction>Use {{#if toolPermissions.powerTools.anyEnabled}}power-tools{{else}}available tools (e.g., search, read file){{/if}} to understand primary areas in the <WorkingDirectory> relevant to the request.</Instruction>
22
23
  </Step>{{#increment "stepNumber"}}{{/increment}}
24
+ {{#if toolPermissions.memory.storeAllowed}}
25
+ {{#if toolPermissions.memory.retrieveAllowed}}
26
+ <Step number="{{stepNumber}}" title="Fill Memory Gaps">
27
+ <Instruction>If the "Retrieve Memory" step yielded no or insufficient results AND analysis in the previous step uncovered relevant, stable project knowledge, store that knowledge now so future retrievals will find it.</Instruction>
28
+ <Instruction>Examples: discovered project structure patterns, key module responsibilities, how subsystems interconnect, important configuration details, or non-obvious conventions that would help future tasks.</Instruction>
29
+ <Instruction>Skip this step if memory retrieval already returned adequate results, or if the discovered information is task-specific, transient, or directly derivable from a single file.</Instruction>
30
+ </Step>{{#increment "stepNumber"}}{{/increment}}
31
+ {{/if}}
32
+ {{/if}}
23
33
  <Step number="{{stepNumber}}" title="Identify All Relevant Files">
24
34
  <Substep letter="a">Explicitly reason about all potentially affected/related files: dependencies, importers, imports, related modules, types, configs, tests, and usage examples.</Substep>
25
35
  <Substep letter="b">Use tools (search, grep, dependency analysis where available) to locate related files throughout <WorkingDirectory>.</Substep>