@agentprojectcontext/apx 1.30.2 → 1.31.1

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 (31) hide show
  1. package/package.json +1 -1
  2. package/skills/apx-agency-agents/SKILL.md +1 -1
  3. package/skills/apx-agent/SKILL.md +6 -6
  4. package/skills/apx-project/SKILL.md +1 -2
  5. package/src/core/agent/prompt-builder.js +6 -0
  6. package/src/core/agent/run-agent.js +21 -0
  7. package/src/core/agent/self-memory.js +1 -1
  8. package/src/core/agent-memory.js +64 -0
  9. package/src/core/agent-system.js +3 -2
  10. package/src/core/scaffold.js +43 -18
  11. package/src/core/tools/browser.js +169 -75
  12. package/src/core/tools/registry.js +13 -8
  13. package/src/core/tools/search.js +35 -7
  14. package/src/host/daemon/api/agents.js +19 -21
  15. package/src/host/daemon/api/sessions-search.js +1 -1
  16. package/src/host/daemon/api/shared.js +5 -8
  17. package/src/host/daemon/super-agent-tools/index.js +232 -43
  18. package/src/host/daemon/super-agent-tools/registry-bridge.js +30 -1
  19. package/src/host/daemon/super-agent-tools/tools/discover-tools.js +67 -0
  20. package/src/host/daemon/super-agent-tools/tools/import-agent.js +2 -0
  21. package/src/host/daemon/super-agent-tools/tools/read-agent-memory.js +5 -4
  22. package/src/host/daemon/super-agent.js +15 -17
  23. package/src/interfaces/cli/commands/agent.js +4 -1
  24. package/src/interfaces/cli/commands/memory.js +9 -10
  25. package/src/interfaces/web/dist/assets/{index-CfWyjPBa.js → index-BV615I9p.js} +5 -5
  26. package/src/interfaces/web/dist/assets/{index-CfWyjPBa.js.map → index-BV615I9p.js.map} +1 -1
  27. package/src/interfaces/web/dist/index.html +1 -1
  28. package/src/interfaces/web/package-lock.json +100 -211
  29. package/src/interfaces/web/src/i18n/en.ts +6 -6
  30. package/src/interfaces/web/src/i18n/es.ts +6 -6
  31. package/src/interfaces/web/src/screens/project/AgentDetailScreen.tsx +1 -1
@@ -18,7 +18,7 @@
18
18
  <link rel="apple-touch-icon" href="/favicon/dark/apple-touch-icon.png" media="(prefers-color-scheme: dark)" />
19
19
  <link rel="manifest" href="/favicon/white/site.webmanifest" media="(prefers-color-scheme: light)" />
20
20
  <link rel="manifest" href="/favicon/dark/site.webmanifest" media="(prefers-color-scheme: dark)" />
21
- <script type="module" crossorigin src="/assets/index-CfWyjPBa.js"></script>
21
+ <script type="module" crossorigin src="/assets/index-BV615I9p.js"></script>
22
22
  <link rel="stylesheet" crossorigin href="/assets/index-BDUsA6L6.css">
23
23
  </head>
24
24
  <body class="bg-background text-foreground antialiased">
@@ -921,15 +921,15 @@
921
921
  }
922
922
  },
923
923
  "node_modules/@radix-ui/primitive": {
924
- "version": "1.1.3",
925
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
926
- "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
924
+ "version": "1.1.4",
925
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.4.tgz",
926
+ "integrity": "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==",
927
927
  "license": "MIT"
928
928
  },
929
929
  "node_modules/@radix-ui/react-compose-refs": {
930
- "version": "1.1.2",
931
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
932
- "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
930
+ "version": "1.1.3",
931
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz",
932
+ "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==",
933
933
  "license": "MIT",
934
934
  "peerDependencies": {
935
935
  "@types/react": "*",
@@ -942,9 +942,9 @@
942
942
  }
943
943
  },
944
944
  "node_modules/@radix-ui/react-context": {
945
- "version": "1.1.2",
946
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
947
- "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
945
+ "version": "1.1.4",
946
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.4.tgz",
947
+ "integrity": "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==",
948
948
  "license": "MIT",
949
949
  "peerDependencies": {
950
950
  "@types/react": "*",
@@ -957,48 +957,25 @@
957
957
  }
958
958
  },
959
959
  "node_modules/@radix-ui/react-dialog": {
960
- "version": "1.1.15",
961
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz",
962
- "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==",
960
+ "version": "1.1.16",
961
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.16.tgz",
962
+ "integrity": "sha512-l9ok83YBclEZhbjgzt76Hw733e6cvRKPNgO6GJ/IETlufXG9p+fRu2wlvpImQvR6xdJ8h7J8J2DBvsPEiEsKMw==",
963
963
  "license": "MIT",
964
964
  "dependencies": {
965
- "@radix-ui/primitive": "1.1.3",
966
- "@radix-ui/react-compose-refs": "1.1.2",
967
- "@radix-ui/react-context": "1.1.2",
968
- "@radix-ui/react-dismissable-layer": "1.1.11",
969
- "@radix-ui/react-focus-guards": "1.1.3",
970
- "@radix-ui/react-focus-scope": "1.1.7",
971
- "@radix-ui/react-id": "1.1.1",
972
- "@radix-ui/react-portal": "1.1.9",
973
- "@radix-ui/react-presence": "1.1.5",
974
- "@radix-ui/react-primitive": "2.1.3",
975
- "@radix-ui/react-slot": "1.2.3",
976
- "@radix-ui/react-use-controllable-state": "1.2.2",
965
+ "@radix-ui/primitive": "1.1.4",
966
+ "@radix-ui/react-compose-refs": "1.1.3",
967
+ "@radix-ui/react-context": "1.1.4",
968
+ "@radix-ui/react-dismissable-layer": "1.1.12",
969
+ "@radix-ui/react-focus-guards": "1.1.4",
970
+ "@radix-ui/react-focus-scope": "1.1.9",
971
+ "@radix-ui/react-id": "1.1.2",
972
+ "@radix-ui/react-portal": "1.1.11",
973
+ "@radix-ui/react-presence": "1.1.6",
974
+ "@radix-ui/react-primitive": "2.1.5",
975
+ "@radix-ui/react-slot": "1.2.5",
976
+ "@radix-ui/react-use-controllable-state": "1.2.3",
977
977
  "aria-hidden": "^1.2.4",
978
- "react-remove-scroll": "^2.6.3"
979
- },
980
- "peerDependencies": {
981
- "@types/react": "*",
982
- "@types/react-dom": "*",
983
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
984
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
985
- },
986
- "peerDependenciesMeta": {
987
- "@types/react": {
988
- "optional": true
989
- },
990
- "@types/react-dom": {
991
- "optional": true
992
- }
993
- }
994
- },
995
- "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive": {
996
- "version": "2.1.3",
997
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
998
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
999
- "license": "MIT",
1000
- "dependencies": {
1001
- "@radix-ui/react-slot": "1.2.3"
978
+ "react-remove-scroll": "^2.7.2"
1002
979
  },
1003
980
  "peerDependencies": {
1004
981
  "@types/react": "*",
@@ -1016,39 +993,16 @@
1016
993
  }
1017
994
  },
1018
995
  "node_modules/@radix-ui/react-dismissable-layer": {
1019
- "version": "1.1.11",
1020
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz",
1021
- "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==",
1022
- "license": "MIT",
1023
- "dependencies": {
1024
- "@radix-ui/primitive": "1.1.3",
1025
- "@radix-ui/react-compose-refs": "1.1.2",
1026
- "@radix-ui/react-primitive": "2.1.3",
1027
- "@radix-ui/react-use-callback-ref": "1.1.1",
1028
- "@radix-ui/react-use-escape-keydown": "1.1.1"
1029
- },
1030
- "peerDependencies": {
1031
- "@types/react": "*",
1032
- "@types/react-dom": "*",
1033
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1034
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1035
- },
1036
- "peerDependenciesMeta": {
1037
- "@types/react": {
1038
- "optional": true
1039
- },
1040
- "@types/react-dom": {
1041
- "optional": true
1042
- }
1043
- }
1044
- },
1045
- "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive": {
1046
- "version": "2.1.3",
1047
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
1048
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
996
+ "version": "1.1.12",
997
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.12.tgz",
998
+ "integrity": "sha512-MhoruH6xEzsbvOmo4TNgMfmtvRGyDZw4MDSdf4ybMHfezjqwzv6hyd4lsMzBp8K9Sn6sGzCF62x1I7BYUECXOg==",
1049
999
  "license": "MIT",
1050
1000
  "dependencies": {
1051
- "@radix-ui/react-slot": "1.2.3"
1001
+ "@radix-ui/primitive": "1.1.4",
1002
+ "@radix-ui/react-compose-refs": "1.1.3",
1003
+ "@radix-ui/react-primitive": "2.1.5",
1004
+ "@radix-ui/react-use-callback-ref": "1.1.2",
1005
+ "@radix-ui/react-use-escape-keydown": "1.1.2"
1052
1006
  },
1053
1007
  "peerDependencies": {
1054
1008
  "@types/react": "*",
@@ -1066,9 +1020,9 @@
1066
1020
  }
1067
1021
  },
1068
1022
  "node_modules/@radix-ui/react-focus-guards": {
1069
- "version": "1.1.3",
1070
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz",
1071
- "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==",
1023
+ "version": "1.1.4",
1024
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz",
1025
+ "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==",
1072
1026
  "license": "MIT",
1073
1027
  "peerDependencies": {
1074
1028
  "@types/react": "*",
@@ -1081,37 +1035,14 @@
1081
1035
  }
1082
1036
  },
1083
1037
  "node_modules/@radix-ui/react-focus-scope": {
1084
- "version": "1.1.7",
1085
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz",
1086
- "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==",
1087
- "license": "MIT",
1088
- "dependencies": {
1089
- "@radix-ui/react-compose-refs": "1.1.2",
1090
- "@radix-ui/react-primitive": "2.1.3",
1091
- "@radix-ui/react-use-callback-ref": "1.1.1"
1092
- },
1093
- "peerDependencies": {
1094
- "@types/react": "*",
1095
- "@types/react-dom": "*",
1096
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1097
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1098
- },
1099
- "peerDependenciesMeta": {
1100
- "@types/react": {
1101
- "optional": true
1102
- },
1103
- "@types/react-dom": {
1104
- "optional": true
1105
- }
1106
- }
1107
- },
1108
- "node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive": {
1109
- "version": "2.1.3",
1110
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
1111
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
1038
+ "version": "1.1.9",
1039
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.9.tgz",
1040
+ "integrity": "sha512-9Se8t+Zry+1rEOL7Y6l/4ANYU/TOtAtf8O2fKdwLltcaMcm6kOqYGbzO4tMFQ0bvzO920pRAoHpFZ4W85S3keQ==",
1112
1041
  "license": "MIT",
1113
1042
  "dependencies": {
1114
- "@radix-ui/react-slot": "1.2.3"
1043
+ "@radix-ui/react-compose-refs": "1.1.3",
1044
+ "@radix-ui/react-primitive": "2.1.5",
1045
+ "@radix-ui/react-use-callback-ref": "1.1.2"
1115
1046
  },
1116
1047
  "peerDependencies": {
1117
1048
  "@types/react": "*",
@@ -1129,12 +1060,12 @@
1129
1060
  }
1130
1061
  },
1131
1062
  "node_modules/@radix-ui/react-id": {
1132
- "version": "1.1.1",
1133
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
1134
- "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
1063
+ "version": "1.1.2",
1064
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz",
1065
+ "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==",
1135
1066
  "license": "MIT",
1136
1067
  "dependencies": {
1137
- "@radix-ui/react-use-layout-effect": "1.1.1"
1068
+ "@radix-ui/react-use-layout-effect": "1.1.2"
1138
1069
  },
1139
1070
  "peerDependencies": {
1140
1071
  "@types/react": "*",
@@ -1147,36 +1078,13 @@
1147
1078
  }
1148
1079
  },
1149
1080
  "node_modules/@radix-ui/react-portal": {
1150
- "version": "1.1.9",
1151
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz",
1152
- "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==",
1153
- "license": "MIT",
1154
- "dependencies": {
1155
- "@radix-ui/react-primitive": "2.1.3",
1156
- "@radix-ui/react-use-layout-effect": "1.1.1"
1157
- },
1158
- "peerDependencies": {
1159
- "@types/react": "*",
1160
- "@types/react-dom": "*",
1161
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
1162
- "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1163
- },
1164
- "peerDependenciesMeta": {
1165
- "@types/react": {
1166
- "optional": true
1167
- },
1168
- "@types/react-dom": {
1169
- "optional": true
1170
- }
1171
- }
1172
- },
1173
- "node_modules/@radix-ui/react-portal/node_modules/@radix-ui/react-primitive": {
1174
- "version": "2.1.3",
1175
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
1176
- "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
1081
+ "version": "1.1.11",
1082
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.11.tgz",
1083
+ "integrity": "sha512-UEytdjgEh2tJGgD/gZK4FUx6t1rNIlM3U0DENhSrG7I75FGm1DnaDuVUWF1pWAWUwGmn1sCJ1VGHn8LhN1aTOw==",
1177
1084
  "license": "MIT",
1178
1085
  "dependencies": {
1179
- "@radix-ui/react-slot": "1.2.3"
1086
+ "@radix-ui/react-primitive": "2.1.5",
1087
+ "@radix-ui/react-use-layout-effect": "1.1.2"
1180
1088
  },
1181
1089
  "peerDependencies": {
1182
1090
  "@types/react": "*",
@@ -1194,13 +1102,12 @@
1194
1102
  }
1195
1103
  },
1196
1104
  "node_modules/@radix-ui/react-presence": {
1197
- "version": "1.1.5",
1198
- "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz",
1199
- "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==",
1105
+ "version": "1.1.6",
1106
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.6.tgz",
1107
+ "integrity": "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==",
1200
1108
  "license": "MIT",
1201
1109
  "dependencies": {
1202
- "@radix-ui/react-compose-refs": "1.1.2",
1203
- "@radix-ui/react-use-layout-effect": "1.1.1"
1110
+ "@radix-ui/react-use-layout-effect": "1.1.2"
1204
1111
  },
1205
1112
  "peerDependencies": {
1206
1113
  "@types/react": "*",
@@ -1218,12 +1125,12 @@
1218
1125
  }
1219
1126
  },
1220
1127
  "node_modules/@radix-ui/react-primitive": {
1221
- "version": "2.1.4",
1222
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
1223
- "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
1128
+ "version": "2.1.5",
1129
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.5.tgz",
1130
+ "integrity": "sha512-zifXeB8Y88qCYx8PLZ5oQb32KwZub+s925mMoZsBBq9KUQqWKkREubTfs6ASjRPPBe7Jt9O8OHH89+95VG+grA==",
1224
1131
  "license": "MIT",
1225
1132
  "dependencies": {
1226
- "@radix-ui/react-slot": "1.2.4"
1133
+ "@radix-ui/react-slot": "1.2.5"
1227
1134
  },
1228
1135
  "peerDependencies": {
1229
1136
  "@types/react": "*",
@@ -1240,31 +1147,13 @@
1240
1147
  }
1241
1148
  }
1242
1149
  },
1243
- "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": {
1244
- "version": "1.2.4",
1245
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz",
1246
- "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==",
1247
- "license": "MIT",
1248
- "dependencies": {
1249
- "@radix-ui/react-compose-refs": "1.1.2"
1250
- },
1251
- "peerDependencies": {
1252
- "@types/react": "*",
1253
- "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
1254
- },
1255
- "peerDependenciesMeta": {
1256
- "@types/react": {
1257
- "optional": true
1258
- }
1259
- }
1260
- },
1261
1150
  "node_modules/@radix-ui/react-slot": {
1262
- "version": "1.2.3",
1263
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
1264
- "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
1151
+ "version": "1.2.5",
1152
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.5.tgz",
1153
+ "integrity": "sha512-rCMO3QsIVKv5JTY5CVbo2MvO77SpEqqYc8AvRE7OWqRDOIqAKjsp+DrmnY9uc8NPdxB5E2z47HTYGeE2+NTptg==",
1265
1154
  "license": "MIT",
1266
1155
  "dependencies": {
1267
- "@radix-ui/react-compose-refs": "1.1.2"
1156
+ "@radix-ui/react-compose-refs": "1.1.3"
1268
1157
  },
1269
1158
  "peerDependencies": {
1270
1159
  "@types/react": "*",
@@ -1277,9 +1166,9 @@
1277
1166
  }
1278
1167
  },
1279
1168
  "node_modules/@radix-ui/react-use-callback-ref": {
1280
- "version": "1.1.1",
1281
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
1282
- "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
1169
+ "version": "1.1.2",
1170
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz",
1171
+ "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==",
1283
1172
  "license": "MIT",
1284
1173
  "peerDependencies": {
1285
1174
  "@types/react": "*",
@@ -1292,13 +1181,13 @@
1292
1181
  }
1293
1182
  },
1294
1183
  "node_modules/@radix-ui/react-use-controllable-state": {
1295
- "version": "1.2.2",
1296
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
1297
- "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
1184
+ "version": "1.2.3",
1185
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz",
1186
+ "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==",
1298
1187
  "license": "MIT",
1299
1188
  "dependencies": {
1300
- "@radix-ui/react-use-effect-event": "0.0.2",
1301
- "@radix-ui/react-use-layout-effect": "1.1.1"
1189
+ "@radix-ui/react-use-effect-event": "0.0.3",
1190
+ "@radix-ui/react-use-layout-effect": "1.1.2"
1302
1191
  },
1303
1192
  "peerDependencies": {
1304
1193
  "@types/react": "*",
@@ -1311,12 +1200,12 @@
1311
1200
  }
1312
1201
  },
1313
1202
  "node_modules/@radix-ui/react-use-effect-event": {
1314
- "version": "0.0.2",
1315
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
1316
- "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
1203
+ "version": "0.0.3",
1204
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz",
1205
+ "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==",
1317
1206
  "license": "MIT",
1318
1207
  "dependencies": {
1319
- "@radix-ui/react-use-layout-effect": "1.1.1"
1208
+ "@radix-ui/react-use-layout-effect": "1.1.2"
1320
1209
  },
1321
1210
  "peerDependencies": {
1322
1211
  "@types/react": "*",
@@ -1329,12 +1218,12 @@
1329
1218
  }
1330
1219
  },
1331
1220
  "node_modules/@radix-ui/react-use-escape-keydown": {
1332
- "version": "1.1.1",
1333
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
1334
- "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
1221
+ "version": "1.1.2",
1222
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.2.tgz",
1223
+ "integrity": "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==",
1335
1224
  "license": "MIT",
1336
1225
  "dependencies": {
1337
- "@radix-ui/react-use-callback-ref": "1.1.1"
1226
+ "@radix-ui/react-use-callback-ref": "1.1.2"
1338
1227
  },
1339
1228
  "peerDependencies": {
1340
1229
  "@types/react": "*",
@@ -1347,9 +1236,9 @@
1347
1236
  }
1348
1237
  },
1349
1238
  "node_modules/@radix-ui/react-use-layout-effect": {
1350
- "version": "1.1.1",
1351
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
1352
- "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
1239
+ "version": "1.1.2",
1240
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz",
1241
+ "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==",
1353
1242
  "license": "MIT",
1354
1243
  "peerDependencies": {
1355
1244
  "@types/react": "*",
@@ -2188,9 +2077,9 @@
2188
2077
  "license": "MIT"
2189
2078
  },
2190
2079
  "node_modules/@types/node": {
2191
- "version": "25.9.1",
2192
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz",
2193
- "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==",
2080
+ "version": "25.9.2",
2081
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.2.tgz",
2082
+ "integrity": "sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw==",
2194
2083
  "devOptional": true,
2195
2084
  "license": "MIT",
2196
2085
  "dependencies": {
@@ -2208,9 +2097,9 @@
2208
2097
  }
2209
2098
  },
2210
2099
  "node_modules/@types/react": {
2211
- "version": "19.2.16",
2212
- "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.16.tgz",
2213
- "integrity": "sha512-esJiCAnl0kfpNdE69f3So4WJUXy95dLZydX0KwK46riIHDzHM7O9Vtf9xCHW0PXIqvgqNrswl522kA/5yx+F4w==",
2100
+ "version": "19.2.17",
2101
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz",
2102
+ "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==",
2214
2103
  "devOptional": true,
2215
2104
  "license": "MIT",
2216
2105
  "dependencies": {
@@ -2291,9 +2180,9 @@
2291
2180
  }
2292
2181
  },
2293
2182
  "node_modules/baseline-browser-mapping": {
2294
- "version": "2.10.33",
2295
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.33.tgz",
2296
- "integrity": "sha512-bA6+tcSLpz2tIEdDXZPpPTIuxBcC4+w6SieaYyfigIa4h8GlFxbA17v22Vx3JUtuZQj9SgOsnbK+aTBzyDyEuw==",
2183
+ "version": "2.10.34",
2184
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.34.tgz",
2185
+ "integrity": "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw==",
2297
2186
  "dev": true,
2298
2187
  "license": "Apache-2.0",
2299
2188
  "bin": {
@@ -2347,9 +2236,9 @@
2347
2236
  }
2348
2237
  },
2349
2238
  "node_modules/caniuse-lite": {
2350
- "version": "1.0.30001793",
2351
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001793.tgz",
2352
- "integrity": "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==",
2239
+ "version": "1.0.30001797",
2240
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz",
2241
+ "integrity": "sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==",
2353
2242
  "dev": true,
2354
2243
  "funding": [
2355
2244
  {
@@ -2709,9 +2598,9 @@
2709
2598
  "license": "MIT"
2710
2599
  },
2711
2600
  "node_modules/electron-to-chromium": {
2712
- "version": "1.5.367",
2713
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.367.tgz",
2714
- "integrity": "sha512-4Mk/mrynCNQ+atY40D3UpmhLWB6AHMbYMlIrPhHcMF6x0L7O0b052FCAsxw1LlaR++UFuNg3D/A6XCuGDa0guQ==",
2601
+ "version": "1.5.368",
2602
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz",
2603
+ "integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==",
2715
2604
  "dev": true,
2716
2605
  "license": "ISC"
2717
2606
  },
@@ -2750,9 +2639,9 @@
2750
2639
  "license": "MIT"
2751
2640
  },
2752
2641
  "node_modules/enhanced-resolve": {
2753
- "version": "5.22.2",
2754
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.2.tgz",
2755
- "integrity": "sha512-0rxICaFZ7NQho/sHely2bvOPRP0Eu2B0NZ9zM54YvRvWMn7jfz3DmnOZDR9LlXDdDcqntAVc6Hfy4gr/tdH/Ag==",
2642
+ "version": "5.23.0",
2643
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.23.0.tgz",
2644
+ "integrity": "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA==",
2756
2645
  "license": "MIT",
2757
2646
  "dependencies": {
2758
2647
  "graceful-fs": "^4.2.4",
@@ -388,8 +388,8 @@ export const en = {
388
388
 
389
389
  agents: {
390
390
  title: "Agents",
391
- subtitle: "Defined in AGENTS.md + .apc/agents/<slug>/.",
392
- subtitle_full: "Defined in AGENTS.md + .apc/agents/<slug>/. Hierarchy (orchestrator → sub-agents) lives in frontmatter (Master / Parent).",
391
+ subtitle: "Defined in AGENTS.md + .apc/agents/<slug>.md.",
392
+ subtitle_full: "Defined in AGENTS.md + .apc/agents/<slug>.md. Runtime memory lives under ~/.apx/projects/<id>/agents/<slug>/.",
393
393
  empty: "No agents. Add one with <code>apx agent add</code> or the button.",
394
394
  empty_text: "No agents. Add one with `apx agent add` or the button above.",
395
395
  new: "Agent",
@@ -408,7 +408,7 @@ export const en = {
408
408
  role_label: "role (optional)",
409
409
  role_ph: "code refactor",
410
410
  model_label: "model (optional)",
411
- model_hint: "e.g. claude-sonnet-4.5, ollama:gemma2:9b",
411
+ model_hint: "e.g. ollama:gemma2:9b, openai:gpt-4o-mini",
412
412
  lang_label: "language (optional)",
413
413
  desc_label: "description (optional)",
414
414
  desc_ph: "What does this agent do…",
@@ -423,7 +423,7 @@ export const en = {
423
423
  create_success: "Agent {slug} created.",
424
424
  create_error: "create failed",
425
425
  import_title: "Import from vault",
426
- import_desc: "Templates in ~/.apx/agents. Copied to this project (.apc/agents/).",
426
+ import_desc: "Templates in ~/.apx/agents. Registered in this project (.apc/agents/<slug>.md).",
427
427
  import_empty: "No templates in the vault.",
428
428
  import_success: "Imported: {slug}",
429
429
  import_already: "already here",
@@ -457,7 +457,7 @@ export const en = {
457
457
  master_label: "Orchestrator (master)",
458
458
  delete_btn: "Delete agent",
459
459
  save_btn: "Save changes",
460
- delete_confirm: "Delete agent \"{slug}\"? Removes .apc/agents/{slug}.md and its folder.",
460
+ delete_confirm: "Delete agent \"{slug}\"? Removes .apc/agents/{slug}.md and local runtime data.",
461
461
  update_success: "Agent updated.",
462
462
  delete_success: "Agent deleted.",
463
463
  tools_hint: "Which tools this agent can use. Tap to toggle; or edit the list below.",
@@ -566,7 +566,7 @@ export const en = {
566
566
  project_desc: "Durable facts at the project level. .apc/memory.md — read by agents and the super-agent.",
567
567
  project_ph: "# Project Memory\n\nStable facts that any agent should know…",
568
568
  agents_title: "Agent memories",
569
- agents_desc: "Individual memory per agent. .apc/agents/<slug>/memory.md",
569
+ agents_desc: "Individual memory per agent. ~/.apx/projects/<id>/agents/<slug>/memory.md",
570
570
  no_agents: "No agents in this project.",
571
571
  saved: "Memory saved.",
572
572
  empty: "(empty memory)",
@@ -389,8 +389,8 @@ export const es = {
389
389
 
390
390
  agents: {
391
391
  title: "Agents",
392
- subtitle: "Definidos en AGENTS.md + .apc/agents/<slug>/.",
393
- subtitle_full: "Definidos en AGENTS.md + .apc/agents/<slug>/. La jerarquía (orquestador → subagentes) vive en el frontmatter (Master / Parent).",
392
+ subtitle: "Definidos en AGENTS.md + .apc/agents/<slug>.md.",
393
+ subtitle_full: "Definidos en AGENTS.md + .apc/agents/<slug>.md. La memoria runtime vive en ~/.apx/projects/<id>/agents/<slug>/.",
394
394
  empty: "Sin agents. Agregá uno con <code>apx agent add</code> o el botón.",
395
395
  empty_text: "Sin agents. Agregá uno con `apx agent add` o el botón de arriba.",
396
396
  new: "Agente",
@@ -409,7 +409,7 @@ export const es = {
409
409
  role_label: "role (opcional)",
410
410
  role_ph: "code refactor",
411
411
  model_label: "model (opcional)",
412
- model_hint: "ej. claude-sonnet-4.5, ollama:gemma2:9b",
412
+ model_hint: "ej. ollama:gemma2:9b, openai:gpt-4o-mini",
413
413
  lang_label: "language (opcional)",
414
414
  desc_label: "description (opcional)",
415
415
  desc_ph: "Qué hace este agente…",
@@ -424,7 +424,7 @@ export const es = {
424
424
  create_success: "Agent {slug} creado.",
425
425
  create_error: "create falló",
426
426
  import_title: "Importar del vault",
427
- import_desc: "Plantillas en ~/.apx/agents. Se copian a este proyecto (.apc/agents/).",
427
+ import_desc: "Plantillas en ~/.apx/agents. Se registran en este proyecto (.apc/agents/<slug>.md).",
428
428
  import_empty: "Sin plantillas en el vault.",
429
429
  import_success: "Importado: {slug}",
430
430
  import_already: "ya está",
@@ -458,7 +458,7 @@ export const es = {
458
458
  master_label: "Orquestador (master)",
459
459
  delete_btn: "Borrar agente",
460
460
  save_btn: "Guardar cambios",
461
- delete_confirm: "Borrar el agente \"{slug}\"? Se elimina .apc/agents/{slug}.md y su carpeta.",
461
+ delete_confirm: "Borrar el agente \"{slug}\"? Se elimina .apc/agents/{slug}.md y sus datos runtime locales.",
462
462
  update_success: "Agente actualizado.",
463
463
  delete_success: "Agente borrado.",
464
464
  tools_hint: "Qué tools puede usar el agente. Tocá para activar/desactivar; o editá la lista abajo.",
@@ -567,7 +567,7 @@ export const es = {
567
567
  project_desc: "Hechos durables a nivel proyecto. .apc/memory.md — la leen los agentes y el super-agente.",
568
568
  project_ph: "# Memoria del proyecto\n\nHechos estables que cualquier agente debería saber…",
569
569
  agents_title: "Memorias de agentes",
570
- agents_desc: "Memoria individual por agente. .apc/agents/<slug>/memory.md",
570
+ agents_desc: "Memoria individual por agente. ~/.apx/projects/<id>/agents/<slug>/memory.md",
571
571
  no_agents: "Sin agentes en este proyecto.",
572
572
  saved: "Memoria guardada.",
573
573
  empty: "(memoria vacía)",
@@ -302,7 +302,7 @@ function MemoryEditor({ pid, slug, initial, onSaved }: { pid: string; slug: stri
302
302
  finally { setBusy(false); }
303
303
  };
304
304
  return (
305
- <Section title={t("project.agent_detail.memory_title")} description={`.apc/agents/${slug}/memory.md — hechos durables que el agente recuerda.`}>
305
+ <Section title={t("project.agent_detail.memory_title")} description={`~/.apx/projects/<id>/agents/${slug}/memory.md — hechos durables que el agente recuerda.`}>
306
306
  <Textarea rows={16} className="font-mono text-xs" value={value} onChange={(e) => setValue(e.target.value)} placeholder={t("project.agent_detail.memory_empty")} />
307
307
  <div className="mt-2 flex items-center justify-between">
308
308
  <span className="text-[11px] text-muted-fg">{value.length} {t("project.memories.chars")}</span>